Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
xAz的概率: 密文 y=xe mod n 解密: x=yd mod n 证明:yd=(xe)d=xde,因为de1 mod (n) 而有 de=q(n)+1。由欧拉定理,(x, n)=1意味 x(n)1 mod n,故有 yd=xde=xq(n)+1xxq(n)=x1=x mod n 陷门函数:Z=(p1, p2, d)
(3)迭代攻击法:Simmons和Norris曾提出迭代或循环攻击法。例如,给定一RSA的参数为(n, e, y)=(35, 17, 3),可由y0=y=3计算y1=317=33 mod 35。再由y1计算y2=y117=3 mod 35,从而得到明文x=y1=33 mod 35。一般对明文x加密多次,直到再现x为止。Rivest证明,当p1-1和p2-1中含有大素数因子,且n足够大时,这种攻击法成功的概率趋于0。
(4)选择明文攻击 攻击者收集用户A以公钥e加密的密文y=xe mod n,并想分析出消息x。 选随机数r<n,计算y1=re mod n,y2=y1×y mod n。现在攻击者请A对消息y2进行解密得到s=y2d mod n。攻击者计算 s/r mod n=x,得到了明文x。
(5)公用模攻击 若很多人共用同一模数n,各自选择不同的e和d,这样实现当然简单,但是不安全。若消息以两个不同的密钥加密,在共用同一个模下,若两个密钥互素(一般如此),则可用任一密钥恢复明文。 设e1和e2是两个互素的不同密钥,共用模为n,对同一消息x加密得 y1=xe1 mod n, y2=xe2mod n。分析者知道n, e1, e2, y1和y2。因为(e1, e2,)=1,所以有r e1+s e2=1。假定r为负数,从而可知由Euclidean算法可计算 (y1-1)ry2s=x mod n 还有两种攻击共用模RSA的方法,用概率方法可分解n和用确定性算法可计算某一用户密钥而不需要分解n。
若ei=1 mod (n),则有xi=x mod n,且ei+1=e mod (n),即xi+1=x。若i小,则由此攻击法易得明文x。 由Euler定理知,i=((p-1)(q-1)),若p-1和q-1的最大公因子小,则i值大,如i=(p-1)(q-1)/2,此攻击法难于奏效。 p,q要足够大,以使n分解在计算上不可行。
(2)e的选取原则 (e, (n))=1的条件易于满足,因为两个随机数为互素的概率约为3/5。e小时,加密速度快,Knuth和Shamir曾建议采用e=3。但e太小存在一些问题。若e小,x小,y=xe mod n,当xe<n,则未取模,由y直接开e次方可求x。易遭低指数攻击。 (3)d的选择:e选定后可用Euclidean算法在多项式时间内求出d。d要大于n1/4。d小,签字和解密运算快,这在IC卡中尤为重要(复杂的加密和验证签字可由主机来做)。类似于加密下的情况,d不能太小,否则由已知明文攻击。Wiener给出对小d的系统攻击法,证明了当d长度小于n的1/4时,由连分式算法,可在多项式时间内求出d值。这是否可推广至1/2还不知道。
群 ZN* • 如何证明ZN*是一个群?该群的阶是什么? • 对该群中任意的元素a,我们有 a(N)=1modN。 • RSA 假设是指如果 N 的分解未知时,求模 N 的 e 次方根是困难的。RSA密码体制就基于该假设。 • RSA假设与分解假设等价吗?为什么? • ZN* 是循环群吗?为什么?
三、 ElGamal密码体制 ElGamal [1984,1985] 提出一种基于离散对数问题的双钥密码体制,既可用于加密,又可用于签字。 (1) 参数:令Zp 是一个有p个元素的有限域,p是一个素数,令g是Zp*(Zp中除去0元素)中的一个本原元或其生成元。明文集M为Zp*,密文集C为Zp*×Zp*。 公钥:选定g(g <p的生成元),计算公钥 g mod p 秘密钥: <p (2) 加密:选择随机数kZp-1,且(k,p-1)=1,计算: y1=gk mod p (随机数k被加密) y2=Mk mod p(明文被随机数k和公钥加密) M是发送明文组。密文由y1、y2级连构成,即密文C=y1||y2。
特点:密文由明文和所选随机数k来定,因而是非确定性加密,一般称之为随机化加密,对同一明文由于不同时刻的随机数k不同而给出不同的密文。代价是使数据扩展一倍。 解密:收到密文组C后,计算 M=y2/y1=M k/gk=Mgk/gkmod p 3. 安全性:基于Zp*中有限群上的离散对数的困难性。
四、 Diffie-Hellman密钥交换 • Input (p,g), p is a prime, g is a generator of Fp* • Output a shared element of Fp*. • Alice sends A=gx mod p to B. • Bob sends B=gy mod p to A. • The shared key is : Key=gx y mod p Disadvantage:Man in the middle attack
Diffie-Hellman密钥交换的攻击 • 中间人攻击 • 1 双方选择素数p以及p的一个原根g(假定O知道) • 2 A选择Xa<p,计算Ya=gXa mod p, AB: Ya • 3 O截获Ya,选Xo,计算Yo=gXo mod p,冒充AB:Yo • 4 B选择Xb<p,计算Yb=gXb mod p, BA: Yb • 5 O截获Yb,冒充BA:Yo • 6 A计算: (Xo)Xa(gXo)XagXoXa mod p • 7 B计算: (Xo)Xb(gXo)XXbgXoXb mod p • 8 O计算: (Ya)XogXaXo mod p, (Yb)XogXbXo mod p • O无法计算出gXaXb mod p • O永远必须实时截获并冒充转发,否则会被发现
A B O K = gXaXo K’ = gXbXo Diffie-Hellman密钥交换的攻击 • 中间人攻击图示
Elliptic curve group over real number • y2 = x3 + ax + b, where x, y, a and b are real numbers. • All (x,y) points satisfying above equation along with infinite point O and addition operation, form a group. • Suppose P=(x,y) then define –P=(x,-y).
Addition operation: A Geometric Approach • If P and Q are distinct, and P -Q, define P+Q as follows: • Draw a line through P and Q, then the line will intersect with the curve, the intersected point is denoted as –R, and define P+Q=R. • Define P + (-P) = O • If P=(x,0), then P+P = O , (in fact, a vertical line) • Otherwise, draw a tangent line through p, the intersected point is defined as –R, then P+P =2P =R.