我的问题有两个部分。第一个是“我正在使用哪种可能的加密类型”,另一个是“破解它的机会是多少”(一旦找到加密算法)。
所以,我得到了原始文件和加密文件,当原始文件发生变化时,我能够测试加密的行为。我发现的最重要的线索是:
原始文件和加密文件的大小完全相同(注意大小是 0x10 = 128 位的乘积)
加密块大小似乎是 128 位。当原始文件上的一个字节发生变化时,加密文件上的相同 128 位块会发生变化,有时(可能)前一个或下一个块也会发生变化。但大多数时候只有这个块。文件的其余部分根本没有改变。
原始文件上有重复的部分(例如 16 字节的 00 值),但它们在加密文件上没有相同的 128 位块结果。因此,第二个块中的 16 个字节的 00 与下一个块中的 16 个字节的 00 具有不同的加密结果。
记住这些线索,你能猜出它是什么类型的算法吗?我以为它是 AES 128 位,但线索 #2 不包括 CBC 模式,而线索 #3 不包括 ECB!似乎是那些“之间”的东西......它可能是任何其他模式下的 AES 128 吗?你还能想到什么?
如果有几个已知的算法可能导致该行为,那么能够破坏它、知道原始数据并能够对 2 个文件的更改进行测试的可能性有多大?
提前致谢