Чтение онлайн

ЖАНРЫ

Безопасность информационных систем. Учебное пособие
Шрифт:

5. Алгоритм вычисления промежуточных ключей Ki.

Алгоритм DES

Ранее самым популярным алгоритмом симметричного шифрования являлся DES (Data Encrypting Standart), принятый в 1977 г. Этот алгоритм базируется на структуре шифра Файстеля с размером блока 64 бита и 56-битным ключом. Функция раунда F использует набор из восьми так называемых S– матриц. Каждая матрица состоит из 4 строк, причем каждая строка представляет собой перестановку чисел от 0 до 15 (16 столбцов). Матрицы жестко заданы. Каждая матрица получает на вход шесть бит и выдает четырехбитовый результат. Первый и последний бит входного значения задают строку матрицы,

а четыре остальных – столбец. Двоичное представление числа, находящегося на их пересечении, и будет результатом преобразования. Преобразование F заключается в следующем:

1. 32-битовый блок Ri расширяется до 48 битов с помощью специальной таблицы путем дублирования некоторых 16 битов.

2. Полученный результат складывается с 48-битным подключом Ki операцией XOR.

3. Результат сложения разбивается на восемь шестибитовых блоков и каждый из них преобразуется с помощью соответствующей S– матрицы.

4. Получившийся в итоге 32-битный блок подвергается жестко заданной в алгоритме перестановке.

Долгое время DES являлся федеральным стандартом шифрования США. Этот алгоритм показывает хороший лавинный эффект, т. е. изменение одного бита открытого текста или ключа приводит к изменению многих битов зашифрованного текста. DES успешно противостоял многолетним попыткам взлома. Однако длина ключа в 56 битов при возросшей производительности ЭВМ сделала шифр потенциально уязвимым к перебору ключей, поэтому в 1997 г. был объявлен конкурс на новый алгоритм.

Алгоритм AES

Победитель конкурса был определен в 2000 г. – им стал бельгийский шифр RIJNDAEL, который был переименован в AES (Advanced

Encryption Standard). Он является нетрадиционным блочным шифром, поскольку не использует сеть Фейштеля. Каждый блок входных данных представляется в виде двумерного массива байт: 4 x 4, 4 x 6 или 4 x 8 в зависимости от размера блока, который может варьироваться. В зависимости от размера блока и длины ключа алгоритм содержит от 10 до 14 раундов, в каждом из которых проводится ряд преобразований – либо над независимыми столбцами, либо над независимыми строками, либо над отдельными байтами в таблице.

Среди других современных алгоритмов симметричного шифрования шифры IDEA, Blowfish, RC5, CAST-128.

Российский стандарт цифровой подписи

Отечественный стандарт цифровой подписи (ГОСТ Р 34.10–94) вступил в силу в 1995 г. Алгоритм цифровой подписи, определяемый этим стандартом, концептуально близок американскому алгоритму DSA (Digital Signature Algorithm), который был предложен в 1991 г. Национальным институтом стандартов и технологий США для использования в стандарте цифровой подписи DSS (Digital Signature Standard). Алгоритм DSA является развитием алгоритмов цифровой подписи Эль Гамаля и К. Шнорра.

В российском стандарте цифровой подписи используются следующие параметры: p – большое простое число длиной от 509 до 512 бит либо от 1020 до 1024 бит; q – простой сомножитель числа (p– 1), имеющий длину 254…256 бит; – любое целое число, меньшее (p– 1), причем такое, что qmod p = 1; – некоторое целое число, меньшее q;

= mod p.

Кроме того, этот алгоритм использует однонаправленную хэш-функцию H(·). Соответствующий российский стандарт ГОСТ Р 34.11–94 определяет хэш-функцию, основанную на использовании стандартного симметричного алгоритма

ГОСТ 28147-89.

Первые три параметра p, q, являются открытыми и могут быть общими для всех пользователей компьютерной сети. Число является секретным ключом, а число – открытым ключом.

Чтобы подписать некоторое сообщение М, а затем проверить подпись, выполняются следующие шаги.

1. Абонент А генерирует случайное число r, причем r < q.

2. Абонент А вычисляет значения:

k = (r mod p) mod q;

s = (k + r (H (M))) mod q.

Если (H (M)) mod q = 0, то значение (H (M)) mod q принимают равным единице. Если k = 0, то выбирают другое значение r, и алгоритм начинают снова.

Цифровая подпись представляет собой два числа:

r mod 2256 и s mod 2256.

3. Абонент А отправляет эти числа, а также открытый текст M абоненту Б.

4. Абонент Б проверяет полученную подпись, вычисляя:

v = (H (M)) q– 2 mod q;

z1 = (s x v) mod q;

z2 = ((qk) v) mod q;

u =((z1 x z2) mod p) mod q.

Если u = r, то подпись считается подлинной. Различие между этим алгоритмом и алгоритмом DSA заключается в том, что в DSA

s = (r– 1( x k + (H (M)))) mod q,

что приводит к другому уравнению проверки подлинности цифровой подписи.

В американском стандарте цифровой подписи параметр q имеет длину 160 бит, в отечественном – 256 бит, что обеспечивает более безопасную подпись.

В 2001 г. в России принят еще один стандарт цифровой подписи – ГОСТ Р 34.10-2001, который базируется на математическом аппарате эллиптических кривых, использует хэш-функцию длиной 256 бит и обладает более высокой криптостойкостью, чем предыдущий стандартный алгоритм цифровой подписи ГОСТ Р 34.11–94.

Поделиться с друзьями: