Предисловие
Криптография — частая тема детских комиксов и шпионских историй. Дети когда-то собирали этикетки Ovaltine®, чтобы получить Секретное кольцо-декодер капитана Миднайта. Едва ли не каждый смотрел телевизионный фильм о неприметном одетом в костюм джентльмене с пристёгнутым к запястью дипломатом. Слово «шпионаж» навевает образы Джеймса Бонда, автомобильных погонь и свистящих пуль.
И вот вы, сидя в офисе, сталкиваетесь с заурядным делом: отправить отчёт о продажах своему сотруднику, но так, чтобы никто посторонний не смог его прочитать. Вы просто хотите быть уверенны, что ваш коллега будет единственным получателем письма, а он, в свою очередь, желает быть уверен, что именно вы являетесь фактическим отправителем. На кону, конечно, не национальная безопасность, но если конкурент получит к отчёту доступ, это может влететь вам в копейку. Как же вы разрешите эту задачу?
Вы можете воспользоваться криптографией. Конечно, вы обнаружите, что в реальности ей не достаёт драматизма передаваемых шёпотом в тёмных переулках кодовых фраз, но результат окажется ровно тем же: информация будет раскрыта только тому, кому она предназначалась.
Кому следует это читатьЭто руководство предназначено всем, кого интересуют азы криптографии; оно в популярной форме объясняет терминологию и технологию, с которыми вы столкнётесь, используя продукты PGP. Будет полезно прочитать его прежде, чем начинать работать с криптосистемой.
О данном руководствеРуководство включает следующие главы:
Глава 1, «Основы криптографии», представляет описание терминологии и концепций, с которыми вам придётся иметь дело, используя PGP.
Глава 2, «Фил Циммерман о PGP», написанная автором PGP, содержит детальное обсуждение вопросов безопасности и прав личности, а также уязвимостей, присущих любой криптосистеме, включая PGP.
Библиография
В этом разделе представлены Веб-сайты, книги и периодика об истории, технических аспектах и политике криптографии, а также, доверенные сайты, с которых можно скачать PGP.
История криптографии
The Code Book: The Evolution of Secrecy from Mary, Queen of Scots, to Quantum Cryptography, Simon Singh, Doubleday & Company, Inc., 1999, ISBN 0-385-49531-5.The Codebreakers: The Story of Secret Writing, David Kahn, Simon & Schuster Trade, 1996, ISBN 0-684-83130-9 (обновление издания 1967 года). Эта книга описывает историю шифров и людей, взламывающих эти шифры, со времён древних египтян и до окончания Второй Мировой войны. Кан впервые написал её в шестидесятых — это пересмотренное издание. Эта книга не научит Вас тому, как действует криптография, но она может вдохновить Вас, как вдохновила целое поколение современных криптографов.
Технические аспекты криптографии
Веб-сайтыhttp://www.iacr.org — Международная Ассоциация Криптологических Исследований (IACR). IACR проводит конференции по проблемам криптографии и издаёт журналы.
http://www.pgpi.org — международный неофициальный веб-сайт PGP, не поддерживаемый PGP Corporation. Тем не менее, является исчерпывающим ресурсом по продуктам PGP.
http://www.nist.gov/aes — проект Национального Института Стандартов и Технологий (NIST) США по разработке правопреемника DES — Улучшенного Стандарта Шифрования (Advanced Encryption Standart, AES) — вероятно, наиболее интересный проект, проводимый сегодня в криптографии.
http://www.ietf.org/rfc/rfc2440.txt — IETF-спецификации стандарта OpenPGP[1].
http://www.ietf.org/rfc/rfc3156.txt — IETF-спецификации стандарта PGP/MIME.
Книги и периодикаApplied Cryptography: Protocols, Algorithms, and Source Code in C, второе издание, Bruce Schneier, John Wiley & Sons, 1996; ISBN 0-471-12845-7. Если хотите купить всего одну книгу, по которой научитесь криптографии, то эта книга для вас.
Handbook of Applied Cryptography, Alfred Menezes, Paul van Oorschot и Scott Vanstone, CRC Press, 1996; ISBN 0-8493-8523-7. Это сугубо техническая работа, за которую следует браться после Шнайера. В ней много сложных математических вычислений, но она, тем не менее, пригодна и людям, не понимающим в математике.
Journal of Cryptology, International Association for Cryptologic Research (IACR). См.http://www.iacr.org.
Advances in Cryptology, протокол конференций IACR CRYPTO, публикуемый ежегодно Springer-Verlag. См.http://www.iacr.org.
Cryptography for the Internet, Philip Zimmermann, Scientific American, октябрь 1998 (вводная консультативная статья).
The Twofish Encryption Algorithm: A 128-Bit Block Cipher, Bruce Schneier, et al, John Wiley & Sons, Inc., 1999; ISBN: 0471353817. Содержит детальные сведения о шифре Twofish от критериев дизайна до криптоанализа алгоритма.
Политика криптографии
http://www.epic.org — Electronic Privacy Information Center.
http://www.crypto.org — Internet Privacy Coalition.
http://www.eff.org — Electronic Frontier Foundation.
http://www.privacy.org — The Privacy Page. Великолепный информационный ресурс по вопросам прав человека.
http://www.cdt.org — Center for Democracy and Technology.
http://www.philzimmermann.com — домашняя страница Фила Циммермана; его показания на сенатских слушаниях и пр.
КнигиPrivacy on the Line: The Politics of Wiretapping and Encryption, Whitfield Diffie и Susan Landau, The MIT Press, 1998, ISBN 0-262-04167-7. В этой книге рассматриваются вопросы истории и политик криптографии и безопасности телекоммуникаций. Прекрасный текст даже для новичков и нетехнических читателей. Содержит сведения, которыми не владеют даже многие эксперты.
Technology and Privacy: The New Landscape, Philip Agre и Marc Rotenberg, The MIT Press, 1997; ISBN 0-262-01162-x.
Building in Big Brother, The Cryptographic Policy Debate, редактор — Lance Hoffman, Springer-Verlag, 1995; ISBN 0-387-94441-9.
The Code Book: The Evolution of Secrecy from Ancient Egypt to Quantum Cryptography, Simon Singh, Doubleday & Company, Inc., сентябрь 2000; ISBN: 0385495323. Эта книга — прекрасное введение для желающих понять, как человеческая необходимость на тайну связи утвердила себя через криптографию.
Crypto: How the Code Rebels Beat the Government — Saving Privacy in the Digital Age, Steven Levy, Penguin USA, 2001; ISBN 0140244328.
Сетевая безопасность
КнигиBuilding Internet Firewalls, Elizabeth D. Zwicky, D. Brent Chapman, Simon Cooper и Deborah Russell (редактор), O’Reilly & Associates, Inc., 2000; ISBN: 1565928717. Это практическое руководство по проектированию, построению и обслуживанию сетевых брандмауэров.
Firewalls and Internet Security: Repelling the Wily Hacker, William R. Cheswick, Steven M. Bellovin, Addison Wesley Longman, Inc., 1994; ISBN: 0201633574. Это практическое руководство по защите сетей от атак хакеров через Интернет.
Hacking Exposed: Network Security Secrets and Solutions, Stuart McClure, Joel Scambray и George Kurtz, The McGraw-Hill Companies, 1999; ISBN: 0072121270. Современный подход к взлому компьютеров и компьютерных сетей с позиций защиты и нападения.
Network Security: Private Communication in a Public World, второе издание, Charles Kaufman, Radia Perlman, and Mike Speciner, Pearson Education, 2002; ISBN: 0130460192. Книга содержит описания многих сетевых протоколов, включая Kerberos, IPsec, SSL и др., а также разъяснения основ криптографии, с позиций которых показывает принципы построения конкретных систем.
Глава 1. Основы криптографии
Юлий Цезарь не доверял гонцам. Поэтому, отправляя письма своим генералам, он заменял каждую букву A в своём сообщении на D, каждую B на E, и т. д. Только тот, кто знал правило «сдвига на 3» мог расшифровать его послание.
Итак, приступим.
Зашифрование и расшифрование
Информация, которая может быть прочитана, осмыслена и понята без каких-либо специальных мер, называется открытым текстом (plaintext, clear text). Метод искажения открытого текста таким образом, чтобы скрыть его суть, называется зашифрованием[2] — (encryption или enciphering). Зашифрование открытого текста приводит к его превращению в непонятную абракадабру, именуемую шифртекстом (ciphertext). Шифрование позволяет скрыть информацию от тех, для кого она не предназначается, несмотря на то, что они могут видеть сам шифртекст. Противоположный процесс по обращению шифртекста в его исходный вид называется расшифрованием (decryption или deciphering)[3].
Рисунок 1 иллюстрирует это.
Что такое криптография
Криптография— это наука об использовании математики для зашифрования и расшифрования данных. Криптография позволяет хранить важную информацию или передавать её по ненадёжным каналам связи (таким как Интернет) так, что она не может быть прочитана никем, кроме легитимного получателя.
В то время как криптография — это наука о защите данных, криптоанализ — это наука об анализировании и взломе зашифрованной связи. Классический криптоанализ представляет собой смесь аналитики, математических и статистических расчётов, а также спокойствия, решительности и удачи. Криптоаналитиков также называют взломщиками.
Криптология объединяет криптографию и криптоанализ.
Стеганография является смежной дисциплиной. Вместо того, чтобы делать сообщения нечитаемыми, она использует техники сокрытия самих сообщений. Стеганография — это не криптография, это лишь частный случай кодирования, чья надёжность опирается на секретность механизма сокрытия сообщений. Скажем, если вы решите спрятать сообщение А, используя для этого первые буквы первых слов в каждом предложении сообщения Б, это будет секретом, пока кто-то не обнаружит, где искать А, и тогда механизм более не будет предоставлять никакой защиты.
Стойкая криптография
«В мире различают два типа критографии: криптография, которая помешает вашей младшей сестре читать ваши файлы, и криптография, которая помешает читать ваши файлы правительствам могучих держав. Эта книга посвящена криптографии второго типа»
— Брюс Шнайер, «Прикладная криптография: протоколы, алгоритмы, исходные тексты на языке С» PGP основан на том же типе криптографии.
Криптография может быть стойкой, а может быть слабой, как описано в приведённом примере. Криптографическая стойкость измеряется тем, сколько понадобится времени и ресурсов, чтобы из шифртекста восстановить исходный открытый текст. Результатом стойкой криптографии является шифртекст, который исключительно сложно взломать без обладания определёнными инструментами по дешифрованию. Но насколько сложно? Используя весь вычислительный потенциал современной цивилизации — даже миллиард компьютеров, выполняющих миллиард операций в секунду — невозможно дешифровать результат стойкой криптографии до конца существования Вселенной.
Кто-то может решить, что стойкая криптография сможет устоять даже против самого серьёзного криптоаналитика. Но кто об этом говорит? Никем не доказано, что лучшее шифрование, доступное сегодня, сможет выстоять против вычислительных возможностей компьютеров, доступных завтра. Тем не менее, стойкая криптография, задействованная в PGP, — лучшая на сегодняшний день. Бдительность и консерватизм сберегут вас лучше заявлений о совершенной защите.
Как действует криптография
Криптографический алгоритм, или шифр, — это математическая формула, описывающая процессы зашифрования и расшифрования. Чтобы зашифровать открытый текст, криптоалгоритм работает в сочетании с ключом— словом, числом или фразой. Одно и то же сообщение одним алгоритмом, но разными ключами будет преобразовываться в разный шифртекст. Защищённость шифртекста целиком зависит от двух вещей: стойкости криптоалгоритма и секретности ключа.
Криптоалгоритм плюс всевозможные ключи и протоколы, приводящие их в действие, составляют криптосистему. PGP — это криптосистема.
Обычная криптография
В традиционной криптографии, также называемой шифрованием тайным, или симметричным, ключом, один и тот же ключ используется как для зашифрования, так и для расшифрования данных. Data Encryption Standart (DES) — пример симметричного алгоритма, широко применявшегося на Западе с 70-х годов в банковской и коммерческой сферах. В настоящее время его сменяет Advanced Encryption Standard (AES). Рисунок 2 иллюстрирует процесс симметричного шифрования.
Шифр Цезаря
Крайне простой пример симметричного шифрования — это подстановочный шифр. Подстановочный шифр заменяет каждую часть информации другой информацией. Чаще всего это достигается смещением букв алфавита. Пара примеров — это Секретное кольцо-декодер капитана Миднайта, которое могло быть у вас в детстве, и шифр Юлия Цезаря. В обоих случаях алгоритм состоит в том, чтобы сдвинуть алфавит, а ключ — это число букв, на которое произведено смещение.
Допустим, если мы решим зашифровать слово «SECRET», используя ключ Цезаря, равный 3, то сдвинем латинский алфавит так, чтобы он начинался с третьей буквы (D).
Итак, беря исходный вариант
ABCDEFGHIJKLMNOPQRSTUVWXYZ
,
и смещая всё на 3, получаем
DEFGHIJKLMNOPQRSTUVWXYZABC
,
где D=A, E=B, F=Cи т. д.
Используя эту схему, открытый текст «SECRET» превращается в «VHFUHW». Чтобы кто-то мог восстановить исходный текст, вы сообщаете ему, что ключ — 3.
Очевидно, что по сегодняшним меркам это чрезвычайно слабый алгоритм, тем не менее, даже он помогал Цезарю! И прекрасно демонстрирует, как действует симметричное шифрование.
Симметричное шифрование и управление ключами
Симметричное шифрование имеет ряд преимуществ. Первое — скорость криптографических операций. Оно особенно полезно для шифрования данных, которые остаются у вас. Однако, симметричное шифрование, применяемое само по себе как средство защиты пересылаемых ценных данных, может оказаться весьма затратным просто из-за сложности передачи тайного ключа.
Вспомните персонажа из вашего любимого шпионского фильма: человек с запечатанным кейсом, пристёгнутым наручником к руке. Как вы считаете, что в этом кейсе? Едва ли в нём коды запуска ракет / формула химического оружия / планы вторжения, как таковые. Вероятнее, там — ключ, который расшифрует секретную информацию.
Для установления шифрованной связи с помощью симметричного алгоритма, отправителю и получателю нужно предварительно согласовать ключ и держать его в тайне. Если они находятся в географически удалённых местах, то должны прибегнуть к помощи доверенного посредника, например, надёжного курьера, чтобы избежать компрометации ключа в ходе транспортировки. Злоумышленник, перехвативший ключ в пути, сможет позднее читать, изменять и подделывать любую информацию, зашифрованную или заверенную этим ключом. Глобальная проблема симметричных шифров (от Кольца-декодера капитана Миднайта до DES и AES) состоит в сложности управления ключами: как вы доставите ключ получателю без риска, что его перехватят?
Криптография с открытым ключом
Проблема управления ключами была решена криптографией с открытым, или асимметричным, ключом, концепция которой была предложена Уитфилдом Диффи и Мартином Хеллманом в 1975 году[4].
Криптография с открытым ключом — это асимметричная схема, в которой применяются пары ключей: открытый(public key), который зашифровывает данные, и соответствующий ему закрытый (private key), который их расшифровывает. Вы распространяете свой открытый ключ по всему свету, в то время как закрытый держите в тайне. Любой человек с копией вашего открытого ключа может зашифровать информацию, которую только вы сможете прочитать. Кто угодно. Даже люди, с которыми вы прежде никогда не встречались.
Хотя ключевая пара математически связана, вычисление закрытого ключа из открытого в практическом плане невыполнимо. Каждый, у кого есть ваш открытый ключ, сможет зашифровать данные, но не сможет их расшифровать. Только человек, обладающий соответствующим закрытым ключом может расшифровать информацию.
Главное достижение асимметричного шифрования в том, что оно позволяет людям, не имеющим существующей договорённости о безопасности, обмениваться секретными сообщениями. Необходимость отправителю и получателю согласовывать тайный ключ по специальному защищённому каналу полностью отпала. Все коммуникации затрагивают только открытые ключи, тогда как закрытые хранятся в безопасности. Примерами криптосистем с открытым ключом являются Elgamal (названная в честь автора, Тахира Эльгамаля), RSA (названная в честь изобретателей: Рона Ривеста, Ади Шамира и Леонарда Адлмана), Diffie-Hellman (названная, правильно, в честь её создателей) и DSA, Digital Signature Algorithm (изобретённый Дэвидом Кравицом).
Поскольку симметричная криптография была некогда единственным способом пересылки секретной информации, цена надёжных каналов для обмена ключами ограничивала её применение только узким кругом организаций, которые могли её себе позволить, в частности, правительствами и крупными банковскими учреждениями (или маленькими детьми с Секретными кольцами-декодерами). Появление шифрования с открытым ключом стало технологической революцией, предоставившей стойкую криптографию массам. Помните курьера с кейсом, пристёгнутым к руке? Шифрование с открытым ключом отправило его на покой (к его же счастью, вероятно).
Как действует PGP
PGP объединяет в себе лучшие стороны симметричной криптографии и криптографии с открытым ключом. PGP — это гибридная криптосистема.
Когда пользователь зашифровывает данные с помощью PGP, программа для начала их сжимает. Сжатие сокращает время модемной передачи и экономит дисковое пространство, а также, что более важно, повышает криптографическую стойкость. Большинство криптоаналитических техник основано на статистическом анализе шифртекста в поисках признаков открытого текста. Сжатие уменьшает число таких признаков (снижает избыточность данных), чем существенно усиливает сопротивляемость криптоанализу. (Слишком короткие файлы и файлы, которые не сжимаются достаточно хорошо, не сжимаются вовсе.)