На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Отечественный стандарт шифрования данных ГОСТ 28147-89

Стандарт шифрования ГОСТ 28147-89 также относится к симметричным (одно-ключевым) криптографическим алгоритмам. Он введен в действие с июля 1990года и
устанавливает единый алгоритм криптографических преобразований для систем об­мена информацией в вычислительных сетях, определяет правила шифрования и рас­шифровки данных, а также выработки имитовставки. Алгоритм в основном удовлет­воряет современным криптографическим требованиям, не накладывает ограничений на степень секретности защищаемой информации и обеспечивается сравнительно не­сложными аппаратными и программными средствами.
Структурная схема алгоритма криптопреобразования, выполненного по ГОСТ 28147-89
Стандарт шифрования ГОСТ28147-89 удобен как для аппаратной, так и для программной реализации. При размере блока данных 64 бита основная работа ведется с половинками этого блока (32-битными словами), что позволяет эф­фективно реализовать указанный стан­дарт шифрования на большинстве современных компьютеров
Стандарт  шифрования ГОСТ
28147-89 предусматривает шифрова­ние и расшифровку данных в следую­щих режимах работа:
О простая замена;
О гаммирование;
□ гаммирование с обратной связью;
□ выработка имитовставки.
Структурная схема алгоритма криптопреобразования, выполненного
по ГОСТ 28147-89, изображена Эта схема состоит из:
□ сумматоров по модулю 2 — СМ2 и СМ5 ;
О сумматоров по модулю 232 —
СМ1 и СМЗ; О сумматора по модулю 232-1 —
СМ4;
О накопителей с константами С1 и С2 — Н6 и Н5, соответственно;
□ основных 32-разрядных накопи­телей HI и Н2;
□ вспомогательных 32-разрядных накопителей НЗ и Н4:
□ ключевого запоминающего устройства КЗУ;
□ блока подстановки К; регистра циклического сдвига R.
Сумматоры по модулю 2 обеспечивают сложение по модулю 2 поступающих на их входы данных, представленных в двоичном виде.
Входной вектор определяет адрес строки в таблице замены, а заполнение является выходным вектором. Затем выходные 4-разрядные векторы объединяются в один 32-разрядный вектор. Принцип работы блока подстановки рассмотрим на примере, пред­ставленном на рис.
Пусть имеется блок данных с заполнением В десятичной системе счисления
заполнение 0110 соответствует числу 6. По таблице замен находим строку с номером 6. Результатом является заполнение 0101, соответствующее узлу замены К1.
Таблица блока подстановки содержит набор кодовых элементов, общих для вычис­лительной сети и практически редко изменяющихся.
Регистр циклического сдвига R предназначен для осуществления операции цикли­ческого сдвига шифруемых данных на 11 разрядов в сторону старших разрядов в виде:
R(r32, г31,... , r2, rl) — (г21, г20,... , rl, г32,..., г22)
Заметим, что при суммировании и циклическом сдвиге двоичных векторов старши­ми считаются разряды накопителей с большими номерами.
Рассмотрим последовательность функционирования алгоритма криптографического преобразования в основных режимах работы.
Режим простой замены
Суть работы алгоритма в режиме простой замены поясним с помощью данные, предназначенные для шифрования, разбиваются на блоки по 64
бит в каждом, которые обозначим через TOi [i = l(l)m], где m — число 64-разрядных блоков передаваемых открытых данных. После этого выполняются следующие про­цедуры:
Структурная схема работы алгоритма криптопреобразования в режиме простой замены
□ первая последовательность бит Т01 разделяется на две последовательности и записывается в накопители: в накопитель Н2 — старшие разряды, в накопитель HI — младшие разряды;
□ в ключевое запоминающее устройство вводится ключевая последовательность длиной 256 бит;
□ выполняется итеративный процесс шифрования, состоящий из 32-х циклов. Первый цикл происходит в следующей последовательности:
1. Содержимое накопителя HI суммируется по модулю 232 в сумматоре СМ1 с содержимым строки ХО из ключевого запоминающего устройства.
2. Результат суммирования из сумматора СМ1 поступает на блок подстановки, где происходит поблочная замена результата по 4 бита в таблице замен.
3. С выхода блока подстановки шифруемые данные сдвигаются на 11 разрядов вле­во в регистре сдвига и поступают на сумматор СМ2.
циклы ШИФРОВАНИЯ
4. В сумматоре СМ2 содержимое регистра сдвига складывается по модулю 2 с со­держимым накопителя Н2.
5. Начальное содержимое накопителя HI поступает в накопитель Н2, а результат суммирования в сумматоре СМ2 заносится в накопитель HI.
Следующие 31 цикл аналогичны первому, за исключением того, что для выполне­ния очередного цикла из ключевого запоминающего устройства выбирается ключ в последовательности, представленной выполнения 32-го, последнего цикла, полученный результат из сумматора СМ2 поступает в накопитель Н2, а в накопителе HI сохраняется результат предыду­щего цикла. Информация, содержащаяся в накопителях HI и Н2, представляет собой первый 64-разрядный блок зашифрованных данных. Остальные блоки открытых дан­ных шифруются в режиме простой замены аналогично.
При расшифровке закрытых данных порядок выбора ключей из ключевого запоми­нающего устройства происходит в обратной последовательности.
Режим гаммирования
Режим гаммирования заключается в том, что открытые данные, предварительно разбитые на 64-битные блоки, поразрядно складываются по модулю 2 с гаммой шифра Гш, представляемой в виде 64-битных блоков:
Гш={Г1, Г2,..., Гт}={П}т, [i=l(l)m],
где т — количество 64-разрядных блоков, определяемое длиной шифруемого со­общения.
Процесс шифрования данных в рассматриваемом режиме работы алгоритма пояс­ним с помощью рис.
В ключевое запоминающее устройство вводится ключевая последовательность дли­ной 256 бит и формируется синхропосылка S в виде 64-разрядной двоичной последо­вательности S = {S1, ... , S64} = {Si}64, которая записывается в накопители HI и Н2 следующим образом:
— в первый разряд накопителя
О S2 — во второй разряд накопителя Н2;
а..............;
□ S32 — в 32-й разряд накопителя HI;
□ S33 - в первый разряд накопителя Н2; 3L..............;
□ S64 — в 32-й разряд накопителя Н2.
Полученная синхропосылка S затем шифруется в режиме простой замены. Резуль­тат шифрования из накопителя HI переписывается в накопитель НЗ, а из накопителя Н2 — в накопитель Н4.
Содержимое накопителя Н4 суммируется по модулю 232-1 с константой С1 в сум­маторе результат суммирования записывается в накопитель Н4.
Содержимое накопителя НЗ суммируется по модулю 232 с константой С2 в сумма­торе результат суммирования записывается в накопитель НЗ.
Далее содержимое накопителя Н4 переписывается в накопитель Н2, а содержи­мое накопителя НЗ — в накопитель Полученные таким образом данные в нако­пителях HI и Н2 шифруются в режиме простой замены, а результатом шифрова­


