我是ECC的新手。我刚读过关于椭圆曲线y^2=x^3-x+1的文章。我在抄写这一行
椭圆曲线是在伽罗瓦域
E:y^2=x^3-x+1,m=97上定义的仿射坐标下的超奇异D4,其不可约多项式为x^{97}+x^{12}+2。
现在我有三个问题。
(GF (2^m))有何不同?提前谢谢你的帮助。
发布于 2021-01-16 11:31:12
让我们看看曲线的细节;让K = \operatorname{GF}(3^m)和曲线由方程E(K):y^2 = x^3 + 2x + 1 \quad\quad ;-1 \equiv 2 \bmod 3定义
n = 19088056323407827075424725586944833310200239047,顺序有两个因素:7 \cdot 2726865189058261010774960798134976187171462721。第二个因素(较大的一个)是\approx 150位数.\sqrt{n}-time,因此曲线的安全性不能超过2^{75}。因此,不能安全地用于ECDH。在今天的标准中,我们至少需要128位的安全性.这就是为什么Curve25519更可取的原因,还有其他一些属性,比如扭曲安全性。19088056323407827075424246988286372075141058881和它有两个大的因素(9594160501626613625431,1989549405617260510054951),(大约每个是一个73位的数字),因此没有扭曲安全性。\operatorname{GF}(2^m)的曲线在计算中是有效的,而一些二进制扩展不再具有安全的有效大小。则是有效的。使用3作为基本字段更难使用像Curve25519这样的大字段。SageMath代码
K = GF(3^97)
print(K)
E = EllipticCurve(K,[0,0,0,-1,1])
print(E)
print("Supersingular? : ", E.is_supersingular())
print("Order of E : ",E.order())
print("Factors of ord(E) : ", factor(E.order()))
E2 = E.quadratic_twist()
print("Quadratic Twist of E :",E2)
print("Order of Quadratic Twist :", E2.order() )
print("Factors of the order of Quadratic Twist :", factor(E2.order()) )https://crypto.stackexchange.com/questions/87555
复制相似问题