首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EC签名号?

EC签名号?
EN

Stack Overflow用户
提问于 2013-02-19 08:39:56
回答 1查看 3.8K关注 0票数 4

我已经为这事挣扎了一段时间了。这是我的设想。我正在尝试生成25个字符的软件产品密钥(比如微软风格的FFFFF-77777)。我已经成功地由nonce (原始产品密钥)生成了--根据本文,我的最终产品键(在以基本24格式编码之前)应该是15字节(4字节用于我的当前,11字节用于我的数字签名)。

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

代码语言:javascript
复制
System.out.println("length: "+signedProductKeyBytes.length);

我的问题是:

  1. EC密钥大小(以位为单位)与结果EC签名长度(以字节为单位)之间的关系究竟是什么?
  2. 例如,一个128位的EC密钥应该产生多少字节的签名大小?
  3. 我如何生成一个11字节的签名(顺便说一句,我确信在Windows时代没有EC密钥--所以MS没有使用EC )有更好的方法吗?比如使用RSA 32位密钥还是什么的?)?
  4. 此外,字符串的大小(在我的例子中,它是一个仅由9个字符组成的字符串,例如"123456789“被签名)在签名的最后长度中起作用吗?

与此斗争了一段时间,在网上到处搜索--很多技术讲座的答案--但没有专门回答我的问题(离我最近的是this article for RSA keys)。

我希望我得到一些快速的反应-我的项目已经晚了几个星期。谢谢你们!

EN

回答 1

Stack Overflow用户

发布于 2013-02-19 10:33:50

我知道没有安全的签名方案能产生那个小的签名。

  • 原始ECC签名(ECDSA等)是安全级别的四倍。如果你想要一个80位的安全级别(使用160位曲线),你会得到40字节的签名。您可以减少几个字节,牺牲一些安全性,但是在20到30个字节之间破坏它就变得很简单了。 128位曲线(64位安全性,可以被打破,但它可能太昂贵,不值得)将产生一个32字节签名。
  • 有限域签名(DSA等)具有与在相同安全级别上使用ECC的签名相同的大小。
  • RSA签名的大小与模数相同。使用一个相当小的768位密钥,您将得到96个字节签名。
  • BLS的签名非常接近。签名大小仅为安全级别的两倍。20字节在一个80位的水平。16字节在64位级别。您应该能够通过截断来减少大约两个字节,以换取更高的签名验证时间。
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14953113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档