两种基本古典密码设计与实现_第1页
两种基本古典密码设计与实现_第2页
全文预览已结束

下载本文档

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

文档简介

实验二两种基本古典密码设计与实现091234谢锦仪一、实验目的:该实验为验证性实验。通过本实验,使学生对于两种基本的古典密码编码方法(“代替”与“移位”)产生深刻的感性认识,体验清楚二者之间的本质差异,为理解和掌握现代密码的相应知识打下良好基础。二、实验内容:1.设计一个周期3的多表代换并予以实现,要求:第一个表有密钥字法产生(密钥字自拟),第二个表由洗牌法产生(注意,字母a〜z与数字0〜25—一对应,洗牌法即相当于实验一的方法1(n=25)),第三个表由公式法产生(数学公式自拟,注意它须是Z26上的一个一一变换)。2.设计一个周期5的16-置换移位密码并予以实现,要求:5个16-置换至少有一个是由实验一(n=15)提供的两个方法以为、自行设计的其它方法产生。三、实验要求:上述两个古典密码的编程实现,须能对下面一段明文进行正确加密(对代替密码,空格和标点符号保持不动;对移位密码,空格和标点符号也移位):Qisasymmetricblockcipher.Itisdefinedforablocksizeof128bits.Itallowsarbitrarylengthpasswords.Thedesignisfairlyconservative.Itconsistsofasimplesubstitution-permutationnetwork.Inthispaperwepresentthecipher,itsdesigncriteriaandouranalysis.ThedesignisbasedonbothRjindaelandSerpent.Itusesan8-bits-boxfromRjindaelwiththelinearmixinglayersreplacedwithtwoSerpentstylebit-slices-boxesandalinearpermutation.ThecombinationofmethodseliminatesthehighlevelstructureinherentinRjindaelwhilehavingbetterspeedandavalanchecharacteristicsthanSerpent.SpeedisimprovedoverSerpent.Thisversion2.00containsbetteranalysis,editorialchanges,andanimprovedkeyschedulingalgorithm.Thenumberofrecommendedroundsisalsoincreased.抓图显示密文(附页),不能出现明显错误。四、实验步骤:1、实验思路对于代替密码,难点是大小写的转化和保持加密后大小写的不变。这里利用了专门的字符处理函数库ctype。用Tolower函数将大写转化为小写,然后转化为数字。这样才能容易的实现代替加密的过程。在密钥字算法的实现中,利用字符串处理函数的功能,在拼接比较后,录入到choicewords中,最后进入keytab,作为密钥的一部分。洗牌法我用的是实验一自己设计的方法,很简单就融入了这个程序之中。移位密码:由于老师要求用一种全新的产生全排列的方法,我于是想到了RSA公钥体制。这里面RSA算法是密码学三大算法之一(RSA、MD5、DES),是一种不对称密码算法。说如果满足条件:D是素数,N是两个素数(P,Q)之积,(D*E)mod((P-1)*(Q-l))=l,那么存在C与A(范围从2到N-1)——对应,且C=(AEXPD)modN°A是一个有顺序的数,C就是一个看似无规律的伪随机数。Mod运算表示求模,例如7Mod3=1。意思是7除以3余1。类似地8Mod3=2,9Mod3=0。EXP表示前面数的后面数次方,其中还有两个附加条件:1,P和Q不能一样。2,ev(P-1)(Q-1)且e与(P-1)(Q-1)的最大公因数为1。具体实现的时候,我把l随机安插进去,就成了一个随机全排列了。具体的代码见附录。而在利用时间种子产生随机数的函数中,为了避免重复,我在数组b录入元素后,令数组a对应的为0,然后再a不为0时录入b,十分简单。而将三种方法合并为密钥表的做法与代替的例子类似,这里就不说了。在最后输出的时候有一个与代替密码不一样的问题:虽然都是由几组密钥组成的keytab,但是黛米可以不分组变换,而移位的密钥表是16*5,不分组变换效果很差。所以在输出的时候利用i<16时,(i-1)/16为0这一性质,实现了分组变换输出。2、实验过程这些代码中很多都在做一个工作:去掉重复的元素,将无重复的存入数组进行后续处理。根据不同的情况,也使用不同的方法:先存入另一数组,比较后存入处理数组;或者存入一个初始值进处理数组,然后每录入一个就比较一次。这两种方法显然后一种是更好的,但有时确实又需要辅助数组,这就需要视具体情况而定。五、实验结果:1、代替密码”弋替密码进行加密:青输入密钥字:womendoushih:青输入待加密文本文件名:e.txt密文如下:Kireugpqcdjqggzgpjpjedbm.Ahosqxezsuumnfcchmpmefp£128£eee.Pddpqiaapakiaapaaafaaaaawqi'Hpuis.Jkggkqutgaryrgaopjmmtxixaxkdm.SiIffufpssqmypezpkedmemaqaaaiaa-aiaaaadaaafguuhqxl.Kugppqgjqtelypzjkgztivoxmplzn,siiwsufnrpzdpfpumfpeeafudpdaada.AfddfaaaaapnmthhppixgpGuudqluurozLdklqlp.Cnxfcmrn8-ziee-wisnsquZeekdfesazasaqsciaepaaaaaaaamydqttitplibggotxuezaUycujuhhtxmoamx-xthzki-lckipsenpurzdmeuuduaaqaeaa.Adi'eaaiaacaaggkhkizgucdjxtbxgluxcngjqxaozxfewfnxdzieisndfysfqprzQpppeipuapudprzafafrfaaaaajduunpisgitbzjtqpyprrxljlxhtrqpnzxiMnfmumu.UrpyyczipzqsceeeasmAzaaqaa.Afaaamaaaaf2.00ekltxdgi'baguqlqjglgwccjm,jjxslsuukomopkld,zmhkdxiqzpuffpiairzppai'ufukmiaaaaaa.Aaaai'festqbycbyxyljprrexmoz1aubctwchoncef11.Pressanykeytocontinue—2、移位密码

