术大 现代密码学理论与实践 第10章密钥管理与其他公钥体制 苗付友 mfy@ustc.edu.cn http://202.38.64.11/~mfy 网络视频:http://wlkt.ustc.edu.cn/video/detail_3363_0.htm
苗付友 mfy@ustc.edu.cn http://202.38.64.11/~mfy 网络视频:http://wlkt.ustc.edu.cn/video/detail_3363_0.htm
本章要点 公钥密码方案是安全的,仅当公钥的真实性能够得到保 证。公钥证书方案提供了必要的安全性。 个简单的公钥算法是 Diffie- Hellman密钥交换协议。 这个协议使得通信双方利用基于离散对数问题的公钥算 法建立秘密密钥。这个协议是安全的,仅当通信双方的 真实性能够得到保证。 椭圆曲线(ECC)算术可以用来开发许多椭圆曲线密码方 案,包括密钥交换,加密和数字签名。 椭圆曲线算术是指使用定义在有限域上的椭圆曲线方程。 方程里的系数和变量都是域里的元素。已经开发了很多 使用z和GF(2m的方案 curer s crucea /ecuvacoc fy@ustc.edu.cn 现代密码学理论与实践 2/59
mfy@ustc.edu.cn 现代密码学理论与实践 2/59 公钥密码方案是安全的,仅当公钥的真实性能够得到保 证。公钥证书方案提供了必要的安全性。 一个简单的公钥算法是Diffie-Hellman密钥交换协议。 这个协议使得通信双方利用基于离散对数问题的公钥算 法建立秘密密钥。这个协议是安全的,仅当通信双方的 真实性能够得到保证。 椭圆曲线(ECC)算术可以用来开发许多椭圆曲线密码方 案,包括密钥交换,加密和数字签名。 椭圆曲线算术是指使用定义在有限域上的椭圆曲线方程。 方程里的系数和变量都是域里的元素。已经开发了很多 使用Zp和GF(2m )的方案
本章目录 10.1密钥分配 010.1.1密钥管理之公钥的分配 010.1.2公钥证书 10.1.3利用公钥密码分配传统密码体制的密钥 10.2基于离散对数的公钥体制 0.2.1离散对数问题回顾 10.2.2 Diffie-Hellman Key exchange 010.2.3 Pohlig- Hellman离散对数密码 10,2,4基于DLP的概率密码系统 ElGamal Cryptosystem 10.3椭圆曲线算术 010.3.1实数域上的椭圆曲线 010.3.2有限域上的椭圆曲线 10.3.3椭圆曲线点加运算 10.4椭圆曲线密码学 10.4.1椭圆曲线上的离散对数问题 10.4.2椭圆曲线密码 ca10.4.3椭圆曲线密码应用tao 044椭圆曲线加/解密 fy@ustc.edu.cn 现代密码学理论与实践 3/59
mfy@ustc.edu.cn 现代密码学理论与实践 3/59 10.1 密钥分配 ◦ 10.1.1 密钥管理之公钥的分配 ◦ 10.1.2 公钥证书 ◦ 10.1.3 利用公钥密码分配传统密码体制的密钥 10.2 基于离散对数的公钥体制 ◦ 10.2.1 离散对数问题回顾 ◦ 10.2.2 Diffie-Hellman Key Exchange ◦ 10.2.3 Pohlig-Hellman离散对数密码 ◦ 10.2.4 基于DLP的概率密码系统ElGamal Cryptosystem 10.3 椭圆曲线算术 ◦ 10.3.1 实数域上的椭圆曲线 ◦ 10.3.2 有限域上的椭圆曲线 ◦ 10.3.3 椭圆曲线点加运算 10.4 椭圆曲线密码学 ◦ 10.4.1 椭圆曲线上的离散对数问题 ◦ 10.4.2 椭圆曲线密码 ◦ 10.4.3 椭圆曲线密码应用 ◦ 10.4.4 椭圆曲线加/解密
10.1.1密钥分配 10.1.1密钥管理之公钥的分配 公开密码的主要作用之一就是解决密钥分配问题,公钥密码实 际上可以用于以下两个不同的方面 公钥的分配 。公钥密码用于传统密码体制的密钥分配 几种公钥分配方法 公开发布、公开可访问的目录 公钥授权、公钥证书 公钥的公开发布 用户将他的公钥发送给另一通信方,或者广播给通信各方,比如在 电子邮件后附上PGP密钥,或者发布到邮件列表上 最大问题在于任何人都可以伪造这种公钥的发布 chaal al Can puter Science Technology fy@ustc.edu.cn 现代密码学理论与实践 4/59
mfy@ustc.edu.cn 现代密码学理论与实践 4/59 公开密码的主要作用之一就是解决密钥分配问题,公钥密码实 际上可以用于以下两个不同的方面 ◦ 公钥的分配 ◦ 公钥密码用于传统密码体制的密钥分配 几种公钥分配方法 ◦ 公开发布、公开可访问的目录 ◦ 公钥授权、公钥证书 公钥的公开发布 ◦ 用户将他的公钥发送给另一通信方,或者广播给通信各方,比如在 电子邮件后附上PGP密钥,或者发布到邮件列表上 ◦ 最大问题在于任何人都可以伪造这种公钥的发布 10.1.1 密钥分配
自由的公钥发布 KU KU KUa KU b B KUai KUb KU KUb Figure 10.1 Uncontrolled Public Key Distribution ad Can futer Science Technolog fy@ustc.edu.cn 现代密码学理论与实践 5/59
mfy@ustc.edu.cn 现代密码学理论与实践 5/59
公开可访问的目录 维护一个动态可访问的公钥目录可 Directory 以获得更大程度的安全性 个可信实体或组织负责这个公开 目录的维护和分配 目录包含{name, public-key}等项 。每一通信方通过目录管理员以安全的 B 方式注册一个公钥 通信方在任何时刻可以用新的密钥 代当前的密钥 Figure 10.2 Public Key Publication 目录定期更新 目录可通过电子方式访问 ●一旦攻击者获得目录管理员私钥,则可传递伪造的公钥,可以假冒 任何通信方以窃取消息,或者修改已有的记录 简单但安全风险大 fy@ustc.edu.cn 现代密码学理论与实践 6/59
mfy@ustc.edu.cn 现代密码学理论与实践 6/59 维护一个动态可访问的公钥目录可 以获得更大程度的安全性 一个可信实体或组织负责这个公开 目录的维护和分配 ◦ 目录包含{name, public-key}等项 ◦ 每一通信方通过目录管理员以安全的 方式注册一个公钥 ◦ 通信方在任何时刻可以用新的密钥替 代当前的密钥 ◦ 目录定期更新 ◦ 目录可通过电子方式访问 ⚫一旦攻击者获得目录管理员私钥,则可传递伪造的公钥,可以假冒 任何通信方以窃取消息,或者修改已有的记录 ⚫简单但安全风险大
公钥授权/(更多是解决认证) 〉A发送带有时间戳的消息给公钥管理员, 请求B的当前公钥 olic- 理员给A发送用其私钥KRa加密的 Authority 消息,A用管理员的公钥解密,可以确 I Request I Request Time, 信该消息来自管理员: Reguest Tme 0B的公钥KUb,用来加密; 。原始请求,A可以验证其请求未被修 Exx.kUgI Request megi 改 J ExU: [ INI °原始时间戳:A可以确定收到的不是 来自管理员的旧消息。 Initiator A保存B的公钥,并用它对包含A的标识 1DA和MnCe,的消息加密,然后发送给 16) ExU W, INgI B以同样方式从管理员处得到A的公钥 ERU IN, B用KU对A的N和B的N加密,发送给 A A用B的公钥对N加密并发送给B,使B 相信其通信伙伴是A Figure 10.3 Public-Key distribution Scenario 需要Pub- Key authority实时在线 asTe fy@ustc.edu.cn 现代密码学理论与实践 7/59
mfy@ustc.edu.cn 现代密码学理论与实践 7/59 A发送带有时间戳的消息给公钥管理员, 请求 B的当前公钥 管理员给 A发送用其私钥KRauth加密的 消息, A用管理员的公钥解密,可以确 信该消息来自管理员: ◦ B的公钥KUb,用来加密; ◦ 原始请求,A可以验证其请求未被修 改; ◦ 原始时间戳, A可以确定收到的不是 来自管理员的旧消息。 A保存 B的公钥, 并用它对包含 A的标识 IDA和Nonce1的消息加密, 然后发送给 B B以同样方式从管理员处得到 A的公钥 B 用KUa对 A 的 N1 和 B 的 N2加密, 发送给 A A 用 B的公钥对 N2加密并发送给B, 使 B 相信其通信伙伴是 A 需要Public -Key Authority实时在线
10.1.2公钥证书 公钥证书使得不通过实时访问 公钥授权部而实现公钥交换 Certificate 公钥证书将一个通信方的身份与 Authority 起,通常 还{捨有效翔和使用方法等 CA=EKR [Timel, DA AUaI 证书的所有内容必须经由可信公 CB=EKR Tme2, DB KUAI 钥授权方或者证书授权方签名后 方可 知道公钥授权当局公开密钥的任 何人都可以验证一个用户的公开 密钥证书的有效性 A B 对于申请者A,管理员提供的证书 为 KRauth 7,∥A,KU 其他人读取并验证: KUauth lauth DA, KUa]=(T, IDA, K Figure 10.4 Exchange of publicKey certificates 所有人知道CA的公钥cao aSTe fy@ustc.edu.cn 现代密码学理论与实践 /59
mfy@ustc.edu.cn 现代密码学理论与实践 8/59 公钥证书使得不通过实时访问 公钥授权部门而实现公钥交换 成为可能 公钥证书将一个通信方的身份与 他的公开密钥绑定在一起 ,通常 还包括有效期和使用方法等 证书的所有内容必须经由可信公 钥授权方或者证书授权方签名后 方可生效 知道公钥授权当局公开密钥的任 何人都可以验证一个用户的公开 密钥证书的有效性 对于申请者 A,管理员提供的证书 为:◦ CA = EKRauth [T, IDA, KUa] 其他人读取并验证: ◦ DKUauth[CA]=DKUauth [ EKRauth [T, IDA, KUa ]]=(T, IDA, KUa) 所有人知道CA的公钥
10.1.3利用公钥密码分配传统密码体() 制的密钥 〉采用前述方法获得的公开密钥可以用于保密和认证 之需 〉公钥密码算法速度较慢,因此更适合作为传统密码 中实现秘密密钥分配的一种手段 因此,需要产生会话密钥来加密 已经有一些方法用来协商适当的会话密钥 ad Can futer Science Technolog fy@ustc.edu.cn 现代密码学理论与实践 9/59
mfy@ustc.edu.cn 现代密码学理论与实践 9/59 采用前述方法获得的公开密钥可以用于保密和认证 之需 公钥密码算法速度较慢,因此更适合作为传统密码 中实现秘密密钥分配的一种手段 因此,需要产生会话密钥来加密 已经有一些方法用来协商适当的会话密钥
种简单的秘密密钥分配方法 Merkle在1979提出一种简单的方法 0A产生公/私钥对{PUa,PRa},将含有PUa和标识|DA的消息 发给B 。B产生秘密密钥会话密钥)Ks,并用A的公钥加密后发给A A解密 D(PRa, E(PUa,Ks),得到Ks,这样双方即可通信 这个协议不安全,因为会受到中间人攻击 (lKU, Il ID (2)EKU. [K,] Figure 10.5 Simple Use of Public-Key Encryption to Establish a Session Key
Merkle在1979提出一种简单的方法 ◦ A产生公/私钥对{PUa,PRa}, 将含有PUa和标识IDA的消息 发给B ◦ B产生秘密密钥(会话密钥)Ks, 并用A的公钥加密后发给A ◦ A解密D(PRa,E(PUa,Ks), 得到Ks, 这样双方即可通信 这个协议不安全,因为会受到中间人攻击