Помощь в написании студенческих работ
Антистрессовый сервис

Стандарт шифрования ГОСТ 28147-89

РефератПомощь в написанииУзнать стоимостьмоей работы

Отличительной чертой алгоритма ГОСТ является использование в его структуре нефиксированных блоков замены. Предполагается, что при любом заполнении S-блоков тридцати двух раундов шифрования будет достаточно для того, чтобы противостоять любым методам криптоанализа. Долгое время считалось, что если оставлять S-блоки в секрете, то их можно рассматривать как дополнительный ключевой материал. Однако… Читать ещё >

Стандарт шифрования ГОСТ 28147-89 (реферат, курсовая, диплом, контрольная)

Алгоритм шифрования ГОСТ является стандартом шифрования данных в Российской Федерации. Это означает, что он является обязательным для применения в качестве алгоритма шифрования во всех государственных организациях РФ. На его основе построено большинство безопасных информационных систем (Secure Information Systems), например, таких как CryptoProCSP, VipNetCSP, LissiCSP, Secret Disk и многие другие. Помимо этого, алгоритм ГОСТ используется в составе функции хэширования и входит в стандарт RFC4357 в части «id-GostR3411 -94-CryptoProParamSet» .

Впервые широкая общественность узнала о данном шифре в 1994 г., когда он был рассекречен и переведен на английский язык. Несмотря на то, что стандарт был разработан более 20 лет назад, в 2010 г. рассматривалась возможность принятия алгоритма ГОСТ в качестве международного стандарта шифрования в ISO 18 033.

Стандарт шифрования ГОСТ 28 147–89 (далее по тексту мы будем опускать цифры и использовать сокращенное название ГОСТ) имеет четыре основных режима работы: режим простой замены, режим гаммироваиия, режим гаммироваиия с обратной связью и режим выработки имитовставки. Все режимы используют одно и то же основное преобразование, но с разным числом раундов и различным образом.

В основе всех режимов лежит работа алгоритма ГОСТ в режиме простой замены. Именно с него мы и начнем наше рассмотрение.

В описании стандарта программно-аппаратная реализация алгоритма ГОСТ схематично представлена так, как показано на рис. 15.

Программно-аппаратная схема алгоритма ГОСТ в режиме простой замены.

Рис. 15. Программно-аппаратная схема алгоритма ГОСТ в режиме простой замены.

Прежде чем перейти к детальному рассмотрению рис. 15, мы предлагаем попробовать рассмотреть алгоритм ГОСТ в привычном «классическом» представлении схемы Фейстеля. Алгоритм шифрования ГОСТ 28 147–89 в режиме простой замены представляет собой блочный алгоритм шифрования, построенный по схеме Фейстеля, с 256-битным ключом и 32 циклами преобразования, оперирующий 64-битными блоками (рис. 16).

Для шифрования открытый текст разбивается на две равные части по 32 бита каждая. В i-м цикле используется подключ Kj. Функция F реализована следующим образом. Сначала правая половина данных и подключ складываются по модулю 232. Результат разбивается на восемь 4-битовых последова;

тельностей, каждая из которых поступает на вход своего Sблока. ГОСТ использует восемь различных S-блоков, первые 4 бита попадают в первый S блок, вторые четыре — во второй и т. д. Каждый S-блок представляет собой перестановку чисел от О до 15. Все восемь S-блоков различны и не являются фиксированными. То есть при шифровании можно использовать произвольный набор из восьми перестановок в качестве восьми Sблоков замены. Выходы всех восьми S-блоков объединяются в 32-битное слово, которое циклически сдвигается влево на 11 битов. Наконец, результат объединяется с помощью операции сложения по модулю 2 (XOR) с левой половиной данных. В каждом раунде за исключением последнего правая и левая части меняются местами.

Алгоритм шифрования ГОСТ - 28147-89 в режиме простой замены.

Рис. 16. Алгоритм шифрования ГОСТ — 28 147−89 в режиме простой замены.

Исходный секретный ключ К имеет размер 256 битов и состоит из восьми 32-битовых слов: Ко, Кь Кг, К3, К4, К5, К*, К7.

Расширение материала ключа производится по схеме K[i]=(K0, Кь К2, Кз, К4, К5, К6, К7, К0, Кь К2, Кз, К, К5, Кв, К7, Ко, К, К2, К3, К, К5, К6, К7, К7, К6, Кз, К4, К3, К2, К, Ко). При расшифровании используется тот же самый алгоритм за тем исключением, что раундовыс подключи используются в обратном порядке.

