"Если все персональные
компьютеры мира (260 миллионов
штук) заставить работать с
единственным сообщением,
зашифрованным PGP, расшифровка
такого сообщения в среднем
потребует времени, в 12
миллионов раз превышающего
возраст Вселенной". Уильям Кроуэлл, заместитель директора Агентства национальной безопасности США |
PGP (Pretty Good Privacy) - это гибридная шифросистема, в которой для обмена и генерации ключей (под ключом понимается схема шифрования данных, включающая алгоритм преобразования данных и собственно пароль) используются несимметричные алгоритмы RSA (алгоритм, разработанный Ривестом, Шамиром и Элдеманом) или DSS/DH (разработанный Диффи и Хеллманном), то есть то, что называется криптографией с открытыми ключами, в которой используется два взаимодополняющих ключа: закрытый и открытый. Закрытый ключ служит для расшифровки сообщений, наложения электронной подписи и формирования "дайджеста сообщения" (известно еще как электронная печать). Открытый ключ, рассылаемый адресатам для ведения закрытой переписки, служит как для зашифровки сообщения, чтобы прочитать его мог только обладатель секретного ключа, так и для сверки электронной подписи для установления авторства и дайджеста сообщения, для установления неискаженности сообщения. Другими словами, пользуясь открытым ключом, зашифровать сообщение может любой, но прочесть сможет только тот, кому оно адресовано. Причем зашифровывать послание можно нескольким адресатам одновременно, выбрав их из списка доступных публичных ключей. Установление подлинности позволяет выяснить, что сообщение, полученное от какого-либо человека, было послано именно им и дошло без искажений, в том числе и намеренно кем-то внесенных. С PGP не нужно использовать специальные засекреченные каналы связи для рассылки сообщений или передачи ключей. Для зашифровки тела самого сообщения используются симметричные шифры, как то CAST, IDEA или тройной DES.
Первоначально Pretty Good Privacy (PGP) была выпущена Массачусетским технологическим институтом (версия 2.6), фирмой ViaCrypt (версия 4.0), позже фирмой Phil's Pretty Good Software (версия 4.5 и выше), основателем которой является автор этой криптосистемы. Есть версии, разработанные Network Associates. PGP является криптографической системой с высокой степенью защищенности, не требующей специального уровня подготовки для ее пользователей и разработана для систем MS-DOS, Unix, VAX/VMS, Windows 95, NT. Есть реализации для Mac OS. Версии, начиная с 5.0, сделаны под GUI (графический интерфейс пользователя). Первые версии с 1.0 по 2.3 были разработаны только для DOS и Unix. В Интернете прошло несколько сообщений о том, что версия 2.6.2, реализованная в MIT, имеет "черные входы", и применение ее не рекомендовано.
Перечислю основные функции PGP и отличия их в разных версиях:
- PGP перед шифровкой файлов производит сжатие по технологии PKZIP. Это сделано для минимизации размера получаемого файла, что приводит к уменьшению трафика при передаче данных по сетям и для устранения информационной избыточности открытого текста. Сжатие также повышает криптостойкость шифросистемы. Малые сообщения не сжимаются. Кроме того, PGP распознает файлы, сжатые популярными архиваторами, и не пытается вторично их сжимать.
- Для генерации ключей, чтобы обеспечить элемент случайности (salt), PGP требует файл "затравки" со случайной последовательностью цифр. Он создается на основе произвольных движений мыши и нажатия клавиш. Тем самым в компьютер вводится физически случайная величина. В дальнейшем этот файл используется для генерации временных паролей, в него вносятся изменения, связанные с текущей датой и другими случайными величинами.
- В версию PGP 5.0 для генерации пары открытый/закрытый ключ включены алгоритмы DSS/DH (Диффи, Хеллманна в версии ЭльГамаля), которые при той же криптостойкости работают на порядок быстрее RSA. При использовании ключей RSA PGP 5.0 совместима со всеми предшествующими версиями PGP, работающими только с RSA. Если же в работе использован DSS/DH, то электронная подпись не будет распознана более ранними версиями. Открытые ключи содержат информацию, какие из блочных шифров поддерживаются получателем.
- В версиях 5.0 и выше для зашифровки тела сообщения используются три блочных алгоритма с симметричными ключами CAST, IDEA и тройной DES. По умолчанию - CAST. CAST и IDEA работают с 128-битным ключом, тройной DES - с ключом 168 бит. CAST, IDEA и тройной DES поддерживаются при использовании ключей DSS/DH. С более ранними версиями, поддерживающими только RSA, допустимо использование одного IDEA. По мнению автора шифросистемы Циммермана, наиболее стоек тройной DES.
- В PGP версии 5.0 и выше реализация "дайджеста сообщения" использует SHA (160-битный алгоритм хеширования), а в более ранних версиях использовался алгоритм MD5 (128 бит). Хешированием в криптографии называется получение значения, однозначно характеризующего все сообщение в целом. Это используется для того, чтобы было невозможно исказить сообщение, другими словами, поставить "электронную печать". Поддержка технологии электронной подписи позволяет установить авторство сообщения.
- Версии PGP 5.0 и выше имеют поддержку пяти почтовых программ: Eudora Pro, Eudora Light, Microsoft Exchange, Microsoft Outlook и Claris Emailer. Она встраивает отдельный пункт меню с доступом к функциям PGP.
- Предусмотрена работа с буфером (Clipboard) с реализацией всех функций PGP (шифрование, расшифровка, наложение подписи). Это сделано для работы с почтовыми программами, для которых PGP не имеет встроенной поддержки. Эту же возможность можно использовать для отправки сообщений в незащищенных чатах или ICQ, защищая себя и своих собеседников от подмены или перехвата сообщений.
- PGP позволяет экспортировать, импортировать зашифрованные файлы, письма или ключи в формат ASCII Radix-64. На выходе получаются двоичные данные, использующие только печатаемые символы ASCII (первые 128). Это действует как "транспортная оболочка", защищая данные от искажения при передаче их через шлюзы в Internet. В него включен CRC-код для определения ошибок при передаче. Это позволяет минимизировать ошибки при передаче или работать с устаревшими шлюзами, обрабатывающими символы в 7-битной кодировке. Многие сталкивались с нечитаемыми кириллическими сообщениями в E-mail из-за потери 8-го бита. С форматом Radix-64 и PGP эта проблема устраняется.
- В версии 5.0 и выше введена поддержка интернетных серверов ключей. Другими словами, вы можете отослать свой открытый ключ на Web-сервер (список есть в программном пакете) и оттуда другие абоненты смогут взять ключ для переписки. Предлагается редактируемый список серверов ключей.
- В версии, начиная с 5.5, добавлена функция Wipe File, которая удаляет оригинал зашифрованного файла. Версия 6.0 включила также функцию Wipe Free Space, которая чистит все свободное место диска. Это делает невозможным восстановление критичных данных программами типа UnErase, DiskEdit или использование для восстановления более продвинутых технологий, работающих с плавающими ("слабыми") битами.
- В версии 5.5 введена поддержка корпоративного ключа. Это дает возможность администрирования ключей внутри организации, а именно: передачу прав отзыва, создание ключей администратору системы, расшифровку, зашифровку сообщений, наложение и верификацию электронной подписи любого участника подобной системы с помощью единого корпоративного ключа.
- Еще одна возможность добавлена в версии 6.0 - Key Splitting (раскалывание ключа). Секретный ключ разделяется на несколько частей (в виде отдельных файлов) между несколькими участниками. Теперь для того, чтобы совершить операции расшифровки или наложения подписи участникам придется собрать файлы с секретными ключами вместе. Предусмотрена возможность совершать "сбор" расколотого ключа через Интернет. Это напоминает депозитарную ячейку в банке, ключи от которой - у нескольких человек. Открыть ячейку можно, только собравшись всем вместе. Такая возможность может иметь эффективное применение в "корпорациях" деловой или криминальной направленности.
- Стоит упомянуть еще одну функцию, введенную в версии 6.0: Photographic User ID. Это - возможность добавить фото размером 120х144 в формате BMP или JPEG, что позволит хранить изображение обладателя открытого ключа, но увеличивает длину ключа на несколько килобайт.
- Немного горечи: в версии 6.0 убрана поддержка технологии RSA. Пользуясь версией 6.0, невозможно создавать и верифицировать ключи RSA, только DSS/DH. Корректная проверка подписи автором не гарантирована. В версии 5.0 замечена следующая ошибка: программа распознает символ ASCII №231 как ASCII №123. Это искажает данные при шифровании, подписи и ведет к ошибкам при работе с другими версиями PGP.
P.S. PGP не имеет встроенной возможности работы с модемом. Для этого есть отдельное программное обеспечение - PGPfone (Pretty Good Privacy Phone), выпущенное PGP Inc. в 1996 году. PGPfone защищает телефонные разговоры по каналам Интернета и телефонным линиям, используя технологии PGP. Используя Интернет в качестве канала для передачи речевых данных, можно также снизить расходы в сравнении с оплатой обычной междугородней телефонной связи. Для работы PGPfone нужны: модем, поддерживающий скорость передачи, как минимум, 14.4 Kbps по протоколу V.32bis (рекомендовано 28.8 Kbps по протоколу V.34) и компьютер с процессором не ниже 66 MHz 486 (рекомендовано Pentium), со звуковой картой, колонками или наушниками. Операционная система Windows 95 или NT.
PGPfone оцифровывает звук, сжимает по алгоритму GSM и зашифровывает речевой поток, используя алгоритмы: тройной DES, CAST или Blowfish. Для выбора ключа шифрования используются протоколы с открытыми ключами. В PGPfone версии 1.0 для аутентификации обмена ключами используется биометрическая подпись (голос), и не требуется наличия отдельного канала для обмена криптографическими ключами.
Black Prince,
[email protected]
Комментарии
Хотя и не исключена ошибка неверного перевода, всё же:
Текст статьи:
"Если все персональные компьютеры мира (260 миллионов штук) заставить работать с единственным сообщением, зашифрованным PGP, расшифровка такого сообщения в среднем потребует времени, в 12 миллионов раз превышающего возраст Вселенной".
Уильям Кроуэлл, заместитель директора Агентства национальной безопасности США
Мнение:
Возможно и 12 миллионов, но не для расшифровки, а для перебора всех возможных вариантов. Ведь можно угадать даже с первой попытки.
А вообще, эта статья актуальна (в основе) и сейчас, хотя и остаётся проблема с подменой открытого кода :(
Счастливо.
--
Дедушка Вася-КВА