Филипп Циvмерманн

Picture of Phil

Предисловие автора к книге: "Исходный код и содержание PGP"

Издано MIT Press, 1995. ІSBN 0-262-24039-4.
(более не издается)

Эта книга содержит весь исходный код на языке Cи к пакету программного обеспечения, которое называется PGP (Pretty Good Privacy) (Высокая защита конфиденциальности). PGP - это широко используемое в мире программное обеспечение для шифрования электронной почты. Оно использует криптографию с открытым ключом для того, чтобы позволить вам безопасно общаться с людьми, которых вы никогда не встречали, без предварительного обмена ключами через защищенные каналы.

Для чего издавать целую книгу (а она получилась довольно большой), которая содержит в основном скучный исходный код для компьютерной программы? Ну, для этого есть несколько обоснованных причин. Это связано с гражданскими свободами и нуждается в небольших пояснениях, но в общем это довольно таки занимательная история.

Криптография - это на удивление политическая технология. В последние годы она стала такой еще больше из-за дебатов, которые ведутся вокруг ограничительного чипа (Clipper Chip) правительства, законодательства о прослушивании телефонных разговоров ФБР, контроля экспорта криптографического программного обеспечения и баланса сил между правительством и народом. Исторически криптография использовалась только правительствами разных стран для обмена дипломатической и военной информацией. Но с приходом эры информации, вездесущих персональных компьютеров, модемов и факсов ситуация изменилась. С возникновением глобальной экономики, которая все больше зависит от цифровых коммуникаций, обычные люди и компании нуждаются в криптографии, для защиты их повседневного общения. Органы обеспечения правопорядка и разведывательные агентства хотят иметь доступ ко всему нашему общению, для того, чтобы ловить тех, кто нарушит закон, и распознавать любую угрозу Национальной Безопасности. Поборники гражданских свобод хотят держать правительство подальше от нашего конфиденциального общения, чтобы защитить нашу неприкосновенность и сохранить здоровую демократию.

PGP - это бесплатное программное обеспечение. Любой может скачать его через Интернет или с множества электронных досок объявлений. Оно вызвало много дебатов там, где фактически стало мировым стандартом для шифрования электронной почты, несмотря на американское ограничение экспорта. Опубликованный сначала в США, этот пакет распространился благодаря рассеиванию, присущему бесплатным пакетам программного обеспечения, с его привкусом "табу", который обеспечил еще большую его популярность. Странно, но правительство США непреднамеренно внесло свою лепту в распространение PGP, сделав его еще популярнее из-за моего криминально дела. Я нахожусь под криминальным расследованием за распространение PGP за границей, так как правительство инкриминирует мне нарушение экспортных ограничений в США. Моему криминальному делу было уделено много внимания в печати, частично потому, что журналисты осознают, что если американец может быть заключен в тюрьму за опубликованную электронную информацию в США, то и сами журналисты подпадают под риск в завтрашнем мире электронных газет и информационного пространства.

Другая причина такой заинтересованности печати в моем деле - это старание правительства закрыть публичный доступ к сильной криптографии. Администрация Клинтона старается принудить телефонные компании встроить специальное шифрующее устройство в каждый телефон. Они ожидают, что достижение этого заберет много лет. Когда этот "Ограничительный чип", как его называют, будет сделан правительством, они ассоциируют каждый такой чип с уникальным шифровальным ключом и будут держать копии этих ключей в огромной правительственной базе данных с целью прослушивания телефонных разговоров. Однажды ваш телефон тоже будет иметь внутри Большого Брата. Правительство лелеет надежду, что американское общество одобрит эту контролируемую правительством криптографию, и старается искоренить все другие виды шифрования, которое ему неподвластны. Одним из способов искоренения является экспортное ограничение на криптографическое программное обеспечение. Именно это ставит PGP под прожекторы СМИ.

В Государственном Департаменте США есть целый список вещей, которые не могут быть вывезены без надлежащей лицензии. Реестр Вооружения - большей частью оружие, но в него также отнесено и шифрующее программное обеспечение. Шифрующее программное обеспечение не может быть вывезено без лицензии, а эту лицензию довольно тяжело получить, если программное обеспечение использует развитые технологии, которые правительство не может так просто сломать. Такое программное обеспечение, как PGP.

Государственный Департамент разрешает вывозить вещи из Реестра Вооружения, если они разрешены Товарной Юрисдикцией, передавая их к ведению Департамента Коммерции, а не Государственному Департаменту. Товарная Юрисдикция разрешает легально экспортировать вещи из США. Правительству было бы политически сложно запретить экспортировать книгу, которую каждый может найти на полке библиотеки или магазина. Государственный Департамент уже гарантировал Товарную Юрисдикцию для еще одной книги, которая содержит криптографический исходный код, "Прикладная Криптография" Брюса Шнаера. Поэтому мы поместили исходный код PGP в книгу, которую можно сканировать с помощью программного обеспечения для оптического считывания. Мы также подаем заявление на получение Товарной Юрисдикции. Будет очень интересно посмотреть, куда заведет весь этот процесс.

