实验三 非对称加密算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三非对称密码算法(RSA)
实验日期:2012.9.27 班级:10网络安全(CIW)姓名:学号:一、实验目的
(1)理解非对称加密算法的原理和特点
(2)理解RSA算法的加密原理
二、实验要求
(1)会使用密码工具和VC++6.0
(2)准确完成实验内容,得出实验结果
(3)写出实验步骤和实验小结
三、实验步骤
本实验主机A、B为一组,C、D为一组,E、F为一组。
首先使用“快照X”恢复Windows系统环境。
(一) RSA生成公私钥及加密解密过程演示
(1)本机进入“密码工具”|“加密解密”|“RSA加密算法”|“公私钥”页签,在生成公私钥区输入素数p和素数q,这里要求p和q不能相等(因为很容易开平方求出p与q的值)并且p与q的乘积也不能小于
127(因为小于127不能包括所有的ASCII码,导致加密失败),你选用的素数p与q分别是:p=__71___;q=___53___。
(2)单击“随机选取正整数e”下拉按钮,随机选取e,e=__1013________。
如图1-1所示:
图1-1 素数p、q和随机数e
(3)单击“生成公私钥”按钮生成公私钥,记录下公钥(1013,3763) , 私钥(2677,3763),如图1-2所示:
图1-2 生成的公私钥
(4)在公私钥生成演示区中输入素数p=_71__和素数q=_53__,还有正整数e=_1013___。
单击“开始演示”按钮,如图1-3所示,查看结果,填写表3-1。
图1-3 公私钥生成演示
表3-1 公私钥生成演示结果
私钥d2677私钥n3763
公钥e1013公钥n3763
(5)在加/解密演示区中输入明文m=_3760_,公钥
n=_3763_(m (6)在密文c编辑框输入刚刚得到的密文,分别输入私钥 n=_3763_,私钥d=_2677_,点击“解密演示”按钮,查看RSA解密过程,然后记录得到的明文m=_3760_________。 (7)比较解密后的明文与原来的明文是否一致,如图1-4所示: 图1-4 比较解密前后的明文 根据实验原理中对RSA加密算法的介绍,当素数p=13,素数q=17,正整数e=143时,写出RSA私钥的生成过程:输入素数p:13和q:17,而且保密;计算n=13*17,将n=221公开;计算ф(n)=12*16,对ф(n)保密;随机地选择一个正整数e:143,1 图1-5 私钥生成结果 当公钥e=143时,写出对明文m=40的加密过程(加密过程计算量比较大,请使用密码工具的RSA工具进行计算):_得到对方的真实公钥(e,n);把消息表示成整数m,0<m≤n-1;使用平方-乘积算法,计算C = Ek(m) = me mod n;将密文C导出发送给对方。如图1-6所示: 图1-6 RSA加密过程 利用生成的私钥d,对生成的密文进行解密:__在“加密/解密”标签,单击“解密”按钮,导入文,输入私钥d和n解密________,如图1-7所示: 图1-7 解密 (二) RSA加密解密 (1)本机在生成公私钥区输入素数p和素数q,这里要求p和q不能相等,并且p与q的乘积也不能小于127,记录你输入的素数, p=__43___,q=___53__。 (2)点击“随机选取正整数e:”下拉按钮,选择正整数e,e=_1003_。 (3)点击“生成公私钥”按钮生成公私钥,记录下公钥e=_1003_, n=2279;私钥d=_1411_, n=_2279_。将自己的公钥通告给同组主机。 (4)本机进入“加密/解密”页签,在“公钥e部分”和“公钥n部分”输入同组主机的公钥,在明文输入区输入明文:_RSA加密 ______________________。 单击“加密”按钮对明文进行加密,单击“导出”按钮将密文导出到RSA 共享文件夹(D:\Work\Encryption\RSA\)中,如图2-1所示,通告同组主机获取密文。 图2-1 导出文件 (5)进入“加密/解密”页签,单击“导入”按钮,从同组主机的RSA共享文件夹中将密文导入,点击“解密”按钮,切换到解密模式,在“私钥d 部分”和“私钥n部分”输入自己的私钥,再次点击“解密”按钮进行RSA解密,如图2-2所示: 图2-2 解密密文 (6)将破解后的明文与同组主机记录的明文比较,如图2-3、2-4所示: 图2-3 同组主机记录的明文 图2-4 解密后的明文 (三) 源码应用(选做) 设计RSA加密工具,利用RSA加密算法对文件进行加密。 单击工具栏“VC6”按钮,启动VC++6.0。选择“File”|“Open Workspace…”加载工程文件“C:\ExpNIS\Encrypt- Lab\Projects\RSA\RSA.dsw”,如图3-1所示,基于此工程进行程序设计。 图3-1设计RSA加密工具 实验小结 1. 非对称密码算法解决了对称密码体制中密钥管理的难题,并提 供了对信息发送人的身份进行验证的手段,是现代密码学最重 要的发明。 2. 非对称加密算法的原理和特点:在公钥密码系统中每个实体都 有自己的公钥和相应的私钥。公钥密码系统的加密变换和解密 变换分别用E和D表示。任何实体B要向实体A发送信息m的步骤 如下:实体B首先获得实体A的真实公钥的拷贝(eA),实体B 使用eA计算密文c=E(m)并发送给实体A,实体A使用自己的 私钥dA,计算m=D(c)解密密文,恢复出明文m。这里公钥不 需要保密,但要保证它的真实性,即eA确实是实体A掌握的私 钥dA所对应的公钥。提供真实的公钥比安全地分配密钥实现起 来要容易得多。这也是公钥密码系统的主要优点之一。 3. RSA算法的加密和解密过程: 公私钥的生成算法: (1)随机地选择两个大素数p和q,而且保密; (2)计算n=pq,将n公开; (3)计算ф(n)=(p-1)(q-1),对ф(n)保密; (4)随机地选择一个正整数e,1 (5)根据ed=1 mod ф(n),求出d,并对d保密。 公开密钥是由(e,n)构成,私有密钥由(d,n)构成。 2.加密算法 (1)得到对方的真实公钥(e,n);