一 密钥分配[定稿].doc

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

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

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档