欢迎来到天天文库
浏览记录
ID:38626690
大小:225.75 KB
页数:27页
时间:2019-06-16
《密码学课程设计报告——柴婷婷》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、密码学课程设计报告古典密码、DES算法实现、大素数生成算法原理分析及编程实现。计算机学院信安08-3班柴婷婷2011-6-2625目录0引言11古典密码11.1Vigenere(维吉尼亚)密码11.1.1vigenere密码算法原理11.1.2vigenere密码表及举例说明11.1.3运行结果21.2Playfair加解密31.2.1Playfair算法描述31.2.2对明文的加密描述31.2.3对密文的解密规则41.2.4运行结果41.3Vernam(弗纳姆)加解密51.3.1Vernam算法描述51.3.2运行结果62DES算法的实现62.1算
2、法描述62.2算法分析72.2.1DES加密过程72.2.2加密时的5个主要函数82.2.3DES解密过程102.3运行结果103大素数生成算法113.1算法描述113.2加密、解密过程123.3素数的测试123.3.1Solovay-Strassen检测法123.3.2Miller-Rabin检测法133.4运行结果134结束语14250引言密码学是信息安全专业的专业专业主干课。通过课程的学习,我们可以了解密码学在信息安全中所起到的重要作用。本课程要求我们掌握应用密码学的基本概念,熟悉典型的密码算法及实现,掌握典型的安全协议,熟悉密码协议设计与分析
3、的基本方法。此课程设计主要包括三个部分:古典密码加解密实现、DES算法的实现、大素数生成。1古典密码实验目的:掌握多表古典加密方法。实验要求:能用高级语言实现古典加密方法。实验内容:多表古典加密方法主要有Playfair体制、Vigenere体制、Beaufor体制、Vernam体制和Hill体制,用高级语言实现其中一种体制的加密和解密算法。1.1Vigenere(维吉尼亚)密码1.1.1vigenere密码算法原理维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。维吉尼亚密码的密钥空间大小为26^n,所
4、以即使n的值很小,使用穷尽密钥搜索方法也需要很长的时间。1.1.2vigenere密码表及举例说明参照下表,假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密: CHAITINGTINGJIAMI25 当选定CHULANTIAN作为密钥时,加密过程是:明文一个字母为C,密钥第一个字母为C,因此可以找到在C行中代替C的为E,依此类推,得出对应关系如下: 密钥:CHULANTIANCHULANTI 明文:CHAITINGTINGJIAYOU 密文:EOUTTVGOTVPNDTALHC1.1.3运行结果在visualC++6.0
5、编译环境下,输入附录一所列代码实现vigenere密码算法的加解密,运行结果如下:251.2Playfair加解密1.2.1Playfair算法描述Playfair密码出现于1854年,它依据一个5*5的正方形组成的密码表来编写,密码表里排列有25个字母。如果一种语言字母超过25个,可以去掉使用频率最少的一个。英语中z使用最少,可以去掉它。法语一般去掉w或k,德语则是把i和j合起来当成一个字母看待。1.2.2对明文的加密描述第一步是编制密码表。在这个5*5的密码表中,共有5行5列字母。第一列(或第一行)是密钥,其余按照字母顺序。密钥是一个单词或词组,
6、若有重复字母,可将后面重复的字母去掉。当然也要把使用频率最少的字母去掉。第二步整理明文。将明文每两个字母组成一对。如果成对后有两个相同字母紧挨或最后一个字母是单个的,就插入一个字母X。对明文加密规则如下:25 1若p1p2在同一行,对应密文c1c2分别是紧靠p1p2右端的字母。其中第一列被看做是最后一列的右方。如,按照前表,ct对应oc 2若p1p2在同一列,对应密文c1c2分别是紧靠p1p2下方的字母。其中第一行被看做是最后一行的下方。3若p1p2不在同一行,不在同一列,则c1c2是由p1p2确定的矩形的其他两角的字母(至于横向替换还是纵向替换
7、要事先约好,或自行尝试)。如按照前表,wh对应tk或kt。1.2.3对密文的解密规则对密文解密规则如下: 1若c1c2在同一行,对应明文p1p2分别是紧靠c1c2左端的字母。其中最后一列被看做是第一列的左方。 2若c1c2在同一列,对应明文p1p2分别是紧靠c1c2上方的字母。其中最后一行被看做是第一行的上方。3若c1c2不在同一行,不在同一列,则p1p2是由c1c2确定的矩形的其他两角的字母。其实就是反其道而行之。如密钥LOVELYGIRL,可编制成lGCKSOIDMTVRFNUEAHPWYBJQX1.2.4运行结果在visualC++6.0编
8、译环境下,输入附录二所列代码实现playfair密码算25法的加解密,运行结果如下:1.3Vernam(弗纳
此文档下载收益归作者所有