版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验报告表格例课程名称_密码学课程设计 实验名称实验一实现一个多表古典加密和解密程序班级信安2009-3姓名符德儿学号08093762仪器组号实验日期实验报告要求:1.实验目的2.实验内容3.实验步骤4.运行结果5.流程图6.实验体会1.1实验内容掌握多表古典加密方法,能用高级语言实现古典加密方法。多表古典加密方法主要有Playfair体制、Vigenere体制、Beaufor体制、Vernam体制和Hill体制,用高级语言实现其中一种体制 的加密和解密算法。1.2 Vige nere算法的基本原理1.2.1 Vige nere算法概述Vigenere密码就是一种传统加密技术,它是多表代换密码
2、,能够有效改进单表代换密码的词频 分布特征问题1.2.2 Vige nere 算法流程从Vigenere代换表中,以密钥字符串中的 “ d”为行,消息中的“ w”为列的那个字母就是“Z” 了。使用查表的方式多加密几次就能很轻易地总结出规律:将AZ以025编号,那么加密过程就是,在代换表的第一行中找到消息字母,如“ w”,然后向后移动d (即3)次,所得的字母就是密文了。如果数到末位,那么下一次移位就从头(即A)继续。也就是说,可以将AZ看成一个环,加密过程就是找定消息字母后,将指针往环的某个特定方向移位,次数就是密钥字 母所代表的数字。这其实是一个模 26的过程。扩展一下,以上加密仅能对26个
3、字母进行加密,而且不能区分大小写。但其实英文中除了 字母外,还有标点符号,还有空格。如果考虑到大部分英文字符,那么Vigenere代换表将比较大,而且有点浪费空间的嫌疑。如果假设能被加密的字符有N个,如果把这N个字符建成一个环,那么加密过程就是模 N的过程,即,C(i)=(K(i)+P(i)modN ,其中K、C、P分别代表的是 密钥空间、密文空间、消息(明文)空间。1.2.3 关键算法解析收方和发方约定一个密钥为词组,比如说是:nice day,对应的数字序列即是(13,8,2,4,3,0,24)。而加密的密钥即是将它不断重复的周期序列c=( 13,8,2,4,3,0,24 )。加密方式为E
4、(x) x+c y(mod 26)(x是明文,E( x)为密文),而去密为 D(y) y-cx(mod 26)。例如:输入明文字符为:this cryptosys ;输出密文为:g p k w f r w c b q w b s ;1.2.4 实验结果及分析主要功能:在通信的时候,给一段明文加密,再把密文发给收信方。这是一种传统的比较简单 的加密方法。1.3 Playfair算法的基本原理1.3.1 Playfair算法概述Playfair密码出现于1854年,它依据一个5*5的正方形组成的密码表来编写,密码表里排列有 25个字母。如果一种语言字母超过 25个,可以去掉使用频率最少的一个。如,
5、法语一般去掉w或k,德语则是把i和j合起来当成一个字母看待。英语中z使用最少,可以去掉它。1.3.2 Playfair算法流程第一步是编制密码表。在这个 5*5的密码表中,共有5行5列字母。第一列(或第一行)是密 钥,其余按照字母顺序。密钥是一个单词或词组,若有重复字母,可将后面重复的字母去掉。当 然也要把使用频率最少的字母去掉。如:密钥是 Live and learn,去掉后则为liveandr。如果 密钥过长可占用第二列或行。如密钥crazy dog,可编制成COHMTR G I N UABJPVYEKQWDFLSX第二步整理明文。将明文每两个字母组成一对。如果成对后有两个相同字母紧挨或最
6、后一个字 母是单个的,就插入一个字母X。如,communist,应成为 co,mx,mu,ni,st 。133关键算法解析对明文加密规则如下:1、若p1 p2在同一行,对应密文c1 c2分别是紧靠p1 p2右端的字母。其中第一列被看做是 最后一列的右方。如,按照前表,ct对应0C2 、若p1 p2在同一列,对应密文c1 c2分别是紧靠p1 p2下方的字母。其中第一行被 看做是最后一行的下方。3、若p1 p2不在同一行,不在同一列,则 c1 c2是由p1 p2确定的矩形的其他两角的 字母(至于横向替换还是纵向替换要事先约好,或自行尝试)。如,按照前表,wh对应tk或kt 0如,依照上表,明文 w
7、here there is life,there is hope.可先整理为 wh er et he re is li fe th er ei sh op ex然后密文为: kt yg wo ok gy nl hj of cm yg kg lm mb wf将密文变成大写,然后几个字母一组排列女口 5 个一组就是 KTYGW OOKGY NLHJO FCMYG KGLMM BWF解密描述:Playfair解密算法首先将密钥填写在一个 5*5的矩阵中(去出重复字母和字母z),矩阵中其它未用到的字母按顺序填在矩阵剩余位置中,根据替换矩阵由密文得到明文。对密文解密规则如下:1、若c1 c2在同一行,对
8、应明文p1 p2分别是紧靠c1 c2左端的字母。其中最后一列被 看做是第一列的左方。2、 若c1 c2在同一列,对应明文p1 p2分别是紧靠c1 c2上方的字母。其中最后一行被看做 是第一行的上方。3、若c1 c2不在同一行,不在同一列,则 p1 p2是由c1 c2确定的矩形的其他两角的字母。 其实就是反其道而行之。1.3.4 实验结果1.4 Vernam算法的基本原理1.4.1 Vernam算法概述Vernam加密法也称一次性板(One-Time-Pad),用随机的非重复的字符集合作为输出密文.这里最 重要的是,一旦使用了变换的输入密文,就不再在任何其他消息中使用这个输入密文(因此是一次 性
9、的)输入密文的长度等于原消息明文的长度。1.4.2 Vernam 算法流程以下是主要步骤.1. 按递增顺序把每个明文字母作为一个数字,A=0,B=1等等.2. 对输入密文中每一个字母做相同的处理.3. 将明文中的每个字母与密钥中的相应字母相加.4、如果得到的和大于26,则从中减去26.5. 将和转化为字母,从而得到密文。143关键算法解析显然,由于一次性板用完就要放弃,因此这个技术相当安全,适合少量明文消息,但是对大消息是 行不通的(一次性板称为密钥(Key),并且明文有多长,密钥就有多长,因此对于大消息行不通).Vernam加密法最初是AT&T公司借助所谓的Vernam机实现的.假设对明文消
10、息HOW ARE YOU行 Verman加密,一次性板为NCBTZQAR得到的密文消息JQXTUYF以下是图解1. 明文:H O W A R E Y O U7 14 22 0 17 4 24 14 20+2. 密钥 N C B T Z Q A R X13 2 1 19 25 16 0 17 233. 初始和 20 16 23 19 42 20 24 31 434. 大于 25 则减去 26 20 16 23 19 16 20 24 5 175. 密文 U Q X T Q U Y F R1.4.4 实验结果1.5实验小结附件:源代码实验1 (Vigenere算法)的源代码如下:#in clude
11、using n amespace std;int tt()chartable27=a,b,c,d,e,f,g,h,i,j,k,T,m, n, o,p,q,r,s,t,u,V,w,x,y,z;int w,k,q;w=k=q=0;char miyao10;/= n,i,c,e,d,a,y;coutvv请输入密钥,且密钥的个数小于10个endl;/for(i nt i=0;i miyao;/w+;char minwen 20,miwe n20;coutvv请输入需要加密的明文,且明文的长度一次不能超过19个字母e ndl;/for(i nt j=0;jminwen;coutvv输入的明文加密后的密文
12、如下endl;for(int p=0;minwenp!=0;p+)if(miyaoq=0)q=0; k=(minwenp-97)+(miyaoq-97)%26;/miwenp=tablek;couttablek;elsek=(minwenp-97)+(miyaoq-97)%26;/miwenp=tablek;couttablek;q+;coutendl;/ 加密完成,下面是解密的过程;cout 如果想解密请输入加密后的密文 endl;coutmiwen;cout 解密后的明文如下 endl;int t=0;for(int i=0;miweni!=0;i+)if(miyaot=0)t=0;k=(
13、miweni-97)+26)-(miyaot-97)%26;couttablek;elsek=(miweni-97)+26)-(miyaot-97)%26;couttablek;t+;coutendl;/coutmiwenendl;/coutminwenendl;return 0;int main() tt();/char a8;/for(int i=0;ia;/for(int j=0;aj!=0;j+)/coutvvajvve ndl;return 0;实验过程如图所示:谭Ia密钥;卫窑丽个数小fig nlcedav请输入需要加密的明文且明文的轶度一次不能超过如个字母 ;thiscryptosys输入的明文加密后的密文如下gpkwfrwcbqubs 包果想解密谙输入加密肓的密文 出文二 gpkuFnvjubcpjli 吕 解密启的明茨如下thiscpyptospsPress any key to continue*D:C 44De bugt:. exe请输密钥,且密钥的个数小于茁个uodeniLo质播入需要加密的明文,且明文的长度一次不能超过纤个字母 d目文;n vn ane is f udsep瓠入的明文加密后的密文如下i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年忻州市神池县安全生产基层监管责任测试题库(含答案)
- 2026年海南省导游基础知识考试卷及答案(三)
- 迪庆州德钦县招聘社区网格员考试试题附答案详解
- 瑞金市工业园招聘社区网格员考试试题附答案详解
- 2026年郑州城市职业学院单招职业技能测试题库含答案详解
- 第四课关注你我他第1课时 教学设计 苏少版(2024)初中美术七年级下册
- 潮阳区招聘社区网格员真题附答案详解
- 泰兴市横垛镇招聘社区网格员备考题库附答案详解
- 营山县通天乡招聘社区网格员备考题库附答案详解
- 第16课 国境のない地球 教案-高中日语人教版选择性必修第二册
- 2026河南开封工程职业学院招聘57人备考题库及答案详解一套
- 2026春苏教版五年级下册数学期末综合练习卷含参考答案 (三套)
- 2025年江苏镇江市初二学业水平地生会考考试试题及答案
- 2026版《国有企业领导人员廉洁从业规定》全文+新旧对比+高频考点+习题答案详解
- GB/T 47529-2026自助仓储运营管理规范
- 医院检验科试剂管理台账记录
- 消防维保技术服务实施方案
- 《老年康复综合评估指南》
- 2025-2030鲜花项目可行性研究报告
- 定弘法师占察忏仪轨
- 腹膜透析相关性腹膜炎的护理查房
评论
0/150
提交评论