使用RSA-1024签署SHA-256摘要:大小是多少?

puc*_*cio 5 encryption cryptography rsa sha digital-signature

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

=>这是不是意味着我的签名哈希到底是 128字节?

非常感谢任何信息.

Tho*_*nin 8

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

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