版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
共页第页工商学院信息学部密码学原理DES算法实验报告年级2012级学号2012478048姓名史雅楠成绩专业12信计实验地点指导教师常卓实验项目DES加密算法实验日期2015年9月24日实验报告要求:实验目的1、理解DES加密与解密的程序设计算法思想2、编写DES加密与解密程序,实现对明文的加密与解密,加深对数据加密与解密的理解,掌握DES加密算法思想,提高网络安全的编程能力。二、实验原理DES算法的入口参数有三个:Key、Data、Mode。其中Key為8个字节共64位,是DES算法的工作密钥;Data也為8个字节64位,是要被加密或被解密的数据;Mode為DES的工作方式有两种:加密或解密。DES算法是这样工作的:如Mode為加密,则用Key去把数据Data进行加密,生成Data的密码形式(64位)作為DES的输出结果;如Mode為解密,则用Key去把密码形式的数据Data解密,还原為Data的明码形式(64位)作為DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。通过定期在通信网络的源端和目的端同时改用新的Key,便能更进一步提高数据的保密性,这正是现在金融交易网络的流行做法。三、实验要求1分组加密算法DES算法过程2多重DES算法加密过程3算法过程中的各个变换矩阵或者S盒就4输入输出正确,各个程序语句的注释5加解密要求都能够正确运行四、实验步骤、结果(程序+注释+截图)及分析混乱和扩散的组合,即先代替后置换,它基于密钥作用于明文,这是一轮(round),DES在明文分组上实施16轮相同的组合技术。如下图所示:
DES对64位明文分组进行操作。通过一个初始置换,将明文分组分成左半部分和右半部分,各32位长。然后进行16轮完全相同的运算,这些运算被称为函数f,在运算过程中数据与密钥结合。经过16轮后,左、右半部分合在一起经过一个末置换(初始置换的逆置换),算法就完成了。
在每一轮中,密钥位移位,然后再从密钥的56位中选出48位。通过一个扩展置换将数据的右半部分扩展成48位,并通过一个异或操作与48位密钥结合,通过8个S盒将这48位替代成新的32位数据,再将其置换一次。这四步运算构成了函数f。然后,通过另一个异或运算,函数f的输出与左半部分结合,其结果即成为新的左半部分。将该操作重复16次,便实现了DES的16轮运算。一轮DES如下图所示:
假设Bi是第i次迭代的结果,Li和Ri是Bi的左半部分和右半部分,Ki是第i轮的48位密钥,且f是实现代替、置换及密钥异或等运算的函数,那么每一轮就是:
Li=Ri-1
Ri=Li-1⊕f(Ri-1,Ki)
1、初始置换
初始置换在第一轮运算之前进行,对输入分组实施如下表所示的变换。初始置换把明文的第58位换到第1位的位置,把第50位换到第2位的位置,把第42位换到第3位的位置,依此类推。58,50,42,34,26,18,10,2,
60,52,44,36,28,20,12,462,54,46,38,30,22,14,6,
64,56,48,40,32,24,16,857,49,41,33,25,17,9,
1,
59,51,43,35,27,19,11,361,53,45,37,29,21,13,5,
63,55,47,39,31,23,15,7初始置换和对应的末置换并不影响DES的安全性,它们的主要目的是为了更容易地将明文和密文数据以字节大小放入DES芯片中。2、密钥置换由于不考虑每个字节的第8位,DES的密钥由64位减至56位,每个字节第8位作为奇偶校验以确保密钥不发生错误。如下表所示:57,49,41,33,25,17,9,1,58,50,42,34,26,1810,2,59,51,43,35,27,19,11,3,60,52,44,36
63,55,47,39,31,23,15,7,62,54,46,38,30,2214,6,61,53,45,37,29,21,13,5,28,20,12,4在DES的每一轮中,从56位密钥产生出不同的48位子密钥(subkey),这些子密钥是这样确定的:首先,56位密钥被分成两部分,每部分28位。然后,根据轮数,这两部分分别循环左移1位或2位。每轮移动的位数如下表:轮
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16位数
1
1
2
2
2
2
2
2
1
2
2
2
2
2
2
1移动后,就从56位中选出48位。这个运算既置换了每位的顺序,也选择了子密钥,被称为压缩置换(compressionpermutation)。下表即定义了压缩置换:14,17,11,24,1,5,3,28,15,6,21,1023,19,12,4,26,8,16,7,27,20,13,241,52,31,37,47,55,30,40,51,45,33,4844,49,39,56,34,53,46,42,50,36,29,32可以看出,第33位的那一位在输出时移到了第35位,而处于第18位的那一位被忽略了。3、扩展置换这个运算将数据的右半部分从32位扩展到48位。这个操作两方面的目的:它产生了与密钥同长度的数据以进行异或运算;它提供了更长的结果,使得在替代运算中能进行压缩。如下图所示:对每个4位输入分组,第1位和第4位分别表示输出分组中的两位,而第2位和第3位分别表示输出分组中的一位,下表给出了哪一输出位对应哪一输入位:32,
1,
2,
3,
4,
5,
4,
5,
6,
7,
8,
98,9,10,11,12,13,12,13,14,15,16,1716,17,18,19,20,21,20,21,22,23,24,2524,25,26,27,28,29,28,29,30,31,32,1处于输入分组中第3位的位置移到了输出分组中的第4位,而输入分组的第21位则移到了输出分组的第30位和第32位。尽管输出分组大于输入分组,但每一个输入分组产生唯一的输出分组。4、S盒代替压缩后的密钥与扩展分组异或以后,将48位的结果送入,进行代替运算。替代由8个S盒完成,每一个S盒都由6位输入,4位输出,且这8个S盒是不同的。48位的输入被分为8个6位的分组,每一个分组对应一个S盒代替操作:分组1由S盒1操作,分组2由S盒2操作,等等。如下图所示:每一个S盒是一个4行、16列的表。盒中的每一项都是一个4位的数。S盒的6个位输入确定了其对应的输出在哪一行哪一列。下表列出所有8个S盒:
S盒1:14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,70,15,7,4,14,2,13,1,10,6,12,11,9,5,3,84,1,14,8,13,6,2,11,15,12,9,7,3,10,5,015,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13S盒2:15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,103,13,4,7,15,2,8,14,12,0,1,10,6,9,11,50,14,7,11,10,4,13,1,5,8,12,6,9,3,2,1513,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9S盒3:10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,813,7,0,9,3,4,6,10,2,8,5,14,12,11,15,113,6,4,9,8,15,3,0,11,1,2,12,5,10,14,71,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12S盒4:7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,1513,8,11,5,6,15,0,3,4,7,2,12,1,10,14,910,6,9,0,12,11,7,13,15,1,3,14,5,2,8,43,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14S盒5:2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,914,11,2,12,4,7,13,1,5,0,15,10,3,9,8,64,2,1,11,10,13,7,8,15,9,12,5,6,3,0,1411,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3S盒6:12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,1110,15,4,2,7,12,9,5,6,1,13,14,0,11,3,89,14,15,5,2,8,12,3,7,0,4,10,1,13,11,64,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13S盒7:4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,113,0,11,7,4,9,1,10,14,3,5,12,2,15,8,61,4,11,13,12,3,7,14,10,15,6,8,0,5,9,26,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12S盒8:13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,71,15,13,8,10,3,7,4,12,5,6,11,0,14,9,27,11,4,1,9,12,14,2,0,6,10,13,15,3,5,82,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11假定将S盒的6位的输入标记位b1、b2、b3、b4、b5、b6。则b1和b6组合构成了一个2位数,从0到3,它对应着表的一行。从b2到b5构成了一个4位数,从0到15,对应着表中的一列。例如,假设第6个S盒的输入为110011,第1位和第6位组合形成了11,对应着第6个S盒的第三行,中间4位组合形成了1001,它对应着同一个S盒的第9列,S盒6在第三行第9列的数是14,则用值1110来代替110011。这是DES算法的关键步骤,所有其他的运算都是线性的,易于分析,而S盒是非线性的,它比DES的其他任何一步提供了更好的安全性。这个代替过程的结果是8个4位的分组,他们重新合在一起形成了一个32位的分组。5、P盒置换S盒代替运算的32位输出依照P盒进行置换。该置换把每输入位映射到输出位,任一位不能被映射两次,也不能被略去,下表给出了每位移至的位置:16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,102,8,24,14,32,27,3,9,19,13,30,6,22,11,4,
25第21位移到了第4位,同时第4位移到了第31位。最后,将P盒置换的结果与最初的64位分组的左半部分异或,然后左、右半部分交换,接着开始另一轮。6、末置换末置换是初始置换的逆过程。DES在最后一轮后,左半部分和右半部分并未交换,而是将两部分并在一起形成一个分组作为末置换的输入,该置换如下表如示:40,8,48,16,56,24,64,32,39,7,47,15,55,23,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年政府公共安全监控技术合同范本3篇
- 2024年版建设项目招标协调合同
- 三年级教学计划3篇
- 员工工作计划
- 2024-2030年中国羟甲烟胺片行业发展潜力预测及投资战略研究报告
- 服装销售工作计划
- 学习部工作计划4篇
- 去超市实习报告范文集合7篇
- 银行员工辞职信
- 关于教师职称述职报告汇编5篇
- 变压器安装施工工艺-课件
- 河道汛期施工防洪防汛应急预案
- 汉语教程我听过钢琴协奏曲黄河课件
- 二氧化碳充装流程
- 12m跨钢栈桥设计计算
- 电路板类英语词汇
- 沙特的矿产资源开发概况及其商机
- 高一生物必修一期末试题(附答案)
- 安全事故应急响应程序流程图(共1页)
- 三年级_上册牛津英语期末试卷
- 损伤容限设计基本概念原理和方法PPT课件
评论
0/150
提交评论