1、Chapter 10 密钥管理和其它公钥密码体制,密码编码学与网络安全,2019/7/31,西安电子科技大学计算机学院,2,10.1 密钥管理,10.1.1 公钥的分配,公钥的分配 公钥密码用于传统密码体制的密钥分配,2019/7/31,西安电子科技大学计算机学院,3,公钥的分配,公钥分配方法: 公开发布 公开可访问目录 公钥授权 公钥证书,2019/7/31,西安电子科技大学计算机学院,4,公钥的公开发布,用户分发自己的公钥给接收者或广播给通信各方 例如:把PGP的公钥放到消息的最后,发布到新闻组或邮件列表中 缺点:伪造 任何人都可以产生一个冒充真实发信者的公钥来进行欺骗 直到伪造被发现,欺
2、骗已经形成。,2019/7/31,西安电子科技大学计算机学院,5,2019/7/31,西安电子科技大学计算机学院,6,公开可访问的目录,通过使用一个公共的公钥目录可以获得更大程度的安全性 目录应该是可信的,特点如下:包含 姓名,公钥 目录项通信方只能安全的注册到目录中通信方可在任何时刻进行密钥更替目录定期发布或更新目录可被电子化地访问 缺点:仍存在被篡改伪造的风险,2019/7/31,西安电子科技大学计算机学院,7,2019/7/31,西安电子科技大学计算机学院,8,公钥授权,通过更加严格地控制目录中的公钥分配,使公钥分配更加安全。 具有目录特性 每一通信方必须知道目录管理员的公钥 用户和目录
3、管理员进行交互以安全地获得所希望的公钥 当需要密钥时,确实需要能够实时访问目录。公钥目录管理员称为系统的瓶颈。,2019/7/31,西安电子科技大学计算机学院,9,公钥授权,2019/7/31,西安电子科技大学计算机学院,10,公钥证书,用证书进行密钥交换,可以避免对公钥目录的实时授权访问 证书包含标识和公钥等信息 通常还包含有效期,使用权限等其它信息 含有可信公钥或证书授权方(CA)的签名 知道公钥或证书授权方的公钥的所有人员都可以进行验证 例如:X.509标准,2019/7/31,西安电子科技大学计算机学院,11,公钥证书,2019/7/31,西安电子科技大学计算机学院,12,10.1.2
4、 利用公钥密码分配 传统密码体制的密钥,采用前面的方法获得公钥 可以提供保密和认证 但公钥算法常常很慢 用私钥加密可以保护信息内容 因此,需要会话密钥 许多可选的方案用于协商合适的会话密钥,2019/7/31,西安电子科技大学计算机学院,13,简单的秘密钥分配,1979由Merkle提出A 产生一个新的临时用的公钥对A 发送自己的标识和公钥给 BB 产生一个会话密钥,并用 A 的公钥加密后发送给 AA 解密会话密钥 问题是容易受到主动攻击,而通信双方却毫无察觉。,2019/7/31,西安电子科技大学计算机学院,14,2019/7/31,西安电子科技大学计算机学院,15,具有保密性和真实性的密钥
5、分配,假设双发已安全交换了各自的公钥:,2019/7/31,西安电子科技大学计算机学院,16,混合方式的密钥分配,保留私钥配发中心( KDC ) 每用户与KDC共享一个主密钥 用主密钥分配会话密钥 公钥用于分配主密钥 在大范围分散用户的情况下尤其有用 三层结构 基本依据 性能 向后兼容性,2019/7/31,西安电子科技大学计算机学院,17,10.2 Diffie-Hellman密钥交换,第一个公钥算法 1976由Diffie 和 Hellman 提出 DH算法是一个实用的密钥公开交换的算法 算法本身只限于进行密钥交换 已应用在许多商业产品中 “New directions in crypto
6、graphy ”,2019/7/31,西安电子科技大学计算机学院,18,2019/7/31,西安电子科技大学计算机学院,19,Diffie - Hellman密钥交换,是一个公钥分配方案 不能用于交换任意的消息 只限于进行公共密钥的建立 只对通信的双方已知 密钥的值依赖于通信的参与者 (以及他们的私钥和公钥信息) 有限域中的指数运算(模一个素数)是相对容易的,而离散对数的计算是相对困难的。,2019/7/31,西安电子科技大学计算机学院,20,2019/7/31,西安电子科技大学计算机学院,21,Diffie-Hellman的建立,所有用户均已知全局参数: 一个大素整数(或多项式):q 一个模
7、 q 的本原根: 每个用户 (如 A) 产生自己的密钥 选择一个保密的随机数: xA q 计算其公钥: yA = xA mod q每个用户公开其公钥 yA,2019/7/31,西安电子科技大学计算机学院,22,Diffie-Hellman密钥交换,用户A 和 B共享的会话密钥是 KAB: KAB = xA.xB mod q = yAxB mod q (which B can compute) = yBxA mod q (which A can compute) 会话密钥KAB 作为A和B两个用户在传统密码体制中的共享密钥来使用的 可以一直使用前面产生的会话密钥,直到想重新选择新的会话密钥为止。
8、 攻击者需要解出x, 必须求解离散对数。,2019/7/31,西安电子科技大学计算机学院,23,Diffie-Hellman 举例,用户 Alice 和 Bob 想交换密钥: 双方同意使用全局参数 q = 353 和=3 随机选择一个保密的私钥: A 选择 xA = 97, B 选择 xB = 233 分别计算各自的公钥: yA=397 mod 353 = 40 (Alice) yB=3233 mod 353 = 248 (Bob) 计算共享的会话密钥: KAB= yBxA mod 353 = 24897 = 160 (Alice) KAB= yAxB mod 353 = 40233 = 16
9、0 (Bob),2019/7/31,西安电子科技大学计算机学院,24,密钥交换协议,用户在每一次通信时都产生随机的公开的和保密的DH密钥对 用户产生D-H密钥对,并公开其公钥在一个目录中,需要与其进行保密通信时,查询并使用这个目录。 上述两种情况都存在中间相遇攻击 认证是需要的,2019/7/31,西安电子科技大学计算机学院,25,10.3 椭圆曲线密码学,略,2019/7/31,西安电子科技大学计算机学院,26,同等安全强度下密钥大小的比较,2019/7/31,西安电子科技大学计算机学院,27,小 结,公钥的分配用公钥实现传统密码体制中秘密钥的分配Diffie-Hellman密钥交换协议椭圆曲线密码学(略),2019/7/31,西安电子科技大学计算机学院,28,第10章作业,思考题:10.5 10.6 习题 :10.1,