• 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 位的十进制数。

  • 相关阅读:
    763. 划分字母区间(贪心算法)
    1282. 用户分组(贪心算法)
    698. 划分为k个相等的子集
    560. 和为K的子数组
    面试题 16.10. 生存人数
    Python:对列表进行排序并相应地更改另一个列表?
    数据竞赛总结
    面试提问之请你介绍一下xxx方法
    常用数学符号读法
    round() 函数
  • 原文地址:https://www.cnblogs.com/zhuhuibiao/p/16280540.html
Copyright © 2020-2023  润新知