Алгоритм слабо подвержен распараллеливанию, а вот в плане многоплатформенности он имеет достаточно «удобный» дизайн.

Режим простой замены предназначен для шифрования ключей (существует множество схем применения алгоритмов симметричного шифрования, использующих несколько ключей различного назначения; в этих случаях требуется шифрование одних ключей на другие). В данном режиме выполняется 32 раунда основного преобразования. В каждом из раундов, как было сказано выше, используется определенный подключ, как было описано выше.

Теперь попробуем соотнести между собой рис. 15 и 16, для того чтобы разобраться с логикой работы программноаппаратной схемы. Для этого обратимся к рис. 17.

Итак, шифруемый текст подается в накопители N1 и N2 (на рис. 17 — это связь № 1). Накопители 32-разрядные. Сначала первые 32 бита текста заносятся в накопитель N1 и переписываются в N2. После этого вторые 32 бита текста записываются в накопитель N1. Таким образом получается, что в накопителе N1 находится левая половина блока шифруемого текста, а в накопителе N2 — правая. Дальше правая часть (содержимое накопителя N2) поступает на вход функции F (связь 2). После чего выполняется сложение по модулю 2 данных с очередным раундовым подключом (связь 3). Все раундовые подключи хранятся в КЗУ (связь 4) и в программно-аппаратной схеме обозначены буквой X. После этого происходит преобразование данных с помощью блоков замены (связь 5). В программно-аппаратной схеме стандарта блоки замены обозначены буквой К. Далее выполняется циклический сдвиг в сторону старших позиций на 11 разрядов (связь 6). Результат данной операции является выходом функции F. После этого результат работы функции F необходимо сложить с левой половиной блока данных. Поэтому содержимое регистра N1 поступает па вход сумматора СМ2 (связь 7), где и происходит поразрядное сложение данных (связь 8). Во всех раундах, кроме последнего, результат сложения выхода функции F с левой частью данных должен переместиться в правую часть. Поэтому сначала содержимое регистра N2 переписывается в регистр N1 (связь 10), после чего результат работы сумматора СМ2 переписывается в накопитель N2 (связь 9).

Соотношение классического представления схемы Фсйстсля с программно-аппаратным представлением алгоритма.

Рис. 17. Соотношение классического представления схемы Фсйстсля с программно-аппаратным представлением алгоритма.

ГОСТ В последнем раунде смена половинок блока данных отсутствует, поэтому содержимое регистра N2 остается неизменным, а результат работы сумматора СМ2 переписывается в накопитель N1 (связь 11).

Это интересно

Отличительной чертой алгоритма ГОСТ является использование в его структуре нефиксированных блоков замены. Предполагается, что при любом заполнении S-блоков тридцати двух раундов шифрования будет достаточно для того, чтобы противостоять любым методам криптоанализа. Долгое время считалось, что если оставлять S-блоки в секрете, то их можно рассматривать как дополнительный ключевой материал. Однако в работе [10] был предложен метод, применение которого позволяет достаточно просто восстановить значения S-блоков, используемых для шифрования данных. Для этого необходимо найти «нулевой вектор» с использованием нулевого ключа шифрования, что занимает порядка 232 операций шифрования. А затем с использованием этого нулевого вектора вычислить значения S-блоков, что занимает порядка 2й операций. До сих пор остается открытым вопрос, насколько заполнение S-блоков влияет на стойкость алгоритма ГОСТ, хотя считается, что большого количества раундов и избыточной длины кпюча достаточно для обеспечения его стойкости.

Для собственно шифрования информации используются режимы гаммирования и гаммирования с обратной связью. В данных режимах шифрование информации производится побитовым сложением по модулю 2 каждого 64-битного блока шифруемой информации с блоком гаммы шифра:

Стандарт шифрования ГОСТ 28147-89.

