Курсовая работа: Разработка программы, реализующей алгоритм шифрования ГОСТ 28147-89
K0,K1,K2,K3,K4,K5,K6,K7,K7,K6,K5,K4,K3,K2,K1,K0,K7,K6,K5,K4,K3,K2,K1,K0, K7,K6,K5,K4,K3,K2,K1,K0.
Цикл выработки имитовставки 16-З:
K0,K1,K2,K3,K4,K5,K6,K7,K0,K1,K2,K3,K4,K5,K6,K7.
Каждый из циклов имеет собственное буквенно-цифровое обозначение, соответствующее шаблону «n-X», где первый элемент обозначения (n), задает число повторений основного шага в цикле, а второй элемент обозначения (X), буква, задает порядок шифрования («З») или дешифрования («Р») в использовании ключевых элементов. Цикл дешифрования должен быть обратным циклу шифрования, то есть последовательное применение этих двух циклов к произвольному блоку должно дать в итоге исходный блок. Для выполнения этого условия для алгоритмов, подобных ГОСТу, необходимо и достаточно, чтобы порядок использования ключевых элементов соответствующими циклами был взаимообратным (рис. 2а, рис. 2б).
Схемы базовых циклов приведены на рисунках 2а, 2б, 2в. Каждый из них принимает в качестве аргумента и возвращает в качестве результата 64-битный блок данных, обозначенный на схемах N. Символ Шаг (N,Kj) обозначает выполнение основного шага криптопреобразования для блока N с использованием ключевого элемента K.
|
|
|
3.2.4 Основные режимы шифрования
ГОСТ 28147-89 предусматривает три следующих режима шифрования данных:
простая замена,
гаммирование,
гаммирование с обратной связью.
Кроме того, предусмотрен один дополнительный режим выработки имитовставки.
В любом из этих режимов данные обрабатываются блоками по 64 бита, на которые разбивается массив, подвергаемый криптографическому преобразованию, именно поэтому ГОСТ относится к блочным шифрам. Однако в двух режимах гаммирования есть возможность обработки неполного блока данных размером меньше 8 байт, что существенно при шифровании массивов данных с произвольным размером, который может быть не кратным 8 байтам.
Прежде чем перейти к рассмотрению конкретных алгоритмов криптографических преобразований, необходимо пояснить обозначения, используемые на схемах в следующих разделах:
Tо, Tш – массивы соответственно открытых и зашифрованных данных;
, – i-тые по порядку 64-битные блоки соответственно открытых и зашифрованных данных;
n – число 64-битных блоков в массиве данных;
ЦX – функция преобразования 64-битного блока данных по алгоритму базового цикла «X».
Далее описаны режимы шифрования по алгоритму ГОСТ 28147-89.
Простая замена.
Шифрование в данном режиме заключается в применении цикла 32-З к блокам открытых данных, дешифрование – цикла 32-Р к блокам зашифрованных данных. Это наиболее простой из режимов, 64-битовые блоки данных обрабатываются в нем независимо друг от друга. Схемы алгоритмов шифрования и дешифрования в режиме простой замены приведены на рисунках 3а и 3б соответственно.
Рис. 3а. Алгоритм шифрования данных в режиме простой замены.
Рис. 3б. Алгоритм дешифрования данных в режиме простой замены.
Размер массива открытых или зашифрованных данных, подвергающийся соответственно зашифрованию или расшифрованию, должен быть кратен 64 битам: |Tо|=|Tш|=64 · n , после выполнения операции размер полученного массива данных не изменяется.
Режим шифрования простой заменой имеет следующие особенности:
Так как блоки данных шифруются независимо друг от друга и от их позиции в массиве данных, при зашифровании двух одинаковых блоков открытого текста получаются одинаковые блоки шифртекста и наоборот. Отмеченное свойство позволит криптоаналитику сделать заключение о тождественности блоков исходных данных, если в массиве зашифрованных данных ему встретились идентичные блоки, что является недопустимым для серьезного шифра;