【问题标题】:EC Signature Size?EC 签名大小?
【发布时间】:2013-02-19 08:39:56
【问题描述】:

我已经为此苦苦挣扎了一段时间。这是我的场景。我正在尝试生成 25 个字符的软件产品密钥(如 Microsoft 风格的 FFFFF-EEEEEE-DDDDD-BBBBB-77777)。我已通过 nonce(原始产品密钥)成功生成 - 根据本文,我的最终产品密钥(在以 base 24 格式编码之前)应该正好是 15 个字节(我的 nonce 为 4 个字节,我的数字签名为 11 个字节)。

现在的问题是如何生成 11 字节的签名?我尝试过使用当前最短的签名密码术(ECC - 使用 secp128r2 曲线 - 这给了我一个 128 位私钥)。签名后,我的签名大小为80字节(如Java语句打印的那样

System.out.println("length: "+signedProductKeyBytes.length);

我的问题是:

  1. EC 密钥大小(以位为单位)之间的关系到底是什么 以及生成的 EC 签名的长度(以字节为单位)?

  2. 例如,一个 128 位的 EC 密钥应该产生一个 签名大小是多少字节?

  3. 如何生成一个 11 字节的签名(顺便说一下,我确定有 在 Windows XP 时代没有 EC 密钥 - 所以 MS 没有使用 EC - 是 有更好的方法吗?说使用 RSA 32 位密钥之类的?)?

  4. 还有字符串的大小(在我的情况下,它是一个只有 9 的字符串 正在签名的字符(例如“123456789”)在最终长度中起作用 签名?

为此苦苦挣扎了一段时间,在网上到处搜索 - 有很多技术讨论的答案 - 但没有具体回答我的问题(我得到的最接近的是 this article for RSA keys

我希望我能得到一些快速响应 - 我的项目已经延迟了几周。 谢谢大家!

【问题讨论】:

  • 为什么不直接抓取现有 80 个字节的前 11 个字节?只要是独一无二的,你关心其他属性吗……?
  • Rory,非常感谢您的快速回复! (1)我将如何验证签名?如果我使用公钥仅验证前 11 个字节,该代码是否仍然有效? (2) 由于截断,是否存在 2 个或更多签名的前 11 个字节可能匹配(不唯一)的可能性?谢谢

标签: java security cryptography digital-signature


【解决方案1】:

我知道没有安全的签名方案可以生成这么小的签名。

  • 原始 ECC 签名(ECDSA 等)是安全级别的四倍。如果您想要 80 位安全级别(使用 160 位曲线),您将获得 40 字节的签名。您可以减少几个字节,牺牲一点安全性,但将其中断在 20 到 30 个字节之间就变得微不足道了。

    128 位曲线(64 位安全性,可以被破坏,但它可能太昂贵而不值得)将产生一个 32 字节的签名。

  • 有限域签名(DSA 等)与具有相同安全级别的 ECC 的签名具有相同的大小。

  • RSA 签名的大小与模数相同。使用相当小的 768 位密钥,您可以获得 96 字节的签名。

  • BLS 签名非常接近。签名大小仅为安全级别的两倍。 80 位级别的 20 个字节。 64 位级别的 16 个字节。您应该能够通过截断再减少两个字节左右,以换取更长的签名验证时间。

【讨论】:

  • 感谢您的宝贵解释。那么解决这个问题的最佳方法是什么?同样正如您所提到的 - 原始 ECC 签名 (ECDSA) 是安全级别的 4 倍。那么为什么我得到一个字节数组大小为 34 的签名(由 Java byte[] signedBytes = ecdsa.sign();signedBytes.length 显示 80)而不是(128/8 = 32 字节),而我使用的是 secp128r2 ?另外,您是说使用 secp128r2 曲线会不安全,因为它提供的字节数少于 20 并且很容易被破解?
  • 您的签名大小是多少? 34还是80? 34 可以通过一些与 ASN.1/BER 相关的开销来解释。打破 128 位椭圆曲线是可能的,但代价高昂。
  • @CodesInChaos 正确,java 输出 X9.62 兼容的签名(带有两个签名 INTEGER 值的序列)
  • 我的签名大小是 34。那么解决这个问题最安全、最快捷的方法是什么?
  • 大家好,请问有什么进一步的帮助吗?
猜你喜欢
  • 2011-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-22
  • 1970-01-01
  • 2018-10-10
相关资源
最近更新 更多