説明

鍵交換システム、鍵交換方法及び鍵交換プログラム

【課題】通信回数及び演算回数を低減した認証鍵交換が行える鍵交換システム、鍵交換方法及び鍵交換プログラムを提供すること。
【解決手段】端末10は、GDHグループから一の要素を選択する選択部111と、一の要素に対して端末10の固有署名鍵により演算を行い、署名情報を生成する署名生成部112と、端末10の固有検証鍵及び署名情報を、端末20へ送信する送信部113と、端末20から、端末20の固有検証鍵を受信する受信部114と、一の要素、端末20の固有検証鍵及び端末10の固有署名鍵に基づいて、共通鍵を生成する鍵生成部115と、を備え、端末20は、端末10から、端末10の固有検証鍵及び署名情報を受信する受信部211と、端末20の固有検証鍵を、端末10へ送信する送信部213と、署名情報、端末10の固有検証鍵及び端末20の固有署名鍵に基づいて、共通鍵を生成する鍵生成部214と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、共通鍵暗号における鍵を共有するための鍵交換システム、鍵交換方法及び鍵交換プログラムに関する。
【背景技術】
【0002】
従来、通信装置(端末)の間で秘密情報の通信を安全に行うために、暗号通信が用いられている。暗号の方式には、共通鍵暗号方式と公開鍵暗号方式とがある。共通鍵暗号方式は、暗号通信を行う端末の間で共通の鍵を用いる方式であり、例えばAES(Advanced Encryption Standard)が知られている。また、公開鍵暗号方式は、秘密鍵と公開鍵との2つの鍵を用いる方式で、例えばRSA(Rivest Shamir Adleman)暗号が知られている。
【0003】
ところで、公開鍵暗号方式は、暗号化のために端末間で鍵交換をする必要がないという利点がある。しかし、公開鍵暗号方式は、共通鍵暗号方式と比較して処理速度が遅い、あるいは負荷が重いという性能面での難点があるため、公開鍵暗号方式だけで全ての通信の暗号化を行うのは効率的ではない。
【0004】
一方、共通鍵暗号化方式では、暗号通信を行う端末間で共通鍵を共有することが必要である。原始的には、第三者による傍受の困難な方法として、共通鍵は、それぞれの端末の管理者が対面して交換されたり、通信回線とは別の郵送等のルートを用いて交換されたりしていた。しかし、こうした原始的な共通鍵の交換方法は、非効率であり、ネットワーク通信を実現する上では実用的ではなかった。
【0005】
そこで、通信回線を介して共通鍵を配送する様々な手法が提案されている。例えば、Diffie−Hellmanの鍵共有方式(非特許文献1参照)や、その応用例(特許文献1参照)が提案されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2000−278258号公報
【特許文献2】特開2006−140743号公報
【非特許文献】
【0007】
【非特許文献1】W.Diffie and M.E.Hellman, “New Directions in Cryptography,” IEEE Trans. on Information Theory, Vol.22, No.6, pp.644−654, 1976
【非特許文献2】H.Krawczyk, “HMQV: A High−Performance Secure Diffie−Hellman Protocol,” Advances in Cryptology−CRYPTO 2005, Springer−Verlag, LNCS 3621, pp.546−566, 2005
【発明の概要】
【発明が解決しようとする課題】
【0008】
前述のDiffie−Hellman鍵共有は、通信回線を使用して安全に鍵交換できる方式であるが、鍵交換を行うために共有する乱数値に対して保証がないため、通信に介在して中間者攻撃を受ける可能性がある。つまり、共通鍵の交換のために、ある端末から別の端末へ公開鍵等の情報を送信する際、伝送路上の第三者がこの情報を取得し、偽造情報にすり替えて送信することで鍵交換に割り込み、共通鍵を不正に取得することができる。したがって、第三者により暗号通信の内容が盗聴又は改竄される問題があった。
【0009】
そこで、この中間者攻撃を防止するために、電子署名や認証機能を用いて相互認証を行い、共有する乱数値が真正であることを確認する認証鍵交換(AKE:Autheticated Key Exchange)という方法もある(例えば、非特許文献2及び特許文献2参照)。
【0010】
しかしながら、AKEは、相互認証を行うために、通信量や通信回数が増大し、さらに、鍵を生成するまでの演算負荷が重くなるという課題があった。
【0011】
本発明は、通信回数及び演算回数を低減した認証鍵交換が行える鍵交換システム、鍵交換方法及び鍵交換プログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明では、以下のような解決手段を提供する。
【0013】
(1)第1の端末と第2の端末とが共通鍵を共有する鍵交換システムであって、前記第1の端末及び前記第2の端末には、予め重複しない自然数からなる固有署名鍵と、当該固有署名鍵及びGDH(GAP−Diffie−Hellman)グループに属する公開された要素に基づいて生成される固有検証鍵と、がそれぞれ割り当てられており、前記第1の端末は、前記GDHグループから一の要素を選択する選択部と、前記一の要素に対して前記第1の端末の固有署名鍵により演算を行い、署名情報を生成する署名生成部と、前記第1の端末の固有検証鍵及び前記署名情報を、前記第2の端末へ送信する第1の送信部と、前記第2の端末から、前記第2の端末の固有検証鍵を受信する第1の受信部と、前記一の要素、前記第2の端末の固有検証鍵及び前記第1の端末の固有署名鍵に基づいて、前記共通鍵を生成する第1の鍵生成部と、を備え、前記第2の端末は、前記第1の端末から、前記第1の端末の固有検証鍵及び前記署名情報を受信する第2の受信部と、前記第2の端末の固有検証鍵を、前記第1の端末へ送信する第2の送信部と、前記署名情報、前記第1の端末の固有検証鍵及び前記第2の端末の固有署名鍵に基づいて、前記共通鍵を生成する第2の鍵生成部と、を備える鍵交換システム。
【0014】
このような構成によれば、当該鍵交換システムは、各端末において、発行証明書付きの相手端末の正規の固有検証鍵と、各端末以外が取得することは困難な固有署名鍵とを用いて共通鍵を生成する。第1の端末から第2の端末へ、及び第2の端末から第1の端末への2回の通信回数により、共通鍵の生成に必要な情報は取得され、各端末それぞれで1回の演算により共通鍵が生成される。したがって、当該鍵交換システムは、固有検証鍵による認証を可能としつつ、通信回数及び演算回数を低減した認証鍵交換を行える。
【0015】
(2)前記第1の端末は、前記第1の送信部により、さらに前記一の要素を、前記第2の端末へ送信し、前記第2の端末は、前記第2の受信部により、前記第1の端末から、さらに前記一の要素を受信し、前記公開された要素及び前記署名情報に基づく所定の演算結果と、前記第1の端末の固有検証鍵及び前記一の要素に基づく前記所定の演算結果と、が等しいことを確かめ、前記署名情報の正当性を検証する検証部をさらに備え、前記第2の送信部は、前記検証部により前記署名情報の正当性が検証された場合に、前記第2の端末の固有検証鍵を、前記第1の端末へ送信する(1)に記載の鍵交換システム。
【0016】
このような構成によれば、当該鍵交換システムは、GDHグループから選択された一の要素をさらに第2の端末へ送信することにより、第2の端末において、共通鍵の生成に用いられる署名情報の正当性を検証することができる。このとき、正当性の検証のためには、所定の演算が2回実行されるのみである。したがって、当該鍵交換システムは、相互認証を可能としつつも、演算回数を低減することができる。
【0017】
(3)前記選択部は、前記一の要素を、前記GDHグループからランダムに選択する(1)又は(2)に記載の鍵交換システム。
【0018】
このような構成によれば、当該鍵交換システムは、一の要素をGDHグループからランダムに選択するので、共通鍵の生成に利用されるデータが第三者により取得される可能性を低減することができる。
【0019】
(4)前記選択部は、数値データを前記GDHグループの要素に写像変換する一方向性ハッシュ関数演算により、乱数データから前記一の要素を求める(3)に記載の鍵交換システム。
【0020】
このような構成によれば、当該鍵交換システムは、数値データをGDHグループの要素に写像変換する一方向性ハッシュ関数演算により一の要素を求める。したがって、当該鍵交換システムは、GDHグループに属するランダムな要素を、乱数データから容易に算出することができる。
【0021】
(5)前記選択部は、数値データを固定長の数値データに写像変換する一方向性ハッシュ関数演算により乱数データから算出された数値、及び前記GDHグループの要素に基づいて、前記一の要素を求める(3)に記載の鍵交換システム。
【0022】
このような構成によれば、当該鍵交換システムは、数値データを対象とする簡易な一方向性ハッシュ関数演算を用いて、GDHグループに属するランダムな要素を、乱数データから容易に算出することができる。
【0023】
(6)第1の端末と第2の端末とが共通鍵を共有する鍵交換方法であって、前記第1の端末及び前記第2の端末には、予め重複しない自然数からなる固有署名鍵と、当該固有署名鍵及びGDH(GAP−Diffie−Hellman)グループに属する公開された要素に基づいて生成される固有検証鍵と、がそれぞれ割り当てられており、前記第1の端末は、前記GDHグループから一の要素を選択する選択ステップと、前記一の要素に対して前記第1の端末の固有署名鍵により演算を行い、署名情報を生成する署名生成ステップと、前記第1の端末の固有検証鍵及び前記署名情報を、前記第2の端末へ送信する第1の送信ステップと、前記第2の端末から、前記第2の端末の固有検証鍵を受信する第1の受信ステップと、前記一の要素、前記第2の端末の固有検証鍵及び前記第1の端末の固有署名鍵に基づいて、前記共通鍵を生成する第1の鍵生成ステップと、を実行し、前記第2の端末は、前記第1の端末から、前記第1の端末の固有検証鍵及び前記署名情報を受信する第2の受信ステップと、前記第2の端末の固有検証鍵を、前記第1の端末へ送信する第2の送信ステップと、前記署名情報、前記第1の端末の固有検証鍵及び前記第2の端末の固有署名鍵に基づいて、前記共通鍵を生成する第2の鍵生成ステップと、を実行する鍵交換方法。
【0024】
このような構成によれば、当該鍵交換方法を第1の端末と第2の端末とが実行することにより、(1)と同様の効果が期待できる。
【0025】
(7)第1の端末と第2の端末とに共通鍵を共有させる鍵交換プログラムであって、前記第1の端末及び前記第2の端末には、予め重複しない自然数からなる固有署名鍵と、当該固有署名鍵及びGDH(GAP−Diffie−Hellman)グループに属する公開された要素に基づいて生成される固有検証鍵と、がそれぞれ割り当てられており、前記第1の端末に、前記GDHグループから一の要素を選択する選択ステップと、前記一の要素に対して前記第1の端末の固有署名鍵により演算を行い、署名情報を生成する署名生成ステップと、前記第1の端末の固有検証鍵及び前記署名情報を、前記第2の端末へ送信する第1の送信ステップと、前記第2の端末から、前記第2の端末の固有検証鍵を受信する第1の受信ステップと、前記一の要素、前記第2の端末の固有検証鍵及び前記第1の端末の固有署名鍵に基づいて、前記共通鍵を生成する第1の鍵生成ステップと、を実行させ、前記第2の端末に、前記第1の端末から、前記第1の端末の固有検証鍵及び前記署名情報を受信する第2の受信ステップと、前記第2の端末の固有検証鍵を、前記第1の端末へ送信する第2の送信ステップと、前記署名情報、前記第1の端末の固有検証鍵及び前記第2の端末の固有署名鍵に基づいて、前記共通鍵を生成する第2の鍵生成ステップと、を実行させる鍵交換プログラム。
【0026】
このような構成によれば、当該鍵交換プログラムを第1の端末と第2の端末とに実行させることにより、(1)と同様の効果が期待できる。
【発明の効果】
【0027】
本発明によれば、通信回数及び演算回数を低減した認証鍵交換を行うことができる。
【図面の簡単な説明】
【0028】
【図1】本発明の実施形態に係る鍵交換システムの機能構成を示すブロック図である。
【図2】本発明の実施形態に係る鍵交換システムにおける鍵交換方法を示す概要図である。
【図3】本発明の実施形態に係る鍵交換システムにおける鍵交換方法の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0029】
以下、本発明の実施形態の一例について説明する。本実施形態に係る鍵交換システムは、所定の通信及び演算により、2つの端末間で相互認証をしつつ、共通鍵を共有する。
【0030】
ところで、各端末には、予め重複しない固有署名鍵と固有検証鍵が認証局(CA)によってそれぞれ割り当てられている。固有署名鍵は、所定の自然数(x)からなり、固有検証鍵は、GDH(GAP−Diffie−Hellman)グループ(G)の要素である楕円曲線上の点(g)と固有署名鍵(x)とに基づいて生成される楕円曲線上の点(v=xg)からなることが好ましい。このように構成されることにより、固有署名鍵(x)を知らない第三者が「v」や「g」の値から固有署名鍵(x)を求めることは計算量的に困難となる。
【0031】
ここで、本実施形態で採用される具体的な署名方式について説明する。鍵交換システムでは、基本となる署名方式としてGAP−Diffie−Hellman(GDH)署名を採用する。GDH署名とは、Decision−Diffie−Hellman(DDH)問題をペアリングと呼ばれるある種のブラックボックス関数e(P,Q)を用いることで、解くことが可能であることを利用した署名である。
【0032】
次に、ペアリング演算を用いたGDH署名について説明する。楕円曲線上のDiffie−Hellman問題に関連して、GDHグループが定義されている。GDHグループについて簡単に説明する。Gをある楕円曲線上の点の集合とする。「g」を集合Gの要素としたとき、集合Gにおける楕円曲線上のDecisional Diffie−Hellman(DDH)問題とComputational Diffie−Hellman(CDH)問題が以下のように定義される。
【0033】
DDH問題:あるa、b、c∈Z(p未満の自然数)があり、g、ag、bg、cgが与えられた時、c=abかどうかを判定する問題。
CDH問題:あるa、b、c∈Zがあり、g、ag、bgが与えられた時、abgを計算する問題。
【0034】
このとき、DDH問題は、計算量的に簡単であるが、CDH問題は、計算量的に難問である場合、この集合GをGDHグループと定義する。
【0035】
これに対し、ある楕円曲線上の点をP,Qとし、そのP,Qによっては、次にあげる性質を持つことができるペアリングと呼ばれるブラックボックス関数e(P,Q)を定義できるものが存在する。
e(P,Q+Q)=e(P,Q)e(P,Q) ・・・(1)
e(P+P,Q)=e(P,Q)e(P,Q) ・・・(2)
e(aP,bQ)=e(bP,aQ)=e(abP,Q)=e(P,abQ)=e(P,Q)ab ・・・(3)
【0036】
よって、gがペアリング演算の可能な楕円曲線上の点である場合には、上記の性質から、(3)式にg、ag、bg、cgを入力すると、
e(ag,bg)=e(g,g)ab ・・・(4)
e(g,cg)=e(g,g) ・・・(5)
となり、両者の値が一致するかどうかにより、「ab=c」であるかどうかを判定でき、gはGDHグループGの要素となりうる。
【0037】
この性質を利用してGDH署名が構成される。集合Gは、GDHグループであり、gは集合Gの要素となる点とする。また、一方向性ハッシュ関数Hを、通常使用される任意のビット長のサイズの数値データが固定のビット長のサイズの数値データに写像変換される方式とは異なり、
H:{0,1}→G
のように、任意のビット長のサイズの数値データを、楕円曲線上の点として表現されるGDHグループGの要素に写像変換する方式であると定義する。
【0038】
このとき、GDH署名は以下のように定義される。
鍵生成:自然数x∈Zを選び、gからv=xgを計算する。xを署名鍵、楕円曲線上の点vを検証鍵とする。
署名:署名者は、メッセージ「m∈{0,1}」に対しh=H(m)を計算し、さらに自分の署名鍵を用いてσ=xhを計算する。σをmに対する署名として公開する。
検証:検証者は、メッセージmからh=H(m)を計算し、g、v、h、σを準備する。e(g,σ)とe(v,h)を計算し、両者の値が一致したら、署名σは、正しい署名と判定する。
【0039】
このとき、hの値は集合Gの要素となるので、あるy∈Zを用いてh=ygと表現できる。その結果、正しく署名が行われていれば(g,v,h,σ)=(g,xg,yg,xyg)となる。したがって、正当な署名であれば、上記の検証でのペアリング演算は、e(g,σ)=e(g,xyg)=e(g,g)xy=e(xg,yg)=e(v,h)となり、値が一致することから、検証可能となる。なお、GDHグループの条件であるCDH問題の困難性から、署名鍵xを知らない第三者がg、v、hの値から署名σを導出することは不可能である。
【0040】
図1は、本実施形態に係る鍵交換システム1の機能構成を示すブロック図である。端末10(第1の端末)と端末20(第2の端末)とは、ネットワークを介して接続されている。なお、本実施形態では、端末10から通信を開始することとして説明するが、端末20から開始してもよい。この場合、端末10と端末20とが備える構成(各部)が逆となる。
【0041】
端末10は、制御部11と、記憶部12と、入力部13と、表示部14と、通信部15とを備える。また、端末20も同様に、制御部21と、記憶部22と、入力部23と、表示部24と、通信部25とを備える。
【0042】
制御部11は、端末10の全体を、制御部21は、端末20の全体を制御する部分であり、それぞれ、記憶部12又は記憶部22に記憶された各種プログラムを適宜読み出して実行することにより、前述のハードウェアと協働し、本実施形態における各種機能を実現している。制御部11及び制御部21は、CPU(Central Processing Unit)であってよい。なお、制御部11及び制御部21が備える各部の機能は後述する。
【0043】
記憶部12及び記憶部22は、ハードウェア群を端末10又は端末20として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ハードディスク(HDD)であってよい。具体的には、記憶部12及び記憶部22には、本実施形態の各種機能を制御部11及び制御部21に実行させるプログラムと、公的認証局により発行された固有署名鍵及び固有検証鍵とが記憶される。
【0044】
なお、固有署名鍵及び固有検証鍵の生成元である、GDHグループ(楕円曲線)Gの要素gが与えられており、端末10については、x∈Zを固有署名鍵、xgを固有検証鍵とする。また、端末20については、x∈Zを固有署名鍵、xgを固有検証鍵とする。それぞれの固有検証鍵には、公的認証局による発行証明書が付いており、gと固有検証鍵(v=xg及びv=xg)とは公開されている。
【0045】
入力部13及び入力部23は、端末10又は端末20に対するユーザからの指示入力を受け付けるインタフェース装置である。入力部13及び入力部23は、例えば、キーボード、マウス及びタッチパネル等により構成される。
【0046】
表示部14及び表示部24は、ユーザにデータの入力を受け付ける画面を表示したり、端末10又は端末20による処理結果の画面を表示したりするものである。表示部14及び表示部24は、ブラウン管表示装置(CRT)や液晶表示装置(LCD)等のディスプレイ装置であってよい。
【0047】
通信部15及び通信部25は、ネットワークを介して外部装置と通信を行うネットワーク・アダプタである。通信部15と通信部25とは、端末10と端末20との間の通信を確立し、互いに各種データの送受信を行う。具体的には、本実施形態では、共通鍵の生成及び相互認証に用いられるデータが送受信される。
【0048】
端末10の制御部11は、選択部111と、署名生成部112と、送信部113(第1の送信部)と、受信部114(第1の受信部)と、鍵生成部115(第1の鍵生成部)とを備える。また、端末20の制御部21は、受信部211(第2の受信部)と、検証部212と、送信部213(第2の送信部)と、鍵生成部214(第2の鍵生成部)とを備える。
【0049】
選択部111は、GDHグループ(楕円曲線)Gから、一の要素(点)hをランダムに選択する。
【0050】
署名生成部112は、選択部111により選択されたhに対して端末10の固有署名鍵(x)により演算を行い、署名情報(xh)を生成する。
【0051】
送信部113は、端末10の発行証明書付き固有検証鍵(v)、一の要素(h)及び署名情報(xh)を、通信部15を介して端末20へ送信する。
【0052】
受信部114は、端末20から、通信部15を介して端末20の発行証明書付き固有検証鍵(v)を受信する。
【0053】
鍵生成部115は、一の要素(h)、端末20の固有検証鍵(v)及び端末10の固有署名鍵に基づいて、(6)式又は(7)式により、共通鍵(Key)を生成する。
【数1】