ния является формирование в этих же накопителях 64-разрядного блока гамма-шифра П.
Полученный гамма-шифр П суммируется поразрядно по модулю 2 с первым 64-раз­рядным блоком открытых данных ТО 1 в сумматоре СМ5. Результат суммирования - пер­вый 64-разрядный блок зашифрованных данных Тш1.
Шифрование второго и последующих блоков открытых данных осуществляется с помощью формирования второго и последующих гамма-шифров в соответствии с рас­смотренными преобразованиями режима простой замены. Если в последнем m блоке открытых данных число двоичных разрядов меньше 64, неиспользованная часть гам­ма-шифра Гш просто отбрасывается.
Расшифровка данных выполняется в обратной последовательности на основе зна­ния ключевой последовательности и синхропосылки S, которая не является секрет­ным элементом шифрования и может храниться в запоминающем устройстве или пе­редаваться в незащищенном виде по каналам связи.
Режим гаммирования с обратной связью
Принцип работы алгоритма в режиме гаммирования с обратной связью отличается от принципа работы предыдущего режима тем, что если на первом шаге при формировании гамма-шифра используется синхропосылка, то на всех последующих шагах — предыду­щий блок зашифрованных данных. За счет этого достигается сцепление блоков шифруе­мых данных: каждый блок данных при шифровании зависит от всех предыдущих.
Шифрование открытых данных в этом режиме происходит по той же схемной реа­лизации, что и в режиме гаммирования, и отличается лишь введением дополнительной обратной связи с выхода сумматора СМ5 на входы накопителей HI и Н2.
Для пояснения процесса шифрования данных в режиме гаммирования с обратной свя­зью вновь обратимся к ключевое запоминающее устройство вводится ключевая последовательность дли­ной 256 бит, после чего формируется синхропосылка S, записываемая в накопители Ш и Н2, содержимое которых шифруется в режиме простой замены. Результат шиф­рования в накопителях HI и Н2 представляет собой первый 64-разрядный блок гамма-
шифра П.
Полученный гамма-шифр П суммируется поразрядно по модулю 2 с первым 64-раз­рядным блоком открытых данных Т01 в сумматоре СМ5. Результат суммирования — пер­вый 64-разрядный блок зашифрованных данных ТшТ. Первый блок зашифрованных данных Тш1 по обратной связи поступает на накопители Н1 и Н2 и является исходной
информацией для формирования второго блока гамма-шифра Г2.
Содержимое накопителей HI и Н2 шифруется в режиме простой замены. Резуль­тат шифрования в накопителях HI и Н2 представляет второй 64-разрядный блок гам­ма-шифра Г2. Этот гамма-шифр суммируется по модулю 2 поразрядно со вторым 64-разрядным блоком открытых данных Т02 в сумматоре 5. В результате получается второй 64-разрядный блок зашифрованных данных Тш2 и т. д. Если в последнем m блоке открытых данных Тот число двоичных разрядов меньше 64, неиспользованная
часть гамма-шифра отбрасывается.
Расшифровка данных происходит в обратном порядке на основе знания ключевой
последовательности и синхропосылки S.
12 Зак 199


