Стандарты и алгоритмы шифрования
- Международный стандарт: X9.63-1998. Алгоритмы: ECKAS-DH, ECKAS-MQV.
- Международный стандарт: X9.42-1998. Алгоритмы: KAS-DH, KAS-MQV.
- Международный стандарт. Алгоритмы: ISO/IEC 11770-3:1996.
|
|
Выработка общего секрета |
|
|
Схема обмена ключами Диффи — Хеллмана была изобретёна в 1976 году американскими учеными В. Диффи и М. Хеллманом. Прообразом представленного алгоритма послужила работа Р. Меркле, в которой автор представил новаторскую идею о системе распространения публичных ключей. Алгоритм Диффи-Хеллмана стал первым практическим методом для получения общего секретного ключа при общении через незащищенный канал связи. В качестве трудноразрешимой задачи была использована задача нахождения дискретного логарифма. Предположим, что обоим абонентам известны некоторые два числа g и p. Данные числа известны и всем остальным заинтересованным лицам. Для того, чтобы создать неизвестный более никому секретный ключ, оба Корреспондента генерируют большие случайные числа: Корреспондент 1 — число a, Корреспондент 2 — число b. Затем Корреспондент 1 вычисляет значение A = ga mod p и пересылает его второму, а второй вычисляет B = gb (mod p) и передаёт первому. Злоумышленник получает оба этих значения, но модифицировать их (вмешаться в процесс передачи) не может. На втором этапе Корреспондент 1 на основе имеющегося у него a и полученного по сети B вычисляет значение Ba (mod p) = gab (mod p), а Корреспондент 2 на основе имеющегося у него b и полученного по сети A вычисляет значение Ab (mod p) = gab (mod p). Нетрудно видеть, у обоих Корреспондентов получилось одно и то же число: K = gab (mod p). Его они и могут использовать в качестве секретного ключа, поскольку здесь злоумышленник встретится с практически неразрешимой (за разумное время) проблемой вычисления gab (mod p) по перехваченным ga (mod p) и gb (mod p), если числа g, p, a, b выбраны достаточно большими.
При работе алгоритма, каждый Корреспондент выполняет следующие действия:
A = ga (mod p) / B=gb (mod p);
K = Ba (mod p) / K = Ab (mod p) К получается равным с обоих сторон, поскольку: Ba (mod p) = (gb (mod p))a (mod p) = gab (mod p) = (ga (mod p))b (mod p) = Ab (mod p). В практических реализациях, для a и b используются числа порядка 10100 и p порядка 10300. Число g не должно быть большим и обычно имеет значения 2 или 5. Криптографическая стойкость алгоритма Диффи - Хеллмана (то есть сложность вычисления K=gab (mod p) по известным p, g, A=ga (mod p) и B=gb (mod p), основана на предполагаемой сложности проблемы дискретного логарифмирования. Алгоритм применим в случае, если необходимо провести конфиденциальную переписку, при которой:
Необходимо еще раз отметить, что алгоритм Диффи - Хеллмана работает только на линиях связи, надёжно защищённых от модификации. Если бы он был применим на любых открытых каналах, то давно снял бы проблему распространения ключей и, возможно, заменил собой всю асимметричную криптографию. Однако, в тех случаях, когда в канале возможна модификация данных, появляется очевидная возможность вклинивания в процесс генерации ключей «злоумышленника-посредника» по той же самой схеме, что и для асимметричной криптографии. |
||



