Проблема миллионера Яо Цичжи: конфиденциальность и безопасность

Безопасность

"Сегодня я слышал, как г-н Мо говорил о проблеме миллионеров, поднятой Яо Цичжи. Это удивительно. Это слишком сильно. Я думаю, что это так же волшебно, как и доказательство с нулевым разглашением. Может быть, в этом и заключается прелесть математики. Не раскрывая личной жизни, можно сравнить богатство двух богатых людей. Это действительно слишком сильно, я восхищаюсь этим. В конечном счете, это все математика. Важность изучения математики очевидна. Давай, учи математику!

Далее я напишу и разберусь в проблеме "Миллионер" с точки зрения новичков.При этом ниже также есть адрес скачивания диссертации г-на Яо Цичжи, и вам нужно забрать ее самостоятельно.

1. Проблема миллионера:

Во-первых, предположим, что есть два миллионера А и В, и оба А и В имеют одинаковый уровень богатства. Пусть у А есть i миллиардов, а у B - j миллиардов.0<i,j<=10 0<i,j<=10. Затем начните богатство большого ПК.

Первая инициализация: A имеет открытый ключPKAPK_Aи закрытый ключSKASK_A, функция шифрования E и функция дешифрования D , B знает открытый ключ A, но не закрытый ключ.

1) Б делать что-то:

  1. Сначала B берет случайное большое число x, а затем шифрует его открытым ключом A, чтобы получитьk=E(x,PKA)k=E(x, PK_A),соответствующийx=D(k,SKA)x=D(k, SK_A)
  2. Рассчитатьm=kj+1m=k-j+1, пошлите m А.

2) Что должен сделать А:

  1. Рассчитатьkj+1,kj+2,,kj+j,,kj+10k-j+1,k-j+2,\cdots,k-j+j,\cdots,k-j+10,так какm=kj+1m=k-j+1, так что это эквивалентно вычислениюm,m+1,,k,,m+9m,m+1,\cdots,k,\cdots,m+9, ты найдешьkjk-jОт прибавления 1 до прибавления 10 нужно прибавлять j, потому чтоj(0,10]j\subseteq(0, 10].
  2. Затем, используя закрытый ключ А,y=D(m,SKA)y=D(m, SK_A), расшифрованоm,m+1,,k,,m+9m,m+1,\cdots,k,\cdots,m+9Значения соответственноy1,y2,,yj,,y10y_1, y_2,\cdots,y_j,\cdots,y_{10}.
  3. правильноyny_nвыполнить операцию по модулю,zn=ynmod pz_n=y_n\mod\ p, где p — случайно сгенерированное простое число A, дающее набор{zn}=z1,z2,,zi,,zj,,z10\{z_n\}=z_1, z_2,\cdots,z_i,\cdots,z_j,\cdots,z_{10}, если хотя бы два набора различны, переходим к следующему шагу, иначе перегенерируем простое число p и повторяем третий шаг.
  4. После этого держитеz1,,ziz_1,\cdots,z_iпостоянный,zi+1,,z10z_{i+1},\cdots,z_{10}прибавь 1, станетz1,z2,,zi,zi+1+1,,z9+1,z10+1z_1,z_2,\cdots,z_i,z_{i+1}+1,\cdots,z_9+1,z_{10}+1, то A отправляет этот набор и простое число p в B .

3) Конечный результат:

  1. еслиxmodp=zjx\mod p=z_j, инструкцияzj{z1,,zi}z_j\subseteq\{z_1,\cdots,z_i\},посадочная дистанцияj<=ij<=i.
  2. еслиxmodp=zjx\mod p=z_j, это значитzj{zi+1+1,,z10+1}z_j\subseteq\{z_{i+1}+1,\cdots,z_{10}+1\},посадочная дистанцияj>ij>i.
  3. Наконец, B сообщает A, кто самый богатый.

Доказательство завершено, но у меня все еще есть некоторые сомнения, что это(3).1,j<=ij<=iВ сложившихся обстоятельствах до сих пор не можете судить, у кого больше всего денег?

2. Небольшой пример

Сначала сгенерируйте 10 сундуков, пронумерованных от1,2,3,,101,2,3,\cdots,10, A имеет i миллиард, B имеет j миллиард,0<i,j<=10 0<i,j<=10.

  • Тогда B сначала найдет j-й бин
  • настраивать1,2,,j1, 2,\cdots,jПоле № установлено на 0,j+1,j+2,,10j+1, j+2,\cdots,10Номер ящика установлен на 1.
  • Затем наступает очередь A найти i-й ящик, если значение ящика равно 0, тоjij\geq i, иначе 1, тоjij \leq i.

百万富翁小例子.png

Суммировать:

Г-н Яо Цичжи опубликовал эту статью в 1986 г. В то время Интернет находился в стадии развития, и мало кто обращал внимание на вопросы конфиденциальности.Г-н Яо был очень дальновидным, и он был первым китайцем, выигравшим Премия Тьюринга. Но теперь мы начали уделять внимание вопросам конфиденциальности.Диди урок из прошлого.Страна также придает большое значение построению информационной безопасности, так что учитесь усердно, ха-ха ?