我不明白如何选择在OAEP中使用的“密码函数”RSA + OAEP。如何选择这些“密码函数”(G和H)?

发布于 2015-01-28 14:26:56
PKCS#1 v2.1和RFC 3447都以完全不同的方式定义OAEP。在维基百科上使用的图形中,缺少了很多东西(例如标签和字段的确切大小)。
要回答您的问题:密码函数G和H都是典型的函数mgf1 (掩码生成函数),SHA1由RFC 3447定义。
mgf1与SHA1的伪码:
function mgf1(bytearray seed, int length) {
// 20 is the length of a sha1 hash.
numBlocks := (length / 20).ceil
blocks := new byte[]
for(int i = 0; i < numBlocks; i++) {
blocks.append(sha1(seed ++ int2BigEndianBytes(i)))
}
return blocks.slice(0, length)
}我仍然强烈建议你阅读PKCS#1。在第19页你可以找到一个完整的图形表示的OAEP。
https://crypto.stackexchange.com/questions/14995
复制相似问题