- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DES算法实现与分析论文讲解
项目报告:DES 算法的实现与分析
组员:柴彦廷 121041302
李雨潇 121041316
唐均 121041328
王森 121041333
王钰 121041334
熊枫 121041337
目录
1. 引言 2
2. 项目研究 2
2.1 框架设计、模块划分 3
2.2. DES加密技术简介 3
3. 方案设计 3
3.1 明文的输入与转化 4
3.2 S盒及P盒原理简介 4
3.3 子密钥的产生 5
3.4 16轮循环加密 5
4. 仿真结果输出 5
5. DES算法特点总结 8
6. 参考文献 8
7. 程序代码 9
一、引言
项目的选题目的和意义:
DES采用分组乘积密码体制,它是由IBM开发,是对早期被称为Lucifer?密码体制的改进。DES在1975年3月17日首次在联邦记录中公布,而且声明对比算法征求意见。到1977年2月15日拟议中的DES被采纳为“非密级”应用的一个联邦标准。?
最初预期DES作为一个标准只能使用10~15年,然而,出于种种原因,可能是DES还没有受到严重的威胁,事实证明了DES要长寿得多。在其被采用后,大约每隔5年被评审一次。DES的最后一次评审是在1999年1月。但是,随着计算机计算能力的提高,由于DES的密钥过短,仅有56位,对DES的成功攻击也屡见报端。?尽管如此,DES的出现是现代密码学历史上非常重要的事件。它对于我们分析掌握分组密码的基本理论与设计原理仍然具有重要的意义。
本课题是在Matlab的环境下对DES算法的实现和分析,探究DES算法的原理。
二、项目研究
2.1、框架设计,模块划分:
2.1.1、总体分为三个模块:
1、数据初始化:明文的输入(字符串形式)及转化为数字串。
2、产生子密钥
3、16轮循环加密及密文输出
2.1.2、总体流程图:
2.2. DES加密技术简介:
DES是一个16轮的Feistel型结构密码,它的分组长度为64比特,用一个56比特的密钥来加密一个64比特的明文串,输出一个64比特的密文串。其中,使用密钥为64比特,实用56比特,另8位用作奇偶校验。加密的过程是先对64位明文分组进行初始置换,然后分左、右两部分分别经过16轮迭代,然后再进行循环移位与变换,最后进行逆变换得出密文。加密与解密使用相同的密钥,因而它属于对称密码体制。
假设输入的明文数据是64比特。首先经过初始置换IP后把其左半部分32比特记为L0,右半部分32比特记为R0,即成了置换后的输入;然后把R0与密钥产生器产生的子密钥k1进行运算,其结果计为f(R0,k1);再与L0进行摸2加得到L0⊕f(R0,k1),把R0记为L1放在左边,而把L0⊕f(R0,k1)记为R1放在右边,从而完成了第一轮迭代运算。在此基础上,重复上述的迭代过程,一直迭代至第16轮。所得的第16轮迭代结果左右不交换,即L15⊕f(R15,k16)记为R16,放在左边,而R15记为L16放在右边,成为预输出,最后经过初始置换的逆置换IP-1运算后得到密文。
方案设计:
3.1 明文的输入与转化为数字串
由于输入的明文和密钥都是16进制表示的字符串格式,因此在输入后要将字符串转换为01数字串。
程序:
MB=[]; %定义变量MB
for i=1:16 %开始循环
Mi=M(i); %将输入字符串M的第i位赋值给M(i)
MBi=[0000,dec2bin(hex2dec(Mi))]; %将16进制数转化为2进制
MBi=MBi(end-3:end);
MBi=[str2num(MBi(1)),str2num(MBi(2)),str2num(MBi(3)),str2num(MBi(4))];%字符串矩阵被转换成一个数值矩阵
MB=[MB,MBi];
end
M=MB;
3.2 S盒及P盒原理简介
S盒运算:
在密码函数f?(R?,?k)中有8个S盒,称为8个不同的选择函数,分别用(S1、S2…S8)表示。每个S盒都是将6位作为输入,得到一个4位块作为输出。?
以S1为例,若B是6位的一个块,则S1(B)计算如下:B的第一和最后一位表示从0到3之间的二进制数,令该数为i?;而B的中间4位表示从
文档评论(0)