浅谈利用RSA算法防止非法注册机的制作

http://tech.ddvip.com   2007年03月16日    社区交流

本文详细介绍浅谈利用RSA算法防止非法注册机的制作

  本文示例源代码或素材下载

  一、RSA简介

  RSA公开密钥密码系统是由R.Rivest,A.Shamir,L.Adleman提出的,不仅仅可用于数据的加密,也可用于数字签名,其算法如下:

  • 1、取两个相近的大素数p、q;
  • 2、计算n=p*q,z=(p-1)*(q-1);
  • 3、任取一个与z互素的整数e;
  • 4、计算满足e*d=1 mod z 的整数d;
  • 5、将明文m分成字符块s加密,每个块s小于n。现设明文m小于n,加密后形成密文c。 加密、解密过程如下:      加密:c=m^e mod n
          解密:m=c^d mod n
  • 6、(n,e)和(n,d)分别称为“公开密钥”和“秘密密钥”。根据Euler定理可得:

          m=c^d mod n=(m^e mod n)^d mod n=m
  •   现举例说明其工作过程:取两个素数p=11,q=13,n=p*q=11*13=143,z=(p-1)*(q-1)=(11-1)*(13-1)=120,再选取与z=120互素的整数e,如e=7,现可计算出满足7*d=1 mod 120的整数d=103,即:7*103=1 mod 120,7*103/120余1,整理如下:

      p=11
      q=13
      n=143
      e=7
      d=103
      (n,e)=(143,7)
      (n,d)=(143,103)

      以数据加密为例:

      甲向乙发送机密数据信息m=85,并已知乙的公钥(n,e)=(143,7),于是可计算出:

       c=m^e mod n=85^7 mod 143=123

      甲将c发送至乙,乙利用私钥(n,d)=(143,103)对c进行计算:

       m=c^d mod n=123^103 mod 143=85

      现乙已经得到甲向其要发送的机密数据信息。在这里,甲向乙发送信息,甲所拥有的仅仅是乙的公钥。

      以数字签名为例:

      乙要向甲发送信息,并要让甲确信此信息是由乙本人所发出的,于是,乙将能代表自己身份的编码值(如:123),利用私钥(n,d)=(143,103)进行计算,并将结果发送给甲:

    作者:赵春生    责编:豆豆技术应用

    正在加载评论...