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

    RSA算法是由Rivest, Shamir 和 Adleman 在1978年公开提出的一种公钥密码算法。

    一般地,公钥密码算法的安全性都是建立在一些数学难题之上。

    目前常用的公钥密码算法主要有两大类:一是基于大整数银子分解问题,如RSA算法;

    一是基于离散对数问题,如ElGamal算法、椭圆曲线密码算法、Diffie-Hellman密钥交换协议等。

    RSA算法如下:

      找两个随机大素数p、q,n=pq,t=(p-1)(q-1);选择随机数e,满足e和t互质,然后计算d=e-1modt,公开(n,e)作为公钥,(n,d)保留作为私钥。

    其中d=e-1 mod t比较费解,这牵涉到一些关于数论的知识。在数论中,如果x与y的积除以z得到的余数为1,即x*y mod z=1,则称x和y对模z来说互为逆元,这种逆元关系用符号表示即为

    x=y-1 mod z,所以这里的y-1并不是代表y的倒数。

    RSA加密:RSA算法将待加密的字符串s看作是大整数,若s>n,将s表成a进位,a<n,一般取a=2t,然后把s分段,每段表示的整数值都小于n,然后对每段进行加密,运算如下

      假设明文为P,加密后的密文C=Pe mod n;

    RSA解密:解密过程与加密类似,密文为C,则明文P=Cd mod n;

    关于RSA算法的证明牵涉到一些数学知识,可以参看博客

    http://blog.sina.com.cn/s/blog_621417860100en8h.html

    更多RSA的信息http://baike.baidu.com/view/7520.htm

  • 相关阅读:
    NOIP 2012 T5 借教室 [洛谷P1083]
    POJ2437 Muddy roads
    POJ2288 Islands and Bridges
    洛谷P2014 TYVJ1051 选课
    POJ1741 Tree
    CODEVS1995 || TYVJ1863 黑魔法师之门
    TYVJ1939 玉蟾宫
    TYVJ1305 最大子序和
    POJ1737 Connected Graph
    TYVJ1864 守卫者的挑战
  • 原文地址:https://www.cnblogs.com/un4sure/p/2385447.html
Copyright © 2011-2022 走看看