弹跳城堡为填充消息提供了6种不同的垫子。
不过,我不太清楚该选哪一个。
ISO10126d2,ISO7816d4,PKCS7,TBC,X923,ZeroByte。
考虑到本机要求消息大于114个字节。
发布于 2023-02-06 11:07:45
您已经为块密码指定了填充模式。对于块密码来说,填充完全取决于操作模式,当然也取决于块大小。您提到的垫子主要用于欧洲央行和CBC的操作模式。然而,签名依赖于哈希函数,而不是块密码。散列函数通常在内部执行某种填充,但这种填充是不可配置的。
签名也可以填充散列本身,但该函数并不是签名方案的固有功能;没有填充的方案很可能存在。对于RSA,我们经常使用PKCS#1 v1.5或PSS签名方案,其中包括一个同名的填充方法(在PKCS#1标准中提到了确切的名称,但在讨论方案时没有人使用该方法)。
但是,如果我们查看Ed448签名方案的定义,就会发现以下算法描述:
5.2.6.签名过程的输入是私钥、57个八进制字符串、标志F (对于Ed448为0、Ed448ph为1、上下文C最多为255个八进制)以及任意大小的消息M。
在这里,PH是对消息使用的散列函数,这是一个配置选项。
请注意,有两部分可以被认为是填充:dom4(F, C) || prefix || PH(M)用dom4(F, C) || prefix填充哈希,dom4(F, C) || R || A || PH(M)用dom4(F, C) || R || A填充哈希。但是,这两种计算都是可配置的(dom4是ASCII字符串,前缀是散列输出的一部分,R是从A计算的随机点,而A是公钥(也是点)。
总之,不应该为Ed448指定填充模式;您只需配置PH,即消息哈希。
https://crypto.stackexchange.com/questions/104081
复制相似问题