Okamoto身份识别方案 Okamoto对 Schnorr方案进行了改进,保证在假设Z中一 个特定的离散对数问题是难解的条件下,改进方案是安全 的。 案等参数外,还要选择两个阶为q的元素1,02E TA在 Okamoto方案中除了要确定p,q,和散列函数、签 Sender在计算v时将选择两个秘密参数a1和a210≤a1a2≤q-1), 且v=a1la2(modp)o 身份识别时,随机数k的选择也由一个变为两个:k1和 k2(1≤k1,k2≤q-1),且r=a1a22(modp) 在 Receiver选定随机数r后, Sender将计算两个Y: Y=(k+a, r)mod q, Y2=(k2+a,r)mod q t #A Receiver Receiver最后的验证相应地变为:r=a1Ya2v(modp) Okamoto将一个秘密参数a扩展成两个a1和a2,这样的改进 看似不大,但却从根本上解决了安全性的证明
Okamoto身份识别方案 Okamoto 对Schnorr方案进行了改进,保证在假设 Z p中一 个特定的离散对数问题是难解的条件下,改进方案是安全 的。 TA 在Okamoto方案中除了要确定p,q,t和散列函数、签名方 案等参数外,还要选择两个阶为 q的元素 1, 2 Zp*, Sender在计算 v时将选择两个秘密参数 a 1 和 a 2(0 ≤ a 1,a 2 ≤q-1), 且v= 1 -a1 2 -a2(mod p) 。 身份识别时,随机数 k的选择也由一个变为两个: k 1 和 k 2(1 ≤ k 1,k 2 ≤q-1),且 = 1 k1 2 k2(mod p) 。 在 Receiver 选定随机数 r 后 , Sender 将计算两个 Y: Y 1=(k 1+a 1r)mod q,Y 2=(k 2+a 2r)mod q 送 给 Receiver, Receiver最后的验证相应地变为: = 1 Y1 2 Y2 v r(mod p) 。 Okamoto将一个秘密参数 a扩展成两个 a 1 和 a 2,这样的改进 看似不大,但却从根本上解决了安全性的证明
定理:假设 Cheater知道一个值r,对这个r成功模仿 Sender的 概率E(2-1),那么 Cheater和 Sender合伙以概率1—1/q能够 在多项式时间计算oga1a2 Sender选择了两个秘密参数而不是一个,所有可能的秘 密参数有序对构成一个集合,这个集合中有q个对,它与 Sender的(a1a2)是“等价的”。 知道这个集合中两个不同的对就提供了计算离散对数c的 有效算法。 Sender知道其中一个对,如果 Cheater能够冒充 Sender, 那么就能计算出集合中的一个对,并且与 Sender的对不 同的概率几乎为1。 因而 Sender.与 Cheater一起能够找到两个不同的对,从而 计算出c,也就产生了与TA假设的矛盾。 尽管 Okamoto方案是安全的,但与 Schnorr方案相比,执 行时间几乎翻倍
定理:假设Cheater知道一个值 ,对这个 成功模仿Sender 的 概率 ≥(2t -1)-1,那么Cheater 和Sender合伙以概率 1 -1/q能够 在多项式时间计算loga1 a 2 Sender选择了两个秘密参数而不是一个,所有可能的秘 密参数有序对构成一个集合,这个集合中有 q个对,它与 Sender 的(a 1,a 2 )是“等价的”。 知道这个集合中两个不同的对就提供了计算离散对数 c 的 有效算法。 Sender知道其中一个对,如果Cheater能够冒充Sender, 那么就能计算出集合中的一个对,并且与Sender的对不 同的概率几乎为 1 。 因而Sender 与Cheater一起能够找到两个不同的对,从而 计算出 c,也就产生了与TA假设的矛盾。 尽管Okamoto方案是安全的,但与Schnorr方案相比,执 行时间几乎翻倍
45密钥交换协议 1Blom协议 p是素数,k是一个整数,k是使得网络 中的任何k个用户合伙,方案仍是安全的 最大值.即安全性条件为:至多k个不同 用户的任何用户集必须不能确定两个用 户间的密钥 下面给出k=1的方案
4.5 密钥交换协议 1.Blom 协议 p 是素数,k是一个整数,k是使得网络 中的任何k个用户合伙,方案仍是安全的 最大值.即安全性条件为:至多k个不同 用户的任何用户集必须不能确定两个用 户间的密钥. 下面给出k=1的方案
①每个用户任选一个公开的rn∈Zp这些元素互不相 (2)可信中心选择三个随机元素a,b,C∈Zn, f(x, y=(a+b(x+y)+cxy)mod (3)对每个用户∪,可信中心计算 g,(x)=f(x, r=(a+b(x+ru+crux)mod p 并在安全信道上送给U (4)如果U和V要通信,只要计算 U计算K=gn(r),V计算K=g(r K=K 定理:k=1时的Bom方案对任何单个用户是无条件 安全的
(1)每个用户任选一个公开的 r u Z p ,这些元素互不相 同. (2)可信中心选择三个随机元素a,b,c Z p, f(x,y)=(a+b(x+y)+cxy)mod p (3)对每个用户U,可信中心计算 g u(x)=f(x, r u)=(a+b(x+r u)+cr ux)mod p 并在安全信道上送给U ( 4 )如果 U 和 V要通信,只要计算 U计算 Kuv=g u(r v ),V计算 Kvu=g v(r u ) Kuv=Kvu . 定理:k=1时的Blom方案对任何单个用户是无条件 安全的
下面推广为k个情况 把函数改为、 ∑∑anxy 这里aa对任意的
下面推广为k个情况 把函数改为 k i k j i j ij a x y 0 0 这里aij=aji,对任意的i,j
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 绑定后的公钥就构成了用户的数字证书, 简称证书 绑定的途径就是数字签名技术