Электронная библиотека » Кит Мартин » » онлайн чтение - страница 5


  • Текст добавлен: 25 декабря 2023, 14:19


Автор книги: Кит Мартин


Жанр: Компьютеры: прочее, Компьютеры


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 5 (всего у книги 17 страниц) [доступный отрывок для чтения: 5 страниц]

Шрифт:
- 100% +

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

Между 1970 (когда был изобретен DES) и 1990-ми годами в мире криптографии произошло много важных изменений. Одно из них было связано с развитием Интернета и следствием этого – взрывным ростом деловой и повседневной активности в киберпространстве. Технологий, подключенных к глобальной сети, конечно, тоже стало больше, они стали разнообразнее и сложнее. Когда разрабатывался стандарт DES, симметричное шифрование в основном предназначалось для отдельных компьютеров наподобие банковских станций, поэтому архитектура DES была рассчитана на аппаратную реализацию. Но к 1990-м годам появился спрос на симметричное шифрование, эффективно реализованное на программном уровне, и заметно расширился спектр аппаратных платформ, которым нужно было симметричное шифрование. В 1970-х все компьютеры были похожи между собой. К 1990-м годам криптография применялась как на суперкомпьютерах, так и на крошечных устройствах вроде смарт-карт (пластиковые карты со встроенным чипом, похожие на кредитную карту).

Еще одно важное изменение затронуло общий уровень владения криптографией. В 1970-х большинство криптографов работало в правительственном и военном секторах, и знания концентрировались там же. За помощью в создании DES правительство США обратилось к IBM – одной из немногих коммерческих компаний, которые в то время проявляли интерес к криптографии. К 1990-м годам активное сообщество криптографов сформировалось как в научных кругах, так и в частном секторе. Особенно это касалось телекоммуникационных компаний, чьи коммерческие империи опирались на эффективность криптографии.

Создание нового стандарта симметричного шифрования в духе двадцать первого века было поручено Национальному институту стандартов и технологий США (National Institute of Standards and Technology, NIST). Сотрудники NIST решили воспользоваться помощью сообщества криптографов за пределами правительства и организовали открытый конкурс по разработке нового алгоритма AES. Поскольку ожидалось, что новый симметричный алгоритм будет применяться по всему миру, к конкурсу были допущены не только американские компании, но и участники из других стран[87]87
  Краткий экскурс в историю принятия AES, включая связанную с этим документацию, можно найти в статье «AES Development», NIST Computer Security Resource Center, https://csrc.nist.gov/projects/cryptographic-standards-and-guidelines/archived-crypto-projects/aes-development (обновлено 10 октября 2018 года).


[Закрыть]
.

Это был кардинально новый подход к разработке криптографических алгоритмов. Неудивительно, что он привлек большинство ведущих специалистов в симметричном шифровании. Мой личный вклад в этот процесс состоял в попытке убедить моего коллегу по бельгийскому подразделению Винсента Рэймена переименовать алгоритм, который он разработал для конкурса вместе со своим другом Джоаном Дэеменом. Я не верил, что кто-то мог принять всерьез алгоритм под названием Rijndael (читается как «рейндал»), составленным из фамилий его создателей и вымышленной долины Ривенделл. Меня проигнорировали, в отличие от самого алгоритма. В 2001 году бельгийский алгоритм симметричного шифрования Rijndael стал стандартом AES.

Архитектура стандарта AES обладает элегантной простотой, что делает его реализации эффективными – и это во многом определило победу Rijndael. Возможно, вы думаете, что современные алгоритмы шифрования должны быть математически сложными и доступными для понимания только специалистам. Действительно, конкретные детали реализации неочевидны, и, чтобы в них разобраться, нужен определенный уровень знаний. Тем не менее основная идея, лежащая в основе AES, на удивление понятна и проста. Я попытаюсь приоткрыть завесу тайны, окружающую современное шифрование, и объяснить в самых общих чертах, как работает AES.

Как вы помните, алгоритм шифрования – это рецепт, состоящий из двух основных ингредиентов (исходного текста и ключа), которые смешиваются для получения зашифрованного результата. В AES это смешивание происходит следующим образом.

Форматирование исходного текста. Вначале обычный текст преобразуется в байты. Затем из первых 16 байт формируется матрица размером 4×4 байта[88]88
  Все операции AES проводятся с квадратной матрицей байтов – неслучайно исходный алгоритм шифрования, на основе которого был разработан AES, назывался Square (квадрат).


