资源描述
RSA 算法的实现一、实验目的1. 熟悉公钥密码体制;2. 掌握产生密钥对的程序设计方法;3. 掌握产生加密/ 解密的程序设计方法。二、实验内容和要求1 .进行RS劭口密/解密算法的设计;2 .对RSA1序进行编译和调试;3 . 使用编写的程序进行加密和解密。三、实验环境运行Windows操作系统的PC机,可以利用具有VC+铭言环境;如果所运用 的语言是JAVA那么也可以利用JAVA语言环境来实现RS颇法的加密和解密。 四、实验步骤1.采用C+邮言进行本次实验的编写,实验的代码如下:#include #includeint candp(int a,int b,int c) int r=1;b=b+1;while(b!=1)r=r*a;r=r%c;b-;printf(%dn,r);return r;void main()int p,q,e,d,m,n,t,c,r;char s;printf(please input the p,q: );scanf(%d%d,&p,&q);n=p*q;printf(the n is %3dn,n);t=(p-1)*(q-1);printf(the t is %3dn,t);printf(please input the e: );scanf(%d,&e);if(et)printf(e is error,please input again: );scanf(%d,&e);d=1;while(e*d)%t)!=1) d+;printf(then caculate out that the d is %dn,d);printf(the cipher please input 1n);printf(the plain please input 2n);scanf(%d,&r);switch(r)case 1: printf(input the m: ); /*输入要加密的明文数字 */scanf(%d,&m);c=candp(m,e,n);输入要解密的密文数字 */printf(the cipher is %dn,c);break;case 2: printf(input the c: ); /* scanf(%d,&c);m=candp(c,d,n);printf(the cipher is %dn,m);break;getch();2、代码的思想:首先随意输入两个素数p和q,然后利用算法计算出p*q即n,再算出(p-1)*(q-1)即t,并且同时输出计算的结果n和t ,接下来输入e, 经过算法可以计算出d,由此可以知道RSA算法的公钥和私钥;接下来可以有两 个选择:一选择输入明文,有明文经过算法可以计算出密文;二输入密文,有密 文经过算法可以计算出明文。3、运行以上代码就可以得到实验的结果。五、实验结果实验结果如下图所示:六、实验心得:通过这次的实验,了解了非对称密码算法RSA会运用一些现成的算法进行编程,对一些比较复杂的算法开始基本认识并深刻的掌握。在以后所涉及这方面的知识将会有全新的了解和掌握。姓名:刘新平专业:互联网班级:10-03 班学号:0313
展开阅读全文