N=pq
x=a(mod p)
x=b(mod q)
y=(aqq^-1+bpp^-1)(modN)
ymodq=x?
ymod p=x?
p,q长度约为512bits,N长度为1024bits
加密都为M^e mod N,解密是C^dmod N
现变为->M^e mod p和M^e mod q,加快运算
期末考试:用中国剩余定理 解密
攻击
1:N=pq分解p,q,进而确定fai(N) 从而确定d 即大整数分解
2. 直接确定fai(N) 找到d
3.直接确定d
大整数分解
pollard rho
pollard p-1
Elliptic curve method
quadratic sieve 不用看
number field sieve 不用看 数域塞当前最好,可分解1023bits
前三个都不高效,无法对付高于500bits的整数分解
快排大于20个元素不能用了,要用冒泡和插入排序
作业题 1024bit大整数分解,不需要工具,自己分解,p和q过于接近,对N开根号,往左右跑,找pq
作业题9.2 9.3 9.4
知道e,d,N,利用e,d对N进行分解
k是群阶的倍数
ed-1=k,算出k
任取g ,g^k=1
(g^(k/2))^2=1 mod N 即开根号
中国剩余定理告诉我们
任何一个数开根号有4个解,1,-1,x,-x满足x mod p=1 xmod q=-1
开根号得到的数不是1或者-1就可以
找到x 计算gcd(x,N)
若一群人使用公共模数,不需要私钥,知道公钥,就可以根据e1,e2公钥,N,解出M
RSA key的选择
利用CCA对教科书RSA攻击
利用GMP
调用解密机O
PKCS1 V2.0 -OAEP
加密:同样的M,得到M^+ 不同的rand,不同的M1,得到不同的M0,得到不同的C
解密:解密出来的M^+,末尾不是0100..0,即最后的填充是不是某一种比特模式,若不是则为假报文,无法解密。
阻挡了CCA的攻击
如何从群论看RSA
中国剩余定理加速RSQ
填充padding 对抗CCA攻击
原根是数论的概念
如果a是素数p的原根
则amodp,a^2 mod p,...,a^(p-1)mod p是不同的,并且包含1到p-1的整数的某种排列
对任意素数p都有原根
任取一个p,存在一个g,g是p的原根
等同于任取一个p,Z_p*是循环群:对于任意g,{g^1,g^2 。。。g^(p-1)}=Z_p*
Z_n*,n=pq,不是循环群,所以跑的阶没那么大,不是很好,安全性不强