IDベース暗号
概要
公開鍵に任意の文字列(ID)を指定することができる暗号
例えば、メールアドレスを公開鍵としてしてすることで、任意の人に暗号文を送信できる。
送信時に相手が秘密鍵を持っている必要はない
秘密鍵生成局(Private Key Generator:PKG)が全てのユーザの秘密鍵を生成する
圧倒的単一障害点
複数の鍵生成局を利用して権限分散することもある
マスター秘密鍵をもつ
全てのユーザーの秘密鍵を生成できる
全てのユーザーの暗号文を復号できる
全てのユーザーの署名をすることができる
ユーザーは配られた秘密鍵を用いて復号する
ID-Based Encryption(IBE)と呼ぶ
概念自体は1980年代から存在していたが、解読されてしまう方法しか思いつかなかった
ペアリング(双線形写像)という手法を用いることで解決した! この後ペアリング暗号自体も発達した
https://gyazo.com/9d7f76925f0daeea9f44f31ff1800adb
利点
事前に秘密鍵を生成することなく、暗号文を一方的に送りつけることができる
新規ユーザの追加が簡単
IDだけリストで管理すれば良い
欠点
PKGへの全面的な信頼が必要
マスター鍵の更新時に全ての秘密鍵を更新する必要がある
ユーザーが秘密鍵を漏洩させてしまった場合に、ユーザーのIDまで変更する必要がある
ユーザーIDの変更を周知させることが難しい
変更を知らない人が以前のIDで暗号化して送信してしまう可能性が消せない
手順
送信者
平文 m を送信先のIDである a を用いて暗号文 c を作成する
$ c = Enc(a, m)
受信者
受信者の秘密鍵 Ka を秘密鍵生成局から受け取る
秘密鍵を用いて復号する
$ m = Dec(Ka, c)
秘密鍵生成局
全てのユーザのIDに対応した秘密鍵を生成する
受信者から秘密鍵受け取り申請が来たら配布する
暗号方式
楕円曲線上のペアリング(双線形写像)に基づいているため、IBEにはペアリングも実装する必要あり
IBE実装例
Boneh-Franklin方式
境-笠原方式
ペアリング方式
Weil Pairing方式
Tate Pairing方式
その他のアプローチ方式
暗号化の効率が悪いので、実用的ではない
Cocks IBE方式
平方剰余仮定(QR仮定)
1bit 毎に暗号化する
細かい仕組み
Setup(準備)
ペアリングのセッティングとマスター秘密鍵を生成
秘密鍵以外のパラメータは全て公開
有限体 $ G_1, G_2
ペアリング $ e
楕円曲線上の点 $ P
マスター秘密鍵 $ s
ハッシュ関数 $ H_1, H_2
楕円曲線上の点 $ P_{pub} = sP
Extract(ユーザの秘密鍵の取得)
ユーザのIDから秘密鍵を計算する
ユーザID $ ID
ユーザ秘密鍵 $ d_{ID} = H_1(ID)
Encrypt(暗号化)
任意のユーザIDに向けて暗号文を作成する
この時公開されているSetupのパラメータを含める
乱数 $ r
メッセージ $ M
ペアリングに使用するユーザパラメタ $ g_{ID} = e(H_1(ID), P_{pub})
暗号文 $ C = < rP, M \oplus H_2(g_{ID}^{r})>
Decrypt(復号化)
暗号文をユーザ秘密鍵で復号する
この時ペアリングの特徴を使用している
暗号文 $ C = <U, V>
復号されたメッセージ $ M = V \oplus H_2(e(d_{ID}, U))
ペアリングの特徴 $ e(aP, Q) = e(P, Q)^a = e(P, aQ)
実装
TEPLA(University of Tsukuba Elliptic Curve and Library)
有限体上の元の計算
楕円曲線上の演算
ペアリング演算
筑波大学で配信されている
PBC Library
国際的には最も一般的
スタンフォード大学で配信されている
参考文献
調査報告書
IDベース暗号に関する調査報告書
CRYPTREC IDベース暗号調査WG
ペアリング暗号の実用化に向けて
岡本栄司
スライド
IDベース暗号の概観と今後の展望
東邦大学 金岡昇
Webページ
双線形写像を用いたIDベース暗号方式
岸本研究室
メールアドレスを公開鍵にする――「ペアリング」とその応用例
光成滋生