Смекни!
smekni.com

Криптографические протоколы (стр. 4 из 14)

Следующий протокол позволяет Антону послать два сообщения, одно из которых будет принято Борисом, но какое именно, Антон так и не узнает.

1. Антон генерирует две пары ключей, состоящих из открытого и тайного ключа, и отсылает оба открытых ключа Борису.

2. Борис генерирует ключ для симметричного алгоритма (например, для DES-алгоритма), шифрует этот ключ при помощи одного из открытых ключей, присланных Антоном, и отсылает обратно Антону.

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

4. Антон шифрует два сообщения по DES-алгоритму, используя в качестве ключей обе битовые последовательности, которые были получены им на шаге 3, и отсылает результаты шифрования Борису.

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

Теперь у Бориса имеется одно из двух сообщений Антона, однако последний не может со всей определенностью сказать, какое именно. К сожалению, если в протоколе не предусмотреть дополнительный проверочный шаг, у Антона будет возможность смошенничать (например, зашифровать на шаге 4 два идентичных сообщения). Поэтому необходим еще один, заключительный шаг протокола:

6. После того как отпала надобность хранить в секрете второе сообщение (к примеру, у Бориса нашлись еще 500 рублей, чтобы выкупить у Антона оставшуюся половину множителя), Антон предоставляет Борису свои тайные ключи, чтобы тот мог убедиться в честности Антона.

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

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

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

Анонимные совместные вычисления

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

Вычисление средней зарплаты

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

1. Антон генерирует случайное число, прибавляет его к своей зарплате, шифрует полученную сумму при помощи открытого ключа Бориса и затем передает то, что у него получилось, Борису.

2. На своем тайном ключе Борис расшифровывает результат, вычисленный Антоном, прибавляет к нему свою зарплату, шифрует полученную сумму при помощи открытого ключа Владимира и затем передает то, что у него получилось, Владимиру.

3. На своем тайном ключе Владимир расшифровывает результат, вычисленный Борисом, прибавляет к нему свою зарплату, шифрует полученную сумму при помощи открытого ключа Георгия и затем передает то, что у него получилось, Георгию.

4. На своем тайном ключе Георгий расшифровывает результат, вычисленный Владимиром, прибавляет к нему свою зарплату, шифрует полученную сумму при помощи открытого ключа Антона и затем передает то, что у него получилось, Антону.

5. На своем тайном ключе Антон расшифровывает результат, вычисленный Георгием, вычитает из него случайное число, сгенерированное на шаге 1, делит на количество сотрудников отдела и получает искомую среднюю зарплату в отделе.

Точность вычисления средней зарплаты зависит от честности каждого сотрудника. Если хотя бы один из участников протокола соврет относительно своего жалованья, итоговое значение будет неверным. Особенно большими потенциальными возможностями для злоупотреблений обладает Антон. На шаге 5 он может вычесть любое число, какое только придет ему в голову, и никто не заметит подделки. Поэтому необходимо обязать Антона воспользоваться какой-либо из схем предсказания бита. Однако если от Антона потребуется раскрыть перед всеми случайное число, сгенерированное им на шаге 1, зарплату Антона узнает Борис. Это значит, что начальнику отдела все же придется отвлечься и выполнить вычисления, предусмотренные шагом 2 протокола, самому. Ведь он и так в курсе размера оплаты труда Антона.

Как найти себе подобного

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

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

Протокол выглядит так:

1. Используя однонаправленную функцию, Антон преобразует 7-значный идентификатор своего чудачества в другое 7-значное число.

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

3. Антон сообщает в фирму, сколько раз Борис должен применять однонаправленную функцию, чтобы получить искомый телефонный номер.

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

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

Депонирование ключей

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

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