10.4.2. Режимы работы алгоритма криптографического преобразования данныхШифрование и дешифрование данных в режиме простой замены Рассмотрим работу алгоритма в режиме простой замены [1, 36]. Схема алгоритма шифрования в данном режиме представлена на рис 10.9. В ее состав входят: ключевое запоминающее устройство (КЗУ) объемом 256 бит (для оперативного ключа), состоящее из восьми 32-разрядных накопителей ; блок подстановок (для долговременного ключа) объемом 512 бит состоящий из восьми узлов замены , с памятью 64 бита каждый. В каждом узле замены составляют ключевую таблицу, разбитую на 16 строк по 4 бита в каждой строке; регистр сдвига, осуществляющий циклический сдвиг вектора на 11 бит в сторону старших разрядов. Сообщение, подлежащее шифрованию, разбивается на блоки длиной 64 бита. Каждый блок разделяется на начальные левый и правый подблоки длиной по 32 бита. В соответствии с упрощенной схемой Фейстеля в течение 32 циклов выполняются фиксированные криптографические преобразования. В первом цикле шифрования начальный правый подблок длиной 32 бита и оперативный ключ , в соответствии с расписанием использования ключа из накопителя, складываются в сумматоре по модулю 2. На выходе сумматора полученный полублок длиной 32 бита разбивается на восемь четырех разрядных векторов, являющихся адресом для выбора одной из 16 строк ключевой таблицы, и поступающих на соответствующие узлы замены блока подстановок . С помощью каждого четырехразрядного вектора выбирается одна из 16 строк ключевой таблицы соответствующего узла замены. По четыре бита с восьми узлов замены считываются на выход блока подстановок , объединяясь в 32-разрядный выходной вектор, который поступает на вход регистра сдвига. Сдвинутый на 11 бит вектор складывается в сумматоре с начальным левым полублоком . Результат сложения будет являться правым полублоком . В качестве левого полублока используются значения начального правого полублока над которыми выполняется следующий цикл шифрования и т.д. После 32-го цикла шифрования полублоки и меняются местами и составляют блок криптограммы . Процесс шифрования в режиме простой замены блока сообщения под управлением ключа в блок криптограммы записывается в виде: . Дешифрование в режиме простой замены выполняется аналогично шифрованию и отличается обратным порядком использования тех же ключей. Шифрование и дешифрование данных в режиме гаммирования Криптосхема алгоритма шифрования в режиме гаммирования представлена на рис. 10.10. В состав схемы, кроме рассмотренных ранее элементов, входят регистры хранения (, ). Так же, как и в режиме простой замены, выполняется заполнение КЗУ и блока подстановок . На вход схемы поступают равновероятно и взаимонезависимо сформированные 64 бита синхропосылки , которая разделяется на начальные левый и правый подблоки длиной по 32 бита. Подблоки синхропосылки зашифровываются в режиме простой замены в течение 32 циклов шифрования и записываются в накопителях и как значения и соответственно. Затем эти значения складываются в сумматорах и по модулю 2 с 32-битовыми криптографическими константами и . Новые значение и , поступающие с выхода сумматоров и запоминаются в накопителях и . В течение 32 циклов значения и зашифровываются в режиме простой замены, образуя первый 64-разрядный блок шифрующей гаммы , состоящий из правого и левого полублоков. Полублоки шифрующей гаммы записываются в регистр последовательного сдвига, из которого побитно считываются для шифрования битов первого 64-разрядного блока открытого сообщения . Очередной бит блока сообщения шифруется в режиме гаммирования путем поразрядного сложения по модулю 2 в сумматоре с очередным битом шифрующей гаммы. Сформированные таким образом 64 бита составляют первый блок криптограммы . Для шифрования второго и последующих блоков открытого сообщения из регистров хранения считываются значения, складываются с новыми криптографическими константами и полученные значения запоминаются в этих же регистрах. Далее формирование и использование второго и последующих блоков шифрующей гаммы выполняется в соответствии с рассмотренным алгоритмом. По каналу связи последовательно передаются синхропосылка и сформированные блоки криптограммы. Дешифрование в режиме гаммирования выполняется аналогично шифрованию. Из полученной синхропосылки последовательно формируются блоки дешифрующей гаммы, которые используются для дешифрования принятых блоков криптограммы. Для исключения снижения криптостойкости при повторном использовании одного и того же оперативного ключа необходимо в каждом сеансе связи использовать неповторяющуюся синхропосылку . Шифрование и дешифрование данных в режиме гаммирования с обратной связью Криптосхема, реализующая алгоритм шифрования в режиме гаммирования с обратной связью, показана на рис. 10.11. Оперативный ключ, состоящий из 256 бит, вводится в ключевое запоминающее устройство (КЗУ), долговременный ключ длиной 512 бит, аналогично режиму простой замены и гаммирования, записывается в блок подстановок . Как и в режиме гаммирования, генерируется синхропосылка, разделяется на начальные левый и правый подблоки и зашифровывается в режиме простой замены, образуя первый блок шифрующей гаммы, который записывается в регистр последовательного сдвига. Первый 64-разрядный блок открытого сообщения шифруется поразрядным сложением по модулю 2 в сумматоре с первым блоком шифрующей гаммы . Сформированные таким образом 64 бита составляют первый блок криптограммы , который передается в канал связи и одновременно по цепи обратной связи подается как синхропосылка на вход схемы, где шифруется в режиме простой замены и формирует второй блок шифрующей гаммы . Аналогично шифруется второй блок открытого сообщения , сформированный блок криптограммы по цепи обратной связи используется для формирования очередного блока шифрующей гаммы и т.д. Криптосхема алгоритма расшифрования в режиме гаммирования с обрат-ной связью аналогична криптосхеме алгоритма шифрования. Используется идентичное режиму шифрования заполнение КЗУ и блока подстановки. Из полученной синхропосылки , по аналогии с процессом формирования первого блока шифрующей гаммы, формируется первый блок дешифрующей гаммы, который используется для побитного дешифрования первого принятого блока криптограммы. Затем первый блок криптограммы используется для формирования второго блока дешифрующей гаммы, предназначенного для дешифрования второго принятого блока криптограммы и т.д. Данный алгоритм повышает имитостойкость шифрованной связи. Однако для выполнения современных требований к имитозащищенности ГОСТ предписывает специальный режим имитозащиты данных. Режим выработки имитовставки Для имитозащиты шифруемых данных, состоящих из 64-разрядных блоков при , формируется имитовставка . Криптосхема, реализующая алгоритм выработки имитовставки, представлена на рис 10.12. В ней используются те же самые оперативный и долговременный ключи для имитозащиты данных, как и для шифрования. Первый блок открытых данных разделяется на левый и правый полублоки, которые зашифровываются в режиме простой замены в течение 16 циклов шифрования, образуя первый блок хэш-кода открытых данных . Сформированный первый блок хэш-кода переписывается в регистр последовательного сдвига и побитно складывается по модулю 2 в сумматоре со вторым блоком открытых данных с образованием полублоков и . Полублоки и используются для формирования второго блока хэш-кода , который складывается с третьим блоком открытых данных . Действия выполняются до тех пор, пока не будет обработан последний блок открытых данных . В качестве имитовставки используются первые бит правого полублока хэш-кода . Длина имитовставки определяется требованиями по имитозащищенности связи. Сформированная имитовставка передается по каналу связи после зашифрованных данных или поступает в память ЭВМ. Стандарт определяет, что имитозащита данных реализуется одинаково для всех режимов их шифрования. Стандарт допускает в первых блоках данных размещение служебной информации (адреса сообщения, метки времени, синхропосылки и др.), которая может не шифроваться. При высоких требованиях к имитозащищенности метка времени обязательно должна присутствовать в передаваемой информации. Криптосхема, реализующая алгоритм проверки имитовставки, аналогична криптосхеме ее выработки. Принятые блоки криптограммы расшифровываются, и заново формируется имитовставка, которая сравнивается с принятой. При их несовпадении принятые данные считаются ложными. Данный режим должен использоваться для обеспечения имитозащищенности связи в условиях, когда исключена возможность ввода ложной информации со стороны законных пользователей шифрованной связи. Рассмотренный криптографический алгоритм защиты информации по ГОСТ 28147-89 во всех описанных режимах обеспечивает высокую криптографическую стойкость и допускает программную или аппаратную реализацию.
|