RSA密码算法
作者:互联网
RSA 算法是非对称算法,由 Ronald Rivest Adi Shamir Leonard Adleman 人共同在 1977
年公开发表。在 RSA 加密算法中,公钥和私钥都可以用千加密消息,用于加密消息的密钥与用
千解密消息的密钥相反。 RSA 算法提供了一种保护网络通信和数据存储的机密性、完整性、真
实性和不可否认性的方法。目前, SSH OpenPGP S/MIME SSL/TLS 都依赖千 RSA 进行
加密和数字签名功能。 RSA 算法在浏览器中使用,能够在不可信任的互联网中建立安全连接。
RSA 签名验证是网络连接系统中最常见的执行操作之一。
RSA 算法基千大整数因子分解的困难性,该算法的步骤如下:
步,生成两个大素数 和仁
步,计算这两个素数的乘积 n=pq
第三步,计算小于 并且与 互素的整数的个数,即欧拉函数妒(n) = (p-l)(q-1)
第四步,选取 个随机数 ,且满足 l<e< (n) ,并且 和叭n) 互素,即 gcd(e ,妒( n)) =
第五步,计算 d=e mod (n)
第六步,保密 q, 而公开 e, 作为私钥,而 作为公钥。
下面,举 RSA 加密的具体实例。设素数 p=3, q=17, 并令 e=l3, RSA 的加密操作
如下:
第一步 ,计算 n, n=pq=3 X 17=51, 得出公钥 n=Sl, e =13
第二步 ,计算叭n) ,妒(n) = (p-l)(q-1) = 2 X 16 = 32 因为 = e-1 modp(n) ,所以
(n)+l d= ,其中 p-l q-l 的最大公约数。由此算出 = (2 x 32 + 1) / 13 = 5, 即解密
密钥 d=5
步,加密和解密处理计算。假设 Bob 的公开密钥是 e=l3 n=Sl, Alice 需要将明文 “2"
发送给 Bob, Alice 首先用 Bob 的公开密钥加密明文,即:
C=Memodn =沪 mod51 = 8192mod51 = 32
然后, Bob 收到 Alice 发来的密文 后,用自己的私钥 解密密文 C, 即:
M = Cd modn = 325 mod51 = 1024 x1024X32mod51 = 512mod51 = 2
RSA 安全性保证要做到选取的素数 足够大,使得给定了它们的乘积 后,在事先不
知道 的清况下分解 是计算上不可行的。因此,破译 RSA 密码体制基本上等价千分解
基千安全性考虑,要求 长度至少应为 1024 比特,然而从长期的安全性来看, 的长度至少应
2048 比特,或者是 616 位的十进制数。
标签:加密,RSA,解密,密码,算法,计算,Bob 来源: https://www.cnblogs.com/zhuhuibiao/p/16280540.html