Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Режим простой замены




 

Для шифрования в данном режиме используется цикл «32-З»: трижды выбираются элементы ключа с 1-го по последний и 1 раз – с последнего по 1-й.

 

Ключевые данные:

Ключ:

1.00101011101010100001101111011010

2.01111101001100011110000101010001

3.10100110011100011001110010101101

4.00010011100111011110001100111100

5.00110101010011110011100111000010

6.11111001000111011010000011101000

7.00010011101101111000000110101011

8.11000011000100000110101000101110

Таблица замен

 

Алгоритм режима простой замены рассмотрим на примере шифрования данной таблицы замен.

 

1.Вычисляем модуль 232 = 4294967296, вводим его в память калькулятора.

2.1-й 32-битовый блок таблицы складываем с 1-м элементом ключа по полученному модулю:

0100 1010 1001 0010 1101 1000 0000 1110 + 00101011101010100001101111011010=

+11101100011110011110011111010002=198370608810

1983706088 mod 4294967296=198370608810=11101100011110011110011111010002

3.Результат делим на 4-битовые блоки, начиная с конца:

111 0110 0011 1100 1111 0011 1110 1000

4.Каждый из полученных блоков заменим на значение ячейки таблицы замен из строки с номером, равным номеру 4-битового блока, и столбца с номером, равным значению 4-битового блока (счёт с 0).

Первый блок 111 заменяем на значение из 7-го столбца 1-й строки, второй блок 0110 – на значение из 6-го столбца 2-й строки, …, последний блок 1000 заменяем на значение из 8-го столбца 8-й строки:

1110 1111 1101 1011 0010 0000 0010 1001

5.Полученное значение сдвинем циклически влево на 11 знаков:

11101111110½11011001000000010

11011001000000010½11101111110

6.Результат сдвига сложим по модулю 2 со 2-й частью входного блока:

1101100100000001011101111110 Å 01101011000111000111111101010011=

=1100110100011000110100000101101

7.Полученную часть ставим во входной блок на второе место, а вторую часть – на первое:

01101011000111000111111101010011¨1100110100011000110100000101101

Над полученной первой частью блока производим те же действия, но используем 2-й 32-битовый элемент ключа.

И т. д.

 

Режим гаммирования

Текст:

В начале научной карьеры Эйнштейна один журналист спросил госпожу Эйнштейн, что она думает о своем муже. - Мой муж гений! - сказала госпожа Эйнштейн. - Он умеет делать абсолютно все, кроме денег.

11000010 00100000 11101101 11100000¨11110111 11100000 11101011 11100101¨ 00100000 11101101 11100000 11110011¨11110111 11101101 11101110 11101001¨ 00100000 11101010 11100000 11110000¨11111100 11100101 11110000 11111011¨ 00100000 11011101 11101001 11101101¨11111000 11110010 11100101 11101001¨ 11101101 11100000 00100000 11101110¨11100100 11101000 11101101 00100000¨ 11100110 11110011 11110000 11101101¨11100000 11101011 11101000 11110001¨ 11110010 00100000 11110001 11101111¨11110000 11101110 11110001 11101000¨ 11101011 00100000 11100011 11101110¨11110001 11101111 11101110 11100110¨ 11110011 00100000 11011101 11101001¨11101101 11111000 11110010 11100101¨ 11101001 11101101 00101100 00100000¨11110111 11110010 11101110 00100000¨ 11101110 11101101 11100000 00100000¨11100100 11110011 11101100 11100000¨ 11100101 11110010 00100000 11101110¨00100000 11110001 11100010 11101110¨ 11100101 11101100 00100000 11101100¨11110011 11100110 11100101 00101110¨ 00100000 00101101 00100000 11001100¨11101110 11101001 00100000 11101100¨ 11110011 11100110 00100000 00100000¨11100011 11100101 11101101 11101000¨ 11101001 00100001 00100000 00101101¨00100000 11110001 11101010 11100000¨ 11100111 11100000 11101011 11100000¨00100000 00100000 11100011 11101110¨ 11110001 11101111 11101110 11100110¨11100000 00100000 00100000 11011101¨ 11101001 11101101 11111000 11110010¨11100101 11101001 11101101 00101110¨ 00100000 00101101 00100000 11001110¨11101101 00100000 00100000 11110011¨ 11101100 11100101 11100101 11110010¨00100000 11100100 11100101 11101011¨ 11100000 11110010 11111100 00100000¨11100000 11100001 11110001 11101110¨ 11101011 11111110 11110010 11101101¨11101110 00100000 11100010 11110001¨ 11100101 00101100 00100000 11101010¨11110000 11101110 11101100 11100101¨ 00100000 11100100 11100101 11101101¨11100101 11100011 00101110 ¨

При работе ГОСТ 28147-89 в режиме гаммирования описанным ниже образом формируется криптографическая гамма, которая затем побитно складывается по модулю 2 с исходным открытым текстом для получения шифротекста.

Шифрование в режиме гаммирования лишено недостатков, присущих режиму простой замены.[2] Так, даже идентичные блоки исходного текста дают разный шифротекст, а для текстов с длиной, не кратной 64 бит, "лишние" биты гаммы отбрасываются. Кроме того, гамма может быть выработана заранее, что соответствует работе шифра в поточном режиме.

