- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
S—DES算法实现的实验报告
周胜安(200620109286) 计算机科学与工程研一(2)班
S-DES加密算法的JAVA实现
一、实验要求
(1)简述S-DES的加密算法的主要思想
(2)实现的主要步骤,及各个步骤的主要思想及示意图
(3)给出程序的分析,运行结果和程序的效率分析
(4)通过编程实现S-DES加密算法,了解DES加密的原理,也加深对现代对称密码的理解。
二、算法思想
?加密算法的数学表示:
密文=IP-1fk2(SW(fk1(IP(明文)))))
其中K1=P8(移位(P10(密钥K)))
K2=P8(移位(移位(P10(密钥K))))
? 解密算法的数学表示:
明文=IP-1(fk1(SW(fk2(IP(密文)))))
S-DES 加密方法示意图:
S-DES算法涉及加密、密钥产生、解密三个部分。流程图(每个函数的算法见源代码)
三、算法流程框图、各模块说明
实验是用JAVA实现的
(1)密钥的产生
密钥产生的示意图:
密钥的产生算法涉及五个函数定义
初始置换P10 其中P10的定义为:
P10(k1,k2,…,k10)=(k3,k5,k2,k7,k4,k10,k1,k9,k8,k6)
(2)LS-1操作:对密钥的左右两组循环左移一位(密钥分成5位一组,共2组)
(3)P8置换产生Key1。其中P8的定义为:
P8(k1,k2,…,k10)=(k6,k3,k7,k4,k8,k5,k10,k9)
(4)LS-2操作: :对密钥的左右两组循环左移两位.
(5) P8置换产生Key2
(2) S-DES 的加密过程
示意图:
加密算法涉及五个函数:
(1)初始置换IP(initial permutation)。其中P8的定义为:
IP(k1,k2,…,k8)=(k2,k6,k3,k1,k4,k8,k5,k7)
(2)复合函数fk,它是由密钥K确定的,具
有置换和代替的运算。
函数fk,是加密方案中的最重要部分,它可表示为:
fk(L,R)=(L(F(R,SK),R)其中L,R为8位输入, 左右各为4位, F为从4位集到4位集的一个映射, 并不要求是1-1的。SK为子密钥。
对映射F来说:
首先输入是一个4-位数(n1,n2,n3,n4),第一步运算是扩张/置换(E/P)运算:
E/P
4 1 2 3 2 3 4 1
事实上,它的直观表现形式为:
n4 n1 n2 n3
n2 n3 n4 n1
8-bit子密钥:K1=(k11,k12,k13,k14,k15,k16,k17,k18),然后与E/P的结果作异或运算得:
n4+k11 n1+k12 n2+k13 n3+k14
n2+k15 n3+k16 n4+k17 n1+k18
把它们重记为8位:
P0,0 P0,1 P0,2 P0,3
P1,0 P1,1 P1,2 P1,3
上述第一行输入进S-盒S0,产生2-位的输出;第二行的4位输入进S盒S1,产生2-位的输出。
两个S盒按如下定义:
S盒按下述规则运算:
将第1和第4的输入比特做为2- bit数,指示为S盒的一个行;将第2和第3的输入比特做为S盒的一个列。如此确定为S盒矩阵的(i,j)数。
例如:(P0,0, P0,3)=(00),并且(P0,1,P0,2)=(1 0)
确定了S0中的第0行2列(0,2)的系数为3,记为(1 1)输出。
由S0, S1输出4-bit经置换 P4
2 4 3 1
它的输出就是F函数的输出。
(3)转换函数SW:将输入的左4位与右4位交换
(4)初始置换IP的逆置换IP-1其中P8的定义为:
P8(k1,k2,…,k8)=(k4,k1,k3,k5,k7,k2,k8,k6)
四、程序使用说明
(1)安装JDK
从http://J/下载jdk-1_5_0_04-windows-i586-p.exe
安装到指定路径,我选择D:\jdk1.5.0
配置环境变量:
Java_HOME: D:\jdk1.5.0
PATH: D:\jdk1.5.0\bin;
CLASSPATH: .;D:\jdk1.5.0\lib\tools.jar;
D:\jdk1.5.0\jre\lib\rt.jar
(2)将附件的
复制到硬盘中如D:
(其中”SimpleDes.java”为原代码;“SimpleDes.class”为JAVA执行文件)
(3)运行程
文档评论(0)