我们有一个python程序,它使用AES CBC加密/解密以十六进制形式给出的明文。我们知道IV是相同的,并且不会改变(它存储在一个文件中)。我们怎么可能找到IV,如果发现这将是旗子。
发布于 2021-02-26 12:54:39
请求三个块的解密(2个就足够了);
现在删除第一个密文,并请求解密;
现在使用P_2和P'_2的方程
在程序员方面
defn CBCDecryptionOracle(c[]):
return Dec(c[])
c = (c0,c1)
(p1,p2) = CBCDecryptionOracle(c)
p2' = CBCDecryptionOracle(c1)
print( p2 ^ p2' ^ c[0])注意:您可能需要找到c1的大小(这意味着在AES-CBC模式中使用的块的大小)。
https://crypto.stackexchange.com/questions/88494
复制相似问题