第四章+密钥分配与身份认证-1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.1.3 密钥的分层控制
• 网络中如果用户数目非常多而且分布的地域非常广,一 个KDC就无法承担为用户分配密钥的重任。问题的解决 方法是使用多个KDC的分层结构。例如,在每个小范围 (如一个LAN或一个建筑物)内,都建立一个本地KDC。 同一范围的用户在进行保密通信时,由本地KDC为他们 分配密钥。如果两个不同范围的用户想获得共享密钥, 则可通过各自的本地KDC,而两个本地KDC的沟通又需 经过一个全局KDC。这样就建立了两层KDC。类似地, 根据网络中用户的数目及分布的地域,可建立3层或多层 KDC。 • 分层结构可减少主密钥的分布,因为大多数主密钥是在 本地KDC和本地用户之间共享。再者,分层结构还可将 虚假KDC的危害限制到一个局部区域。
公开钥分配完成后,用户就可用公钥加密体制进行 保密通信。然而由于公钥加密的速度过慢,以此进 行保密通信不太合适,但用于分配单钥密码体制的 密钥却非常合适。
1. 简单分配 图4.6表示简单使用公钥加密算法建立会话密钥的 过程,如果A希望与B通信,可通过以下几步建立 会话密钥: ① A产生自己的一对密钥{PKA,SKA},并向B发送 PKA||IDA,其中IDA表示A的身份。 ② B产生会话密钥KS,并用A的公开钥PKA对KS加 密后发往A。 ③ A由DSKA[EPKA[KS]]恢复会话密钥。因为只有A 能解读KS,所以仅A、B知道这一共享密钥。 ④ A销毁{PKA,SKA},B销毁PKA。
4.1 单钥加密体制的密钥分配 4.1.1 密钥分配的基本方法
两个用户(主机、进程、应用程序)在用单钥密码 体制进行保密通信时,首先必须有一个共享的秘密 密钥,而且为防止攻击者得到密钥,还必须时常更 新密钥。因此,密码系统的强度也依赖于密钥分配 技术。
两个用户A和B获得共享密钥的方法 有以下几种: ① 密钥由A选取并通过物理手段发 攻击者一旦获得一 送给B。 个密钥就可获取以 ② 密钥由第三方选取并通过物理 后所有的密钥;而 且用这种方法对所 手段发送给A和B。 有用户分配初始密 ③ 如果A、B事先已有一密钥,则 钥时,代价仍然很 其中一方选取新密钥后,用已有的 大。 密钥加密新密钥并发送给另一方。 ④ 如果A和B与第三方C分别有一 保密信道,则C为A、B选取密钥后, 分别在两个保密信道上发送给A、B。
4.1.2 一个实例
假定两个用户A、B分别与KDC (key distribution center)有一个共享的主密钥KA和KB,A希望与B建 立一个共享的一次性会话密钥,可通过以下几步来 完成:
① A向KDC发出会话密钥请求。表示请求的消息 由两个数据项组成,第1项是A和B的身份,第2项 是这次业务的惟一识别符N1,称N1为一次性随机数, 可以是时戳、计数器或随机数。每次请求所用的N1 都应不同,且为防止假冒,应使敌手对N1难以猜测。 因此用随机数作为这个识别符最为合适。
图4.5 证书的产生过程
因为只有用CA的公钥才能解读证书,接收方从而 验证了证书的确是由CA发放的,且也获得了发送 方的身份IDA和公开钥PKA。时戳T为接收方保证了 收到的证书的新鲜性,用以防止发送方或敌方重放 一旧证书。因此时戳可被当作截止日期,证书如果 过旧,则被吊销。
用公钥加密分配单钥密码体制的密钥
单钥体制中的密钥控制技术有以下两种。 (1) 密钥标签 用于DES的密钥控制,将DES的64比特密钥中的8 个校验位作为控制使用这一密钥的标签。标签中各 比特的含义为: • 一个比特表示这个密钥是会话密钥还是主密钥; • 一个比特表示这个密钥是否能用于加密; • 一个比特表示这个密钥是否能用于解密; • 其他比特无特定含义,留待以后使用。
图4.6 简单使用公钥加密算法建立会话密钥
A、B现在可以用单钥加密算法以KS作为会话密钥 进行保密通信,通信完成后,又都将KS销毁。这种 分配法尽管简单,但却由于A、B双方在通信前和 完成通信后,都未存储密钥,因此,密钥泄露的危 险性为最小,且可防止双方的通信被敌手监听。
这一协议易受到主动攻击,如果敌手E已接入A、B 双方的通信信道,就可通过以下不被察觉的方式截 获双方的通信: ① 与上面的步骤①相同。 ② E截获A的发送后,建立自己的一对密钥 {PKE,SKE},并将PKE‖IDA发送给B。 ③ B产生会话密钥KS后,将EPKE[KS]发送出去。 ④ E截获B发送的消息后,由DSKE[EPKE[KS]]解读 KS。 ⑤ E再将EPKA[KS]发往A。 现在A和B知道KS,但并未意识到KS已被E截获。A、 B在用KS通信时,E就可以实施监听。
Ks DKm H [ EKm H [ KS ]]
密文输入
图4.3 控制矢量的使用方式
KDC在向用户发送会话密钥时,同时以明文形式 发送控制矢量。用户只有使用与KDC共享的主密 钥以及KDC发送来的控制矢量才能恢复会话密钥, 因此还必须保留会话密钥和它的控制矢量之间的对 应关系。
与使用8比特的密钥标签相比,使用控制矢量有两个优点: 第一,控制矢量的长度没有限制,因此可对密钥的使用施 加任意复杂的控制; 第二,控制矢量始终是以明文形式存在,因此可在任一阶 段对密钥的使用施加控制。
K
Y D X
• 对称加密体制 – DES, IDEA • 非对称加密体制 – RSA,椭圆加密算法
数字签名
• 生成:发送端
M
hash
H(M)
||
M H(M)
• 验证:接收端
hash M H(M) H(M) 比较
DH密钥交换算法
1. 2. 3. 4. Alice与Bob确定两个大素数n和g,这两个整数不保密, Alice与Bob 可以使用不安全信道确定这两个数. Alice选择另一个大随机数x,并计算A如下:
即任何人都可伪造这种公开发布。如果某个用户假装 是用户A并以A的名义向另一用户发送或广播自己的公开钥, 则在A发现假冒者以前,这一假冒者可解读所有意欲发向A 的加密消息,而且假冒者还能用伪造的密钥获得认证。
• 公钥证书 – 公钥+公钥所有者的用户ID+TTP签名
• 版本1、2、3 • 序列号
– 在CA内部唯一
4. 公钥证书 上述公钥管理机构分配公开钥时也有缺点,由于每 一用户要想和他人联系都需求助于管理机构,所以 管理机构有可能成为系统的瓶颈,而且由管理机构 维护的公钥目录表也易被敌手窜扰。
分配公钥的另一方法是公钥证书,用户通过公钥证 书来互相交换自己的公钥而无须与公钥管理机构联 系。公钥证书由证书管理机构CA(certificate authority)为用户建立,其中的数据项有与该用户 的秘密钥相匹配的公开钥及用户的身份和时戳等, 所有的数据项经CA用自己的秘密钥签字后就形成 证书,即证书的形式为CA=ESKCA[T,IDA,PKA],其 中IDA是用户A的身份,PKA是A的公钥,T是当前 时戳,SKCA是CA的秘密钥,CA即是为用户A产生 的证书。产生过程如图4.5所示。用户可将自己的 公开钥通过公钥证书发给另一用户,接收方可用 CA的公钥PKCA对证书加以验证,即 DPKCA[CA]=DPKCA[ESKCA[T,IDA,PKA]]=(T,IDA,PKA)
4.2 公钥加密体制的密钥管理
前一节介绍了单钥密码体制中的密钥分配问题,而 公钥加密的一个主要用途是分配单钥密码体制使用 的密钥。本节介绍两方面内容: 一是公钥密码体 制所用的公开密钥的分配,二是如何用公钥体制来 分配单钥密码体制所需的密钥。
4.2.1 公钥的分配
1. 公开发布 公开发布指用户将自己的公钥发给每一其他用户, 或向某一团体广播。例如PGP(pretty good privacy)中采用了RSA算法,它的很多用户都是 将自己的公钥附加到消息上,然后发送到公开(公 共)区域,如因特网邮件列表。 缺点:
如果有n个 用户,则 密钥数目 为n(n-1)/2。
第4种方法比较常用,其中的第三方通常是一个负 责为用户分配密钥的密钥分配中心(KDC)。 – 每一用户必须和KDC有一个共享密钥,称为 主密钥。通过主密钥分配给一对用户的密钥 称为会话密钥,用于这一对用户之间的保密 通信。通信完成后,会话密钥即被销毁。 – 如果用户数为n,则会话密钥数为n(n-1)/2。 但主密钥数却只需n个,所以主密钥可通过物 理手段发送。
• 签名算法标识符
– 指该证书中的签名算法
• 签发人名字
– CA的名字
• 有效时间
– 起始和终止时间
• 个体名字
26
基于公钥密码的秘密密钥分发
• 双方密文传输 – 密钥通过DH密钥交换算法生成,DH但不能 为两个通信者提供认证。 • 混合传输 – 利用一次性传统会话密钥,加密消息 – 利用发方公钥,使用公钥加密的方法加密会 话密钥 – 把加密的会话密钥附在加密的消息上,一起 发出去。
首先由一杂凑函数将控制矢量压缩到与加密密钥等 长,然后与主密钥异或后作为加密会话密钥的密钥, 即 H h CV
Kin K m H
K out EKm H K S
其中CV是控制矢量,h是杂凑函数,Km是主密钥, KS是会话密钥。会话密钥的恢复过程如图4.3(b)所 示,表示为:
这一步完成后,会话密钥就安全地分配给了 A、B。 然而还能继续以下两步工作: f(N2)=N2? ④ B用会话密钥KS加密另一个一次性随机数 N2,并 将加密结果发送给A。 ⑤ A以f(N2)作为对B的应答,其中f是对N2进行某种 变换(例如加1)的函数,并将应答用会话密钥加 密后发送给B。 这两步可使B相信第③步收到的消息不是一个重放。 注意: 第③步就已完成密钥分配,第④、⑤两步 结合第③步执行的是认证功能。
4.1.4 密钥的控制使用
• 密钥可根据其不同用途分为会话密钥(数据加 密密钥)和主密钥(密钥加密密钥) • 由于密钥的用途不同,因此对密钥的使用方式 也希望加以某种控制。 如果主密钥泄露了,则相应的会话密钥也将泄露, 因此主密钥的安全性应高于会话密钥的安全性。一 般在密钥分配中心以及终端系统中主密钥都是物理 上安全的,如果把主密钥当作会话密钥注入加密设 备,那么其安全性则降低。
② KDC为A的请求发出应答。应答是由KA加密的 消息,因此只有A才能成功地对这一消息解密,并 且A可相信这一消息的确是由KDC 发出的。消息 中包括A希望得到的两项内容: • 一次性会话密钥KS; • A在①中发出的请求,包括一次性随机数N1,目 的是使A将收到的应答与发出的请求相比较,看是 否匹配。 因此A能验证自己发出的请求在被KDC收到之前, 是否被他人篡改。而且A还能根据一次性随机数相 信自己收到的应答是否是重放的过去的应答。
A=gx mod n
Alice将A发给Bob Bob选择另一个大随机数y,并计算B如下:
B=gy mod n
5. 6.
7.
Bob将B发给Alice 计算秘密密钥K1如下:
K1=Bx mod n
计算秘密密钥K2如下:
K2=Ay mod n
4.1 4.2 4.3 4.4 4.5
单钥加密体制的密钥分配 公钥加密体制的密钥分配 密钥托管 随机数的产生 秘密分割
由于标签是在密钥之中,在分配密钥时,标签与密钥一起 被加密,因此可对标签起到保护作用。本方案的缺点: 第 一,标签的长度被限制为8比特,限制了它的灵活性和功能; 第二,由于标签是以密文形式传送,只有解密后才能使用, 因而限制了对密钥使用的控制方式。
(2) 控制矢量 方案中对每一会话密钥都指定了一个相应的控制矢 量,控制矢量分为若干字段,分别用于说明在不同 情况下密钥是被允许使用还是不被允许使用,且控 制矢量的长度可变。控制矢量是在KDC产生密钥 时加在密钥之中的,过程由图4.3(a)所示。
第四章 密钥分配与用户认证
• • • •
单钥加密体制 公钥加密体制 数字签名 DH密钥交换算法
单钥加密体制
密码分析 者
信源
编码器
信道
解码器
接收者
密钥源
秘密信道
密钥源
对称加密算法的基本模型
Baidu Nhomakorabea
• 加密: E: (X,K) Y, y = E(x,k)
K
X
E
Y
解密: D: (Y,K) X, x = D(y,k)
此外,消息中还有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。