77范文网 - 专业文章范例文档资料分享平台

DES加密算法课程设计报告(2)

来源:网络收集 时间:2019-01-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

for(j=0;j<4;j++) {

str1[j]=temp%2; temp=temp/2; }

for(j=3;j>=0;j--) {

beforep[k]=str1[j]; k++; } }

9)、转换为二进制的32位比特串进行P置换,生成新的32位比特串,也就是f的值。存放在P[32]中。 for(i=0;i<32;i++)

p[i]=beforep[p_table[i]-1];

至此,第一轮的循环已经完成,成功产生了L[0][32]和R[0][32]。

10)、对于剩下的15轮循环,用一个循环语句进行控制,生成余下的15轮中间数据的左部和右部,最后产生L[15][32]和R[15][32]。

11)、得到的最后一轮左部32位比特串和右部32位比特串进行合并,但是,合并的时候,右部32位比特串在前,R[15][32]在前,而L[15][32]在后。结果存放在beforeoutput[64]中 for(i=0;i<32;i++) //数据合并,R[15][32]在前,L[15][32]在后面 beforeoutput[i]=R[15][i]; for(i=32,j=0;i<64;i++,j++) beforeoutput[i]=L[15][j]; 12)、左右数据合并后的比特串进行最后的逆置换,生成64位的二进制密文。存放在output[64]中。 for(i=0;i<64;i++)

output[i]=beforeoutput[IPR_tabel[i]-1];//得到64位密文 13)、将得到的64位密文转换为8位的ASCII字符。 int charB[8][8]; k=0; char miwen[8]; for(i=0;i<8;i++) for(j=0;j<8;j++) {

charB[i][j]=output[k]; k++;

} for(i=0;i<8;i++) {

str[i]=0;

if(charB[i][0]==1) str[i]=str[i]+128; if(charB[i][1]==1) str[i]=str[i]+64;

6

if(charB[i][2]==1) str[i]=str[i]+32; if(charB[i][3]==1) str[i]=str[i]+16; if(charB[i][4]==1) str[i]=str[i]+8; if(charB[i][5]==1) str[i]=str[i]+4; if(charB[i][6]==1) str[i]=str[i]+2; if(charB[i][7]==1) str[i]=str[i]+1; }

m_outputMiwen=\for(i=0;i<8;i++)

miwen[i]=str[i]; //至此,得到密文miwen[8]

三、标准DES的解密过程

解密与加密的过程几乎完全相同,唯一不同的地方是:在进行E扩展后要与子密钥进行异或的时候,第一轮要与第十六轮子密钥进行异或。依次类推,第十六轮要与第一轮子密钥进行异或。因此对于DES的解密过程就不再细说。

程序运行结果截图

1、初始界面,界面的初始化输入的明文/密文是“20082374”,也就是学号作为待加密数据。

7

2、点击加密:进入加密界面,在这个界面里显示加密过程中的所有细节,包括循环的次数,每轮循环的子密钥、左右部数据。

3、再次点击加密按钮,进行数据的加密,64位的明文经过加密生成64位密文,“64位明文:”是输入的8位明文的二进制表示。“64位密钥:”是输入的8位密钥的二进制表示。“64位密文:”是经过加密之后产生的密文。“循环轮数”是记录十六轮循环的次数。“子密钥”记录每次循环的时候与R(i-1)进行异或的

8

48位子密钥。“左部(Li)”指的是每次循环生成的Li,左部32位比特串。“右部(Ri)”指的是每次循环产生的右部Ri,32位比特串。

4、点击返回按钮,返回主界面。

5、点击解密按钮,进入解密界面,在这个界面里显示了解密过程中的所有细节,包括循环的次数,每轮循环的子密钥、左右部数据。

9

6、点击解密按钮,进行数据的加密,64位的密文经过解密生成64位的明文,“64位密文:”是输入的8位密文的二进制表示。“64位密钥:”是输入的8位密钥的二进制表示。“64位明文:”是经过解密之后产生的明文。“循环轮数”是记录十六轮循环的次数。“子密钥”记录每次循环的时候与R(i-1)进行异或的48位子密钥。“左部(Li)”指的是每次循环生成的Li,左部32位比特串。“右部(Ri)”指的是每次循环产生的右部Ri,32位比特串。

10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库DES加密算法课程设计报告(2)在线全文阅读。

DES加密算法课程设计报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/405766.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: