- 使用中国剩余定理来加快RSA的运算速度,使用Zn中数字的CRT表示法,使用N的素因子预先计算出的三个额外值,来更有效的执行四次幂运算。
在RSA中的一些运算
-
正常的RSA解密,使用私钥(n,d)进行密文解密(或生成签名),不过在运算过程中,我们需要先通过公钥指数e求得私钥指数d,并不如e那么方便,所以可以选择一个值尽可能少的“1”位。
-
对于k位的模数N,私钥质数也有类似的长度,大约一半是“1”。计算指数的时间与k^3成正比,所以需要其他的计算。
-
基础解密:m=c^d mod n
-
1、给定p、q并用p>q预计算几个值
dp=(1/e) mod (p-1)
dq=(1/e) mod (q-1)
qInv=(1/q) mod p
- 1/e表示e关于phi的逆元,表达式x =(1 / e)mod N也写为x = e -1 mod N,并且x是满足xe≡1(mod N)的任何整数。
- 使用在Zn中的唯一值x,数字集合{0,1,2,…,n-1}
- 解密给定的C可以按照下面的步骤
m1 = c^dP mod p
m2 = c^dQ mod q
h = qInv.(m1 - m2) mod p
m = m2 + h.q
- 可以发现,dp,dq,qInv,p,q正好是私钥中的内容。
中国剩余定理-特例
定理:令p,q为不同的素数,n=p*q对于任何对(x1,x2),其中0≤x 1 <p和0≤x 2 <q
存在唯一的数x,其中0≤x <n
x 1 = x mod p,
x 2 = x mod q。
- 任何整数x(0≤x <n)都可以用其CRT表示形式(x 1,x 2)唯一表示。
欧拉定理与欧拉公式
如果n是一个正整数,并且a与n互质即gcd(a,n)=1,则a^φ(n) ≡ 1 (mod n)
φ(n) 是欧拉函数
欧拉函数是求小于等于n的数中与n互质的数的数目
即欧拉函数是求 (小于n的数 )中 (与n互质的数 )的数目
或者说欧拉函数是求 1到n-1 中 与n互质的数 的数目
如果n是质数
那么1到n-1所有数都是与n互质的,
所以φ(n) = n-1
如果n是合数。。。自己算吧
例如φ(8)=4,因为1,3,5,7均和8互质