zoukankan      html  css  js  c++  java
  • RSA算法

    RSA算法:

    1. 准备两个质数 pq
    n= pq

    2.求中间数L
    l =最小公倍数(p-1,q-1) 为 144

    3.求E

    1<E<L
    最大公约数(e,l)=1

    4.求D

    1<D<L
    E*D mol L = 1


    实践

    1. 准备两个很小对质数
    p = 17
    q = 19
    N = p*q = 323

    2. L = 最小公倍数(16和18的) 为 144

    3. 1<E<L 最大公约数(E和L) =1
    即 1 <E < 144 最大公约数(E,144) = 1

    取5吧

    公钥(E、N) = (5,323)

    4.求D 1<D<L E*DmodL = 1
    即1<D<144 5*Dmod 144 = 1
    显然当D=29时满足
    1<29<144
    5*29mod144 = 145mod 144 = 1
    此时私钥= (D,N) = (29,323)

    5.加密 准备的明文必须是小于N的数,因为加密或者解密都要mod N 其结果必须小于N
    准备明文 = 123
    则 密文=明文EmodN=1235mod323=225

    6.解密

    明文=密文DmodN=22529mod323=123
    解密后的明文为123。


    为什么这个算法很厉害:
    假如我给你公钥(E、N)为(5,323)
    那么你就能加密 算出 225这个密文,

    然后把255这个密文发给我。

    如果我没有私钥我怎么解密呢?

    求D的方法是:

    1<D<L
    E*D mol L = 1

    我知道E,N,

    下面我需要知道L

    如果想知道L需要先知道p-1和q-1

    N是两个质数P*Q 但是我如果要找p-1和q-1呢 如果这个数超级大的话

    大数分解本身就是一个数学上难题。

  • 相关阅读:
    BZOJ3193: [JLOI2013]地形生成
    ARG102E:Stop. Otherwise...
    51NOD1847:奇怪的数学题
    大型大常数多项式模板(已卡常...)
    CF932G Palindrome Partition
    51nod1538:一道难题(常系数线性递推/Cayley-Hamilton定理)
    HTML——meta标签
    HTTP 格式
    Node.js——Async
    设计模式——外观模式
  • 原文地址:https://www.cnblogs.com/eret9616/p/8993726.html
Copyright © 2011-2022 走看看