Проблема калибровочной иерархии
- 1 year ago
- 0
- 0
Проблема обедающих криптографов посвящена способам безопасного многостороннего вычисления булевой функции ИЛИ . Дэвид Чаум первым обозначил эту проблему в 1988 году и использовал наглядный пример, показывающий, что существует возможность отправления анонимных сообщений с отсутствием ограничений для отправителя и с непрослеживаемостью адреса получателя . Анонимные сети связи, способные разрешать данную проблему, часто упоминаются как DC-сети .
Несмотря на слово «обедающий», проблема обедающих криптографов не имеет никакого отношения к проблеме обедающих философов .
Три криптографа собрались за обеденным столом. Официант сообщает им, что их еда уже была кем-то оплачена. Это может быть один из криптографов или Агентство национальной безопасности (NSA). Криптографы уважают право друга совершить оплату анонимно, но хотят выяснить, заплатило ли Агентство национальной безопасности. Поэтому они решают претворить в действие двухэтапный протокол.
На первом этапе каждые два криптографа определили общий секрет весом в один бит, договорившись бросать монету. Они спрятались за меню таким образом, что только два бросающих криптографа могут видеть результат подбрасывания. Предположим, после подбрасывания монеты криптографы A и B имеют общий секрет — , криптографы А и С — , В и С — .
На втором этапе каждый криптограф публично объявляет бит, который вычисляется следующим образом:
Предположим, что ни один из криптографов не платил, тогда криптограф А объявит , В объявит , С — . С другой стороны, если криптограф А совершил оплату, то он объявит .
По завершении второго этапа выявляется истина. Один из криптографов выполняет операцию XOR всех заявленных бит. Если в результате получается , то это означает, что никто из криптографов не платил (поэтому можно сделать вывод, что оплата была совершена NSA). В противном случае, если заплатил один из криптографов, то его личность остается неизвестной для всех других коллег.
Для данной задачи Дэвид Чаум придумал термин «проблема обедающих криптографов», а также название для сетей, способных решать данную проблему .
В оригинальной работе Дэвида Чаума постулируется несколько ограничений, которые могут влиять на практическое использование протокола DC-сетей.
DC-сети обобщаются для обеспечения передач, больших, чем размером в один бит для более чем трех участников, и для произвольных букв алфавита, отличных от двоичных 0 и 1.
Для того, чтобы анонимный отправитель мог передать более одного бита информации за один раунд исполнения протокола DC-сети, группа криптографов может просто повторить протокол столько раз, сколько необходимо, чтобы создать нужное количество бит (исходя из пропускной способности канала). В DC-сетях пары участников имеют возможность заранее договориться об одном общем ключе, используя, например, ключ полученный с помощью протокола Диффи-Хеллмана . Затем каждый участник локально устанавливает этот общий ключ в генератор псевдослучайных чисел для того, чтобы произвести как можно больше общих «бросков монеты», что позволит анонимному отправителю передать несколько бит информации .
Протокол может быть применен к группе, состоящей из участников, каждый из которых имеет общий секретный ключ с остальными участниками. В каждом раунде работы протокола, если участник хочет передать сообщение, которое не может быть прослежено, всей группе, он инвертирует его публично объявленные биты. Участники могут быть представлены в виде полного графа , где вершины — участники, а ребра — их общие секретные ключи .
Протокол может быть запущен с использованием неполного графа общих ключей, который может улучшить производительность и масштабируемость реализованных на практике DC-сетей. Однако, в случае использования неполного графа появляется риск того, что участники сговора могут разделить граф совместного доступа на отдельные компоненты связности и добиться нарушения анонимности. Например, для группы из более чем трёх участников привлекателен вариант с использованием кольцевой топологии , где каждый сидящий за столом криптограф имеет общий секретный ключ только с коллегами, сидящими непосредственно слева и справа от него. Такая топология привлекательна, так как каждый криптограф должен координировать два броска монеты за один раунд, а не бросков, как в случае с оригинальным полным графом ключей. Тем не менее, если бы агенты NSA Адам и Чарли, сидящие непосредственно слева и справа от простолюдина Боба, тайно вступили в сговор и раскрыли свои секретные ключи друг другу, то они могли бы с уверенностью определить, является ли Боб отправителем текущего бита-сообщения в рамках рассматриваемого раунда, независимо от общего количества участников. Такой эффект возникает по причине того, что сговорившиеся участники, Адам и Чарли, «раскололи» граф общего доступа на два независимых разрозненных компонента, один из которых состоит только из Боба, другой — из всех остальных честных участников .
Другая топология DC-сети общего доступа, используемая в системе для масштабирования , может быть описана как клиент-серверная топология. В этом варианте определено два типа участников, играющих разные роли: потенциально большое количество пользователей , которые желают остаться анонимными, и гораздо меньшее число доверенных лиц, чья роль заключается в обеспечении анонимности всех пользователей. В такой топологии каждый из пользователей имеет общий секретный ключ с каждым из доверенных лиц, но пользователи не имеют общих секретных ключей друг с другом непосредственно, так же как и доверенные лица не имеют общих секретных ключей друг с другом — результатом является матрица взаимодействия . Если число доверенных лиц мало, то каждый пользователь должен владеть сведениями только о нескольких общих секретных ключах, что улучшает эффективность взаимодействия пользователей таким же образом, как это было осуществлено в кольцевой топологии. Тем не менее, до тех пор, пока хотя бы один участник из числа доверенных лиц ведет себя честно и не выдает свои секреты или не вступает в сговор с другими участниками, это честное доверенное лицо становится хабом , который соединяет всех честных пользователей в одну взаимодействующую со всеми своими частями компоненту, независимо от того, вступили ли другие пользователи или доверенные лица в нечестный сговор. Пользователям не нужно знать или угадывать, какие доверенные лица честны; их безопасность, по мнению авторов протокола, зависит только от существования по крайней мере одного честного, не участвующего в сговоре доверенного лица.
Хотя простой протокол DC-сети использует двоичный код в качестве алфавита передачи и оператор XOR для объединения шифротекстов, основной протокол вводит в употребление любой из алфавитов и использует операторы, аналогичные XOR, допустимые для использования в шифровании Вермана . Такая гибкость возникает естественно, поскольку секреты распределены между многими парами участников, которые, по факту, реализуют между собой шифрование Вермана в пределах одного раунда DC-сети .
Одним из альтернативных выборов алфавита DC-сети является использование конечной группы, подходящей для использования в криптографии с открытым ключом. Например, допустимо использовать или эллиптические кривые . Такой выбор алфавита позволяет участникам использовать доказательство с нулевым разглашением для проверки производимого протоколом шифротекста. В частности проверяется, не нарушает ли один из участников протокол, причем при проверке соблюдается анонимность предусмотренная DC-сетью. Эта техника была впервые предложена Голлем и Джуэлсом и реализована в , имплементации .
В оригинальной работе Чаума предлагается следующий метод обработки коллизий. Пользователь, занимающийся в данный момент отправкой сообщения в DC-сети, в каждом раунде своей передачи получает результирующий бит. Если результирующий бит не совпадает с тем, который он хочет передать в текущем раунде, пользователь делает вывод, что происходит коллизия. Он ждет случайное число раундов, и вновь пересылает своё сообщение. Конкретные параметры пересылки Чаум предлагает выбирать на основе анализа трафика в сети .
предотвращает непреднамеренные коллизии в сети используя расписание передачи сообщений. Расписание составляется с помощью случайной перетасовки участников, причем каждый из участников знает, какие из предполагаемых бит передачи относятся к его очереди, но не знает, кому принадлежат остальные биты .
Herbivore так же предлагает участникам договориться о расписании передачи сообщений в каждом раунде коммуникации. Каждый участник выбирает себе случайный слот расписания для передачи, и если этот слот используют кто-то другой, то рассматриваемый участник отказывается от передачи. Если участник ждёт своего слота слишком долго, он автоматически переподключается к группе через определённый протоколом отрезок времени. Протоколом предусмотрена проверка целостности данных с использованием алгоритма хеширования MD5 .
Herbivore разделяет DC-сеть на несколько групп, позволяя участникам уходить от нарушений. Участник может покинуть свою текущую группу и проверять другие до тех пор, пока не найдет группу, свободную от нарушений . Такой подход может привести к тому, что злоумышленник, обладающий доступом во многие группы DC-сети, может манипулировать поведением участника, подводя его к участию в группе, где все остальные участники находятся в сговоре .
имплементирует несколько схем для противодействия нарушениям. Оригинальный протокол использует случайные расписания передачи сообщений и распространяет таблицу передачи вместе с размером текущего сообщения. Такой подход позволяет проверить корректность последовательности шифротекста в DC-сети с помощью вычисления хеш-функции . Однако, такая техника ведет к большим, по расчётам авторов, задержкам в передаче сообщений. Позже, была предложена другая схема противодействия, которая не производит перемешивания для построения расписания передачи в отсутствие нарушений, но в случае, если в сети начинаются нарушения, перемешивание возобновляется, и появляется возможность вычислить нарушителя. Самые современные версии поддерживают полную проверку DC-сети при значительной стоимости вычислений из-за использования криптосистемы с открытым ключом . В то же время, современные версии могут работать в гибридном режиме, который использует традиционные DC-сети, основанные на XOR-операции в нормальном случае, и использует проверяемые DC-сети только в случае нарушений. По мнению авторов протокола такой подход позволяет вычислить нарушителя быстрее, чем это возможно с помощью построения расписания передачи на основе перетасовок .