Шифры используемые в GnuPG
В данном разделе содержатся краткие сведения об используемых в 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 |