- 1、本文档共86页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
密钥管理与密钥分配《现代密码学》
密钥管理与密钥分配 本章主要内容 1、单钥加密体制的密钥分配 2、公钥加密体制的密钥管理 3、密钥托管 习题 1. 单钥加密体制的密钥分配 1.1 密钥分配的基本方法 两个用户(主机、进程、应用程序)在用单钥密码体制进行保密通信时,首先必须有一个共享的秘密密钥,而且为防止攻击者得到密钥,还必须时常更新密钥。因此,密码系统的强度也依赖于密钥分配技术。 两个用户A和B获得共享密钥的方法有以下几种: ① 密钥由A选取并通过物理手段发送给B。 ② 密钥由第三方选取并通过物理手段发送给A和B。 ③ 如果A、B事先已有一密钥,则其中一方选取新密钥后,用已有的密钥加密新密钥并发送给另一方。 ④ 如果A和B与第三方C分别有一保密信道,则C为A、B选取密钥后,分别在两个保密信道上发送给A、B。 前两种方法称为人工发送。在通信网中,若只有个别用户想进行保密通信,密钥的人工发送还是可行的。然而如果所有用户都要求支持加密服务,则任意一对希望通信的用户都必须有一共享密钥。如果有n个用户,则密钥数目为n(n-1)/2。因此当n很大时,密钥分配的代价非常大,密钥的人工发送是不可行的。 对于第3种方法,攻击者一旦获得一个密钥就可获取以后所有的密钥;而且用这种方法对所有用户分配初始密钥时,代价仍然很大。 第4种方法比较常用,其中的第三方通常是一个负责为用户分配密钥的密钥分配中心。这时每一用户必须和密钥分配中心有一个共享密钥,称为主密钥。通过主密钥分配给一对用户的密钥称为会话密钥,用于这一对用户之间的保密通信。通信完成后,会话密钥即被销毁。如上所述,如果用户数为n,则会话密钥数为n(n-1)/2。但主密钥数却只需n个,所以主密钥可通过物理手段发送。 1.2 密钥分配实例 下图是密钥分配的一个实例。假定两个用户A、B分别与密钥分配中心KDC (key distribution center)有一个共享的主密钥KA和KB,A希望与B建立一个共享的一次性会话密钥,可通过以下几步来完成: 密钥分配实例 ① A向KDC发出会话密钥请求。表示请求的消息由两个数据项组成,第1项是A和B的身份,第2项是这次业务的惟一识别符N1,称N1为一次性随机数,可以是时戳、计数器或随机数。每次请求所用的N1都应不同,且为防止假冒,应使敌手对N1难以猜测。因此用随机数作为这个识别符最为合适。 ② KDC为A的请求发出应答。应答是由KA加密的消息,因此只有A才能成功地对这一消息解密,并且A可相信这一消息的确是由KDC 发出的。消息中包括A希望得到的两项内容: 一次性会话密钥KS; A在①中发出的请求,包括一次性随机数N1,目的是使A将收到的应答与发出的请求相比较,看是否匹配。 因此A能验证自己发出的请求在被KDC收到之前,是否被他人篡改。而且A还能根据一次性随机数相信自己收到的应答不是重放的过去的应答。 此外,消息中还有B希望得到的两项内容: 一次性会话密钥KS; A的身份(例如A的网络地址)IDA。 这两项由KB加密,将由A转发给B,以建立A、B之间的连接并用于向B证明A的身份。 ③ A存储会话密钥,并向B转发EKB[KS‖IDA]。因为转发的是由KB加密后的密文,所以转发过程不会被窃听。B收到后,可得会话密钥KS,并从IDA可知另一方是A,而且还从EKB知道KS的确来自KDC。 这一步完成后,会话密钥就安全地分配给了A、B。然而还能继续以下两步工作: ④ B用会话密钥KS加密另一个一次性随机数N2,并将加密结果发送给A。 ⑤ A以f(N2)作为对B的应答,其中f是对N2进行某种变换(例如加1)的函数,并将应答用会话密钥加密后发送给B。 这两步可使B相信第③步收到的消息不是一个重放。 注意: 第③步就已完成密钥分配,第④、⑤两步结合第③步执行的是认证功能。 1.3 密钥的分层控制 网络中如果用户数目非常多而且分布的地域非常广,一个KDC就无法承担为用户分配密钥的重任。问题的解决方法是使用多个KDC的分层结构。例如,在每个小范围(如一个LAN或一个建筑物)内,都建立一个本地KDC。同一范围的用户在进行保密通信时,由本地KDC为他们分配密钥。如果两个不同范围的用户想获得共享密钥,则可通过各自的本地KDC,而两个本地KDC的沟通又需经过一个全局KDC。这样就建立了两层KDC。类似地,根据网络中用户的数目及分布的地域,可建立3层或多层KDC。 分层结构可减少主密钥的分布,因为大多数主密钥是在本地KDC和本地用户之间共享。再者,分层结构还可将虚假KDC的
文档评论(0)