2010-5-14 1
第六章 密钥分配与密钥管理
Key Distribution and Key
Management
2010-5-14 2
内容提要
? 单钥加密体制的密钥分配
? 公钥加密体制的密钥管理
? 密钥托管
? 随机数的产生
? 秘密分割
2010-5-14 3
公钥加密体制的密钥管理
Key Management of Public Key
Cryptography
2010-5-14 4
用户 B用户 A
Diffie-Hellman密钥交换
? W.Diffie和 M.Hellman1976年提出
? 算法的安全性基于求离散对数的困难性
选择随机数 x<p
计算 YA= gx mod p
选择随机数 y<p
计算 YB= gy mod p
YAYB 计算 K=YA
y
= gxy mod p
计算 K=YB x
= gxy mod p
2010-5-14 5
密钥托管
Key Escrow
2010-5-14 6
密钥托管
? 也称托管加密,其目的在于保证个人没
有绝对的银丝和绝对不可跟踪的匿名性。
? 实现手段是把已加密的数据和数据恢复
密钥联系起来。
? 由数据恢复密钥可以得到解密密钥,由
所信任的委托人持有。
? 提供了一个备用的解密途径,不仅对政
府有用,也对用户自己有用。
2010-5-14 7
美国托管加密标准
? 1993年 4月提出托管加密标准 EES
( Escrowed encrytion standard)
? 提供强加密功能,同时也提供政府机构
在法律授权下监听功能。
? 通过防窜扰 Clipper芯片来实现。
? 包含两个特性
? Skipjack算法,实现强加密
? 法律实施存取域 LEAF,实现法律授权下解密
2010-5-14 8
Skipjack算法
? 单钥分组加密算法,密钥长 80比特,输
入输出分组长度 64Bit
? 4种工作模式
? ECB模式
? CBC模式
? 64bitOFB模式
? 1,8,16,32,64比特 CFB模式
2010-5-14 9
托管加密芯片
? Skipjack算法
? 80比特族密钥 KF(Family key),同一批芯
片的族密钥都相同
? 芯片单元识别符 UID
? 80bit的芯片单元密钥 KU(unique key),由
两个 80bit密钥分量异或得到
? 控制软件被固化在芯片上
2010-5-14 10
托管加密芯片的编程过程
UID
KU1 E
K1
KU1 E
K2+
SJ
KF
UID
KU
KF
芯片
芯片编程
处理器托管机构 1
初始化
托管机构 2
初始化
UID
)( 11 KUEK
UID )( 11 KUEK
托管机构 1
托管机构 2
2010-5-14 11
托管加密芯片加密过程
用 KU加密
加密的 KS UID A
KS IV
用 KF加密
LEAF
80bit 32bit 16bit
KS:会话密钥
A:认证符
UID:芯片识别符
IV:初始向量
2010-5-14 12
通信和法律实施存取过程
2010-5-14 13
密钥托管密码体制的组成成分
? 用户安全成分( USC)
? 密钥托管成分( KEC)
? 数据恢复成分( DRC)
2010-5-14 14
随机数的产生
Generation of Random Numbers
2010-5-14 15
随机数的用途
? 相互认证
? 会话密钥的产生
? 公钥密码算法中的密钥产生
2010-5-14 16
随机数的要求-随机性
? 均匀分布
? 数列中每个数出现的频率相等或近似相等
? 独立性
? 数列中任一数不能由其他数推出
? 经常使用的是伪随机数列
2010-5-14 17
随机数的要求-不可预测性
? 对数列中以后的数是不可预测的
? 对于真随机数,满足独立性,所以不可
预测
? 伪随机数列需要特别注意满足不可预测

2010-5-14 18
随机数源
? 真随机数源-物理噪声产生器
? 离子辐射脉冲检测器
? 气体放电管
? 漏电容
? 数的随机性和精度不够
? 这些设备很难联入网络
2010-5-14 19
伪随机数产生器 -线性同余法
参数:
模数 m (m>0)
乘数 a (0≤a<m)
增量 c (0≤c<m)
初值种子 X0(0≤X0<0)
mcaXX nn m o d)(1 ???
a,c,m的取值是
产生高质量随
机数的关键
2010-5-14 20
伪随机数产生器 -线性同余法
? a=7,c=0,m=32,X0=1
? {7,17,23,1,7,… }
? a=3,c=0,m=32,X0=1
? {3,9,27,17,19,25,11,1,3,… }
? 选 m尽可能大,使其接近或等于计算机
能表示的最大整数
周期为 4
周期为 8
2010-5-14 21
伪随机数产生器 -线性同余法
? 迭代函数应是整周期的,在重复之前应
出现 0到 m间的所有数
? 产生的数列看上去应是随机的
? 迭代函数能有效的利用 32为运算实现
? 如果 m为素数,且 a为 m的本原根,产生
的数列是整周期的。
? a=16807,m=231-1,c=0
2010-5-14 22
伪随机数产生器 -线性同余法
? 假定敌手知道 X0,X1,X2,X3,可以确定参数
?
?
?
?
?
??
??
??
mcaXX
mcaXX
mcaXX
m o d
m o d
m o d
23
12
01