zoukankan      html  css  js  c++  java
  • RSA 加密原理

    步骤  说明  描述  备注
    1 找出质数 P 、Q  
    2 计算公共模数 N = P * Q  
    3 欧拉函数 φ(N) = (P-1)(Q-1)   
    4 计算公钥 E 1 < E < φ(N)  E的取值必须是整数
    E 和 φ(N) 必须是互质数
    5 计算私钥 D E * D % φ(N) = 1  
    6 加密  C = M E mod N C:密文 M:明文
    7  解密 M =C D mod N C:密文 M:明文


    公钥=(E , N)
    私钥=(D, N)

    对外,我们只暴露公钥。

    示例
    1、找出质数 P 、Q

    P = 3
    Q = 11
    2、计算公共模数

    N = P * Q = 3 * 11 = 33
    N = 33
    3、 欧拉函数

    φ(N) = (P-1)(Q-1) = 2 * 10 = 20
    φ(N) = 20
    4、计算公钥E

    1 < E < φ(N)
    1 <E < 20
    E 的取值范围 {3, 7, 9, 11, 13, 17, 19}
    E的取值必须是整数, E 和 φ(N) 必须是互质数
    为了测试,我们取最小的值 E =3
    3 和 φ(N) =20 互为质数,满足条件

    5、计算私钥D

    E * D % φ(N) = 1
    3 * D % 20 = 1
    根据上面可计算出 D = 7

    6、公钥加密

    我们这里为了演示,就加密一个比较小的数字 M = 2

    公式:C = ME mod N

    M = 2
    E = 3
    N = 33
    C = 23 % 33 = 8

    明文 “2” 经过 RSA 加密后变成了密文 “8”

    7、私钥解密

    M =CD mod N

    C = 8
    D = 7
    N = 33
    M = 87 % 33
    8 * 8 * 8 * 8 * 8 * 8 * 8=2097152
    8 * 8 * 8 * 8 * 8 * 8 * 8 % 33 = 2

    密文 “8” 经过 RSA 解密后变成了明文 2。

    公钥加密 - 私钥解密流程图


    私钥加密 - 公钥解密流程图

    ————————————————
    版权声明:本文为CSDN博主「q469587851」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/q469587851/article/details/99825311

  • 相关阅读:
    QT学习1
    时域和频域
    win10 + VS2017 + MNN 编译使用
    深度学习笔记(二十二)Structure-Preserving Neural Style Transfer
    miRNA分析
    mRNA分析
    代谢组学分析
    实证分析
    React---新扩展RenderProps和ErrorBoundary
    React---新扩展Context和组件优化
  • 原文地址:https://www.cnblogs.com/hjlweilong/p/12246607.html
Copyright © 2011-2022 走看看