JP5446768B2 - 鍵交換システム、鍵交換方法 - Google Patents

鍵交換システム、鍵交換方法 Download PDF

Info

Publication number
JP5446768B2
JP5446768B2 JP2009264324A JP2009264324A JP5446768B2 JP 5446768 B2 JP5446768 B2 JP 5446768B2 JP 2009264324 A JP2009264324 A JP 2009264324A JP 2009264324 A JP2009264324 A JP 2009264324A JP 5446768 B2 JP5446768 B2 JP 5446768B2
Authority
JP
Japan
Prior art keywords
key
authenticator
authentication
key exchange
message information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009264324A
Other languages
English (en)
Other versions
JP2011109544A (ja
Inventor
潤 古川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009264324A priority Critical patent/JP5446768B2/ja
Publication of JP2011109544A publication Critical patent/JP2011109544A/ja
Application granted granted Critical
Publication of JP5446768B2 publication Critical patent/JP5446768B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報の暗号化および復号化に係る鍵の交換を行う鍵交換システムに関する。
鍵交換方式では、通信回線を介して接続された異なる鍵交換装置が相互にメッセージの通信を行うことにより、情報の暗号化や復号化などに利用される共通の鍵情報(交換鍵)を共有する。
特に、鍵交換装置それぞれが自己であることの認証を受けるための手法を備え、鍵交換を行う相手の装置を認証した上で、認証に成功した相手装置との鍵交換を行う鍵交換方式を、認証付き鍵交換方式と呼ぶものとする。
認証付き鍵交換方式では、例えば図1に示すように、鍵交換装置100が、第一ラウンド装置200と、鍵生成装置300を備えた構成を有し、他の鍵交換装置との間で通信装置105を介してメッセージのやり取りを行い、このメッセージに基づき相手の鍵生成装置が認証された場合に鍵(交換鍵)の生成を行い、異なる鍵交換装置間で共通の交換鍵を共有する、つまり、鍵交換を行う(非特許文献1)。
ここで、本認証付き鍵交換方式のシステム構成について、図1に基づき説明する。
鍵交換装置100は、システムパラメータ107、自己識別子108、鍵交換開始命令109を受け付ける入力装置101と、乱数の入力を受け付ける乱数入力装置102と、生成された乱数および認証子を含む状態情報を記憶する記憶装置103と、他の鍵交換装置から送り込まれた認証子に基づき鍵交換用の認証を行う認証装置104を備えた構成を有する。
鍵交換装置100は、予め設定されたシステムパラメータ107(q,G,g,Hash)、および自己識別子108(Π)が入力された場合に起動され、命令(入力)待ち状態に設定されるものとする。尚、qを素数、Gを位数qの乗法的巡回群、gをGの生成元であるものとする。
この命令(入力)待ち状態の鍵交換装置100(Π)に対して、セッション番号112(sid)と相手識別子110(Π’)とを含む鍵交換開始命令109を入力された場合、第一ラウンド装置200(図2)が動作する
ここで、セッション番号(sid)112は、鍵交換装置ΠおよびΠ’間における鍵交換セッションに対応して割当てられた固有の数値であるものとする。
ここで、第一ラウンド装置200には、乱数入力装置102により予め設定された乱数111が入力される。
第一ラウンド装置200に予め設定された暫定数生成部202(図2)は、入力された乱数111に基づき暫定数r(r∈Z/qZとする)をランダムに生成する。
更に、第一ラウンド装置200内に予め設定された冪乗数生成部203(図2)が、この暫定数rに基づく数値y(ここで、y=gとする)を生成する。ここで、yをべき乗数204と呼ぶ。
ここで、第一ラウンド装置200は、図2に示すように、セッション番号112、相手識別子110、暫定数201(sid,Π’,r)を含む状態情報205を生成すると共に、これを秘密鍵情報として記憶装置103に格納する。
また、第一ラウンド装置200は、認証装置104に対して、要求する処理内容を示す処理パラメータ(ここでは、識別子の生成を示す)と、セッション番号およびべき乗数(”生成”、(sid,y))を認証装置104に入力し、その出力としての識別子206(sig)を得る。
次いで、第一ラウンド装置200は、図2に示すように、セッション番号、冪乗数、および識別子を含むメッセージ(sid,y,sig)207を設定すると共に、このメッセージを、通信路105を介して鍵交換装置(識別子Π’)に送信する。尚、このメッセージには、送信者として識別子(Π)が、宛先として(Π’)が設定されているものとする。
ここで、鍵交換装置100は命令待ち状態に設定されるものとする。
次に、送信者として識別子Π’が、宛先としてΠが指定されたメッセージ301(sid、y’、sig’)を送り込まれた場合の、命令待ち状態の鍵交換装置100(Π)の動作について、図3に基づき説明する。
尚、メッセージ301は、通信路105を介して鍵生成装置300に送り込まれたものとする。
まず、メッセージを受信した鍵生成装置300は、メッセージ300に含まれる冪乗数yに基づき、記憶装置103に予め保存された、対応する状態情報の検索(状態参照)を行う(302:図3)。
ここで、対応する状態情報である(sid,y,r)が記憶装置103に記憶されていない場合、鍵交換装置を命令待ち状態に設定し、鍵交換に係る処理を中止する。
対応する状態情報304(sid,y,r)が記憶されていた場合、鍵生成装置300は、この状態情報304を読出す。
ここで、鍵生成装置300は、要求する処理の内容を示す要求パラメータ(ここでは、この要求を「検証」とする)、相手識別子を含む(”検証”,Π’,(sid,y’),sig’)を認証装置104に入力することにより、送り込まれたメッセージの検証(認証を)行う。
ここで、認証装置104が、メッセージ内容が鍵交換相手として”不当”であることを示す出力を行った場合、鍵交換装置100を命令待ち状態に設定する。
認証装置104による上記検証の結果、送り込まれたメッセージ内容が鍵交換相手として”正当”であると判定された場合に、記憶装置103に予め記憶された状態情報(ここでは、(sid,Π’,y,r)とする)を消去する(状態消去部305:図3)。
また、予め設定された鍵生成部308が、冪乗数yに基づきセッション番号およびzを含む交換鍵(sid,z(ただしz=y’))307を生成して出力する。
以上のように、本認証付き鍵交換方式の鍵交換システムでは、鍵交換を行う相手装置を認証し、この認証に成功した相手装置との鍵交換を行うことができる。
上記認証付き鍵交換方式のシステムに対して、利用者により入力されたパスワードに基づき鍵交換処理の認証を行うパスワード認証付き鍵交換方式の鍵交換システムが開示されている(非特許文献2)。
このパスワード認証付き鍵交換方式は、例えば図4に示すように、相互に接続された鍵交換装置400および500を備え、この鍵交換装置400および500が相互にメッセージの通信を行うことにより、鍵交換を行う。
鍵交換装置400は、図4に示すように、当該鍵交換装置400に対して鍵交換にかかる入力情報を入力するための入力装置401と、生成された乱数415を鍵交換装置400に対して入力する乱数入力装置402と、利用者により入力されたパスワードを鍵交換装置400に入力するパスワード入力装置403と、鍵交換装置400内で設定された状態情報を記憶する記憶装置408を備えた構成を有する。
また、鍵交換装置400は、その内部に暗号化装置404、復号化装置405、およびハッシュ計算装置406を備えた構成となっている。
尚、暗号化装置404は、例えば鍵および平文が入力された場合に、入力された鍵を用いて同じく入力された平文を暗号化して、暗号文を生成(出力)する。
また、復号装置405、例えば鍵および暗号文が入力された場合に、入力された鍵を用いて暗号文を復号化した平文を生成(出力)する。
更に、ハッシュ計算装置406は、自己識別子、相手識別子、平文、乱数などの予め設定された入力情報に対して、予め設定されたプログラム(ハッシュ関数)に基づく処理を行うことにより出力情報を生成して出力するハッシュ関数処理機能を備えている。
また、パスワード認証付き鍵交換方式の鍵交換システムでは、鍵交換装置400と同等の構成を有する鍵交換装置500を備え、上述のように、この鍵交換装置400とメッセージの相互通信を行うことにより、鍵交換を行う。
鍵交換装置500は、図4に示すように、当該鍵交換装置500に対して鍵交換にかかる入力情報を入力するための入力装置501と、生成された乱数515を鍵交換装置500に対して入力する乱数入力装置502と、利用者により入力されたパスワードを鍵交換装置500に入力するパスワード入力装置503と、鍵交換装置500内で設定された状態情報を記憶する記憶装置508を備えた構成を有する。
また、鍵交換装置500は、その内部に暗号化装置504、復号化装置505、およびハッシュ計算装置506を備えた構成となっている。
尚、暗号化装置504は、鍵および平文が入力された場合に、入力された鍵を用いて、同じく入力された平文を暗号化して、暗号文を生成(出力)する。また、復号装置505は、例えば鍵および暗号文が入力された場合に、入力された鍵を用いて暗号文を復号化した平文を生成(出力)する。
更に、ハッシュ計算装置506は、自己識別子、相手識別子、平文、乱数などの予め設定された入力情報に対して、予め設定されたプログラム(ハッシュ関数)に基づく処理を行うことにより出力情報を生成して出力するハッシュ関数処理機能を備えている。
ここで、システムパラメータ410(ここでは、(q、G、g、Enc、Dec)とする)、および自己識別子411(Π)が入力されることにより、鍵交換装置400は起動され、鍵交換装置400は命令待ち状態に設定される。
以下、命令待ち状態の鍵交換装置400が、鍵交換開始命令412、相手識別子413(Π’)、パスワード414を入力された場合に起動され、鍵交換装置500との間で行われる鍵交換の動作について、説明する。
鍵交換装置400に対して、乱数入力装置402が乱数415から暫定数x(x∈Z/qZとする)を生成する。また、乱数入力装置402は、暫定数xに基づき冪乗数v(v=g)を生成する。
次いで、鍵交換装置400は、パスワード入力装置402よりパスワード(pw)414を取得すると共に、パスワードおよび冪乗数(pw,w)を暗号化装置404に入力し、その出力としての暗号文(ct[1])を得る。
また、鍵交換装置400は、相手識別子、暫定数、冪乗数、およびパスワードを含む状態情報(Π’、x、v、pw)を生成して、これを記憶装置408に格納する。
次に、鍵交換装置400は、自己識別子および上記生成された暗号文を含むメッセージ(Π,ct[1])を、通信装置407を介して鍵交換装置500に送信する。尚、ここで送信されるメッセージの送信者は識別子Π、宛先Π’が設定されているものとする。
ここで、鍵交換装置400は、命令待ち状態に設定される。
命令待ち状態の鍵交換装置500(Π)は、通信装置507を介してメッセージ(Π’,ct[1]’)を受信した場合、つまり、メッセージ(Π’,ct[1]’)の受信が検知された場合に、乱数入力装置502から予め生成された乱数515を取り込む。
尚、メッセージ(Π’,ct[1]’)は、送信者が(Π’)、宛先が(Π)に設定されているものとする。
ここで、乱数入力装置502には、ランダム数として生成された暫定数y(y∈Z/qZとする)、乱数w(ここでは、w=gとする)が入力される。尚、wは冪乗数と呼ぶ。
次いで、鍵交換装置500は、パスワード入力装置503から入力されたパスワード(pw)514を取得する。
ここで、鍵交換装置500は、復号装置505に対して入力情報としてのパスワードおよび暗号文字列(pw,ct[1]’)を入力し、その出力としての平文(v’)を得る。
また、復号装置505は、zを算出する。ここで、z=v’であるものとする。
ここで、鍵交換装置500は、パスワードおよび乱数(pw,w)を暗号化装置504に入力し、その出力としての暗号文(ct[2])を得る。
次いで、鍵交換装置500は、自己識別子、相手識別子、平文、乱数(Π’,Π,v’,w,z)をハッシュ計算装置506に入力して、その出力である値(sk’)を得ると共に、この値sk’を含む(sk’,1)をハッシュ計算装置506に入力して、暗号文字列ch[1]を得る。
ここで、鍵交換装置500は、状態情報(Π’,sk’)を生成して、これを記憶装置508に格納する。
次いで、鍵交換装置500は、メッセージとしての(Π,ct[2],ch[1])を、通信装置507を介して鍵交換装置400に送信する。尚、このメッセージは、送信者(Π)で宛先が(Π’)を示すものとする。
ここで、鍵交換装置500は、は命令待ち状態に設定される。
次に、命令待ち状態の鍵交換装置400(識別子Π)が、通信装置407を介して送り込まれたメッセージ(Π’,ct[2]’,ch[1]’)を受信した場合について、説明する。
まず、鍵交換装置400は、予め記憶したパスワードおよび送り込まれた暗号文字列(pw,ct[2]’)を、復号装置405に入力することによりその出力としての平文(w’)を得る。また、鍵交換装置400は、平文w’に基づくz(z=w’)を生成する。
次いで、鍵交換装置400は、(Π’,Π,v,w’,z)をハッシュ計算装置406に入力して、その出力としての値(sk’)を得ると共に、この値を含む(sk’,1)をハッシュ計算装置406に入力することにより、その出力としてのch[1]を生成する。
ここで、鍵交換装置400は、生成されたch[1]とメッセージの一部として送り込まれたch[1]’とが等しい(ch[1]=ch[1]’)か否かの判定を行う
ここで、ch[1]=ch[1]’が成り立たない場合、鍵交換装置400は命令待ち状態に設定されるものとする。
また、鍵交換装置400は、(sk’,2)をハッシュ計算装置406に入力して、ch[2]を得る。
更に、鍵交換装置400は、(sk’,0)をハッシュ計算装置406に入力して、その出力である鍵(key)を得る。
次いで、鍵交換装置400は、メッセージ(Π,ch[2])を通信装置407を介して鍵交換装置500に送信する。尚、このメッセージに含まれる送信者の識別子は(Π)、宛先は(Π’)であるものとする。
ここで、鍵出力部409が、上記生成された鍵(key)を、交換結果(交換鍵)416として出力する。また、鍵交換装置400は、記憶した状態情報を消去し、命令待ち状態に設定される。
次に、命令待ち状態の鍵交換装置500における、鍵交換装置400から通信装置507を介して送り込まれたメッセージ(Π,ch[2])を受信した場合の動作について、説明する。
命令待ち状態の鍵交換装置500(Π)が、通信装置507を介して、メッセージ(Π’,ch[2]’)を受信した場合、鍵交換装置500は、(sk’,2)をハッシュ計算装置506に入力し、その出力としてのch[2]を得る。受信したメッセージに含まれたch[2]’との等号(ch[2]=ch[2]’)が成立しない場合、鍵交換装置500は命令待ち状態に設定されるものとする。
ここで、生成したch[2]と、受信したメッセージに含まれたch[2]’とが等しい場合、鍵交換装置500は、(sk’,0)をハッシュ計算装置506に入力して、鍵(key)を得る。
次いで、鍵交換装置500は、算出された鍵(key)を交換結果(交換鍵)516として出力する。また、鍵交換装置500は、上記記憶した状態情報を消去し、命令待ち状態となる。
以上のように、パスワード認証付き鍵交換システムでは、文字数の比較的短いパスワードを用いて鍵交換を行うため、パスワードを器機内に格納することなくこのパスワードに基づく認証を行い、認証された相手装置(鍵交換装置)との鍵交換を行うことができる。
Ran Canetti, Hugo Krawczyk."Universally Composable Notions of Key Exchange and Secure Channels",Advances in Cryptology-EUROCRYPT 2002, International Conference on the Theory and Applications of Cryptographic Techniques, Amsterdam, The Netherlands, April 28-May 2, 2002, Proceedings, pages 337-351, Springer, Lecture Notes in Computer Science, volume 2332, year 2002. Mihir Bellare, David Pointcheval, Phillip Rogaway:"Authenticated Key Exchange Secure against Dictionary Attacks".Advances in Cryptology-EUROCRYPT 2000, International Conference on the Theory and Application of Cryptographic Techniques, Bruges, Belgium, May 14-18, 2000, Proceeding, pages 139-155. Lecture Notes in Computer Science 1807 Springer 2000, ISBN 3-540-67517-5.
しかしながら、上記非特許文献1に開示された関連技術では、認証子を生成するために、鍵交換装置は秘密情報を保持しなければならず、この秘密鍵情報である文字列が一定以上に長い場合、この秘密鍵情報を記憶することが困難となるため、鍵交換装置に設定されたメモリ機器などの記憶装置に保存することが必要となる。
しかしながら、例えば、この秘密鍵情報が記憶された記憶装置やメモリ機器が盗難にあった場合やそのメモリ機器を紛失した場合、秘密鍵情報が漏洩され、鍵交換にかかるセキュリティを確保することができない、といった不都合が生じ得る。
また、上記非特許文献2に開示された関連技術では、文字数の比較的短いパスワードを用いて鍵交換を行うため、パスワードを器機内に保存することなく、鍵交換を行うことができる。
このため、メモリ器機の盗難や紛失による情報漏洩を抑制することが可能となる。しかしながら、その一方で、悪意のユーザによりパスワードが推測され盗まれることでパスワードが漏洩してしまうといった不都合が生じ得る。
また、悪意のユーザ(攻撃者)からの不正な鍵交換要求に対しては、例えば、鍵交換装置を、一定の回数以上の誤ったパスワードによる鍵交換の試み(鍵交換試み)を受けた場合に以降の鍵交換試みを拒否する(抑制する)構成とするといった対策が考えられる。
しかしながら、このような対策を取った場合、攻撃者による成功しない不正な鍵交換試みが多数回行われた場合など、この鍵交換装置を利用した鍵交換システムでは正当な利用者の鍵交換が受け付けられなくなってしまう不都合が生じ得る。
更に、上記非特許文献2に開示された関連技術では、同一のパスワードを、鍵交換要求元と要求先の両方の鍵交換装置が共有する構成となっている。このため、このパスワードがサーバおよび利用者側鍵交換装置の認証に使われた場合、サーバが利用者のパスワードを知ることができてしまう。
このため、例えば、利用者が多くの異なるサーバとの間でパスワードの提供を行う場合、利用者は複数の異なるパスワードをそれぞれ記憶することは困難であることから、異なるサーバに対して鍵交換用の共通のパスワードを設定してしまう場合が生じ得る。この場合、不正なサーバ利用者が利用者側鍵交換装置から提供された鍵交換用のパスワードを取得し、他のサーバ(鍵交換装置)に対して、パスワードを利用して、不正に成りすましによる接続を行い、他のサーバとの不正な鍵交換を行うことが可能となってしまう不都合が生じ得る。
これに対して、例えば、鍵交換装置に秘密情報を格納可能なICカードなどを設け、パスワードの入力によりこのICカードに格納された秘密情報を利用可能に設定する手法が考えられる。
しかしながら、この場合、ICカードに文字数の長い秘密鍵と照合対称となるパスワードが格納される構成であるため、これを解析することでICカードに記憶されたパスワードや秘密鍵を盗むことが可能であり、例えばICカードが盗難にあった場合などには、交換鍵にかかる安全性を確保することができないという不都合がある。
[発明の目的]
本発明は、上記関連技術の有する不都合を改善し、セキュリティが有効に高められた状態で鍵交換を行うことを可能とする鍵交換システム、鍵交換方法、鍵交換プログラムを提供することを、その目的とする。
上記目的を達成するために、本発明に係る鍵交換システムは、接続されたユーザ装置およびサーバ装置間でメッセージ情報の相互通信を行うことにより鍵交換を行う鍵交換システムであって、前記ユーザ装置は、外部から入力されたパスワードを取得し保持するパスワード取得部と、予め設定されたマスター鍵に基づき第1の秘密鍵を生成すると共に、前記入力されたパスワードに基づき第2の秘密鍵を生成する秘密鍵生成部と、前記第1の秘密鍵に基づき認証判定用の第1の認証子を生成すると共に、前記マスター鍵および第2の秘密鍵に基づき前記認証判定用の第2の認証子を生成する認証子生成部と、前記第1および第2の認証子を含むメッセージ情報を生成するメッセージ情報設定部と、予め設定されたサーバ装置からメッセージ情報が送り込まれた場合に、当該メッセージ情報に含まれる第1の認証子に基づく認証判定を行う第1の認証判定部と、前記第1の認証子に基づく認証判定で認証がなされた場合に前記パスワードおよび第2の認証子に基づく認証判定を行う第2の認証判定部と、前記第2の認証判定部による認証判定で認証がなされた場合に前記メッセージ情報に基づき交換鍵を生成し当該交換鍵の出力を行うユーザ側交換鍵生成部とを備え、前記サーバ装置は、予めユーザ装置により登録された第1および第2の秘密鍵を保持する秘密鍵保持部と、前記ユーザ装置からメッセージ情報が送り込まれた場合に前記第1の秘密鍵に基づき前記第1の認証子の生成を行うと共に当該第1の認証子に基づき前記メッセージ情報の認証判定を行う第1の認証判定部と、前記第1の認証判定部による認証判定で認証がなされた場合に前記第2の秘密鍵に基づき前記第2の認証子の生成を行うと共に当該第2の認証子に基づき前記メッセージ情報の認証判定を行う第2の認証判定部と、前記ユーザ装置からのメッセージ情報に含まれるランダム数に基づき前記ユーザ装置で生成された交換鍵と共通の交換鍵を生成すると共に、前記第2の認証判定部による認証判定で認証がなされた場合に前記生成した交換鍵を出力するサーバ側交換鍵生成部とを備えた構成をとっている。
また、本発明にかかる鍵交換方法は、接続されたユーザ装置およびサーバ装置間でメッセージ情報の相互通信を行うことにより鍵交換を行う鍵交換方法であって、予め設定されたマスター鍵に基づき第1の秘密鍵を生成すると共に、外部から入力されたパスワードに基づき第2の秘密鍵を生成したユーザ装置が、前記サーバ装置からメッセージ情報が送り込まれた場合に、前記第1の秘密鍵に基づき前記第1の認証子の生成を行うと共に当該第1の認証子に基づき前記メッセージ情報の認証判定を行い、前記第1の認証子に基づく認証判定で認証がなされた場合に、前記第2の秘密鍵に基づき前記第2の認証子の生成を行うと共に当該第2の認証子に基づき前記メッセージ情報の認証判定を行い、前記第2の認証子に基づく認証判定で認証がなされた場合に前記メッセージ情報に基づき交換鍵を生成すると共に、前記サーバ装置に対してメッセージ情報の送信を行い、次いで、前記ユーザ装置からメッセージ情報が送り込まれた場合に、前記サーバ装置が、予めユーザ装置により登録された前記第1の秘密鍵に基づき前記第1の認証子の生成を行い、前記第1の認証子に基づき前記メッセージ情報の認証判定を行い、前記第1の認証子に基づく認証判定で認証がなされた場合に、予め登録された前記第2の秘密鍵に基づき前記第2の認証子の生成を行うと共に当該第2の認証子に基づき前記メッセージ情報の認証判定を行い、前記第2の認証子に基づく認証判定で認証がなされた場合に前記メッセージ情報に基づき前記ユーザ装置で生成された交換鍵と共通の交換鍵を生成することを特徴としている。
本発明は、以上のように構成され機能するので、これによると、ネットワークを介して相互にメッセージ通信を行うユーザ装置およびサーバ装置それぞれが、予め設定されたマスター鍵から生成された第1の秘密鍵と入力されたパスワードから生成された第2の秘密鍵とに基づき鍵交換相手としての認証を行う認証判定部と認証が成功した場合に相手から送り込まれたメッセージに基づき交換鍵の生成を行う鍵生成部を有する構成としたことにより、ネットワークを介して行われる暗号化(復号化)用の鍵交換におけるセキュリティを有効に高める鍵交換システム、鍵交換方法を提供することができる。
本発明による鍵交換システムの関連技術である認証付き鍵交換システムの一実施形態を示す概略ブロック図である。 図1に開示した認証付き鍵交換システムにおける第一ラウンド装置の内部構成の一例を示す概略ブロック図である。 図1に開示した認証付き鍵交換システムにおける鍵生成装置の内部構成の一例を示す概略ブロック図である。 本発明による鍵交換システムの関連技術であるパスワードを利用した鍵交換システムの一実施形態を示す概略ブロック図である。 本発明による鍵交換システムにおける一実施形態を示す概略ブロック図である。 本発明による鍵交換システムにおける一実施形態を示す概略ブロック図である。 図5に開示した鍵交換システムにおける利用者用鍵交換装置の動作処理ステップを示すフローチャートである。 図5に開示した鍵交換システムにおけるサーバ用鍵交換装置の動作処理ステップを示すフローチャートである。 図6に開示した鍵交換システムにおける利用者用鍵交換装置の動作処理ステップを示すフローチャートである。 図6に開示した鍵交換システムにおけるサーバ用鍵交換装置の動作処理ステップを示すフローチャートである。
[実施形態1]
次に、本発明の実施形態1について、その基本的構成内容を説明する。
本実施形態1である鍵交換システムは、図5に示すように、利用者用鍵交換装置600およびサーバ用鍵交換装置700が接続され相互にメッセージの送受信を行うことにより、共通の交換鍵の生成、出力を行う。
尚、利用者用鍵交換装置600およびサーバ用鍵交換装置700はそれぞれ、予め設定されたプログラムに基づく実行処理を行う演算装置を備えたコンピュータであって、当該演算装置による実行処理により以下に示す機能動作を実現する。
また、利用者用鍵交換装置600およびサーバ用鍵交換装置700は、上記鍵交換装置(図4)と同様に、その内部に暗号化処理を行う暗号化部および復号化処理を行う復号化部を備えた認証子生成装置と、ランダム数に基づく計算を行うハッシュ計算装置を有する。
認証子生成装置は、秘密鍵およびメッセージが入力されると、この秘密鍵およびメッセージに基づく認証子を生成し出力する。
ここで、認証子生成装置の暗号化部は、例えば鍵および平文が入力された場合に、入力された鍵を用いて同じく入力された平文を暗号化して、暗号文を生成(出力)する。
また、上記認証子生成装置の復号化部は、例えば鍵および暗号文が入力された場合に、入力された鍵を用いて暗号文を復号化した平文を生成(出力)する。
また、ハッシュ計算装置は、自己識別子、相手識別子、平文、乱数などの予め設定された入力情報に対して、予め設定されたプログラム(ハッシュ関数)に基づく処理を行うことにより出力情報を生成して出力するハッシュ関数処理機能を備えている。
また、利用者用鍵交換装置600は、予め設定された検証鍵、署名、およびメッセージが入力された場合に、署名の正当性を判定し、その判定結果を返す署名検証装置を備えた構成を有する。
一方、サーバ用鍵交換装置700は、入力された署名鍵およびメッセージに基づき署名を設定し、この署名を出力する署名装置を有する。
以下、利用者用鍵交換装置600の内部構成について、図5に基づいて説明する。
利用者用鍵交換装置(以下「利用者装置」という)600には、利用者装置600に対して、鍵交換の開始要求を示す鍵交換開始命令と鍵交換の相手の識別子(相手識別子)602の入力を行う鍵交換開始命令部601が併設されている。
利用者用鍵交換装置600は、鍵交換開始命令部601からの入力に応じてランダム数の生成を行う第一メッセージ生成部603と、外部から入力された情報および第一メッセージ生成部603により生成された乱数などの情報からなる状態情報を保持する状態保存部604と、第一メッセージ生成部603により設定された第一メッセージをサーバ用鍵交換装置700に対して送付する第一メッセージ送信部605を有する。
また、利用者用鍵交換装置600は、サーバ用鍵交換装置700から送り込まれた第二メッセージを受信すると共にこのメッセージ内に含まれる状態情報が状態保存部604に予め保存されているか否かの判定を行う対応状態確認部606と、状態情報が状態保存部604に予め保存されていることが確認された場合に、メッセージに含まれる特定の情報に基づきハッシュ計算装置(以下「ハッシュ関数」という)を利用することにより、セッション番号(sid)を生成するセッション番号生成部608と、サーバ用鍵交換装置700から送り込まれた検証鍵(vkey[S])、署名(sig[M])、およびメッセージに基づき、上記署名検証装置を利用することにより、サーバ用鍵交換装置700から送り込まれた署名(または検証鍵)の正当性の判定(検証)を行う検証鍵検証部609を有する。
更に、利用者用鍵交換装置600は、検証鍵検証部609による検証により署名(または検証鍵)の正当性が確認された場合に、生成した秘密鍵とメッセージに基づき認証子生成装置を利用して認証子を生成すると共にメッセージとして送り込まれた認証子が正当であるか否かの判定を行う認証子検証部607と、認証子の正当性が認証された場合に、ユーザから入力されたパスワード(pwd)を取得するパスワード入力部610を備えている。
尚、認証子検証部607は、予め設定されたマスター鍵と相手識別子に基づき、上記ハッシュ関数を利用して秘密鍵を生成する機能を有する。
また、利用者用鍵交換装置600は、生成された秘密鍵とメッセージに基づき認証子生成装置を利用することによって、パスワード由来ではない無パスワード認証子の生成を行う無パスワード認証子生成部611と、入力されたパスワードに基づき生成された秘密鍵(第2の秘密鍵に対応)とメッセージに基づき認証子生成装置を利用してパスワード認証子を生成するパスワード認証子生成部612を有する。
また、パスワード認証子生成部612は、予め設定されたマスター鍵(mkey(U))をハッシュ関数に入力して得られた値と予め設定されたmask[U]との排他的論理和を計算する暗号化計算機能と、マスター鍵、暗号パスワード、相手識別子に基づきハッシュ関数を利用して秘密鍵(第2の秘密鍵に対応)を生成するパスワード秘密鍵生成機能を有する。
更に、利用者用鍵交換装置600は、予め設定された乱数に基づきハッシュ関数を利用して認証子の暗号化としての暗号署名の生成を行うパスワード認証子隠蔽部613と、ハッシュ関数を利用して生成した値により予め設定された乱数源の置き換え更新を行う乱数源更新部614を有する。
また、利用者用鍵交換装置600は、サーバ装置700から送り込まれた乱数に基づくハッシュ関数を利用した算出を行うことにより交換鍵を生成する鍵生成部615と、鍵生成部615での交換鍵の生成が行われた場合に、予め保存された状態情報を消去する処理を行う状態消去部616と、鍵生成部615での交換鍵の生成が行われた場合に、第三メッセージを設定すると共にこのメッセージをサーバ用鍵交換装置700に送付する第三メッセージ送信部617と、生成された交換鍵を予め設定された、例えば、ディスプレイ等の表示部に対して出力する鍵出力部618を備えた構成を有する。
次に、サーバ用鍵交換装置700の内部構成について、図5に基づいて説明する。
サーバ用鍵交換装置700は、利用者用鍵交換装置600から送り込まれた第一メッセージを受信すると共に、当該メッセージの内容に基づく記録情報を利用者リスト724から抽出し、メッセージ送信元による鍵交換試行の試行誤り回数が予め設定された制限回数を超えていないか否かを判定を行う制限回数確認部701と、メッセージ送信元による鍵交換試行の試行誤り回数が制限回数を下回る場合に、メッセージ内容に基づくランダム数の生成を行うと共に、ハッシュ関数を利用して鍵(key)を生成する鍵生成部702を有する。
また、サーバ用鍵交換装置700は、上記ランダム数に基づきハッシュ関数を利用してセッション番号(sid)を生成するセッション番号生成部703と、予め設定された署名鍵とメッセージに基づき署名装置を利用して署名sig[M]を生成する認証子生成部704と、生成されたランダム数および署名を含む状態情報を保持する状態保存部705と、予め設定された検証鍵721および公開鍵723を含む第二メッセージを設定すると共に、当該メッセージを利用者用鍵交換装置600に送信する第二メッセージ送信部706を備えている。
更に、サーバ用鍵交換装置700は、利用者用鍵交換装置600から第三メッセージを受信した場合にこのメッセージ内容に対応する状態情報が予め保存されているか否かを判定する対応状態確認部707を有する。
また、この対応状態確認部707は、利用者リスト724内に記録された、上記状態情報に対応する記録情報(U,akey[U,1],akey[U,2],i)を検索する。
また、サーバ用鍵交換装置700は、秘密鍵(akey[U,1])および第三メッセージの内容に基づき、予め設定された認証子生成装置を利用することによって、パスワード由来ではない無パスワード認証子を生成し、生成した無パスワード認証子と第三メッセージの一部として送り込まれた認証子mac[K,1]とが等しいか否かの判定を行う無パスワード認証子検証部708と、生成した認証子(mac[K,1]’)と送り込まれたmac[K,1]が等しいことが確認された場合に、予め設定された復元鍵および第三メッセージに含まれた暗号化認証子(psig[K,2])に基づきハッシュ関数を利用して平文としてのパスワード認証子(mac[K,2])を復元生成するパスワード認証子復元部709を備えている。
更に、サーバ用鍵交換装置700は、秘密鍵とメッセージに基づき認証子生成装置を利用してパスワード認証子(mac[K,2]’)を生成し、このパスワード認証子(mac[K,2]’)と、上記復元生成したパスワード認証子(mac[K,2])とが等しいか否かの判定を行うパスワード認証子検証部710と、パスワード認証子と復元生成されたパスワード認証子とが等しいと判定された場合に、予め生成された交換鍵を出力表示する鍵出力部712と、公開鍵が出力される場合に、保存された状態情報を消去する処理を行う状態消去部713を備えている。
[実施形態1の変形例]
本実施形態1では、利用者用鍵交換装置600に対して着脱自在に接続した、例えば、ICカードのような、可搬装置630を備え(図5の一点破線部)、この可搬装置630内に、例えば、上記検証鍵検証部609、パスワード入力部610、無パスワード認証子生成611、パスワード認証子生成612、パスワード認証子隠蔽613、および乱数源更新部614を設定すると共に、可搬装置630内に予め設定した記憶領域にマスター鍵620、マスク622、および乱数源621が記憶保持された構成であってもよい。
本実施形態1においては、利用者装置600がサーバ装置700との間で鍵交換を行うためには、正当な認証子(パスワード認証子)を示す必要があり、この認証子を生成するためには、秘密鍵およびこの秘密鍵を生成するためのパスワードが必要となるため、上記変形例に示した構成とすることにより、本体側に設定された状態保存部604に記憶された秘密鍵と、ICカード側に記憶された照合目的のパスワードとを分離して管理することが可能となり、秘密鍵およびパスワードの漏洩に対するセキュリティをより高めることが可能となる。
以上のように、本実施形態1では、秘密鍵(長い秘密情報)とパスワードの両方を用いる鍵交換を行うことができ、更には、秘密鍵が格納している器機が紛失された場合でも、パスワードがなければ、サーバ装置との間で鍵交換を行うことができないため、不正な利用者による、成りすましなどの不正な鍵交換を有効に抑制することができる。
また、サーバ装置側では利用者により入力されたパスワードを得ることができないため、鍵交換を行った他のサーバ装置に対する成りすましによる不正な鍵交換を有効に抑制することができる。
[実施形態1の動作説明]
次に、本実施形態1の動作について、その概略を説明する。
まず、予め設定されたマスター鍵に基づき第1の秘密鍵を生成すると共に、外部から入力されたパスワードに基づき第2の秘密鍵を生成した利用者装置600が、サーバ装置700からメッセージ情報が送り込まれた場合に、前記第1の秘密鍵に基づき前記第1の認証子の生成を行い、この第1の認証子に基づき前記メッセージ情報の認証判定を行い、前記第1の認証子に基づく認証判定で認証がなされた場合に、前記第2の秘密鍵に基づき前記第2の認証子の生成を行うと共に当該第2の認証子に基づき前記メッセージ情報の認証判定を行い、前記第2の認証子に基づく認証判定で認証がなされた場合に、鍵生成部615が、前記メッセージ情報に基づき交換鍵を生成し、前記サーバ装置に対してメッセージ情報の送信を行う。
次いで、利用者装置600からメッセージ情報が送り込まれた場合に、サーバ装置700が、予め利用者装置600により登録された前記第1の秘密鍵に基づき前記第1の認証子の生成を行い、前記第1の認証子に基づき前記メッセージ情報の認証判定を行い、前記第1の認証子に基づく認証判定で認証がなされた場合に、予め登録された前記第2の秘密鍵に基づき前記第2の認証子の生成を行うと共に当該第2の認証子に基づき前記メッセージ情報の認証判定を行い、鍵出力部712は、前記第2の認証子に基づく認証判定で認証がなされた場合に前記メッセージ情報に基づき前記ユーザ装置で生成された交換鍵と共通の交換鍵を出力する。
次に、本実施形態1にかかる鍵交換システムの動作について説明する。
(初期設定)
利用者鍵交換装置600には、図5に示すように、予めランダムに設定されたマスター鍵(mkey[U])620、乱数源(seed[U])621、暗号化用のマスク(mask[U])622が予め設定された記憶領域に記憶されているものとする。
また、サーバ用鍵交換装置700には、署名鍵(skey[S])720、検証鍵(vkey[S])721、ランダムに選ばれたZ/pZの元sである複号鍵(dkey[S])722と、公開鍵(pkey[S]:t=gであるものとする)723と、鍵交換相手として登録された利用者をリスト化した利用者リスト724が、予め設定された記憶領域に記憶されているものとする。
尚、上記利用者リスト724は、初期設定としては利用者が1件も登録されていない空状態であるものとする。
次に、本実施形態1における鍵交換相手の登録にかかる動作について説明する。
ここで、利用者用鍵交換装置600は、サーバ用鍵交換装置700に対して鍵交換対象装置としての登録を行う。利用者用鍵交換装置600は、ネットワークを介して複数の異なるサーバ用鍵交換装置に対して鍵交換対象装置としての登録行うことができるものとする。
これにより、一つの利用者鍵交換装置は、複数の異なるサーバ用鍵交換装置700と鍵交換を行うことが可能となるものとする。
尚、サーバ用鍵交換装置(サーバ装置)700は、異なる利用者用鍵交換装置(利用者装置)を、各利用者装置に予め設定された識別子(利用者装置識別子)により判別するものとする。これにより、一つのサーバ用鍵交換装置700は、複数の異なる利用者用鍵交換装置からの登録を受けつけることができる。また、これにより、一つのサーバ用鍵交換装置700は、複数の異なる利用者用鍵交換装置との鍵交換を行うことが可能となる。
また、サーバ用鍵交換装置(サーバ装置)700は、利用者装置の異なる利用者それぞれに割り当てられた識別子(利用者識別子)によっても判別可能であるものとする。
これにより、サーバ用鍵交換装置700は、利用者リストに利用者毎に対応する記録情報を保存することができる。
(登録動作)
まず、サーバ装置700は、予め設定された検証鍵(vkey[S])721、および公開鍵(pkey[S])723を、利用者用鍵交換装置600に対して送信する。
次いで、利用者用鍵交換装置600は、検証鍵(vkey[S])721、および公開鍵(pkey[S])723を受け取った場合に、パスワード入力装置610から入力されたパスワード(pwd[U])を取得する。
ここで、パスワード入力装置610は、検証鍵(vkey[S])721、および公開鍵(pkey[S])723を受け取った場合に、予め設定された表示画面に対してパスワード入力要求を出力表示するものとする。
次に、利用者用鍵交換装置600内に予め設定された登録処理用の制御部(登録処理用制御部)が、予め設定されたマスター鍵(mkey[U],S)620を予め設定されたハッシュ計算装置(ハッシュ関数)に入力し、この入力に対するハッシュ関数演算処理結果としての秘密鍵akey[U,1]を生成する。
次いで、登録処理用制御部は、上記入力されたpwd[U]を取得すると共に、このpwd[U]をハッシュ関数に入力することにより得られた値と、予め設定されたmask[U]との排他的論理和である秘匿パスワード(mpwd[U])を生成する。これにより、利用者により入力されたパスワードを暗号化することができる。
次に、登録処理用制御部は、マスター鍵(mkey[U])、mpwd[U]、および識別子Sをハッシュ関数に入力して、その出力としての秘密鍵akey[U,2]を生成する。
ここで、利用者用鍵交換装置600の登録処理用演算部は、秘密鍵akey[U,1]と、メッセージとしての検証鍵(vkey[S])721および公開鍵(pkey[S])723を認証子生成装置に入力し、その出力として認証子mac[S、U]を生成する。
次いで、登録処理用制御部は、生成した異なる二つの秘密鍵、および認証子(akey[U,1]、akey[U,2]、mac[S、U])を、サーバ装置に送信する。
サーバ用鍵交換装置700内に予め設定された登録処理用制御部は、二つの秘密鍵と認証子(akey[U,1]、akey[U,2]、mac[S,U])を受け取り、秘密鍵akey[U,1]とメッセージとしての検証鍵(vkey[S])721および公開鍵(pkey[S])723を、予め設定された認証子生成装置704に入力し、その出力である認証子mac[S、U]’を得る。
登録処理用制御部は、生成された認証子mac[S,U]’と送り込まれたmac[S,U]とが等しいか否かの判定を行う(認証子判定手段)。ここで、生成された認証子と送り込まれた認証子とが等しい(つまり、同一であることが)確認された場合に、登録処理用制御部は、(U,秘密鍵akey[U,1],[U,2],mac[S、U],i)を、利用者Uの記録として利用者リスト724に保存する。尚、iはパスワード誤り回数を示し、初期値としては0が設定されているものとする。
(鍵交換)
次に、本実施形態1における鍵交換の動作について、図7、8のフローチャートに基づき説明する。
まず、利用者用鍵交換装置600の動作(ステップA1〜A4)について、図7のフローチャートに基づき説明する。
利用者用鍵交換装置600に鍵交換の開始要求を示す鍵交換開始命令と鍵交換の相手の識別子(相手識別子:ここではSとする)602が、鍵交換開始命令部を介して入力される(ステップA1)。
このとき、第一メッセージ生成部603が、暫定数y(y∈Z/qZとする)を生成する(暫定数生成)。尚、暫定数yは、ランダムに生成される数字であるものとする。また、qを素数、Gを位数qの乗法的巡回群、gをGの生成元であるものとする。
次いで、第一メッセージ生成部603は、この暫定数yに基づき、w(w=gとする)を生成する(第一メッセージ生成:ステップA2)と共に、状態保存部604に(S、w、y)を状態情報として保存する(ステップA3)。
次に、第一メッセージ送信部605が、第一メッセージとしての(U,S、w)をサーバ用鍵交換装置700に送信する(ステップA4)。
次に、サーバ用鍵交換装置700の動作について、図8のフローチャート(ステップB1〜B6)に基づき説明する。
サーバ用鍵交換装置700の制限回数確認部701は、利用者用鍵交換装置600から送り込まれた第一メッセージ(U,S,w)を受け取る(ステップB1)。
ここで、制限回数確認部701は、記録情報(U,akey[U,1]、akey[U,2]、i)を利用者リスト724から抽出すると共に、鍵交換試行の試行誤り回数が予め設定された制限回数を超えていないか否かを判定する(制限回数確認:ステップB2)。
具体的には、制限回数確認部701は、記録情報に含まれたiの値が制限回数より大きいか否かを判定し、iの値が制限回数より大きい場合は処理を中止する。
ここで、iの値が制限回数を下回る場合、鍵生成部702が、暫定数x(ここでは、x∈Z/qZとする)を生成する。尚、この暫定数xはランダム数であるものとする。
また、鍵生成部702は、ランダム数xに基づいて、v(ここでは、v=gとする)およびz(ここでは、z=wとする)を生成すると共に、生成したv,xを含む(S,U,v,w,z,0)をハッシュ関数に入力して、その出力としての鍵(key)を生成する(鍵生成)。
次いで、セッション番号生成部703が、上記生成したvを含む(v,w)をハッシュ関数に入力して、その出力であるセッション番号(sid)を生成する(セッション番号生成:ステップB3)。
次いで、認証子生成部704は、予め設定された署名鍵(skey[S])720とメッセージとしての(S,U,v,w)を署名装置に入力し、その出力である署名sig[M]を生成する。ここで、状態保存705は、(U,sid,key)を状態情報として保存する(状態保存:ステップB5)。
次に、第二メッセージ送信部706が、上記生成された署名sig[M]を含む第二メッセージ(S,U,v,w,vkey[S],pkey[S],mac[S,U],sig[M])を、利用者用鍵交換装置600に送信する(ステップB6)。
尚、上記第二メッセージに含まれるvkey[S]、pkey[S]、mac[S,U]、およびsig[M]は、それぞれ、検証鍵、公開鍵、認証子、および署名を示す。
これにより、サーバ用鍵交換装置700は、利用者用鍵交換装置600による第二メッセージに基づく認証判定を受けることとなる。
以下、利用者用鍵交換装置600における動作処理について、図7のフローチャート(ステップA5〜A18)に基づき説明する。
利用者用鍵交換装置600は、サーバ用鍵交換装置700から送り込まれた第二メッセージ(S,U,v,w,vkey[S],pkey[S],mac[S,U],sig[M])を受け取る(ステップA5)。
ここで、対応状態確認部606は、(S,U,v,w)を含むメッセージを受信した場合に、状態情報(S,w,y)が状態保存部604に予め保存されているか否かを調べ、その判定を行う(対応状態確認:ステップA6)。
ここで、状態保存部604に状態情報(S,w,y)が予め保存されていない場合は、鍵交換セッションを切断し、鍵交換にかかる処理を中止する。
状態情報(S,w,y)が状態保存部604に予め保存されていることが確認された場合に、セッション番号生成部608は、(v,w)をハッシュ関数に入力して、その出力としてのセッション番号(sid)を生成する(ステップA7)。
次いで、検証鍵検証部609が、サーバ用鍵交換装置700から送り込まれた検証鍵(vkey[S])、署名(sig[M])、およびメッセージとしての(S,U,v,w)を署名検証装置に入力し、例えば、検証鍵(vkey[S])、およびメッセージ(S,U,v,w)に基づき署名sigが生成可能であるか否かを判定することにより、署名sigの正当であるか否かを判定する(検証鍵検証:ステップA8)。
ここで、(S,U,v,w)、検証鍵の正当性が確認された場合に、認証子検証部607が、予め設定されたマスター鍵と相手識別子(mkey[U],S)をハッシュ関数に入力し、その出力として秘密鍵(akey[U,1])を生成する。
また、認証子検証部607は、生成した秘密鍵(akey[U,1])と、メッセージとしての検証鍵および公開鍵(vkey[S],pkey[S])とを認証子生成装置に入力し、その出力としての認証子(mac[S,U]’)を生成する。
ここで、認証子検証部607は、生成した認証子(mac[S,U]’)と第二メッセージの一部として送り込まれたmac[S,U]とが等しいか否かの判定を行う(認証子検証:ステップA9)。
ここで、生成された認証子(mac[S,U]’)と送り込まれたmac[S,U]が等しい(つまり、mac[S,U]’=mac[S,U])ことが確認された場合、パスワード入力部610が、ユーザ対してパスワードの入力を求め、これに対して入力されたパスワード(pwd)を取得する(パスワード入力:ステップA10)。
次いで、無パスワード認証子生成部611が、秘密鍵akey[U,1]とメッセージとしての(U,S,sid)を認証子生成装置に入力することにより、その出力である無パスワード認証子(mac[K,1])を生成する(ステップA11)。
また、パスワード認証子生成部612が、マスター鍵(mkey(U))をハッシュ関数に入力して得られた値と、予め設定されたmask[U]との排他的論理和であるmpwd[U]を算出する。
次いで、パスワード認証子生成部612は、マスター鍵、暗号パスワード、および相手識別子(mkey,mpwd,S)をハッシュ関数に入力し、その出力としての秘密鍵(akey(U,2))を生成する。
ここで、パスワード認証子生成部612は、生成した秘密鍵(akey(U,2))とメッセージとしての(U,S,sid)を認証子生成装置に入力して、その出力としての認証子(mac[K,2])を生成する(ステップA12)。
次いで、パスワード認証子隠蔽部613が、予め設定されたseed[U]をハッシュ関数に入力することにより、出力値rを得ると共に、この値r用いて値m(m=gとする)を算出する。
ここで、パスワード認証子隠蔽部613は、tをハッシュ関数に入力して得られた値とmac[K,2]との排他的論理和である暗号署名(psig[K,2])を生成する(パスワード認証子隠蔽:ステップA13)。
次に、乱数元更新部614が、seed[U]をハッシュ関数に入力して、その出力をseed[U]’として取得し、seed[U]をseed[U]’に置き換える乱数元更新処理を行う(ステップA14)。
次いで、鍵生成部615が、値z(z=vとする)を算出すると共に、この値zを含む(S、U,v、w、z)をハッシュ関数に入力して、その出力である鍵(key)を生成する(ステップA15)。
次に、状態消去部616が、保存された状態情報(S、w、y)を消去し(状態消去:ステップA16)、第三メッセージ送付部617が、(U,S、sid、m、mac[K,1]、psig[K、2])からなる第三メッセージを設定しサーバ用鍵交換装置700に送信する(第三メッセージ送付:ステップA17)。
ここで、鍵出力部618が、(U,S、sid、key)を含む交換鍵625を出力する(ステップA18)。
次に、サーバ用鍵交換装置700における動作処理について、図8のステップB7〜B14に基づき説明する。
サーバ用鍵交換装置700は、利用者用鍵交換装置600から送り込まれた第三メッセージである(U,S,sid,m,mac[K,1]、psig[K,2])を受信した場合(ステップB7)、対応状態確認部707は、このメッセージ内容に対応する状態情報(U,sid,key,tkey)が保存されているか否かを調べる(対応状態確認:ステップB8)。
また、対応状態確認部707は、利用者リスト724内に記録された、上記状態情報に対応する記録情報(U,akey[U,1],akey[U,2],i)を検索する。
ここで、利用者リスト724に、対応する記録情報(U,akey[U,1],akey[U,2],i)が予め保存されていない場合は、鍵交換処理のセッションを切断し、鍵交換処理を中止するものとする。
上記対応する記録情報が見つかった場合、無パスワード認証子検証部708が、記録情報(U,akey[U,1]、akey[U,2]、i)を利用者リスト724から抽出し、秘密鍵(akey[U,1])、およびメッセージとしての(U,S,sid)を、認証子生成装置(認証子生成部704)に入力し、その出力である無パスワード認証子(mac[K,1]’)を生成する。
次いで、無パスワード認証子検証部708は、生成したmac[K,1]’と第三メッセージの一部として送り込まれたmac[K,1]とが等しいか否かの判定を行う(認証子検証:ステップB9)。
ここで、生成した認証子(mac[K,1]’)と送り込まれたmac[K,1]が等しい(mac[K,1]’=mac[K,1])ことが確認された場合に、パスワード認証子復元部709は、予め設定された復元鍵(m)をハッシュ関数に入力して得られた値と、第三メッセージに含まれたpsig[K,2]との排他的論理和である、平文としてのパスワード認証子(mac[K,2])を復元生成する(復元鍵を用いたパスワード認証子復元:ステップB10)。
次に、パスワード認証子検証部710が、akey[U,2]とメッセージとしての(U,S,sid)を認証子生成装置(認証子生成部704)に入力することにより、その出力であるパスワード認証子(mac[K,2]’)を生成し、このパスワード認証子(mac[K,2]’)と、上記復元生成したパスワード認証子(mac[K,2])とが等しいか否かの判定、つまり、mac[K,2]’=mac[K,2]の等号が成り立つか否かの判定を行う(パスワード認証検証:ステップB11)。
ここで、上記等号(mac[K,2]’=mac[K,2])が成り立たないと判定された場合、不正接続回数加算部711が、記録(U,akey[U,1]、akey[U,2]、i)におけるiをi+1に変更する処理を行い(ステップB12)、鍵交換にかかる処理を中止する。
一方、パスワード認証子(mac[K,2]’)と、上記復元生成されたパスワード認証子(mac[K,2])とが等しい(mac[K,2]’=mac[K,2])と判定された場合は、鍵出力部712が、交換鍵(U,S,sid,key)725を出力する(ステップB13)。尚、交換鍵625および725は、共通の交換鍵であるものとする。
ここで、状態消去部713が、状態情報(U,sid,key,tkey)を消去する処理を行う(ステップB14)。
これにより、利用者用鍵交換装置600およびサーバ用鍵交換装置700間における鍵交換が成立する。
以上のように、本実施形態1では、利用者装置がサーバ装置と鍵交換を行うためには、正当なパスワード認証子(mac[K,2])を示す必要があり、また、これを生成するにはパスワード由来の秘密鍵(akey[U,2])、およびパスワードが必要となるため、利用者装置およびサーバ装置間では、パスワードおよび認証子を利用したセキュリティの高い状態で鍵交換を実行することができる。
更に、本実施形態においては、秘密鍵(akey[U,2])はサーバ装置側にも保存されているが、秘密鍵(akey[U,2])は、利用者装置内に予め設定されたマスター鍵と利用者により入力されたパスワードとから生成されているため、サーバ装置側で秘密鍵(akey[U,2])からパスワードを復元することはできず、これにより、サーバ装置側におけるパスワードの漏洩やパスワードを利用した不正な鍵交換の実行を有効に抑制することができる。
また、本実施形態では、利用者がサーバと鍵交換を行うためには、正当な認証子(mac[K,1])を示す必要もあるが、これには、予め秘密鍵(akey[U,1])を保持している必要があり、このmac[K,1]が正しく示されたことを確認された後に、mac[K,2](あるいはsig[K,2])の正当性が確認される。このため、例えマスター鍵(mkey[U])が悪意の利用者(攻撃者)により取得された場合でも、パスワードの正当性をサーバ装置に対して確認することはできないため、不正な鍵交換が実行されるのを有効に抑制することができる。
また、本実施形態のサーバ装置700では、例えば、攻撃者が、鍵交換の要求試みにかかるパスワード入力誤り回数が記録され、一定の数を越えると接続が拒否される構成を有すると共に、攻撃者は、マスター鍵(mkey[U])を知らなければ、このような攻撃を試みて、サーバ装置における接続拒否が発生するよう仕向けることはできないため、正当な利用者によるサーバ装置の利用や鍵交換を阻害することなく、攻撃者に対するセキュリティを高めることができる。
[実施形態2]
次に、本発明の実施形態2について、その基本的構成内容を説明する。
本実施形態2である鍵交換システムは、図6に示すように、利用者用鍵交換装置800およびサーバ用鍵交換装置900が接続され相互にメッセージの送受信を行うことにより、共通の交換鍵の生成、出力を行う。
尚、利用者用鍵交換装置800およびサーバ用鍵交換装置900はそれぞれ、予め設定されたプログラムに基づく実行処理を行う演算装置を備えたコンピュータであって、当該演算装置による実行処理により以下に示す機能動作を実現する。
また、利用者用鍵交換装置800およびサーバ用鍵交換装置900は、上記鍵交換装置(図4)と同様に、予め設定された鍵情報に基づきデータ(平文など)の暗号化処理を行う暗号化装置と、暗号化されたデータの復号化処理を行う復号化装置と、予め設定された秘密鍵およびランダム数に基づきメッセージ情報の認証子を生成する認証子生成装置と、ランダム数に基づく計算を行うハッシュ計算装置を有する。
認証子生成装置は、秘密鍵およびメッセージが入力されると、この秘密鍵およびメッセージに基づく認証子を生成し出力する。
ここで、上記暗号化装置は、例えば鍵および平文が入力された場合に、入力された鍵を用いて同じく入力された平文を暗号化して、暗号文を生成(出力)する。
また、上記復号化装置は、例えば鍵および暗号文が入力された場合に、入力された鍵を用いて暗号文を復号化した平文を生成(出力)する。
ハッシュ計算装置は、自己識別子、相手識別子、平文、乱数などの予め設定された入力情報に対して、予め設定されたプログラム(ハッシュ関数)に基づく処理を行うことにより出力情報を生成して出力するハッシュ関数処理機能を備えている。
また、利用者用鍵交換装置800は、予め設定された検証鍵、署名、およびメッセージが入力された場合に、署名の正当性を判定し、その判定結果を返す署名検証装置を備えた構成を有する。
一方、サーバ用鍵交換装置900は、入力された署名鍵およびメッセージに基づき署名を設定し、この署名を出力する署名装置を有する。
以下、利用者用鍵交換装置800の内部構成について、図6に基づいて説明する。
利用者用鍵交換装置(以下「利用者装置」という)800には、当該利用者装置800に対して、鍵交換の開始要求を示す鍵交換開始命令と鍵交換の相手の識別子(相手識別子)802の入力を行う鍵交換開始命令部801が併設されている。
また、利用者装置800は、鍵交換開始命令部801からの入力に応じてランダム数の生成を行う第一メッセージ生成部803と、外部から入力された情報および第一メッセージ生成部803により生成された乱数(ランダム数)などの情報からなる状態情報を保持する状態保存部804と、第一メッセージ生成部803により設定された第一メッセージをサーバ用鍵交換装置900に対して送付する第一メッセージ送信部805を有する。
また、利用者装置800は、サーバ用鍵交換装置(以下「サーバ装置」という)900から送り込まれた第二メッセージを受信すると共にこのメッセージ内に含まれる状態情報が状態保存部804に予め保存されているか否かの判定を行う対応状態確認部806と、状態情報が状態保存部804に予め保存されていることが確認された場合に、メッセージに含まれる特定の情報に基づきハッシュ計算装置(以下「ハッシュ関数」という)を利用することにより、セッション番号(sid)を生成するセッション番号生成部808を備えている。
更に、利用者装置800は、第二メッセージ内に含まれた状態情報が状態保存部804に予め保存されていることが確認された場合に、生成した秘密鍵とメッセージに基づき認証子生成装置を利用して認証子を生成すると共にメッセージとして送り込まれた認証子が正当であるか否かの判定を行う認証子検証部807と、認証子の正当性が認証された場合に、ユーザから入力されたパスワード(pwd)を取得するパスワード入力部810を備えている。
尚、認証子検証部807は、予め設定されたマスター鍵と相手識別子に基づき、上記ハッシュ関数を利用して秘密鍵を生成する機能を有する。
また、利用者用鍵交換装置800は、生成された秘密鍵とメッセージに基づき認証子生成装置を利用することによって、パスワード由来ではない無パスワード認証子の生成を行う無パスワード認証子生成部811と、パスワード入力部810から入力されたパスワードに基づき生成した秘密鍵(第2の秘密鍵に対応)とメッセージに基づき認証子生成装置を利用してパスワード認証子を生成するパスワード認証子生成部812を有する。
更に、利用者装置800は、予め設定されたランダム数(S,U,v,w,z,1)に基づき、ハッシュ関数を利用して対称鍵暗号方式用の一時鍵(tkey)を生成する鍵生成部815を有する。
また、鍵生成部815は、生成したz(=v)を含むランダム数(S,U,v,w,z,0)に基づき、ハッシュ関数を利用することにより、上記一時鍵に対応する対称鍵暗号方式用の鍵(key)を生成する鍵生成機能を有する。
これにより、本実施形態の利用者装置800では、生成した鍵および一時鍵を対称鍵暗号方式の鍵として利用して、鍵交換対象である相手装置(ここでは、サーバ装置900)から送り込まれたメッセージ情報に含まれるデータの暗号化および復号化を行うことができる。
また、利用者装置800は、一時鍵(tkey)と、平文としての認証子(mac[K,2])とに基づいて、予め設定された暗号化装置を利用してその出力である暗号文としての暗号化認証子(pmac[K,2])を生成するパスワード認証子隠蔽部813と、鍵生成部815で鍵および一時鍵の生成が行われた場合に、予め保存された状態情報を消去する処理を行う状態消去部816と、鍵生成部615で鍵および一時鍵の生成が行われた場合に、第三メッセージを設定すると共にこのメッセージをサーバ装置900に送付する第三メッセージ送信部817と、生成された交換鍵を予め設定された、例えば、ディスプレイ等の表示部に対して出力する鍵出力部818を備えた構成を有する。
次に、サーバ用鍵交換装置(サーバ装置)900の内部構成について、図6に基づいて説明する。
サーバ用鍵交換装置900は、利用者装置800から送り込まれた第一メッセージを受信すると共に、当該メッセージの内容に基づく記録情報を利用者リスト924から抽出し、メッセージ送信元による鍵交換試行の試行誤り回数が予め設定された制限回数を超えていないか否かの判定を行う制限回数確認部901と、メッセージ送信元による鍵交換試行の試行誤り回数が制限回数を下回る場合に、メッセージ内容に基づくランダム数の生成を行い生成したランダム数を含む(S,U,v,w,z,0)に基づきハッシュ関数を利用して鍵(key)を生成する鍵生成部902と、メッセージ内容に基づくランダム数の生成を行い生成したランダム数を含む(S,U,v,w,z,0)に基づきハッシュ関数を利用して一時鍵(tkey)を生成する一時鍵生成部914を有する。
また、サーバ用鍵交換装置900は、鍵生成部902で鍵(key)が生成された場合に、予め設定されたランダム数に基づきハッシュ関数を利用して鍵交換用のセッション番号(sid)を生成するセッション番号生成部903と、予め設定された秘密鍵とメッセージに基づき認証子生成装置を利用して認証子(mac[M,2])を生成する認証子生成部904と、上記生成された鍵および一時鍵を含む状態情報を保持する状態保存部905と、上記生成された認証子(mac[M,2])を含む第二メッセージを設定すると共に、当該メッセージを利用者用鍵交換装置800に送信する第二メッセージ送信部906を備えている。
更に、サーバ装置900は、利用者装置800から第三メッセージを受信した場合にこのメッセージ内容に対応する状態情報が予め保存されているか否かを判定する対応状態確認部907を有する。
また、この対応状態確認部907は、利用者リスト924内に記録された、上記状態情報に対応する記録情報(U,akey[U,1],akey[U,2],i)を検索する。
また、サーバ用鍵交換装置900は、秘密鍵(akey[U,1])および第三メッセージの内容に基づき、予め設定された認証子生成装置を利用することによって、パスワード由来ではない無パスワード認証子を生成し、生成した無パスワード認証子と第三メッセージの一部として送り込まれた認証子mac[K,1]とが等しいか否かの判定を行う無パスワード認証子検証部908と、生成された一時鍵(tkey)と暗号文としての暗号化認証子(pmac[K,2])に基づき復号化装置を利用して平文としてのパスワード認証子(mac[K,2])を復元生成するパスワード認証子復元部909を備えている。
更に、サーバ用鍵交換装置900は、秘密鍵とメッセージに基づき認証子生成装置を利用してパスワード認証子(mac[K,2]’)を生成し、このパスワード認証子(mac[K,2]’)と、上記復元生成したパスワード認証子(mac[K,2])とが等しいか否かの判定を行うパスワード認証子検証部910と、パスワード認証子と復元生成されたパスワード認証子とが等しいと判定された場合に、予め生成された交換鍵925を出力表示する鍵出力部912と、公開鍵が出力される場合に、鍵および一時鍵を含む、予め保存された状態情報を消去する処理を行う状態消去部913を備えている。
[実施形態2の変形例]
本実施形態2では、利用者用鍵交換装置800に一時的に接続したICカードの様な可搬装置830を備え(図6)、この可搬装置830内に、例えば、上記認証子検証807、無パスワード認証子生成811、パスワード認証子生成812、パスワード認証子隠蔽813、鍵生成815、およびパスワード入力部810を設定すると共に、可搬装置830内に予め設けた記憶領域にマスター鍵820が記憶保持された構成であってもよい。
本実施形態においては、利用者装置800がサーバ装置900との間で鍵交換を行うためには、正当な認証子(パスワード認証子)を示す必要があり、この認証子を生成するためには、秘密鍵およびこの秘密鍵を生成するためのパスワードが必要となるため、上記変形例に示した構成とすることにより、本体側に設定された状態保存部804に記憶された秘密鍵と、ICカード側に記憶された照合目的のパスワードとを分離して管理することが可能となり、秘密鍵およびパスワードの漏洩に対するセキュリティをより高めることが可能となる。
[実施形態2の動作説明]
次に、本実施形態2の動作について、その概略を説明する。
利用者装置800は、予め設定されたマスター鍵に基づき第1の秘密鍵を生成すると共に、外部から入力されたパスワードに基づき第2の秘密鍵を生成し、前記第1および第2の秘密鍵を前記サーバ装置に送信する。
次いで、サーバ装置900が、前記第1および第2の秘密鍵を登録し、前記ユーザ装置から鍵交換の要求がメッセージ情報として送り込まれた場合に、前記第1の秘密鍵に基づき前記第1の認証子の生成を行い、前記第1の認証子に基づき前記メッセージ情報の認証判定を行い、前記第1の認証子に基づく認証判定で認証がなされた場合に、前記第2の秘密鍵に基づき前記第2の認証子の生成を行うと共に当該第2の認証子に基づき前記メッセージ情報の認証判定を行い、前記第2の認証子に基づく認証判定で認証がなされた場合に前記メッセージ情報に基づき交換鍵を生成し、利用者装置800に対してメッセージ情報の送信を行う。
次に、利用者装置800は、サーバ装置900からメッセージ情報が送り込まれた場合に、生成した第1の秘密鍵に基づき前記第1の認証子の生成を行うと共に、当該第1の認証子に基づき前記メッセージ情報の認証判定を行い、前記第1の認証子に基づく認証判定で認証がなされた場合に、前記生成した第2の秘密鍵に基づき前記第2の認証子の生成を行うと共に当該第2の認証子に基づき前記メッセージ情報の認証判定を行い、前記第2の認証子に基づく認証判定で認証がなされた場合に前記メッセージ情報に基づき前記サーバ装置で生成された交換鍵と共通の交換鍵を生成する。
次に、本実施形態2にかかる鍵交換システムの動作について説明する。
(初期設定)
利用者鍵交換装置800には、図6に示すように、予めランダムに設定されたマスター鍵(mkey[U])820が予め設定された記憶領域に記憶されているものとする。
また、サーバ用鍵交換装置900には、鍵交換相手として登録された利用者をリスト化した利用者リスト924が、予め設定された記憶領域に記憶されているものとする。
尚、上記利用者リスト924は、初期設定としては利用者が1件も登録されていない空状態であるものとする。
次に、本実施形態2における鍵交換相手の登録にかかる動作について説明する。
ここで、利用者用鍵交換装置800は、サーバ用鍵交換装置700に対して鍵交換対象装置としての登録を行う。利用者用鍵交換装置800は、ネットワークを介して複数の異なるサーバ用鍵交換装置に対して鍵交換対象装置としての登録行うことができるものとする。
これにより、利用者鍵交換装置は、複数の異なるサーバ用鍵交換装置900と鍵交換を行うことが可能となるものとする。
尚、サーバ用鍵交換装置(サーバ装置)900は、異なる利用者用鍵交換装置(利用者装置)を、各利用者装置に予め設定された識別子(利用者装置識別子)により判別するものとする。これにより、サーバ用鍵交換装置900は、複数の異なる利用者用鍵交換装置からの登録を受けつけることができる。また、これにより、サーバ用鍵交換装置900は、複数の異なる利用者用鍵交換装置との鍵交換を行うことが可能となる。
また、サーバ用鍵交換装置(サーバ装置)900は、利用者装置の異なる利用者それぞれに割り当てられた識別子(利用者識別子)によっても判別可能であるものとする。
これにより、サーバ用鍵交換装置900は、利用者リストに利用者毎に対応する記録情報を保存することができる。
(登録動作)
まず、利用者用鍵交換装置800のパスワード入力部810が、利用者から入力されたパスワード(pwd)を取得する。
次いで、鍵生成部815が、予め記憶されたマスター鍵および相手識別子(mkey[U],S)をハッシュ関数に入力することにより、その出力としての秘密鍵akey[U,1]を生成する。
また、鍵生成部815は、マスター鍵、パスワード、相手識別子(mkey[U],pwd,S)をハッシュ関数に入力し、その出力としての秘密鍵(akey[U,2])を生成する。
次いで、第一メッセージ送信部805が、上記生成された二つの異なる秘密鍵(akey[U,1]、akey[U,2])を、サーバ用鍵交換装置900に送信する。
サーバ用鍵交換装置900は、二つの秘密鍵(akey[U,1]、akey[U,2])を受け取ると共に、予め設定された登録用制御部が、この秘密鍵に基づき設定した利用者Uの記録情報(U,akey[U,1]、akey[U,2]、i)を利用者リスト924に格納する。
尚、記録情報におけるiの値はパスワード誤り回数を示し、初期値は0に設定されているものとする。
(鍵交換)
次に、本実施形態2における鍵交換の動作について、図9、10のフローチャートに基づき説明する。
まず、利用者用鍵交換装置600の動作(ステップC1〜C4)について、図9のフローチャートに基づき説明する。
まず、利用者用鍵交換装置800には、鍵交換の開始要求を示す鍵交換開始命令801と鍵交換の相手の識別子(相手識別子:ここではSとする)802が入力される(ステップC1)。
このとき、第一メッセージ生成部803が、暫定数y(y∈Z/qZとする)を生成する(暫定数生成)。尚、暫定数yは、ランダムに生成される数字であるものとする。
次いで、第一メッセージ生成部803は、この暫定数yに基づき、w(w=gとする)を生成する(第一メッセージ生成:ステップC2)と共に、状態保存部804に(S、w、y)を状態情報として保存する(ステップC3)。
次に、第一メッセージ送信部805が、第一メッセージとしての(U,S、w)をサーバ用鍵交換装置900に送信する(ステップC4)。
次に、サーバ用鍵交換装置900の動作について、図10のフローチャート(ステップD1〜D8)に基づき説明する。
サーバ用鍵交換装置900の制限回数確認部901は、利用者用鍵交換装置800から送り込まれた第一メッセージ(U,S,w)を受け取る(ステップD1)。
ここで、制限回数確認部901は、記録情報(U,akey[U,1]、akey[U,2]、i)を利用者リスト924から抽出すると共に、鍵交換試行の試行誤り回数が予め設定された制限回数を超えていないか否かを判定する(制限回数確認:ステップD2)。
具体的には、制限回数確認部901は、記録情報に含まれたiの値が制限回数より大きいか否かを判定し、iの値が制限回数より大きい場合は処理を中止する。
ここで、iの値が制限回数を下回る場合、鍵生成部902が、暫定数x(ここでは、x∈Z/qZとする)を生成する。尚、この暫定数xはランダム数であるものとする。
また、鍵生成部902は、ランダム数xに基づいて、v(ここでは、v=gとする)およびz(ここでは、z=wとする)を生成すると共に、生成したv,xを含む(S,U,v,w,z,0)をハッシュ関数に入力して、その出力としての鍵(key)を生成する(ステップD3)。
尚、鍵生成部902および一時鍵生成部914によってハッシュ関数に入力された値(パラメター)0および1は、それぞれkeyおよびtkeyに対応するものとする。
また、このとき、一時鍵生成部914が、(S,U,v,w,z,1)を、ハッシュ関数に入力して、その出力である一時鍵(tkey)を生成する(ステップD4)。
このとき、セッション番号生成部903が、(v,w)をハッシュ関数に入力して、その出力をセッション番号(sid)を生成する(セッション番号生成:ステップD5)。
次いで、認証子生成部904は、秘密鍵(akey[U,1])とメッセージとしての(S,U,v,w)を、認証子生成装置に入力し、その出力である認証子mac[M,2]を生成する(ステップD6)。ここで、状態保存905は、(U,sid,key,tkey)を状態情報として保存する(状態保存:ステップD7)。
次に、第二メッセージ送信部906が、上記生成された認証子mac[M,2]を含む(S,U,v,w,mac[M,2])を、利用者用鍵交換装置800に送信する(ステップD8)。
これにより、サーバ用鍵交換装置900は、利用者用鍵交換装置800によるmac[M,2]を含む第二メッセージに基づく認証判定を受けることとなる。
以下、利用者用鍵交換装置800における動作処理について、図9のフローチャート(ステップC5〜C17)に基づき説明する。
利用者用鍵交換装置800は、サーバ用鍵交換装置900から送り込まれた第二メッセージである(S,U,v,w,mac[M,2])を受け取る(ステップC5)。
ここで、対応状態確認部806は、(S,U,v,w)を含むメッセージを受信した場合に、状態情報(S,w,y)が状態保存部804に予め保存されているか否かを調べ、その判定を行う(対応状態確認:ステップC6)。
ここで、状態保存部804に状態情報(S,w,y)が予め保存されていない場合は、鍵交換処理のセッションを中止する。
状態情報(S,w,y)が状態保存部804に予め保存されていることが確認された場合に、セッション番号生成部808は、(v,w)をハッシュ関数に入力して、その出力としてのセッション番号(sid)を生成する(ステップC7)。
次いで、認証子検証部807が、予め設定されたマスター鍵と相手識別子(mkey[U],S)をハッシュ関数に入力し、その出力として秘密鍵(akey[U,1])を生成すると共に、このakey[U,1]と第二メッセージに含まれた(S,U,v,w)を認証子生成装置に入力し、その出力としての認証子(mac[M,2]’)を生成する。
ここで、認証子検証部807は、生成した認証子(mac[M,2]’)と第二メッセージの一部として送り込まれたmac[M,2]が等しいか否かの判定を行う(認証子検証:ステップC8)。
生成した認証子(mac[M,2]’)と送り込まれたmac[M,2]が等しい(mac[M,2]’=mac[M,2])ことが確認された場合に、パスワード入力部810が、ユーザ対してパスワードの入力を求め、これに対して入力されたパスワード(pwd)を取得する(パスワード入力:ステップC9)。
次いで、無パスワード認証子生成部812は、秘密鍵akey[U,1]とメッセージとしての(U,S,sid)を認証子生成装置に入力することにより、その出力である無パスワード認証子(mac[K,1])を生成する(ステップC10)。
ここで、鍵生成部815が、z(=v)を生成すると共に、(S,U,v,w,z,1)をハッシュ関数に入力することにより、その出力としての一時鍵(tkey)を生成する(ステップC11)。
次いで、パスワード認証子生成部812が、マスター鍵およびパスワード(mkey[U],pwd,U)をハッシュ関数に入力し、その出力としての秘密鍵(akey[U,2])を生成する。
また、パスワード認証子生成部812は、秘密鍵(akey[U,2])とメッセージとしての(U,S,sid)を取得して認証子生成装置に入力することにより、その出力としてパスワード認証子(mac[K,2])を生成する(パスワード認証子生成:ステップC12)。
また、鍵生成部815は、上記生成したz(=v)を含む(S,U,v,w,z,0)をハッシュ関数に入力して、その出力である鍵(key)を生成する(鍵生成:ステップC13)。
ここで、パスワード認証子隠蔽部813は、一時鍵(tkey)と、平文としての認証子(mac[K,2])とを暗号化装置に入力し、その出力である暗号文としての(pmac[K,2])を生成する(パスワード認証子隠蔽:ステップC14)。
ここで、状態消去部816は、状態情報(S,w,y)を消去する(状態消去:ステップC15)。
次いで、第3メッセージ送信部817が、上記生成されたpmac[K,2]を含む第三メッセージ(U,S,sid,mac[K,1]、pmac[K,2])を、サーバ用鍵交換装置900に送信し(ステップC16)、鍵出力部818が、交換鍵(U,S,sid,key)825を出力する(ステップC17)。
以下、サーバ用鍵交換装置900における動作処理について、図10のステップD9〜D16に基づき説明する。
サーバ用鍵交換装置900は、利用者用鍵交換装置800から送り込まれた第三メッセージである(U,S,sid,mac[K,1]、pmac[K,2])を受信した場合(ステップD9)、対応状態確認部907は、対応する状態情報(U,sid,key,tkey)が保存されているか否かを調べる(対応状態確認:ステップD10)。
また、対応状態確認部907は、利用者リスト924内に記録された、上記状態情報に対応する記録情報(U,akey[U,1],akey[U,2],i)を検索する。
ここで、利用者リスト924に、対応する記録情報(U,akey[U,1],akey[U,2],i)が予め保存されていない場合は、鍵交換処理のセッションを切断し、鍵交換処理を中止するものとする。
上記記録情報が見つかった場合、無パスワード認証子検証部908は、記録情報(U,akey[U,1]、akey[U,2]、i)を利用者リスト924から抽出すると共に、秘密鍵(akey[U,1])、およびメッセージとしての(U,S,sid)を、認証子生成装置に入力し、その出力である無パスワード認証子(mac[K,1]’)を生成する。
次いで、無パスワード認証子検証部908は、生成したmac[K,1]’と第三メッセージの一部として送り込まれたmac[K,1]とが等しいか否かの判定を行う(認証子検証:ステップD11)。
ここで、生成した認証子(mac[K,1]’)と送り込まれたmac[K,1]が等しい(mac[K,1]’=mac[K,1])ことが確認された場合に、パスワード認証子復元部909が、一時鍵生成部914で生成された一時鍵(tkey)と暗号文としてのpmac[K,2]を復号装置に入力し、その出力である平文としてのパスワード認証子(mac[K,2])を復元生成する(一時鍵を用いたパスワード認証子復元:ステップD12)。
次に、パスワード認証子検証部910が、akey[U,2]とメッセージとしての(U,S,sid)を認証子生成装置に入力することにより、その出力であるパスワード認証子(mac[K,2]’)を生成し、このパスワード認証子(mac[K,2]’)と、上記復元生成したパスワード認証子(mac[K,2])とが等しいか否かの判定、つまり、mac[K,2]’=mac[K,2]の等号が成り立つか否かの判定を行う(パスワード認証検証:ステップD13)。
ここで、上記等号(mac[K,2]’=mac[K,2])が成り立たないと判定された場合、不正接続回数加算部911が、記録(U,akey[U,1]、akey[U,2]、i)におけるiをi+1に変更する処理を行い(ステップD14)、鍵交換にかかる処理を中止する。
一方、パスワード認証子(mac[K,2]’)と、上記復元生成されたパスワード認証子(mac[K,2])とが等しい(mac[K,2]’=mac[K,2])と判定された場合は、鍵出力部912が、交換鍵(U,S,sid,key)925を出力する(ステップD15)。尚、交換鍵825および925は、共通の交換鍵であるものとする。
ここで、状態消去部913が、状態情報(U,sid,key,tkey)を消去する処理を行う(ステップD16)。
これにより、利用者用鍵交換装置800およびサーバ用鍵交換装置900間における鍵交換が成立する。
以上のように、本実施形態2においては、実施形態1と同様に、利用者装置がサーバ装置と鍵交換を行うためには、正当なパスワード認証子(mac[K,2])を示す必要があり、また、これを生成するにはパスワード由来の秘密鍵(akey[U,2])、およびパスワードが必要となるため、利用者装置およびサーバ装置間では、パスワードおよび認証子を利用したセキュリティの高い状態で鍵交換を実行することができる。
また、本実施形態では、秘密鍵(akey[U,2])はサーバ装置側にも保存されているが、秘密鍵(akey[U,2])は、利用者装置内に予め設定されたマスター鍵と利用者により入力されたパスワードとから生成されているため、サーバ装置側で秘密鍵(akey[U,2])からパスワードを復元することはできず、これにより、サーバ装置側におけるパスワードの漏洩やパスワードを利用した不正な鍵交換の実行を有効に抑制することができる。
本発明においては、上述のように、利用者がサーバと鍵交換を行うためには、正当な認証子(mac[K,1])を示す必要もあるが、これには、予め秘密鍵(akey[U,1])を保持している必要があり、このmac[K,1]が正しく示されたことを確認された後に、mac[K,2](あるいはsig[K、2])の正当性が確認される。このため、例えマスター鍵(mkey[U])が悪意の利用者(攻撃者)により取得された場合でも、パスワードの正当性をサーバ装置に対して確認することはできないため、不正な鍵交換の実行されるのを抑制することができる。
また、本発明では、サーバ装置では、例えば、攻撃者が、鍵交換の要求試みにかかるパスワード入力誤り回数が記録され、一定の数を越えると接続が拒否される構成を有すると共に、攻撃者は、マスター鍵(mkey[U])を知らなければ、このような攻撃を試みて、サーバ装置における接続拒否が発生するよう仕向けることはできないため、正当な利用者によるサーバ装置の利用や鍵交換を阻害することなく、攻撃者に対するセキュリティを高めることができる。
本発明は、データ漏洩対策として暗号化された通信データの送受信が行われる、高速無線通信ネットワークなどで利用される鍵交換システムに対して有用に適用することができる。
600、800 利用者用鍵交換装置
601、801 鍵交換開始命令部
603、803 第一メッセージ生成部
604、705、804、905 状態保存部
605、805 第一メッセージ送信部
606 対応状態確認部
607 認証子検証部
608、703、903 セッション番号生成部
609 検証鍵検証部
610、810 パスワード入力部
611、811 無パスワード認証子生成部
612、812 パスワード認証子生成部
613、813 パスワード認証子隠蔽部
614 乱数源更新部
615、702、815、902 鍵生成部
616、713、816、913 状態消去部
617、817 第三メッセージ送信部
618、712、818、912 鍵出力部
700、900 サーバ用鍵交換装置
701 制限回数確認部
704 認証子生成部
706、906 第二メッセージ送信部
707、907 対応状態確認部
708、908 無パスワード認証子検証部
709、909 パスワード認証子復号部
710、910 パスワード認証子検証部
711、911 不正接続回数加算部
914 一時鍵生成部

Claims (10)

  1. 接続されたユーザ装置およびサーバ装置間でメッセージ情報の相互通信を行うことにより鍵交換を行う鍵交換システムであって、
    前記ユーザ装置は、
    外部から入力されたパスワードを取得し保持するパスワード取得部と、
    予め設定されたマスター鍵に基づき第1の秘密鍵を生成すると共に、前記入力されたパスワードに基づき第2の秘密鍵を生成する秘密鍵生成部と、
    前記第1の秘密鍵に基づき認証判定用の第1の認証子を生成すると共に、前記マスター鍵および第2の秘密鍵に基づき前記認証判定用の第2の認証子を生成する認証子生成部と、
    前記第1および第2の認証子を含むメッセージ情報を生成するメッセージ情報設定部と、
    予め設定されたサーバ装置からメッセージ情報が送り込まれた場合に、当該メッセージ情報に含まれる第1の認証子に基づく認証判定を行う第1の認証判定部と、前記第1の認証子に基づく認証判定で認証がなされた場合に前記パスワードおよび第2の認証子に基づく認証判定を行う第2の認証判定部と、
    前記第2の認証判定部による認証判定で認証がなされた場合に前記メッセージ情報に基づき交換鍵を生成し当該交換鍵の出力を行うユーザ側交換鍵生成部とを備え、
    前記サーバ装置は、
    予めユーザ装置により登録された第1および第2の秘密鍵を保持する秘密鍵保持部と、
    前記ユーザ装置からメッセージ情報が送り込まれた場合に前記第1の秘密鍵に基づき前記第1の認証子の生成を行うと共に当該第1の認証子に基づき前記メッセージ情報の認証判定を行う第1の認証判定部と、
    前記第1の認証判定部による認証判定で認証がなされた場合に前記第2の秘密鍵に基づき前記第2の認証子の生成を行うと共に当該第2の認証子に基づき前記メッセージ情報の認証判定を行う第2の認証判定部と、
    前記ユーザ装置からのメッセージ情報に含まれるランダム数に基づき前記ユーザ装置で生成された交換鍵と共通の交換鍵を生成すると共に、前記第2の認証判定部による認証判定で認証がなされた場合に前記生成した交換鍵を出力するサーバ側交換鍵生成部とを備えたことを特徴とした鍵交換システム。
  2. 請求項1に記載の鍵交換システムにおいて、
    前記ユーザ装置は、予め設定されたランダム数に基づき前記第2の認証子の暗号化処理を行うことにより暗号認証子を生成する認証子暗号処理部を備え、
    前記サーバ装置は、前記メッセージ情報に含まれた前記暗号認証子の復号処理を行うことにより前記第2の認証子を復元する認証子復号処理部を備えたことを特徴とする鍵交換システム。
  3. 請求項2に記載の鍵交換システムにおいて、
    前記ユーザ装置の認証子暗号処理部は、前記サーバ装置から送り込まれたメッセージ情報に公開鍵が含まれている場合に、前記公開鍵を利用した公開鍵暗号方式により前記第2の認証子を暗号化する公開鍵暗号機能を備えたことを特徴とした鍵交換システム。
  4. 請求項2に記載の鍵交換システムにおいて、
    前記ユーザ装置の認証子暗号処理部は、前記メッセージ情報に基づき一時暗号鍵情報を生成すると共に、当該一時暗号鍵情報を利用した対称鍵暗号方式により前記第2の認証子の暗号化を行う対称鍵暗号機能を有することを特徴とした鍵交換システム。
  5. 請求項2に記載の鍵交換システムにおいて、
    前記サーバ装置の認証子復号処理部は、前記サーバ装置内に予め設定された公開鍵を利用した公開鍵暗号方式により前記第2の認証子を復号化する公開鍵復号機能を備えたことを特徴とした鍵交換システム。
  6. 請求項2に記載の鍵交換システムにおいて、
    前記サーバ装置の認証子復号処理部は、前記メッセージ情報に基づき一時復号鍵情報を生成すると共に、当該一時復号鍵情報を利用した対称鍵暗号方式により前記第2の認証子の復号化を行う対称鍵復号機能を有することを特徴とした鍵交換システム。
  7. 請求項1に記載の鍵交換システムにおいて、
    前記ユーザ装置に対して着脱自在に接続される可搬機能装置を備えると共に、前記ユーザ装置内の前記パスワード取得部と前記認証子生成部に代えて、当該パスワード取得部と前記認証子生成部を一体化し前記可搬機能装置内に設けたことを特徴とする鍵交換システム。
  8. 請求項1に記載の鍵交換システムにおいて、
    前記サーバ装置は、前記第2の認証判定部による認証判定で一定の回数以上認証がなされなかった場合、前記認証判定の要求元に対する認証判定を抑制するパスワード認証回数制限部を備えたことを特徴とする鍵交換システム。
  9. 接続されたユーザ装置およびサーバ装置間でメッセージ情報の相互通信を行うことにより鍵交換を行う鍵交換方法であって、
    予め設定されたマスター鍵に基づき第1の秘密鍵を生成すると共に、外部から入力されたパスワードに基づき第2の秘密鍵を生成したユーザ装置が、前記サーバ装置からメッセージ情報が送り込まれた場合に、前記第1の秘密鍵に基づき前記第1の認証子の生成を行うと共に当該第1の認証子に基づき前記メッセージ情報の認証判定を行い、前記第1の認証子に基づく認証判定で認証がなされた場合に、前記第2の秘密鍵に基づき前記第2の認証子の生成を行うと共に当該第2の認証子に基づき前記メッセージ情報の認証判定を行い、前記第2の認証子に基づく認証判定で認証がなされた場合に前記メッセージ情報に基づき交換鍵を生成すると共に、前記サーバ装置に対してメッセージ情報の送信を行い、
    次いで、前記ユーザ装置からメッセージ情報が送り込まれた場合に、前記サーバ装置が、予めユーザ装置により登録された前記第1の秘密鍵に基づき前記第1の認証子の生成を行い、前記第1の認証子に基づき前記メッセージ情報の認証判定を行い、前記第1の認証子に基づく認証判定で認証がなされた場合に、予め登録された前記第2の秘密鍵に基づき前記第2の認証子の生成を行うと共に当該第2の認証子に基づき前記メッセージ情報の認証判定を行い、前記第2の認証子に基づく認証判定で認証がなされた場合に前記メッセージ情報に基づき前記ユーザ装置で生成された交換鍵と共通の交換鍵を生成することを特徴とした鍵交換方法。
  10. 接続されたユーザ装置およびサーバ装置間でメッセージ情報の相互通信を行うことにより鍵交換を行う鍵交換方法であって、
    前記ユーザ装置は、予め設定されたマスター鍵に基づき第1の秘密鍵を生成すると共に、外部から入力されたパスワードに基づき第2の秘密鍵を生成し、前記第1および第2の秘密鍵を前記サーバ装置に送信し、
    次いで、前記サーバ装置が、前記第1および第2の秘密鍵を登録し、前記ユーザ装置から鍵交換の要求がメッセージ情報として送り込まれた場合に、前記第1の秘密鍵に基づき前記第1の認証子の生成を行い、前記第1の認証子に基づき前記メッセージ情報の認証判定を行い、前記第1の認証子に基づく認証判定で認証がなされた場合に、前記第2の秘密鍵に基づき前記第2の認証子の生成を行うと共に当該第2の認証子に基づき前記メッセージ情報の認証判定を行い、前記第2の認証子に基づく認証判定で認証がなされた場合に前記メッセージ情報に基づき交換鍵を生成すると共に、前記ユーザ装置に対してメッセージ情報の送信を行い、
    次に、前記ユーザ装置が、前記サーバ装置からメッセージ情報が送り込まれた場合に、前記生成した第1の秘密鍵に基づき前記第1の認証子の生成を行うと共に、当該第1の認証子に基づき前記メッセージ情報の認証判定を行い、前記第1の認証子に基づく認証判定で認証がなされた場合に、前記生成した第2の秘密鍵に基づき前記第2の認証子の生成を行うと共に当該第2の認証子に基づき前記メッセージ情報の認証判定を行い、前記第2の認証子に基づく認証判定で認証がなされた場合に前記メッセージ情報に基づき前記サーバ装置で生成された交換鍵と共通の交換鍵を生成することを特徴とした鍵交換方法。
JP2009264324A 2009-11-19 2009-11-19 鍵交換システム、鍵交換方法 Active JP5446768B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009264324A JP5446768B2 (ja) 2009-11-19 2009-11-19 鍵交換システム、鍵交換方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009264324A JP5446768B2 (ja) 2009-11-19 2009-11-19 鍵交換システム、鍵交換方法

Publications (2)

Publication Number Publication Date
JP2011109544A JP2011109544A (ja) 2011-06-02
JP5446768B2 true JP5446768B2 (ja) 2014-03-19

Family

ID=44232521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009264324A Active JP5446768B2 (ja) 2009-11-19 2009-11-19 鍵交換システム、鍵交換方法

Country Status (1)

Country Link
JP (1) JP5446768B2 (ja)

Also Published As

Publication number Publication date
JP2011109544A (ja) 2011-06-02

Similar Documents

Publication Publication Date Title
US9491174B2 (en) System and method for authenticating a user
KR100979576B1 (ko) 새로운 패스워드를 실현하기 위한 방법 및 컴퓨터 판독가능 매체
US8589693B2 (en) Method for two step digital signature
US20060195402A1 (en) Secure data transmission using undiscoverable or black data
US20120023336A1 (en) System and method for designing secure client-server communication protocols based on certificateless public key infrastructure
US8369521B2 (en) Smart card based encryption key and password generation and management
CN113691502B (zh) 通信方法、装置、网关服务器、客户端及存储介质
CN101800738B (zh) 一种移动设备安全访问与存储内网数据的实现系统及方法
CN108418691A (zh) 基于sgx的动态网络身份认证方法
CN111030814A (zh) 秘钥协商方法及装置
CN110611670A (zh) 一种api请求的加密方法及装置
CN113472793A (zh) 一种基于硬件密码设备的个人数据保护系统
WO2022135391A1 (zh) 身份鉴别方法、装置、存储介质、程序、及程序产品
US20060053288A1 (en) Interface method and device for the on-line exchange of content data in a secure manner
CN111740995B (zh) 一种授权认证方法及相关装置
US20130166911A1 (en) Implementation process for the use of cryptographic data of a user stored in a data base
CN109412799B (zh) 一种生成本地密钥的系统及其方法
JP3690237B2 (ja) 認証方法、記録媒体、認証システム、端末装置、及び認証用記録媒体作成装置
KR101347821B1 (ko) 디바이스 인증 방법
CN115473655A (zh) 接入网络的终端认证方法、装置及存储介质
JP5446768B2 (ja) 鍵交換システム、鍵交換方法
CN114760026A (zh) 一种身份鉴别方法和装置
JP2004274134A (ja) 通信方法並びにこの通信方法を用いた通信システム、サーバおよびクライアント
JP2005176231A (ja) 認証システムおよび方法、ならびに、証明装置および検証装置
WO2022135382A1 (zh) 一种身份鉴别方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131216

R150 Certificate of patent or registration of utility model

Ref document number: 5446768

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150