我在理解我正在做的加密练习的方法时遇到了一些麻烦。练习的目标是通过在 ECB 模式下对 AES 进行选择密钥攻击来恢复加密的秘密字符串。
我有一个 oracle 函数,它将字符串作为输入,将秘密字符串附加到它,并使用静态随机生成的密钥为其返回 AES-ECB-128 加密字符串。
oracle("text goes here!!") -> AES.encrypt("text goes here!!somesecretsomesecret", "staticrandomkey!")
我了解如何使用此处描述的方法获取密文的明文,并且已成功恢复 16 字节密文字符串。
我不明白的是,该方法如何应用于长度超过 16 个字节的秘密字符串?除非我遗漏了一些明显的东西,否则它只适用于恢复附加秘密的第一个块。