Цель лекции: изучение блочного алгоритма шифрования по ГОСТ 28147-89.
В России в качестве стандарта на блочные алгоритмы шифрования с закрытым ключом в 1989 году был принят ГОСТ 28147-89. Он рекомендуется к использованию для криптографической защиты данных. Шифр, предлагаемый ГОСТ 28147-89 построен по тем же принципам, что и американский DES, однако по сравнению с DES отечественный стандарт шифрования более удобен для программной реализации.
В отличие от американского DES в отечественном стандарте применяется более длинный ключ – 256 бит. Кроме того, российский стандарт предлагает использовать 32 раунда шифрования, тогда как DES – только 16.
Таким образом, основные параметры алгоритма криптографического преобразования данных ГОСТ 28147-89 следующие: размер блока составляет 64 бита, размер ключа – 256 бит, количество раундов – 32.
Алгоритм представляет собой классическую сеть Фейштеля. Шифруемый блок данных разбивается на две одинаковые части, правую R и левую L. Правая часть складывается с подключом раунда и посредством некоторого алгоритма шифрует левую часть. Перед следующим раундом левая и правая части меняются местами. Такая структура позволяет использовать один и тот же алгоритм как для шифрования, так и для дешифрования блока.
В алгоритме шифрования используются следующие операции:
На различных шагах алгоритмов ГОСТа данные, которыми они оперируют, интерпретируются и используются различным образом. В некоторых случаях элементы данных обрабатываются как массивы независимых битов, в других случаях – как целое число без знака, в третьих – как имеющий структуру сложный элемент, состоящий из нескольких более простых элементов.
Структура одного раунда ГОСТ 28147-89 приведена на рис 5.1.
Шифруемый блок данных разбивается на две части, которые затем обрабатываются как отдельные 32-битовые целые числа без знака. Сначала правая половина блока и подключ раунда складываются по модулю 232. Затем производится поблочная подстановка. 32-битовое значение, полученное на предыдущем шаге (обозначим его S), интерпретируется как массив из восьми 4-битовых блоков кода: S=(S0,S1,S2,S3,S4,S5,S6,S7). Далее значение каждого из восьми блоков заменяется на новое, которое выбирается по таблице замен следующим образом: значение блока Si заменяется на Si-тый по порядку элемент (нумерация с нуля) i-го узла замен (т.е. i-той строки таблицы замен, нумерация также с нуля). Другими словами, в качестве замены для значения блока выбирается элемент c номером строки, равным номеру заменяемого блока, и номером столбца, равным значению заменяемого блока как 4-битового целого неотрицательного числа. В каждой строке таблицы замен записаны числа от 0 до 15 в произвольном порядке без повторений. Значения элементов таблицы замен взяты от 0 до 15, так как в четырех битах, которые подвергаются подстановке, может быть записано целое число без знака в диапазоне от 0 до 15. Например, первая строка S-блока может содержать такие значения: 5, 8, 1, 13, 10, 3, 4, 2, 14, 15, 12, 7, 6, 0, 9, 11. В этом случае значение блока S0 (четыре младших бита 32-разрядного числа S) заменится на число, стоящее на позиции, номер которой равен значению заменяемого блока. Если S0 = 0, то оно заменится на 5, если S0= 1, то оно заменится на 8 и т.д.
(рис 5.1) Структура одного раунда ГОСТ 28147-89
После выполнения подстановки все 4-битовые блоки снова объединяются в единое 32-битное слово, которое затем циклически сдвигается на 11 битов влево. Наконец, с помощью побитовой операции "сумма по модулю 2" результат объединяется с левой половиной, вследствие чего получается новая правая половина Ri. Новая левая часть Li берется равной младшей части преобразуемого блока: Li= Ri-1.
Полученное значение преобразуемого блока рассматривается как результат выполнения одного раунда алгоритма шифрования.
ГОСТ 28147-89 является блочным шифром, поэтому преобразование данных осуществляется блоками в так называемых базовых циклах. Базовые циклы заключаются в многократном выполнении для блока данных основного раунда, рассмотренного нами ранее, с использованием разных элементов ключа и отличаются друг от друга порядком использования ключевых элементов. В каждом раунде используется один из восьми возможных 32-разрядных подключей.
Рассмотрим процесс создания подключей раундов. В ГОСТ эта процедура очень проста, особенно по сравнению с DES. 256-битный ключ K разбивается на восемь 32-битных подключей, обозначаемых K0, K1, K2,K3, K4, K5, K6, K7. Алгоритм включает 32 раунда, поэтому каждый подключ при шифровании используется в четырех раундах в последовательности, представленной на таблица 5.1.
| Раунд | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| Подключ | K0 | K1 | K2 | K3 | K4 | K5 | K6 | K7 |
| Раунд | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| Подключ | K0 | K1 | K2 | K3 | K4 | K5 | K6 | K7 |
| Раунд | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| Подключ | K0 | K1 | K2 | K3 | K4 | K5 | K6 | K7 |
| Раунд | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
| Подключ | K7 | K6 | K5 | K4 | K3 | K2 | K1 | K0 |
Процесс расшифрования производится по тому же алгоритму, что и шифрование. Единственное отличие заключается в порядке использования подключей .
| Раунд | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| Подключ | K7 | K6 | K5 | K4 | K3 | K2 | K1 | K0 |
| Раунд | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| Подключ | K7 | K6 | K5 | K4 | K3 | K2 | K1 | K0 |
| Раунд | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| Подключ | K7 | K6 | K5 | K4 | K3 | K2 | K1 | K0 |
| Раунд | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
| Подключ | K7 | K6 | K5 | K4 | K3 | K2 | K1 | K0 |
ГОСТ 28147-89 предусматривает следующие режимы шифрования данных: простая замена, гаммирование, гаммирование с обратной связью и один дополнительный режим выработки
В любом из этих режимов данные обрабатываются блоками по 64 бита, на которые разбивается шифруемый массив, именно поэтому ГОСТ 28147-89 относится к блочным шифрам. В режимах гаммирования есть возможность обработки неполного блока данных размером меньше 8 байт, что существенно при шифровании массивов данных с произвольным размером, который может быть не кратным 8 байтам.
Режим простой замены. Этот режим использования блочного шифра аналогичен рассмотренному в лекции 4 режиму простой поблочной замены (
Режимы гаммирования и гаммирования с обратной связью могут использоваться для шифрования данных произвольного размера.
В режиме гаммирования биты исходного текста складываются по модулю 2 с гаммой, которая вырабатывается с помощью алгоритма шифрования по ГОСТ 28147-89. То есть алгоритм шифрования по ГОСТ 28147-89 в данном режиме используется в качестве генераторов 64-разрядных блоков гаммы. При шифровании каждого нового блока данных гамма, использованная на предыдущем шаге, зашифровывается и используется уже как "новая" гамма. В качестве начального массива данных, шифруемых для получения самой первой гаммы, используется так называемая синхропосылка – 64-разрядный начальный блок данных, который должен быть одинаковым на шифрующей и расшифровывающей стороне. Благодаря тому, что наложение и снятие гаммы осуществляется при помощи одной и той же операции сложения по модулю 2, алгоритмы зашифрования и расшифрования в режиме гаммирования совпадают.
Так как все элементы гаммы различны для реальных шифруемых массивов, то результат зашифрования даже двух одинаковых блоков в одном массиве данных будет различным. Кроме того, хотя элементы гаммы и вырабатываются одинаковыми порциями в 64 бита, использоваться может и часть такого блока с размером, равным размеру шифруемого блока. Именно это дает возможность шифрования неполных блоков данных.
Режим гаммирования с обратной связью похож на режим гаммирования и отличается от него только способом выработки элементов гаммы. При гаммировании с обратной связью очередной 64-битный элемент гаммы вырабатывается как результат преобразования по базовому циклу алгоритма ГОСТ 28147-89 предыдущего блока зашифрованных данных. Для зашифрования первого блока массива данных элемент гаммы вырабатывается как результат преобразования по тому же циклу синхропосылки. Этим достигается зацепление блоков – каждый блок шифротекста в этом режиме зависит от соответствующего и всех предыдущих блоков открытого текста. Поэтому данный режим иногда называется гаммированием с зацеплением блоков. На стойкость шифра факт зацепления блоков не оказывает никакого влияния.
Для решения задачи обнаружения искажений в зашифрованном массиве данных в ГОСТе 28147-89 предусмотрен дополнительный режим криптографического преобразования – выработка
где f – базовый цикл по ГОСТ 28147-89; Xi – 64-разрядный блок исходного текста; K – ключ.
В качестве Yn, полученного на выходе, обычно 32 его младших бита.
Таким образом, злоумышленник, не владея ключом шифрования, не может вычислить имитовставку для заданного открытого массива информации, а также подобрать открытые данные под заданную имитовставку.
Несмотря на то, что алгоритм, изложенный в ГОСТ 28147-89, проектировался достаточно давно, в него заложен достаточный запас по надежности. Это связано, прежде всего, с большой длиной ключа шифрования.
Как известно, разработчики современных криптосистем придерживаются принципа, что секретность зашифрованных сообщений должна определяться секретностью ключа. Это значит, что даже если сам алгоритм шифрования известен криптоаналитику, тот, тем не менее, не должен иметь возможности расшифровать сообщение, если не располагает соответствующим ключом. Все классические блочные шифры, в том числе DES и ГОСТ 28147-89, соответствуют этому принципу и спроектированы таким образом, чтобы не было пути вскрыть их более эффективным способом, чем полным перебором по всему ключевому пространству, т.е. по всем возможным значениям ключа. Ясно, что стойкость таких шифров определяется размером используемого в них ключа.
В шифре, реализуемом в ГОСТ 28147-89, используется 256-битовый ключ, и объем ключевого пространства составляет 2256. Даже если, как и в , предположить, что на взлом шифра брошены все силы вычислительного комплекса с возможностью перебора 1012 (это примерно равно 240) ключей в одну секунду, то на полный перебор всех 2256 ключей потребуется 2216 секунд (это время составляет более миллиарда лет).
К уже отмеченным отличиям между алгоритмами DES и ГОСТ 28147 можно добавить также следующее. В основном раунде DES применяются нерегулярные перестановки исходного сообщения, в ГОСТ 28147 используется 11-битный циклический сдвиг влево. Последняя операция гораздо удобнее для программной реализации. Однако перестановка DES увеличивает лавинный эффект. В ГОСТ 28147 изменение одного входного бита влияет на один 4-битовый блок при замене в одном раунде, который затем влияет на два 4-битовых блока следующего раунда, три блока следующего и т.д. В ГОСТ 28147 требуется 8 раундов прежде, чем изменение одного входного бита повлияет на каждый бит результата; DES для этого нужно только 5 раундов.
Также следует отметить, что в отличие от DES, у ГОСТ 28147-89 таблицу замен для выполнения операции подстановки можно произвольно изменять, то есть таблица замен является дополнительным 512-битовым ключом.
ГОСТ 28147-89 – российский стандарт на блочный
В России принят ГОСТ 28147-89, рекомендуемый к использованию для криптографической защиты данных. ГОСТ 28147-89 является блочным шифром с закрытым ключом. Основные параметры алгоритма ГОСТ 28147-89 следующие: размер блока – 64 бита, размер ключа – 256 бит, количество раундов – 32. Алгоритм представляет собой классическую сеть Фейштеля.
Рекомендованные режимы использования: простая замена, гаммирование, гаммирование с обратной связью и режим выработки
| Вход | Выход |
| 000 | 011 |
| 001 | 101 |
| 010 | 000 |
| 011 | 111 |
| 100 | 010 |
| 101 | 110 |
| 110 | 001 |
| 111 | 100 |
1010 1100 1100(2);2356(10);0В57(16).Исходное сообщение: 5A 43 63 19 1E D0 C7 4B F0 8A
Зашифрованное сообщение: 92 37 A7 C0 CE 6B F1 35 8B D2
Исходное сообщение 1: 5A 4D 6B 19 1E 3F 7C 47 F8
Зашифрованное сообщение 1: 98 35 AC C1 CE 79 12 34 8D
Исходное сообщение 2: A3 D0 84 F1 96 C8 E5 77 2B
Зашифрованное сообщение 2: 2B 66 D0 8A 0F FD E7 14 4C
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.