网络安全 09 密钥管理和其它公钥密码体制DH课件.ppt
Chapter 10 密钥管理和其它公钥密码体制,计算机与网络安全,2022/12/4,西安电子科技大学计算机学院,2,10.1 Diffie-Hellman密钥交换,第一个公钥算法 1976由Diffie 和 Hellman 提出DH算法是一个实用的密钥公开交换的算法算法本身只限于进行密钥交换已应用在许多商业产品中“New directions in cryptography ”,2022/12/4,西安电子科技大学计算机学院,3,2022/12/4,西安电子科技大学计算机学院,4,Diffie - Hellman密钥交换,是一个公钥分配方案不能用于交换任意的消息只限于进行公共密钥的建立只对通信的双方已知密钥的值依赖于通信的参与者 (以及他们的私钥和公钥信息)有限域中的指数运算(模一个素数)是相对容易的,而离散对数的计算是相对困难的。,2022/12/4,西安电子科技大学计算机学院,5,2022/12/4,西安电子科技大学计算机学院,6,Diffie-Hellman的建立,所有用户均已知全局参数:一个大素整数(或多项式):q一个模 q 的本原根:每个用户 (如 A) 产生自己的密钥选择一个保密的随机数: xA q 计算其公钥: yA = xA mod q 每个用户公开其公钥 yA,2022/12/4,西安电子科技大学计算机学院,7,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两个用户在传统密码体制中的共享密钥来使用的可以一直使用前面产生的会话密钥,直到想重新选择新的会话密钥为止。攻击者需要解出x, 必须求解离散对数。,2022/12/4,西安电子科技大学计算机学院,8,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 = 160 (Bob),2022/12/4,西安电子科技大学计算机学院,9,密钥交换协议,用户在每一次通信时都产生随机的公开的和保密的DH密钥对用户产生D-H密钥对,并公开其公钥在一个目录中,需要与其进行保密通信时,查询并使用这个目录。上述两种情况都存在中间相遇攻击认证是需要的,2022/12/4,西安电子科技大学计算机学院,10,DH交换的中间人攻击,(1) Darth生成两个随机数XD1和XD2,随后计算相应的公钥YD1和YD2;(2) Alice将YA传递给Bob;(3) Darth截获了YA,将YD1传给Bob,同时计算(4) Bob收到YD1,计算 (5) Bob将YB传给Alice;(6) Darth截获了YB,将YD2传给Alice,Darth计算(7) Alice收到YD2,计算,2022/12/4,西安电子科技大学计算机学院,11,DH交换的中间人攻击,(1) Alice 发送机密消息 M:E(K2,M);(2) Darth 截获了该消息,解密,恢复出M;(3) Darth 将E(K1,M)或 E (K1,M)发送给Bob。,Taher Elgamal在1984和1985年间提出了一种基于离散对数问题的公钥密码体系,其类似于Diffie-Hellman的密钥协商协议。,10.2 ElGamal密码体系,ElGamal算法,2022/12/4,西安电子科技大学计算机学院,13,ElGamal举例-加密,Alice选择XA=5; 计算 Alice的私钥为5;公钥为 假如Bob想将值M=17发送,则作如下计算: (1) Bob选择 k = 6 (2) 计算 (3) 计算 Bob发送密文(11, 5),ElGamal举例-解密,Alice选择 在GF(19) 中 计算,安全性,破解ElGamal相当于解Diffie-Hellman问题。 ElGamal的安全性依赖于Zp*上的离散对数问题;在加密过程中,对不同的消息m都应选取不同的随机数k, 否则的话,攻击者可以很容易攻击ElGamal公钥体系。,攻击举例-k,如果k用于多个分块,利用信息的分块m1,攻击者计算,于是,若M1已知,很容易计算M2,ElGamal etc,缺点需要随机数密文长度加倍ElGamal可以迁移到ECDLP上ElGamal签名和DSS,10.3 椭圆曲线密码学,背景RSA中用到了因子分解的困难性,而为了增加困难得加大数的位数,从而导致计算速度变慢。ECC可以用较小的密钥长度达到较高的计算难度Elliptic Curvey2axybyx3cx2dxe其中a、b、c、d、e是满足某个简单条件的实数另有O点被定义为无穷点/零点点加法PQR定义为过P、Q和椭圆曲线相交的第三点的X轴对称点R,EC:PQR,EC:PP2P,2022/12/4,西安电子科技大学计算机学院,21,素域上的EC,在有限域Zp上的简化ECy2x3axb mod p 其中4a327b2 mod p 0(这是一个离散点的集合)举例y2x318x15 mod 23 y2x317x15 mod 23,EC (1),EC (2),EC上的离散对数问题(ECDLP),QkP中的k计算也是极其困难的kP表示k个P相加:P + P + + P在DH密钥交换中使用了ygx mod p中x的计算困难性同样在ECC中将使用QkP中计算k的困难性有两个应用密钥交换加密解密,使用EC的密钥交换(D-H),步骤y2x3axb mod p 选择素数p(得约160比特)和参数a、b选择一个生成点G(x1,y1)p、a、b和点G是公开的A:选取秘密的数ra,计算ParaGB:选取秘密的数rb,计算PbrbG交换Pa,PbA:计算KraPbrarbGB:计算KrbParbraG分析攻击者得求ra和rb,就是PrG中的r,用EC的加解密(Elgamal),准备曲线参数p、a、b、G,y2x3axb mod p A有自己的私钥ra,并产生公钥ParaGB有自己的私钥rb,并产生公钥PbrbG加密 (A要给B发送消息)对明文m的编码点Pm,选择随机数k,密文CC1,C2 kG,PmkPb解密:编码点PmC2rbC1,因为 (PmkPb)rbkG PmkrbGrbkG Pm,2022/12/4,西安电子科技大学计算机学院,28,同等安全强度下密钥大小的比较,关于速度,速度在密钥长度相等的情况下,RSA和ECC的速度相当;但是在相同的安全强度要求下,ECC可以使用较少的位数就可以;故ECC较好适合嵌入式设备中,2022/12/4,西安电子科技大学计算机学院,30,小 结,公钥的分配 用公钥实现传统密码体制中秘密钥的分配 Diffie-Hellman密钥交换协议 ElGamal密码体系 椭圆曲线密码学,