密钥分配与密钥管理

更新时间:2023-08-24 09:09:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

本科生学位课: 本科生学位课:现代密码学

第五章密钥分配与密钥管理主讲教师:董庆宽 主讲教师: 研究方向: 研究方向:密码学与信息安全 Email :qkdong@http://www.77cn.com.cn

本章提要5.1 单钥加密体制的密钥分配 5.2 公钥加密体制的密钥管理 5.3 密钥托管 5.4 随机数的产生 5.5 秘密分割

2/80

5.1 单钥加密体制的密钥分配5.1.1 密钥分配的基本方法两个用户(主机、进程、应用程序) 两个用户(主机、进程、应用程序)在用单钥密码体制进 行保密通信时,首先必须有一个共享的秘密密钥 共享的秘密密钥, 行保密通信时,首先必须有一个共享的秘密密钥,为防止 攻击者得到密钥,还必须时常更新密钥 因此, 时常更新密钥。 攻击者得到密钥,还必须时常更新密钥。因此,密码系统 的强度也依赖于密钥分配技术 两个用户A和 获得共享密钥的方法有以下 获得共享密钥的方法有以下4种 两个用户 和B获得共享密钥的方法有以下 种:密钥由A选取并通过物理手段发送给 选取并通过物理手段发送给B ① 密钥由 选取并通过物理手段发送给 密钥由第三方选取并通过物理手段发送给A和 由第三方选取并通过物理手段发送给 ② 密钥由第三方选取并通过物理手段发送给 和B 如果A、 事先已有一密钥 则其中一方选取新密钥后, 事先已有一密钥, ③ 如果 、B事先已有一密钥,则其中一方选取新密钥后,用已 有的密钥加密新密钥并发送给另一方 如果A和 与第三方C分别有一保密信道 分别有一保密信道, ④ 如果 和B与第三方 分别有一保密信道,则C为A、B选取密钥 为 、 选取密钥 分别在两个保密信道上发送给A、 后,分别在两个保密信道上发送给 、B3/80

和第2种方法称为人工发送 第1和第 种方法称为人工发送 和第在通信网中,若只有个别用户想进行保密通信, 在通信网中,若只有个别用户想进行保密通信,密 钥的人工发送还是可行的。然而如果所有用户都要 钥的人工发送还是可行的。然而如果所有用户都要 求支持加密服务, 求支持加密服务,则任意一对希望通信的用户都必 须有一共享密钥。如果有n个用户 个用户, 须有一共享密钥。如果有 个用户,则密钥数目为 n(n-1)/2。因此当 很大时,密钥分配的代价非常大, 很大时, 。因此当n很大时 密钥分配的代价非常大, 密钥的人工发送是不可行的

4/80

对于第3种方法 对于第 种方法攻击者一旦获得一个密钥就可获取以后所有的密钥; 攻击者一旦获得一个密钥就可获取以后所有的密钥; 而且用这种方法对所有用户分配初始密钥时 分配初始密钥时, 而且用这种方法对所有用户分配初始密钥时,代价 仍然很

大。 仍然很大。

5/80

