查找 Aes256 密钥

Finding Aes256 keys

我有一个关于 aes 密钥的问题。

我有一个二进制文件,其中包含一个未知偏移量的 aes256 密钥(32 字节)。 是否有可能在文件中找到这个密钥?是否可以通过某种方式判断接下来的 32 个字节是否是有效的 aes 密钥?

提前致谢

编辑: 感谢您的所有回答, 密钥作为普通字节存储在文件中。 我终于设法创造了一种获得它的方法。 我基本上过滤掉了所有字符串,这实际上使它起作用了。 再次感谢

否 - 除非您有办法根据已知 plaintext/ciphertext 对验证密钥 - AES 密钥无法与随机噪声区分开来。任何一组 16、24 或 32 字节都是有效的 AES 密钥。

好吧,是的,也不是。 AES-256 密钥 应该 仅包含 32 个字节,与随机密钥无法区分。大多数文件不仅仅包含随机字节,因此可能找到一个 最有可能 随机的序列,这可能就是您正在寻找的那个密钥。但是,很可能文件中还有其他随机序列,或者看起来随机但根本不是随机的序列(例如数字 Pi 的二进制表示)。

也可能是你运气不好,AES密钥看起来不是那么随机。或者密钥以十六进制(文本)而不是二进制字节值存储。然后是找到可能是问题的确切偏移量的问题(值为 0x20 的初始字节表示 AES 密钥的大小,space 字符或密钥值的一部分)?

大多数文件都有特定的格式,因此您应该首先了解一下。仅仅寻找随机序列可能会给您带来误报(很有可能)或漏报(不太可能)。如果您期望 64 字节的随机性(两个密钥),那么我建议您先搜索它,因为它可以大大降低误报的可能性。