Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Защита информации, шифрование двоичной последовательности.




 

Поточное шифрование на основе регистра сдвига с обратными связями. В качестве ключа выбрано начальное заполнение 1000. Вектор связи регистра 0011.

 

Построим таблицу ключевой последовательности:

N Состояние РС Выход
0 1000  
1 0100 0
2 0010 0
3 1001 0
4 1100 1
5 0110 0
6 1011 0
7 0101 1
8 1010 1
9 1101 0
10 1110 1
11 1111 0
12 0111 1
13 0011 1
14 0001 1
15 1000 1

 

γ=000100110101111, период N=15.

Шифрование открытого текста посредством полученной последовательности.

111110110010100101010101000000001010111001101000
+
000100110101111000100110101111000100110101111000
=
111010000111011101110011101111001110001100010000

Данная схема является очень уязвимой по отношению к атакам. Чтобы определить вектор связи регистра, начальное состояние и всю последовательность кода, криптоаналитику требуется 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 бит, исходный текст будет расширяться до данного значения путем добавления нужного количества нулей.
Первоначальный ключ выбирается случайным образом из некоего подмножества ключей К, далее он меняется циклическим сдвигом влево. Функция изменения ключом – сложение по модулю 2.

На первой итерации будем иметь:

Начальный текст: 111110110010100101010101000000001010111001101000 (48 бит).

Расширенный текст: 1111101100101001010101010000000010101110011010000000000000000000
(64 бит).

Первоначальный ключ:
00110110110111010110001000000111
(32 бит).

Изменение ключом левого блока:

11111011001010010101010100000000
+
00110110110111010110001000000111
=
11001101111101000011011100000111.

 

Сложение измененного левого и правого блоков:

11001101111101000011011100000111
+
10101110011010000000000000000000
=
01100011100111000011011100000111.

Текст для второй итерации:
0110001110011100001101110000011111111011001010010101010100000000.

Достоинства:

· Простота аппаратной реализации на современной электронной базе

· Простота программной реализации в силу того, что все значительная часть функций поддерживаются на аппаратном уровне в современных комьютерах

· Хорошая изученность алгоритмов на основе сетей Фейстеля[5]

Недостатки:

· За один раунд шифруется только половина входного блока

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...