А.И. Куприянов - Основы защиты информации (1022813), страница 33
Текст из файла (страница 33)
5.16. Вычисление функции Г(.) в каждом раунде итерационной процедуры шиФрования (5.70) т =УРъ№- тР-'ь (5.72) Ш, = СЛ, (зг) №СП„(зг). (5.69) 154 155 Рис. 5.15. Алгоритм шифрации по ГОСТ 28147 — 89 ичных разрядов влево. Таблица блока подстановки содержит ключевые элементы, общие для сети шифрующего и расшифровывающего алгоритмов. Схема вычисления функции шифрования представлена на рис. 5.16. Операция ~=2н на схеме означает циклический сдвиг входной последовательности на 11 разрядов влево.
Таким образом, в каждом цикле шифрования используется раундовый ключ. В ОЕЯе он содержит 48 бит и вырабатывается по относительно сложному алгоритму, предусматривающему битовые перестановки и замену по таблице. Эти операции легко выполняются аппаратурно, но довольно сложны (требуют значительных затрат времени) при программной реализации. В ГОСТе раундовый ключ — это просто часть (одна из восьми) ключа шифрования. Вторая операция — циклический сдвиг влево 32-разрядной последовательности, полученной в результате подстановки. Выходной 64-разрядный блок зашифрованных данных формируется в виде '.Остальные блоки открытых ых в режиме простой зазашифровываются анало- '..'~".ледует иметь в виду, что м простой замены допус' для шифрования данных ' ко в ограниченных случаях. .' тим случаям относятся выключа и зашифровываего с обеспечением имито' иты для передачи по кана- связи или хранения в паи ЭВМ.
:,,: Следующий режим шифро':ния — наложение гаммы мирование). Отрытые дан"е, разбитые на 64-разрядные ки С„, пе 1:Ф, поразрядно ются по модулю 2 с гамй шифра у, которая вырабается блоками по 64 бит, т.е. ;::, Длина блока С„может быть меньше 64 бит. В этом случае неис'льзованная для шифрования часть гаммы шифра из блока у ; расывается. :-:: Формирование шифрованного текста в режиме гаммирования полняется итеративно в соответствии с уравнением ~ — — АД1; ~ + Ю~)пюй32,(У;, + Х~ ЭС;)шод31) = С; Эу„(5.71) 'е А — функция шифрования в режиме простой замены; Ю, и Вт— :нстанты, заданные в алгоритме ГОСТ 28147 — 89; 1; и У;— '-личины, участвующие в итерационной процедуре формировагаммы: (Г У ) = ЦК + Х~ ) гпос1 2" (У., + 4 ) тод 2" -1~' Ро, ~о)= А (5') ' е 5' — 64-разрядная синхропосылка.
Расшифровка данных возможна только при наличии синхросылки Ю, которая не является секретным элементом шифра и ожет храниться в памяти ЭВМ или передаваться по каналам связи ' есте с зашифрованными данными. В режиме гаммирования с обратной связью, как и в режим~ гаммирования, исходные открытые данные, разбитые на 64-раз рядные блоки, шифруются путем поразрядного сложения по мо дулю 2 с гаммой шифра у, которая вырабатывается блоками по 64 бит. Но аргументом функции шифрования на первом шаге ите ративного алгоритма служит синхропосылка: Ш; = А(5') ЮС, = у, ЮС;, Ш, = А®ЮС! — — у, ЭС,.
(5.73) Алгоритм ГОСТ 28147 — 89 предусматривает процесс формирования имитовставки. Этот процесс одинаков для любого из режимов шифрования данных. Имитовставка Лр — криптографическая контрольная комбинация, предназначенная для защиты шифрограммы от изменений (случайных, вызванных помехами, или преднамеренных, обусловленных несанкционированным вмешательством). Ир представляет собой блок из р двоичных символов, который вырабатывается либо перед шифрованием всего сообщения, либо параллельно с шифрованием по блокам. Первыс блоки открытых данных, которые участвуют в выработке имитовставки, могут содержать служебную информацию (например, адресную часть, время, синхропосылку) и не зашифровываться. Для получения имитовставки открытые данные, представленные первым 64-разрядным блоком С„подвергаются преобразованию, соответствующему первым 16 циклам алгоритма шифрации в режиме простой замены.
При этом в качестве ключа для выработки имитовставки используется ключ, по которому шифруются данные. Полученное после 16 циклов работы 64-разрядное число суммируется по модулю 2 со вторым блоком открытых данных С,. Результат суммирования снова подвергается преобразованию, соответствующему первым 16 циклам алгоритма зашифрования в режиме простой замены.
Сформированное таким образом 64-разрядное число суммируется по модулю 2 с третьим блоком открытых данных С, и т. д. Последний блок С„, при необходимости дополненный до полного 64-разрядного блока нулями, суммируется по модулю 2 с результатом работы на М вЂ” 1 шаге, после чего зашифровывается в режиме простой замены по первым 16 циклам работы алгоритма. Из полученного 64-разрядного числа выбирается отрезок Ир длиной р бит. Имитовставка Ир передается по каналу связи или заносится в память ЭВМ после зашифрованных данных.
По мере расшифровки данных из полученных блоков открытых данных С„вырабатывается имитовставка, которая затем сравнивается с имитовставкой Ир, переданной или сохраненной вместе с шифровкой. Алгоритм формирования имитовставки при расшифровке тот же, что 156 ";при шифрации, поэтому одинаковые данные обуславливают полсовпадение имитовставок. В случае несовпадения имитовставсе расшифрованные данные считают ложными. „-.';, :Использование алгоритмом ГОСТ 28147 — 89 имитовставки по' шает его стойкость к подделкам и искажениям.
''- В отличии от РЕЯ и 1РЕА, алгоритм ГОСТ не предусматрива, начальных и конечных битовых перестановок в блоках С„и :: „. Это упрощает его реализацию без усложнения стойкости к ,асшифровке. ":: 5.6. Двухключевые криптосистемы (криптосистемы с открытым ключом) В традиционных (одноключевых) криптосистемах одним и тем ' е секретным ключом и шифруется, и расшифровывается сообение. Для этого отправитель и получатель сообщения должны 'асполагать идентичными копиями ключа, который передается : о особым образом защищенному каналу передачи данных, что "'начительно усложняет криптосистему.
Но осознание различия , ежду теоретической и практической стойкостью криптосистем ' озволило поставить неожиданный и, на первый взгляд, параоксальный вопрос: раз уж имеет смысл стремиться к обеспече' ию только практической стойкости шифра, нельзя ли ее достичь ри отказе от сложностей создания и распространения секретно- ключа? Поэтому в последние годы были попытки создания истем с открытым распространением ключа. Некоторые из них енчались успехом. Для шифрации с открытым ключом применяются криптопеобразования на основе односторонних функций с потайным хо': ом. Это такие функции Г с параметром ~ что для данного ~ можно ;найти алгоритмы Е, и Р„позволяющие легко вычислить значение Г,(х) .„'вля всех х из области определения Х;(х), а также Р; '(х) для всех у из „бласти значений, Однако практически для всех значений пара:: етров ~ и у нахождение Х; '(х) при неизвестном Р, вычислитель- .'но неосуществимо.
Предложено множество односторонних функций. Некоторые ,:из них оказались ненадежными, другие перспективными. Но ни'кому пока не удалось доказать, что какая-то функция является ::односторонней или односторонней с потайным ходом. Даже ':стойкость общепризнанной системы КБА основана на недока':занном (хотя и очень правдоподобном) допущении о том, что разложение больших чисел на множители вычислительно нео'существимо. В криптосистемах с открытым ключом для шифрования и рас"шифровывания используются разные ключи, и знание одного из 157 них не дает возможности (практической) определить второй.
Поэтому ключ для шифрования может быть сделан общедоступным без потери стойкости, шифра, если ключ для расшифровывания сохраняется в секрете, например генерируется и хранится только получателем информации. В настоящее время два метода шифрования с открытым ключом получили признание и закреплены в стандартах. Национальный институт стандартов и технологий США Х1БТ принял стандарт МВ 20899, основанный на алгоритме ЭльГамаля, а на основе алгоритма КБА приняты стандарты 1БО/1ЕС/Р1Б 9594-8 международной организацией по стандартизации и Х.509 международным комитетом по связи.
Криптографическая система с открытым ключом Ривеста — Шамира — Алдемана (КБА). Она основана на трудности разложения очень больших целых чисел на простые сомножители. Алгоритм ее работы предусматривает следующие действия: 1. Источник сообщения выбирает два очень больших простых числа р и д и вычисляет два произведения п=рд и т= (р — 1)(д — 1), а также некоторое целое число И, взаимно простое с т. На основе этой тройки он вычисляет е, удовлетворяющее условию (де)шорт=1, 1<е<(р 1)(д 1) (5.74) Ш = С» пюви, (5.75) 4. Получатель сообщения расшифровывает его, возводя шифровку в степень е по модулю и: С = Ш'пюс1п = С»'тоби. (5.76) Авторы КБА в примере из своей первой публикации использовали 0=9007 и и= 1143816257578888676692357799761466120102182 967212423625625618429357069352457338978305971235639587050589 8907514 7599290026879543541.
Но для иллюстрации работы алгоритма шифрации КБА в 191 рассматривается более простой пример на малых простых числахр=211 и д=223. В этом случае и= = 47053 и т = 46620. При выборе открытого ключа шифрования д= =6813 вычисляется секретный ключ расшифровки е = 19837. Теперь, взяв за сообщение название метода КБА, его следует пере- 158 2. Число е сохраняется в секрете, а д и е сообщаются всем абонентам как открытый ключ шифрования (публикуются в справочнике вроде телефонного). 3. Сообщение С, длина которого, определяемого по длине выражаемого им целого числа, находится в интервале [1; п1, преобразуется в шифрограмму по правилу сти в число. Для этого будем буквам латинского алфавита став соответствие их порядковые номера.
Поэтому Я:= 18, Ю:= 19, :.-= 1. На двоичное представление каждой буквы отводится по 5 , как в коде Бодо. Поэтому сообщению КБА соответствует чис- С = ((1 32) + 19) - 32 + 18 = 1650. С помощью открытого ключа ' лучателя это сообщение превращается в шифровку Ш = С'пюд п = 1650ммзтод 47053 = 3071.
(5.77) (5.78) Ш„= С"'апой р : и посылает В. 159 Получатель шифровки преобразует ее с помощью своего секного ключа. Криптостойкость системы КБА основана на том, что т не моет быль просто вычислена без знания простых сомножителей р и а нахождение этих сомножителей из и считалось трудно разре' имой задачей. Однако недавние работы по разложению больших сел на сомножители показали, что для этого могут быль ис"ользованы разные и даже совершенно неожиданные средства. начала авторы КБА предлагали выбрать простые числа р и д слуайно, по 50 десятичных знаков каждое.
Считалось, что такие больие числа очень трудно разложить на простые сомножители при иптоанализе, Оказалось, что это не так. Теперь разработчикам криптографических алгоритмов с от; рытым ключом на базе КБА приходится избегать применения : азложимых чисел длиной менее 200 десятичных разрядов. Са.мые последние публикации предлагают для этого применять числа в 250 и даже 300 десятичных разрядов. А так как для шифрования :каждого блока информации приходится соответствующее число '.возводить в колоссально большую степень по модулю и, то для :;современных компьютеров это задача на грани возможного. По:этому для практической реализации шифрования КБА прихо'дится разрабатывать специальные процессоры. Чрезвычайно сла"::.бое быстродействие криптографических систем на основе КБА :лишь ограничивает область применения, но вовсе не перечеркиВает их ценность. Шифр ЭльГамаля. Он использует схему на основе возведения ', в степень по модулю большого простого числа.