双線形写像を用いたIDベース暗号方式

簡易暗号方式3を基にしてIDベース暗号方式の構築を考えてみます。

双線形写像を用いた簡易暗号方式4

簡易暗号方式3においてはe(g,g)abcを計算できれば復号できます。 受信者はaを知らなくてもgacを知っていればe(gac,gb)=e(g,g)abcを求めることができますので、受信者の秘密鍵をaからgacに変更することができます。 更に、f=gcとおくことにして暗号方式3を書き直します。

【公開鍵】
f,g,ga
【受信者の秘密鍵】
fa
【暗号化】
送信者は公開鍵のf,g,ga,と自分で選んだbを用いて
(e(ga,f))b = e(g,f)ab
を求め、平文m∈GTに対する暗号文をe(g,g)bとme(g,g)abの組
(gb,me(g,f)ab)
とします。
【復号化】
暗号文(gb,me(g,f)ab)のgb、秘密鍵faより、
(e(gb,f))a = e(g,f)ab
を求め、
me(g,f)ab/ e(g,f)ab = m
と平文mを求めます。
双線形DH問題はg,ga,gb,fからe(g,f)abを求める問題と表すこともできます。
g,ga,fは公開鍵、gbは暗号文から盗聴者にも手に入りますが、e(g,f)abは求められません(双線形DH問題)。

例えば、公開鍵のfをユーザのID情報から誰でも求められるユーザごとに異なる値として設定することができます。
更に、aをマスター秘密鍵と考えて秘密鍵発行機関が保持し、秘密鍵発行機関がユーザごとに秘密鍵 fa を発行することにするとIDベース公開鍵暗号方式になります。


双線形写像を用いた簡易暗号方式5(IDベース暗号方式)

暗号方式4において公開鍵fを受信者ごとにID情報から求まる値とします。
受信者のID情報をidとし、それぞれのID情報idにG1上の異なる要素h(id)を割当てる関数をhとします。
h(id) (∈GT)がID情報idをもつ受信者の公開鍵となります。
関数hは誰でも利用できる関数として公開鍵の一部となります。

【公開鍵】
g,ga, 関数h
【ID情報がidの受信者の秘密鍵】
h(id)a,
【暗号化】
送信者は受信者のid、公開鍵のg,ga, hと自分で選んだbを用いて
(e(ga,h(id)))b = e(g,h(id))ab
を求め、平文m∈GTに対する暗号文をe(g,g)bとme(g,g)abの組
(gb,me(g,h(id))ab)
とします。
【復号化】
暗号文(gb,me(g,h(id))ab)のgb、秘密鍵h(id)aより、
(e(gb,h(id)))a = e(g,h(id))ab
を求め、
me(g, h(id))ab/ e(g, h(id))ab = m
と平文mを求めます。
更に双線形写像の性質を利用できないかと考えるところがここから先の研究となります。


双線形写像を用いた簡易暗号方式5の安全性

簡易暗号方式5は公開鍵をid情報から求まるh(id)としており、秘密鍵発行機関はマスター秘密鍵aを用いてidに対応する秘密鍵h(id)aを発行します。
ユーザのすべての秘密鍵に共通のマスター秘密鍵aが存在するため、安全性を考えるためにはユーザ間で結託して攻撃する場合も想定する必要が出てきます。

【ランダムオラクルモデル】
このような場合によく用いられる手法にランダムオラクルモデルを用いる方法が有ります。
ランダムオラクルモデルとは、理想的にランダムな出力をする関数を誰もが利用できると想定する手法です。