【《數(shù)學(xué)之美》筆記(四)】加密算法

1. 對稱性加密與非對稱性加密

假設(shè)一個形象理解的場景:

考試時,超模君通過小天給學(xué)渣表妹傳遞答案

  • 對稱性加密

  • 非對稱性加密

    加密和解密規(guī)則:

    考試前超模君找到表妹,給了她一張紙片,紙片上有20行數(shù),每行有4個數(shù)字,4個數(shù)字為亂序的1、2、3、4(如下圖所示)

    超模君考試時傳遞的小紙條中第一個數(shù)字X1表示紙片中X1行里的第x1個數(shù)字,第二個數(shù)字X2開始表示下一行中的第X2個數(shù)。例如,超模君的紙條上數(shù)字為2123,那么根據(jù)上面的紙片從第二行開始找數(shù)字,得到答案2、4、2、2(下圖所示)

    非對稱性加密與對稱性加密最大的區(qū)別就在于非對稱性加密擁有兩把鑰匙,分別為私匙和公匙,其中只有公匙會傳播出去,而私匙只會在自己手中,不會傳播到外界

2. RSA加密算法

2.1. 加密解密原理

RSA算法是1977年由三位麻省理工學(xué)院教授——羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出。RSA就是他們?nèi)诵帐祥_頭字母拼在一起組成的

RSA算法過程:

  • 如何得到公匙e和匙d

    (1) 找出兩個質(zhì)數(shù),一個是p,另一個是q

    (2) 做一個乘法:n=p\times q

    (3) 取一個函數(shù):\psi(n)=(p-1)\times(q-1)

    (4) 找出公匙 e 和匙 d

    \begin{cases}1<e<\psi(n) \\ e \text{和}\, \psi(n) \text{需要互質(zhì)} \\ e·d\,\text{除以}\,\psi(n)\text{余數(shù)為}\,1 \end{cases}

  • 如何加密和解密

    假設(shè)傳輸?shù)男畔⒌臄?shù)字為m,接下來我們就可以得到加密公式:

    c=m^e \% n

    其中\%為取余運算

    c就是我們發(fā)送出去的加密后的數(shù)字

    再來看看解密的公式:

    m=c^d\%n

    這個余數(shù)就是我們傳輸?shù)男畔ⅰ猰

舉個例子:

(1) 找出兩個質(zhì)數(shù),一個是7,另一個是13

(2) n=p\times q=7 \times 13=91

(3) \psi(n)=(p-1)\times(q-1)=6 \times 12=72

(4) 找出公匙e和匙d\begin{cases}e=5 \\ d=29\end{cases}

(5) 假設(shè)我們要加密的數(shù)字是m=4

(6) 加密:m^e \div n=4^5 \div 91...23

(7) 解密:c^d \div n=23^29 \div 91...4

2.2. 安全性分析

為什么RSA算法是安全的(目前來說)?

在傳輸?shù)倪^程中,e(公匙)、n(質(zhì)數(shù)乘積)、c(余數(shù))是可以被黑客竊聽到的,但參考上面加密公式可以知道 d(私匙)和 \psi(n) 沒有參與加密過程,所以竊聽者并不知道d\psi(n)

那么竊聽者能不能通過e、n、c算出私匙d呢?

\begin{cases} (e · d)\,\%\,\psi(n)=1 & (1)\\ \psi(n) = (p-1)(q-1) & (2)\\ n=p·q & (3) \end{cases}

看看用這3個公式黑客能不能算出私匙d:

假設(shè)黑客已經(jīng)監(jiān)聽到了:

e=5,\quad c=23,\quad n=p·q=91

根據(jù)公式(1)知:

5·d\,\%\,\psi(n)=1

要想求出d就得知道\psi(n),而\psi(n) = (p-1)(q-1)

因此要想知道\psi(n),就得知道pq,而黑客已經(jīng)知道了

n=p·q=91

所以只需要對n進行質(zhì)因式分解,可以得到

p=7,\quad q=13

從上面的分析中可以看出,破解私匙的關(guān)鍵的一步是對n進行質(zhì)因式分解,雖然上面舉的例子中的因式分解很簡單,分分鐘就能被破解,但是在實際使用中的n是一個很大的數(shù)——1024位的二進制數(shù)字,換算成十進制約為308位

目前還沒有公式可以對這么大的一個數(shù)進行質(zhì)因數(shù)分解,想硬解就需要用窮舉法一個個的試出p、q

那么,用普通計算機進行窮舉需要花費多久的時間呢?答案是整整一年


參考資料:

(1) 超級數(shù)學(xué)建?!秴^(qū)區(qū)6位密碼,憑什么守護我的百萬家產(chǎn)? 》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 文中首先解釋加密解密的一些基礎(chǔ)知識和概念,然后通過一個加密通信過程的例子說明了加密算法的作用,以及數(shù)字證書的...
    sunny沖哥閱讀 3,204評論 0 2
  • 加密技術(shù)包括兩個元素:算法和密鑰。 算法是將普通的信息或者可以理解的信息與一串?dāng)?shù)字(密鑰)結(jié)合,產(chǎn)生不可理解的密文...
    趙客縵胡纓v吳鉤霜雪明閱讀 1,308評論 0 16
  • 姓名:于川皓 學(xué)號:16140210089 轉(zhuǎn)載自:https://baike.baidu.com/item/RS...
    道無涯_cc76閱讀 2,815評論 0 1
  • RSA加密算法是最常用的非對稱加密算法,它既能用于加密,也能用于數(shù)字簽名。RSA以它的三個發(fā)明者Ron Rives...
    栗子daisy閱讀 891評論 0 0
  • RSA加密算法是最常用的非對稱加密算法,CFCA在證書服務(wù)中離不了它。但是有不少新來的同事對它不太了解,恰好看到一...
    ikin閱讀 2,217評論 0 5

友情鏈接更多精彩內(nèi)容