首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RSA-OAEP中的零字节头与RSA-PSS

RSA-OAEP中的零字节头与RSA-PSS
EN

Cryptography用户
提问于 2017-04-11 15:08:15
回答 1查看 625关注 0票数 2

PKCS#1 v2.1/RFC3437定义了用于加密的OAEP填充模式和用于签名填充的PSS。这两种方案都是基于Rogaway & Bellare为RSA量身定制的泛型结构。

对RSA所做的修改之一是,实际填充只对n-1长度(其中是模数的八进制长度)进行填充,并将单个零字节加到整个字符串中。这是这样做的,因为添加到n字节中的消息可能比模数大,因此在解密时会产生歧义。

我的问题是:对于RSA-PSS,也可以使用相同的参数,但在这里,填充散列不加零字节。为什么签名没有这个必要呢?

EN

回答 1

Cryptography用户

回答已采纳

发布于 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中的编码操作:

  1. 将maskedDB中最左边的八进制的最左边的8emLen - emBits位设置为零。12.设EM = maskedDB =H= 0xbc。

您将看到最左边(最重要的位)设置为零。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/46503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档