【0054】
受信部211は、端末10から、端末10の発行証明書付き固有検証鍵(v)、一の要素(h)及び署名情報(xh)を、通信部25を介して受信する。
【0055】
検証部212は、公開されている要素(g)及び署名情報(xh)に基づくペアリング演算「e(g,xh)」の結果と、端末10の固有検証鍵(v)及び一の要素(h)に基づくペアリング演算「e(v,h)」の結果とが等しいことを確かめ、署名情報(xh)の正当性を検証する。
【0056】
送信部213は、検証部212により署名情報(xh)の正当性が検証された場合に、鍵交換の手続きを継続するため、端末20の発行証明書付き固有検証鍵(v)を、通信部25を介して端末10へ送信する。
【0057】
鍵生成部214は、署名情報(xh)、端末10の固有検証鍵(v)及び端末20の固有署名鍵に基づいて、(8)式により、共通鍵(Key)を生成する。
【数2】

【0058】
ここで、「v=xg」、「v=xg」であることを用いると、式(6)〜(8)は、いずれも、
【数3】

と変形できるので、端末10の鍵生成部115により生成された共通鍵と、端末20の鍵生成部214により生成された共通鍵とは同一の値となる。
【0059】
図2は、本実施形態に係る鍵交換システム1における鍵交換方法を示す概要図である。
端末10は、固有署名鍵(x)と固有検証鍵(v=xg)とを記憶している。また、端末20は、固有署名鍵(x)と固有検証鍵(v=xg)とを記憶している。
【0060】
端末10においてランダムに選択された一の要素(h)により、署名情報(xh)が生成されると、端末10から端末20へ、固有検証鍵(v)、一の要素(h)及び署名情報(xh)が送信される。
【0061】
端末20は、ペアリング演算により「e(g,xh)」と「e(v,h)」とが等しいことを確認する。そして、両者が一致した場合に、端末20から端末10へ、固有検証鍵(v)が送信される。
【0062】
端末10及び端末20では、それぞれが前述のように、ペアリング演算により共通鍵を生成し、端末間で共有する。
【0063】
図3は、本実施形態に係る鍵交換システム1における鍵交換方法の処理手順を示すフローチャートである。本処理は、記憶部12及び記憶部22に記憶されているプログラムが、それぞれ制御部11及び制御部21により実行されることにより行われる。
【0064】
ステップS1(選択ステップ)では、制御部11(選択部111)は、GDHグループから一の要素(h)を選択する。
【0065】
ステップS2(署名生成ステップ)では、制御部11(署名生成部112)は、自身の固有署名鍵(x)とステップS1で選択された一の要素(h)とに基づいて、署名情報(xh)を生成する。
【0066】
ステップS3(第1の送信ステップ)では、制御部11(送信部113)は、固有検証鍵(v)、一の要素(h)、及びステップS2で生成された署名情報(xh)を、端末20へ送信する。
【0067】
ステップS4(第2の受信ステップ)では、制御部21(受信部211)は、ステップS3で送信された固有検証鍵(v)、一の要素(h)及び署名情報(xh)を受信する。
【0068】
ステップS5では、制御部21(検証部212)は、ペアリング演算を用いて、ステップS4で受信した署名情報(xh)の正当性を検証する。
【0069】
ステップS6では、制御部21は、ステップS5で検証された署名情報(xh)が正当なものであるか否かを判定する。制御部21は、この判定がYESの場合は、処理をステップS7に移し、判定がNOの場合は、処理を終了して鍵交換を中止する。
【0070】
ステップS7(第2の送信ステップ)では、制御部21(送信部213)は、署名情報(xh)が正当であることが確認されたので、自身の固有検証鍵(v)を端末10へ送信する。
【0071】
ステップS8(第1の受信ステップ)では、制御部11(受信部114)は、ステップS7で送信された固有検証鍵(v)を受信する。
【0072】
ステップS9(第1の鍵生成ステップ)では、制御部11(鍵生成部115)は、一の要素(h)又は署名情報(xh)、端末20の固有検証鍵(v)、及び端末10の固有署名鍵(x)を用いた前述のペアリング演算により、共通鍵を生成する。
【0073】
ステップS10(第2の鍵生成ステップ)では、制御部21(鍵生成部214)は、署名情報(xh)、端末10の固有検証鍵(v)、及び端末20の固有署名鍵(x)を用いた前述のペアリング演算により、共通鍵を生成する。
【0074】
以上のように、本実施形態によれば、鍵生成部115及び鍵生成部214は、それぞれの発行証明書付きの公開された固有検証鍵を用いて共通鍵の生成を行っているため、端末10と端末20との相互認証が可能となる。したがって、鍵交換システム1は、中間者攻撃を排除することができる。
【0075】
さらに、鍵交換システム1では、端末間の1往復(2回)の通信のみで共通鍵が共有され、また、公開情報の他に必要な情報は、ランダムな要素hと、このhに対する署名情報xhのみであり、情報量が少ない。また、演算回数は、端末20では署名検証時及び鍵生成時の3回のペアリング演算、端末10では鍵生成時の1回のペアリング演算であるため、従来の認証鍵交換に比べて演算回数が少ない。したがって、本実施形態によれば、相互認証を可能としつつ、通信、メモリ及び演算の負荷を低減した認証鍵交換を行える。
【0076】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【0077】
前述の実施形態では、選択部111は、一の要素(h)をGDHグループから直接求めたが、これには限られない。例えば、選択部111は、数値データをGDHグループの要素に写像変換する一方向性ハッシュ関数(H:{0,1}→G)の演算により、乱数データ(r∈Z)から一の要素(h=H(r))を求めてもよい。
【0078】
また、例えば、選択部111は、数値データを固定長の数値データに写像変換する一方向性ハッシュ関数(H´:{0,1}→{0,1})の演算により乱数データ(r)から算出された数値、及びGDHグループの要素(g´)に基づいて、一の要素(h=H´(r)g´)を求めてもよい。ここで、lは、ハッシュ値のサイズを示し、例えばSHA−1なら160である。なお、乱数データ(r)が第三者に取得されると、要素(g´)が求められ、一の要素(h)が書き換えられるおそれがあるため、乱数データ(r)は公開されない。
【0079】
このように一方向性ハッシュ関数を用いることにより、選択部111は、GDHグループに属するランダムな要素(h)を、乱数データから容易に算出することができる。
【符号の説明】
【0080】
1 鍵交換システム
10 端末(第1の端末)
20 端末(第2の端末)
111 選択部
112 署名生成部
113 送信部(第1の送信部)
114 受信部(第1の受信部)
115 鍵生成部(第1の鍵生成部)
211 受信部(第2の受信部)
212 検証部
213 送信部(第2の送信部)
214 鍵生成部(第2の鍵生成部)