Гамма шифра — это псевдослучайная последовательность, вырабатываемая с использованием основного преобразования алгоритма ГОСТ 28 147–89 следующим образом (рис. 18).

  • 1. В накопители N1 и N2 записывается синхропосылка S длиной 64 бита.
  • 2. Содержимое регистров N1 и N2 шифруется в режиме простой замены.
  • 3. Результат зашифрования из регистров N1 и N2 записывается в регистры N3 и N4 соответственно.
  • 4. Содержимое регистра N4 суммируется по модулю (232 — 1) с содержимым регистра N6, в котором находится константа Cl (224 + 216 + 28 + 22), а содержимое регистра N3 суммируется по модулю 232 с содержимым регистра N5, в котором находится константа С2 (224 + 216 + 2Х+ 1). Результат сложения записывается соответственно в регистры N4 и N3.
  • 5. Содержимое регистров N3 и N4 записывается в регистры N1 и N2 соответственно, при этом содержимое регистров N3 и N4 сохраняется.
  • 6. Содержимое регистров N1 и N2 шифруется в режиме простой замены, результат записывается в регистры N1 и N2, и их содержимое образует первый 64-битный блок гаммы.
  • 7. Алгоритм генерации остальных блоков гаммы заключается в суммировании содержимого регистров N3 и N4 с содержимым регистров N5 и N6 соответственно, с сохранением результата в N3 и N4, переписыванием содержимого N3 и N4 в N1 и N2 соответственно и последующем шифровании в режиме простой замены содержимого регистров N1 и N2.

Синхропосылка S передается на приемную сторону в открытом или в зашифрованном виде. В некоторых системах связи генерация синхропосылки проходит процедуру согласования между сторонами, участвующими в информационном обмене.

Таким образом, непосредственное шифрование данных происходит в сумматоре СМ5, в то время как вся остальная схема предназначена для выработки гаммы шифра.

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

Рис. 18. Режим гаммирования ГОСТ 28147-89.

Рис. 18. Режим гаммирования ГОСТ 28 147–89.

Ясно, что для расшифрования информации необходимо иметь тот же ключ шифрования и то же самое значение синхропосылки, что и при зашифровывании. Существуют реализации алгоритма ГОСТ 28 147–89, в которых синхроносылка так;

же является секретным элементом, наряду с ключом шифрования. Фактически в этом случае можно считать, что ключ шифрования увеличивается на длину синхропосылки (64 бита), что усиливает стойкость алгоритма.

Режим гаммирования позволяет злоумышленнику воздействовать на исходный текст путем изменения битов шифрованного текста, так как шифрование производится побитово. Изменив один бит в зашифрованном тексте на противоположный, получим изменение того же бита в расшифрованном тексте. Гаммироваиие с обратной связью позволяет зацепить блоки один за другой и любое изменение хотя бы одного бита в каком-либо месте шифртекста повлечет за собой при расшифровке повреждение информации во всех последующих блоках, что легко заметить.

Режим гаммирования с обратной связью работает следующим образом (рис. 19).

  • 1. В накопители N1 и N2 записывается синхропосылка S длиной 64 бита.
  • 2. Содержимое регистров N1 и N2 шифруется в режиме простой замены. Полученное в результате зашифрования значение образует первый блок гаммы. Блок гаммы суммируется с блоком открытого текста, тем самым образуя шифр-текст.
  • 3. Полученный шифр-текст записывается в регистры N1 и N2 и происходит возврат к шагу 2.

С помощью режима выработки имитовставок вычисляются имиговставки — криптографические контрольные суммы информации, вычисленные с использованием определенного ключа шифрования. Имитовставки обычно вычисляются до зашифровывания информации и хранятся или отправляются вместе с зашифрованными данными, чтобы впоследствии использоваться для контроля целостности. После расшифровывания информации имитовставка вычисляется снова и сравнивается с хранимой; несовпадение значений указывает на порчу или преднамеренную модификацию данных при хранении или передаче, или на ошибку расшифрования.

Режим гаммирования с обратной связью.

Рис. 19. Режим гаммирования с обратной связью.

В режиме выработки имитовставки выполняются следующие операции:

  • 1. Первый 64-битный блок информации, для которой вычисляется имитовставка, записывается в регистры N1 и N2 и зашифровывается в сокращенном режиме простой замены, в котором выполняется 16 раундов основного преобразования вместо 32-х.
  • 2. Полученный результат суммируется по модулю 2 со следующим блоком открытого текста и сохраняется в N1 и N2.
  • 3. И т.д. до последнего блока открытого текста.

В качестве имитовставки используется результирующее содержимое регистров N1 и N2 или его часть (в зависимости от требуемого уровня стойкости). Часто имиговставкой считается 32-битное содержимое регистра N1.

Показать весь текст
Заполнить форму текущей работой