В данном разделе содержатся краткие сведения об используемых в GnuPG шифрах. При выборе предпочитаемых алгоритмов шифрования следует учитывать, что в других реализациях OpenPGP некоторых из перечисленных шифров может не быть. Стандарт требует, чтобы в любой реализации имелись 3DES, DSA, ElGamal для шифрования и SHA1. Другие шифры могут отсутствовать.
Таблица 2.1. Симметричные шифры
Название | Размер блока, бит | Длина ключа, бит | Описание |
---|---|---|---|
IDEA | 64 | 128 | IDEA (International Data Encryption Algorithm) разработали Джеймс Мэсси (James Massey) и Ксуэджа Лай (Xuejia Lai) в 1991 году. Алгоритм используется в PGP 2.x и необходим для обмена информацией с пользователями PGP 2.x. Алгоритм запатентован и поэтому в основной дистрибутив GnuPG не входит, но может быть подключен в виде модуля расширения. |
3DES | 64 | 168 | 3DES (Triple-DES) шифр заключающийся в троекратном шифровании с помощью алгоритма DES - американского стандарта блочного шифрования до 2002 года. Сравнительно медленный, но зато имеется в любой реализации стандарта OpenPGP (RFC 2440). |
CAST5 | 64 | 128 | CAST5 (CAST-128) - алгоритм описанный в RFC 2144. Обладает высокой скоростью работы. Совместим с большинством реализаций. |
Blowfish | 64 | 128 | Разработан Брюсом Шнайером в 1993 году. |
AES | 128 | 128 | AES (Advanced Encryption Standard). Американский стандарт блочного шифрования (FIPS PUB 197) с 2001 года, разработаный на основе алгоритма Rijndael. |
AES192 | 128 | 192 | |
AES256 | 128 | 256 | |
Twofish | 128 | 256 | Разработан группой специалистов во главе с Брюсом Шнайером в качестве кандидата на AES. |
Таблица 2.2. Алгоритмы с открытым ключом
Название | Описание |
---|---|
RSA | Алгоритм RSA разработан Рональдом Райвестом (Ronald Rivest), Ади Шамиром (Adi Shamir) и Леонардом Адлеманом (Leonard Adleman) в 1978 году. Это первый алгоритм с открытым ключом, получивший широкое распространение. Алгоритм может использоваться как для подписи, так и для шифрования. |
ElGamal | Алгоритм предложил Тахер Эль-Гамаль (Taher ElGamal) в 1985 году. Алгоритм может использоваться и для подписи и для шифрования, но в реализациях алгоритма для подписей были обнаружены уязвимости и теперь алгоритм используется в GnuPG только для шифрования. ElGamal для шифрования имеется в любой реализации OpenPGP. |
DSA | Алгоритм описанный в стандарте цифровой подписи США (Digital Signature Standard (DSS), FIPS PUB 186-2). Обязателен для любой реализации OpenPGP. |
Длина ключа в алгоритмах с открытым ключом выбирается пользователем в зависимости от личных потребностей. Не следует использовать ключи длиной менее 1024 бит. Для DSA это максимально допустимая длина. RSA и ElGamal позволяют использовать ключи большей длины. Не следует, однако, выбирать слишком большую длину ключа, т.к. это приводит к увеличению времени шифрования и генерации/проверки подписей, увеличивает размер подписей. Не следует забывать и о том, что надёжность гибридной схемы не выше, чем у слабейшего из компонентов. Т.е., например, нет смысла использовать ключ длиной 4096 бит с хэш-функцией со значением 160 бит. Рекомендации по выбору размера ключа можно найти на сайте http://www.keylength.com/
Таблица 2.3. Хэш-функции
Название | Длина значения, бит | Описание |
---|---|---|
MD5 | 128 | Хэш-функция разработанная Рональдом Райвестом. Широко распространена. В данной хэш-функции были найдены уязвимости и использовать её не рекомендуется |
SHA1 | 160 | SHA-1 (Secure Hash Algorithm). Определена стандартом США FIPS PUB 180-2. В данной хэш-функции, как и в MD5, найдены уязвимости. Отказаться от использования данной хэш-функции не представляется возможным, т.к. её использование предусмотрено стандартом DSS. Кроме того, данная функция используется в OpenPGP для вычисления отпечатков и идентификаторов ключей. |
RIPEMD160 | 160 | Разработана в рамках проекта RIPE. Используется сравнительно редко |
SHA256 | 256 | Функции определены стандартом FIPS PUB 180-2 в качестве замены SHA1 и имеют большую длину значения. |
SHA384 | 384 | |
SHA512 | 512 |