密码学课程设计-刘欣凯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
现代密码学实验
题目:2012现代密码学实验
姓名:刘欣凯学号:192102-21 院(系):计算机学院专业:信息安全指导教师:任伟职称:副教授
评阅人:职称:
2012 年12 月
现代密码学实验原创性声明
本人以信誉声明:所呈交的现代密码学实验是在导师指导下进行的研究工作及取得的研究成果,论文中引用他人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包含他人成果及为获得中国地质大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
毕业论文作者(签字):刘欣凯
签字日期:2012年12 月18 日
学校代码:10491 本科生学号:20101003356
现代密码学实验
本科生:刘欣凯
学科专业:信息安全
指导老师:任伟
二〇一二年十二月
目录
实验一古典密码算法 (5)
1.1 仿射密码 (5)
1.11 算法原理和设计思路 (5)
1.12 关键算法分析 (5)
1.13运行结果 (7)
1.2古典密码hill (8)
1.21古典密码hill概述 (8)
1.22 算法原理和设计思路 (8)
1.23 关键算法分析 (9)
1.24 运行结果 (10)
1.25 密码安全性分析 (10)
1.3古典密码Vegenere (12)
1.31古典密码Vegenere概述 (12)
1.32算法原理和设计思路 (12)
1.33 关键算法分析 (12)
1.34 运行结果 (13)
1.35密码安全性分析 (14)
1.4古典密码Playfair (15)
1.41古典密码Playfair概述 (15)
1.42算法原理和设计思路 (15)
1.43 运行结果 (17)
1.44 密码安全性分析 (17)
实验二ElGamal签名体制 (18)
2.1 ElGamal签名概述 (18)
2.2算法原理和设计思路 (18)
2.3关键算法分析 (20)
2.4运行结果 (20)
实验三 Rabin加密和签名 (21)
3.1 rabin加密解密概述 (21)
3.2 算法原理和设计思想 (21)
3.3 运行结果 (24)
实验四公钥密码算法RSA (25)
4.1 公钥密码算法RSA概述 (25)
4.2 算法原理和设计思想 (25)
4.3 关键算法分析 (27)
4.4 运行结果 (28)
4.5 密码安全性分析 (29)
实验总结和体会 (30)
实验一古典密码算法
1.1 古典密码仿射密码
1.11算法原理和设计思路
加法密码和乘法密码结合就构成仿射密码,仿射密码的加密和解密算法是:C= Ek(m)=(k1m+k2) mod n
M= Dk(c)=k3(c- k2) mod n(其中(k3 ×k1)mod26 = 1)
仿射密码具有可逆性的条件是gcd(k1, n)=1。当k1=1时,仿射密码变为加法密码,当k2=0时,仿射密码变为乘法密码。
仿射密码中的密钥空间的大小为nφ(n),当n为26字母,φ(n)=12,因此仿射密码的密钥空间为12×26 = 312。
仿射密码举例:
设密钥K= (7, 3), 用仿射密码加密明文hot。三个字母对应的数值是7、14和19。分别加密如下:
(7×7 + 3) mod 26 = 52 mod 26 =0
(7×14 + 3) mod 26 = 101 mod 26 =23
(7×19 + 3) mod 26 =136 mod 26 =6
三个密文数值为0、23和6,对应的密文是AXG。
1.12关键算法分析
填充矩阵,将明文输入,然后构成加密矩阵。构成矩阵以后再进行加密运算。
这一部分是解密算法。是加密的逆过程。
1.13运行结果
1.2 古典密码Hill
1.21 古典密码Hill 概述
Hill 体制是1929年由Lester S.Hill 发明的,它实际上就是利用了我们熟知的线性变换方法,是在Z26上进行的。Hill 体制的基本思想是将n 个明文字母通过线性变换转化为n 个密文字母,解密时只需要做一次逆变换即可,密钥就是变换矩阵。
1.22算法原理与设计思路
1.假设要加密的明文是由26个字母组成,其他字符省略。将每个字符与0-25的一个数字一一对应起来。(例如:a/A —0,b/B —1,……z/Z —25)。
2.选择一个加密矩阵n n A ⨯,其中矩阵A 必须是可逆矩阵,例如⎥⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢
⎢⎣⎡=152271321021
23916296101571823055117A 3.将明文字母分别依照次序每n 个一组(如果最后一组不足n 个的话,就将其补成n 个),依照字符与数字的对应关系得到明文矩阵ming n n len ⨯/。
4.通过加密矩阵A ,利用矩阵乘法得到密文矩阵mi n n len ⨯/= ming n n len ⨯/⨯n n A ⨯mod 26; 将密文矩阵的数字与字符对应起来,得到密文。
5.解密时利用加密矩阵的逆矩阵1-A 和密文,可得到明文。
6. 设明文为n n Z m m m m 2621),,(∈⋯+=,密文n
n Z c c c c 2621),,.,(∈⋯=,密钥为26Z 上的n*n 阶可逆方阵n n ij k K ⨯=)(,则
26mod 26
mod 1-==cK
m mK c 解密:明文加密:密文
1.23 关键算法分析
欧几里德算法又称辗转相除法,用于计算两个整数a,b 的最大公约数。 产生公约数的目的是为了下一步求逆矩阵和矩阵时方便运算。