现代公钥密码学基于的三大数学问题
大整数因数分解问题
- 给定两个大素数p,q,计算乘积 p∗q=np*q=np∗q=n很容易;
- 给定大整数n,求n的素因素p,q使得 n=p∗qn=p*qn=p∗q非常困难.
离散对数问题
- 已知 a;
- 计算 ga = h;得出h很简单
- 已知 h;
- 计算 ga = h;得出a非常困难
椭圆曲线离散对数问题(转)
已知有限域F_p上的椭圆曲线点群
E(Fp)=(x,y)∈Fp×Fp∣y²=x³+ax+b,a,b∈Fp∪OE(F_p)={(x,y)∈F_p×F_p∣y²=x³+ax+b,a,b∈F_p}∪{O}E(Fp)=(x,y)∈Fp×Fp∣y²=x³+ax+b,a,b∈Fp∪O
点P=(x,y)的阶为一个大素数.
Ⅰ)给定整数a,计算整数x,使得xP=(x_a,y_a)=Q很容易;
Ⅱ)给定点Q,计算整数x,使得xP=Q非常困难.
例3 P=10823是一个素数,有限域F_p=Z/pZ上的椭圆曲线点群
E(Fp)=(x,y)∈Fp×Fp∣y²=x³+3x+7∪OE(F_p)={(x,y)∈F_p×F_p∣y²=x³+3x+7}∪{O}E(Fp)=(x,y)∈Fp×Fp∣y²=x³+3x+7∪O
∣E(Fp)∣=100482=2⋅3⋅16747.E(Fp)∣E(F_p)∣=100482=2·3·16747.E(F_p)∣E(Fp)∣=100482=2⋅3⋅16747.E(Fp)
的生成元为P0=(1,8811)P_0=(1,8811)P0=(1,8811)
点P=6P0=(62046,14962)P=6P_0=(62046,14962)P=6P0=(62046,14962)的阶为素数16747。
Ⅰ) 给定a=1007,计算aP=(80726,17229)=Q很容易;
Ⅱ) 给定点Q=(80726,17229),求整数x使得xP=Q很困难。