В данный момент я пытаюсь взломать блочный шифр TEA в C. Это задание, и чайный шифр ослаблен, поэтому ключ состоит из 2 16-битных чисел.
Нам даликод для кодирования открытого текста с использованием ключа и для декодирования зашифрованного текста также с помощью ключа.
У меня есть несколько примеров открытого текста:
- кодированный открытый текст (1234,5678) (3e08, fbab)
- кодированный в открытом виде (6789, dabc) (6617,72b5)
Обновление
Метод кодирования принимает открытый текст и ключ, кодирует (открытый текст), key1).Это происходит снова с другим ключом, чтобы создать закодированное сообщение, закодировать (ciphertext1, ключ), которое затем создает закодированное (3e08, fbab) или закодированное (6617,72b5).
Как бы я пошел на взлом этогошифр?
В данный момент я кодирую известный открытый текст всеми возможными ключами;размер ключа равен шестнадцатеричному значению ffffffff.Я записываю это в файл.
Но теперь я застрял и нуждаюсь в руководстве.
Как я могу использовать слабость эквивалентных ключей TEA, чтобы уменьшить количество времени, которое это могло бывзять взломать шифр?Кроме того, я собираюсь использовать человека в средней атаке.
Как и в случае кодирования с использованием известного открытого текста и всех ключей 1, он создаст весь зашифрованный текст с соответствующим ключом и сохранит его в таблице.
Затем я расшифрую с помощью известного зашифрованного текста, который находится в моем назначении, со всеми возможными значениями ключа key2.В результате у меня останется таблица расшифровок, которая была расшифрована только один раз.
Затем я могу сравнить две таблицы вместе, чтобы увидеть, соответствует ли какой-либо из кодировок с ключом 1 дешифровкам с ключом 2.
Я хотел бы также использовать слабость equilenvent, если бы кто-то мог помочь мне в реализации этого в коде, что было бы здорово.Есть идеи?