密码学密钥分配和密钥管理
静态分配
一个有n个用户的系统,需实现两两之间通信
用户1 用户2 … 用户n
对称密钥配置
非对称密钥配置
K1-2,K1-3,…,K1-n n个用户公钥,用户1自己私钥
K2-1, K2-3,…,K2-n n个用户公钥,用户2自己私钥
Kn-1, Kn-2,…,Kn-n-1 n个用户公钥,用户n自己私钥
• n个用户,需要n(n-1)/2个共享密钥
Simple secret key distribution
•Merkle的建议:[Merkle 79]
A生成{PKa,SKa}, AB: (IDA,PKa) B生成随机密钥Ks, BA: EPKa(Ks) A解密EPKa(Ks)得到Ks: DSKa(EPKa(Ks)) A丢弃{PKa,SKa},B丢弃PKa •通讯前不需存在密钥,通讯后也不存在密钥 •能抵抗偷听,不能抵抗主动攻击(中间人攻击)
Merkle协议的中间人攻击
A生成{PKa,SKa}, AB: (IDA,PKa) E截获,生成{PKe,SKe}冒充AB: (IDA,PKe) B生成随机密钥Ks, BA: EPKe(Ks) E截获,解密后再用EPKa加密KsA: EPKa(Ks) A丢弃{PKa,SKa},B丢弃PKa •E获得了Ks,故以后只需进行窃听. •A,B并不知晓它们被攻击了
对于面向连接的协议,在连接还未建立或断开时,会 话密钥的有效期可以延长。而每次连接时,都应该使用新 的会话密钥。如果逻辑连接的时间长,则应定期更换会话 密钥。
对于无连接的协议(如面向业务的协议),无法决定 更换密钥的频率。为安全起见,用户每进行一次交换,都 要使用新的会话密钥。这又影响了协议本身的优势,因此 最好的办法是在一固定的周期内或对一定数目的业务使用 同一会话密钥。
加密会的话会密话钥密钥 结恢合复过过程程
Kin Km H Kout EKin [Ks ]
秘密密钥的管理
密钥由用户使用,用以保护存储在文件中的 数据,最简单的方法是不把密钥存储在系统中。 仅仅在加密、解密时才把密钥输入系统。
比如我们在DES加密算法中,要求输入56位 密钥通常有两种方法;
一种是直接输入8字节密钥,在这种情况 下,只有完全随机选择56位密钥的情况下才 能使用这种格式,因为仅有由英文字母或数字 构成的密钥太容易被穷举法破译,因为用户比 较容易记忆有意义的字母。
第五章 密钥分配与密钥管理
单钥加密体制的密钥分配 公钥加密体制的密钥管理 密钥托管 随机数的产生 秘密分割
问题的提出
建立安全的密码系统要解决的一个赖手的问 题就是密钥的管理问题。即使密码体制的算 法是计算上的安全,如果缺泛对密钥的管理, 那么整个系统仍然是脆弱的。
(1)密钥管理量的困难 传统密钥管理:两两分别用一对密钥时,则n个用
K5
k1 k2 k3
k4 k5
k1 k2 k3
k4 k5
两种密钥分配技术
名
特点
称
优点
缺点
适用范围
静 是一种由中心以脱 安全性好,是长 必须解决密钥的 静态分发只
态 线方式预分配的技 期沿用的传统密 存储技术 能以集中式
分 术,是“面对面” 钥管理技术
机制存在
配
的分发,
动 是“请求—分发” 态 的在线分发技术
此外,一个最简单的办法是把他们存储在 用系统密钥加密的文件中。
与口令不同,密钥不能用单向函数加密保 护,否则将无法解密恢复。
基于公开密钥体制 的密钥管理
公钥加密的一个主要用途是分配单钥密码体制 中所使用的密钥。下面介绍两方面的内容:公 开密钥体制中所使用的公钥的分配;如何使用 公钥体制分配单密钥体制所需的密钥。 公钥的分配 1. 公开发布 2. 公用的目录表
3. 公钥管理机构
公钥管理机构
(1) Request||Time1
(4) Request||Time2
(2) ESKAU[PKB||Request||Time1 (5) ESKBU[PKA||Request||Time2
(3) EPKB[IDA||N1]
A
B
(6) EPKA[N1||N2]
(7) EPKB[N2]
公钥管理机构分配公钥
4. 公钥分配的另一类方法是公钥证书。
随机数 产生器
产生密钥
公钥 私钥
信封 姓名 公钥
证书
CA的密钥 公钥 私钥
签字
证书的产生过程
基于公开密钥体制 的秘密密钥分配
• 简单的秘密密钥分配Simple secret key distribution • 具有保密和鉴别能力的分配Secret key distribution with confidentiality and auhtentication • 混合方案Hybrid scheme
/或B N个用户集需要N(N-1)/2个共享密钥
密钥分发中心
密钥分发中心(Key Distribution Center) 每个用户与KDC有共享密钥(Master Key) N个用户,KDC只需分发N个Master Key 两个用户间通信用会话密钥(Session Key) ➢ 用户必须信任KDC ➢ KDC能解密用户间通信的内容
•这个协议可以被中间人攻击
Diffie-Hellman密钥交换攻击
通常把密钥分为两大类型,即数据加密密 钥和密钥加密密钥。
密钥加密密钥又可分为:
主密钥:对现有的密钥或存储在主机中的 密钥加密,加密对象初级密钥和二级密钥。
初级密钥:用来保护数据的密钥。它也叫 数据加密/解密密钥。当初级密钥用来进行 通讯保护时,叫做通讯密钥。用来保护文 件时叫做文件密钥。
二级密钥:它是用来加密保护初级密钥的密钥。
这实际上也是数据加密思想的进一步深 化。从原则上说,数据加密就是把保护大量 数据的问题简化为保护和使用少量数据的问 题。
主密钥的分配方式
利用安全信道实现
-(1)直接面议或通过可靠信使递送
-(2)将密钥分拆成几部分分别传送
发送方 分解密钥
信使 K1
挂号信 K2
接收方 组合密钥
特快专递
K3
电话
K4
信鸽
用于机密和认证的密钥分配协议
假定A和B已经获得了双方的公钥:
AB: EKUb(IDA,N1) BA: EKUa(N1 ,N2) AB: EKUb(N2) AB: Y=EKUb(EKRa(Ks)) B解密Y获得会话密钥Ks=DKUa(DKRb(Y))
Diffie-Hellman密钥交换协议
分 配
需要有专门的协 有中心和无 议的支持 中心的机制 都可以采用
两种密钥分配体制
名称
特点
缺点
代表
集中 式
分布 式
集中式分配是引入一个中心服务器(通 常称作密钥分配中心或KDC),在这个 体系中,团体中的任何一个实体与中心 服务器共享一个密钥。在这样的系统中, 需要存储的密钥数量和团体的人数量差 不多,KDC接受用户的请求,为用户提
供安全的密钥分配服务
网络中的主机具有相同的地位,他们之 间的密钥分配取决于他们之间的协商
动态分发 时,中心 服务器必 须随时都 是在线的
但DiffieHellman密 钥交换协 议没有提 供鉴别机 制,不能 抵抗中间
人攻击
Kerboros协 议
比较著名的 有Diffie-
Hellman密钥 交换协议
户需要C(n,2)=n(n-1)/2个密钥,当用户量增大时,密 钥空间急剧增大。如:
n=100 时, C(100,2)=4,995 n=5000时, C(500,2)=12,497,500
(2)数字签名的问题 传统加密算法无法实现抗抵赖的需求。
概述
从理论上说,密钥也是数据,不过它是用来 加密其它数据的数据,因此,在密码学的研 究中,不妨把密钥数据与一般数据区分开来。 在设计密码系统时,对于密钥必须考虑以下 问题:
用户U选择 一随机数aU,
计算
Yu aU mod p
aU
K YvaU mod p
生成的会话密钥为
基本模式
用户V选择 一随机数aV,
计算
Yv aV mod p
aV
K YuaV mod p
Diffie-Hellman密钥交换协议
•Diffie-Hellman密钥交换协议: 双方选择素数p以及p的一个原根 U随机选择aUZp,计算aU mod p并发给V V随机选择aVZp,计算aV mod p并发给U U计算(aV mod p)aU mod p = aUaV mod p V计算(aU mod p)aV mod p = aUaV mod p 双方获得共享密钥(aUaV mod p) •与Diffie-Hellman密钥分配协议不同:此处的aU,aV是变 化的
1.系统的那些地方要用到密钥,它们是如何 设置和安装在这些地方.
2.密钥预计使用期限是多长,每隔多久需要 更换一次密钥。
3.密钥在系统的什么地方。
4.如何对密钥进行严格的保护。
为了产生可靠的总体安全设计,对于不同 的密钥应用场合,应当规定不同类型的密 钥,所以根据密钥使用场合的不同,可以 把密钥分成不同的等级。
动态分配
中心化的密钥管理方式,由一个可信赖的联机服务器作为 密钥分配中心(KDC)或密钥转递中心(KTC)
KDC
① ②
K
KTC
① ② ③
K
K
A
B
③
K
A
B
(a)
KTC
① ②
K K
A
B
K
③
K ①
KTC
K ②
A
B
(b)
会话密钥的有效期
原则上,会话密钥更换的越频繁,系统的安全性就越高。 因为这样的话,即使敌手获得了一个会话密钥,也只能解 密很少的密文。但是,会话密钥更换的太频繁,将会延迟 用户之间的交换,同时还造成网络的负担。所以,应对会 话密钥的有效期作出合理的权衡。