双線形写像を用いた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が存在するため、安全性を考えるためにはユーザ間で結託して攻撃する場合も想定する必要が出てきます。
- 攻撃者はユーザid1暗号文を解読しようとするときに、ユーザid2やユーザid3の秘密鍵h(id2)a, h(id3)aを不正な手段によって手に入れている場合を想定します。
- このような攻撃対象となっていないユーザの秘密鍵を手に入れて攻撃対象のユーザへの暗号文の解読に成功するような攻撃者B君がいないことを証明することを考えてみます。
- これまでの様にA君がB君を利用して双線形DH問題を解くことを考えると、B君が正しく解読の動作をするためには攻撃対象以外のユーザの秘密鍵をA君が用意してあげる必要があります。しかし、マスター秘密鍵aをA君も知らないのでこれは不可能です。
【ランダムオラクルモデル】
このような場合によく用いられる手法にランダムオラクルモデルを用いる方法が有ります。
ランダムオラクルモデルとは、理想的にランダムな出力をする関数を誰もが利用できると想定する手法です。
- ランダムオラクルの動作をシミュレートすることによって、その入出力を利用して目的とする問題を解く手法です。
例えば、簡易暗号方式5におけるhをid情報からGTの要素を出力するランダムオラクルとすることにより、攻撃者がランダムオラクルを利用する際の入出力を利用できるようにします。
- ランダムオラクルモデルは証明手段としては強力な方法ですが、ランダムオラクルという理想的な関数を想定した上での安全性の証明ですので、実際のシステムに対する安全性の証明ではないことに注意が必要です。
- ランダムオラクルモデルを用いないでの安全性の証明はスタンダードモデルにおいての安全性の証明と呼ばれます。
スタンダードモデルで安全性が証明できるような暗号方式の構成が望まれます。
- 暗号システムの安全性の証明としてはランダムオラクルモデルを用いずに証明できることが本来は望まれます。
ランダムオラクルモデル以外にも攻撃者の動作に制限を設けた上で安全性を証明する手法がありますが、それらの制限を設けずに証明することが本来は望まれています。