本文主要梳理RSA 在PKCSv1.5 Padding模式下的 Oracle攻击。1. PKCSv1.5 Padding3.1 填充规范PKCS#1针对的是RSA算法。 PS should all greater than 0x00".format(data_list[1])) return False return True3.2 特性满足PKCSv1.5 * (s^e%n)^d%n) % n # s = (s^e%n)^d%n = (m * s) % n总体上来说,攻击者可以通过不断的发送特定的s给RSA解密服务端,通过服务端返回的解密明文ms是否符合PKCSv1.5 def _step1_blinding(self, c): """ 盲猜: 随机选取一个s,使得:c * ((s^e) % n)得到的密文结果,解密后也是符合PKCSv1.5
回顾下非对称密钥的特性在前面的文章《非对称密钥沉思系列(1):RSA专题之PKCSv1.5填充模式下的选择性密文攻击概述》中,我们探讨了非对称秘钥的一些特性,这里总结几个比较重要的性质:非对称加密总是以密钥对的形式出现
关于RSA加密时明文最长长度,可以参考签名的文章:《非对称密钥沉思系列(1):RSA专题之PKCSv1.5填充模式下的选择性密文攻击概述》 中的推理。