紛失通信
概要
紛失通信 (oblivious transfer; OT) は送信者の送信する
暗号理論での oblivious とは、一方が送ったデータを知ることなく、他方が暗号理論的な計算を行うプロトコルを表す。
Table of Contents
単純な 1-out-of-2 紛失通信プロトコル
送信者の Alice は 2 つのデータ
例 1: 2-way
文献 [1] の例は Alice と Bob の双方が不正を行わないという前提で機能する。
Bob: 公開鍵ペア
と、公開鍵と同じサイズだが完全にランダムなビットで構成された偽の公開鍵 を生成し、 を Alice に送信する。 Alice:
と をそれぞれ対応する , で暗号化した を Bob に送信する。 Bob:
を秘密鍵 で復号化してデータ を得る。このとき Alice は Bob がどちらのデータを入手したかを知るすべがないことに注意。
この例では Alice は
例 2: 3-way
文献 [2] の例は Bob が両方のデータを入手できないプロトコルになっている。
Alice: 2 つの公開鍵ペア
, を生成し、公開鍵 を Bob に送信する。 Bob: 対称鍵
を生成して で暗号化した を Alice に送信する。 Alice:
と それぞれで復号化した , を使って対応するデータ , を暗号化し、 を Bob に送信する。ここで片方の対称鍵 は無意味なビット列になるが、Alice にはどちらが無意味な鍵であるか分からないことに注意。 Bob: 対称鍵
で を復号化して を得る。ここで Bob は を復号化するための鍵 を知らないので を入手できないことに注意。
この例では Bob が
非インタラクティブ紛失転送
文献 [3] は Bob が認証済みの設定で (つまり Alice が Bob の公開鍵を入手している前提で) 離散対数問題の困難性と Diffie-Hellman 仮定に基づいて非インタラクティブな 1-out-of-2 紛失転送を行う方法を提案している。
- 設定:
Alice と Bob は素数
、生成元 、共通参照情報となる (素因数分解が明らかとなっていない) 定数 を共有している。 Alice はデータ
と を持っている。 Bob はランダムに
と を選択する。 , としたとき、公開鍵を 、秘密鍵を とする。公開鍵は Alice に共有されているものとする。
Alice:
をランダムに選び、Bob に と を送信する。 Bob: 秘密鍵に基づいて
を計算し、 を取得する。
Diffie-Hellman 仮定では
- Alice は Bob の公開鍵が正しいことを
で検証できる。 - Bob は
となるような を計算することが困難であるため、 を取得することは困難である。
ただし、Bob が
文献 [3] の方法は非インタラクティブである代わりに
-out-of- 紛失転送への拡張
文献 [3] の方法は少しの変更で
Alice はデータ
を持っている。 Bob はランダムに
と を選択する。 とし、残った 1 つは とする。公開鍵を 、秘密鍵を とする。
後のプロトコルにも同様の拡張を加えれば良い。
参考文献
- Le Trieu Phong. 紛失通信プロトコルの考察. 情報通信研究機構季報 = Review of the National Institute of Information and Communications Technology / 情報通信研究機構広報部編 57 ((3・4)), 193-199, 2011.
- Bruce Schneier. Applied Cryptography: Protocols, Algorithms and Source Code in C, Vol 2 §5.5. Published by Wiley 2015
- BELLARE, Mihir; MICALI, Silvio. Non-interactive oblivious transfer and applications. In: Advances in Cryptology — CRYPTO’89 Proceedings. CRYPT0 ‘89, LNCS 435, pp. 547-557, 1990