Режим выработки имитовставки
Режим выработки имитовставки предназначен для обнаружения случайных и пред­намеренных ошибок при передаче шифрованных данных потребителям и одинаков для любого из режимов шифрования открытых данных.
Имитовставка представляет собой дополнительный блок данных U из L бит, кото­рый формируется либо перед шифрованием всего сообщения, либо совместно с шиф­рованием по блокам. Число двоичных разрядов L в имитовставке определяется крип­тографическими требованиями с учетом вероятности возникновения ложной
имитовставки: Ро = 2 -L.
Первые блоки открытых данных, которые участвуют в формировании имитовстав­ки, как правило, содержат служебную информацию (адресную часть, время, синхро-посылку) и не зашифровываются.
Процесс формирования имитовставки поясним также с помощью и в рассмотренных выше режимах, в ключевое запоминающее устройство вво­дится ключевая последовательность длиной 256 бит. Далее первый 64-разрядный блок открытых данных То 1 поступает в накопители HI и Н2, содержимое которых подвер­гается преобразованию, соответствующему первым 16-и циклам итеративного про­цесса шифрования в режиме простой замены. Результат шифрования в режиме про­стой замены с накопителей HI и Н2 суммируется по модулю 2 со вторым блоком открытых данных То2 в сумматоре СМ5.
Результат суммирования из сумматора поступает в накопители и Н2 и после циклов шифрования в режиме простой замены суммируется по модулю 2 с третьим блоком открытых данных в сумматоре СМ5 и т. д.
Последний 64-разрядный блок открытых данных ТОт, дополненный при необхо­димости до полного 64-разрядного числа нулями, суммируется по модулю 2 с резуль­татом работы алгоритма на (т-1) шаге в сумматоре СМ5 и снова зашифровывается по первым       циклам режима простой замены.
Из полученного таким образом последнего заполнения накопителей HI и Н2 выби­рается имитовставка U длиной L бит. В большинстве практических случаев в качестве имитовставки используется содержимое накопителя (32 младших бита последнего блока зашифрованных данных).
Имитовставка U передается по каналам связи в конце зашифрованных данных или после каждого шифрованного блока. Поступившие данные расшифруются и из полу­ченных блоков открытых данных вырабатывается имитовставка U, которая срав­нивается с имитовставкой, полученной по каналу связи. В случае несовпадения ими-товставок расшифрованные данные считают ложными.
Познакомившись с принципом работы криптографического алгоритма ГОСТ 28147­89, рассмотрим его эффективность и практическую реализацию.
Российский стандарт шифрования ГОСТ 28147-89 удобен как для аппаратной, так
и для программной реализации. При размере блока данных 64 бита основная работа
ведется с половинками этого блока — 32-битными словами, что позволяет эффектив­но реализовать российский стандарт шифрования на большинстве современных ком­пьютеров. При реализации на 32-битных машинах наиболее трудоемка операция заме­ны. Предусмотренные ГОСТом подстановки в 4-битных группах при программной