[Закрыть]
. Если после этого остается исходный текст, создается вторая матрица, потом третья и т. д. Если для формирования очередной матрицы размером 4×4 байта текста остается недостаточно, вместо недостающих байтов подставляется резервная информация, известная как дополнение. Теперь исходный текст готов к шифрованию.

Изменение всех байтов. Первый этап перемешивания исходного текста состоит в замене каждого байта матрицы новым байтом в соответствии с правилами алгоритма AES, поэтому все знают, как это делать. По окончании этого этапа получается квадратная матрица из 16 байтов.

Смещение строк. Этот второй этап перемешивания тоже крайне прост. Каждая строка матрицы сдвигается на определенное количество позиций; элементы, выступающие справа, вставляются слева.

Преобразование столбцов. Каждый столбец, состоящий из 4 байтов, преобразуется в соответствии со следующим правилом перемешивания в алгоритме. Все новые столбцы по-прежнему состоят из 4 байтов. В результате получается новая 16-байтная матрица.

Добавление ключа. На каждом из предыдущих этапов исходный текст перемешивается тем или иным образом, вроде того, как раздающий по-разному тасует карты. И только теперь в этот процесс добавляется ключ. Алгоритм AES описывает, как на основе ключа сформировать так называемый раундовый ключ – еще одну отдельную матрицу 4×4 байта. Добавив к нему матрицу исходного текста, мы получим еще одну квадратную матрицу из 16 байтов.

Повторение. Теперь, получив матрицу – смесь исходного текста и ключа, – мы снова включаем миксер, возвращаемся к этапу «изменение всех байтов», и процесс повторяется заново (изменение всех байтов, смещение строк, преобразование столбцов, добавление ключа), пока все не перемешается достаточно хорошо (в соответствии с AES). В самой простой версии (их существует три, с разной длиной ключа) происходят десять повторений. Каждый полный цикл операций перемешивания называется раундом AES.

Вывод зашифрованного текста. Итоговая матрица размером 4×4 байта становится нашим зашифрованным текстом. Чтобы превратить зашифрованный текст обратно в исходный, весь процесс выполняется в обратном порядке.


Такова основная идея. Я опустил несколько тонкостей и не стал вдаваться в некоторые подробности. Моей целью было показать, что, по своей сути, алгоритм шифрования AES состоит из ряда относительно простых операций, совокупность которых позволяет получить зашифрованный текст, сохраняющий конфиденциальность исходной информации. Надеюсь, вы согласитесь с тем, что принцип работы AES прост и даже элегантен. Но не сомневайтесь, что изобрести такой алгоритм очень непросто[89]89
  Процесс разработки AES длился почти четыре года, и в итоге после интенсивной процедуры оценивания, состоявшей из трех специальных конференций, из пятнадцати претендентов был выбран один. Все подробности этого конкурса задокументированы в книге Джоан Дэмен и Винсента Рэймена The Design of Rijndael (Springer, 2002).


[Закрыть]
.

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

Если вас когда-нибудь спросят, чем славится Бельгия, вы будете знать, что ответить. Картофель фри, пиво, шоколад и вымышленные гениальные сыщики – это замечательно, но Бельгия должна быть известна своей криптографией.

Вездесущий AES

Конечно, AES сегодня – далеко не единственный симметричный блочный шифр. С годами было предложено много альтернатив, включая финалистов того самого конкурса, которым лишь немного не хватило, чтобы стать стандартом AES. Существуют блочные шифры, названные в честь животных, скандинавских богов, бельгийских марок пива и даже чего-то малопонятного (вспомню лишь всеми любимый шифр Hasty Pudding – пудинг на скорую руку). Поразительное множество блочных шифров названо в честь рыб[90]90
  Здесь в том числе имеются в виду блочные шифры, включая BEAR, Blowfish, Cobra, Crab, FROG, Grand Cru, LION, LOKI, Red Pike, Serpent, SHARK, Skipjack, Twofish и Threefish.


[Закрыть]
. Но лишь немногие из этих алгоритмов применяются в реальных разработках, и среди них AES, пожалуй, действительно важнейший.

Одна из причин, почему блочные шифры стали и остаются самыми распространенными механизмами для симметричного шифрования – гибкость их реализации. Как вы помните, блочный шифр кодирует блок (группу бит, чаще всего их 128) исходного текста в блок зашифрованного текста. Поскольку в 128 битах умещаются лишь 16 символов, мы обычно шифруем данные большего размера. Разделение текста на блоки с последующим шифрованием каждого в отдельности – не самая разумная мысль.

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

Для борьбы с этой угрозой были разработаны более сложные методы шифрования, кодирующие больше одного блока за раз. Эти режимы работы блочного шифра разными способами связывают между собой шифрование отдельных блоков и наделяют шифры, в том числе (и прежде всего) AES, разными дополнительными свойствами, не ограничиваясь одной лишь конфиденциальностью. Например, некоторые режимы работы избавляют от необходимости дополнять последний блок, а другие позволяют обнаруживать изменения, внесенные в зашифрованный текст. Есть режимы, оптимизированные для определенных задач, скажем, для шифрования жестких дисков. Во многих задачах, для которых потоковый шифр подошел бы лучше, все равно используются блочные шифры в специальном режиме, фактически превращающем их в потоковые[91]91
  NIST предлагает список некоторых рекомендованных режимов работы, в том числе только для конфиденциальности (CBC, CFB, ECB, OFB), только для аутентификации (CMAC), для аутентифицированного шифрования (CCM, GCM), для шифрования диска (XTS) и для защиты криптографических ключей (KW, KWP): «Block Cipher Techniques – Current Modes», NIST Computer Security Resource Center, https://csrc.nist.gov/Projects/Block-Cipher-Techniques/BCM/Current-Modes (обновлено 17 мая 2019 года).


[Закрыть]
.

Итак, симметричное шифрование – самое распространенное средство обеспечения конфиденциальности, блочные шифры – наиболее широко применяемые его механизмы, а AES – несомненно, самый популярный блочный шифр. Логично, что при таком раскладе наша безопасность в киберпространстве во многом зависит от AES.

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

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

Иногда нам выпадает случай продемонстрировать свой вкус, например, при выборе одежды для вечеринки или обстановки в комнату. Но, покупая что-то сугубо функциональное, вроде посудомоечной машины, лучше забыть о модных веяниях и отдать предпочтение надежной марке и модели. В этом отношении механизмы шифрования намного больше похожи на посудомоечную машину, чем на вечернее платье. Если в AES когда-нибудь обнаружится серьезный недостаток, его немедленное исправление будет в интересах всего мира. Используя менее популярный блочный шифр, вы, может быть, меньше подвержены этой конкретной угрозе; однако оборотная сторона такого выигрыша – повышенный риск того, что ваш шифр исследовался недостаточно тщательно и на самом деле не так уж надежен и безопасен.

Проблема распространения ключей

Симметричное шифрование – прекрасный инструмент, который мы постоянно используем. Однако у него есть очевидный недостаток: и для шифрования, и для расшифровки обязательно нужен секретный ключ. Один и тот же. Чтобы этот инструмент работал, все, кому нужен ключ, должны его каким-то образом получить.

Но каким образом происходит распространение ключей? Мы не можем просто рассылать их по мере необходимости обычными средствами связи, поскольку ключи к секретной информации и сами – секретная информация. Злоумышленник может получить доступ к большинству коммуникационных каналов в киберпространстве, таких как Интернет. Что же обычно делают, когда нужно послать ключ? Естественно, его шифруют! Но для того, чтобы что-то зашифровать, нужен… ключ. Да, вам не померещилось. Чтобы передать кому-то ключ, вам нужен ключ. Своего рода криптоверсия проблемы курицы и яйца[92]92
  Это не совсем дилемма о курице и яйце, поскольку закрытый ключ можно передавать не только посредством шифрования. Однако шифрование является самым очевидным способом, который часто используется на практике.


[Закрыть]
.

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

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

Точно так же физическая приближенность может использоваться для распространения ключей для симметричного шифрования. Неплохой пример – домашняя беспроводная сеть. Соединения со всеми устройствами в ней защищены с помощью симметричного шифрования. В качестве основы секретного ключа, с помощью которого шифруется трафик, выступает основной ключ для доступа к Wi-Fi – пароль. У владельца сети должна быть возможность сгенерировать этот главный ключ. Несмотря на то что владелец часто записывает свой пароль на клочке бумаги (как правило, чтобы не суметь отыскать потом), проще всего его найти на корпусе маршрутизатора, управляющего беспроводной сетью. Любое новое устройство, чтобы присоединиться к сети, должно использовать симметричное шифрование, а значит, снабжено этим паролем.

Главный ключ можно ввести в устройство вручную, можно и установить автоматически, если маршрутизатор физически рядом. Варианты одинаково действенны: никакое устройство не сможет подключиться к сети Wi-Fi, если находится действительно далеко от маршрутизатора (или владельца)[93]93
  Безопасность сетей Wi-Fi имеет несколько пеструю историю. Основные стандарты безопасности описаны в спецификациях серии IEEE 802.11. Они фактически ограничивают доступ к авторизованным устройствам и делают возможным шифрование взаимодействия по сети Wi-Fi. Другие связанные с этим стандарты, такие как WPS (Wi-Fi Protected Setup – защищенная установка), предназначены для упрощения инициализации ключей в беспроводных сетях.


[Закрыть]
.

В материальном мире нам бывает нужен новый ключ. За ним мы обычно обращаемся к доверенному лицу – человеку, с которым у нас как минимум есть деловые отношения. Например, ключ от нового дома нам, как правило, вручает агент по недвижимости (полностью ли мы ему доверяем – это уже другой вопрос). Точно так же ключи от новой машины нам выдает автосалон, которому мы доверяем достаточно, чтобы передать ему деньги в обмен на колеса. Многие практические способы применения симметричной криптографии, направленные на защиту секретных данных, возлагают распространение ключей на какую-то доверенную сторону. Симметричный ключ для кредитной карты мы получаем непосредственно от банка вместе с самой картой. Симметричный ключ для мобильного телефона мы получаем на SIM-карте непосредственно от оператора или посредников, которые продают контракты от его имени. Примечательно, что в этих двух примерах мы получаем ключи задолго до того, как в них возникнет необходимость.

Но иногда в киберпространстве нужно делать вещи, речь о которых вообще крайне редко заходит при использовании физических замков и ключей. Я говорю о предоставлении незнакомцам доступа к секретной информации.

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

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

4. Обмен секретной информацией с незнакомцами

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

Асимметричное шифрование может показаться волшебством. И это недалеко от истины. Оно способствовало развитию многих других потрясающих технологий, ставших возможными благодаря криптографии: цифровых подписей, электронных платежей в цифровой валюте и голосования через Интернет.

Огромная связка ключей

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

Я уже отмечал, что ключ можно было бы доставить какими-то физическими средствами. Вы или работники магазина могли бы сгенерировать криптографический ключ и договориться о передаче его другой стороне – лично или, скажем, с помощью службы доставки. Это стоило бы вам денег и, что важнее, времени. В контексте интернет-покупок эта идея выглядит нелепо.

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

Главная проблема этого подхода в его масштабности. В киберпространстве более 1,5 миллиарда сайтов[94]94
  «Total Number of Websites», Internet Live Stats, http://www.internetlivestats.com/total-number-of-websites (по состоянию на 10 июня 2019 года).


[Закрыть]
. Ради возможности когда-нибудь зайти на любой из них вам придется хранить более 1,5 миллиарда симметричных ключей. Учитывая, что доступ в Интернет есть примерно у половины населения планеты, каждый продавец, который хочет сделать свой товар доступным, должен хранить 3,5 миллиарда ключей.

Интересно, что проблема отнюдь не в емкости хранилищ. Если бы каждый из этих ключей был создан в формате AES длиной 128 бит, то для них всех продавцу пришлось бы выделить 45 гигабайт (карта памяти такого объема стоит меньше, чем обед на двоих в дешевом ресторане). Кошмарной идею делает необходимость управлять всеми этими ключами. Как вы будете их распространять? Как вы будете следить, к каким сайтам относятся какие ключи? Как справиться с тем, что каждую минуту каждого дня в году появляются все новые и новые сайты?

Есть еще один вариант: можно было бы создать глобальный центр обмена ключами, которому доверяли бы все пользователи Интернета. Каждый из нас мог бы заранее получить свой симметричный ключ, например, на смарт-карте, подобно тому, как банк выдает вам ключ в конверте с банковской картой. Если вам нужно сгенерировать новый ключ для безопасного взаимодействия с сайтом, вы тоже можете обратиться в глобальный центр, и результат будет отправлен вам зашифрованным при помощи ключа, который есть как у центра, так и у вас. Похожим образом тот же ключ отправлялся бы и сайту.

