Линейный обратимый сдвиговый регистр, начиная с известной последовательности

Вопрос или проблема

Известно, что шифр создан с помощью LFRS. Длина зашифрованного текста составляет 868 бит, и известно, что открытый текст начинается со слов “Дорогой студент”, следовательно, мы можем получить последовательность ключа первых 84 бит. Однако мы ничего не знаем о длине LFRS. Я только знаю, что если известная часть открытого текста имеет длину 2m, а длина LFRS равна m, мы можем решить m линейных уравнений, чтобы получить полином связи. В этом примере он не дан, так что каков правильный подход для нахождения открытого текста? Можно ли что-то сделать с полученными 84 битами, линейная сложность которых составляет 17, но действительно ли это говорит что-то о всей последовательности ключа?

Ответ или решение

Исследование шифрования с использованием LFSR: Декодирование текста с известной последовательностью

В данной ситуации нам необходимо понять, как восстановить исходный текст, используя шифрование на основе регистров сдвига с линейной обратной связью (LFSR), зная часть открытого текста. Это довольно распространенная задача в криптографии, и для ее решения нужно учесть несколько ключевых аспектов.

Понимание LFSR и ключевой поток

Регистр сдвига с линейной обратной связью (LFSR) представляет собой алгоритм, который генерирует последовательность битов (ключевой поток) на основе начального состояния и обратной связи, определяемой полиномом. Этот полином может быть записан в виде линейного уравнения, используя бинарные операции.

В вашем случае длина зашифрованного текста составляет 868 бит, а открытый текст начинается с "Dear Student" (84 бита). Данная информация позволяет нам использовать первые 84 бита зашифрованного текста как основу для анализа и восстановления ключевого потока, который будет использован для расшифрования оставшейся части.

Линейная сложность и полином обратной связи

Вы упомянули, что линейная сложность известной части составляет 17. Линейная сложность потока — это максимальное количество битов, необходимых для его полной характеристики, что служит indicatorом длины LFSR. Для работы с последовательностью длиной 84 бита с линейной сложностью 17 можно составить систему уравнений.

Согласно принципу, если длина известной части открытого текста составляет 2m, а длина LFSR равна m, вы сможете создать m линейных уравнений. В вашем случае, так как линейная сложность равна 17, вы можете использовать ее, чтобы попытаться обнаружить полином обратной связи. Это может быть сделано через метод " бернштейнера" или алгоритм "экстракции".

Подход к извлечению открытого текста

Чтобы найти открытый текст, вам необходимо:

  1. Реконструировать ключевой поток: Используя известные 84 бита зашифрованного текста и открытого текста, вы можете провести операцию XOR, чтобы получить начальные биты ключевого потока.

    Пример:

    Ключевой поток (1-84): = Зашифрованный текст (1-84) XOR Открытый текст (1-84)
  2. Анализируйте линейную зависимость и восстанавливайте полином: С помощью полученной последовательности битов длиной 84 вы можете попытаться установить линейные уравнения для нахождения полинома обратной связи, который генерирует ключевой поток.

  3. Реконструкция всего потока: Используя найденный полином обратной связи, восстановите полный ключевой поток, который будет позволять декодировать оставшиеся 784 бита произведенного шифротекста.

Итог

Работа с LFSR и шифрованием через ключевые потоки требует внимательного анализа и применения линейной алгебры для статистического моделирования. Линейная сложность и известный фрагмент открытого текста предоставляют основу для восстановления как ключевого потока, так и подлежащего расшифрованию текста.

Помните, что со временем ваша криптографическая атака может потребовать корректировок, если вы столкнетесь с неопосредованными зависимостями или сложными полиномами. Однако, с правильным подходом и соответствующими методами, задача по извлечению открытого текста из LFSR, безусловно, решаема.

Наилучшие пожелания в ваших дальнейших исследованиях!

Оцените материал
Добавить комментарий

Капча загружается...