реализации дают возможность попарно объединить и выполнить замену в 8-битных группах, что существенно эффективнее. Надлежащая организация замены позволяет также избежать вращения слова на выходе функции шифрования, если хранить узлы замены как массивы 4-байтовых слов, в которых уже выполнено вращение.
Такая «раздутая» таблица замен потребует для своего хранения 4*28*4 = 212 байт или 4К оперативной памяти. Указанные шаги оптимизации позволяют реализовать раунд шифрования по ГОСТу за машинных команд, включая выделение и загрузку в регистры отдельных байтов из 4-байтовых слов. С учетом способности процессоров Intel Pentium параллельно выполнять команды, раунд ГОСТа может быть реализован за 6 тактов работы процессора, а весь процесс шифрования — за 32*6 = 192 такта. Добавляя еще 8 тактов на различные внутрипроцессорные задержки, получим оценку затрат процессорного времени на реализацию цикла шифрования по алгоритму ГОСТ 28147-89 в 200 тактов. На процессоре Pentium Pro 200 это позволит достичь предела быстродействия шифрования миллион блоков в секунду, или 8 Мбайт/с (на самом деле
эта величина будет меньше).
Рассматриваемый алгоритм шифрования может быть также эффективно реализован и на 8-битных микроконтроллерах, поскольку составляющие его элементарные опера­ции входят в систему команд большинства наиболее распространенных контроллеров. При этом суммирование по модулю 232 придется разделить на одну операцию сложения без переноса и три операции сложения с переносом, выполняемые Все ос-
тальные операции также легко могут быть представлены в виде 8-байтовых операндов.
При аппаратной реализации ГОСТа один раунд предполагает последовательное выполнение трех операций над 32-битными аргументами: суммирование, замена, вы­полняемая одновременно во всех восьми 4-битных группах, и побитовое суммирова­ние по модулю 2. Циклический сдвиг не является отдельной операцией, так как обес­печивается простой коммутацией проводников. Таким образом, при аппаратной реализации цикл шифрования требует выполнения элементарных операций, и эту работу нельзя распараллелить.
Характеристики быстродействия программных реализаций, выполненных по алго­ритму ГОСТ 28147-89 и новому американскому стандарту шифрования — шифруИз табл. 4.5 видно, что рассмотренные алгоритмы обладают сопоставимыми ха­рактеристиками быстродействия при реализации на 32-битных платформах. При ис­пользовании 8-битных платформ картина будет примерно такой же.
Что касается аппаратной реализации, то, в отличие от алгоритмов шифрования ГОСТа, Rijnael позволяет достичь высокой степени параллелизма при выполнении шифрования, оперирует блоками меньшего размера и содержит меньшее число раун­дов, в силу чего его аппаратная реализация на базе одной и той же технологии теоре­тически может быть более быстродействующей (примерно в 4 раза).


Проведенное выше сопоставление параметров алгоритмов шифрования ГОСТ28147­89 и Rijndael показывает, что, несмотря на существенное различие архитектурных принципов, на которых базируются шифры, их основные рабочие параметры пример­но одинаковы. Исключением является то, что, по всей вероятности, Rijnael будет иметь определенное преимущество в быстродействии перед ГОСТом при аппаратной реали­зации на базе одной и той же технологии. По ключевым параметрам для алгоритмов такого рода ни один из них не обладает значительным преимуществом; примерно одинаковы и скорости оптимальной программной реализации для процес­соров Intel Pentium, что можно экстраполировать на все современные 32-разрядные процессоры. Таким образом, можно сделать вывод, что отечественный стандарт шиф­рования соответствует требованиям, предъявляемым к современным шифрам, и мо­жет оставаться стандартом еще достаточно долгое время. Очевидным шагом в его опти­мизации может стать переход от замен в 4-битных группах к байтовым заменам, за счет чего должна возрасти устойчивость алгоритма к известным видам криптоанализа.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика