Філіп Ціммерманн

Picture of Phil

Авторська передмова до книги: "Вихідний код та зміст PGP"

Видано MIT Press, 1995. ISBN 0-262-24039-4.
(більше не видається)

Ця книга містить увесь вихідний код на мові програмування С до пакету програмного забезпечення, яке називається PGP (Pretty Good Privacy) (Високий захист приватності). PGP - програмне забезпечення для шифрування електронної пошти, що найбільш широко використовується. по всьому світу. Воно використовує криптографію з відкритим ключем для того, щоб дозволити вам таємно спілкуватися з людьми, яких ви ніколи не зустрічали, без попереднього обміну ключами через захищені канали.

Для чого видавати цілу книгу (а ця вийшла доволі велика), яка містить тільки нудний вихідний код для комп'ютерної програми? Ну, для цього є декілька добрих причин. Це пов'язано із цивільними свободами і потребує трохи пояснень, але взагалі це дуже цікава історя.

Криптографія - це на диво політична технологія. В останні роки вона стала такою ще більше через дебати, що ведуться навколо Обмежувального чіпу уряду, законодавства про прослуховування телефонних розмов ФБР, контролю експорту криптографічного програмного забезпечення та балансу сил між урядом та його народом. Історично, криптографія використовуваласть тільки урядами різних країн для обміну дипломатичною та військовою інформацією. Але з початком віку інформації, всюдисущих персональних комп'ютерів, модемів та факсів, це почало змінюватися. Із виникненням глобальної економіки, яка все більше залежить від цифрових комунікацій, звичайні люди та компанії потребують криптографію, щоб захистити своє повсякденне спілкування. Органи забезпечення правопорядку та розвідувальні агенції хочуть мати доступ до всього нашого спілкування, щоб ловити тих, хто порушує закон, та розпізнавати будь-яку загрозу Національній Безпеці. Поборники цивільних свобод хочуть тримати уряд подалі від нашого приватного спілкування, щоб захистити нашу приватність та зберегти здорову демократію.

PGP - це безкоштовне програмне забезпечення. Будь-хто може звантажити його через Інтернет або з багатьох дошок електиронних об'яв. Воно викликало багато дебатів, так як фактично стало світовим стандартом для шифрування електронної пошти, незважаючи на американське обмеження експорту. Опублікований спочатку у США, цей пакет розповсюдився завдяки дифузії, яка є властивою безкоштовних пакетів програмного забезпечення, з його присмаком "заборони", який надав ще більшої популярності. Дивно, але уряд США ненавмисно зробив свій внесок у розповсюдження PGP, зробивши його ще популярнішим через мою судову справу. Я перебуваю під кримінальним розслідуванням за розповсюдження PGP за кордоном, так як уряд інкримінує мені порушення експортних обмежень США. Моя справа завоювала багато уваги преси, частково тому, що журналісти усвідомлюють, що якщо американець може бути ув'язнений за опубліковану електронну інформацію у США, то й самі журналісти підпадають під ризик у завтрашньому світі електронних газет інформаційного простору.

Інша причина такої зацікавленості преси у моїй справі - це намагання уряду закрити публічний доступ до сильної криптографії. Адміністрація Клінтона намагається примусити телефонні компанії вбудувати спеціальний шифруючий пристрій у кожний телефон. Вони очікують, що досягнення цього забере багато років. Коли цей "Обмежувальний чіп", як його називають, буде зроблений урядом, вони асоціюють кожний такий чіп з унікальним шифрувальним ключем і триматимуть копії цих ключів у величезній урядовій базі даних із ціллю прослуховування телефонних розмов. Одного дня ваш телефон теж матиме всередині Великого Брата. Уряд має надію, що американське суспільство схвалить цю контрольовану урядом криптографію, і намагається викорінити усі інші види шифрування, які йому непідконтрольні. Одним з способів викорінення є експортне обмеження на криптографічне програмне забезпечення. Саме це ставить PGP під прожектори преси.

Державний Департамент США має цілий список речей, що не можуть бути вивезені без належної ліцензії. Реєстр Озброєння - здебільшого зброя, але сюди віднесено й шифрувальне програмне забезпечення. Шифрувальне програмне забезпечення не може бути вивезено без ліцензії, а цю ліцензію доволі важко отримати, якщо програмне забезпечення використовує розвинуту технологію, яку уряд не зможе так просто зламати. Програмне забезпечення таке як PGP.

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

PGP використовує найкраші алгоритми, які можна було знайти у відкритій учбовій літературі - алгоритми, які були піддані найпильнішому розгляду і які використовують найкращі принципи розробок сучасної криптографії. PGP версія 2.6.2 використовує RSA для управління ключами та цифровими підписами, шифр IDEA для шифрування великих об'ємів інформації та MD5 для захищеного одностороннього змішування для цифрових підписів. До того ж вона стискає дані перед шифруванням, використовуючи ZIP алгоритм.

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

У комп'ютерній секції вашої книжної крамниці є інші книжки із зразками вихідного коду різноманітних алгоритмів. Ці книги навчають правильному стилю програмування, надаючи хороші зразки коду. Ця книга здебільшого не схожа на них. Хоча вона і має деякі інструктивні зразки щодо того, як використовувати деякі алгоритми, ви помітите, що цей вихідний код - не найкращий зразок чистої модульності. Код викладено таким, яким він насправді є. Вимогливі умови розробки PGP вели до пошуку вигідних підходів до її впровадження, інколи за рахунок елегантності. Коли багато інших розробників програмного забезпечення робили свій внесок у PGP після публікації версії 1.0 у 1991, вони ставали спадкоємцями невдалого ядра, на яке нарощували ще більше коду, змінювали код під тиском раціоналізму. Дуже мало від мого первісного коду залишилось нині у PGP. Найбільше все ще лишається у бібліотеці цілих чисел багаторазово збільшеної точності, яку я вперше написав у другій половині 1986. Нажаль, кращі примірники коду з моєї 20-річної практики програміста не можливо було використовувати як основу вихідного коду, до якого з часом будуть звертатися стільки інших програмістів.

Незважаючи на неелегантність коду, якість криптографії та управління ключами дуже висока. Достатньо висока, щоб залишити по собі такий слід, якого не вдавалось залишити ніякому іншому криптографічному програмному забезпеченню, перекинувши догори ногами деякі елементи американського уряду та урядів інших держав.

PGP не буда б сьогодні тим, чим вона є, якби не добровільні зусилля багатьох талановитих програмістів з усього світу. Пітер Гутман та Бранко Ланкестер вклали дуже багато сил у розробку PGP.* Жан-Луї Жіаллі вніс свої зусилля до стиснення ZIP. Багато інших додавали свої елементи до самого коду і їх імена фігурують у коментаріях до вихідного коду. Інші люди допомагали не програмістськими зусиллями у життєздатності проекту PGP. Це включає і команду моїх судових захисників: Філа Дюбуа, Ебена Моглена, Кена Басса та Курта Карноу. Решта юристів, що надавали доречні поради, - це Том Нолан та Чак Марсон.

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

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

Філіп Р. Ціммерманн
Болдер, Колорадо
листопад 1994


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



Translation Ukrainian Hi-tech Initiative, Marina Kobenko, 2005