КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Режим простой замены⇐ ПредыдущаяСтр 90 из 90
Для шифрования в данном режиме используется цикл «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
001001010011000110100100001010102=2531A42A16; 2531A42A+1010104=2632A52E16=1001100011001010100101001011102.
(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:
Процесс повторяют, начиная со 2-го шага, до тех пор, пока не будет сгенерирована вся гамма. Полученную гамму складывают по модулю 2 с 64-битными блоками открытого текста: 11000010 00100000111011011110000011110111111000001110101111100101Å Å 0010010100110001101001000010101000000011110011010010111101001010= =11100111000100010100100111001010111101000010110111000100101011112 = =E71149CAF42DC4AF16; 0010000011101101111000001111001111110111111011011110111011101001Å Å 1000010000011110101100010011100010111110000001000010110110100000= =10100100111100110101000111001011010010011110100111000011010010012= =A4F351CB49E9C34916. Шифрограмма: E71149CAF42DC4AF A4F351CB49E9C349 …………
|