RSA中填充方案的识别



如何确定RSA加密消息中使用的填充方案?

最好的方法可能是执行PKCS#1v1.5或OAEP解密,看看你是否达到了黄金。如果选择了错误的算法,则取消添加将失败。

通过将填充消息表示为十六进制,可以对其进行原始解密,然后查看结果方案。如果得到的八位字节字符串(字节数组)以0002开头,那么它很可能是PKCS#1v1.5填充。如果它以00开始,然后是一个看起来随机的字节,那么它可能是OAEP。正如你所看到的,这只是一个启发式算法,而不是一个成熟的算法。注意,OAEP的MFG1可以用散列函数参数化,但通常使用SHA-1。

RSA-KEM使用不多,但由于它产生了一个完全随机的密钥种子(可能不包括第一位),如果密文和私钥可以被验证为正确的,并且值与其他方案之一不匹配/缺乏结构,那么除了预期RSA-KEM之外,没有其他方法可以测试RSA-KEM。


协议应定义使用的算法。将算法的选择留给解密例程会使您的实现面临攻击。密码的安全性证明不允许选择其他算法

因此,您可以使用上面的内容来分析协议,但请不要在您的实现中使用它来在该领域的算法之间进行选择。

最新更新