S—DES算法实现的实验报告.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档