- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DES加密算法实现报告四川大学
四 川 大 学 计 算 机 学 院
实 验 报 告
学号: 姓名: 班级: 第 试验
课程名称
信息安全课程设计
实验课时
2
实验项目
DES加密算法的实现
实验时间
2013.04.28
实验目的 加深对分组密码原理的理解
对经典DES加密算法加密过程的理解
实验环境
Windows 8 eclipse
实验内容(算法、程序、步骤和方法) 一 试验原理
DES的特点是:一个对称密钥体制,加密盒解密使用同一秘钥、同一算法,区别是:加密子密钥顺序:k1,k2,.....k16,解密子密钥顺序k16,k15,...k2,k1。它在具体算法中属于分组乘法密码,使用56位的密钥对64位的明文进行加解密,获取密文为64位。其中密钥总长度实际为64位,另外八位作为奇偶校验位。
1.1 DES算法描述
DES体制简化示意图如图1.1所示,整个过程由三个阶段来完成:
设m=m1m2.....m64为64位待加密明文,其中mi∈{0,1},1≤i≤64,
DES先执行初始置换IP来对m进行换位处理:然后通过子密钥k1~k16进行16次乘积变换,即进行16次迭代处理;
最终经过逆初始值换IP -1 的处理,得到64位密文:C=c1c2c3.......c64,
图1.1 DES简化示意图
其中ci∈{0,1},1≤ i ≤ 64.
16轮迭代目的是使明文增加混乱性和扩散性。避免输出密文残留统计规律,使得破译者无法反向推算出密钥。
第一步:初始置换IP
初始置换IP如图1—2所示,主要用于对明文m中的各位进行换位,目的在于打乱明文m中各位的排列次序。经过初始置换后,m的映射为m→IP→m’ 。
初始置换IP 逆初始换位IP- 1
即m’ = m1’m2’m3’.....m64’=m58m50....m7
其中可以叙述为:m中第58位变为m’中第一位,m中的第50位变为m’中第二位.....m中的第7位变为m’中第64位。
第二步:DES迭代过程(乘积变换)
DES第二步是将第一步得到的64位结果分为两半,L0 =m1,m2,....m32,
R0=m33,m34....m64,其中16轮迭代过程如图3—3
图3—3(迭代过程)
设密钥k=k1k2k3....k64,ki∈{0,1},1≤ i ≤ 64。DES加密算法过程与密钥K一起作用的16轮乘积变换可以表示为:
Li = R i-1
Ri = Li-1⊕f(Ri-1,Ki)
I ≤ 1 ≤ 16
其中Li,RI长度均为32位。
L0 = m1’m2’m2’m3’......m32’
R0 = m33’m34’m35’.....m64’
符号⊕为模2加,f为加密函数(如图3-2),Ki是由密钥k分解产生并经变化后的一个48位的子密钥。整个16轮迭代过程简洁明了,既适用于加密算法也适用于解密算法。
第三步:逆初始置换IP -1
这是DES算法的随后一步,将比特串RL16应用初始置换IP的逆初始置换IP -1
处理后就获得密文C,即C = IP -1 (R16L16) = C1,C2,C3.....C64。
由于DES解密过程是一个加密过程的逆过程在此就不做过多解释
代码函数实现
1、明文与密钥的输入
首先8位ACSII字符的明文与密钥的输入,存放在mingwen[8]和miyao[8]中,然后将这些8位的ASCII字符转换成二进制的64位的明文和密钥,分别存放在mingwenB[64]和miyaoB[64]中,并将二进制的明文和密钥放在文件中
int str[8],i,j,ch,k;
FILE *fp4;fp4=fopen(明文二进制.txt,w);
k=0;
for(i=0;i8;i++)
{
ch=mingwen[i];
for(j=0;j8;j++)
{
str[j]=ch%2;
ch=ch/2;
}
for(j=7;j=0;j--)
{
mingwenB[k]=str[j];
k++;
fprintf(fp4,%d,str[j]);
}
}
2、密钥的产生
1)、64位miyaoB[64]经过pc-1置换,生成56位的比特串。定义pc1_Table[56],存放在afterpc1[56]中。
for(i=0;i56;i++) afterp
您可能关注的文档
- COPD的内科治疗.ppt
- Cours Techniques décriture.doc
- Council Report - Norwich Northern Distributor Route - 12 ….doc
- co主数据管理.doc
- CPIII控制网测设施工作业指导书.doc
- cppCH7运算符重载及流类库.ppt
- CPP强化训练模板.ppt
- CRIC商业街KPI及案例借鉴.ppt
- CPR现场心肺复苏1.ppt
- CRM操作规范10版.doc
- 2024年新教材高中历史复习课时作业41含解析.docx
- 2024_2025学年新教材高中英语Unit3FestivalsandcustomsS2课后巩固练习含解析译林版必修第二册.doc
- 2024_2025学年高中语文第四单元13在马克思墓前的讲话教案1新人教版必修2.doc
- 2024_2025学年新教材高中地理第四单元区域协调发展单元活动探究区域综合开发与整治课后习题含解析鲁教版选择性必修第二册.docx
- 2024_2025学年高中历史第二单元东西方的先哲第1课儒家文化创始人孔子作业2含解析新人教版选修4.doc
- 2024_2025学年新教材高一历史下学期暑假巩固练习6世界殖民体系与亚非拉民族独立运动含解析.docx
- 2024_2025学年新教材高中英语高效作业4Unit1PeopleofAchievementPeriodⅣWriting含解析新人教版选择性必修第一册.docx
- 《GBT 13806.1-1992 精密机械用紧固件十字槽螺钉》知识培训.pptx
- 2025届河南省南阳市镇平县重点中学中考猜题历史试卷含解析.doc
- 吉林省白山市长白县2025届中考历史押题卷含解析2.doc
文档评论(0)