- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一 密钥分配[定稿]
实习一 密钥分配
一、实习目的
1.理解密钥管理的重要性;
2.掌握对称密码和公钥密码密钥管理的不同特性;
3.掌握密钥分发基本方法,能设计密钥分发方案
二、实习要求
1.实习前认真预习第2章的有关内容;
2.复习对称密码和公钥密码相关内容;
3.熟悉Java平台的JCE包有关类。
三、 实习内容
假定两个用户A、B,用户A、B的通讯密钥为K,他们的公私钥对分别是KPUa、KPRa和KPUb、KPRb,他们要进行安全通讯,密钥分发与通信过程如1所示。
(1)根据图1所示,实现利用公钥密码算法分发对称密钥的过程。
实现的阶梯任务如下:
= 1 \* GB3 ①以本地两个目录模拟两个用户,采用变量方式直接实现密钥的分发;
= 2 \* GB3 ②实现算法的图形化方式,用户可以选择算法、参数、工作模式等;
= 3 \* GB3 ③以文件方式管理密钥及明文、密文;
= 4 \* GB3 ④采用Socket,建立安全通信过程;
= 5 \* GB3 ⑤将方案移植到某个web应用中。
(2)按照(1)的阶梯任务,实现基于DH密钥协定的密钥分发。
四、实验过程
1.知识回顾
DES 是数据加密标准(Data Encryption Standard)的简称,出自 IBM 的研究工作,并在 1977 年被美国政府正式采纳。它是使用较为广泛的密钥系统,最初开发 DES 是嵌入硬件中DES 特别是在保护金融数据的安全,如自动取款机中,使用较多。
在 DES 中,使用了一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。加密过程中,将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,
然后将输出与另一半进行“异或”运算;接着交换这两半。循环往复。DES 使用 16 个循
环,但最后一个循环不交换。
攻击 DES,一般只能使用穷举的密钥搜索,即重复尝试各种密钥直到有一个符合为
止。如果 DES使用 56 位的密钥,则可能的密钥数量是 2 56 个,穷举难度较大。IBM曾对DES拥有几年的专利权,但在 1983 年到期。
在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。
正是基于这种理论,1978年出现了著名的RSA算法,它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。
2.问题分析
(1).对称密钥密码体系
对称密钥密码体系也叫密钥密码体系,它是指消息发送方和消息接收方必须使用相同的密钥,该密钥必须保密。发送方用该密钥对待发消息进行加密,然后将消息传输至接收方,接收方再用相同的密钥对收到的消息进行解密。这一过程可用数学形式来表示。消息发送方使用的加密函数encrypt有两个参数:密钥K和待加密消息M,加密后的消息为E,E可以表示为E=encrypt(K,M)消息接收方使用的解密函数decrypt把这一过程逆过来,就产生了原来的消息M=decrypt(K,E)=decrypt(K,encrypt(K,M))
(2).非对称密钥密码体系
非对称密钥密码体系又叫公钥密码体系,它使用两个密钥:一个公共密钥PK和一个私有密钥SK。这两个密钥在数学上是相关的,并且不能由公钥计算出对应的私钥,同样也不能由私钥计算出对应的公钥。这种用两把密钥加密和解密的方法表示成如下数学形式。假设M表示一条消息,pub—a表示用户a的公共密钥,prv—a表示用户a的私有密钥,那么:
M=decrypt(pub—a,encrypt(prv—a,M))
3.算法分析及流程图
StartDES生成密钥K
Start
DES生成密钥K
RSA生成公钥密钥对
RSA加密算法使用公钥对密钥K加密
RSA解密算法使用私钥解密
End
4.实验原理
(1) 利用java中的KeypairGenerator类创建公钥密钥对,工厂类KeypairGenerator的静态方法getInstance()可以获得KeypairGenerator类型对象。
(2) 方法getInstance()的参数为字符串类型,指定加密算法为RSA。
(3) RSA算法是使用整数进行加密运算的,RSA的公钥中包含两个信息:公钥对
文档评论(0)