rsa加解密¶
RSA:
简介:
1977 年
作者:
* 麻省理工学院三位数学家Rivest、Shamir 和 Adleman
* 罗纳德・李维斯特(Ron Rivest)
* 阿迪・萨莫尔(Adi Shamir)
* 伦纳德・阿德曼(Leonard Adleman)
算法:
加密: 密文=明文^E mod N
公钥: E 和 N 的组合
解密: 明文=密文^D mod N
私钥: D 和 N 的组合
说明:
对极大整数做因数分解的难度决定了RSA算法的可靠性
第一个能同时用于加密和数字签名的算法
速度是对应同样安全级别的对称密码算法的1/1000左右
缺点:
前向不安全
* 私钥参与了密钥交换
* 安全性取决于私钥是否安全保存
历史:
1977年,三位数学家Rivest、Shamir 和 Adleman
设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名
对极大整数做因数分解的难度决定了RSA算法的可靠性
换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作
由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现
速度一直是RSA的缺陷。一般来说只用于少量数据加密
RSA的速度是对应同样安全级别的对称密码算法的1/1000左右
已公开的或已知的攻击方法:
1999年,RSA-155 (512 bits)被成功分解,
花了五个月时间(约8000 MIPS年)和224 CPU hours在一台有3.2G中央内存的Cray C916计算机上完成
2009年12月12日,编号为RSA-768(768 bits, 232 digits)数也被成功分解
这一事件威胁了现通行的1024-bit密钥的安全性,普遍认为用户应尽快升级到2048-bit或以上
其他变种¶
1. EIGamal 方式:
与 RSA 不同的点在使用『离散对数』
密文长度是明文的2倍
由 Taher ElGamal 设计,利用了模运算下求离散对数困难的特性。被应用在 PGP 等安全工具中。
2. Rabin方式
与 RSA 不同的点在使用『平方根』
3. ECC(椭圆曲线密码, Elliptic Curve Cryptography):
1985 年由 Neal Koblitz 和 Victor Miller 分别独立提出
ECC 系列算法一般被认为具备较高的安全性,但加解密计算过程往往比较费时。