资源预览内容
第1页 / 共31页
第2页 / 共31页
第3页 / 共31页
第4页 / 共31页
第5页 / 共31页
第6页 / 共31页
第7页 / 共31页
第8页 / 共31页
第9页 / 共31页
第10页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划vigenere实验报告(共10篇)实验报告姓名:1111学号:班级:11111日期:XX-3-121古典密码一、实验环境1.硬件配置:处理器:Corei5M,内存2GB,主硬盘320G2.使用软件:操作系统:win7软件工具:MicrosoftVisualC+二、实验设计的相关概念或基本原理1.Vigenere密码的基本思想:设密钥k=k1,k2,kn,明文P=m1,m2,mn,加密函数ek(P)=c1,c2,.,cn,26),i=1,2,n。三、实验内容根据实验原理的介绍,可以任意选取密钥,对任意明文,编写实现程序,并能进行解密操作。实验流程图:其中ci=(mi+ki)(mod四、实验总结分析关键代码1.创建加密矩阵intcreateVigenere(charvigenere26)for(inti=0;i0)vigenere0i=vigenere0i-1+1;elsevigenere0i=A;for(intj=1;jz)/如果要加密的字符中不是26个字母则将其保存,不为其加密*s=*q;q+;s+;continue;*s=vigenere*q-97*p-97;/密钥*p-97,密文*q-97s+;p+;q+;p=key;*s=0;return1;3.解密算法intdeciphring(charvigenere26,char*cipher,char*key,char*source)cipher=strlwr(cipher);char*p=strlwr(key);char*s=source;while(*q!=0)while(*p!=0&*q!=0)/如果要加密的字符中不是26个字母则将其保存,不为其解密if(*qz)*s=*q;q+;s+;continue;*s=vigenere0(*q-*p+26)%26+32;s+;p+;q+;p=key;*s=0;return1;结果显示4.小结Vigenere算法的加密矩阵思想我觉得非常有意思,现代的Des等加密思想,我觉得与之有相通之处。在实验的过程中,我体会到数学知识对密码学的巨大作用。作为信安专业的一员,我觉得仅仅满足于对密码算法的破解是不够的,我们应该在研究一种算法时吸收它的思想,掌握更多的数学知识,从而可以研究得更加深入。陕西师范大学数学与信息科学学院信息安全实验报告学号_姓名_班级_时间_成绩_维吉尼亚密实现与攻击一、实验目的:维吉尼亚密码是古典密码中非常具有代表的例子。本实验要求用高级语言编写和调试一个简单的维吉尼亚密码实现及分析破译程序。通过本实验可以加深理解维吉尼亚密码及其分析破译。二、实验要求:从数据文件()中读入要加(解)密的数据,将加(解)密结果再写入文件result_()中。统计密文数据中明文字母和加密后得到的密文字母的频率,并找出各自频率最大的5个字母;由相关数据计算密文的密表数。为维吉尼亚密码算法编写独立的模块,在主程序中调用相应的函数。维吉尼亚密钥字:hello。明文中空格、标点符号等均忽略。三、实验步骤:(1)了解维吉尼亚加密原理维吉尼亚使用一个词组作为密钥,密钥中每一个字母用来确定一个代替表,每一个密钥字母被用来加密一个明文字母,等所有密钥字母使用完后,密钥再循环使用。维吉尼亚是最著名的多表代替密码的例子。例如用Vigenere加密“wananyu”K=songhua步骤如下:1.对照字母表写出“wananyu”在字母表中的位置,以及明文“songhua”所对应的密钥字母在字母表中的位置,如下:2.维基利亚密码加密函数为:f(Pi)=(Pi+Ki)mod26,f(Pi)表示密文字母在字母表中的位置,Pi表示明文字母在字母表中的位置,Ki表示密钥字母在字母表中的位置,i=1,2,3,?,n.根据维基利亚密码加密函数写出求密文的过程及密文字母在字母表中的位置如下表:3.看表可知:明文“wananyu”维基利亚加密后的密文字母在字母表中的位置为:因此密文为:OOAGUSU(2)编写程序:由维吉尼亚加密算法的原理可知,编写程序来实现维吉尼亚加解密主要是构造明文对应的数字表,在这里,可用将明文字母转化成其ACSII值,在这之前,要将所有明文字母和密钥字母首先转化为大写字母,再转化成其对应的ACSII码值,将明文和密钥字母所对应的ACSII码带入加密或者解密公式,算出密文,再将密文还原成大写字母输出。四、实验流程:本实验的明文如下:实现明文文件的读取实现密文文件的保存fputs(str3,fp2);*/注意不能使用fputs,否知出现意想不到的错误!fwrite(str3,1,m,fp2);/存入文件中。fclose(fp1);fclose(fp2);printf(加密成功,密文已存入文件中!n);解密后的密文如下:统计明文字母和密文字母的频率,并找出各自频率最大的5个字母;由相关数据计算密文的密表数。明文中频率最大的5个字母:密文中频率最大的5个字母:五、实验心得Vigenere密码比较简单,通过实验,我明白了密码的加密和加密过程,对维吉尼亚加密算法有了更深入和全面的认识,也更具体地了解到密实验内容:经典密码算法分析实践破解以下数据,并解析破解过程Mfwkrpltqqctixlcgemwhivjwoeenijkymnhmmqxhjnzssuwypfychjafmvjhpvrexjahtewqmnkujyqgpexzvqeyknvvwhnsoglrjjxbmnyxiuiaitnfictslcpahjloiionvtkutfvnjtjwjbxhxnlrwdwjeglenwnvraqrigghjxwsxhjxmnwosgmvnislkbylimiiisyttrrtmjbvxljkzbqgzfvtdhtzqsxhjfavenhmiztitsauedqtagxhjnzzethmigwhfslbrgqzvrrgfslvjgztialaibwaetmturegfnvfxsywctkljwauinfsrvendjmiirlwiahemflgsoajzpsmjfaperjfngirqncomngnvbtesjlglexhwemnltvzmnzymfwpfwsvrgrfrfyqbrsfrwaktmjpbqexzxcsryjzfenifbnghnqtlaowpmewsyflvymnsjrmjnsojlessmjwokyprkofqnvptjwmqxhwtctlbzyjeeznqqeqpmfsnqjdrpljibuishtzrnuxyjrjowjpnpfynurxohftzxhjsmezextngleknnnaowqlpypbnvamnlqqctifslgekjmqfswsnvpveinjyigtftfgownvtxaqqgssrymmfiaxtvgsgtftfmnqjityelfurwbjvrgrjiaahnqmqsmnsigidutafisxnwafuykivpeiywsmniyprreyfonmnxyicpuhpguinfsavhebmwsmnnxpglexjifsntsmcpahjiosvjwmyigfymqhaqniaeewgqamtbfaayyipoisllvwpqfgsvorgmvnisleushfixhwhjiohenlepbyaqqbuiwfdbuenpxbbetjwzvjihqigisjfabrszworahnhpfewymmzaisyprmrxjdrrpwjdvsuxrigghjxubwtwjkrrtqditeisxbympunazinnsohenliwaklfxbjieplcgemwhpoxynbyrlfurwoajzglelfurwefxwaxhwjmzsrjypisyprmrmnagsrnharestsjhxwnyprpkjxwasnknzrxhjdpnzeflivr1bjjvsvejxkbvislvrxtnsotsaqxvvrertzrxhfsaiinltzewnsfwosxohenlepbyrkbpbjisnauidymqehasiubveymiafenoqakhfwjvrynymakfnsqfleigwgxortnglehxtdbntyfewjtrkayjlnposlevxhiftvenxmiakhfnauinmziglektzzirhqcosfsnkbpaxfvrpkffvqhiinmehrtljnjisnauidrnlgebqjqarisypcssnyqbr加密方法分析:使用CryptographicAnalysisProgram的Freq工具,密文经过分析频率得到密文的英文字母频率表:下面列出的表格引自Algoritmy网站。而这个列表和其他的表稍微不同,如美国康奈尔大学数学探索项目在统计40000个单词后得到了大同小异的另一表。2对比可以看出密文字母的频率相对于正常的频率更加分散,并不集中于一些高频的字母中,使用CADic工具得出密文的ic值是,ic值用来统计字母的平滑度,完全平滑是,正常的明文ic值大概是,单表加密不能改变ic值,可以判断不是单表加密,因为单表加密字母频率一般是和正常的频率差不多,只是频率高的字母替换成其它字母,密文的平滑度很高,猜测密文通过多表加密,破解方法:多表加密是用一个固定长度的密钥给密文加密,我们可以把密文分解成n份的密文,这样每份密文就是一份单表加密的密文.再通过单表密文的破解方法来破解;破解步骤:31.利用kasiki法找出密钥长度:通过分析可知,得到密钥长度是关键的步骤.我们可以通过暴力的方法,不断的分解密文来统计频率对比正常频率,但是这种方法对于密钥长度很长的时候,效率不高.通过baidu发现有一种方法可以分析密钥长度那就是kasiski法,kasiski基本思想就是,如果明文里面有相隔密钥长度的倍数的相同字母,那么这些字母加密后也是呈现相同的字母,那么我们在密文找出这些相同的字母,算出各自之间的距离,再统计他们的距离的公约数,那么这个公约数是就有可能是密钥长度.那么我就可以使用CAP里面的Kasiski工具这个表是字母组合来得出结果,因为当密文统计单个字母,我们很难知道哪些字母是同一个密钥加密,得出的公约数很能就是1,3个连续字母组合的话,在密文找到相同的字母组就很可能是同一个密钥形成的.这里我们就把sizeofcharacterstring
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号