收藏 分享(赏)

密码学研究与加密系统实现.doc

上传人:fmgc7290 文档编号:7406295 上传时间:2019-05-16 格式:DOC 页数:78 大小:1.62MB
下载 相关 举报
密码学研究与加密系统实现.doc_第1页
第1页 / 共78页
密码学研究与加密系统实现.doc_第2页
第2页 / 共78页
密码学研究与加密系统实现.doc_第3页
第3页 / 共78页
密码学研究与加密系统实现.doc_第4页
第4页 / 共78页
密码学研究与加密系统实现.doc_第5页
第5页 / 共78页
点击查看更多>>
资源描述

1、电子科技大学学士学位论文1目录第一章:引言 311 现代加密系统状况 412 针对对象 .413 本文研究内容 .5第二章:密码学研究 621 密码学研究 .6211 经典加密法 62111 经典单码加密法 .62112 经典多码加密法 72113 经典多图加密法 .102114 经典换位加密法 .10212 经典加密法小结 .11213 现代加密法 .112131 流加密法 .112132 块加密法 .122133 公钥加密法 .192134 密钥管理,散列函数 .19214 现代加密法小结 .22215 加密算法小结 .22第三章:加密系统分析 .2331 常见加密系统 23311 加密王

2、 23312 太阳雪文件加密器 2432 常见加密系统解刨 2433 加密系统实现功能 2534 加密系统分析小结 26第四章:加密系统设计 .27电子科技大学学士学位论文241 加密系统组件设计 2742 加密系统用例图设计 2843 加密系统操作界面设计 31431 加密系统职工界面设计 314311 加密系统职工界面类图设计 .3143111 主界面版块 mainPanel 设计 32431111 centerPanel 设计 .32431112 promptPanel 设计 .334311121 prompt01 设计 .334311122 prompt02 设计 .33431113

3、inputPanel 设计 344311131 input1 设计 .344311132 input2 设计 .3443112 系统反馈版块 JTextAera设计: 3543113 按钮版块 ButtonPanel设计 35431131 Cancel 按钮设计 35431132 submit 按钮设计 36432 加密系统部门界面设计 364321 加密系统部门界面类图设计 .3643211 主界面版块 mainPanel 设计 36432111 centerPanel 设计 .37432112 promptPanel 设计 .374321121 prompt01 设计 .384321122

4、 prompt02 设计 .38432113 inputPanel 设计 384321131 input1 设计 .394321132 input2 设计 .3943212 系统反馈版块 JTextAera设计: 39电子科技大学学士学位论文343213 按钮版块 ButtonPanel设计 40432131 Cancel 按钮设计 40432132 submit 按钮设计 4143214 选择版块 optionPanel设计 41432141 选择类 initOpution()设计 41433 加密系统经理界面设计 4243311 主界面版块 mainPanel 设计 42433111 ce

5、nterPanel 设计 .43433112 promptPanel 设计 .434331121 prompt01 设计 .444331122 prompt02 设计 .44433113 inputPanel 设计 444331131 input1 设计 .454331132 input2 设计 .4543312 系统反馈版块 JTextAera设计: 4543313 按钮版块 ButtonPanel设计 46433131 Cancel 按钮设计 46433132 submit 按钮设计 4643314 选择版块 optionPanel设计 47433141 选择类 initOpution()

6、设计 4744 加密系统算法设计 .48441 MD5 算法设计 484411 MD5 类图设计 .484412 MD5 类设计 .484413 MD5 类测试类设计 .49442 AES 算法设计 504421 AES 算法类图设计 .504422 AES 测试类图设计 .51电子科技大学学士学位论文44423 AES 算法 AESMap类设计 514424 AES 算法类设计 .544425 AES 算法测试类设计 .68第五章: 加密系统实现 6951 加密系统职员版实现 69511 加密系统职员版界面 69512 加密系统职员版算法设置 7052 加密系统部门版实现 70521 加密系

7、统部门版界面实现 70522 加密系统部门版算法设置 7153 加密系统经理版实现 72531 加密系统经理版界面实现 72532 加密系统经理版算法设置 72第六章:总结 .7361 系统效果 7362 系统改进 7463 设计过程心得 74致谢 .75参考书籍 .76电子科技大学学士学位论文5密码学研究与加密系统的实现第一章:引言随着通信和计算机技术的快速发展及经济全球化应用的推动,互联网表现出广泛的覆盖性(包括地域的覆盖性、应用领域的覆盖性、使用人群的覆盖性) 、使用的方便性、信息传递的快捷和运作的低成本性,人们对信息网络的依赖程度越来越大,各种新兴的网络应用层出不穷,并互相推动。移动通

