Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Стандарт шифрования ГОСТ Р34.12-2015, базовый алгоритм шифрования 64-битного блока.




(ГОСТ 34.12 является модификацией ГОСТА 28147)

Шифрование в режиме простой замены

(схема из лекций)

Уравнения преобразований

a (j) = { f [(a (j – 1) + K ( j -1)mod8) mod232] + b (j – 1)} mod2,

b (j) = a (j – 1); при j = 1, …, 24;

a (j) = { f [ a (j – 1) + K 32- j ] mod 232 + b (j – 1)} mod 2,

b (j) = a (j – 1), при j = 25, …, 31;

a (32) = a (31),

b (32) ={ f [ a (31) + K0]) mod 232 + b (31)} mod2, при j = 32.

 

Из интернета:

Отечественный алгоритм шифрования ГОСТ 28147-89 определен в стандарте [14]. Алгоритм шифрует данные 64-битными блоками с использованием 256-битного ключа шифрования. Выполняется 32 раунда преобразований, в каждом из которых предусмотрены следующие операции (см. рис. 1):

Рис 1. Раунд алгоритма ГОСТ 28147-89.

1. Один из 32-битных субблоков данных складывается с 32-битным значением ключа раунда Ki по модулю 232.

2. Результат предыдущей операции разбивается на 8 фрагментов по 4 бита, которые параллельно «прогоняются» через 8 таблиц замен S1…S8. Таблицы замен в стандарте [14] не определены. Примеры возможных таблиц замен можно найти, например, в [17] или [18].

3. 4-битные фрагменты (после замен) объединяются обратно в 32-битный субблок, значение которого циклически сдвигается влево на 11 бит.

4. Обработанный предыдущими операциями субблок накладывается на необработанный с помощью побитовой логической операции «исключающее или» (XOR).

5. Субблоки меняются местами.

Процедура расширения ключа в алгоритме ГОСТ 28147-89, фактически, отсутствует: в раундах шифрования последовательно используются 32-битные фрагменты K1…K8 исходного 256-битного ключа шифрования в следующем порядке: K1, K2, K3, K4, K5, K6, K7, K8,
– за исключением последних 8 раундов – в раундах с 25-го по 31-й фрагменты используются в обратном порядке.

Расшифрование полностью аналогично зашифрованию, но с другим порядком использования фрагментов ключа:

· в прямом порядке – в первых 8 раундах;

· в остальных раундах – в обратном порядке.

Стандарт [14] также предусматривает и описывает различные режимы применения алгоритма:

· описанный выше режим простой замены;

· режимы гаммирования и гаммирования с обратной связью, предусматривающие вычисление с помощью описанных выше преобразований псевдослучайной последовательности – гаммы шифра – и ее наложение на шифруемый текст;

· режим вычисления имитовставки – криптографической контрольной суммы, используемой для подтверждения целостности данных; в данном режиме выполняется 16 раундов преобразований вместо 32-х.

Алгоритм ГОСТ 28147-89 можно использовать и в различных общеупотребительных режимах шифрования (предусмотренных стандартом [4]). Кроме того, на основе данного алгоритма построен отечественный стандарт хэширования ГОСТ Р 34.11-94 [15].

Как видно из описания, алгоритм ГОСТ 28147-89 является весьма простым в реализации, что является его несомненным достоинством.

 

Принцип построения и характеристики шифра AES.

AES (Advanced Encryption Standard)

Новый американский стандарт шифрования FIPS-197.

Данный алгоритм шифрования является не только полностью общедоступным, но и принятым как наилучший среди представленных на открытом конкурсе в США в 1997 г.

шифр AES:

- открыто опубликованный;

- симметричный блоковый шифр, допускающим длины ключа 128, 192 и 256 бит;

- предназначен как для аппаратной, так и для программной реализации;

- доступен для свободного использования в любых продуктах, а значит, не запатентованным.

В ходе исследований не выявлено слабостей

криптоалгоритма;

Характеристики шифра АЕS

