從工具入手
RSA-Tool 2使用說(shuō)明
生成
- 按下start,隨意移動(dòng)鼠標(biāo)指針,以生成隨機(jī)數(shù)(算法胀滚?)
- 設(shè)置密鑰長(zhǎng)度,即n的長(zhǎng)度填帽,一般為2048bit(支持到4096)
- 設(shè)置指數(shù)e以及指數(shù)的進(jìn)制蛛淋,一般為10進(jìn)制的63357
- 按下generate等待生成p/q/n/d
- 兩次或兩次以上生成相同的密鑰對(duì)是不可能的
分解
- 將模數(shù)n復(fù)制到對(duì)應(yīng)編輯框中,點(diǎn)擊factor按鈕篡腌,進(jìn)行分解嘗試
由p和q計(jì)算私鑰d
- 選擇p和q的進(jìn)制
- 復(fù)制到對(duì)應(yīng)編輯框
- 點(diǎn)擊calc.d按鈕
再來(lái)看看算法
生成算法
- 選取兩個(gè)大素?cái)?shù)p和q(p和q不相等)
- 定義模數(shù)n褐荷,n=pq
- 選取一個(gè)指數(shù)e,滿(mǎn)足條件1<e<(p-1)(q-1)嘹悼,e和(p-1)(q-1)互素(歐拉函數(shù))
- 計(jì)算e的模反元素d叛甫,即ed = 1 mod (p-1)(q-1),d就是私鑰
- 分發(fā)公鑰(N, e)
rsa可靠性來(lái)源
在n和e已知的情況下杨伙,是否能夠求取私鑰d其监?
ed≡1 mod (p-1)(q-1)
n=pq,已知p和q時(shí)才能求解d限匣,而只知道n抖苦,就需要因數(shù)分解,基于大整數(shù)因數(shù)分解十分困難的事實(shí)米死,rsa在密鑰長(zhǎng)度足夠的情況下锌历,安全性得到了保證。
加解密算法
加密:m^e ≡ c (mod n)峦筒,其中m為明文究西,c為密文,(n, e)為公鑰
解密:c^d ≡ m (mod n)物喷,(n, d)為私鑰
miracl rsa大數(shù)運(yùn)算實(shí)例
miracl 使用手冊(cè)
miracl github
rsa大數(shù)運(yùn)算原理