zoukankan      html  css  js  c++  java
  • PQ rsa 练习

    1,找两个很大的素数(质数)P 和 Q,越大越好,比如 100 位长的, 然后计算它们的乘积
    N=P×Q,M=(P-1)×(Q-1)。

    2,找一个和 M 互素的整数 E,也就是说 M 和 E 除了 1
    以外没有公约数。

    3,找一个整数 D,使得 E×D 除以 M 余 1,即 E×D mod M =
    1。

    现在,世界上先进的、最常用的密码系统就设计好了,其中 E 是公钥谁都可以用来加密,D 是私钥用于解密,一定要自己保存好。乘积 N
    是公开的,即使敌人知道了也没关系。

    现在,我们用下面的公式对 X 加密,得到密码 Y。
       


    好了,现在没有密钥
    D,神仙也无法从 Y 中恢复 X。如果知道 D,根据费尔马小定理,则只要按下面的公式就可以轻而易举地从 Y 中得到 X。
       


    P=5  Q =7

    N= 5 *7 =35

    M = 4 *6 =24

    选择E =11

    D 可以 为  11 35 59

    对 1-20 加密  =myMOD( A1,11,35)

    1 1
    2 18
    3 12
    4 9
    5 10
    6 6
    7 28
    8 22
    9 4
    10 5
    11 16
    12 3
    13 27
    14 14
    15 15
    16 11
    17 33
    18 2
    19 24
    20 20

    解密使用 D=59 =myMOD( B1,59,35)

    1 1
    18 2
    12 3
    9 4
    10 5
    6 6
    28 7
    22 8
    4 9
    5 10
    16 11
    3 12
    27 13
    14 14
    15 15
    11 16
    33 17
    2 18
    24 19
    20 20

    Function myMod(a As Integer, i As Integer, m As Integer) As Integer

    myMod = 1

    For j = 1 To i myMod = myMod * a

    While myMod > m  

    myMod = myMod - m

    Wend

    Next j

    End Function

  • 相关阅读:
    vue的特点 关键字
    小程序技术实现
    SpringCloud简历模板
    SpringBoot简历模板
    SpringCloud+Eureka快速搭建微服架构
    Docker 面试题
    说说mysql的存储引擎,有什么区别?索引的介绍
    mysql语句
    fail-fast 与 fail-save 机制的区别
    动态规划总结
  • 原文地址:https://www.cnblogs.com/cndavy/p/3178263.html
Copyright © 2011-2022 走看看