1.Может работать быстрее, чем обычный блочный шифр;

2.Может быть реализован на смарт-карте, используя небольшой РАМ и имея небольшое число циклов;

3. Преобразование раунда допускает параллельное выполнение;

4. Не использует арифметических операций, поэтому тип архитектуры процессора не имеет значения;

5. Может быть использован для вычисления МАС-кода и хэш-функции.

 

Данный шифр основан на принципе итерирования (итерирование - повторение какой-либо математической операции, использующее результат предыдущей аналогичной операции) SD-преобразований и использует так называемую архитектуру «квадрат», т. е. все преобразования производятся в рамках одного квадрата.

Текущие данные (в том числе исходное сообщение и получаемая криптограмма) записываются по одному байту (8 бит) в каждую из 16 клеток, что дает общую длину блока шифрования, равную 8x16 -128 бит.

Первое преобразование данного алгоритма выполняется как вычисление обратного элемента в поле GF() по модулю неприводимого полинома + + + х +1, что обеспечивает доказуемую устойчивость шифра по отношению к линейному и дифференциальному криптоанализу, при этом нулевой элемент поля сохраняется без преобразования (рис. 3.16).

 

Следующее преобразование состоит в умножении каждой клетки квадрата, представленной в виде двоичного вектор-столбца (, ), на фиксированную матрицу и добавлении также фиксированного вектор-столбца, причем все операции здесь выполняются в поле GF{2}:

Используемая в этом преобразовании матрица и вектор-столбец сохраняются одинаковыми на всех раундах и не зависят от ключа.

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

В качестве очередного преобразования используется побайтовый циклический сдвиг массива сообщений на различное количество байт (клеток), показанный на рис. 3.17.

Следующее преобразование называется перемешиванием столбцов. На этом шаге каждый С-й столбец квадратной матрицы представляется как 4-мерный вектор над полем GF(), и далее производится умножение в этом поле, заданном неприводимым полиномом + + + х +1, на определенную матрицу с элементами из этого же поля:

где элементы, показанные в этой матрице, задаются как элементы поля GF() (т. е. как двоичные последовательности длины 8), что иллюстрируется следующим примером:

Наконец производится сложение с раундовыми ключами, которое выполняется просто как побитное сложение всех элементов последнего квадрата с 128 элементами раундового ключа по модулю 2. После завершения одного раунда все описанные выше операции повторяются с использованием других раундовых ключей. Раундовые ключи вырабатываются из единственного секретного ключа длиной 128, 192 или 256 бит (в зависимости от выбранного режима ифрования) при помощи специальных преобразований, включающих в себя циклические сдвиги и расширения. Количество раундов шифра зависит от выбранного режима его работы и изменяется в пределах от 10 до 14.

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

Особенности шифра AES

1) AES ориентирован в основном на реализацию с 8-разрядными процессорами;

2) все раундовые преобразования выполняются в конечных полях, что допускает простую реализацию на различных платформах.

Стойкость шифра AES

Очевидно, что перебор всех ключей (даже при их минимальном количестве- 2) оказывается невозможным. Линейный и дифференциальный криптоанализ также практически невозможны вследствие выбора оптимальных процедур преобразований и, в частности, вследствие использования вычисления обратных элементов в конечном поле.

Криптоанализ на основе решения нелинейной системы уравнений над полем GF(2), описывающих шифр, теоретически возможен, в том числе и за счет появления дополнительных уравнений. Однако эта процедура требует необозримо большого вычислительного ресурса. Таким образом, в настоящее время шифр AES можно считать стойким относительно любых известных атак.

Скорость шифрования AES

При программной реализации данный алгоритм наиболее эффективно реализуется на 8- и 32-разрядных платформах. Для типичных ПК скорость шифрования может составлять порядка 1 Мбайт/с - 500 кбайт/с. При аппаратной реализации высокие скорости шифрования (порядка 100 Мбайт/с и выше) потребуют увеличения аппаратных ресурсов и, следовательно, увеличения габаритов устройства.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...