您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 密码学实验-RSA公钥密码
实验报告实验八、RSA公钥密码实验目的:熟练掌握RSA公钥密码算法原理及实现。实验内容:1、写出RSA公钥密码算法及其实现。2、当取两素数分别为17、23,加密密钥为35时,写出其明文空间,并求出下列明文的密文:1、15、17、23、48、235。3、当取两素数分别为17、23,加密密钥为35时,求相应的解密密钥。实验结果:1.算法:Step1:选取两个大素数p和q,p和q保密Step2:计算n=pq,f(n)=(p-1)(q-1),n公开,f(n)保密Step3:随机选取正整数1ef(n),满足gcd(e,f(n))=1,e是公开的加密密钥Step4:计算d,满足de=1(modf(n)),d是保密的解密密钥2.p=17,q=23,n=pq=391,f(n)=(p-1)(q-1)=352,明文空间为{0,1,2,····390,391}。2.运行程序如下:#includemath.h#includestdlib.h#includetime.hvoidmain(){inti;doubleM,C,e,n,p,q,t;cout请输入素数p:;cinp;cout请输入素数q:;cinq;n=p*q;t=(p-1)*(q-1);cout请输入加密密钥e:;cine;cout输入明文M:;cinM;C=1;for(i=0;ie;i++){C=C*M;C=fmod(C,n);}cout计算出密文为:Cendl;}3.运行结果如下:(1)密文1的加密结果为:(2)密文15的加密结果为:(3)密文17的加密结果为:(4)密文23的加密结果为:(5)密文48的加密结果为:(6)密文235的加密结果为:4.gcd(e,f(n))=1即gcd(35,352)=1可求得解密密钥d=171,容易验证35*171=1(mod352)。即391modmod171cncmd总结与分析:通过本次实验熟练掌握RSA公钥密码算法原理。不仅能运算出简单的RSA公钥密码,也能通过程序迅速的解决复杂的RSA公钥密码。在以后的学习过程中还需要熟练知识结构。附录:ch8RSA公钥密码运行程序
本文标题:密码学实验-RSA公钥密码
链接地址:https://www.777doc.com/doc-7219317 .html