3. Результат сложения разбивается на восемь шестибитовых блоков и каждый из них преобразуется с помощью соответствующей S -матрицы.
4. Получившийся в итоге 32-битный блок подвергается жестко заданной в алгоритме перестановке.
Долгое время DES являлся федеральным стандартом шифрования США. Этот алгоритм показывает хороший лавинный эффект , т. е. изменение одного бита открытого текста или ключа приводит к изменению многих битов зашифрованного текста. DES успешно противостоял многолетним попыткам взлома. Однако длина ключа в 56 битов при возросшей производительности ЭВМ сделала шифр потенциально уязвимым к перебору ключей, поэтому в 1997 г. был объявлен конкурс на новый алгоритм.
Алгоритм AES
Победитель конкурса был определен в 2000 г. – им стал бельгийский шифр RIJNDAEL, который был переименован в AES (Advanced
Encryption Standard). Он является нетрадиционным блочным шифром, поскольку не использует сеть Фейштеля. Каждый блок входных данных представляется в виде двумерного массива байт: 4 × 4, 4 × 6 или 4 × 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), причем такое, что α q mod 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 2 256и s mod 2 256.
3. Абонент А отправляет эти числа, а также открытый текст M абоненту Б.
4. Абонент Б проверяет полученную подпись, вычисляя:
v = ( H ( M )) q − 2 mod q ;
z 1= ( s × v ) mod q ;
z 2= (( q − k ) v ) mod q ;
u =((α z 1× β z 2) mod p ) mod q .
Если u = r , то подпись считается подлинной. Различие между этим алгоритмом и алгоритмом DSA заключается в том, что в DSA
s = ( r − 1(δ × k + ( H ( M )))) mod q ,
что приводит к другому уравнению проверки подлинности цифровой подписи.
В американском стандарте цифровой подписи параметр q имеет длину 160 бит, в отечественном – 256 бит, что обеспечивает более безопасную подпись.
В 2001 г. в России принят еще один стандарт цифровой подписи – ГОСТ Р 34.10-2001, который базируется на математическом аппарате эллиптических кривых, использует хэш-функцию длиной 256 бит и обладает более высокой криптостойкостью, чем предыдущий стандартный алгоритм цифровой подписи ГОСТ Р 34.11–94.
В США с 2001 г. начал действовать новый стандарт на симметричные блочные криптосистемы – AES (Advanced Encryption Standard), заменивший DES. Алгоритм допускает размеры ключей в 128, 192 и 256 бит.
Читать дальше
Конец ознакомительного отрывка
Купить книгу