8、信、电子商务、电子政务、企业信息化、 “三金工程”等与社会发展、人们生产和生活息息相关领域的信息安全问题,越来越成为全社会关注的焦点,并成为制约网络应用发展的主要瓶颈之一。11 现代加密系统状况现代的加密系统功能强大,包括了数据库加密系统,网络加密系统,文件加密系统,图片加密系统等等。但是只针对了网络信息安全的部分。缺少针对商务公司内部、国家内部行政、军事内部行政部门间的加密系统。而其加密方法在对抗穷尽暴力破解法上也没有强力的抵抗,使其加密系统形同虚设。没有起到保护文件、图片等的作用。很多公司因为内部人员流失导致其专利和项目内容被剽窃、国家内部行政由于人员流动导致国家机密失窃、军队内部因为部分

9、人员或者间谍关系军事机密外泄。应该说,现代的加密系统应该从算法上从功能上走出来,更多的从人的因素来设计加密系统。现在急需要一个针对企业环境、国家行政内部环境、军队内部环境的一个加密系统,使其因人员的因素造成的损失降低成最小。 电子科技大学学士学位论文612 针对对象本文设计的加密系统主要针对商务公司内部、国家内部行政、军事内部行政部门间的加密。让内部人员只能看到自己负责的那部分内容。无法查找、修改、偷窃到其他部门负责的内容。杜绝了因内部人员原因,导致的专利的丢失,国家机密的失窃,军事机密的外泄等等情况出现。其功能大概分成三部分:加密算法、数据库、操作界面。其组成分为 N部分(N 为部门数量)

10、。从技术上讲加密系统的技术难点在加密算法上。从而学生在张教授的带领下,开始学习密码学。密码学是用来保证信息安全的一种必要的手段,可以这样说,没有密码就没有信息安全,所以密码学是信息安全的一个核心。那么信息安全必须是密码学的应用,就是只要提到安全问题,其中必须是以密码理论为基础,不可以不用密码而谈安全,但是仅仅依靠密码学来保证信息安全也是不够的,还是需要关于安全方面的一些立法和管理政策手段等等,所以从技术上来说,密码学是信息安全的一个核心技术。而信息安全不仅仅包括了网络间的信息安全,那仅仅只能防范外部对信息的威胁。而来自于本地计算机上的对信息的威胁,就必须使用本地的加密系统了。学生通过对加密算法

11、历史的研究得出结论。加密系统必然会有经过密码分析而排列出穷尽的可能从而破解掉的方法,其理论方法,就是让想利用当代计算机高性能的优势,排列出所有可能的密码,一一套用到系统中。从而得到密码,导致系统形同虚设。为了防止这种破解方法。就是让系统的密码的组合足够的多,多到连现代的计算机也不能在可以接受的时间内排列出所有可能的密码,这满足了 Kerckhpffs 规律 1的第一条。穷尽破解法是对加密系统威胁最大最有效果的方法。经过学习过前人开发的加密系统以及经典密码学与现在密码学 , 应用密码学 ,Classical and Contemporary Cryptology 后,学生利用所学知识初步设计了一

12、个针对穷尽暴力破解的加密系1 Kerckhpffs 规律:佛兰德的密码员 Auguste Kerckhoffs 在 19 世纪的著作 La Crypthographies Militaire 中所列举的加密系统必具有的六条件。分别是:(1) 加密系统在实际中应不可能破解,尽管在理论上不可破解。(2) 破解加密系统应不会打扰通信者。(3) 密钥应无须做记录就能记住,并容易修改(4) 密码应能够用电报来传输。(5) 设备或稳当应一个人携带或操作。(6) 系统应很容易操作,无须掌握一长串的规则或进行培训。电子科技大学学士学位论文7统并实现了该系统。13 本文研究内容加密系统离不开密码学。自从 50

