Тульский государственный университет
Опубликован: 19.09.2011 | Доступ: свободный | Студентов: 8148 / 2694 | Оценка: 4.38 / 4.03 | Длительность: 18:45:00
Лекция 6:

Алгоритм криптографического преобразования данных ГОСТ 28147-89

< Лекция 5 || Лекция 6: 12 || Лекция 7 >

Основные режимы шифрования

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

В любом из этих режимов данные обрабатываются блоками по 64 бита, на которые разбивается шифруемый массив, именно поэтому ГОСТ 28147-89 относится к блочным шифрам. В режимах гаммирования есть возможность обработки неполного блока данных размером меньше 8 байт, что существенно при шифровании массивов данных с произвольным размером, который может быть не кратным 8 байтам.

Режим простой замены. Этот режим использования блочного шифра аналогичен рассмотренному в лекции 4 режиму простой поблочной замены (ECB). В этом режиме каждый блок исходных данных шифруется независимо от остальных блоков, с применением одного и того же ключа шифрования. Особенностью этого режима является то, что одинаковые блоки исходного текста преобразуются в одинаковый шифротекст. Поэтому ГОСТ 28147-89 рекомендует использовать режим простой замены только для шифрования ключей.

Режимы гаммирования и гаммирования с обратной связью могут использоваться для шифрования данных произвольного размера.

В режиме гаммирования биты исходного текста складываются по модулю 2 с гаммой, которая вырабатывается с помощью алгоритма шифрования по ГОСТ 28147-89. То есть алгоритм шифрования по ГОСТ 28147-89 в данном режиме используется в качестве генераторов 64-разрядных блоков гаммы. При шифровании каждого нового блока данных гамма, использованная на предыдущем шаге, зашифровывается и используется уже как "новая" гамма. В качестве начального массива данных, шифруемых для получения самой первой гаммы, используется так называемая синхропосылка – 64-разрядный начальный блок данных, который должен быть одинаковым на шифрующей и расшифровывающей стороне. Благодаря тому, что наложение и снятие гаммы осуществляется при помощи одной и той же операции сложения по модулю 2, алгоритмы зашифрования и расшифрования в режиме гаммирования совпадают.

Так как все элементы гаммы различны для реальных шифруемых массивов, то результат зашифрования даже двух одинаковых блоков в одном массиве данных будет различным. Кроме того, хотя элементы гаммы и вырабатываются одинаковыми порциями в 64 бита, использоваться может и часть такого блока с размером, равным размеру шифруемого блока. Именно это дает возможность шифрования неполных блоков данных.

Режим гаммирования с обратной связью похож на режим гаммирования и отличается от него только способом выработки элементов гаммы. При гаммировании с обратной связью очередной 64-битный элемент гаммы вырабатывается как результат преобразования по базовому циклу алгоритма ГОСТ 28147-89 предыдущего блока зашифрованных данных. Для зашифрования первого блока массива данных элемент гаммы вырабатывается как результат преобразования по тому же циклу синхропосылки. Этим достигается зацепление блоков – каждый блок шифротекста в этом режиме зависит от соответствующего и всех предыдущих блоков открытого текста. Поэтому данный режим иногда называется гаммированием с зацеплением блоков. На стойкость шифра факт зацепления блоков не оказывает никакого влияния.

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

Y=f((X_i \oplusY_{i-1}),K)\    для\ всех\ i\ от\ 1\ до\ n

где f – базовый цикл по ГОСТ 28147-89; Xi – 64-разрядный блок исходного текста; Kключ.

В качестве имитовставки берется часть блока Yn, полученного на выходе, обычно 32 его младших бита.

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

Отличия алгоритмов шифрования по ГОСТ 28147-89 и DES

Несмотря на то, что алгоритм, изложенный в ГОСТ 28147-89, проектировался достаточно давно, в него заложен достаточный запас по надежности. Это связано, прежде всего, с большой длиной ключа шифрования.

Как известно, разработчики современных криптосистем придерживаются принципа, что секретность зашифрованных сообщений должна определяться секретностью ключа. Это значит, что даже если сам алгоритм шифрования известен криптоаналитику, тот, тем не менее, не должен иметь возможности расшифровать сообщение, если не располагает соответствующим ключом. Все классические блочные шифры, в том числе DES и ГОСТ 28147-89, соответствуют этому принципу и спроектированы таким образом, чтобы не было пути вскрыть их более эффективным способом, чем полным перебором по всему ключевому пространству, т.е. по всем возможным значениям ключа. Ясно, что стойкость таких шифров определяется размером используемого в них ключа.

В шифре, реализуемом в ГОСТ 28147-89, используется 256-битовый ключ, и объем ключевого пространства составляет 2256. Даже если, как и в "Алгоритмы шифрования DES и AES" , предположить, что на взлом шифра брошены все силы вычислительного комплекса с возможностью перебора 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. Алгоритм представляет собой классическую сеть Фейштеля.

Рекомендованные режимы использования: простая замена, гаммирование, гаммирование с обратной связью и режим выработки имитовставки.

Набор для практики

Вопросы для самопроверки

  1. Для каких целей может использоваться алгоритм криптографического преобразования данных по ГОСТ 28147-89?
  2. Перечислите основные параметры алгоритма симметричного шифрования по ГОСТ 28147-89.
  3. Какие операции используются в блочном алгоритме шифрования по ГОСТ 28147-89?
  4. Каковы основные отличия алгоритма шифрования по ГОСТ 28147-89 от алгоритма DES?
  5. Какая информация, помимо секретного ключа, при условии использования стандартных алгоритмов ГОСТ 28147-89 необходима для расшифровки сообщения?
  6. В каких режимах может производиться шифрование данных с помощью алгоритма криптографического преобразования по ГОСТ 28147-89?
  7. Что такое имитовставка? Для каких целей может быть использована имитовставка?

Упражнения для самопроверки

  1. Пусть каждые три бита входного сообщения заменяются по следующей таблице замен:
    Вход Выход
    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).
    Примечание: десятичные и шестнадцатеричные числа необходимо сначала перевести в двоичный вид.
  2. Известно, что противник использует следующий блочный код: при шифровании каждые четыре бита входного сообщения заменяются другими четырьмя битами по определенной таблице замен. Удалось перехватить одну пару сообщений "исходный текст" - "зашифрованный текст". Определите таблицу замен, используемую противником. Все сообщения представлены в шестнадцатеричном формате.

    Исходное сообщение: 5A 43 63 19 1E D0 C7 4B F0 8A

    Зашифрованное сообщение: 92 37 A7 C0 CE 6B F1 35 8B D2

  3. После вскрытия блочного шифра, описанного в задании 5, коварный противник решил усложнить используемую схему шифрования следующим образом: при шифровании сообщение разбивается на блоки по восемь бит; первые четыре бита входного сообщения заменяются другими четырьмя битами по одной таблице замен, а вторые четыре бита – по другой таблице замен. Удалось перехватить две пары сообщений "исходный текст" - "зашифрованный текст". Определите таблицы замен, используемые противником. Все сообщения представлены в шестнадцатеричном формате.

    Исходное сообщение 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

< Лекция 5 || Лекция 6: 12 || Лекция 7 >
Антон Свистельников
Антон Свистельников

С помощью обобщенного алгоритма Евклида найдите числа х и у, удовлетворяющие уравнению 30х +12y = НОД(30,12).

х=1, у=-2, НОД = 6. Где ошибка?

Шамиль Байрамов
Шамиль Байрамов

z = x + k (mod N)