2 Differ-Hellman协议 Diffie-Hellman密钥交换协议: 设p为素数g是Z的生成元,都公开; i)A随机选择数x,向B发送信息( g mod p) (2)B随机选择数y,向A回送信息( gy mod p); A完成计算( gy mod p),B完成计算( g mod p)Y 显然,( gy mod p)x=( gmod p)y= g mod pi 便是共享密钥; 对于入侵者,他可以截获以上信息,但是无法利用2 g mod n计算x 即计算上不可行;但此算法仍有缺点,考虑以下情况: A,B是通信双方,T是入侵者,x为A的随机数,y为B的随机数,z为T的 随机数, (1)A向B发送信息( g mod p); (2)入侵者T截获了信息并向B发送( g'mod p); (3)T接着将此随机数 gmod p发送给A,A与T产生共享密钥 gmod p (4)B向A发送的 g mod p也被T截获并与B产生共享密钥 gy'mod p; 由于A、B都把T看作为合法的B和A,因此A用 g mod p作为与B 通信的共享密钥,而B把 gyz mod p作为与A通信的共享密钥, 实质上,A与B的通信结果都是通过T完成的这样,A和B之间的通信总会 被T捕获,这种攻击被称为中间人拦截攻击
2.Differ-Hellman 协议 Diffie-Hellman密钥交换协议: 设p 为素数,g 是 Z p的生成元,都公开; ( 1 ) A随机选择数 x,向 B发送信息( g xmod p); ( 2 ) B随机选择数 y,向 A回送信息( g y mod p); A完成计算(g y mod p) x, B完成计算 (g xmod p) Y 显然,(g y mod p) x =(g xmod p) y= gxymod p便是共享密钥; 对于入侵者,他可以截获以上信息,但是无法利用p, g, g x mod n 计算 x, 即计算上不可行;但此算法仍有缺点,考虑以下情况: A,B是通信双方, T是入侵者, x 为 A的随机数, y 为 B的随机数, z 为 T 的 随机数, (1) A 向 B发送信息( g xmod p); (2)入侵者 T截获了信息并向 B发送 ( g zmod p ); (3) T接着将此随机数 g zmod p 发送给 A,A 与 T产生共享密钥 gxzmod p ; (4) B 向 A发送的 g ymod p也被 T截获并与 B产生共享密钥 gyzmod p; 由于 A 、 B都把 T看作为合法的 B 和A, 因此, A 用 gxz mod p 作为与 B 通信的共享密钥, 而 B 把 gyz mod p作为与 A通信的共享密钥, 实质上, A 与 B的通信结果都是通过 T完成的,这样,A 和 B之间的通信总会 被 T捕获,这种攻击被称为中间人拦截攻击
增加一个签名方案Sig,ver 引进可信中心 每个用户有自己的证书C(V)=(ID(D,Vert, SigA(D(U), veru (1)A随机选择数x,向B发送信息( g mod p); (2)B随机选择数y,计算(g) )mod p和 YB= Sigr(gx,gy),向A回送信息(C(B), synod p,Yg) (3)A计算(g) Xmod p,YA=SigA(g2g),使用ver验证 YB,使用ver验证C(B),通过验证后A向B回送信 息(C(A,YA (4)B使用verA验证YA,使用ver验证C(A)
增加一个签名方案Sig, Ver 引进可信中心. 每个用户 I有自己的证书C(V)=(ID(I),Ver U, SigTA(ID(U),Ver U ) (1)A随机选择数 x,向 B发送信息( g Xmod p); (2)B随机选择数 y,计算(g X ) Ymod p 和 Y B=Sig B(g X,g Y), 向 A回送信息(C(B),g ymod p, Y B ) (3)A计算(g Y ) Xmod p, Y A=Sig A(g X,g Y),使用Ver B验证 Y B,使用VerTA验证C(B), 通过验证后 A 向 B回送信 息(C(A), Y A) ; (4)B使用Ver A验证 Y A,使用VerTA验证C(A)
46CA与数字证书 在网络安全和电子商务等实际应用中, 通常用公钥密码算法来协商会话密钥 每次通信时临时产生密钥 而用对称密钥密码算法来加密要秘密传 输的数据 数字信封
4.6 CA与数字证书 在网络安全和电子商务等实际应用中, 通常用公钥密码算法来协商会话密钥 每次通信时临时产生密钥 而用对称密钥密码算法来加密要秘密传 输的数据 数字信封
例1:A要与B通信 A的动作: 1)A从公钥库中得到B的公钥PKB; 2)A随机产生一个会话密钥K; 3)A用B的公钥PK对K加密产生C1; 4)A用K加密要传输的数据DATA,得到C2 5)A将C1|C2发送给B B的动作: 1)B接收到C1C2 2)B用自己的私钥SK对C1解密,得到K; 3)B用K对C2解密得到DATA
例1:A要与B通信 A的动作: 1)A从公钥库中得到B的公钥PKB; 2)A随机产生一个会话密钥K; 3)A用B的公钥PKB对K加密产生C1; 4)A用K加密要传输的数据DATA,得到C2; 5)A将C1||C2发送给B B的动作: 1)B接收到C1||C2; 2)B用自己的私钥SKB对C1解密,得到K; 3)B用K对C2解密得到DATA
为了防止这种攻击,必须有一个大家都 信任的第三方机构将公钥库中用户名字 与用户的公钥绑定起来 大家都信任的第三方结构就是CA 绑定后的公钥就构成了用户的数字证书, 简称证书 绑定的途径就是数字签名技术
为了防止这种攻击,必须有一个大家都 信任的第三方机构将公钥库中用户名字 与用户的公钥绑定起来。 大家都信任的第三方结构就是CA 绑定后的公钥就构成了用户的数字证书, 简称证书 绑定的途径就是数字签名技术