В криптографии социалистическая задача миллионера [1] — это задача, в которой два миллионера хотят определить, равно ли их богатство, не раскрывая никакой информации о своем богатстве друг другу. Это вариант задачи миллионера [2] [3] , в которой два миллионера хотят сравнить свои богатства, чтобы определить, у кого больше богатства, не раскрывая никакой информации о своем богатстве друг другу.
Часто используется как криптографический протокол , позволяющий двум сторонам проверять личность удаленной стороны с помощью общего секрета, избегая атаки типа «человек посередине» без неудобств ручного сравнения отпечатков открытых ключей через внешний канал. По сути, можно использовать относительно слабый пароль/парольную фразу на естественном языке.
Мотивация
У Алисы и Боба есть секретные значения и , соответственно. Алиса и Боб хотят узнать, не позволяя ни одной из сторон узнать что-либо еще о секретном значении другой.
Пассивный злоумышленник, просто шпионящий за сообщениями, которыми обмениваются Алиса и Боб, ничего не узнает о и , даже о том, есть ли .
Даже если одна из сторон нечестна и отклоняется от протокола, эта сторона не может узнать ничего большего, чем если бы .
Активный злоумышленник, способный произвольно вмешиваться в общение Алисы и Боба ( атака «человек посередине» ), не может узнать больше, чем пассивный злоумышленник, и не может повлиять на результат протокола, за исключением того, что он может выйти из строя.
Таким образом, протокол может использоваться для аутентификации, имеют ли две стороны одинаковую секретную информацию. Популярный пакет криптографии мгновенных сообщений Off-the-Record Messaging использует протокол Socialist Millionaire для аутентификации, в котором секреты и содержат информацию о долгосрочных открытых ключах аутентификации обеих сторон, а также информацию, введенную самими пользователями.
Группа простого порядка и генератор согласуются априори и на практике обычно фиксируются в данной реализации. Например, в протоколе Off-the-Record Messaging — это определенное фиксированное простое число размером 1536 бит. — это генератор подгруппы простого порядка , и все операции выполняются по модулю , или, другими словами, в подгруппе мультипликативной группы , .
Алиса вычисляет и отправляет результат Бобу, который затем вычисляет .
Боб вычисляет и отправляет его Алисе, которая затем вычисляет .
поскольку умножение в ассоциативно. Обратите внимание, что эта процедура небезопасна против атак типа «человек посередине» .
Протокол социалистического миллионера [4] имеет только несколько шагов, которые не являются частью вышеприведенной процедуры, и безопасность каждого из них основана на сложности задачи дискретного логарифма , как и вышеприведенная. Все отправленные значения также включают доказательства с нулевым разглашением того, что они были сгенерированы в соответствии с протоколом.
Часть безопасности также полагается на случайные секреты. Однако, как написано ниже, протокол уязвим к отравлению, если Алиса или Боб выбирают любой из , , , или равным нулю. Чтобы решить эту проблему, каждая сторона должна проверить во время обмена Диффи-Хеллмана , что ни один из , , , или , которые они получают, не равен 1. Также необходимо проверить, что и .
Элис
Многопартийность
Боб
1
Случайное сообщение
Публичный
Случайное сообщение
2
Безопасный
3
Безопасный
4
Тест ,
Тест ,
5
6
Небезопасный обмен
7
Безопасный
8
Тест ,
Тест ,
9
Тест
Тест
Обратите внимание, что:
и поэтому
.
Из-за случайных значений, хранящихся в секрете другой стороной, ни одна из сторон не может заставить и быть равными, если только не равны , в этом случае . Это доказывает правильность.
^ Маркус Якобссон , Моти Юнг (1996). «Доказательство без знания: о забывчивых, агностических и слепых доказывающих». Достижения в криптологии – CRYPTO '96, том 1109 Lecture Notes in Computer Science . Берлин. стр. 186–200 . doi : 10.1007/3-540-68697-5_15 .
^ Эндрю Яо (1982). «Протоколы для безопасной связи» (PDF) . Труды 23-го симпозиума IEEE по основам компьютерной науки (FOCS '82) . стр. 160–164 . doi :10.1109/SFCS.1982.88.
^ Эндрю Яо (1986). «Как генерировать и обмениваться секретами» (PDF) . Труды 27-го симпозиума IEEE по основам компьютерной науки (FOCS '86) . стр. 162–167 . doi :10.1109/SFCS.1986.25.
^ Фабрис Будо, Берри Шёнмейкерс, Жак Траоре (2001). «Справедливое и эффективное решение проблемы социалистических миллионеров» (PDF) . Дискретная прикладная математика . 111 (1): 23– 36. doi :10.1016/S0166-218X(00)00342-5.{{cite journal}}: CS1 maint: multiple names: authors list (link)
Внешние ссылки
Описание протокола OTR-Messaging версии 2
Объясни это так, будто мне пять: Социалистическая задача миллионера и безопасные многопартийные вычисления на Wayback Machine (архивировано 25 декабря 2022 г.)
Goldbug Messenger, который использует реализацию Socialist Millionaire Protocol