PGP использует самые лучшие алгоритмы, какие только можно было найти в открытой учебной литературе - алгоритмы, которые подлежали наиболее пристальному рассмотрению, и в которые использованы наилучшие принципы разработок современной криптографии. PGP версия 2.6.2 использует RSA для управления ключами и цифровыми подписями, шифр ІDEA для шифрования большого объема информации и MD5 для защищенного одностороннего смешивания для цифровых подписей. И вдобавок она сжимает данные перед шифрованием, используя ZІP алгоритм

PGP разрабатывался в сложных условиях, без финансирования, в гонках со временем в 1991, когда надо было успеть до того, как публиковать программное обеспечение этого типа станет нелегально. Парламентский Законопроект 266, законопроект против правонарушений 1991 года, содержал в себе меру, которая спрогнозировала развитие событий. Это была резолюция, которая требовала от тех, кто внедряет системы коммуникаций, предоставлять Правительству способ получить текстовое содержания всего трафика. Резолюция потерпевшая поражение из-за протеста групп защитников гражданских свобод незадолго после того, как впервые была опубликована PGP. PGP была опубликована как бесплатное программное обеспечение с расчетом на то, что правительство не сможет запретить эту технологию позднее.

В компьютерном отделе вашего книжного магазина есть другие книжки с образцами исходного кода разнообразных алгоритмов. Эти книги учат правильному стилю программирования, предоставляя хорошие образцы кода. Эта книга большей частью не похожая на них. Хотя она и имеет некоторые инструктивные образцы относительно того, как использовать некоторые алгоритмы, вы заметите, что этот исходный код - не наилучший образец чистой модульности. Код изложен таким, которым он на самом деле есть. Требовательные условия разработки PGP вели к поиску удобных подходов к ее внедрению, иногда за счет элегантности. Во время того, когда много других разработчиков программного обеспечения делали свой взнос в PGP после публикации версии 1.0 в 1991, они становились последователями неудачного ядра, на которое наращивали еще больше кода, изменяли код под давлением рационализма. Очень мало от моего первоначального кода осталось ныне в PGP. Больше всего все еще остается в библиотеке целых чисел многократно увеличенной точности, которую я впервые написал во второй половине 1986. К сожалению, лучшие экземпляры кода с моей 20-годовой практики программиста не возможно было использовать как основу исходного кода, к которому со временем будут обращаться столько других программистов.

Несмотря на неэлегантность кода, качество криптографии и управление ключами очень высокое. Достаточно высокое, чтобы оставить по себе такой след, которого не удавалось оставить никакому другому криптографическому программному обеспечению, перекинув вверх ногами некоторые элементы американского правительства и правительств других государств.

PGP не была бы сегодня тем, чем она есть, если бы не добровольные усилия многих талантливых программистов со всего мира. Питер Гутман и Полонянка Ланкестер вложили очень много сил в разработку PGP*. Жан-Луи Жиалли внес свою лепту в сжатие ZІP. Многие другие добавляли свои штрихи к коду и их имена фигурируют в комментариях к исходному коду. Другие люди помогали усилиями, не связанными с программированием, в жизнеспособности проекта PGP. В них отношу команду моих судебных защитников: Фила Дюбуа, Эбена Моглена, Кена Басса и Курта Карноу. Остальные юристы, которые предоставляли полезные советы, - это Том Нолан и Чак Марсон.

Я пишу часть этого предисловия в воздухе между Бухарестом и Будапештом во время турне с докладом о неприкосновенности в информационном пространстве. В Бухаресте я увидел ужасную систему законов, разработанную людьми, которые грезили уверенностью и не доверяли тем, кто имел персональную свободу. Они были бы в восторге от ограничительного чипа. Теперь тамошние люди радуются тому, что имеют свободу. Они понимают мою обеспокоенность действиями правительства. У них есть свобода и они не понимают, почему у американцев ее нет.

В этой книге тысячи строк исходного кода, которые выглядят довольно скучно. Так же выглядит простой кусок бетона вплоть до тех пор, пока он не станет кирпичиком из Берлинской Стены, которым люди украшают свои камины как символом свободы, что открылась для миллионов людей. Возможно, спустя какое-то время, эта книга поможет открыть американские границы свободному потоку информации.

Филипп Р. Циммерманн
Болдер, Колорадо
Ноябрь 1994


* Другой доброволец, который работал над разработкой программного обеспечения для PGP 2.0 - Хел Финни, но я не упоминал о нем в этом предисловии в 1994, так как это было опасно, ведь Хел жил в США, очень близко от американских обвинителей.



Translation Ukrainian Hi-tech Іnitiative, Marina Kobenko, 2006