Забывчивая передача

Материал из testwiki
Версия от 02:55, 2 апреля 2022; imported>InternetArchiveBot (Спасено источников — 2, отмечено мёртвыми — 0. Сообщить об ошибке. См. FAQ.) #IABot (v2.0.8.6)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Забывчивая передача (часто сокращается как OT — oblivious transfer) — в криптографии тип протокола передачи данных, в котором передатчик передает по одной возможные части информации получателю, но не запоминает (является забывчивым), какие части были переданы, если вообще были.

Первая форма забывчивой передачи была представлена в 1981 году Михаэлем О. РабиномШаблон:Ref. В этой форме передатчик передает сообщение получателю с вероятностью в 1/2, в то же время не запоминая, было или нет сообщение получено получателем. Забывчивый алгоритм Рабина основывается на RSA криптосистеме. Более полезная форма забывчивого протокола называется 1-2 забывчивая передача или «забывчивая передача 1 из 2», была разработана позже Шимоном Ивеном, Одедом Голдрейхом и Абрахамом Лемпелем с целью создания протокола для протоколов конфиденциального вычисления. Этот протокол впоследствии был обобщён в «Забывчивая передача 1 из n», где пользователь получал в точности 1 часть информации, а сервер не знал, какую именно; кроме того, пользователь не знал ничего об оставшихся частях, которые не были получены.

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

Забывчивый алгоритм передачи Рабина

В забывчивом протоколе передачи данных Рабина, отправитель генерирует RSA публичные модули N=pq где p и q большие простые числа и экспоненту е взаимно простую с (p-1)(q-1). Отправитель шифрует сообщение m как me mod N.

  1. Отправитель посылает N, e и me mod N получателю.
  2. Получатель выбирает случайное x mod N и передает x2 mod N отправителю.
  3. Отправитель находит квадратный корень y из x2 mod N и передает y получателю.

Если отправитель находит y не являющийся ни x ни -x mod N, получатель сможет факторизовать N и тем самым расшифровать me для получения m. (более подробно Криптосистема Рабина)

Однако, если y равно x или -x mod N получатель не будет иметь информации о m. Так как каждый квадратичный вычет по mod N имеет 4 квадратных корня, шанс что получатель расшифрует m равен 1/2.

Забывчивый протокол 1 к 2

В данной версии протокола, отправитель посылает два сообщения m0 и m1, а получатель имеет бит b, и хотел бы получить mb, без того что бы отправитель узнал b, в то же время отправитель хочет быть уверенным в том, что получатель получил только одно из двух сообщений.Шаблон:Ref

  1. Отправитель имеет два сообщения, m0,m1, и хочет отправить одно единственное получателю, но не хочет знать какое из них именно он получит.
  2. Отправитель генерирует пару ключей RSA, содержащие модули N, публичную экспоненту e и скрытую d.
  3. Отправитель так же генерирует два случайных значений x0,x1 и отсылает их получателю вместе с публичными модулями и экспонентой
  4. Получатель выбирает b (1, 0) и выбирает или первый или второй xb.
  5. Получатель генерирует случайное значение k и шифрует xb рассчитывая v=(xb+ke)modN, которые возвращает отправителю.
  6. Отправитель не знает какое из x0 и x1 выбрал получатель, и пытается расшифровать оба случайных сообщения, получая два возможных значения k: k0=(vx0)dmodN и k1=(vx1)dmodN. Одно из них будет соответствовать k, будучи корректно расшифрованным, тогда как другое будет случайным значение, не раскрывающем никакой информации о k.
  7. Отправитель шифрует оба секретных сообщения с каждым возможным ключом m'0=m0+k0, m'1=m1+k1 и посылает их оба получателю.
  8. Получатель знает какое из двух сообщений может быть расшифровано с помощью k, и он получает возможность расшифровать только одно сообщение mb=m'bk

Забывчивый протокол 1-из-n и забывчивый протокол k-из-n

Забывчивый протокол 1-из-n и забывчивый протокол k-из-n может быть определён как обобщение забывчивого протокола 1-из-2. Отправитель имеет n сообщений, а получатель — индекс i; получатель желает получить только i-е сообщение из списка, без того что бы отправитель узнал i, а получатель получил только это сообщение.Шаблон:Ref

В дальнейшем этот тип протоколов был обобщён до k-из-n, где получатель получает набор из k из n коллекции сообщений. Набор из k сообщений может быть получен одновременно, или же они могут быть запрошенны по порядку, где каждый следующий запрос основан на предыдущем запросе.

См. также

Примечания

Шаблон:Примечания

Ссылки