公钥密码学中的三大难解数学问题

现代公钥密码学基于的三大数学问题


大整数因数分解问题

  • 给定两个素数p,q,计算乘积 p ∗ q = n p*q=n pq=n很容易;
  • 给定整数n,求n的素因素p,q使得 n = p ∗ q n=p*q n=pq非常困难.

离散对数问题

  • 已知 a;
    • 计算 ga = h;得出h很简单
  • 已知 h;
    • 计算 ga = h;得出a非常困难

椭圆曲线离散对数问题(转)

已知有限域F_p上的椭圆曲线点群
E ( F p ) = ( x , y ) ∈ F p × F p ∣ y ² = x ³ + a x + b , a , b ∈ F p ∪ O E(F_p)={(x,y)∈F_p×F_p∣y²=x³+ax+b,a,b∈F_p}∪{O} E(Fp)=(x,y)Fp×Fpy²=x³+ax+b,a,bFpO
点P=(x,y)的阶为一个大素数.
Ⅰ)给定整数a,计算整数x,使得xP=(x_a,y_a)=Q很容易;
Ⅱ)给定点Q,计算整数x,使得xP=Q非常困难.
例3 P=10823是一个素数,有限域F_p=Z/pZ上的椭圆曲线点群
E ( F p ) = ( x , y ) ∈ F p × F p ∣ y ² = x ³ + 3 x + 7 ∪ O E(F_p)={(x,y)∈F_p×F_p∣y²=x³+3x+7}∪{O} E(Fp)=(x,y)Fp×Fpy²=x³+3x+7O
∣ E ( F p ) ∣ = 100482 = 2 ⋅ 3 ⋅ 16747. E ( F p ) ∣E(F_p)∣=100482=2·3·16747.E(F_p) E(Fp)=100482=2316747.E(Fp)
的生成元为 P 0 = ( 1 , 8811 ) P_0=(1,8811) P0=(1,8811)
P = 6 P 0 = ( 62046 , 14962 ) P=6P_0=(62046,14962) P=6P0=(62046,14962)的阶为素数16747。
Ⅰ) 给定a=1007,计算aP=(80726,17229)=Q很容易;
Ⅱ) 给定点Q=(80726,17229),求整数x使得xP=Q很困难。

你可能感兴趣的:(密码学)