колледжа. А иногда он может даже не рассказать, как работает его
схема, но будет уверять меня, что это прекрасная схема и я должен
ему верить. Несомненно, он полагает, что его алгоритм
великолепен, но как я могу верить этому, не видя самого
алгоритма?
Со всей честностью я должен подчеркнуть, что в большинстве
случаев такие программы выпускаются компаниями, которые не
специализируются в криптографической технологии.
Существует компания, которая называется AccessData ( 87 East
600 South, Orem, Utah 84058, телефон 1-800-658-5199), которая
продает за 185 долларов пакет, который взламывает встроенные
схемы шифрования, используемые WordPerfect, Lotus 1-2-3, MS
Excel, Symphony, Quattro Pro, Paradox и MS Word 2.0. Она не
просто разгадывает пароли, она осуществляет настоящий
криптоанализ. Некоторые люди покупают ее, если они забыли пароли
своих файлов. Административные власти также покупают ее, таким
образом они могут читать захваченные файлы. Я разговаривал с
автором, Eric Thompson, он сказал что его программа вскрывает
защиту за долю секунды, но он добавил в программу несколько
циклов задержки, чтобы замедлить этот процесс, дабы это не
казалось слишком простым для заказчика. Он также сообщил нам, что
функция шифрования с паролем архиватора PKZIP может быть легко
взломана, и его официальные заказчики уже обладают таким
средством, которое им поставил другой продавец.
Иными словами, криптография подобна фармакологии. Ее
достоверность имеет решающее значение. Плохой пеннициллин
выглядит также, как и хороший пеннициллин. Вы можете сообщить о
том, что ваш электронный бланк ненадежен, но как вы сообщите о
том, что ваш криптографический пакет слаб? Текст, который был
зашифрован с помощью слабого алгоритма шифрования выглядит столь
же хорошо, как и текст, зашифрованный мощным алгоритмом. Такой
текст похож на "змеиное масло" или лечение шарлатана. Однако, в
отличие от продавцов патентованных лекарств, изготовители этого
программного обеспечения обычно даже не подозревают, что их
продукция - настоящее змеиное масло. Они могут быть хорошими
специалистами по разработке программ, но они обычно даже не
читали никакой академической литературы по криптографии. И они
считают, что могут написать хорошее криптографическое программное
обеспечение. А почему бы и нет? Несмотря ни на что, интуиция
подсказывает, что это сделать достаточно легко. И создается
впечатление, что их программное обеспечение работает хорошо.
Если кто-то считает, что он изобрел невзламываемую систему
шифрования, тот либо невероятно редкий гений, либо наивен и
неопытен.
Я помню диалог с Brian Snow, высокопоставленным специалистом
по криптографии из NSA. Он сказал, что никогда не будет доверять
алгоритму шифрования, разработанному человеком, который это не
"заслужит", потратив предварительно достаточно времени на
раскрытие кодов. В этом весьма много смысла. Я не встречал в мире
коммерческой криптографии практически ни одного человека,
которого можно было бы охарактеризовать таким образом. "Да", -
сказал он с уверенной улыбкой, - "и это делает нашу работу в NSA
значительно проще". Неприятная мысль. Я тоже не занимался этим.
У правительства, по слухам, тоже есть "змеиное масло". После
Второй Мировой войны Соединенные Штаты продали шифровальные
машины Enigma правительствам третьих стран. Но при этом они не
сообщили им, что союзники за время войны расшифровали код машины
Enigma, факт, который держался в секрете много лет. Даже сегодня
многие системы Unix во всем мире используют шифр Enigma для
шифрования файлов, частично оттого, что правительство создало все
препятствия для использования лучших алгоритмов. Оно даже
пыталось предотвратить первоначальную публикацию алгоритма RSA в
1977 году. И теперь направляет все коммерческие усилия на
разработку эффективных секретных телефонов.
Основная работа правительственного NSA - это собирать
информацию, преимущественно путем скрытого подключения к частным
коммуникационным линиям (см. книгу James Bamford "The Puzzle
Palace"). NSA обладает значительным мастерством и ресурсами для
раскрытия кодов. Если люди не обладают мощной криптографической
системой для защиты своей информации, это делает задачу NSA
значительно проще. Кроме того, у NSA есть обязанность одобрять и
рекомендовать алгоритмы шифрования. Необходимо отметить это
интересное противоречие, подобное назначению лисы для охраны
курятника. NSA протолкнуло стандартный алгоритм шифрования,
разработанный им же, и оно не собирается никому сообщать, как он
работает, так как он является секретным. Однако, оно требует,
чтобы все этому алгоритму доверяли и использовали его. Но любой
специалист в области криптографии может вам подтвердить, что
удачно разработанный алгоритм шифрования не должен быть
засекречен, дабы оставаться надежным. В защите должны нуждаться
только ключи. Как мы можем знать, насколько надежен алгоритм
шифрования NSA? Для NSA совсем не сложно разработать алгоритм,
который сможет взломать только оно, если этот алгоритм больше
никто не увидит. Не является ли это преднамеренной продажей
"змеиного масла"?
Я не могу быть полностью уверен в уроне надежности PGP,
поскольку однажды я уже разрабатывал прекрасный алгоритм - в
колледже. Если я снова буду так же уверен, это будет плохим
сигналом. Но я в достаточной степени уверен, что PGP не содержит
грубых ошибок. Криптографические алгоритмы разрабатывались людьми
с высоким уровнем криптографического образования. Исходные тексты
доступны для облегчения изучения PGP и с целью помочь рассеять
опасения некоторых пользователей. Разработке предшествовали
достаточно глубокие исследования и годы работы. К тому же я не
работаю на NSA. Я надеюсь, что не требуется слишком большого
"скачка в доверие" для того, чтобы доверять надежности PGP.
Краткий справочник команд PGP
=============================
Здесь приведена краткая сводка команд PGP.
Зашифровать текстовый файл с открытым ключом получателя:
pgp -e textfile her_userid
Для подписания текстового файла вашим секретным ключом:
pgp -s textfile [-u your_userid]
Для подписи текстового файла вашим секретным ключом и, затем,
зашифровки его с открытым ключом получателя:
pgp -es textfile her_userid [-u your_userid]
Для шифрования текстового файла стандартным криптографическим
методом:
pgp -c textfile
Для расшифровки зашифрованного файла или для проверки
целостности подписи подписанного файла:
pgp ciphertextfile [-o plaintextfile]
Для шифрования сообщения, предназначенного для нескольких
адресатов:
pgp -e textfile userid1 userid2 userid3
--- Команды для работы с ключами:
Сгенерировать вашу собственную уникальную пару
секретный/открытый ключи:
pgp -kg
Для того, чтобы добавить содержимое файла открытого или
секретного ключа в ваш каталог открытых или секретных ключей:
pgp -ka keyfile [keyring]
Для извлечения (копирования) ключа из каталога ключей:
pgp -kx userid keyfile [keyring]
или: pgp -kxa userid keyfile [keyring]
Для просмотра оглавления каталога открытых ключей:
pgp -kv[v] [userid] [keyring]
Для просмотра "отпечатка пальца" открытого ключа, чтобы помочь
вам удостовериться в его истинности по телефону в разговоре
с владельцем ключа:
pgp -kvc [userid] [keyring]
Для просмотра оглавления и проверки удостоверяющих подписей в
вашем каталоге открытых ключей:
pgp -kc [userid] [keyring]
Для редактирования идентификатора пользователя или фразы
пароля для вашего секретного ключа:
pgp -ke userid [keyring]
Для редактирования параметров доверия для открытого ключа:
pgp -ke userid [keyring]
Удалить ключ или только идентификатор пользователя из вашего
каталога открытых ключей:
pgp -kr userid [keyring]
Для подписи и удостоверения чьего-либо открытого ключа в вашем
каталоге открытых ключей:
pgp -ks her_userid [-u your_userid] [keyring]
Для удаления выбранных подписей из идентификатора пользователя
каталога ключей:
pgp -krs userid [keyring]
Для постоянной отмены вашего собственного ключа с помощью
выпуска удостоверения отмены:
pgp -kd your_userid
Для отмены или восстановления открытого ключа в вашем каталоге
открытых ключей:
pgp -kd userid
--- Сложные команды:
Для дешифровки сообщения, оставляя подпись на нем нетронутой:
pgp -d ciphertextfile
Для создания удостоверяющей подписи отдельно от документа:
pgp -sb textfile [-u your_userid]
Для отделения удостоверяющей подписи от подписанного сообщения:
pgp -b ciphertextfile
--- Опции команд, которые могут использоваться в комбинации с
другими опциями (иногда даже образуя интересные слова!):
Для получения зашифрованного файла в формате ASCII radix-64
добавьте опцию -a при шифровании или подписании сообщения или
извлечения ключа:
pgp -sea textfile her_userid
или: pgp -kxa userid keyfile [keyring]
Для полного удаления оригинального текстового файла после
создания зашифрованного файла просто добавьте опцию -w (wipe)
при шифровании или подписании сообщения:
pgp -sew her_userid message.txt
Для указания того, что что текстовый файл содержит текст
ASCII, а не двоичный, и должен быть преобразован в локальный
текстовый файл получателя, добавьте опцию -t (text) к другим:
pgp -seat message.txt her_userid
Для просмотра выводимого расшифрованного текста на вашем экране
(подобно команде "more" в Unix), без записи его в файл,
используют опцию -m (more) при расшифровке:
pgp -m ciphertextfile
Для задания возможности просмотра распакованного текста ТОЛЬКО
на экране без возможности записи на диск, добавьте опцию -m:
pgp -steam her_userid message.txt
Для восстановления оригинального имени файла в процессе
дешифровки, добавьте опцию -p:
pgp -p ciphertextfile
Для использования режима фильтра (как в Unix), читая из
стандартного потока ввода и записывая в стандартный поток
вывода, добавим опцию -f:
pgp -feast her_userid outputfile
Юридические вопросы
===================
Для получения детальной информации относительно
лицензирования, дистрибуции, авторских прав, патентов, торговых
марок, ограничения ответственности и контроля над экспортом PGP,
см. раздел "Юридические вопросы" в "Руководстве пользователя PGP,
том II: Специальные разделы".
PGP использует алгоритм с открытым ключом, заявленный патентом
США #4,405,829. Исключительные права на этот патент принадлежат
калифорнийской фирме Public Key Partners, и вы можете нарушить ее
права, если будете использовать PGP в США. Это подробно
объясняется в части II Руководства.
PGP - это "партизански" свободно распространяемое программное
обеспечение (freeware), и я не возражаю против его широкого
распространения. Только не просите меня выслать вам копию. Вместо
этого, вы сможете получить ее самостоятельно с большинства BBS и
FTP-станций Internet.
Благодарности
=============
Я хотел бы поблагодарить следующих людей за их содействие
созданию Pretty Good Privacy. Хотя я и был автором PGP версии
1.0, основные части последующих версий были выполнены усилиями
многих людей из разных стран под моим общим руководством.