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算法過程:
-
如何得到公匙
和匙
(1) 找出兩個質(zhì)數(shù)序攘,一個是
茴她,另一個是
(2) 做一個乘法:
(3) 取一個函數(shù):
(4) 找出公匙
和匙
-
如何加密和解密
假設(shè)傳輸?shù)男畔⒌臄?shù)字為
,接下來我們就可以得到加密公式:
其中
為取余運算
c就是我們發(fā)送出去的加密后的數(shù)字
再來看看解密的公式:
這個余數(shù)就是我們傳輸?shù)男畔ⅰ猰
舉個例子:
(1) 找出兩個質(zhì)數(shù)程奠,一個是7丈牢,另一個是13
(2)
(3)
(4) 找出公匙
和匙
:
(5) 假設(shè)我們要加密的數(shù)字是
(6) 加密:
(7) 解密:
2.2. 安全性分析
為什么RSA算法是安全的(目前來說)?
在傳輸?shù)倪^程中瞄沙,(公匙)己沛、
(質(zhì)數(shù)乘積)、
(余數(shù))是可以被黑客竊聽到的帕识,但參考上面加密公式可以知道
(私匙)和
沒有參與加密過程泛粹,所以竊聽者并不知道
和
那么竊聽者能不能通過e、n肮疗、c算出私匙d呢晶姊?
看看用這3個公式黑客能不能算出私匙d:
假設(shè)黑客已經(jīng)監(jiān)聽到了:
根據(jù)公式(1)知:
要想求出
就得知道
,而
因此要想知道
伪货,就得知道
和
们衙,而黑客已經(jīng)知道了
所以只需要對
進行質(zhì)因式分解,可以得到
從上面的分析中可以看出碱呼,破解私匙的關(guān)鍵的一步是對進行質(zhì)因式分解蒙挑,雖然上面舉的例子中的因式分解很簡單,分分鐘就能被破解愚臀,但是在實際使用中的
是一個很大的數(shù)——1024位的二進制數(shù)字忆蚀,換算成十進制約為308位
目前還沒有公式可以對這么大的一個數(shù)進行質(zhì)因數(shù)分解,想硬解就需要用窮舉法一個個的試出p、q
那么馋袜,用普通計算機進行窮舉需要花費多久的時間呢男旗?答案是整整一年
參考資料:
(1) 超級數(shù)學(xué)建模《區(qū)區(qū)6位密碼欣鳖,憑什么守護我的百萬家產(chǎn)察皇? 》