实验 4 非对称密码算法 RSA(验证型)
一、 实验目的
通过实际编程了解非对称密码算法 RSA 的加密和解密过程,加深对非对称
密码算法的认识。
二、 实验原理
对称密码算法要求通信双方通过交换密钥实现使用同一个密钥,这在密钥的
管理、发布和安全性方面存在很多问题,而非对称密码算法解决了这个问题。加
密密钥和解密密钥是不同的,其中加密密钥是可以公开的,解密密钥是要求保密
的,并且不能用其中的一个推导出另一个。它的安全性是建立在“大数分解和素
性检测”这个数论难题的基础上,即将两个大素数相乘在计算上容易实现,而将
该乘积分解为两个大素数因子的计算量相当大。虽然它的安全性还未能得到理论
证明,但经过 30 年的密码分析和攻击,迄今仍然被实践证明是安全的。
三、 实验环境
运行 Windows 或者 Linux 操作系统的 PC 机,具有 gcc(Linux)、VC(Windows)
等 C 语言编译环境。
四、 实验内容和步骤
1、为了加深对
RSA
算法的了解,根据已知参数:
p 3, q 11, M 2
,手工
计算公私钥,并对明文进行加密,然后对密文进行解密。
2、编写
RSA
程序,加密一段文字,了解
RSA
算法原理。尝试加密一大段文
字,记录程序的运行时间。使用 DES 算法加密相同的文字,比较两种算法加密
的速度。
3、编写一个程序,随机选择 3 个 较大的数
x,e,n
,计算
x
e
mod n
,记录 程
序运行时间。
查阅资料给出简单说明大数在计算机上是如何表示,如何进行运算。
4、查阅资料,找出目前实际可行的素数判定法则,并比较各自的优缺点。
五、
实验步骤
1、
p=3,q=11 则 n=pq=33,f(n)=20,选择 e=7,则 d=3