Шрифт:
Кроме того, этот алгоритм использует однонаправленную хэш-функцию 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 = ((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 бит.
Управление криптографическими ключами
Любая криптографическая система основана на использовании криптографических ключей. Под ключевой информацией понимают совокупность всех действующих в автоматизированной системе обработки информации ключей. Если не обеспечено достаточно надежное управление ключевой информацией, то, завладев ею, злоумышленник получает неограниченный доступ ко всей информации.
Управление ключами – информационный процесс, сопровождающий жизненный цикл ключей в криптосистеме и включающий реализацию следующих основных функций:
• генерация ключей;
• хранение ключей;
• распределение ключей;
• уничтожение ключей.
Безопасность любого криптографического алгоритма определяется используемым криптографическим ключом. Надежные криптографические ключи должны иметь достаточную длину и случайные значения битов.
В таблице 7 приведены длины ключей симметричной и асимметричной криптосистем, которые обеспечивают одинаковую стойкость к атаке полного перебора.
Для получения ключей используются аппаратные и программные средства генерации случайных значений ключей. Как правило, применяют датчики псевдослучайных чисел. Идеальными генераторами являются устройства на основе «натуральных» (физических) случайных процессов, например на основе белого радиошума.
Таблица 7
Длины ключей для симметричных и асимметричных криптосистем при одинаковой их криптостойкости