RSA算法

RSA算法是最常用的非對稱加密算法。其既可以用於加密,也可以用於數字簽名。RSA的安全基於大數分解的難度。

公鑰KU

n:兩素數p和q的乘積(p,q必須保密)

e:與(p-1)(q-1)的乘積互質

私鑰KR

d:e-1(mod(p-1)(q-1))

n:

加密

c me mod n

解密

m ≡ cd mod n

算法描述:

1.        選擇一對不同的、足夠大的素數p,q。計算n = pq。

2.        計算f(n) = (p-1)(q-1)。對p,q保密,不讓任何人知道。

3.        找一個與f(n)互質的數e,且1<e<f(n)。

4.        計算d,使得de≡ 1 mod f(n)

5.        加密時,先將明文變換成0至n-1的一個整數m。設密文爲c,則加密過程爲c me mod n。解密過程爲m ≡ cd mod n

其中≡符號表示數論中的同餘符號。

RSA算法缺點:產生密鑰麻煩,難以做到一次加密。爲保證安全性,n至少600bits以上,運算代價高。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章