加密算法的研究_第1页
加密算法的研究_第2页
加密算法的研究_第3页
加密算法的研究_第4页
加密算法的研究_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、总纲1 加密算法的研究2在本小组中的任务3VC+测试程序中函数调用关系4C#程序中的编写5参考资料1 加密算法的研究1.1置换表算法,典型是凯撒算法。此算法没有使用密钥,每一个数据段(总是一个字节)对应着“置换表”中的一个偏移量,偏移量所对应的值就输出成为加密后的文件。加密程序和解密程序都需要一个这样的“置换表”。这种加密算法对于破译来讲是相当直接的,只要找到一个“置换表”就可以了。凯撒算法的偏移量是3。1.2二维置换表,算法名字忘了此算法是运用密钥,将密钥循环排列至和原文长度一致,根据密钥和原文找到置换之后的密文,解密时运用密文和密钥以及置换表,进行还原。1.3综合的加密法 MD5输入是一个

2、字节串,每个字节是8个bit. 算法的执行分为以下几个步骤:第一步,补位第二步,附加数据长度用一个64位的整数表示数据的原始长度(以bit为单位),将这个数字的8个字节按低位的在前,高位在后的顺序附加在补位后的数据后面。第三步,初始化MD5参数:有四个32位整数变量 (A,B,C,D) 用来计算信息摘要第四步,定义四个MD5基本的按位操作函数(X,Y,Z为32位整数):F(X,Y,Z) = (X and Y) or (not(X) and Z)G(X,Y,Z) = (X and Z) or (Y and not(Z)H(X,Y,Z) = X xor Y xor ZI(X,Y,Z) = Y xo

3、r (X or not(Z) 再定义四个分别用于四轮变换的函数。第五步,对输入数据作变换。从这个算法中可以看到对位操作的操作函数都是基于三个基本操作,and、not和换位,再由这三个操作组成自己需要的加密操作。在加密过程中,可以循环几次进行加密,Rijndeal算法就是循环1014次,DES算法循环了16次。2在本小组中的任务提供客户端和服务器端对传输的数据的加密算法,不采用已有的任何一种加密算法。为配合正副组长的工作,将采用他们各自运用的编程语言来制作加密。对于服务器端使用VC+制作,并且为避免对方未装.NET等问题,只是程序不能正常运行,此处将不使用.NET中的封装类。对于客户端采C#制作

4、已完成VC+测试程序2.1用途:传输数据时要对数据进行加密,不能以明文传送,客户端和服务器端之间的传输是以密文进行,两个传输方向都是如此。2.2特点:对称密钥加密,测试时,输入任意长度的密钥,生成一个8位的密钥,实际运用时采用更长的密钥。2.3算法(测试第一版):测试中,明文输入是一个字符串,将其分为一个一个字符,每个字符是8个bit.。密钥也是由用户任意输入。算法的执行分为以下几个步骤:第一步补位:将数据补满,使之能正好被分块完全,不会有残留,或不满。测试程序中采用一个字符一个字符加密,因此不需要补位。MD5算法中是补一个1,然后补值为0的字节。实际运用时,是2或4个字符一加密,所以在实际运

5、用时直接补空格。第二步分块将数据分成一个个数据块,分别进行加密。测试程序中将起分成一个个字符,实际运用时分成两个字符,或四个。即每16bits或32bits一加密,测试时8bits一加密。第三步初始化密钥在测试程序中密钥是任意的字符串,对其进行操作得到实际需要的密钥。第四步按位操作将每一个数据块分为bit。定义三种bit的操作:换位,异或,取反。第五步对输入数据作变换2.3算法(测试第二版): 是在第一种上的改进型。将一个字符加一次密改为两个字符一组,这样就要在奇数个字符的情况下在最后补加空格。加入space来记录加了几个空格, space不是0&1,增加可扩展性,使加密也可以四个字符

6、一组。将密钥在加密时和字符组结合,产生新密钥,对后面的字符组加密,这样可以保证形如两个“aa”,加密的结果不同,增加破解难度。这样得出的结果是:如果明文只在最后几位改变,加密内容也只在最后几位改变。本算法将加密之后的密文使用改变之后的密钥再加一次密,由于明文不同,产生的密钥也不同,这样使明文中后面的字符也可以影响到密文的所有字符,只要有微小不同,密文将完全不同。密钥仍采用一个字符。2.4算法 (测试第三版) 改为4个char一加密,并采用16位的密钥。3 . VC+测试程序中函数调用关系3.1 算法一函数介绍 Tobit()将char转化为8bits Fan(),对一个bit取反 Jiami(

7、),Jiemi()是对8bits的内容分别进行加密和解密,没有用到密钥 Changea(),Changeb()是采用密钥对一个char进行加密,密钥是由用户输入的密钥产生3.2 函数具体运用任意输入明文和密钥按下加密按钮:将明文读入m_mingwen,记录下长度size,将其传给ch sizechar数组,将密钥读入,传给另一个char数组。 对每个char调用Jiami 函数,Jiami函数中调用Tobit函数,将char转化为8bits,调用Fan函数,并位置互换,测试版中未加入异或操作,正式版中将添加异或函数,也在此处调用。 对Jiami(chi)进行change操作,对每一个字节都用密钥操作。 最后结果输出到m_miwen按下解密键:和m_mingwen没有关系,是从m_miwen读入,经过和加密一样的操作转

温馨提示

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

评论

0/150

提交评论