我想在长度为300位的文本上生成数字签名,在获得的签名中添加一些新文本,然后对结果文本进行签名。
在RSA签名方案中,密钥的大小必须大于输入长度。获得的输出长度等于键大小,通过添加新文本,键大小必须更大。但是,我想使用一个键进行签名。例如,我首先开始使用512位密钥,但对于第二次签名,我必须使用1024位密钥,而我只有一个密钥进行签名。
我怎么发动汽车呢?有可能(用Java或任何语言)吗?
发布于 2012-11-21 13:06:16
如果您坚持只使用512-bit键,您可以签名的最大数据长度是one split 中的53 bytes=424 bits,因此您必须拆分数据并分别签名。
例如-
假设您在进行第二个签名之前的数据长度是500 bits,然后将其拆分为两个集合-- 424 bits和66 bits。然后分别对这两者进行签名并将结果连在一起。
编辑
还有一种方法可以做到,只使用1键-
2048 bits。您可以将数据签名到245 bytes=1960bits的长度。简而言之- Sign(SHA-1(Sign(data)+info))
注意:您也可以使用密钥长度1024-bit完成上述签名。
发布于 2012-11-21 13:04:44
为什么不编写一个简单的算法来创建另一个(为您创建虚拟签名),只需将签名加密成一些代码,然后使用这两个代码。
它会为你解决两个问题。
希望它对你有用:)
https://stackoverflow.com/questions/13493412
复制相似问题