шаговые ключи размещаются в ключевом запоминающем устройстве (КЗУ).
Для обслуживания 32 основных шифрошагов ключи (по одному на каждый
шаг) три раза подаются в прямой последовательности K
0
K
1
, …, K
7
и один раз
– в обратной K
7
, K
6
, …, K
0
.
25
Основной шаг шифрования состоит в следующем:
1) производится сложение по модулю 2
32
содержимого регистра N
1
с
очередным шаговым ключом из КЗУ;
2) 32-разрядный
результат
сложения
X
разбивается
на
8
последовательно идущих 4-разрядных блоков X
0
, X
1
, … , X
7
, каждый из
которых преобразуется в новый 4-разрядный блок по таблице замены S,
после чего выходные блоки последовательно объединяются в один 32-
разрядный блок;
3) полученный блок циклически сдвигается на 11 позиций в сторону
старших разрядов (влево);
4) результат сдвига поразрядно складывается по модулю 2 с
содержимым регистра N
2
;
5) полученная сумма заносится в регистр N
1
, содержимое которого
одновременно перемещается в регистр N
2
. На последнем, 32-м, шаге сумма
заносится в регистр N
2
, а содержимое регистра N
1
сохраняется.
После 32 шагов работы алгоритма содержимое регистров N
1
и N
2
объединяется в единый 64-разрядный блок криптограммы, соответствующий
исходному блоку открытого текста.
Одним из основных моментов, обеспечивающих стойкость шифра,
наряду с длиной ключа K, является подстановочный шифратор – таблица
замены S, состоящая из 8 строк и 16 столбцов. Строки S
0
, S
1
, … , S
7
таблицы
называются узлами замены и каждая из них представляет собой некоторую
перестановку чисел от 0 до 15. Упомянутые 4-разрядные блоки X
0
, X
1
, …, , X
7
поступают каждый на вход своего узла замены, соответственно S
0
, S
1
,…, S
7
.
Блок X
i
рассматривается как двоичная запись некоторого целого числа от 0 до
15. Это число определяет конкретное место в узле замены (строке) S
i
соответствующем X
i
. Стоящее на этом месте число, в 4-разрядной двоичной
записи, подается на выход шифратора S.
Например, пусть блок X
5
=1001 поступает на вход таблицы замены S.
26
Она отправит его в узел замены S
5
:
4 11 10 0 7 2 1 13 3 6 8 5 9 12 15 14
В двоичной записи 1001 – это число 9. На девятом месте (счет
начинается с 0) в строке S
5
стоит число 6. Его двоичная 4-разрядная запись
0110 идет на выход таблицы замены.
Определите, какой входной блок будет заменен узлом S
5
на 1001, на 1111.
Заметим, что, в отличие от DES, где все S-боксы представлены в явном
виде, узлы замены в документации алгоритма ГОСТ не описаны, и
приводимые в разных публикациях их примеры восходят к неофициальным
данным.
После введения в США стандарта шифрования AES естественно
возник вопрос о дальнейшей судьбе шифра ГОСТ. Предпринятые с этой
целью исследования показали, что удобства в эксплуатации, криптостойкость
и эффективность алгоритмов ГОСТ и AES вполне сопоставимы.
19 июня 2015 года приказом Росстандарта (Федеральное агентство по
техническому регулированию и метрологии) № 749-ст был утвержден новый
стандарт шифрования ГОСТ Р 34.12-2015 «Информационная технология.
Криптографическая защита информации. Блочные шифры» с датой
вступления в действие 1 января 2016 года. В нем представлены два блочных
шифра. Один из них – это ГОСТ 28147-89 с модификацией, которая состоит в
том, что узлы замены задаются в фиксированном виде, позволяя исключить
случайный или намеренный их выбор, приводящий к снижению стойкости
алгоритма. Улучшенный таким образом ГОСТ в составе нового стандарта
именуется – Магма. Второй шифр, называемый Кузнечик, имеет длину
входного блока 128 битов и длину ключа 256 битов. Этот шифр разработан
Центром защиты информации и специальной связи ФСБ России при участии
ОАО «Информационные технологии и коммуникационные системы» (ОАО
«ИнфоТеКС»).
Необходимость разработки нового алгоритма шифрования объясняется
потребностью в использовании блочных шифров с входными блоками
27
различной
длины
для
обеспечения
современных
требований
к
криптографической стойкости и эксплуатационным качествам. Шифры
стандарта не накладывают ограничений на степень секретности защищаемой
информации.
Тема 8. КРИПТОСИСТЕМА RSA.
В июне 2003 года в Сан-Диего, Калифорния, состоялось очередное
вручение
Тьюринговской
премии,
учрежденной
Ассоциацией
вычислительной техники (Association for Computing Machinery). Эта премия
названа именем Алана Тьюринга (1912-1954), английского математика,
заложившего основы компьютерных наук и внесшего решающий вклад в
раскрытие германского шифра «Энигма» в годы Второй мировой войны. Она
присуждается с 1966 года специалистам в области компьютерных наук,
создавшим теоретические и технические предпосылки для новых, этапных,
достижений в области информационных технологий. Лауреатами 2002 года
стали Рональд Ривест, Ади Шамир и Леонард Адлмен. В 1977-78 годах,
работая в Массачусетском технологическом институте, они создали шифр,
названный RSA (по первым буквам фамилий), который произвел переворот в
криптографии и открыл новый период в сфере защиты информации. В
настоящее время RSA – самый распространенный метод шифрования,
используемый в компьютерных сетях. В этом шифре осуществлена другая
казавшаяся несбыточной мечта криптографов: возможность защищенной
связи без передачи секретного ключа.
После некоторых необходимых предварительных сведений дадим
краткое описание шифра RSA.
Напомним, что натуральное число, большее 1, называется простым,
если оно делится только на 1 и на себя. Первые десять простых чисел:2, 3, 5,
7, 11, 13, 17, 19, 23, 29, 31. Простых чисел бесконечно много, они
распределены по натуральному ряду вне какой-либо известной
закономерности. Числа, не являющиеся простыми, называются составными.
28
Всякое составное число единственным образом можно представить в виде
произведения степеней простых чисел. Например, 12=2
2
·3, 45=3
2
·5,
105=3·5·7 и т.д. Существующие алгоритмы позволяют персональному
компьютеру за несколько секунд проверить, является ли простым
предъявленное число, имеющее порядка 180 цифр (уровень современной
практической криптографии). В то же время задача разложения на
множители столь же больших составных чисел лежит далеко за пределами
современных технологических возможностей.
Два натуральных числа a и b называются взаимно простыми, если у
них нет общих делителей, т.е. таких натуральных чисел, на которые
делились бы и a, и b. Так, 50=2·5
2
и 63=3
2
·7 являются взаимно простыми
числами, а 36=2
2
·3
2
и 105=3·5·7 – нет: у них имеется общий делитель 3.
Теперь о шифре. Пусть имеется компьютерная сеть, абоненты которой
хотят
обмениваться
информацией,
не
предназначенной
для
непредусмотренных пользователей. Абонент A выбирает два больших
(примерно по 100 цифр) простых числа p и q, находит их произведение n=pq
и подбирает целое число e в интервале от 2 до ( p-1)( q-1), взаимно простое с
Достарыңызбен бөлісу: |