电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

rsa加密算法_源代码000_c__实现VIP专享VIP免费

rsa加密算法_源代码000_c__实现_第1页
rsa加密算法_源代码000_c__实现_第2页
rsa加密算法_源代码000_c__实现_第3页
RSA 算法 1978 年就出现了这种算法,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。但 RSA 的安全性一直未能得到理论上的证明。 RSA 的安全性依赖于大数难于分解这一特点。公钥和私钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。 密钥对的产生。选择两个大素数,p 和 q 。计算:n = p * q 然后随机选择加密密钥 e,要求 e 和 ( p - 1 ) * ( q - 1 )互质。最后,利用Euclid 算法计算解密密钥 d, 满足 e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) )其中 n 和 d 也要互质。数e 和 n 是公钥,d 是私钥。两个素数p 和 q不再需要,应该丢弃,不要让任何人知道。加密信息 m(二进制表示)时,首先把 m 分成等长数据块 m1 ,m2,..., mi ,块长 s,其中 2^s <= n, s 尽可能的大。对应的密文是:ci = mi^e ( mod n ) ( a ) 解密时作如下计算:mi = ci^d ( mod n ) ( b ) RSA 可用于数字签名,方案是用 ( a ) 式签名, ( b )式验证。具体操作时考虑到安全性和 m 信息量较大等因素,一般是先作 HASH 运算。RSA 的安全性。RSA 的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解 RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。目前,RSA 的一些变种算法已被证明等价于大数分解。不管怎样,分解 n 是最显然的攻击方法。现在,人们已能分解 140 多个十进制位的大素数。因此,模数n 必须选大一些,因具体适用情况而定。 由于进行的都是大数计算,使得 RSA 最快的情况也比 DES 慢上 100 倍,无论是软件还是硬件实现。速度一直是RSA 的缺陷。一般来说只用于少量数据加密。 */ #include #include #include

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部