实验一des加密解密

实验一des加密解密

ID:11842129

大小:35.00 KB

页数:4页

时间:2018-07-14

实验一des加密解密_第1页
实验一des加密解密_第2页
实验一des加密解密_第3页
实验一des加密解密_第4页
资源描述:

《实验一des加密解密》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验一DES加密解密实验目的1、理解对称加密算法的原理和特点。2、理解DES和AES算法的加密原理。实验原理DES是一种分组加密算法,所谓分组加密算法就是对一定大小的明文或密文来做加密或解密动作。而在DES这个加密系统中,每次加密或解密的分组大小均为64位,所以DES没有密文扩充的问题。对大于64位的明文只要按每64位一组进行切割,而对小于64位的明文只要在后面补“0”即可。另一方面,DES所用的加密或解密密钥也是64位大小,但因其中有8个位是用来作奇偶校验的,所以64位中真正起密钥作用的只有56位,密钥过短也是DE

2、S最大的缺点。DES加密与解密所用的算法除了子密钥的顺序不同外,其他部分完全相同。核心代码#include#include#include#defineENCRYPT1#defineDECRYPT0staticvoidprintHex(char*cmd,intlen);staticvoidprintArray(constchar*In,intlen);staticvoidF_func(boolIn[32],constboolKi[48]);//f函数stati

3、cvoidS_func(boolOut[32],constboolIn[48]);//S盒代替staticvoidTransform(bool*Out,bool*In,constchar*Table,intlen);//变换staticvoidXor(bool*InA,constbool*InB,intlen);//异或staticvoidRotateL(bool*In,intlen,intloop);//循环左移staticvoidByteToBit(bool*Out,constchar*In,intbits);/

4、/字节组转换成位组staticvoidBitToByte(char*Out,constbool*In,intbits);//位组转换成字节组//16位子密钥staticboolSubKey[16][48];//64位经过PC1转换为56位(PC-1)conststaticcharPC1_Table[56]={};//左移conststaticcharLOOP_Table[16]={};//排列选择2(PC-2)conststaticcharPC2_Table[48]={};//Ri_1(32位)经过变换E后膨胀为48

5、位(E)voidF_funcstaticconstcharE_Table[48]={};//8个4比特合并为32比特的排列PconststaticcharP_Table[32]={};//经过S盒S-boxesconststaticcharS_Box[8][4][16]={};//初始排列(IP)conststaticcharIP_Table[64]={};//L16与R16合并后经过IP_1的最终排列(IP**-1)conststaticcharIPR_Table[64]={};voidDes_SetKey(con

6、stcharKey[8]);//生成子密钥voidDes_Run(charOut[8],charIn[8],boolType);//DES算法voidmain(intargc,char*argv[]){charkey[12]={1,2,3,4,5,6,7,8};charstr[12]="Hello";charstr2[12];//printArray(PC2_Table,sizeof(PC2_Table)/sizeof(PC2_Table[0]));printf("Beforeencrypting:");puts(s

7、tr);Des_SetKey(key);memset(str2,0,sizeof(str2));Des_Run(str2,str,ENCRYPT);printf("Afterencrypting:");printHex(str2,8);memset(str,0,sizeof(str));printf("Afterdecrypting:");Des_Run(str,str2,DECRYPT);puts(str);}实验分析DES采用传统的换位和置换的方法进行加密,在56b密钥的控制下,将64b明文块变换为64b密文块,

8、加密过程包括16轮的加密迭代,每轮都采用一种乘积密码方式(代替和移位)。实验总结与心得体会这个实验要充分了解其原理,才是做这个实验的真正目的,在这个实验中,我觉得比较难的就是,要将明文和密钥经过初始变换和十六轮加密变换等一系列变换后才能得到张结置换,其中的变换步骤比较多,而且比较复杂,还要将十六进制转化为二进制,工作量比较大。由本次DES算法实

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。