目前我正在尝试破解 C 中的 TEA 分组密码。这是一个分配,并且茶密码已被削弱,因此密钥是 2 个 16 位数字。
我们已经获得了使用密钥对明文进行编码并使用密钥对密文进行解码的代码。
我有一些明文示例:
- 明文(1234,5678)编码(3e08,fbab)
- 明文(6789,dabc) 编码 (6617,72b5)
更新
编码方法接受明文和一个密钥,encode(plaintext,key1)。使用另一个密钥再次发生这种情况以创建编码消息,encode(ciphertext1,key),然后创建编码的 (3e08,fbab) 或编码的 (6617,72b5)。
我将如何破解这个密码?
目前,我用每个可能的密钥对已知的明文进行编码;密钥大小为十六进制值 ffffffff。我把它写到文件中。
但现在我被困住了,需要方向。
我如何利用 TEA 的等效密钥弱点来减少破解密码所需的时间?另外,我将在中间攻击中使用一个人。
当我使用已知明文和所有密钥 1 进行编码时,它将创建所有具有关联密钥的加密文本并将其存储在表中。
然后,我将使用我分配中的已知密文以及 key2 的所有可能值进行解密。这将给我留下一张只解密过一次的解密表。
然后我可以比较这两个表,看看是否有任何带有 key1 的 encrpts 与带有 key2 的解密相匹配。
如果有人可以帮助我在代码中实现这一点,我也想使用等效的弱点。有任何想法吗?