实验一 Java环境下的加解密实验

上传人:我** 文档编号:115620760 上传时间:2019-11-14 格式:DOCX 页数:25 大小:734.84KB
返回 下载 相关 举报
实验一 Java环境下的加解密实验_第1页
第1页 / 共25页
实验一 Java环境下的加解密实验_第2页
第2页 / 共25页
实验一 Java环境下的加解密实验_第3页
第3页 / 共25页
实验一 Java环境下的加解密实验_第4页
第4页 / 共25页
实验一 Java环境下的加解密实验_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《实验一 Java环境下的加解密实验》由会员分享,可在线阅读,更多相关《实验一 Java环境下的加解密实验(25页珍藏版)》请在金锄头文库上搜索。

1、Java环境下的加解密实验一、 实验名称:Java环境下的加解密算法实现及应用二、 实验目的:掌握常用的对称加密算法DES的工作原理掌握常用的消息摘要算法MD5的工作原理。Java语言编程实现DES和MD5算法Java框架中JCA、JCE、JSSE的使用三、 实验步骤 (1)DES算法工作原理并采用Java语言编程实现DES算法的流程如图1所示:有16个相同的处理过程,称为“回次”(round),并在首尾各有一次置换,称为IP与FP(或称IP-1,FP为IP的反函数(即IP“撤销”FP的操作,反之亦然)。IP和FP几乎没有密码学上的重要性,为了在1970年代中期的硬件上简化输入输出数据库的过程

2、而被显式的包括在标准中。在主处理回次前,数据块被分成两个32位的半块,并被分别处理;这种交叉的方式被称为费斯妥结构。费斯妥结构保证了加密和解密过程足够相似唯一的区别在于子密钥在解密时是以反向的顺序应用的,而剩余部分均相同。这样的设计大大简化了算法的实现,尤其是硬件实现,因为没有区分加密和解密算法的需要。图中的符号代表异或(XOR)操作。“F函数”将数据半块与某个子密钥进行处理。然后,一个F函数的输出与另一个半块异或之后,再与原本的半块组合并交换顺序,进入下一个回次的处理。在最后一个回次完成时,两个半块不必交换顺序,这是费斯妥结构的一个特点,以保证加解密的过程相似。 DES算法总体流程图DES的

3、Feistel函数(F函数DES的密钥生成(2)MD5算法工作原理并采用Java语言编程实现MD5即Message-Digest Algorithm 5(消息摘要算法第五版)的简称,是当前计算机领域用于确保信息传输完整一致而广泛使用的散列算法之一(又译哈希算法、摘要算法等)。1992年8月Ronald L. Rivest向IETF提交了一份重要文件,描述了这种算法的原理,由于这种算法的公开性和安全性,在90年代被广泛使用在各种程序语言中,用以确保资料传递无误等。MD5一度被广泛应用于计算机安全领域。但由于近年来MD5的弱点不断被发现,以及当今计算机运算能力的不断提升,现在已经可能人为构造出两个

4、具有相同MD5校验值的信息,使本算法不再适合现今的安全领域。目前,MD5算法因其普遍、稳定、快速的特点,仍广泛应用于普通数据的错误检查领域。例如在一些BitTorrent下载中,软件将通过计算MD5检验下载到的文件片段的完整性。MD5算法原理图其基本操作过程如下:(1)对明文输入按512bit分组,填充使其成为512bit的整数倍,且最后一组的后64bit用来表示按时消息的长在mod下的值K。填充位数为1512bit,填充数字图样为(1000),得Y0,Y1,YL-1。其中,YL为512bit,按字记消息长为N=L*16。即信息有L组,每组16个字,每字32bit,M0=0,1,N-1(2)

5、每轮输出为128bit,可用下述四个32bit字:A,B,C,D表示,其初始存数以十六进制表示为:A=01234567,B=89ABCDEF,C=FEDCBA98,D=76543210。 (3)HMD-5的运算。对512bit(16-字)组进行运算,Yq表示输入的第q组512bit数据,在各轮中参加运算。T1,2,64为64个元素表,分四组参与不同轮的计算。Ti是232*abs(sin(i)的整数部分,i是弧度。可用32bit二元数表示,T是32bit的随机数源。HMD5算法原理一般128位的MD5散列被表示为32位十六进制数字MD5的具体程序实现参考MD5Util.java类(3)Java框

6、架中JCA、JCE、JSSE的使用阅读Java加密与解密的艺术3-JAVA加密利器.pdf,掌握JCA和JCE框架使用,并应用该框架,采用DES、RSA、MD5算法对“Dont tell anybody!”信息传进行处理,验证其与1,2步中的结果是否一致。四、 具体实验1、具体程序实现DESUtil.java类 代码如下: package encryption;public class DesUtil byte bytekey;public DesUtil(String strKey) this.bytekey = strKey.getBytes();/ 声明常量字节数组private sta

7、tic final int IP = 58, 50, 42, 34, 26, 18, 10, 2, 60, 52,44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48,40, 32, 24, 16, 8, 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35,27, 19, 11, 3, 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31,23, 15, 7 ; / 64private static final int IP_1 = 4

8、0, 8, 48, 16, 56, 24, 64, 32, 39, 7,47, 15, 55, 23, 63, 31, 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45,13, 53, 21, 61, 29, 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11,51, 19, 59, 27, 34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49,17, 57, 25 ; / 64private static final int PC_1 = 57, 49, 41, 33, 25, 1

9、7, 9, 1, 58, 50,42, 34, 26, 18, 10, 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, 22, 14, 6,61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4 ; / 56private static final int PC_2 = 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21,10, 23, 19, 12, 4, 26, 8, 16, 7,

10、 27, 20, 13, 2, 41, 52, 31, 37, 47,55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36,29, 32 ; / 48private static final int E = 32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9, 8, 9,10, 11, 12, 13, 12, 13, 14, 15, 16, 17, 16, 17, 18, 19, 20, 21, 20,21, 22, 23, 24, 25, 24, 25, 26, 27, 28, 29, 28,

11、 29, 30, 31, 32, 1 ; / 48private static final int P = 16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23,26, 5, 18, 31, 10, 2, 8, 24, 14, 32, 27, 3, 9, 19, 13, 30, 6, 22,11, 4, 25 ; / 32private static final int S_Box = 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7 , 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12

12、, 11, 9, 5, 3, 8 , 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0 , 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13 , / S_Box1 15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10 , 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5 , 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15

13、 , 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9 , / S_Box2 10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8 , 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1 , 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7 , 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12 , / S_Box3 7, 1

14、3, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15 , 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9 , 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4 , 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14 , / S_Box4 2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9 , 14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6 , 4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14 , 11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3 , / S_Box5 12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11 , 10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8 , 9, 14,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号