Все просто?

Ах если бы.

Первыми вступят в игру проблемы политического характера. Кому все пользователи Интернета могут доверить создание такого глобального центра ключей? Американцы не доверяют русским, те не доверяют британцам, которые, в свою очередь, с подозрением относятся к французам, которые не в восторге от руританцев и т. д. Возможно, эту обязанность можно было бы возложить на ООН, но даже если это сработает, встанет проблема централизованности такой конструкции: каждый раз, когда кто-то захочет с кем-то пообщаться, им обоим придется сначала обратиться в глобальный центр ключей. Это невероятно замедлило бы любые взаимодействия. К тому же, если глобальный центр окажется временно недоступным или скомпрометированным, последствия будут катастрофическими.

Однако стоит отметить, что решение с центром ключей идеально подходит для отдельных организаций. Какая-то частная компания вполне может предоставить каждому работнику по ключу. Более того, у многих компаний есть собственные централизованные сети, что делает запрос ключей из центрального хранилища действенным решением. Правда, такие пользователи, связанные с центром ключей через работодателя, не будут в полной мере «незнакомцами»[95]95
  Распространение ключей с помощью доверенного центра может хорошо работать в централизованном окружении с очевидными точками доверия. Таким образом, к примеру, работает система сетевой аутентификации Kerberos: Kerberos: The Network Authentication Protocol», MIT Kerberos, https://web.mit.edu/kerberos (обновлено 9 января 2019 года).


[Закрыть]
. А в масштабах многочисленного и менее структурированного населения (читай – все или почти все пользователи Интернета) это просто не будет работать.

Итак, для обмена ключами с незнакомцами одного лишь симметричного шифрования, как правило, недостаточно.

Сумасшествие с навесными замками

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

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

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

Как вы помните, физические замки бывают двух типов. Одни открываются и закрываются одним и тем же ключом, другие, навесные, требуют ключ только для открытия, а закрыть их может кто угодно.

Рассмотрим другую версию той же истории: вы кладете письмо в чемодан и закрываете его навесным замком, ключ к которому есть только у вас. Курьер отвозит ваш чемодан юристу[96]96
  В Интернете есть много хороших видеороликов о последующем процессе использования навесных замков для обмена секретными данными, например, Крис Бишоп, «Key Exchange», YouTube, 9 июня 2009 года, https://www.youtube.com/watch?v=U62S8SchxX4.


[Закрыть]
. Он надежен, но по дороге может попытаться заглянуть внутрь, чтобы прочитать письмо – отсюда и необходимость в замке (криптографы назвали бы такого курьера «честным, но любопытным»).

Получив чемодан, юрист не может его открыть: у него все еще нет ключа к вашему навесному замку. Поэтому он вешает на чемодан еще один замок, ключ к которому есть только у него, возвращает чемодан курьеру и просит передать его вам. Этот чемодан никогда еще не был настолько защищенным: у него теперь есть два замка, и ни у кого нет ключей к обоим.

Приняв чемодан, вы открываете свой навесной замок, а другой оставляете, и снова просите курьера доставить его юристу. Раздраженный, но явно довольный тройной оплатой, курьер снова везет чемодан на другой конец города. И наконец на этот раз юрист открывает свой замок и извлекает письмо.

Сумасшедшая, но рабочая процедура. Что же на самом деле происходит? Чемодан катается туда и обратно, чтобы на нем в итоге остался замок, который может открыть юрист. Это вполне рабочее и довольно забавное, но все-таки переусложненное решение для безопасной доставки конфиденциального письма. Однако небольшая корректива могла бы сэкономить вам время и деньги, а также сократить выбросы углекислого газа (если курьер ездит не на велосипеде). Вы могли бы сначала позвонить юристу по телефону и попросить его прислать навесной замок. Получив его, вы могли бы повесить этот замок на чемодан, вручить тому же курьеру и отослать все вместе обратно юристу.

Эта идея с навесными замками по-прежнему кажется немного громоздкой, но это уже лучше, чем тройная доставка. Что важнее, именно на этой модели основано асимметричное шифрование.

