【问题标题】:Which of these "Safe" ECC curves are available in Bouncy Castle?Bouncy Castle 中提供了哪些“安全”ECC 曲线?
【发布时间】:2014-04-22 20:29:15
【问题描述】:

我想弄清楚 Bouncy Castle 是否支持 which "safe" ECC curves。我在命名空间Org.BouncyCastle.Asn1 中找到了几条曲线,但它们很难找到,而且我确定我错过了一些。

Bouncy Castle 中是否存在以下曲线? (我应该使用它们吗?)

  • M-221
  • E-222
  • 曲线1174
  • 曲线25519
  • E-382
  • M-383
  • 曲线383187
  • 曲线41417
  • Ed448-金发姑娘
  • M-511
  • E-521

【问题讨论】:

标签: encryption cryptography bouncycastle asn.1 elliptic-curve


【解决方案1】:

我发现了一个(显然)definitive list Bouncy Castle 支持的 ECC 曲线。它似乎与codebase 中定义的命名曲线相匹配。

所有曲线名称都与您列出的名称不匹配。

但是,没有什么可以阻止您跟踪1并使用定义您列出的任何曲线的参数来定义ECParameterSpec ...或ECNamedCurveParameterSpec


1 - 参数在您链接到的论文中。根据@mentalurg 的说法,将它们变成正确的形式并不容易。然而,这是一个开源项目,所以如果>>你

【讨论】:

  • 当然,除非数学定义与 Bouncy 中实现的不同。
【解决方案2】:

@Stephen C:“跟踪并使用定义任何曲线的参数” - 错误。参数(A 和 B)仅适用于 Weierstrass 形式。对于 Edwards 或 Mongomery 形式,必须对 Weierstrass 形式进行(容易出错的)坐标转换,调用加密,然后将结果转换回原始坐标系。

除了转换错误之外,这种转换曲线的性能可能不是最佳的。

Java 原生实现和 Bouncy Castle 都缺少对 Weierstrass 以外的曲线形式的直接支持。这就是问题所在。

【讨论】:

  • 坐标变换本身不易出错。难以实现的是weierstrass 形式的标量乘法——失去了“安全”曲线的大部分好处。
  • Bouncy Castle 是一个开源项目。如果您认为支持其他形式的参数/其他曲线是有保证的……那么自己编写代码并向他们发送补丁会更具建设性。或赞助该项目为您实施!
  • @Stephen C:当然。如果您认为它更具建设性,请这样做,并在准备就绪时通知我们。
  • @mentallurg - 你似乎认为我在乎这个。我的建议是给真正关心这个的人。真正想要 Bouncy Castle 实现这些曲线的人。但可以肯定的是,在 StackOverflow 上寻找它并不能解决“问题”。
猜你喜欢
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 2018-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-19
相关资源
最近更新 更多