Защита информации, шифрование двоичной последовательности.
Поточное шифрование на основе регистра сдвига с обратными связями. В качестве ключа выбрано начальное заполнение 1000. Вектор связи регистра 0011.
Построим таблицу ключевой последовательности:
γ=000100110101111, период N=15. Шифрование открытого текста посредством полученной последовательности. 111110110010100101010101000000001010111001101000 Данная схема является очень уязвимой по отношению к атакам. Чтобы определить вектор связи регистра, начальное состояние и всю последовательность кода, криптоаналитику требуется 2n бит открытого текста и соответствующий шифртекст. Открытый текст: 11011111 Шифрованный текст: 00010111 Крайний правый бит получен первым. Чтобы получить фрагмент ключевого потока 11001000, криптоаналитик складывает обе последовательности по модулю 2. Ключевой поток показывает содержание РС в различные моменты времени, причем крайние правые 4 бита — начальное состояние РС. Если их последовательно сдвигать влево, то получим содержимое регистра в моменты t2, t3, t4. Используя линейную структуру РС можно записать следующее: , где — цифра, поданная через контур обратной связи обратно на вход, а (=1 или 0) определяет i -ое состояние обратной связи. Составляем 4 уравнения с четырьмя неизвестными: Решением этой системы является Таким образом, зная начальное состояние РС и его внутренние связи, криптоаналитик может узнать последовательность в любой момент времени.
Лучшую устойчивость будет иметь шифрование через сеть Фейстеля. · Вся информация разбивается на блоки фиксированной длины. В случае, если длина входного блока меньше, чем размер, который шифруется заданным алгоритмом, то блок удлиняется каким-либо способом. Как правило длина блока является степенью двойки, например: 64 бита, 128 бит. Далее будем рассматривать операции происходящие только с одним блоком, так как с другими в процессе шифрования выполняются те же самые операции. · Выбранный блок делится на два равных подблока — «левый» (L 0) и «правый» (R 0). · «Левый блок» L 0 видоизменяется функцией f (L 0, K 1) в зависимости от ключа K 1, после чего он складывается по модулю 2 с «правым блоком» R 0. · Результат сложения присваивается новому левому подблоку L 1, который будет половиной входных данных для следующего раунда, а «левый блок» L 0 присваивается без изменений новому правому подблоку R 1(см. схему), который будет другой половиной. · После чего операция повторяется N-1 раз, при этом при переходе от i-го к i+1-му этапу могут меняться ключи(Ki на Ki + 1) по какому-либо правилу, где N — количество раундов в заданном алгоритме. Примем, что будут шифроваться блоки длинной 64 бит, исходный текст будет расширяться до данного значения путем добавления нужного количества нулей. На первой итерации будем иметь: Начальный текст: 111110110010100101010101000000001010111001101000 (48 бит). Расширенный текст: 1111101100101001010101010000000010101110011010000000000000000000 Первоначальный ключ: Изменение ключом левого блока: 11111011001010010101010100000000
Сложение измененного левого и правого блоков:
11001101111101000011011100000111 Текст для второй итерации: Достоинства: · Простота аппаратной реализации на современной электронной базе · Простота программной реализации в силу того, что все значительная часть функций поддерживаются на аппаратном уровне в современных комьютерах · Хорошая изученность алгоритмов на основе сетей Фейстеля[5] Недостатки: · За один раунд шифруется только половина входного блока
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|