Русский
Русский
English
Статистика
Реклама

Скремблер надёжно и просто

Эта статья написана для того, чтобы рассказать читателю, что такое скремблеры, обозначить области их применения и затронуть некоторые практические тонкости, а также раскрыть секреты алгоритма скремблирования.

Зачем и почему?

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

Что же такое скремблер?

Скремблер (от англ. to scramble перемешивать, шифровать) это алгоритм, разработанный для побитной последовательной передачи информации, позволяющий зашифровать цифровой поток таким образом, что на выходе получается последовательность, обладающая свойствами случайной: равновероятным появлением нуля и единицы. Именно это позволяет надежно выделить тактовую частоту и постоянную мощность передаваемого сигнала, что и дает надежность синхронизации. Стоит отметить, что такое преобразование потока не меняет скорость передачи, а также является обратимым, то есть данные восстанавливаются обратным алгоритмом.

Как это работает?

У нас имеется передающая сторона, на которой выполняется скремблирование, а также принимающая сторона, на которой соответственно выполняется дескремблирование, то есть обратная операция. Исходная последовательность подается на вход скремблера, а также именно она выделяется дескремблером из принятой зашифрованной последовательности.

Главной частью скремблера является линейный n-каскадный регистр сдвига с обратными связями, генерирующий псевдослучайную последовательность (ПСП) максимальной длины 2^n-1 . Основная операция, производимая при шифровании сложение по модулю 2, то есть XOR (исключающее ИЛИ).

Типы скремблеров

По типу взаимодействия с регистром скремблеры делятся на два типа: самосинхронизирующиеся (СС-скремблеры) и аддитивные (АД-скремблеры или же скремблеры с установкой). И те, и другие имеют свои плюсы и минусы, которые станут ясны после более подробного рассмотрения алгоритмов.

СС-скремблер

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

Сам алгоритм скремблирования в этом случае можно рассмотреть на простейшем примере.

CC-скремблерCC-скремблер

Несложно заметить, что при выполнении такого алгоритма большую опасность представляет "лавинный эффект" вследствие размножения ошибок. Это происходит именно из-за того, что для шифрования каждого следующего бита используется результат шифрования предыдущих. А значит, что при ошибке в одном бите мы получим уже n неправильно зашифрованных бита (где n число обратных связей регистра), которые впоследствии приведут к ошибке в 2n и так далее. Другой проблемой самосинхронизирующихся скремблеров является то, что первые k битов входящей последовательности в принципе не будут зашифрованы. К счастью, этого легко избежать искусственным добавлением шума в начало последовательности.

АД-скремблер

Аддитивные скремблеры не получают на вход регистра результат шифрования, чем избегают распространения ошибок и лавинного эффекта, однако скремблер и дескремблер требуют предварительной установки состояния регистра ключа. На вход регистра поступает линейная комбинация уже находящихся в нем бит, она же суммируется с входящим сигналом, в результате чего и получается зашифрованная последовательность.

Сам алгоритм скремблирования в этом случае можно рассмотреть на простейшем примере.

АД-скремблерАД-скремблер

На практике чаще всего применяются именно аддитивные скремблеры, так что далее проанализируем особенности этого алгоритма.

Синхронизация

В АД-методе скремблирования важную роль играет синхронизация состояний регистров скремблера и дескремблера, ведь при ее потере вся дальнейшая информация неизбежно теряется. Для поддержания синхронизации на практике используются такие методы, как добавление в поток информации синхронизирующих битов, заранее известных приемной стороне, что позволяет ей при ненахождении такого бита активно начать поиск синхронизации с отправителем, и использование высокоточных генераторов временных импульсов, что позволяет в моменты потери синхронизации производить декодирование принимаемых битов информации "по памяти" без синхронизации. Стоит отметить, что именно необходимость в синхронизации скремблеров привела Джеймса Х. Эллиса к идее криптосистем с открытым ключом, что впоследствии привело к созданию алгоритма шифрования RSA и протокола Диффи-Хеллмана.

Зацикливание и построение алгоритма

Разрядность скремблера разрядность устройства памяти идентична длине ключа для блочных шифров. От нее напрямую зависит криптостойкость данной системы. При длительном скремблировании неизбежно возникает зацикливание, то есть через определенное число тактов регистр возвращается в исходное состояние, после чего шифрование будет циклически повторяться. Это повторение происходит непосредственно из-за того, что в n ячейках регистра возможны только 2^n комбинаций бит, а значит, максимум через 2^n-1 комбинаций состояние станет идентичным начальному. А значит, мы хотим достигнуть именно этой максимальной длины.

К счастью, для скремблера любой разрядности n существует такая комбинация обратных связей, при которой период 2^n реализуем. То есть за 2^n-1 тактов значения в регистре ни разу не повторятся. Оказывается, для этого достаточно, чтобы скремблер был построен на основе неприводимого полинома степени n, не представимого по модулю 2 в виде произведения никаких других полиномов. Выбранные таким способом обратные связи и используются в схемах скремблирования, при этом мы получаем генератор последовательностей наибольшей длины (ПНД).

Алгоритм построения следующий:

  • находим неприводимый полином степени n

  • отбрасываем старший разряд в его двоичном представлении, так как он несет информацию только о степени этого полинома

  • по полученному двоичному представлению строим скремблер, 1 на соответствующих разрядах говорят о наличии обратной связи, 0 об ее отсутствии

Так, например, для 15-ти разрядного регистра мы имеем неприводимый полином x^{15}+x+1 с двоичным представлением 1000000000000011. После отбрасывания старшего бита получаем 000000000000011, то есть скремблер с алгоритмом: out = (r_{14} \oplus r_{15}) \oplus in .

Что в итоге?

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

Современные скремблеры несколько отличаются от их более ранних аналогов, так как для повышения криптостойкости совмещаются с асимметричными алгоритмами шифрования.

Тем не менее скремблеры повсеместно применяются и сейчас, как из-за простоты реализации, так и из-за других очевидных преимуществ данного алгоритма.

Источник: habr.com
К списку статей
Опубликовано: 24.12.2020 00:21:35
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Информационная безопасность

Криптография

Алгоритмы

Scrambler

Шифрование

Скремблер

Алгоритм

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru