5

我想知道:1)如果我用SHA-512 =>计算一些数据的摘要,得到 64 字节的散列 2)然后我用RSA-1024 => 对这个散列签名,所以是一个 128 字节的块,即大于摘要的 64 字节

=> 这是否意味着我的签名哈希最终将是 128字节?

非常感谢您提供的任何信息。

4

1 回答 1

9

使用 RSA,如PKCS#1所指定,首先使用散列函数对要签名的数据进行散列,然后填充结果(将散列结果转换为模整数的或多或少复杂的操作),然后是数学RSA 的操作适用于该号码。结果是一个n位整数,其中n是“模数”的位长度,通常称为“RSA 密钥大小”。基本上,对于 RSA-1024,n是 1024。一个 1024 位整数被编码为 128 个字节,完全按照 PKCS#1 中描述的编码方法(PKCS#1 非常易读且不太长)。

是否可以使用n位 RSA 密钥使用产生长度为m的输出的散列函数对数据进行签名取决于填充的细节。顾名思义,填充涉及在散列输出周围添加一些额外数据,因此n必须大于m,为额外数据留出一些空间。1024 位密钥可与 SHA-512(生成 512 位字符串)一起使用。您不能将 640 位密钥与 SHA-512 一起使用(无论如何,您也不会,因为 640 位 RSA 密钥可能会被破坏——尽管这并不容易)。

于 2010-01-22T15:37:03.577 回答