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呢 如果这个数超级大的话

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

  • 相关阅读:
    java操作练习
    java认知
    java了解
    抽象类及抽象类
    杨辉三角实例菱形实例
    案例分析之运行顺序
    Object类的方法,toString的重写.
    多态
    类的继承
    面对对象
  • 原文地址:https://www.cnblogs.com/eret9616/p/8993726.html
Copyright © 2011-2022 走看看