Книга: Введение в криптографию
Симметричные алгоритмы PGP
PGP располагает набором различных алгоритмов с тайным ключом, шифрующих само сообщение. Под алгоритмами с тайным ключом мы подразумеваем симметричные блочные шифры, использующие один и тот же ключ как для зашифрования, так и для расшифрования. Симметричные блочные шифры, предлагаемые PGP, это CAST, Triple-DES, IDEA, Twofish, а такжеAES. Все эти алгоритмы не были написаны "на коленке" — это результаты серьёзных научных исследований криптологических групп с выдающейся репутацией.
Для интересующихся криптографией мы можем рассмотреть эти алгоритмы немного более детально. CAST, Triple-DES и IDEA оперируют с 64-битовыми блоками данных. CAST и IDEA имеют ключи длиной 128 бит, Triple-DES использует 168-битовый ключ. Как и Data Encryption Standart (DES), эти алгоритмы могут работать в режимах гаммирования с обратной связью по шифртексту (cipher feedback, CFB) и последовательного сцепления блоков шифртекста (cipher block chaining, CBC). PGP использует их в 64-битовом режиме CFB.
Я добавил в PGP алгоритм CAST по ряду причин: он подаёт надежды как стойкий блочный шифр со 128-битовым ключом, он очень быстр, и он бесплатный. Его название происходит от инициалов разработчиков, Карлайсла Адамса и Стаффорда Тавареса[9], из Northern Telecom (Nortel). Nortel запатентовал CAST, но дал письменное обязательство оставить его доступным для каждого без выплат патентных гонораров. CAST представляется очень удачным шифром, спроектированным людьми с хорошей репутацией в своей профессиональной сфере. Дизайн основан на сугубо формальном подходе с рядом формально доказуемых положений; всё это даёт веские основания заключить, что для взлома его 128-битового ключа потребуется лобовая атака. CAST не имеет пространства слабых и полуслабых ключей. Есть серьёзные аргументы в пользу того, что CAST совершенно неподвержен линейному и дифференциальному криптоанализу, двум мощнейшим формам криптоанализа, описанным в открытой литературе, обе из которых оказались эффективны при взломе DES. Формальная DES-подобная архитектура CAST и хорошая репутация его авторов привлекли к алгоритму внимание и попытки криптоаналитических атак со стороны всего научного сообщества, которые он выстоял достойно. У меня появляется почти то же чувство уверенности в CAST, какое было несколько лет назад от IDEA, шифра, который я избрал для ранних версий PGP. На то время IDEA был слишком молод, чтобы иметь серьёзное доверие, но и поныне он демонстрирует себя очень хорошо.
Блочный шифр IDEA (International Data Encryption Algorithm) основан на концепции"смешения операций из различных алгебраических групп". Он был разработан в ETH, Цюрих, Джеймсом Мэсси и Суэджа Лай, и опубликован в 1990 г. В первых публикациях алгоритм назывался IPES (Improved Proposed Encryption Standart), но позднее его переименовали в IDEA. IDEA гораздо более стоек против атак, нежели ранние шифры FEAL, REDOC–II, LOKI, Khufu и Khafre. Также, IDEA оказался гораздо устойчивей DES к очень удачной дифференциальной криптоатаке Бихама и Шамира, равно как и к линейному криптоанализу. Уверенность в IDEA растёт с каждым годом. К сожалению, самым большим препятствием к применению IDEA как стандарта шифрования стал тот факт, что держатель патента на его дизайн — AscomSystec — не предоставляет его для свободного применения без выплат роялти, как в случаях с DES и CAST.
Также, в числе прочих, в арсенал блочных шифров PGP включён и трёхключевой Triple-DES. DES был изобретён в IBM в середине 70-х. Хотя он и имеет эффективный дизайн, его 56-битовый ключ слишком мал по сегодняшним меркам. Triple-DES же крайне надёжен; за многие годы он был хорошо изучен, так что может быть это более удачный выбор в сравнении с относительно молодыми CAST и IDEA. Triple-DES — это DES, применяемый трижды на одном блоке данных, используя три разных ключа, за исключением того, что вторая операция проходит в обратном порядке в режиме расшифрования. Несмотря на то, что Triple-DES гораздо медленней, чем CAST или IDEA, скорость обычно не играет критической роли в email-приложениях. Хотя Triple-DES имеет длину ключа в 168 бит, эффективная стойкость составляет по меньшей мере 112 бит против взломщика с невероятно огромным вычислительным потенциалом, используемым в атаке. В соответствии с расчётами, представленными Майклом Винером на Crypto96, любые хотя бы удалённо правдоподобные ресурсы для хранения промежуточных вычислений, доступные взломщику, позволят провести атаку, требующую практически столько же времени/средств, сколько понадобится для лобового взлома 129-битового ключа. Применение Triple-DES не ограничено никакими патентами.
Начав с версии PGP 7.0, мы добавили алгоритм Брюса Шнайера Twofish. Twofish стал одним из пяти финалистов в проекте NIST "Улучшенный стандарт шифрования" (AES). AES представляет собой новую архитектуру блочного шифра, работающего на 128-битовых блоках, с размерами ключа в 128, 192 или 256 бит. Пятнадцать криптографических групп со всего света подали свои разработки, когда в 1996 году NIST объявил о начале конкурса, из которых в 1998 выбрал пять.
Пятью финалистами стали Twofish, Serpent, Rijndael, RC6 и MARS. Все пять прошли через серьёзнейшее криптоаналитическое испытание лучшими криптографами мира, многие из которых представляли на AES собственные работы, соревновавшиеся с другими. NIST из этих пяти превосходных алгоритмов в качестве победителя избрал Rijndael ("рэйн долл"). Rijndael — это блочный шифр, разработанный Джоан Даймен и Винсентом Рижменом. Rijndael был включён в PGP, начиная с версии 7.1. За более подробной информацией об AES см. http://www.nist.gov/aes.
Открытые ключи, сгенерированные в PGP 5.0 и выше, несут в себе сведения о том, какие блочные шифры распознаются программой получателя с тем, чтобы программа отправителя знала, какие алгоритмы можно применять для зашифрования. Открытые ключи типа Diffie-Hellman/DSS поддерживают CAST, IDEA, AES (Rijndael), Triple-DES и Twofish в качестве блочных шифров с AES, установленным по умолчанию (в версиях 8.0 и выше). С целью обратной совместимости, ключи RSA не обладают такой возможностью. PGP ограничен алгоритмом IDEA для шифрования сообщений ключами RSA, поскольку старые версии PGP поддерживают только RSA и IDEA[10].
- Алгоритмы хэширования
- Совет 43. Используйте алгоритмы вместо циклов
- Фундаментальные алгоритмы и структуры данных в Delphi
- PGP: Кодирование и шифрование информации с открытым ключом.
- PGP Enterprise Security 3.0
- Самые медленные алгоритмы сортировки
- Почтовые серверы открытых ключей PGP.
- Алгоритмы
- Как PGP работает.
- 5. Лекция: Численные алгоритмы. Матричные вычисления.
- Глава 6. Рандомизированные алгоритмы.
- Глава 2. Фил Циммерман о PGP