编码理论实验报告实验四加密编码——RSA公钥密码

上传人:平*** 文档编号:9260586 上传时间:2017-10-02 格式:DOC 页数:3 大小:267.32KB
返回 下载 相关 举报
编码理论实验报告实验四加密编码——RSA公钥密码_第1页
第1页 / 共3页
编码理论实验报告实验四加密编码——RSA公钥密码_第2页
第2页 / 共3页
编码理论实验报告实验四加密编码——RSA公钥密码_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《编码理论实验报告实验四加密编码——RSA公钥密码》由会员分享,可在线阅读,更多相关《编码理论实验报告实验四加密编码——RSA公钥密码(3页珍藏版)》请在金锄头文库上搜索。

1、实验名称 实验四 加密编码-RSA公钥密码一、 实验目的1. 了解RSA公钥密码进行加密、解密的原理;2. 理解RSA公钥密码进行加密、解密的算法和步骤;3. 正确运用C语言编程实现RSA加密、解密功能。二、实验内容1. 在Visual C+环境中运用C语言熟练实现R SA加 密 ;2. 在Visual C+环境中运用C语言熟练实现R SA解 密 。三、 实验原理1. RSA的算法结构相当简单,整个算法可以描述如下:(1)选取两个大素数p和q(保密);(2)计算n=pq(公开),=(p一1(q-1)(保密);(3)随机选取整数e(公开,加密密钥),使得ed(ear)=1;(4)计算d(保密,私

2、人密钥),使得ed1(mod r),即d=e-1(mod r);(5)加密:c=me mod n;(6)解密:m=cd mod n。2. RSA算法的特点利用RSA对被加密的信息m (长度小于log2n的整数)进行加密得到相应的密文c=me mod n;解密算法则是计算m=cd modn。RSA的优点是不需要密钥分配,但缺点是速度慢。RSA的安全基于大数分解的难度。其公开密钥和私人密钥是一对大素数(100到200个十进制数或更大)的函数。从一个公开密钥和密文中恢复出明文的难度等价于分解两个大素数之积。3. 相关数论原理(1)剩余系设m0, C r = a | a=r+qm, qZ(r=0,1,

3、.,m-1), 则C 0 ,C1 ,.,Cm-1 称为模数m的剩余系。在C 0 ,C1 ,.,Cm-1 中各取一数a jC j ,j=0,1,.,m-1,此m个数a 0 ,a1 ,.,am-1 称为模数m的一组完全剩余系。特别地,完全剩余系0,1,.,m-1称为模数m的非负最小完全剩余系。如果C j 里面的数与m互素,称Cj 为与模数m互素的剩余类。在与m互素的全部剩余类中,各取一数所组成的集合就称为模数m的一组既约剩余系。(2)欧拉函数和欧拉定理欧拉函数(n)是一个定义在正整数集合上的函数,(n)的值等于序列0,1,.,n-1中与n互素的数的个数。由定义得(1)=1,(2)=1,(3)=2,

4、.。当p是素数时,(p)=p-1。性质: 模数 m 的一组既约剩余系含 (m)个数。 (m)个数作成模数 m 的一组既约剩余系的充分必要条件是两两对模数 m不同余且都与 m 互素。 gcd(m1 ,m2 )=1 时,(m 1 ,m2 )=(m 1 )(m 2 )。 p 为素数,k 为正整数时,(p k )=pk -pk-1 =pk-1 (p-1)。 (欧拉定理) 若gcd(a,m)=1, 则a (m) 1(mod m)。当m=p为素数时,即得到费马小定理。(费马小定理) 若p为素数,则a pa(mod p)。四、 实验步骤:1. 产生密钥(1)选两个大素数p和q(可运用Miller_Rabin

5、素性检测提高运算速度);(2)计算n=pq,(n)=(p-1)(q-1),(n)为欧拉函数;(3)随机选整数e,使得2e(n)-1,并且e与(n)互素,即gcd(n),e)=1;(4)计算d,使得de1(mod(n),即d是e在模(n)下的乘法逆元;(5)将n,e公开,而将d,p,q作为秘密。2. 加密加密运算公式为cm e(modn),其中m为明文,c为加密后的密文。3. 解密解密运算的公式为mc d(modn)。注:在具体实现加密解密过程中可用模平方重复法,避免溢出和计算量过大。五、参考程序见RSA.C程序。实验思考1. 公开密钥加密在防范密码分析上比常规加密更加安全,这种提法对吗?NO2. 公开密钥加密是一个使得常规加密已经过时的通用技术的提法对吗?NO3. 与使用常规加密时涉及密钥分配中心的相当繁琐的握手过程相比,使用公开密钥加密后密钥分配就变的非常简单的说法正确吗?NO4. 思考在 RSA 算法中如何选取 p 和 q 等参数以提高 RSA 加密算法的安全性?选取长度相等不同的两个大素数。实验心得:通过本次试验进一步加深了对RSA公钥密码进行加密、解密的原理理解,熟悉RSA公钥密码进行加解密算法的步骤,并运用C语言编程实现RSA加密、解密功能。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号