为什么在RSASSA-PSS中emBits = modBits-1

时间:2018-06-12 14:53:14

标签: hash cryptography rsa

标准(PKCS#1)表示用于签名的消息长度必须是emBits = modBits - 1.但它来自哪里?我的意思是在这个标准签名中基于散列和散列补充到长度emBits。但为什么它必须是modBits - 1?要创建合适大小的数字签名吗?

1 个答案:

答案 0 :(得分:0)

让我们假装你的模数值为0b1010111111(10位)。

如果你运行EMSA-PSS-Encode(M, 10)它可以(如果能够产生小数字)产生0b1111001011。该值超过模数,因此它在数学上等同于0b100001100。运行时验证您获得0b100001100的中间值,然后发现您的签名无法验证。你再次签名,这次它有效。混乱比比皆是。

最终的答案是,有一个稳定的算法,它尽可能接近模数值而不超过它#34;。同样,EMSA-PKCS1-v1_5以零字节开头,以确保模数始终大于编码值。