PKCS#1 v2.1/RFC3437定义了用于加密的OAEP填充模式和用于签名填充的PSS。这两种方案都是基于Rogaway & Bellare为RSA量身定制的泛型结构。
对RSA所做的修改之一是,实际填充只对n-1长度(其中是模数的八进制长度)进行填充,并将单个零字节加到整个字符串中。这是这样做的,因为添加到n字节中的消息可能比模数大,因此在解密时会产生歧义。
我的问题是:对于RSA-PSS,也可以使用相同的参数,但在这里,填充散列不加零字节。为什么签名没有这个必要呢?
发布于 2017-04-11 15:47:30
我认为实际上是,让我们阅读第8.1.1章签名生成操作:
EMSA编码:将EMSA编码操作(9.1.1节)应用于消息M,生成长度为ceil ((modBits - 1)/8)的编码消息EM,使得整数OS2IP ( EM )的比特长度最多为modBits - 1,其中modBits是RSA模数n: EM=EMSA ENCODE (M,modBits - 1)的比特长度。请注意,如果modBits -1可被8整除,则EM的八进制长度将小于k,否则等于k。如果编码操作输出“消息太长”,则输出“消息太长”并停止。如果编码操作输出“编码错误”,则输出“编码错误”并停止。
现在,请注意,如果modBits -1可被8整除,则EM的八进制长度将小于k,否则等于k。清楚地表明这与OAEP加密类似。
此外,如果您查看9.1.1中的编码操作:
您将看到最左边(最重要的位)设置为零。
https://crypto.stackexchange.com/questions/46503
复制相似问题