天天看点

RSA算法

建立一个RSA密码体制的过程如下:

  1.用户选择一对不同的大素数p,q,将其保密。

  2.令n=p*q,用户公布n(素数乘以素数还是素数).欧拉函数Ψ(n) = (p-1)*(q-1),保密。

  3.选区正整数d,使其满足gcd(d,Ψ(n)) = 1,将d保密。

  4.根据ed≡1modΨ(n),计算e并将其公布。

  则公开钥k1 = (n,e)

    私钥k2 = (p,q,d)

下面看两道例题来加深理解

  问题一:在RSA环境中,某用户的公钥是e=31,n=3599.改用户的私钥是什么?

  问题二:假设p=5,q=11,e=3,M=9,应用RSA算法对其实现加密和解密。 

    解答如下:

        (一) 公钥e=31,n=3599

     N=3599=59X61 Ф(N)=58*60=3480

     ed=1 mod Ф(N) 0≤d≤3599

     ∴d=3031 ∴私钥KR={3031,59,61}

           (二)n=p*q=5*11=55,设m=(q-1)*(p-1)=40

       求d,ed=1 mod m 所以d=27 3

     加密:Y=M^e mod n= 9^3 mod 55=41 4

     解密:X=Y^d mod n= 41^27 mod 55=