第4种方法比较常用 种方法比较常用其中的第三方通常是一个负责为用户分配密钥的密钥 其中的第三方通常是一个负责为用户分配密钥的密钥 分配中心(KDC)。 分配中心 。 这时每一用户必须和密钥分配中心有一个共享密钥, 这时每一用户必须和密钥分配中心有一个共享密钥, 称为主密钥。(可通过第二种方法 主密钥。(可通过第二种方法) 称为主密钥。(可通过第二种方法) 通过主密钥分配给一对用户的密钥k 称为会话密钥, 通过主密钥分配给一对用户的密钥 s称为会话密钥, 用于这一对用户之间的保密通信。 用于这一对用户之间的保密通信。 通信完成后,会话密钥即被销毁。如上所述,如果用 通信完成后,会话密钥即被销毁。如上所述, 户数为n,则会话密钥数为n(n-1)/2。但主密钥数却只 户数为 ,则会话密钥数为 。 主密钥可通过物理手段发送。 需n个,所以主密钥可通过物理手段发送。 个 所以主密钥可通过物理手段发送

6/80

5.1.2密钥分配的一个实例 密钥分配的一个实例 密钥分配的如图: 假定两个用户A、 分别与密钥分配中心 分别与密钥分配中心KDC (key distribution 如图 : 假定两个用户 、 B分别与密钥分配中心 center)有一个共享的主密钥 A和 KB,A希望与 建立一个共享的一次性 有一个共享的主密钥K 希望与B建立一个共享的 有一个共享的主密钥 希望与 建立一个共享的一次性 会话密钥,可通过以下几步来完成: 会话密钥,可通过以下几步来完成: ① A向KDC发出会话密钥请求 向 发出会话密钥请求 表示请求的消息由两个数据项组成: 表示请求的消息由两个数据项组成 第1项Request是A和B的身份 项 是 和 的身份

项是这次业务的惟一识别符N 为一次性随机数,可以是时戳、 第2项是这次业务的惟一识别符 1,称N1为一次性随机数,可以是时戳、 项是这次业务的惟一识别符 计数器或随机数 每 次 的 N1 都 应 不同,且为防 止假冒,应使 敌 手 对 N1 难 以 猜测。因此用 随机数作为这 个识别符最为 合适。 合适。防重放,防篡改 防重放,

7/80

② KDC为A的请求发出应答 为 的请求发出应答应答由K 加密,只有A能成功解密 能成功解密, 应答由 A加密,只有 能成功解密,且A可相信这一消息的确是由 可相信这一消息的确是由 KDC 发出的。 发出的。 消息中包括A希望得到的两项内容: 消息中包括 希望得到的两项内容: 希望得到的两项内容 一次性会话密钥K 一次性会话密钥 S; A在①中发出的请求,包括一次性随机数N1,目的是使 将收到的 在 中发出的请求,包括一次性随机数 目的是使A将收到的 应答与发出的请求相比较

, 应答与发出的请求相比较,看是否匹配 A能验证自己发出的请求在被 能验证自己发出的请求在被KDC收到之前,是否被他人篡改 收到之前, 能验证自己发出的请求在被 收到之前 A还能根据一次性随机数相信收到的应答不是重放的过去的应答 还能根据一次性随机数相信收到的应答不是重放的过去的应答 消息中还有B希望得到的两项内容: 消息中还有 希望得到的两项内容: 希望得到的两项内容 一次性会话密钥K 一次性会话密钥 S; A的身份(例如A的网络地址)IDA。 的身份(例如 的网络地址 的网络地址) 的身份 这两项由K 加密,将由A转发给 转发给B,以建立A、 之间的连接 这两项由 B加密,将由 转发给 ,以建立 、B之间的连接 并用于向B证明 的身份 并用于向 证明A的身份。 证明 的身份。8/80

存储会话密钥K 并向B转发 转发E ③ A存储会话密钥 S,并向 转发 KB[KS‖IDA] 存储会话密钥因为转发的是由K 加密后的密文, 因为转发的是由 B加密后的密文,所以转发过程不会被窃听 B收到后,可得会话密钥KS,并从 A可知另一方是 ,而且还从 收到后,可得会话密钥 并从ID 可知另一方是A, 收到后 EKB知道 S的确来自 知道K 的确来自KDC 这一步完成后,会话密钥就安全地分配给了 、 。 这一步完成后,会话密钥就安全地分配给了A、B。然而还能继 续以下两步工作: 续以下两步工作:

用会话密钥K ④ B用会话密钥 S加密另一个一次性随机数 2,并将加 用会话密钥 加密另一个一次性随机数N 密结果发送给A 密结果发送给 作为对B的应答 是对N ⑤ A以f(N2)作为对 的应答,其中 是对 2进行某种变换 以 作为对 的应答,其中f是对 (例如加 的函数,并将应答用会话密钥加密后发送给 例如加1)的函数 例如加 的函数,并将应答用会话密钥加密后发送给B这两步可使B相信第③ 这两步可使 相信第③步收到的消息不是一个重放 相信第 注意: 步就已完成密钥分配, 两步结合第③ 注意: 第③步就已完成密钥分配,第④、⑤两步结合第③步执行 的是认证功能9/80

5.1.3 密钥的分层控制网络中如果用户数目非常多且分布的地域非常广, 网络中如果用户数目非常多且分布的地域非常广,则需要使 用多个KDC的分层结构 用多个 的分层结构在每个小范围(如一个 或一个建筑物) 都建立一个本地 本地KDC。 在每个小范围(如一个LAN或一个建筑物)内,都建立一个本地 或一个建筑物 。 同一范围的用户在进行保密通信时,由本地KDC为他们分配密钥 同一范围的用户在进行保密通信时,由本地 为他们分配密钥 如果两个不同范围的用户想获得共享密钥,则可通过各自的本地 如果两个不同

范围的用户想获得共享密钥,则可通过各自的本地KDC, , 两个本地KDC的沟通又需经过一个全局 的沟通又需经过一个全局KDC。这样就建立了两层 而两个本地 的沟通又需经过一个全局 。 KDC 根据网络中用户的数目及分布的地域,可建立 层或多层 层或多层KDC 根据网络中用户的数目及分布的地域,可建立3层或多层

分层结构可减少主密钥的分布, 分层结构可减少主密钥的分布,因为大多数主密钥是在本地 KDC和本地用户之间共享。 和本地用户之间共享。 和本地用户之间共享 分层结构还可将虚假KDC的危害限制到一个局部区域,但会 的危害限制到一个局部区域, 分层结构还可将虚假 的危害限制到一个局部区域 降低信任度10/80

5.1.4 会话密钥的有效期会话密钥更换得越频繁,系统的安全性就越高。 会话密钥更换得越频繁,系统的安全性就越高。因为敌手即使获得一个会话密钥,也只能获得很少的密文。 因为敌手即使获得一个会话密钥,也只能获得很少的密文。

但另一方面,会话密钥更换得太频繁, 但另一方面,会话密钥更换得太频繁,又将延迟用户之间 的交换,同时还造成网络负担。 的交换,同时还造成网络负担。所以在决定会话密钥的有效期时, 所以在决定会话密钥的有效期时,应权衡矛盾的两个方面

对面向连接的协议(如 对面向连接的协议 如TCP)在连接未建立前或断开时,会话密钥的有效期可以很长。 在连接未建立前或断开时,会话密钥的有效期可以很长。而每次 建立连接时,都应使用新的会话密钥。如果逻辑连接的时间很长 逻辑连接的时间很长, 建立连接时,都应使用新的会话密钥。如果逻辑连接的时间很长, 则应定期更换会话密钥。 则应定期更换会话密钥。

无连接协议(如用户数据报协议 无连接协议 如用户数据报协议UDP) 如用户数据报协议无法明确地决定更换密钥的频率。为安全起见, 无法明确地决定更换密钥的频率。为安全起见,用户每进行一次 交换,都用新的会话密钥。 交换,都用新的会话密钥。然而这又失去了无连接协议主要的优 即对每个业务都有最少的费用和最短的延迟。 势,即对每个业务都有最少的费用和最短的延迟。比较好的方案 是在某一固定周期内或对一定数目的业务使用同一会话密钥。 是在某一固定周期内或对一定数目的业务使用同一会话密钥。 11/80

5.1.5 无中心的密钥控制用密钥分配中心为用户分配密钥时, 用密钥分配中心为用户分配密钥时,要求所有 还要求对KDC加以保护。 加以保护。 用户都信任KDC,同时还要求对 用户都信任 ,同时还要求对 加以保护 如果密钥的分配是无中心的,

如果密钥的分配是无中心的,则不必有以上两 个要求然而如果每个用户都能和自己想与之建立联系的另 一用户安全地通信,则对有n个用户的网络来说 个用户的网络来说, 一用户安全地通信,则对有 个用户的网络来说,主 密钥应多达n(n-1)/2个。 密钥应多达 个 很大时, 当n很大时,这种方案无实用价值 很大时 但在整个网络的局部范围却非常有用12/80

无中心的密钥分配时,两个用户 和 建立会话密钥 无中心的密钥分配时,两个用户A和B建立会话密钥 需经过以下3步 需经过以下 步:发出建立会话密钥的请求和一个一次性随机数N ① A向B发出建立会话密钥的请求和一个一次性随机数 1 向 发出建立会话密钥的请求和一个一次性随机数 用与A共享的主密钥 对应答的消息加密, ② B用与 共享的主密钥 用与 共享的主密钥MKm对应答的消息加密,并发送 给A应答的消息中有B选取的会话密钥 的身份ID 应答的消息中有 选取的会话密钥KS、B的身份 B、f(N1)和另一个 选取的会话密钥 的身份 和另一个 一次性随机数N 一次性随机数 2

使用新建立的会话密钥K 加密后返回给B ③ A使用新建立的会话密钥 S对f(N2)加密后返回给 使用新建立的会话密钥 加密后返回给

13/80

5.1.6 密钥的控制使用密钥可根据其不同用途分为会话密钥和主密钥两种类型会话密钥又称为数据加密密钥 主密钥又称为密钥加密密钥 由于密钥用途不同,对密钥的使用方式也希望加以某种控制 由于密钥用途不同,

如果主密钥泄露了,则相应的会话密钥也将泄露,因此主 如果主密钥泄露了,则相应的会话密钥也将泄露,因此主 密钥的安全性应高于会话密钥的安全性一般在密钥分配中心以及终端系统中主密钥都是物理上安全的 一般在密钥分配中心以及终端系统中主密钥都是物理上安全的 在密钥分配中心以及终端系统中 如果把主密钥当作会话密钥注入加密设备, 如果把主密钥当作会话密钥注入加密设备,那么其安全性则降低 把主密钥当作会话密钥注入加密设备

14/80

单钥体制中的密钥控制技术有以下两种: 单钥体制中的密钥控制技术有以下两种 (1) 密钥标签用于DES的密钥控制,将DES的64比特密钥中的 个校验位作为控制使 的密钥控制, 比特密钥中的8个校验位作为控制使 用于 的密钥控制 的 比特密钥中的 用这一密钥的标签。标签中各比特的含义为: 用这一密钥的标签。标签中各比特的含义为:一个比特表示这个密钥是会话密钥还是主密钥; 一个比特表示这个密钥是会话密钥还是主密钥; 一个比特表示这个密钥是否能用于加密; 一个比特表示这个密钥是否能用于加密; 一个比特表示这个

密钥是否能用于解密; 一个比特表示这个密钥是否能用于解密; 其他比特无特定含义,留待以后使用。 其他比特无特定含义,留待以后使用。

由于标签是在密钥之中,在分配密钥时,标签与密钥一起被加密, 由于标签是在密钥之中,在分配密钥时,标签与密钥一起被加密,因此 可对标签起到保护作用。本方案的缺点: 可对标签起到保护作用。本方案的缺点:第一,标签的长度被限制为 比特 限制了它的灵活性和功能; 比特, 第一,标签的长度被限制为8比特,限制了它的灵活性和功能; 第二,由于标签是以密文形式传送,只有解密后才能使用, 第二,由于标签是以密文形式传送,只有解密后才能使用,因而限制了 对密钥使用的控制方式。 对密钥使用的控制方式。

15/80

(2) 控制矢量对每一会话密钥都指定了一个相应的控制矢量, 对每一会话密钥都指定了一个相应的控制矢量,控制矢 分为若干字段,分别用于说明在不同情况下密钥是被 量分为若干字段,分别用于说明在不同情况下密钥是被 允许使用还是不被允许使用, 允许使用还是不被允许使用,且控制矢量的长度可变 控制矢量是在KDC产生密钥时加在密钥之中的 产生密钥时加在密钥之中的 控制矢量是在

16/80

首先由一杂凑函数将控制矢量压缩到与加密密钥等长, 首先由一杂凑函数将控制矢量压缩到与加密密钥等长,然后与 主密钥异或后作为加密会话密钥的密钥, 主密钥异或后作为加密会话密钥的密钥,即H=h(CV); Kin=Km⊕H; Kout=EKm⊕H[KS] ⊕ 其中CV是控制矢量, 是杂凑函数 是杂凑函数, 是主密钥, 其中 是控制矢量,h是杂凑函数,Km是主密钥,KS是会话密钥 是控制矢量

会话密钥的恢复过程表示为: 会话密钥的恢复过程表示为KS=DKm⊕H[EKm⊕H [KS]] ⊕ ⊕

KDC在向用户发送会话密钥时,同时以明文形式发送控制矢量 在向用户发送会话密钥时, 在向用户发送会话密钥时用户只有使用与 共享的主密钥以及KDC发送来的控制矢量才能恢复 用户只有使用与KDC共享的主密钥以及 只有使用与 共享的主密钥以及 发送来的控制矢量才能恢复 会话密钥,因此必须保留会话密钥和它的控制矢量之间的对应关系 会话密钥,因此必须保留会话密钥和它的控制矢量之间的对应关系

与使用8比特的密钥标签相比,控制矢量有两个优点 与使用 比特的密钥标签相比,控制矢量有两个优点: 比特的密钥标签相比第一,控制矢量的长度无限制, 第一,控制矢量的长度无限制,可对密钥的使用施加任意复杂的控制 第二,控制矢量始终以明文形式存在,可在任一阶段对密钥的使用施加 第二,控制矢量始终以明文

形式存在, 控制17/80

5.2 公钥加密体制的密钥管理本节介绍两方面内容: 本节介绍两方面内容: 一是公钥密码体制所用的公开密钥的分配 一是公钥密码体制所用的公开密钥的分配 二是如何用公钥体制来分配单钥密码体制所 二是如何用公钥体制来分配单钥密码体制所 需的密钥这是公钥加密的一个主要用途

18/80

5.2.1 公钥的分配1. 公开发布公开发布指用户将自己的公钥发给每一其他用户, 公开发布指用户将自己的公钥发给每一其他用户,或向 某一团体广播算法, 如PGP(pretty good privacy)中采用了 ( )中采用了RSA算法,它的很多用 算法 户都是将自己的公钥附加到消息上 然后发送到公开(公共) 将自己的公钥附加到消息上, 户都是将自己的公钥附加到消息上,然后发送到公开(公共) 区域, 区域,如因特网邮件列表

缺点很明显, 缺点很明显,即任何人都可伪造这种公开发布如果某个用户假装是用户A并以A 如果某个用户假装是用户A并以A的名义向另一用户发送或广播 自己的公开钥,则在A发现假冒者以前, 自己的公开钥,则在A发现假冒者以前,这一假冒者可解读所有 意欲发向A的加密消息, 意欲发向A的加密消息,而且假冒者还能用伪造的密钥获得认证19/80

本文来源:https://www.bwwdw.com/article/wlni.html

Top