借输入随即数据采样文件名:pt.txt慣文如下:Qytapinnessicplrlrir-ci'ehbtidefinedsforoblIzfaskceIstbi2.18talloirarywti'ashIs.1'grssrdhi'peownTiideslignesflyaaei'iiarnsocuueositt.nsicsofpssiuleambspantmt-nutnotpeitiw.neoovkntIniset*pthpeapwrehintpsecetliep,entssigiderdaueunuriitiotnasisdlThey-essiioedginasbbon1RjtdaehiandttppeS.Ienusiossbbs-ns:8etsxjaomefindrHlthwainiwtlehemia_sngxyerilreplitedwathcwotievebseeetSlyet-sxicees-bo1saaparrnadneilmu.etiotThancombnatimiofnoetitdtsmtetlhanothehigleleuhsucttrnhnptLiieretn1Rjidaeniwhilnehautegbitenlasaaaaueadrdanatececrachhi'iceefSetsianhtentdSpei.isemppoeedoi'urSeupeuns.sosiTsinret2nn0cs.taiBoberesystetalnaiedlaorinichtagesj-npndpimaaouhnuuiculeitededgtgoi'Tahm.1iheembcrunuofreneosednunddrisacsoielreasnd-Pi'essanykeytocontinue六、实验体会:这次的实验由于有老师提供的参考代码,困难程度并不像代码的长度那般惊人。代替密码的ctype函数库是一个重点,我们开始都犹豫大写的明文加密后如何保持大写不变,另设一组变换时行不通的。如将大写字母与另外26个数字相对应,那么就要准备两张keytab,而且程序的复杂度会增加很多。但是利用了isupper函数后这个就简单了,至于公式法,密钥字法和洗牌法,有实验一的思考结果在,都是不难的。移位密码开始不知道怎么做,不过在上网查过

温馨提示

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

评论

0/150

提交评论