Максим Левин - PGP: Кодирование и шифрование информации с открытым ключом.
pgp –s textfile [-u your_userid]
Обратите внимание, что скобки [ ] просто обозначают необязательное поле, не вводите сами скобки.
В результате выполнения этой команды получится подписанный файл textfile.pgp. Типичный пример:
pgp –s letter.txt –u Bob
По этой команде PGP будет искать в файле каталога секретных ключей "secring.pgp" сертификаты секретного ключа, в которых содержится строка "Bob" в поле идентификатора пользователя. Поиск ведется без учета регистра. Если соответствующий секретный ключ будет найден, он будет использован для подписания текстового файла "letter.txt", в результате будет получен подписанный файл "letter.pgp".
Если вы не указываете поле идентификатора пользователя, то в качестве ключа по умолчанию будет использован первый секретный ключ из каталога секретных ключей.
Подписание и шифрование.
Для подписания текстового файла вашим секретным ключом и последующей его зашифровки открытым ключом адресата, наберите:
pgp –es textfile her_userid [-u your_userid]
Обратите внимание, что скобки [ ] просто обозначают необязательное поле, не вводите сами скобки.
В результате выполнения данного примера будет получен "вложенный" зашифрованный файл textfile.pgp. Ваш секретный ключ для создания подписи автоматически ищется в вашем каталоге секретных ключей по your_userid. Открытый ключ адресата для шифрования автоматически ищется в вашем каталоге открытых ключей по her_userid. Если вы опускаете этот параметр в командной строке, PGP запросит его у вас.
Если вы опускаете второй параметр, то для подписания по умолчанию будет использован первый ключ из вашего каталога секретных ключей.
Обратите внимание, что PGP будет пытаться упаковывать текст перед шифрованием.
Если вы хотите послать полученное шифрованное сообщение через каналы электронной почты, преобразуйте его в печатаемый ASCII-формат Radix-64 с помощью добавления опции -а, как описано ниже.
Можно определить несколько адресатов, задавая в командной строке несколько идентификаторов пользователя.
Использование стандартного шифрования.
Иногда вам необходимо зашифровать файл традиционным способом, с помощью шифрования с одним ключом. Это может быть полезно для зашиты файлов в архиве, которые будут сохраняться, но не будут посылаться кому-нибудь. Так как расшифровывать файл будет тот же самый человек, который и шифровал его, шифрование с открытым ключом действительно в этом случае не является необходимым.
Чтобы зашифровать текстовый файл традиционным способом, наберите:
pgp –c textfile
В этом случае PGP зашифрует текстовый файл и получит выходной файл textfile.pgp без использования метода открытого ключа, каталогов ключей, идентификаторов и т.д. PGP запросит у вас фразу пароля для шифрования файла. Эта фраза не должна быть (действительно НЕ ДОЛЖНА БЫТЬ) одинаковой с фразой пароля, которую вы используете для защиты вашего секретного ключа. PGP будет пытаться упаковать текст перед шифрованием.
PGP не будет шифровать один и тот же файл тем же самый способом дважды, даже если вы используете ту же самую фразу пароля.
Дешифровка и проверка подписей.
Для дешифровки зашифрованного файла или проверки целостности подписи подписанного файла используется команда:
pgp ciphertextfile [-o plaintextfile]
Обратите внимание, что скобки [ ] просто обозначают необязательное поле, не вводите сами скобки.
По умолчанию для шифрованного файла принимается расширение ".pgp". Необязательное имя выходного текстового файла определяет, где размещать обработанный текстовый файл. Если никакое имя не задается, то используется имя шифрованного файла без расширения. Если подпись находится внутри шифрованного файла, то производится дешифровка и проверка целостности подписи. На экран будет выведен полный идентификатор пользователя, подписавшего текст.
Обратите внимание, что расшифровка файла ведется полностью автоматически, независимо от того, только подписан ли он, только зашифрован, или и то и другое. PGP использует префикс идентификатора ключа из зашифрованного файла для автоматического поиска соответствующего секретного ключа для расшифровки в каталоге секретных ключей. Если в файле имеется вложенная подпись, PGP будет использовать затем префикс идентификатора из вложенной подписи для автоматического нахождения соответствующего общего ключа в вашем каталоге открытых ключей, чтобы проверить подпись. Если в ваших каталогах ключей уже имеются все верные ключи, то вмешательство пользователя не требуется, за исключением того, что PGP запросит у вас пароль для вашего секретного ключа, если это необходимо. Если файл шифровался традиционным способом без использования общего ключа, PGP определит это и запросит у вас фразу пароля для дешифровки.
Работа с ключами.
Со времен Юлия Цезаря работа с ключами всегда была наиболее трудной частью криптографии. Одной из принципиально выдающихся особенностей PGP является сложная работа с ключами.
Генерация ключа RSA.
Для генерации вашей собственной уникальной пары открытый/секретный ключ заданного размера, наберите:
pgp -kg
PGP покажет вам меню рекомендуемых размеров ключа (простой уровень, коммерческий уровень или военный уровень) и запросит требуемый размер ключа (около тысячи бит). Чем длиннее ключ, тем выше степень секретности, но платить за это придется скоростью.
PGP также запросит идентификатор пользователя, что означает ваше имя. Хорошая мысль — использовать ваше имя как идентификатор пользователя, так как впоследствии меньше риск того, что другой человек использует неверный открытый ключ для шифровки сообщения, адресованного вам. В идентификаторе пользователя допускаются пробелы и знаки пунктуации.
Это поможет вам в том случае, если вы помещаете ваш адрес в электронной почте в <угловые скобки> после вашего имени, например:
Robert M. Smith <[email protected]>
Если вы не имеете адреса электронной почты, используйте ваш номер телефона или любую другую уникальную информацию, которая поможет гарантировать, что ваш идентификатор пользователя уникален.
PGP также запросит "фразу пароля" для зашиты вашего секретного ключа на случай, если он попадет в чужие руки. Никто не сможет использовать ваш файл секретного ключа без этой фразы пароля. Фраза пароля — это обычный пароль, за исключением того, что это может быть целая фраза или предложение с большим количеством слов, пробелов, знаков пунктуации, или любых других символов. Не потеряйте эту фразу пароля, так как нет никакого способа восстановить ее при утрате. Эта фраза пароля будет необходима каждый раз при использовании вашего секретного ключа. Фраза учитывает регистр, и не должна быть слишком короткой или простой настолько, что ее можно было бы предположить. Она никогда не отображается на экране. Не оставляйте ее в записанном виде нигде, где кто-либо может ее увидеть и не храните ее на вашем компьютере. Если вы не хотите использовать фразу пароля (и тогда вы просто дурак!), просто нажмите ENTER в ответ на запрос PGP.
Пара открытый/секретный ключ — это производная от множества действительно случайных чисел, полученных путем измерения интервалов времени между вашими нажатиями клавиш быстрым таймером.
Имейте ввиду, что генерация ключей RSA — ОЧЕНЬ длительный процесс. На это может потребоваться от нескольких секунд для маленького ключа на быстром процессоре, до нескольких минут для большого ключа на старой IBM PC/XT.
Сгенерированная пара ключей будет помещена в ваши каталоги открытых и секретных ключей. Вы можете позже использовать опцию -kx для извлечения (копирования) вашего нового открытого ключа из вашего каталога открытых ключей и помещать его в отдельный файл открытого ключа, который уже будет пригоден для распространения среди ваших друзей. Файл открытого ключа может посылаться вашим друзьям для включения в их каталоги открытых ключей. Конечно, вы храните ваш файл секретного ключа у себя, и вы должны включать его в ваш каталог секретных ключей. Каждый секретный ключ в каталоге защищен своей собственной фразой пароля.
Никогда не передавайте ваш секретный ключ кому-либо другому. По той же причине, не делайте пары ключей для своих друзей. Каждый должен делать их собственноручно. Всегда сохраняйте физический контроль за вашим секретным ключом и не рискуйте "засветить" его, храня на удаленном компьютере, храните его только на вашем персональном компьютере.
Добавление ключа в ваш каталог ключей.
Для добавления содержимого файла открытого или секретного ключа в ваш каталог открытых или секретных ключей наберите (помните, что [скобки] обозначают необязательный параметр):