1 / 9
文档名称:

实验报告+des加密算法的实现.doc

格式:doc   大小:26KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验报告+des加密算法的实现.doc

上传人:文库旗舰店 2019/10/14 文件大小:26 KB

下载得到文件列表

实验报告+des加密算法的实现.doc

文档介绍

文档介绍:实验报告DES加密算法的实现班级自动化学号:姓名:2016年11月13日星期日一、DES加密简述:DES算法是一种对称密码体制,由美国IBM公司在1972年研发。其明文按64位进行分组,密钥长64位(包含8位校验位),分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。二、DES的实现过程首先通过初始置换表IP对明文进行置换intIP_Table[64]={ 57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,56,48,40,32,24,16,8,0,58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6};第一个57就是将明文中的第57个元素,放到第1的位置,然后把明文中第49个元素放到第2的位置,以此类推。之后将换位后的输出分为两部分L0和R0,L0是输出的左32位,R0是右32位。intDES_IP_Transform(chardata[64]){t;chartemp[64];t=t<t++){t]=data[t]];}memcpy(data,temp,64);return0;}之后加密函数,将R0通过位选择函数E置换,把本身是32位的R0扩充成48位,与生成的48位子密钥对应,按位运算。intE_Table[48]={31,0,1,2,3,4,3, 4,5,6,7,8,7, 8,9,10,11,12,11,12,13,14,15,16,15,16,17,18,19,20,19,20,21,22,23,24,23,24,25,26,27,28,27,28,29,30,31,0};intDES_E_Transform(chardata[48]){t;chartemp[48];t=t<t++){t]=data[t]];}memcpy(data,temp,48);return0;}然后,将扩充完的R0和子密钥K1进行模2加运算,得到48位的一个串,把这个串从左到右分为8组,每组6个字符。这里设8组分别为B1,B2,B3,B4,B5,B6,B7,B8。其中Bj=b1b2b3b4b5b6。之后,通过S盒来收缩,然后通过S盒输出的就是32位的一个串。intDES_SBOX(chardata[48]){t;intline,row,output;intcur1,cur2;t=t<t++){t*6;t<<2;line=(data[cur1]<<1)+data[cur1+5];row=(data[cur1+1]<<3)+(data[cur1+2]<<2)+(data[cur1+3]<<1)+data[cur1+4];output=t][line][row];data[cur2]=(output&0X08)>>3;data[cur2+1]=(output&0X04)>>2;data[cur2+2]=(output&0X02)>>1;data[cur2+3]=output&0x01;}return0;}最后,经过16次迭代运算后。得到L16、R16,t = 0; cnt < 16; cnt++){         memcpy(copyRi