13、多年前香龙的“保密通信的信息理论”一文问世以来,密码学逐步从经验艺术走上了严谨的科学的道路,成为了当今社会信息安全技术的坚实基石。加密系统中密码的选用也是一门严谨的课程。本文第二章介绍密码学研究。当然,加密系统需要参考前人经验然后得出自己的果实。本文第三章加密系统的分析。最后加密系统的实现:本文第四章系统设计以及第五章的系统实现,第六章为全文总结。第二章:密码学研究21 密码学研究和其他技术一样,加密系统的评估最终也落到经济因素上来。一个加密法不光为了安全而“牢不可破” (而且它未必是牢不可破的) 。如果获得信息的代价比破解加密的代价更小,就可以说该数据是安全的。或者,如果加密需要的时间比信息

14、的有用周期更长,该数据也是安全的。因为,任何加密法的最终安全性也是基于这样一个原理:付出大于回报。 2下面将从经典加密法开始,讨论常见加密算法的优劣。从而得到适合Kerckhpffs 规律 3的加密算法或者它们的组合。2 Classical and Contemporary Cryptology by Richard Spillman,Copyright , 2005 C3 Kerckhpffs 规律:佛兰德的密码员 Auguste Kerckhoffs 在 19 世纪的著作 La Crypthographies Militaire 中所列举的加密系统必具有的六条件。分别是:(1)加密系统在实