Навесные замки в киберпространстве

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

К счастью, в киберпространстве телепортация почти возможна. На концептуальном уровне цифровой «навесной замок» можно передать со скоростью света (например, по электронной почте) и затем с его помощью «защелкнуть» цифровой эквивалент чемодана. Реализация этой идеи позволила бы нам обмениваться секретной информацией с незнакомцами, поскольку при подключении к сайту, который мы никогда прежде не посещали, было бы достаточно воспользоваться цифровым навесным замком. Именно это делает возможным асимметричное шифрование.

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

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

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

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

Готовка – хорошая, но не идеальная аналогия для асимметричного шифрования, поскольку изначальные ингредиенты уже невозможно получить обратно. В асимметричном шифровании мы хотим сделать обратный процесс невозможным для всех, кроме одного человека – владельца закрытого ключа. Таким образом, расшифровка возможна, но только в особых обстоятельствах. В связи с этим нам придется смириться с небольшим компромиссом. Тем, кому неизвестен закрытый ключ, должно быть крайне сложно выполнить расшифровку[97]97
  Функцию, которая подходит для асимметричного шифрования, иногда называют односторонней функцией с потайным входом. «Односторонняя» она потому, что ее вычисление должно быть простым, а обратное выполнение – сложным. «Потайной вход» указывает на то, что у настоящего получателя должна быть возможность обратить этот процесс (потайным входом выступает знание закрытого ключа расшифровки).


[Закрыть]
.

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

Мигающий курсор

Чтобы получить представление о разработке методов асимметричного шифрования, стоит поговорить о том, что компьютеру делать сложно.

Представьте, что вам нужно решить непростую вычислительную задачу. Не жалея денег, вы купили мощный компьютер, запрограммировали его и нажали клавишу Enter. Компьютер начал усердно работать. Прошло несколько часов, затем дней. По прошествии недель и месяцев он начал нагреваться. В итоге из его задней панели пошел дым. Что дальше? Купить компьютер побольше и помощнее?

Возможно! Но лучшее ли это решение? Компьютеры – чрезвычайно мощные устройства, способные на удивительные вещи, однако некоторые вычислительные задачи быстро выходят из-под контроля даже на самом производительном оборудовании. Если попросить компьютер выполнить такую задачу, он, может, и не задымит, но результат вы точно не получите.

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

Самая очевидная маркетинговая стратегия – договориться с соседями. Женщина из соседнего дома просит вас прибрать ее дом, и вот у вас уже есть полдня оплачиваемой работы. Потом оказывается, что уборщик нужен семье дальше по улице, да и их соседям по обе стороны. Позвонив еще в несколько дверей, вы расширяете список клиентов до шести. Это уже постоянная работа. Можно было бы остановиться, но вы обнаруживаете, что спрос на услуги уборщиков в вашем районе довольно высок. Вы нанимаете работника, потом другого, и вскоре вам удается построить небольшой бизнес. Можно сказать, что ваше молодое предприятие имеет успех в мире коммерции, и важно, что вам удается полностью контролировать его уверенный рост.

Теперь давайте рассмотрим другую маркетинговую стратегию. В этом сценарии вы решили рекламировать свои услуги в социальных сетях. Допустим, у вас есть 100 друзей, и 10 из них откликнулись на ваше предложение. Это значит, что вы сразу получили работу на неделю вперед. Теперь представим, что в ходе своей рекламной кампании вы попросили друзей поделиться этим предложением со всеми, с кем они дружат. Предположим, что у каждого из них по 100 других друзей, с которыми вы не знакомы, и доля положительных откликов среди них та же (в этом примере мы много всего допускаем, поэтому не стоит зацикливаться на подробностях). Таким образом с вашим предложением ознакомилось целых 10 000 человек, и на вас обрушилась тысяча заявок на уборку. Ого! Если вы не хотите терять этот шанс, вам срочно нужно нанять не меньше сотни уборщиков!

Внимание! Это не конец книги.

Если начало книги вам понравилось, то полную версию можно приобрести у нашего партнёра - распространителя легального контента. Поддержите автора!

Страницы книги >> Предыдущая | 1 2 3 4 5
  • 0 Оценок: 0

Правообладателям!

Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.

Читателям!

Оплатили, но не знаете что делать дальше?


Популярные книги за неделю


Рекомендации