Криптографические протоколы
Анонимные совместные вычисления
Иногда бывает так, что группе людей требуется совместно вычислить
некоторую функцию от многих переменных. Каждый участник вычислительного
процесса является источником значений одной или нескольких переменных этой
функции. Результат вычислений становится известен всем членам группы,
однако ни один из них не в состоянии выяснить что-либо о значениях,
поданных на вход функции другим членом группы.
Вычисление средней зарплаты
Допустим, что начальник отдела приказал своим подчиненным подсчитать
среднюю зарплату в отделе. Начальник осведомлен о зарплате любого
сотрудника, но слишком занят более важными делами, чтобы отвлекаться на
подобные пустяки. Каждый сотрудник прекрасно знает собственную зарплату, но
категорически не желает сообщать о ней сослуживцам. Чтобы сотрудники отдела
могли просуммировать свои оклады, сохранив их в тайне от других, им следует
воспользоваться следующим протоколом:
1. Антон генерирует случайное число, прибавляет его к своей зарплате,
шифрует полученную сумму при помощи открытого ключа Бориса и затем
передает то, что у него получилось, Борису.
2. На своем тайном ключе Борис расшифровывает результат, вычисленный
Антоном, прибавляет к нему свою зарплату, шифрует полученную сумму при
помощи открытого ключа Владимира и затем передает то, что у него
получилось, Владимиру.
3. На своем тайном ключе Владимир расшифровывает результат,
вычисленный Борисом, прибавляет к нему свою зарплату, шифрует
полученную сумму при помощи открытого ключа Георгия и затем передает
то, что у него получилось, Георгию.
4. На своем тайном ключе Георгий расшифровывает результат, вычисленный
Владимиром, прибавляет к нему свою зарплату, шифрует полученную сумму
при помощи открытого ключа Антона и затем передает то, что у него
получилось, Антону.
5. На своем тайном ключе Антон расшифровывает результат, вычисленный
Георгием, вычитает из него случайное число, сгенерированное на шаге 1,
делит на количество сотрудников отдела и получает искомую среднюю
зарплату в отделе.
Точность вычисления средней зарплаты зависит от честности каждого
сотрудника. Если хотя бы один из участников протокола соврет относительно
своего жалованья, итоговое значение будет неверным. Особенно большими
потенциальными возможностями для злоупотреблений обладает Антон. На шаге 5
он может вычесть любое число, какое только придет ему в голову, и никто не
заметит подделки. Поэтому необходимо обязать Антона воспользоваться какой-
либо из схем предсказания бита. Однако если от Антона потребуется раскрыть
перед всеми случайное число, сгенерированное им на шаге 1, зарплату Антона
узнает Борис. Это значит, что начальнику отдела все же придется отвлечься и
выполнить вычисления, предусмотренные шагом 2 протокола, самому. Ведь он и
так в курсе размера оплаты труда Антона.
Как найти себе подобного
Антон любит играть с резиновыми куклами, изготовители которых
потрудились на славу, тщательно скопировав в натуральную величину
определенные особенности анатомического строения женщины. А Борису нравится
во всех красочных подробностях наблюдать за жизнью соседей из
многоквартирного дома напротив при помощи современных оптических
приспособлений. Оба тщательно скрывают свои пристрастия от родственников,
друзей и коллег по работе, но очень хотели бы найти людей, которые
разделяют их интересы.
Фирма "Совместные анонимные вычисления" готова оказать необходимую
помощь Антону, Борису и им подобным в подборе таких же чудаков, как они
сами. Сотрудники фирмы составили всеобъемлющий список всех человеческих
чудачеств, каждое из которых снабжено уникальным идентификатором из семи
цифр. Обратившись в фирму, Антон и Борис принимают участие в выполнении
шагов некоторого протокола, после чего узнают, испытывают ли они склонность
к одним и тем же чудачествам. При положительном ответе они смогут связаться
друг с другом и слиться во взаимном экстазе. Если ответ будет
отрицательным, об их необычных пристрастиях не узнает никто, включая
сотрудников фирмы.
Протокол выглядит так:
1. Используя однонаправленную функцию, Антон преобразует 7-значный
идентификатор своего чудачества в другое 7-значное число.
2. Трактуя полученное на шаге 1 число как телефонный номер, Борис
набирает этот номер и оставляет его абоненту свои координаты. Если на
вызов никто не отвечает или такого телефонного номера не существует,
Антон применяет к нему однонаправленную функцию и получает новое
семизначное число. Так продолжается до тех пор, пока кто-нибудь не
ответит на телефонный звонок Антона.
3. Антон сообщает в фирму, сколько раз Борис должен применять
однонаправленную функцию, чтобы получить искомый телефонный номер.
4. С помощью однонаправленной функции Борис преобразует 7-значный
идентификатор своего чудачества столько раз, сколько это делал Антон,
и получает 7-значное число, которое трактует как телефонный номер.
Борис звонит по полученному им номеру и спрашивает, нет ли для него
какой-либо информации.
Следует отметить, что Борис может предпринять атаку с выбранным
открытым текстом. Узнав идентификаторы распространенных человеческих
чудачеств, Борис будет по очереди перебирать их, применять к ним
однонаправленную функцию и звонить по получающимся у него телефонным
номерам. Поэтому необходимо сделать так, чтобы количество возможных
чудачеств было достаточно велико и подобного рода атака стала в результате
неосуществимой.
Депонирование ключей
С незапамятных времен одним из наиболее распространенных методов
слежки является подслушивание, включающее в себя перехват сообщений,
которыми обмениваются люди, являющиеся объектами наблюдения. Сегодня,
благодаря широкому распространению стойких криптосистем с открытым ключом,
у преступников и террористов появилась возможность обмениваться посланиями
по общедоступным каналам связи, не боясь подслушивания со стороны кого бы
то ни было. В связи с этим у правоохранительных органов возникла
настоятельная необходимость при определенных условиях осуществлять
оперативный доступ к открытым текстам шифрованных сообщений, циркулирующих
в коммерческих коммуникационных сетях.
В 1993 году американское правительство впервые публично объявило о
своих планах внедрения Стандарта шифрования данных с депонированием ключа.
В соответствии с этим стандартом для шифрования данных предполагается
использовать защищенную микросхему под названием Clipper, которая
снабжается уникальным идентификационным номером и депонируемым ключом.
Депонируемый ключ состоит из двух частей, которые раздельно хранятся в двух
различных уполномоченных правительственных ведомствах. Для шифрования
открытого текста сообщения микросхема генерирует сеансовый ключ. Этот ключ
шифруется при помощи депонируемого ключа и в зашифрованном виде
присоединяется к шифрованному тексту сообщения вместе с идентификационным
номером микросхемы. В случае возникновения необходимости ознакомиться с
содержанием сообщения, зашифрованного при помощи микросхемы Clipper,
правоохранительным органам достаточно в установленном порядке обратиться в
уполномоченные правительственные ведомства за хранящимся там депонируемым
ключом, расшифровать с его помощью сеансовый ключ, а затем прочесть искомый
открытый текст сообщения.
В самом общем случае Стандарт шифрования данных с депонированием ключа
реализуется с помощью следующего криптографического протокола:
1. Антон генерирует пару ключей, состоящую из открытого и тайного
ключа, и делит их на n частей.
2. Антон посылает каждую часть тайного ключа и соответствующую ей
часть открытого ключа отдельному доверенному лицу.
3. Каждое доверенное лицо проверяет полученные от Антона части
открытого и тайного ключа и помещает их на хранение в надежное место.
4. Если правоохранительные органы добиваются разрешения ознакомиться с
перепиской Антона, они обращаются к его доверенным лицам и реконструируют
соответствующий тайный ключ.
Существуют различные варианты протокола шифрования данных с
депонированием ключа. Например, в него можно встроить пороговую схему с
тем, чтобы для восстановления тайного ключа нужно было собрать не все n, а
лишь не менее m (m<n) частей этого ключа, распределенных Антоном среди
своих доверенных лиц. Кроме того, протокол шифрования данных с
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15