目录
一、起源
RSA(Rivest、Shamir、Adleman)
1976年,Diffie、Hellman在论文《New Directions in Cryptography》中首次提出公钥密码体制的设想。
1978年,第一个公钥加密体制被提出:MH背包公钥密码。但该密码已被证明不安全。
1987年,Rivest、Shamir、Adleman首次公布他们提出的RSA公钥加密体制。
RSA是第一个安全、实用的公钥加密算法,已经成为国际标准,是目前应用广泛的公钥加密体制。
二、基础
1.理论基础:欧拉定理
欧拉定理:对于任意两个互素的整数、
,有
;
费马定理:n为素数时,;
欧拉函数:比m小且与m互素的正整数个数
。
补充:
算术基本定理:任意大于1的整数a都可以分解为有限个素数的乘积:
(除素因子的排列外都是唯一的)
上述表达中可能存在重复素因子,可以用标准因子分解式表示有限个素数的幂的乘积:
欧拉函数的计算规则:
(欧拉函数计算公式推导待证明)
2.安全性基础:大整数素因子分解困难问题
大整数素因子分解困难问题
其它困难问题:
如何确定一个整数是素数
如何找到足够大的素数
三、算法
1.RSA加密算法
(1)密钥生成算法
①选取两个安全大素数、
,计算乘积
,
,其中,
为
的欧拉函数;
②随机选取整数作为公钥,满足
;
③用欧几里得扩展算法计算私钥,满足。
输出公钥,私钥
。
(2)加密算法
①获得接收方公钥;
②把消息M分组为长度为L的消息分组;
③使用加密算法,计算出密文
;
④将密文C发送给接收方。
(3)解密算法
①接收方收到密文;
②使用私钥d逐一恢复明文分组;
③得到明文消息。
(4)正确性证明
2.RSA签名算法
(1)密钥生成算法(同上)
(2)签名算法
(3)验证算法
(4)正确性证明
四、安全性
1.大整数分解
shor算法