Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Алгоритм ГОСТ 28147-89 (Российский государственный стандарт шифрования данных).






Это отечественный алгоритм блочного шифрования, являющийся аналогом DES. Разработчики сумели соединить в нём две важные характеристики:

- высокую криптографическую стойкость;

- возможность эффктивного программного исполнения (за счёт использования узлов, реализуемых на современной аппаратно-программной платформе).

Алгоритм работает с 64-битными входными блоками, 64-битными выходными блоками и ключами длиной 256 бит. Использование 256-битного ключа позволяет не обращать внимания на возможность прямой атаки, поскольку мощность ключевого пространства равна 2256.

Структура алгоритма:

 

 

 


Алгоритм может применяться в следующих режимах:

- простая замена;

- гаммирование;

- гаммирование с обратной связью;

- выработка имитовставки.

Для всех четырёх режимов применяется одно общее преобразование:

Li= Ri-1;

Ri= Li-1Å f (Ri-1, Ki), i = 1…31, где L и R – соответственно левая и правая части 64-битного блока. Это преобразование характерно для всех раундов (всего их 32), кроме последнего. Для него преобразование будет иметь вид:

Ri= Ri-1;

Li= Li-1Å f (Ri-1, Ki), i = 32.

Для каждого раунда функция f остаётся неизменной. Перед началом преобразования блок открытого текста разбивается на две 32-битные половины, которые помещаются в 32-разрядные регистры N2 и N1. Также перед началом зашифрования 256-битный ключ, разбитый на 8 частей по 32 бита каждая (K0 - K7), помещается в ключевое запоминающее устройство (КЗУ). Далее содержимое регистра N1 суммируется по модулю 232 с очередным заполнением устройства, а ключевые последовательности выбираются из КЗУ в следующем порядке:

- в раундах с 1-го по 24-й - K0, K1, K2, K3, K4, K5, K6, K7;

- в раундах с 25-го по 32-й - K7, K6, K5, K4, K3, K2, K1, K0.

Полученная битовая последовательность разбивается по 4 бита на 8 блоков (S1 - S8). В них реализуется подстановка, имеющая, например, следующий вид:

Двоичный № входа                                
Двоичный № выхода                                

Числовое представление битового входа однозначно определяет последовательный номер числа в подстановке и битовое представление выхода S-блока. Для каждого S-блока задаётся своя подстановка, которая является долговременным секретным ключом. Генерация подстановок в S-блоках является сложной математической задачей, от решения которой как раз и зависит стойкость этого алгоритма.

После S-блоков последовательность поступает в циклический регистр сдвига, который осуществляет смещение на определённое количество разрядов влево. Использование этого регистра вместо перестановок, реализуемых в DES, обусловлено тем, что данный регистр легко реализуется как программно (используя битовую операцию циклического сдвига), так и аппаратно. При этом эффект распространения влияния каждого бита блока открытого текста на каждый бит блока зашифрованного текста достигается за счёт прохождения преобразуемого блока через данный регистр 32 раза. Далее происходит поразрядное суммирование по модулю 2 содержимого регистра циклического сдвига с содержимым регистра N2. Результат суммирования записывается в регистр N1, а старое содержимое N1 записывается в N2.

Все описанные операции составляют один раунд преобразования очередного блока открытого текста.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.