15、际中应不可能破解,尽管在理论上不可破解。(2 破解加密系统应不会打扰通信者。(3)密钥应无须做记录就能记住,并容易修改(4)密码应能够用电报来传输。(5)设备或稳当应一个人携带或操作。(6)系统应很容易操作,无须掌握一长串的规则或进行培训。电子科技大学学士学位论文8211 经典加密法介绍经典加密法。每种加密法将举例一种最具有代表性的加密法。并且分析其优劣。CAP 是一种加密分析工具。学生仅仅在做该篇论文的时候把它作为学习的手段来使用。2111 经典单码加密法21111 关键词加密法单码加密法是一种替换加密法,其中的每个明文只能被唯一的一个密文字母所替换。列如:在给定的加密法中,明文字母“a”在

16、密文中可能总是显示为“n” 。恺撒曾经使用过的恺撒加密法 4就是很好的范例。如果位移数是 3,则恺撒加密法总是用密文字母“d”代替字母“a” ,密文字母“e ”替代字母“b” 。密文字母“f”替代字母“c ”等。21112 仿射加密法仿射加密法和单码加密法没有什么不同,因为明问的每个字母分别只映射到一个密文字母。因为,破解关键词加密法的工具同样可以用于仿射加密法。唯一不同的就是密钥替换模式不是基于关键词了。但是,通过给定一个已知的明文攻击,求解出仿射方程式,破解仿射加密发更容易。对于 CAP来分析它,也是很容易的。21113 多文字加密法多文字加密法是另一种脆弱的单码加密法,之所以这里讨论,是

17、因为它有些特别。它用一对字母来替代每个明文字母。加密后的密文是明文的两倍大,看上去很奇怪的。尽管肯定没人会使用这种加密法,但他表明了一些有趣的特征,这些特征会在其他一些功能更强大的加密法中出现。当然这种加密法在CAP分析器面前是不堪一击的。4 恺撒加密法:朱利叶斯*恺撒使用过的加密算法,用来把高卢进行的战争消息传回罗马。使用的密钥是移动 3 位。后来,奥古斯塔斯*恺撒也使用该加密算法,不同的是,他的密钥是 1 位。首先写下 26 个字母:ABCDEFGHIJKLMNOPQRSTUVWXYZ 。该加密法把明文中的每个字母都用其在字母表中右边的第 4 个字母替换,也就是说“A”会被“B”替换,“X

18、”被 A 替换如此类推。电子科技大学学士学位论文92112 经典多码加密法21121 Vigenere 加密算法Vigenere加密算法是个很著名的加密法。其实它是自动密钥的一个简化形式。这个加密法由 Blaise de Vigenere于 16世纪开发。曾一度失传,直到 19世纪才被重新发现。由于某些原因,那时的密码学家将自动密钥加密法中功能较弱的版本冠以 Vigenere.这样的后果是,这种较低级的加密法,由于来历不明,即使在其基本弱点被暴露后的很长时间内也未能被破解。这让它成为了历史上最著名的多码加密法之一。 5其自身问题就是关键词本身会重复留下把柄,让破解能确定关键词长度从而破解。21

19、122 自动密钥加密法1550年,物理学家和数学家 Girolamo Cardano描述了初始的自动密钥加密法,该方法比简单的 Vigenere加密算法更安全。至少,看不出它具有密钥重复的弱点。当然,该加密法也不是想象中那么安全,它只是拥有一个“运动中”的密钥的加密法而已。21123 Nihilist 加密法Nihilist加密法起源于沙皇时期俄罗斯地下党所使用过的一种加密方法。它用于囚犯之间的通信。那时候,大多数俄罗斯囚犯被单独监禁,禁止于其他囚犯通信联系。囚犯们敲打墙壁,敲打的次数表示棋盘上的字母位置。他们使用这个方法很熟练,每分钟 10-15个单词进行通信。这种棋盘加密的方法最终发展成为

20、 Nihilist加密法的核心。Nihilist 加密法有着与 Vigenere加密算法同样的弱点。要破解它很复杂,因为它使用的数字而不是字母。但是数字也可以被破解。当然这仅仅对于人工而言。在 CAP面前,这种加密法将如儿戏一般。21124 圆柱面加密法由 Etienne Bazeries于 1891年发明的圆柱面加密法可以算得上最著名的加密算法之一了。1891 年他试图让法国军队使用该加密法,但是失败了。但是,30年后的 1922年,美国军队使用了他的加密法。Bazeries 加密法由 20个轮组成,每个轮上的字母表顺序不同。如图:5 Classical and Contemporary C

21、ryptology by Richard Spillman,Copyright , 2005 C电子科技大学学士学位论文10这些轮先按照预先选定的顺序排列(这个顺序就是该加密法的密钥)转动这些轮,使明文出现在同一条直线上,然后可以选取任意的其他直线上的字母作为密文。如果只使用 3个轮,顺序为 1,5,3,明文为“hat”密文则是“sxh”了。这种加密法仍然很脆弱。破解该方法的技巧早在 1893年就被 Marquis de Viaris发现了,这种方法叫:de Viaris 法。该方法必须拥有两个条件才能破解它。第一,该加密法是 Bazeries圆柱面加密法。而且已知圆柱面的内容;第二,至少知道

22、了一个明文单词。因此,de Viaris法属于已知明文攻击法。其目标是确定圆柱面的实际顺序。21125 回转轮加密法回转轮加密法是二战时期德国使用的加密法。是用电机系统来实现多码变换的方法。回转轮是一个圆盘,它的两面都有电子接点,每个接点代表字母表电子科技大学学士学位论文11中的一个字母。回转轮内部有连接个接点的点心,这种连接方式定义了单码替换方式。一个简单的回转轮如图:由于每个回转轮是在内部用电线连接,以表示字母表中 26个字母的替换模式,因此其替换数量达到了:26!=403 291 461 126 605 584 000 000如果将几个回转轮串连起来,并以不同的速率转动,就可以建成一个强

23、大的多码加密系统。二战德国使用了这种类型的回转轮系统,称为 Enigma密法。令德国想象不到的是,在战争爆发前,英国就已经破解了 Enigma加密法。从而导致了Enigma加密机的弱点暴露。于 20世纪 30年代早期,Marian Rejewski、Henryk Zygalski和 Jerzy Rozycki重新构建了一个解密机器。这是密码分析历史上最让人吃惊的成功事件了。当然现在计算机的强大功能和运算速度,使用强力攻击法破解回转轮加密法,在已知的一些明文的条件下,就更是如此了。CAP 就可以实现这种攻击法。2113 经典多图加密法21131 Playfair 加密法由 Charles Whe

24、atstone开发,以他的朋友 Lyon Playfair命名。它不仅比以前的标准单码加密法更具挑战性,而且它的时间令人出奇的简单。有证据表明,英国在布尔战争期间使用了该加密法。事实证明,该加密法并不是没有弱点,有两种破解它的方法。一种是探测词破解,另外一种是关键词发现破解法。CAP 软件也可以实现这两种攻击。21132 Hill 加密法电子科技大学学士学位论文121929年,Hill 算法问世。用数学方法来创建常见的多码加密法首次出现。该加密法以发明人 Lester S.Hill来命名的。1929 年他发表了一篇名为“Cryptography in an Algebraic Alphabet

25、”的短论文,提出了一种基于联立方程的加密算法。该算法将含有 M个字母的明文快加密成含有 M个字母的密文块。每个明文字母被赋予一个数值,通常是 a=0,b=1,z=25,但 Hill使用的是随即赋值。块中每个字母的数值一起用来生成一组新的数值,这些数值就是用来表示密文字母。Hill算法可以很好的防止密文攻击。事实上矩阵越大,该加密算法抗攻击力越强。但是,它还是有弱点。已知明文攻击法很容易就能破解它。即用已知明文-密文组建方程组,求解方程组后,就能找到密钥。2114 经典换位加密法21141 置换加密法置换加密法中,将密文分成固定长度的块。置换函数 F用于从 1-D中选取一个整数。然后每个块中的字

26、母根据 F重新排列。这种加密法的密钥就是(D,F) 。可以用密文攻击法和已知明文攻击法来破解置换加密法。密文攻击法是查看密文块,查找出可能生成可读单词的排列方式。一但发现某个快的置换方式,就可以应用到密文所有的块中。已知明文攻击法就更简单。以下 3个步骤:(1)含有于已知单词相同字母的块。(2)通过比较已知单词于密文块,确定置换方式。(3)在密文的其他块上测试上面得出的置换方式。21142 列置换加密法这种加密法的密钥是列数和读取的顺序。如果列数很多,记起来可能会比较困难,因此可以将它表示成一个关键词,该关键词长度等于列数,而其字母顺序决定读取列的顺序。这个加密法也不是完美的。首先尝试找出换位

27、矩形的可能大小(多少行或者多少列) 。第二,尝试找出这些可能的矩形中哪个是正确的。第三,知道了正确的矩形后,尝试重新排列矩形列,以便还原消息。21143 双重换位加密法正如名字暗示的那样,双重换位加密法先用列换位法将明文加密,然后再次用列换位法加密第一次加密的密文加密。两次使用的关键词可以相同。经过两电子科技大学学士学位论文13次换位后,明文字母的位置完全被打乱了。破解上也正如其名一样,越是复杂的算法,将越容易有弱点。一个弱点在于使用相同的密钥对将多个相同大小的密文加密的密文中。212 经典加密法小结历史上经典加密法的开发和时间大多数都是由手工完成的。而其分析技术也大多数也是由手工完成的。而经

28、典和现代加密算法的区分。就从使用手工和使用计算机的划分来区别开了。213 现代加密法现在将正式进入计算机加密的讨论。加密法和分析工具不再由手工实现了。整个加密法将充分利用计算机善于处理加密的复杂性的特征。但是,正如我们所讨论的那样,现代加密算法还是扎根于经典加密算法的。学生将从讨论中拿出其优劣,和部分实现的代码。2131 流加密法一个简单的流加密法需要一个随即的二进制流作为密钥。通过将明文于这个随机的密钥流进行 XOR6运算,就可生成密文。将密文与相同的随机密钥流进行 XOR 逻辑运算即可还原成原明文。过程如下:该方法是进入 21 世纪后第一个靠计算机运算的加密法。当然也是很多弱点的。用插入攻

29、击法破解。攻击法很简单,要求能在明文中插入一个位,并截获密文流。但是,事实证明。在满足一定的条件下,流加密法是一个不可破解的加密6 XOR 是一个特殊的二进制逻辑运算,有两个输入一个输出。如果两个输入不同,则输出为 1。电子科技大学学士学位论文14法。如果密钥流是完全随机的,并与明文一样长,那么它就不可破解。在这种条件下,流加密法对密文攻击法是绝对安全的。当然,要生成随机的位流是很困难的。而且,要求密钥流与明文一样长,这意味着不能重复。这也是同样难以做到的。因此大多数的流加密法只是近似的满足这些条件,所以它们不是不可破解的。2132 块加密法今天使用的加密法中,块加密法是最常见的类型。他们是从

30、替换-换位加密法到计算机加密的概括。真如其名字一样,块加密法每次作用于固定大家的位块。如图:块加密法将明文分成 M 个块:M1,M2,Mn。他对每个块执行相同的变换,从而生成 m 个密文块 C1,C2,,Cn。块中的大小可以是任意数目的位,但通常是很大的数目(64 位或更多位的倍数) 。对于一个很大的块,块加密法很象经典多密加密法,如 Playfair 加密法,也是将两个或多个明文字符映射到一个密文块。因此块加密法具有多图加密法那种抵抗频率分析攻击法的能力。另一方面,如果块的大小只有 8 位(即是一个字符) ,那么块加密法就不比经典单码替换加密法好的哪去。看上去一些经典加密法(Vigenere

31、 加密法)也可以称做块加密法,因为Vigenere 加密法关键词也可以定义块的大小。这些加密法不是块加密法的原因是,在块加密法中,密文块的所有位与明问块的所有位有关。正是这个原因体现了现代块加密法的最重要特征。如果明文的单个位发生了改变,那么密文块的位平均有一半要发生改变。这种情况在 Vigenere 加密法中不会发生,在电子科技大学学士学位论文15Vigenere 加密法中,明文块中单个字符的改变只是导致密文块中单个字符的改变。下面举例 3 种著名的块加密法讨论。21321 DES(Data Encryption Standard)数据加密标准DES,于 20世纪 70年代中期,IBM 的

32、Lucifer加密系统。是根据美国标准句提出的开发一种功能强大的标准加密系统。1977 年,根据美国国家安全局的建议进行了一些修改后,Lucifer 就成了数据加密标准或 DES。20 多年来 DES都是很多应用选用的加密法。后来 DES被高级加密标准(Advanced Encryption Standard)所取代。DES用一个 64位的密钥来加密每个块长度为 64位的明文,并且生成每个块长度为 64位的密文。DES 是一个包含了 16个阶段的替换-置换加密法。尽管 DES的密钥有 64位长,但是用户只提供 56位。其余 8位由算法提供,分别放在 8,16,24,32,40,56,和 64位

33、上。结果是每个 8位的密钥包含了用户提供的 7位和 DES确定的 1位。添加的位是有选择的,以便使每个 8位的块都有奇数个奇偶效验位。16个阶段(DES 的加密过程有 16个阶段)中的每个阶段都使用一个 48位的密钥,该密钥是从最初的 64位密钥派生而来的。该密钥生成过程如下图。电子科技大学学士学位论文16这是块加密法的另外一个特征密钥的操作非常精巧,这是经典加密法所不具备的。在经典加密法中,密钥就是密钥,在块加密法中,密钥随明文的每次置换不同。这就允许加密法的每个阶段使用不同的密钥来执行替换或置换操作。DES的 16个阶段的活动都在三种“盒子”中。分别是扩充盒(expansion box)、

34、替换盒(substitution box)和置换盒(permutation box)在 DES每个阶段中,这三个盒的应用顺序如下图。电子科技大学学士学位论文17电子科技大学学士学位论文18DES在经过了接近 40年的考验后,肯定已经被破解。对付 DES最有效果就是强力攻击法。1997 年 7月,借助网上 14000多台计算机,花了 90天破解了该加密法。6 月后,这种方法只换了 39天。1998 年 7月,Deep Crack7只用了56个小时就破解了一个 DES密钥。显然 DES也不是一种可靠的加密系统了。所以本文设计的加密系统也不会采用它。21322 IDEA(International

35、Data Encryption Algorithm)国际数据加密法最先是由 X.Lai、J.L.Massey 和 S.Murphy在 1991年的一篇论文中公开发表的。它的功能比 DES更强。现在它的用途是作为内置于 PGP8中的一种加密算法。IDEZ 使用 128位的密钥将 64位明文块加密成密文。但是 IDEA和 DES的不同之处不仅仅在于密钥大小。IDEA 改变了 Feistel结构 9,它使用了三种不同7 Deep Crack,一台特殊构造的计算机。8 PGP,pretty good privacy 缩写, 1992 年,Philip Zimmermann 开发的作为免费电子邮件加密程

36、序。电子科技大学学士学位论文19的操作:一个 XOR逻辑运算、两个补加操作和乘积运算。IDEA需要 56个 16位的子密钥,这些子密钥是这样生成的:将初始的 128位密钥连续滚动 25位。就是说,初始的 128位密钥 K,先分成最初的 8个 16位的子密钥,然后,将 K左移动 25位分成接下来的 8个 16位密钥。反复进行此过程,直到 56个子密钥全部完成。明文分成 4个 16位的数,每段对应于 IDEA的 8轮和最后的转换轮。每轮中包含有三种操作,如图。M-A(乘-加)盒是 IDEA真正加密之处。每个输入位与所有输入位都有关。IDEA可以看差分和线性密码分析法的攻击。由于其复杂性,以及实现的

37、困难性。本文设计的加密系统也不采用此加密法9 Feistel结构,中间状态的部分比特不加改变地简单转置到其它地位置电子科技大学学士学位论文2021323 AES (Advanced Encryption Standard)高级加密标准AES, (Advanced Encryption Standard)高级加密标准要求如下:应是对称块加密法,具有可变长度的密钥(128,192 或者 256位) ,一个128位的块。应比三重 DES10更安全。应可应用于公共领域并免费提供。应至少在 30年内是安全的。总共有 10个不同国家,15 种算法。在 1999年,美国国家标准与技术局的要求下,经受了一系列

38、的公开分析过程。最后只有 Joan Daemen 和 Vincent Rijment提交的 Rijndael11。获得了最后的胜利。Rijndael是一种灵活的算法,其块的大小可变、密钥大小可变、 ,迭代次数也可变,而且迭代次数与块和密钥的大小有关。正因为其灵活,Rijndael 实际上有三个版本:AES-128、AES-1292、AES-256。常见的 Rijndael结构如图。Rijndael不象 DES那样在每个阶段中使用替换和置换,而是进行多重循环的替换、列缓和密钥加操作。从这看来,Rijndael 很象 IDEA,没有进行包含置换操作的典型 Feistel轮。10 三重 DES,DE

39、S 算法的变种,一种安全的加密法,以其速度缓慢,效率不高著称。11 Rijndael,AES 的胜利者。下文中的 Rijndael和术语 AES视为等价了。电子科技大学学士学位论文21Rijndael有取代当前所有应用中的 DES的趋势。它同时开必须有足够的安全性来取代三重 DES应用。与 DES一样,AES 也可用于 5种块加密法模式:CBC 12、ECB13、OFB 14、CTR 15和 OCB16。由于 Rijndael非常小,速度快,密钥大小 128位,安全可靠,因此它不仅可以用语安全要求比三重 DES更高的应用中,而且可用于计算资源有限的应用中。在 AES竞选中,所有密码分析员在那个

40、相对较短的时间里谁也无法提出一种可破解 Rijndael的方法。但是随着 AES的采用,分析员们得到了不同程度的成功。不可能差分攻击法,已经成功破解 6轮的 AES-128。平方攻击法,已经成功破解 7轮的 AES-128和 AES-192。冲突攻击法,也成功破解 7轮的 AES-128和 AES-192。但是所有的攻击法对于 10轮的 AES-128全部失败了。本文设计的加密系统将使用这种加密算法。2133 公钥加密法在已经讨论过的所有经典和现代加密法中,一个主要的问题是密钥。它们都只有一个密钥,这个密钥既用来加密,也用来解密。这看上去实用也很方便。但问题是,每个有权访问明文的人都必须具有该

41、密钥。密钥的发布成了一个弱点。这个弱点由 Diffie 、 Hellman 在 1976 年提出公钥加密法。这种加密法有两个不同的密钥:一个用来加密一个用来解密。加密密钥可以公开的,每个人都可用它来加密,只有解密密钥是保密的。这也是不对称加密法。其最著名的算法就是 RSA。与块加密法相比,公钥算法的问题是运算速度非常慢。因此,用公钥加密系统加密一个大文档效率不高,尤其如果能用块加密法加密时,其速度是公钥加密法的 10-100 倍。而且本文设计的加密系统需要加密涉密文件,很难知道其大小。而公钥加密法速度慢。所以将不采用此加密法。2134 密钥管理,散列函数随着新加密法的使用,我们必须使用长达 5

42、6-256位的的密钥。并且即使使12 CBC,加密-块-链(cipher-block-chaining)模式。使用最普遍的块加密模式。13 ECB,电子编码薄(electronic-codebook mode)模式。块加密最简单的模式。14 OFB,OFM,输出-反馈模式(output-feedback mode ) 。使用块加密法来为流加密法声成一随机流。密钥和块加密法的初始输入启动加密过程。15 CTR,记数器模式(counter mode)另一种流加密实现模式。很象 OFM。16 OCB,补偿编码模式(offset-codebook)这种模式不仅仅描述了如何加密每个块,还提供了一种验证方

43、法。电子科技大学学士学位论文22用 16进制表示,这些密钥也很长,并且也没有助记意义。我们必须在某个东西下写下密钥,并把它们放到某个地方。很明显,管理密钥成为了新的问题。21341 散列函数散列函数将任何长度的输入转换为定长的输出。对于散列函数 H有六个要求:1能够接受任何长度的消息作为输入。2能够生成较短的定长输出。3对任何输入都应该能容易和快速的计算出 H。4应该是一个单向函数难以或者不可能反推。也就是说,给定 H(m),恢复 m应该十分困难。5应该能抵抗弱冲突。当两个不同的输入生成相同的输出时,就产生了冲突。6应该能抵抗强冲突就是说,找到两个有意义的消息 m和 n,使得H(m)=H(n)

44、几乎不可能。根据以上得出的函数散列模式如下图:电子科技大学学士学位论文2321342 MD5 17MD5接收任意长度的消息作为消息输入,并生成 128位的消息摘要输出。对于给定的长度为 L的消息,建立算法需要三个步骤。第一步是通过在消息末尾添加一些额外位来填充消息。第二步,将消息的原始长度缩减为 mod 64,然后以一个 64位的数字添加到扩展后消息的尾部。第三步,MD5 的初始输出放在四个 32位寄存器 A,B,C,D 中,这些寄存器随后将用于保存散列函数中间结果和最终结果。一但完成了这些步骤,MD5 将以四轮方式处理每一个 512位块。这个四轮过程如下图。每一轮都由 16个阶段组成,每一轮

45、都实现针对该轮的功能,对消息块部分作 32位加法,对数组 T中的内置值作 32位加法,移位运算,最后作一次加法和交换运算。它真正打乱了所有位。对于 MD5的安全性来讲。由于散列函数用于确定消息是否被修改,因此,对散列函数攻击的目标是生成这样的修改后消息:其散列值与原始消息的散列值相等,也就是说,只要能找到一对消息 m和 n使得 H(m)=H(n),并且用户愿意签署 m,但不愿意签署 n(虽然我们更希望他/她签署 n) ,那么就成功实现了对散列函数 H的攻击。那么强力攻击法可以满足这个思想么?17 MD5,Ron Rivest 开发的一种散列算法。电子科技大学学士学位论文24这里不得不引用一段小

46、学奥赛的题目。在一个 N个人的房间中,N 应该必须多大才能够让两个人同一月的同一天过生日的概率大于 0.5?下面我们来解答这个问题:1第一个人进入房间,有 365个可能的不同生日。2第二个人进入房间时,有 364个与第一个人不一天的可能生日,不匹配概率为 364/365。3第三个人进入房间时,有 363个与前两个人不是一天的可能生日,因此现在的不匹配概率为:363*364/365*365,那么匹配概率为:1-363*364/365*3654当第 N个人进入房间后,根据以上推导。不匹配公式为:(365-N+1)*362*363*364/365(N-1)那么匹配的公式就是:1-(365-N+1)*

47、362*363*364/365 (N-1)5使匹配的概率大于 0.5,那么计算下来 N的值为 23。这个问题的值近似解为:N=1.17Xsqtr(n),n 为可能的情况数。此题 n为365。通过上面那个题目,我们是否可以发散下,考虑下散列函数。那么我们使用攻击散列函数的术语重新表述为:给定一贯生成 R位消息摘要的散列函数,必须检查多少个消息,才能使得到具有相同散列值的两条消息概率大于 0.5?由于消息摘要为 R位长度,总的消息数为 2R。因此所需要的消息数量大约是 2R/2。所有这些都意味着,散列值的长度必须足够大,才能不轻易的检查所有可能的消息。MD5 长度为 128位那么不得不对每种消息产

48、生 264条消息。同理如果MD5位数比较小,那么破解它也是很容易的。本文设计的加密系统将使用 MD5算法。214 现代加密法小结介绍了密码学的现状态,其中计算机起着主导作用,当然指挥和毅力对于开发和分析人员来说仍然同样重要。学生通过学习密码学。选择了 AES 加密法和 MD5 散列算法作为本文设计的加密系统的算法。并在 2.2 章开始实现该系统。电子科技大学学士学位论文25215 加密算法小结通过学习经典密码学与现代密码学 、 应用密码学 。学生对密码学发展有了一定的了解。对于系统使用适合的加密算法有了选择AES 和 MD5。在下面的章节中学生将从设计开始,到实现。逐一使用所学知识,最后推出系统。第三章:加密系统分析31 常见加密系统311 加密王上海网伦信息安全保护软件公司开发的自动加密系统。其特点如下:由留美博士首创,国内第一家自动强制加密防泄密软件。为真加密,即对硬盘上文件进行了操作,硬盘被盗也打不开加密的文件。本软件加密算法先进,加密速度快,不影响计算机速度。本软件对文件

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 教学研究

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报