Безопасность информационных систем. Учебное пособие
Шрифт:
Долгое время DES являлся федеральным стандартом шифрования США. Этот алгоритм показывает хороший лавинный эффект, т. е. изменение одного бита открытого текста или ключа приводит к изменению многих битов зашифрованного текста. DES успешно противостоял многолетним попыткам взлома. Однако длина ключа в 56 битов при возросшей производительности ЭВМ сделала шифр потенциально уязвимым к перебору ключей, поэтому в 1997 г. был объявлен конкурс на новый алгоритм.
Алгоритм AES
Победитель конкурса был определен в 2000 г. – им стал бельгийский шифр RIJNDAEL, который был переименован в AES (Advanced
Encryption Standard).
Среди других современных алгоритмов симметричного шифрования шифры 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,
Цифровая подпись представляет собой два числа:
r mod 2256 и s mod 2256.
3. Абонент А отправляет эти числа, а также открытый текст M абоненту Б.
4. Абонент Б проверяет полученную подпись, вычисляя:
v = (H (M)) q– 2 mod q;
z1 = (s x v) mod q;
z2 = ((q– k) 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.
В США с 2001 г. начал действовать новый стандарт на симметричные блочные криптосистемы – AES (Advanced Encryption Standard), заменивший DES. Алгоритм допускает размеры ключей в 128, 192 и 256 бит.
Управление криптографическими ключами
Любая криптографическая система основана на использовании криптографических ключей. Под ключевой информацией понимают совокупность всех действующих в автоматизированной системе обработки информации ключей. Если не обеспечено достаточно надежное управление ключевой информацией, то, завладев ею, злоумышленник получает неограниченный доступ ко всей информации.