并不是所有的椭圆曲线都可以安全地用于密码学,特别是从ECC安全的角度来看。网站http://safecurves.cr.yp.to/index.html显示,两条经过测试的脑池曲线,brainpoolP256t1和brainpoolP384t1,即使是ECDLP安全的,也不是ECC安全的。然而,并不是所有的脑池曲线都被评估。
我很好奇brainpoolP320r1和brainpoolP320t1的320位曲线是否通过了这些安全测试。这些曲线是在RFC5639中定义的。
我看到Sage验证脚本已经提供了,http://safecurves.cr.yp.to/verify.html。它需要许多参数来设置它来测试这些曲线,例如,对于列表中的每一个Q,都需要一个q-1的所有素数因子的列表。我不知道该怎么做。
是否有任何密码专家或爱好者验证了320位曲线,或者是否有更简单的方法来执行测试(这样的程序不需要如此复杂的设置)?
或者,可以帮助解释如何正确设置Sage脚本的参数来测试这些曲线(或一般情况下的任何曲线)。
说明如下:每个目录包含以下文件:
p: the field prime, in decimal.
l: the prime order of the base point, in decimal.
x1: the x-coordinate of the base point.
y1: the y-coordinate of the base point.
x0: the x-coordinate of a point generating the entire curve.
y0: the y-coordinate of a point generating the entire curve.
shape: the curve shape, either shortw or montgomery or edwards.
a and b, if the curve shape is shortw: the coefficients in the short Weierstrass equation.
A and B, if the curve shape is montgomery: the coefficients in the Montgomery equation.
d, if the curve shape is edwards: the coefficient in the Edwards equation.
primes: all prime divisors of of p, the curve order p+1-t, the twist order p+1+t, and t^2-4p; and, recursively, all prime divisors of q-1 for each q in the list.曲线的定义是:-
曲线-ID: brainpoolP320r1
p = D35E472036BC4FB7E13C785ED201E065F98FCFA6F6F40DEF4F92B9EC7893EC
28FCD412B1F1B32E27
A = 3EE30B568FBAB0F883CCEBD46D3F3BB8A2A73513F5EB79DA66190EB085FFA9
F492F375A97D860EB4
B = 520883949DFDBC42D3AD198640688A6FE13F41349554B49ACC31DCCD884539
816F5EB4AC8FB1F1A6
x = 43BD7E9AFB53D8B85289BCC48EE5BFE6F20137D10A087EB6E7871E2A10A599
C710AF8D0D39E20611
y = 14FDD05545EC1CC8AB4093247F77275E0743FFED117182EAA9C77877AAAC6A
C7D35245D1692E8EE1
q = D35E472036BC4FB7E13C785ED201E065F98FCFA5B68F12A32D482EC7EE8658
E98691555B44C59311
h = 1曲线-ID: brainpoolP320t1 #扭曲曲线
Z = 15F75CAF668077F7E85B42EB01F0A81FF56ECD6191D55CB82B7D861458A18F
EFC3E5AB7496F3C7B1
A = D35E472036BC4FB7E13C785ED201E065F98FCFA6F6F40DEF4F92B9EC7893EC
28FCD412B1F1B32E24
B = A7F561E038EB1ED560B3D147DB782013064C19F27ED27C6780AAF77FB8A547
CEB5B4FEF422340353
x = 925BE9FB01AFC6FB4D3E7D4990010F813408AB106C4F09CB7EE07868CC136F
FF3357F624A21BED52
y = 63BA3A7A27483EBF6671DBEF7ABB30EBEE084E58A0B077AD42A5A0989D1EE7
1B1B9BC0455FB0D2C3
q = D35E472036BC4FB7E13C785ED201E065F98FCFA5B68F12A32D482EC7EE8658
E98691555B44C59311
h = 1其中:
p is the prime specifying the base field.
A and B are the coefficients of the equation y^2 = x^3 + A*x + B
mod p defining the elliptic curve.
G = (x,y) is the base point, i.e., a point in E of prime order,
with x and y being its x- and y-coordinates, respectively.
q is the prime order of the group generated by G.
h is the cofactor of G in E, i.e., #E(GF(p))/q.
For the twisted curve, we also give the coefficient Z that defines
the isomorphism F (see requirement 3 in Section 2.2).因此,对于verify.sage (LHS是验证sage的文件,RHS来自RFC):
p = int(p)
l = int(q) # I think, IIUC
x1 = int(x)
y1 = int(y)
x0 = ???
y0 = ???
shape = ?? # for brainpoolP320r1 either "shortw" or "montgomery"? For brainpoolP320t1 "edwards"?
a = A
b = B
A = A
B = B
d = int(Z) # for brainpoolP320t1 only
primes = ???注意:当我说int(x)时,它将十六进制表示转换为十进制。结果是保存在文本文件中供verify.sage使用的内容。
恐怕我对ECC、EC和数学的理解太少了,做不到这一点。
如果有人能帮助我,我将不胜感激。
编辑:我想,因为这个问题是迁移的,所以在我的个人资料中,它不会显示为我问的问题,尽管我可以编辑这个问题。我也不能接受下面的答案,即明确指出,曲线也不是安全的。如果可能的话,国防部可以允许我接受答案或者代表我接受吗?
发布于 2014-06-19 11:51:36
像所有的脑池曲线一样,带有辅助因子1的曲线不可能满足SafeCurves准则,所以你的问题的答案是否定的。
这是否意味着它们实际上在实际使用上是“不安全”的,这是值得商榷的。我认为可以公平地说,在实践中以一种安全的方式实现这样的曲线是完全可行的,但是这样做比使用SafeCurves之一要困难得多,因此性能将受到影响。
https://crypto.stackexchange.com/questions/17780
复制相似问题