您的位置:首页 > 其它

rsa公钥加密时,明文为什么不能大于N

2012-01-11 13:28 1236 查看
rsa加解密公式

设A为明文,B为加密后的密文

加密过程  B=A^e mod n;

解密过程  A=B^d mod n;

 

从公式上可以看出,加解密时数据会mod n,那么大于N的数据,都会发生回绕,失去原有属性。

 

举例

1)生成密钥对

  a)选两个素数,为P和Q

     设P = 13, Q = 7

     则N = p * q = 91

    

  b)选择E,要求e 和 ( p - 1 ) * ( q - 1 )互质

       (p-1)*(q-1) = 12 * 6 = 72,选择E = 7则可以。

     现在 N = 91, E = 7

    

  c)选择D,要求(d*e) mod (p-1)*(q-1) = 1。

      (p-1)*(q-1)的值是72,所以

      ( d * e ) mod 72 = 1,( d * e )可以是73, 145, 217..........

      选d * e = 217,则d = 31

2)加解密过程

   a)设A为明文,B为密文,

        加密过程  B=A^e mod n;

        解密过程  A=B^d mod n;

   b)加密

        设a = 2 则 a ^ e = 2 ^ 7 = 128, mod 91 = 37,则 37为密文

        b = 37

   c)解密

        b ^ d = 37 ^ 31 = 4.1138973036067710421568685993113e+48, mod 91 = 2

        解密结果等于明文,加解密成功

   d)若明文 大于 n,假设 a等于93

        a ^ e = 93 ^ 7 = 60170087060757, mod 91 = 37,则密文还是37

        对37进行解密,得到的明文是2,与原始输入数据不一致

        所以明文 不能 大于 N

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  加密 解密 360 c