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以上,运算代价高。

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