Как я могу использовать эквивалентную слабость ключей алгоритма TEA, чтобы получить два 32-битных ключа из шифра TEA с двойным кодированием, используя встречу в середине атаки, в C?
У меня есть 4 фрагмента известного простого текста и соответствующий зашифрованный текст, мне нужно получить 2 ключа.
Кодируется так:
encode(plaintext,k1);
encode(plaintext,k2); // plaintext being the result from encode number 1
Я также могу пойти другим путем с декодированием, включив встречу в середине атаки, поскольку я знал зашифрованный текст.
Он имеет 32-битный размер блока и 32-битный ключ, ключ поставляется в виде двух 16-битных чисел.
Например, мне удалось обнаружить, что эти два ключа создают одинаковый зашифрованный текст; Мне повезло, и я наткнулся на бумагу , в которой были указаны 128-битный ключ (800000000,00000000,00000000,00000000) и ключ (00000000,00000000,800000000,00000000). Я изменил их на 32-битные (скорее всего, но это сработало).