Выработка гаммы происходит на основе ключа и так называемой синхропосылки, которая задает начальное состояние генератора. Алгоритм выработки следующий:

1. Синхропосылка шифруется с использованием описанного алгоритма простой замены, полученные значения записываются во вспомогательные 32-разрядные регистры N3 и N4 - младшие и старшие биты соответственно.

2. К N3 и N4 прибавляются константы соответственно C2 = 101010116 и C1 = 101010416

3. N3 и N4 переписываются соответственно в N1 и N2, которые затем шифруются с использованием алгоритма простой замены. Полученный результат является 64 битами гаммы.

4. Шаги 2-4 повторяются в соответствии с длиной шифруемого текста.

Генерирование гаммы:

Используем в качестве синхропосылки 64-разрядное двоичное число: 10010011100110100111101110001101¨00000110101001111000110100011111.

1. Зашифруем синхропосылку по алгоритму простой замены

1) 10010011100110100111101110001101+00101011101010100001101111011010= =10111111010001001001011101100111

2) 10111111010001001001011101100111mod 232=10111111010001001001011101100111

3) 1011 1111 0100 0100 1001 0111 0110 0111 заменяем по таблице:

(1,11) (2,15) (3,4) (4,4) (5,9) (6, 7) (7,6) (8,7)

1100 1001 1010 0000 1010 1101 0101 0100

4) 11001001101½000001010110101010100 сдвигаем на 11 знаков влево: 00000101011010101010011001001101.

5) Сложим по модулю 2 со 2-й частью синхропосылки: 00000101011010101010011001001101Å00000110101001111000110100011111=

=00000011110011010010101101010010

6) Результат меняем местами со 2-й частью: 00000110101001111000110100011111¨00000011110011010010101101010010

7) Повторяем для 1-й части со 2-м элементом ключа:

00000110101001111000110100011111+01111101001100011110000101010001=

10000011110110010110111001110000;

10000011110110010110111001110000 mod 232=10000011110110010110111001110000;

1000 0011 1101 1001 0110 1110 0111 0000

(1,8) (2,3) (3,13) (4,9) (5,6) (6,14) (7,7) (8,0)

0110 1100 0000 0100 1101 1111 1001 0001;

11 знаков01101100000½001001101111110010001 00100110111111001000101101100000;

00100110111111001000101101100000Å00000011110011010010111101001010=

00100101001100011010010000101010.

Результат шифрования синхропосылки дает первый элемент гаммы:

У1=00100101001100011010010000101010¨00000011110011010010111101001010.

Младшие биты полученного результата (2-я часть) запишем в регистр N3, старшие – в регистр N4

N1  
N2  
N3
N4
  1. К содержимому регистра N3 прибавим C2=101010116, к содержимому N4 – C1=101010416 : 000000111100110100101111010010102=3CD2B5216; 3CD2F4A+1010101=4CE2C5316=1001100111000101100010100112;

001001010011000110100100001010102=2531A42A16;

2531A42A+1010104=2632A52E16=1001100011001010100101001011102.

  1. Результаты запишем в регистры N1 и N2:
N1
N2
N3
N4
  1. Содержимое регистровN1 и N2 зашифруем с помощью простой замены, используя 3-й элемент ключа :

(00000100110011100010110001010011+10100110011100011001110010101101) mod232= =1010 1011 0011 1111 1100 1001 0000 0000

(1,10) (2,11) (3,3) (4,15) (5,12) (6,9) (7,0) (8,0)

0001 0001 1101 0011 0000 0110 1101 0001;

11 знаков00010001110½100110000011011010001

10011000001101101000100010001110; 10011000001101101000100010001110Å00100110001100101010010100101110=

10111110000001000010110110100000.

Меняем местами N1 и N2:

00100110001100101010010100101110¨10111110000001000010110110100000.

Шифруем 1-ю часть, используя 4-й элемент ключа:

(00100110001100101010010100101110+00010011100111011110001100111100) mod232=

=0011 1001 1101 0000 1000 1000 0110 1010;

(1,2) (2,9) (3,13) (4,0) (5,8) (6,8) (7,6) (8,10)

1001 0011 0000 0111 0100 0011 0101 0011;

11 знаков10010011000½001110100001101010011

00111010000110101001110010011000;

00111010000110101001110010011000Å10111110000001000010110110100000=

=10000100000111101011000100111000.

Результат: У2=10000100000111101011000100111000¨10111110000001000010110110100000.

Записываем 2-ю часть в регистр N3, 1-ю часть – в N4:

N1  
N2  
N3
N4

Процесс повторяют, начиная со 2-го шага, до тех пор, пока не будет сгенерирована вся гамма. Полученную гамму складывают по модулю 2 с 64-битными блоками открытого текста:


11000010 00100000111011011110000011110111111000001110101111100101Å

Å 0010010100110001101001000010101000000011110011010010111101001010=

=11100111000100010100100111001010111101000010110111000100101011112 = =E71149CAF42DC4AF16;

0010000011101101111000001111001111110111111011011110111011101001Å

Å 1000010000011110101100010011100010111110000001000010110110100000= =10100100111100110101000111001011010010011110100111000011010010012= =A4F351CB49E9C34916.

Шифрограмма: E71149CAF42DC4AF A4F351CB49E9C349 …………


Поделиться:

Дата добавления: 2015-01-05; просмотров: 208; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.009 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты