密码学课程设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中国矿业大学

密码学课程设计报告

院系:计算机学院

专业:信息安全

班级:信安08-3班

姓名:许多

学号:08083701

指导老师:汪楚娇

2011年6月

1绪论

密码技术是一门古老而十分有用的技术,随着计算机通信技术的迅猛发展,大量的敏感信息通过公共设施或计算机网络进行交换。特别是Internet的广泛应用、电子商务和电子政务的迅速发展,越来越多的信息需要严格的保密,如:银行账号、个人隐私等。正是这种对信息的机密性和真实性的需求,密码学才逐成为比较热门的学科。

近几年来,信息安全成为全社会的需求,信息安全保障成为国际社会关注的焦点。而密码学是信息安全的核心,应用密码学技术是实现安全系统的核心技术。应用密码学研究如何实现信息的机密性、完整性和不可否认性。随着信息系统及网络系统的爆炸性增长,形形色色的安全威胁严重阻碍了当前的信息化进程,因此,亟待使用密码学来增强系统的安全性。而密码学课程设计正是为这方面做出了具体的实践。

经过前一段时间的学习,我们对于密码学这门课程有了更深的认识和了解,对于一般的密码学算法学会了怎么样使用。因此,通过密码学课程设计这么课程,对前一段的学习进行了检查。在设计中,我们选择做了古典密码算法,分组密码算法DES,公钥密码算法RSA。这几种经典的密码算法是我们学习密码学课程设计所必须掌握的,也是学习信息安全的基础。在接下来的部分,我将详细介绍我设计的过程以及思路。

2 古典密码算法

2.1 古典密码Hill

2.11 古典密码Hill 概述

Hill 体制是1929年由Lester S.Hill 发明的,它实际上就是利用了我们熟知的线性变换方法,是在Z26上进行的。Hill 体制的基本思想是将n 个明文字母通过线性变换转化为n 个密文字母,解密时只需要做一次逆变换即可,密钥就是变换矩阵。

2.12算法原理与设计思路

1.假设要加密的明文是由26个字母组成,其他字符省略。将每个字符与0-25的一个数字一一对应起来。(例如:a/A —0,b/B —1,……z/Z —25)。

2.选择一个加密矩阵n n A ⨯,其中矩阵A 必须是可逆矩阵,例如

⎥⎥⎥⎥⎥⎥⎦

⎢⎢⎢⎢⎢⎢⎣⎡=15227132102123916296101571823055117A

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),,.,(∈⋯=,密钥为26

Z 上的n*n 阶可逆方阵n n ij k K ⨯=)(,则

26

mod 26mod 1

-==cK

m mK c 解密:明文加密:密文

2.13 关键算法分析

欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。产生公约数的目的是为了下一步求逆矩阵和矩阵时方便运算。

这段代码是加密的过程,主要设计思想是输入的明文与矩阵做乘法,当明文长度为矩阵阶数的倍数时,自动将明文变为列数与矩阵阶数相同,然后进行计算。当明文长度不是矩阵阶数的倍数时,则会出现无关字符。

代码中的利用矩阵乘法得到的密文输出即可,而解密的过程只需要利用矩阵的逆矩阵,也就是我们在做乘法的时候将矩阵换为它的逆矩阵即可得到明文。

2.14 运行结果

2.15 密码安全性分析

经过算法分析和设计,我们可以知道它的安全强度(m 是素数,模数为合数,不是任意矩阵可逆) 为 26的m*m 次方。例如,当m=5时,得出它的安全强度为2的117次方。通过矩阵,将信息均匀分布到每个m 长向量的每个分向量中,具有比较好的随机性,相对于其他的古典密码来说,Hill 是比较安全的。 但是在已知m 组明文、密文和解密算法的情况下,我们需要解M 组同余方程组,因此,密钥是可以恢复的。关键是求得加密矩阵的逆—解密矩阵。只要分析出两个明文向量(线性无关)与相应的密文向量。若有

如果甲方截获了一段密文:OJWPISWAZUXAUUISEABAUCRSIPLBHAAMMLPJJOTENH

经分析这段密文是用HILL 2密码编译的,且这段密文的字母 UCRS 依次代表了字母 TACO ,我们接着将要进行破译。 关系如下:

计算矩阵的逆

11332244b a b a A A b a b a ⎛⎫⎛⎫⎛⎫⎛⎫== ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭⎝⎭13132424b b a a A b b a a ⎛⎫⎛⎫

= ⎪ ⎪⎝⎭⎝⎭

1

13132424b b a a A b b a a -⎛⎫⎛⎫= ⎪⎪⎝⎭⎝⎭⇒⇒11321αβA C U ==⎪⎪⎭⎫ ⎝⎛↔⎪⎪⎭⎫ ⎝⎛⎪⎪⎭⎫

⎝⎛↔⎪⎪⎭⎫

⎝⎛=A T 1201α221918αβA S R ==⎪⎪⎭⎫ ⎝⎛↔⎪⎪⎭⎫ ⎝⎛⎪

⎪⎭

⎫ ⎝⎛↔⎪⎪⎭

⎫ ⎝⎛=O C 1532α203115A ⎛⎫ ⎪⎝⎭2118319⎛⎫

= ⎪⎝⎭

()122118

det (mod 26)345(mod 26)7

319

ββ===

破译

密文向量

明文向量

明文:Clinton is going to visit a country in Middle East

2.2 古典密码 Vignere

2.21古典密码 Vignere 概述

1858年法国密码学家维吉尼亚提出一种以移位替换为基础的周期替换密码。这种密码是多表替换密码的一种。是一系列(两个以上)替换表依次对明文消息的字母进行替换的加密方法。 2.22 算法原理与设计思路

1.首先使用维吉尼亚方阵,它的基本方阵是26列26行。方阵的第一行是a 到z 按正常顺序排列的字母表,第二行是第一行左移循环一位得到得,其他各行依次类推。

2.加密时,按照密钥字的指示,决定采用哪一个单表。例如密钥字是bupt ,加密时,明文的第一个字母用与附加列上字母b 相对应的密码表进行加密,明文的第二个字母用与附加列的字母u 相对应的密码表进行加密,依次类推。

3.令英文字母a,b,…,z 对应于从0到25的整数。设明文是n 个字母组成的字符串,即 m=m1m2m3m4…mn

密钥字周期性地延伸就给出了明文加密所需的工作密钥 K=k1k2…kn,E (m )=C=c1c2…cn 加密:Ci=mi+kimod26

解密:mi=ci-kimod26,i=1,2,3,…,n 2.23关键算法分析

12118319-⎛⎫ ⎪⎝⎭1918(mod 26)15(mod 26)321-⎛⎫=⋅ ⎪-⎝⎭251673⎛⎫= ⎪⎝⎭

1203115A -⎛⎫= ⎪⎝⎭1

2118319-⎛⎫ ⎪⎝⎭⎪⎪⎭⎫

⎝⎛=901711523902421952211016192112119113⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫ ⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭189128113121015581916211313161020148⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫

⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭

39201419151420221912141597971599⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫ ⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭20321202514945120115141891341251920⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫⎛⎫ ⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭⎝⎭

相关文档
最新文档