密码学研究与加密系统实现.doc_第1页
密码学研究与加密系统实现.doc_第2页
密码学研究与加密系统实现.doc_第3页
密码学研究与加密系统实现.doc_第4页
密码学研究与加密系统实现.doc_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子科技大学学士学位论文目录第一章:引言311现代加密系统状况412 针对对象413 本文研究内容5第二章:密码学研究621 密码学研究6211 经典加密法62111 经典单码加密法62112 经典多码加密法72113 经典多图加密法102114 经典换位加密法10212 经典加密法小结11213 现代加密法112131流加密法112132块加密法122133公钥加密法192134密钥管理,散列函数19214 现代加密法小结22215 加密算法小结22第三章:加密系统分析2331 常见加密系统23311 加密王23312 太阳雪文件加密器2432 常见加密系统解刨2433 加密系统实现功能2534 加密系统分析小结26第四章:加密系统设计2741 加密系统组件设计2742 加密系统用例图设计2843 加密系统操作界面设计31431 加密系统职工界面设计314311 加密系统职工界面类图设计3143111主界面版块mainPanel 设计32431111 centerPanel设计32431112 promptPanel设计334311121 prompt01设计334311122 prompt02设计33431113 inputPanel设计344311131 input1设计344311132 input2设计3443112 系统反馈版块JTextAera设计:3543113按钮版块ButtonPanel设计35431131 Cancel按钮设计35431132 submit按钮设计36432 加密系统部门界面设计364321加密系统部门界面类图设计3643211主界面版块mainPanel 设计36432111 centerPanel设计37432112 promptPanel设计374321121 prompt01设计384321122 prompt02设计38432113 inputPanel设计384321131 input1设计394321132 input2设计3943212 系统反馈版块JTextAera设计:3943213按钮版块ButtonPanel设计40432131 Cancel按钮设计40432132 submit按钮设计4143214 选择版块optionPanel设计41432141选择类initOpution()设计41433 加密系统经理界面设计4243311主界面版块mainPanel 设计42433111 centerPanel设计43433112 promptPanel设计434331121 prompt01设计444331122 prompt02设计44433113 inputPanel设计444331131 input1设计454331132 input2设计4543312 系统反馈版块JTextAera设计:4543313按钮版块ButtonPanel设计46433131 Cancel按钮设计46433132 submit按钮设计4643314 选择版块optionPanel设计47433141选择类initOpution()设计4744加密系统算法设计48441 MD5算法设计484411 MD5类图设计484412 MD5类设计484413 MD5类测试类设计49442 AES算法设计504421 AES算法类图设计504422 AES测试类图设计514423 AES算法AESMap类设计514424 AES算法类设计544425 AES算法测试类设计68第五章: 加密系统实现6951 加密系统职员版实现69511 加密系统职员版界面69512 加密系统职员版算法设置7052 加密系统部门版实现70521 加密系统部门版界面实现70522 加密系统部门版算法设置7153 加密系统经理版实现72531 加密系统经理版界面实现72532 加密系统经理版算法设置72第六章:总结7361 系统效果7362 系统改进7463 设计过程心得74致谢75参考书籍76密码学研究与加密系统的实现第一章:引言随着通信和计算机技术的快速发展及经济全球化应用的推动,互联网表现出广泛的覆盖性(包括地域的覆盖性、应用领域的覆盖性、使用人群的覆盖性)、使用的方便性、信息传递的快捷和运作的低成本性,人们对信息网络的依赖程度越来越大,各种新兴的网络应用层出不穷,并互相推动。移动通信、电子商务、电子政务、企业信息化、“三金工程”等与社会发展、人们生产和生活息息相关领域的信息安全问题,越来越成为全社会关注的焦点,并成为制约网络应用发展的主要瓶颈之一。11 现代加密系统状况现代的加密系统功能强大,包括了数据库加密系统,网络加密系统,文件加密系统,图片加密系统等等。但是只针对了网络信息安全的部分。缺少针对商务公司内部、国家内部行政、军事内部行政部门间的加密系统。而其加密方法在对抗穷尽暴力破解法上也没有强力的抵抗,使其加密系统形同虚设。没有起到保护文件、图片等的作用。很多公司因为内部人员流失导致其专利和项目内容被剽窃、国家内部行政由于人员流动导致国家机密失窃、军队内部因为部分人员或者间谍关系军事机密外泄。应该说,现代的加密系统应该从算法上从功能上走出来,更多的从人的因素来设计加密系统。现在急需要一个针对企业环境、国家行政内部环境、军队内部环境的一个加密系统,使其因人员的因素造成的损失降低成最小。 12 针对对象本文设计的加密系统主要针对商务公司内部、国家内部行政、军事内部行政部门间的加密。让内部人员只能看到自己负责的那部分内容。无法查找、修改、偷窃到其他部门负责的内容。杜绝了因内部人员原因,导致的专利的丢失,国家机密的失窃,军事机密的外泄等等情况出现。其功能大概分成三部分:加密算法、数据库、操作界面。其组成分为N部分(N为部门数量)。从技术上讲加密系统的技术难点在加密算法上。从而学生在张教授的带领下,开始学习密码学。密码学是用来保证信息安全的一种必要的手段,可以这样说,没有密码就没有信息安全,所以密码学是信息安全的一个核心。那么信息安全必须是密码学的应用,就是只要提到安全问题,其中必须是以密码理论为基础,不可以不用密码而谈安全,但是仅仅依靠密码学来保证信息安全也是不够的,还是需要关于安全方面的一些立法和管理政策手段等等,所以从技术上来说,密码学是信息安全的一个核心技术。而信息安全不仅仅包括了网络间的信息安全,那仅仅只能防范外部对信息的威胁。而来自于本地计算机上的对信息的威胁,就必须使用本地的加密系统了。学生通过对加密算法历史的研究得出结论。加密系统必然会有经过密码分析而排列出穷尽的可能从而破解掉的方法,其理论方法,就是让想利用当代计算机高性能的优势,排列出所有可能的密码,一一套用到系统中。从而得到密码,导致系统形同虚设。为了防止这种破解方法。就是让系统的密码的组合足够的多,多到连现代的计算机也不能在可以接受的时间内排列出所有可能的密码,这满足了Kerckhpffs规律 Kerckhpffs规律:佛兰德的密码员Auguste Kerckhoffs在19世纪的著作La Crypthographies Militaire 中所列举的加密系统必具有的六条件。分别是:(1) 加密系统在实际中应不可能破解,尽管在理论上不可破解。(2) 破解加密系统应不会打扰通信者。(3) 密钥应无须做记录就能记住,并容易修改(4) 密码应能够用电报来传输。(5) 设备或稳当应一个人携带或操作。(6) 系统应很容易操作,无须掌握一长串的规则或进行培训。的第一条。穷尽破解法是对加密系统威胁最大最有效果的方法。经过学习过前人开发的加密系统以及经典密码学与现在密码学,应用密码学,Classical and Contemporary Cryptology后,学生利用所学知识初步设计了一个针对穷尽暴力破解的加密系统并实现了该系统。 13 本文研究内容 加密系统离不开密码学。自从50多年前香龙的“保密通信的信息理论”一文问世以来,密码学逐步从经验艺术走上了严谨的科学的道路,成为了当今社会信息安全技术的坚实基石。加密系统中密码的选用也是一门严谨的课程。本文第二章介绍密码学研究。当然,加密系统需要参考前人经验然后得出自己的果实。本文第三章加密系统的分析。最后加密系统的实现:本文第四章系统设计以及第五章的系统实现,第六章为全文总结。第二章:密码学研究21 密码学研究 和其他技术一样,加密系统的评估最终也落到经济因素上来。一个加密法不光为了安全而“牢不可破”(而且它未必是牢不可破的)。如果获得信息的代价比破解加密的代价更小,就可以说该数据是安全的。或者,如果加密需要的时间比信息的有用周期更长,该数据也是安全的。因为,任何加密法的最终安全性也是基于这样一个原理:付出大于回报。 Classical and Contemporary Cryptology by Richard Spillman,Copyright ,2005 下面将从经典加密法开始,讨论常见加密算法的优劣。从而得到适合Kerckhpffs规律 Kerckhpffs规律:佛兰德的密码员Auguste Kerckhoffs在19世纪的著作La Crypthographies Militaire 中所列举的加密系统必具有的六条件。分别是:(1)加密系统在实际中应不可能破解,尽管在理论上不可破解。(2破解加密系统应不会打扰通信者。(3)密钥应无须做记录就能记住,并容易修改(4)密码应能够用电报来传输。(5)设备或稳当应一个人携带或操作。(6)系统应很容易操作,无须掌握一长串的规则或进行培训。的加密算法或者它们的组合。211 经典加密法介绍经典加密法。每种加密法将举例一种最具有代表性的加密法。并且分析其优劣。CAP是一种加密分析工具。学生仅仅在做该篇论文的时候把它作为学习的手段来使用。2111 经典单码加密法21111关键词加密法 单码加密法是一种替换加密法,其中的每个明文只能被唯一的一个密文字母所替换。列如:在给定的加密法中,明文字母“a”在密文中可能总是显示为“n”。恺撒曾经使用过的恺撒加密法 恺撒加密法:朱利叶斯*恺撒使用过的加密算法,用来把高卢进行的战争消息传回罗马。使用的密钥是移动3位。后来,奥古斯塔斯*恺撒也使用该加密算法,不同的是,他的密钥是1位。首先写下26个字母:ABCDEFGHIJKLMNOPQRSTUVWXYZ。该加密法把明文中的每个字母都用其在字母表中右边的第4个字母替换,也就是说“A”会被“B”替换,“X”被A替换如此类推。就是很好的范例。如果位移数是3,则恺撒加密法总是用密文字母“d”代替字母“a”,密文字母“e”替代字母“b”。密文字母“f”替代字母“c”等。21112仿射加密法仿射加密法和单码加密法没有什么不同,因为明问的每个字母分别只映射到一个密文字母。因为,破解关键词加密法的工具同样可以用于仿射加密法。唯一不同的就是密钥替换模式不是基于关键词了。但是,通过给定一个已知的明文攻击,求解出仿射方程式,破解仿射加密发更容易。对于CAP来分析它,也是很容易的。21113多文字加密法 多文字加密法是另一种脆弱的单码加密法,之所以这里讨论,是因为它有些特别。它用一对字母来替代每个明文字母。加密后的密文是明文的两倍大,看上去很奇怪的。尽管肯定没人会使用这种加密法,但他表明了一些有趣的特征,这些特征会在其他一些功能更强大的加密法中出现。当然这种加密法在CAP分析器面前是不堪一击的。2112 经典多码加密法21121 Vigenere加密算法Vigenere加密算法是个很著名的加密法。其实它是自动密钥的一个简化形式。这个加密法由Blaise de Vigenere于16世纪开发。曾一度失传,直到19世纪才被重新发现。由于某些原因,那时的密码学家将自动密钥加密法中功能较弱的版本冠以Vigenere.这样的后果是,这种较低级的加密法,由于来历不明,即使在其基本弱点被暴露后的很长时间内也未能被破解。这让它成为了历史上最著名的多码加密法之一。 Classical and Contemporary Cryptology by Richard Spillman,Copyright ,2005其自身问题就是关键词本身会重复留下把柄,让破解能确定关键词长度从而破解。21122自动密钥加密法 1550年,物理学家和数学家Girolamo Cardano描述了初始的自动密钥加密法,该方法比简单的Vigenere加密算法更安全。至少,看不出它具有密钥重复的弱点。当然,该加密法也不是想象中那么安全,它只是拥有一个“运动中”的密钥的加密法而已。21123 Nihilist加密法 Nihilist加密法起源于沙皇时期俄罗斯地下党所使用过的一种加密方法。它用于囚犯之间的通信。那时候,大多数俄罗斯囚犯被单独监禁,禁止于其他囚犯通信联系。囚犯们敲打墙壁,敲打的次数表示棋盘上的字母位置。他们使用这个方法很熟练,每分钟10-15个单词进行通信。 这种棋盘加密的方法最终发展成为Nihilist加密法的核心。Nihilist加密法有着与Vigenere加密算法同样的弱点。要破解它很复杂,因为它使用的数字而不是字母。但是数字也可以被破解。当然这仅仅对于人工而言。在CAP面前,这种加密法将如儿戏一般。21124 圆柱面加密法 由Etienne Bazeries于1891年发明的圆柱面加密法可以算得上最著名的加密算法之一了。1891年他试图让法国军队使用该加密法,但是失败了。但是,30年后的1922年,美国军队使用了他的加密法。Bazeries加密法由20个轮组成,每个轮上的字母表顺序不同。如图:这些轮先按照预先选定的顺序排列(这个顺序就是该加密法的密钥)转动这些轮,使明文出现在同一条直线上,然后可以选取任意的其他直线上的字母作为密文。如果只使用3个轮,顺序为1,5,3,明文为“hat”密文则是“sxh”了。这种加密法仍然很脆弱。破解该方法的技巧早在1893年就被Marquis de Viaris发现了,这种方法叫:de Viaris法。该方法必须拥有两个条件才能破解它。第一,该加密法是Bazeries圆柱面加密法。而且已知圆柱面的内容;第二,至少知道了一个明文单词。因此,de Viaris法属于已知明文攻击法。其目标是确定圆柱面的实际顺序。 21125 回转轮加密法回转轮加密法是二战时期德国使用的加密法。是用电机系统来实现多码变换的方法。回转轮是一个圆盘,它的两面都有电子接点,每个接点代表字母表中的一个字母。回转轮内部有连接个接点的点心,这种连接方式定义了单码替换方式。一个简单的回转轮如图:由于每个回转轮是在内部用电线连接,以表示字母表中26个字母的替换模式,因此其替换数量达到了:26!=403 291 461 126 605 584 000 000如果将几个回转轮串连起来,并以不同的速率转动,就可以建成一个强大的多码加密系统。二战德国使用了这种类型的回转轮系统,称为Enigma密法。令德国想象不到的是,在战争爆发前,英国就已经破解了Enigma加密法。从而导致了Enigma加密机的弱点暴露。于20世纪30年代早期,Marian Rejewski、Henryk Zygalski和Jerzy Rozycki重新构建了一个解密机器。这是密码分析历史上最让人吃惊的成功事件了。当然现在计算机的强大功能和运算速度,使用强力攻击法破解回转轮加密法,在已知的一些明文的条件下,就更是如此了。CAP就可以实现这种攻击法。2113 经典多图加密法21131 Playfair加密法由Charles Wheatstone开发,以他的朋友Lyon Playfair命名。它不仅比以前的标准单码加密法更具挑战性,而且它的时间令人出奇的简单。有证据表明,英国在布尔战争期间使用了该加密法。事实证明,该加密法并不是没有弱点,有两种破解它的方法。一种是探测词破解,另外一种是关键词发现破解法。CAP软件也可以实现这两种攻击。21132 Hill加密法1929年,Hill算法问世。用数学方法来创建常见的多码加密法首次出现。该加密法以发明人Lester S.Hill来命名的。1929年他发表了一篇名为“Cryptography in an Algebraic Alphabet”的短论文,提出了一种基于联立方程的加密算法。该算法将含有M个字母的明文快加密成含有M个字母的密文块。每个明文字母被赋予一个数值,通常是a=0,b=1,z=25,但Hill使用的是随即赋值。块中每个字母的数值一起用来生成一组新的数值,这些数值就是用来表示密文字母。Hill算法可以很好的防止密文攻击。事实上矩阵越大,该加密算法抗攻击力越强。但是,它还是有弱点。已知明文攻击法很容易就能破解它。即用已知明文-密文组建方程组,求解方程组后,就能找到密钥。2114 经典换位加密法21141 置换加密法置换加密法中,将密文分成固定长度的块。置换函数F用于从1-D中选取一个整数。然后每个块中的字母根据F重新排列。这种加密法的密钥就是(D,F)。可以用密文攻击法和已知明文攻击法来破解置换加密法。密文攻击法是查看密文块,查找出可能生成可读单词的排列方式。一但发现某个快的置换方式,就可以应用到密文所有的块中。已知明文攻击法就更简单。以下3个步骤:(1)含有于已知单词相同字母的块。(2)通过比较已知单词于密文块,确定置换方式。(3)在密文的其他块上测试上面得出的置换方式。21142 列置换加密法 这种加密法的密钥是列数和读取的顺序。如果列数很多,记起来可能会比较困难,因此可以将它表示成一个关键词,该关键词长度等于列数,而其字母顺序决定读取列的顺序。 这个加密法也不是完美的。首先尝试找出换位矩形的可能大小(多少行或者多少列)。第二,尝试找出这些可能的矩形中哪个是正确的。第三,知道了正确的矩形后,尝试重新排列矩形列,以便还原消息。21143 双重换位加密法 正如名字暗示的那样,双重换位加密法先用列换位法将明文加密,然后再次用列换位法加密第一次加密的密文加密。两次使用的关键词可以相同。经过两次换位后,明文字母的位置完全被打乱了。 破解上也正如其名一样,越是复杂的算法,将越容易有弱点。一个弱点在于使用相同的密钥对将多个相同大小的密文加密的密文中。212 经典加密法小结历史上经典加密法的开发和时间大多数都是由手工完成的。而其分析技术也大多数也是由手工完成的。而经典和现代加密算法的区分。就从使用手工和使用计算机的划分来区别开了。213 现代加密法现在将正式进入计算机加密的讨论。加密法和分析工具不再由手工实现了。整个加密法将充分利用计算机善于处理加密的复杂性的特征。但是,正如我们所讨论的那样,现代加密算法还是扎根于经典加密算法的。学生将从讨论中拿出其优劣,和部分实现的代码。2131流加密法 一个简单的流加密法需要一个随即的二进制流作为密钥。通过将明文于这个随机的密钥流进行XOR XOR是一个特殊的二进制逻辑运算,有两个输入一个输出。如果两个输入不同,则输出为1。运算,就可生成密文。将密文与相同的随机密钥流进行XOR逻辑运算即可还原成原明文。过程如下:该方法是进入21世纪后第一个靠计算机运算的加密法。当然也是很多弱点的。用插入攻击法破解。攻击法很简单,要求能在明文中插入一个位,并截获密文流。但是,事实证明。在满足一定的条件下,流加密法是一个不可破解的加密法。如果密钥流是完全随机的,并与明文一样长,那么它就不可破解。在这种条件下,流加密法对密文攻击法是绝对安全的。当然,要生成随机的位流是很困难的。而且,要求密钥流与明文一样长,这意味着不能重复。这也是同样难以做到的。因此大多数的流加密法只是近似的满足这些条件,所以它们不是不可破解的。2132块加密法今天使用的加密法中,块加密法是最常见的类型。他们是从替换-换位加密法到计算机加密的概括。真如其名字一样,块加密法每次作用于固定大家的位块。如图:块加密法将明文分成M个块:M1,M2,Mn。他对每个块执行相同的变换,从而生成m个密文块C1,C2,,Cn。块中的大小可以是任意数目的位,但通常是很大的数目(64位或更多位的倍数)。对于一个很大的块,块加密法很象经典多密加密法,如Playfair加密法,也是将两个或多个明文字符映射到一个密文块。因此块加密法具有多图加密法那种抵抗频率分析攻击法的能力。另一方面,如果块的大小只有8位(即是一个字符),那么块加密法就不比经典单码替换加密法好的哪去。看上去一些经典加密法(Vigenere加密法)也可以称做块加密法,因为Vigenere加密法关键词也可以定义块的大小。这些加密法不是块加密法的原因是,在块加密法中,密文块的所有位与明问块的所有位有关。正是这个原因体现了现代块加密法的最重要特征。如果明文的单个位发生了改变,那么密文块的位平均有一半要发生改变。这种情况在Vigenere加密法中不会发生,在Vigenere加密法中,明文块中单个字符的改变只是导致密文块中单个字符的改变。下面举例3种著名的块加密法讨论。21321 DES(Data Encryption Standard)数据加密标准 DES,于20世纪70年代中期,IBM的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位上。结果是每个8位的密钥包含了用户提供的7位和DES确定的1位。添加的位是有选择的,以便使每个8位的块都有奇数个奇偶效验位。 16个阶段(DES的加密过程有16个阶段)中的每个阶段都使用一个48位的密钥,该密钥是从最初的64位密钥派生而来的。该密钥生成过程如下图。这是块加密法的另外一个特征密钥的操作非常精巧,这是经典加密法所不具备的。在经典加密法中,密钥就是密钥,在块加密法中,密钥随明文的每次置换不同。这就允许加密法的每个阶段使用不同的密钥来执行替换或置换操作。DES的16个阶段的活动都在三种“盒子”中。分别是扩充盒(expansion box)、替换盒(substitution box)和置换盒(permutation box)在DES每个阶段中,这三个盒的应用顺序如下图。DES在经过了接近40年的考验后,肯定已经被破解。对付DES最有效果就是强力攻击法。1997年7月,借助网上14000多台计算机,花了90天破解了该加密法。6月后,这种方法只换了39天。1998年7月,Deep Crack Deep Crack,一台特殊构造的计算机。只用了56个小时就破解了一个DES密钥。显然DES也不是一种可靠的加密系统了。所以本文设计的加密系统也不会采用它。21322 IDEA(International Data Encryption Algorithm)国际数据加密法最先是由X.Lai、J.L.Massey和S.Murphy在1991年的一篇论文中公开发表的。它的功能比DES更强。现在它的用途是作为内置于PGP PGP,pretty good privacy缩写,1992年,Philip Zimmermann开发的作为免费电子邮件加密程序。中的一种加密算法。IDEZ使用128位的密钥将64位明文块加密成密文。但是IDEA和DES的不同之处不仅仅在于密钥大小。IDEA改变了Feistel结构 Feistel结构,中间状态的部分比特不加改变地简单转置到其它地位置,它使用了三种不同的操作:一个XOR逻辑运算、两个补加操作和乘积运算。IDEA需要56个16位的子密钥,这些子密钥是这样生成的:将初始的128位密钥连续滚动25位。就是说,初始的128位密钥K,先分成最初的8个16位的子密钥,然后,将K左移动25位分成接下来的8个16位密钥。反复进行此过程,直到56个子密钥全部完成。明文分成4个16位的数,每段对应于IDEA的8轮和最后的转换轮。每轮中包含有三种操作,如图。M-A(乘-加)盒是IDEA真正加密之处。每个输入位与所有输入位都有关。IDEA可以看差分和线性密码分析法的攻击。由于其复杂性,以及实现的困难性。本文设计的加密系统也不采用此加密法21323 AES (Advanced Encryption Standard)高级加密标准AES,(Advanced Encryption Standard)高级加密标准要求如下:应是对称块加密法,具有可变长度的密钥(128,192或者256位),一个128位的块。应比三重DES 三重DES,DES算法的变种,一种安全的加密法,以其速度缓慢,效率不高著称。更安全。应可应用于公共领域并免费提供。应至少在30年内是安全的。总共有10个不同国家,15种算法。在1999年,美国国家标准与技术局的要求下,经受了一系列的公开分析过程。最后只有Joan Daemen 和Vincent Rijment提交的Rijndael Rijndael,AES的胜利者。下文中的Rijndael和术语AES视为等价了。获得了最后的胜利。Rijndael是一种灵活的算法,其块的大小可变、密钥大小可变、,迭代次数也可变,而且迭代次数与块和密钥的大小有关。正因为其灵活,Rijndael实际上有三个版本:AES-128、AES-1292、AES-256。常见的Rijndael结构如图。Rijndael不象DES那样在每个阶段中使用替换和置换,而是进行多重循环的替换、列缓和密钥加操作。从这看来,Rijndael很象IDEA,没有进行包含置换操作的典型Feistel轮。Rijndael有取代当前所有应用中的DES的趋势。它同时开必须有足够的安全性来取代三重DES应用。与DES一样,AES也可用于5种块加密法模式:CBC CBC,加密-块-链(cipher-block-chaining)模式。使用最普遍的块加密模式。、ECB ECB,电子编码薄(electronic-codebook mode)模式。块加密最简单的模式。、OFB OFB,OFM,输出-反馈模式(output-feedback mode)。使用块加密法来为流加密法声成一随机流。密钥和块加密法的初始输入启动加密过程。、CTR CTR,记数器模式(counter mode)另一种流加密实现模式。很象OFM。和OCB OCB,补偿编码模式(offset-codebook)这种模式不仅仅描述了如何加密每个块,还提供了一种验证方法。由于Rijndael非常小,速度快,密钥大小128位,安全可靠,因此它不仅可以用语安全要求比三重DES更高的应用中,而且可用于计算资源有限的应用中。在AES竞选中,所有密码分析员在那个相对较短的时间里谁也无法提出一种可破解Rijndael的方法。但是随着AES的采用,分析员们得到了不同程度的成功。不可能差分攻击法,已经成功破解6轮的AES-128。平方攻击法,已经成功破解7轮的AES-128和AES-192。冲突攻击法,也成功破解7轮的AES-128和AES-192。但是所有的攻击法对于10轮的AES-128全部失败了。本文设计的加密系统将使用这种加密算法。2133公钥加密法在已经讨论过的所有经典和现代加密法中,一个主要的问题是密钥。它们都只有一个密钥,这个密钥既用来加密,也用来解密。这看上去实用也很方便。但问题是,每个有权访问明文的人都必须具有该密钥。密钥的发布成了一个弱点。这个弱点由Diffie 、Hellman在1976年提出公钥加密法。这种加密法有两个不同的密钥:一个用来加密一个用来解密。加密密钥可以公开的,每个人都可用它来加密,只有解密密钥是保密的。这也是不对称加密法。其最著名的算法就是RSA。与块加密法相比,公钥算法的问题是运算速度非常慢。因此,用公钥加密系统加密一个大文档效率不高,尤其如果能用块加密法加密时,其速度是公钥加密法的10-100倍。而且本文设计的加密系统需要加密涉密文件,很难知道其大小。而公钥加密法速度慢。所以将不采用此加密法。 2134密钥管理,散列函数随着新加密法的使用,我们必须使用长达56-256位的的密钥。并且即使使用16进制表示,这些密钥也很长,并且也没有助记意义。我们必须在某个东西下写下密钥,并把它们放到某个地方。很明显,管理密钥成为了新的问题。21341散列函数散列函数将任何长度的输入转换为定长的输出。对于散列函数H有六个要求:1能够接受任何长度的消息作为输入。2能够生成较短的定长输出。3对任何输入都应该能容易和快速的计算出H。4应该是一个单向函数难以或者不可能反推。也就是说,给定H(m),恢复m应该十分困难。5应该能抵抗弱冲突。当两个不同的输入生成相同的输出时,就产生了冲突。6应该能抵抗强冲突就是说,找到两个有意义的消息m和n,使得H(m)=H(n)几乎不可能。根据以上得出的函数散列模式如下图:21342 MD5 MD5,Ron Rivest开发的一种散列算法。MD5接收任意长度的消息作为消息输入,并生成128位的消息摘要输出。对于给定的长度为L的消息,建立算法需要三个步骤。第一步是通过在消息末尾添加一些额外位来填充消息。第二步,将消息的原始长度缩减为mod 64,然后以一个64位的数字添加到扩展后消息的尾部。第三步,MD5的初始输出放在四个32位寄存器A,B,C,D中,这些寄存器随后将用于保存散列函数中间结果和最终结果。一但完成了这些步骤,MD5将以四轮方式处理每一个512位块。这个四轮过程如下图。每一轮都由16个阶段组成,每一轮都实现针对该轮的功能,对消息块部分作32位加法,对数组T中的内置值作32位加法,移位运算,最后作一次加法和交换运算。它真正打乱了所有位。对于MD5的安全性来讲。由于散列函数用于确定消息是否被修改,因此,对散列函数攻击的目标是生成这样的修改后消息:其散列值与原始消息的散列值相等,也就是说,只要能找到一对消息m和n使得H(m)=H(n),并且用户愿意签署m,但不愿意签署n(虽然我们更希望他/她签署n),那么就成功实现了对散列函数H的攻击。那么强力攻击法可以满足这个思想么?这里不得不引用一段小学奥赛的题目。在一个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)*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位那么不得不对每种消息产生264条消息。同理如果MD5位数比较小,那么破解它也是很容易的。本文设计的加密系统将使用MD5算法。214 现代加密法小结 介绍了密码学的现状态,其中计算机起着主导作用,当然指挥和毅力对于开发和分析人员来说仍然同样重要。学生通过学习密码学。选择了AES加密法和MD5散列算法作为本文设计的加密系统的算法。并在2.2章开始实现该系统。215 加密算法小结通过学习经典密码学与现代密码学、应用密码学。学生对密码学发展有了一定的了解。对于系统使用适合的加密算法有了选择AES和MD5。在下面的章节中学生将从设计开始,到实现。逐一使用所学知识,最后推出系统。第三章:加密系统分析31 常见加密系统311 加密王 上海网伦信息安全保护软件公司开发的自动加密系统。其特点如下:由留美博士首创,国内第一家自动强制加密防泄密软件。为真加密,即对硬盘上文件进行了操作,硬盘被盗也打不开加密的文件。本软件加密算法先进,加密速度快,不影响计算机速度。本软件对文件格式支持种类全,理论上全部文件都能加密。附属功能多,防打印,防拷贝,防计算机被盗,防截屏。本软件技术支持实力强大,更新速度快。其操作界面如下:312 太阳雪文件加密器“太阳雪文件加密器”的主要特色: (1)采用COM服务器的方式与Windows操作系统进行紧密集成; (2)软件涉及的所有操作,包括文件加密、解密、修改密码、选项等,都集成到了资源管理器的右键中,用户无需使用单独的软件模块进行操作,这使得操作极其方便快捷,是其他加密软件无与伦比的; (3)采用系统管理密码与文件加密解密密码双层密码体系,既安全又方便; (4)根据所选文件是否加密自动判断操作菜单的使能与否; (5)加密的文件使用专门的文件后缀,并采用醒目的专用图标,便于在资源管理器中统一管理; (6)采用了先进的加密算法,具有良好的安全性及加密解密速度; (7)具有锁定功能,能够保证在用户暂时离开时加密文件不被非法操作; (8)具有“采用系统默认密码”进行加密解密操作的选项,可以提高操作过程的快捷性; (9)加密解密等每个操作都在资源管理器的状态栏中具有完善的帮助信息,并且支持在线帮助; (10)在30次试用次数过后,用户仍能够使用“太阳雪文件加密器”进行文件解密及除去文件加密之外的所有功能。操作界面如图:32 常见加密系统解刨对于以上两种加密系统,总结如下:1都使用了加密算法进行加密/解密。2加密算法运算速度都很快。3加密系统加密的种类很全。4界面简单,干净。5都拥有密钥管理和认证消息。6需要设定加密/解密的路径。7拥有独自的数据库。33 加密系统实现功能通过对常见加密系统的分析。本文需要实现的加密系统的功能如下:1可以进行加密解密。2拥有管理密钥和认证消息两方面的机制。3加密系统拥有一个可视化的操作界面。4想破解该系统很困难。5对强力穷尽破解法有很强抵抗力。6时间允许的情况下完成独自的数据库支持密钥管理。34 加密系统组成 考虑到本文设计的加密系统主要针对商务公司内部、国家内部行政、军事内部行政部门间的加密。让内部人员只能看到自己负责的那部分内容。无法查找、修改、偷窃到其他部门负责的内容。杜绝了因内部人员原因,导致的专利的丢失,国家机密的失窃,军事机密的外泄等等情况出现。设计组件图如下:经 理 级 权 限部 门 级 权 限部 门 级 权 限部 门 级 权 限经理级权限可以修改/查看部门级权限的文件内容。而部门级不可查看/修改经理级的内容,各个部门之间的内容不可相互查看。同理,部门级别到职工级别的组件图如下:部 门 级 权 限职 工 级 权 限职 工 级 权 限职 工 级 权 限部门级权限可以修改/查看职工级权限的文件内容。而部门级不可查看/修改经理级的内容,各个职工之间的内容不可相互查看。按以上组件设计,减少了因职工能查看/修改部门权限的内容或者因职工能查看/修改经理级权限的内容或者因部门级查看/修改经理级的内容而造成的文件内容外泄的机会。因为只有经理级的权限才能带走整个内容。34 加密系统分析小结 通过对常见加密系统的分析,以及对现代加密系统的认识。得出了本文加密系统需要的设计组件。下一章将进一步设计该加密系统。第四章:加密系统设计41 加密系统组件设计 该加密系统大概分类如下:涉密文件加密系统系统数据库操作界面加密算法经理级操作界面部门级操作界面职工级操作界面系统数据库在时间允许的情况下编写。各个等级的加密算法,使用权限认证都将记录在系统数据库里。而整个系统数据库在针对某个公司/企业/军队/国家政府环境专门设定,不会造成重复,让人得其一推出其三。操作界面将使用JAVA GUI的SWING包编写。加密算法将使用JAVA语言实现。操作界面分成:经理级,部门级,职工级。加密算法:每个级别拥有独自的加密算法。编写平台:ECLIPSE 42 加密系统用例图设计 本章将根据第三章的分析进行加密系统的面对对象的设计以及表现设计过程。421 加密系统 职工级系统设计操作界面加密解密MD5验证职工输出操作系统AES加密加密数据库职工加密文件过程:先在操作界面中输入文件目录和密码。然后点确定,系统进行MD5散列函数计算,将其MD5散列函数值和数据库中的比对。确认是职工级的然后返回给系统消息,进行AES-128加密/解密。完成后输出。使用MD5算法,各个职工间的MD5的散列函数值绝不会相同(其相同几率为/1264)。保障了各个职工只能查看/修改自己权利内负责的那部分的内容,而不会查看/修改其他职工负责的内容。422 加密系统部门级系统设计操作界面数据库AES加密加密MD5验证加密 解密操作系统部门部门级加密文件过程:先在操作界面中输入文件目录和密码。然后点确定,系统进行MD5散列函数计算,将其MD5散列函数值和数据库中的比对。确认是部门级的然后返回给系统消息,进行AES-192加密/解密。完成后输出。使用MD5算法,各个部门间的MD5的散列函数值绝不会相同(其相同几率为/1264)。保障了各个部门只能查看/修改自己权利内负责的那部分的内容,而不会查看/修改其他部门负责的内容。部门级可查看职工级的内容其过程:选择查看职工内容并且输入文件目录和密码。然后确认后,系统进行MD5散列函数计算,将其MD5散列函数值和数据库中的比对。确认是部门级的然后返回给系统消息,进行AES-128加密/解密。然后就能查看/修改其内容。部门级没有查看其他部门级下属职工内容的权利。因为其他部门的MD5散列值已经针对性的在系统安装的时候设定到数据库中。这个部门就只能查看/修改这个部门负责的内容和下属职工负责的内容。423加密系统经理级系统设计操作界面数据库AES加密加密MD5验证加密解密经理操作系统经理级加密文件过程:先在操作界面中输入文件目录和密码。然后点确定,系统进行MD5散列函数计算,将其MD5散列函数值和数据库中的比对。确认是经理级的然后返回给系统消息,进行AES-256加密/解密。完成后输出。使用MD5算法,各个经理间的MD5的散列函数值绝不会相同(其相同几率为/1264)。保障了各个经理只能查看/修改自己权利内负责的那部分的内容,而不会查看/修改其他经理负责的内容。经理级可查看职工级、部门级的内容其过程:选择查看职工或者部门内容并且输入文件目录和密码。然后确认,系统进行MD5散列函数计算,将其MD5散列函数值和数据库中的比对。确认

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论