《密码学课程设计报告_2.docx》由会员分享,可在线阅读,更多相关《密码学课程设计报告_2.docx(30页珍藏版)》请在第一文库网上搜索。
1、裸程被奸板告一 .古典密码算法31.1. 实验内容31.2. 实验目的313.需求分析31.4. 程序流程图41.5. 算法实现51.5.1 PIayfair体制51.5.1.1 算法描述51.5.1.2 核心代码解析51.5.1.3 运行结果71.5.1.4 P1ayfair安全分析71.5.2 Vigenere体制81.5.2.1 算法描述815.2.2核心代码解析81.5.2.2 结果101.5.2.4 Vigenere安全分析101.5.3 Vernam体制111.5.3.1 描述111.5.3.2 核心代码解析121.5.3.3 运行结果131.5.3.4 Vernam安全分析13二
2、 .分组密码算法DES142.1. 实验内容142.2. 实验目的142.3. .需求分析142.4. DES算法描述152.5. DES算法流程1726DES核心代码分析172.7. DES运行结果202.8. DES安全分析20三 .大素数密码算法RSA223.1. 实验内容223.2. 实验目的223.3. 需求分析223.4. 程序流程图233.5. 算法实现243.5.1 Mi11er-Rabin素性测试法243.5.1.1 算法描述243.5.1.2 代码分析253.5.1.3 运行结果263.5.1.4 算法效率分析263.5.2 RSA算法实现273.5.2.1 算法描述273
3、.5.2.2 核心代码分析273.5.2.3 行结果293.5.2.4 RSA安全分析29四 .实验总结31一.古典密码算法4.1. .实验内容:用高级语言实现古典加密方法,多表古典加密方法主要有P1ayfair体制、Vigenere体制、BeaUfor体制、Vernam体制和Hi11体制,其中此实验本人运用了C+实现了PIayfair体制、Vigenere体制、Vernam体制这三种多表古典加密方法。12实验目的:掌握多表古典加密方法并分析多表古典加密方法各种体制的安全性。4.3. 需求分析:古典密码系统已经初步体现出近代密码系统的雏形,加密方法逐渐复杂,其变化较小。虽然从近代密码学的观点来
4、看,许多古典密码是不安全的,即是极易破译的,但我们不应当忘掉古典密码在历史上发挥的巨大作用。古典密码的代表密码体制主要有:单表代替密码、多表代替密码及转轮密码。CaSer密码就是一种典型的单表加密体制;多表代替密码有Vigenere密码、PIayfair体制、Vernam体制;著名的Enigma密码就是第二次世界大战中使用的转轮密码。古典密码的代表密码体制主要有:单表代替密码、多表代替密码及转轮密码。古典密码的加密方法一般是文字置换,使用手工或机械变换的方式实现。单表代换密码,指一旦密钥被选定,则每个明文字母对应的数字都被加密变换成对应的惟一数字,即对每个明文字母都用一个固定的明文字母表到密文
5、字母表的确定映射。这种简单的一一对应关系,很容易被破译者用频率分析法进行破解。针对这种缺陷,人们提出多表代换密码,用一系列(两个以上)代换表依次对明文消息的字母进行代换。古典加密算法中很多算法的保密性是基于算法本身保密的,这一点与现代加密算法不同。正是由于算法本身保密,所以并不利于密码学的发展,密码学在古典密码学阶段发展是非常缓慢的。古典密码大都比较简单,这些加密方法是根据字母的统计特性和语言学知识加密的,在可用计算机进行密码分析的今天,很容易被破译。虽然现在很少采用,但研究这些密码算法的原理,对于理解、构造和分析现代密码是十分有益的。古典密码在整个密码体系中起着基础的作用,因此理解并熟练运用
6、是进入这一学科的关键,也有助于进一步学习近代密码学。因为下面所实现的三种体制程序个模块之间的联系都一样,所以这里就简化只做了一个流程图:选择要进行的操作1.5.1 P1ayfair体制:1.5.1.1 算法描述:P1ayfair密码出现于1854年,是最著名的多字母加密密码。P1ayfair算法使用关键词构造一个5X5的矩阵,其构造规则是按行依次写下关键词的字母(去除重复字母),然后按照字母表的顺序依次写下其余的字母,其中I和J算作同一个字母。PIayfair加密过程如下:首先,将明文按两个字母分组,假定一组中的明文字母分别为m1和m2,若InI与m2相同,则在重复的字母中间插入一个事先约定好
7、的字母,若明文字母为奇数则在明文的末端添加一个实现事先约定好的字母。例如约定插入字母和补充字母均为X,则对明文CONNECT1oN的分组为CoNXNECTIONX0其次,按照如下规则对明文组进行加密: 当m1、m2在同一行时,对应的密文c1、c2分别是紧靠m1、m2右边的字母。其中行的最后一个字母的密文是行的第一个字母。(解密时相反) 当m1、m2在同一列时,对应的密文c1、c2分别是紧靠m1、m2下方的字母。其中列的最后一个字母的密文是列的第一个字母。(解密时相反) 当m1、m2不在同一行也不在同一列时,对应的密文c1、c2分别是与m1同行且与m2同列的字母及与m2同行且与m1同列的字母。(
8、解密时相同)最后,将成生的密文组按次序排列即为最终的密文字母序列。1.5.1.2 核心代码解析:因为P1ayfair算法使用关键词构造一个5X5的矩阵,所以在编写代码的时候首先应该根据输入的密钥来填充矩阵。把密钥中的字母填入到矩阵中for(intk=0;kstr1en(ch1);k+)(for(intt=0;t25;t+)(if(chik=1etterstftfef1agt=O)(chij=1etterst;f1agt=1;if(j4)j+;e1sei+;j=0;for(k=0;k25;k+)按字母表顺序把未用字母依次填入到矩阵中if(f1agk-0)chij=1ettersk;f1agk=1
9、;if(j4)j+;e1sei+;j=0;/*根据PIayfair算法规则加密的重要部分当m1、m2在同一行时,对应的密文c1、c2分别是紧靠m1、m2右边的字母。其中行的最后一个字母的密文是行的第一个字母。(解密时相反)当nd、m2在同一列时,对应的密文c1、c2分别是紧靠m1、m2下方的字母。其中列的最后一个字母的密文是列的第一个字母。(解密时相反)当m1、m2不在同一行也不在同一列时,对应的密文c1.c2分别是与m1同行且与m2同列的字母及与m2同行且与m1同列的字母。(解密时相同)*/for(k=0;kstr1en(ch2);k+=2)intm1,m2,n1,n2;for(m1-0;m
10、1=4;m1+)for(n1=0;n1=4;n1+)(if(ch2k=chm1n1)break;)if(ch2k=chm1n1)break;for(m2=0;m2=4;m2+)(for(n2=0;n24)n1=n1%5;m1=m1+1;if(n24)n2=n2%5jm2=m2+1;if(m1=m2)(ch2k=chm1(n1+1)%5;ch2k+1=chm2(n2+1)%5;if(n1=n2)ch2k=ch(m11)%5n1;ch2k+1=ch(m2+1)%5n2;e1sech2k=chm1n2;ch2k+1=chm2n1;1)1.5.1.3 运行结果:1.5.1.4 P1ayfair安全分析
11、:P1ayfair密码相对于简单的单表密码是一个巨大的进步。首先,因为有26个字母,故有26X26=676个字母对,因此对单个字母对进行判断要困难得多。而且,单个字母的相对频率比字母对的相对频率在统计规律上要好。这样利用频率分析字母对就更困难一些。因为这些原因,P1ayfair密码在很长一段时间内被认为是牢不可破的。第一次世界大战中英军就使用它作为陆军的战时加密体制,并且在第二次世界大战中,美军及其他一些盟国军队仍在大量使用。PIayFair是对明文的每两个字母进行加密,而英语中各种连字(即两个字母的组合)已经被制成表格,且常用的连字如th、he、an、in、re、es等,及其变换(如er等)
12、,可以对密文出现的频率高的连字进行猜测,便能破解密文。此外,P1ayFair密码存在另一弱点,每个明文字母在密文中仅对应5种可能的字母,除非使用的密钥很长,否则矩阵的剩余行是可以预测出来的。注意到这些,甚至可以仅用一段密文就可以攻破它。尽管P1ayfair密码被认为是较安全的,它仍然是相对容易攻破的,因为它的密文仍然完好地保留了明文语言的大部分结构特征。1.5.2 Vigenere体制:1.5.2.1 算法描述:Vigenere体制是1586年由法国密码学家B1aisedeVigenere发明的,Vigenere密码是一种典型的多表替代密码。其密码表密码表是以字母表移位为基础把26个英文字母进
13、行循环移位,排列在一起,形成26X26的方阵。当密钥的长度比明文短时,密钥可以周期性地重复使用,直至完成明文中每个字母的加密。利用26个英文字母构造Vigenere方阵,利用它可以方便地进行加密和解密,当用密钥字母对明文字母进行加密时,Vigenere方阵中的第行第列的字母就是相应的密文字母。算法规律:将AZ以025编号,那么加密过程就是,在代换表的第一行中找到消息字母,如,然后向后移动d(即3)次,所得的字母就是密文了。如果数到末位,那么下一次移位就从头(即A)继续。也就是说,可以将AZ看成一个环,加密过程就是找定消息字母后,将指针往环的某个特定方向移位,次数就是密钥字母所代表的数字,这其实
14、是一个模26的过程,所以在算法之中要将字母对应到数字。ZabcdehghIjk1YZABCDKrGHIJKXYZABCdkfghijWXYZABcdefghIVwxyzabcdefghUvwxyzabcdehgTuvwxyzabcdekStuvwxyzabcdkMnopqrstuvwxy1MNCPQRSTUVWXKrMNOPQRSTUVWJKUmnopQRSTUVIjk1mnopqrstuHIJK1MNopqrstGHIJKKMNOPQRSFGHIJKKMNOPQrQRsTuvwXYZABGDKKGHIJKkMNOPPqrstuvwxyzabcdhhghijk1mnoOpqrstuvwxyzabcdhfghijk1mnNopQRStuvwxyzabcdehghiJK1MMnopqrstuvwxyzabcdkfghijku1MNOPQRSTUVWXyzabcdkkghiJKK1mnopqkstuvwxyzabcdhfghijJK1MNOpQRSTuVWXYZABCDHrGH1IJK1MNopqrstuvwxyzabCDErGHHIJK1MnopqrsTuvwxyzaBCDEFGGHrjKkMNopQRsTUVWXYZABCDEKFGH1jKrMNopQRsTUVWXYZABCDKEFGHIJKkMNoPQrstuvwxy