Ключ (криптография)
- 1 year ago
- 0
- 0
Ключ — секретная информация , используемая криптографическим алгоритмом при зашифровании /расшифровании сообщений, постановке и проверке цифровой подписи , вычислении кодов аутентичности ( MAC ). При использовании одного и того же алгоритма результат шифрования зависит от ключа. Для современных алгоритмов сильной криптографии утрата ключа приводит к практической невозможности расшифровать информацию.
Согласно принципу Керхгоффса , надёжность криптографической системы должна определяться сокрытием секретных ключей, но не сокрытием используемых алгоритмов или их особенностей.
Количество информации в ключе, как правило, измеряется в битах .
Для современных симметричных алгоритмов ( AES , CAST5 , IDEA , Blowfish , Twofish ) основной характеристикой криптостойкости является длина ключа. Шифрование с ключами длиной 128 бит и выше считается сильным , так как для расшифровки информации без ключа требуются годы работы мощных суперкомпьютеров. Для асимметричных алгоритмов, основанных на проблемах теории чисел (проблема факторизации — RSA , проблема дискретного логарифма — Elgamal ) в силу их особенностей минимальная надёжная длина ключа в настоящее время — 1024 бит.
Для асимметричных алгоритмов , основанных на использовании теории эллиптических кривых ( ECDSA , ГОСТ Р 34.10-2001 , ДСТУ 4145-2002 ), минимальной надёжной длиной ключа считается 163 бит, но рекомендуются длины от 191 бит и выше.
Криптографические ключи различаются согласно алгоритмам, в которых они используются.
Главное свойство ключевой пары: по секретному ключу легко вычисляется открытый ключ, но по известному открытому ключу практически невозможно вычислить секретный.
В алгоритмах ЭЦП для подписи используется секретный ключ, а для проверки используется открытый ключ. Таким образом, любой может проверить, действительно ли данный пользователь поставил данную подпись. Тем самым асимметричные алгоритмы обеспечивают не только целостность информации, но и её аутентичность. При шифровании же наоборот, для шифрования сообщения используется открытый ключ, а для расшифровывания — секретный. Таким образом, расшифровать сообщение может только адресат и больше никто (включая отправителя).
Использование асимметричных алгоритмов снимает проблему распространения ключей пользователей в системе, но ставит новые проблемы: достоверность полученных ключей. Эти проблемы более-менее успешно решаются в рамках инфраструктуры открытых ключей (PKI).