【特許請求の範囲】
【請求項1】
第1の端末と第2の端末とが共通鍵を共有する鍵交換システムであって、
前記第1の端末及び前記第2の端末には、予め重複しない自然数からなる固有署名鍵と、当該固有署名鍵及びGDH(GAP−Diffie−Hellman)グループに属する公開された要素に基づいて生成される固有検証鍵と、がそれぞれ割り当てられており、
前記第1の端末は、
前記GDHグループから一の要素を選択する選択部と、
前記一の要素に対して前記第1の端末の固有署名鍵により演算を行い、署名情報を生成する署名生成部と、
前記第1の端末の固有検証鍵及び前記署名情報を、前記第2の端末へ送信する第1の送信部と、
前記第2の端末から、前記第2の端末の固有検証鍵を受信する第1の受信部と、
前記一の要素、前記第2の端末の固有検証鍵及び前記第1の端末の固有署名鍵に基づいて、前記共通鍵を生成する第1の鍵生成部と、を備え、
前記第2の端末は、
前記第1の端末から、前記第1の端末の固有検証鍵及び前記署名情報を受信する第2の受信部と、
前記第2の端末の固有検証鍵を、前記第1の端末へ送信する第2の送信部と、
前記署名情報、前記第1の端末の固有検証鍵及び前記第2の端末の固有署名鍵に基づいて、前記共通鍵を生成する第2の鍵生成部と、を備える鍵交換システム。
【請求項2】
前記第1の端末は、
前記第1の送信部により、さらに前記一の要素を、前記第2の端末へ送信し、
前記第2の端末は、
前記第2の受信部により、前記第1の端末から、さらに前記一の要素を受信し、
前記公開された要素及び前記署名情報に基づく所定の演算結果と、前記第1の端末の固有検証鍵及び前記一の要素に基づく前記所定の演算結果と、が等しいことを確かめ、前記署名情報の正当性を検証する検証部をさらに備え、
前記第2の送信部は、前記検証部により前記署名情報の正当性が検証された場合に、前記第2の端末の固有検証鍵を、前記第1の端末へ送信する請求項1に記載の鍵交換システム。
【請求項3】
前記選択部は、前記一の要素を、前記GDHグループからランダムに選択する請求項1又は請求項2に記載の鍵交換システム。
【請求項4】
前記選択部は、数値データを前記GDHグループの要素に写像変換する一方向性ハッシュ関数演算により、乱数データから前記一の要素を求める請求項3に記載の鍵交換システム。
【請求項5】
前記選択部は、数値データを固定長の数値データに写像変換する一方向性ハッシュ関数演算により乱数データから算出された数値、及び前記GDHグループの要素に基づいて、前記一の要素を求める請求項3に記載の鍵交換システム。
【請求項6】
第1の端末と第2の端末とが共通鍵を共有する鍵交換方法であって、
前記第1の端末及び前記第2の端末には、予め重複しない自然数からなる固有署名鍵と、当該固有署名鍵及びGDH(GAP−Diffie−Hellman)グループに属する公開された要素に基づいて生成される固有検証鍵と、がそれぞれ割り当てられており、
前記第1の端末は、
前記GDHグループから一の要素を選択する選択ステップと、
前記一の要素に対して前記第1の端末の固有署名鍵により演算を行い、署名情報を生成する署名生成ステップと、
前記第1の端末の固有検証鍵及び前記署名情報を、前記第2の端末へ送信する第1の送信ステップと、
前記第2の端末から、前記第2の端末の固有検証鍵を受信する第1の受信ステップと、
前記一の要素、前記第2の端末の固有検証鍵及び前記第1の端末の固有署名鍵に基づいて、前記共通鍵を生成する第1の鍵生成ステップと、を実行し、
前記第2の端末は、
前記第1の端末から、前記第1の端末の固有検証鍵及び前記署名情報を受信する第2の受信ステップと、
前記第2の端末の固有検証鍵を、前記第1の端末へ送信する第2の送信ステップと、
前記署名情報、前記第1の端末の固有検証鍵及び前記第2の端末の固有署名鍵に基づいて、前記共通鍵を生成する第2の鍵生成ステップと、を実行する鍵交換方法。
【請求項7】
第1の端末と第2の端末とに共通鍵を共有させる鍵交換プログラムであって、
前記第1の端末及び前記第2の端末には、予め重複しない自然数からなる固有署名鍵と、当該固有署名鍵及びGDH(GAP−Diffie−Hellman)グループに属する公開された要素に基づいて生成される固有検証鍵と、がそれぞれ割り当てられており、
前記第1の端末に、
前記GDHグループから一の要素を選択する選択ステップと、
前記一の要素に対して前記第1の端末の固有署名鍵により演算を行い、署名情報を生成する署名生成ステップと、
前記第1の端末の固有検証鍵及び前記署名情報を、前記第2の端末へ送信する第1の送信ステップと、
前記第2の端末から、前記第2の端末の固有検証鍵を受信する第1の受信ステップと、
前記一の要素、前記第2の端末の固有検証鍵及び前記第1の端末の固有署名鍵に基づいて、前記共通鍵を生成する第1の鍵生成ステップと、を実行させ、
前記第2の端末に、
前記第1の端末から、前記第1の端末の固有検証鍵及び前記署名情報を受信する第2の受信ステップと、
前記第2の端末の固有検証鍵を、前記第1の端末へ送信する第2の送信ステップと、
前記署名情報、前記第1の端末の固有検証鍵及び前記第2の端末の固有署名鍵に基づいて、前記共通鍵を生成する第2の鍵生成ステップと、を実行させる鍵交換プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate