(57)【要約】【課題】ネットワークを経由して２装置間で暗号通信のための鍵交換を行うシステムにおいて、双方から同時に鍵交換が行われることにより、冗長なＳＡが存在する状態や冗長な鍵交換が発生することを防ぎ、メモリ資源やＣＰＵ資源の浪費を防止する手段を実現する。【解決手段】本発明の鍵交換装置では、鍵交換制御部が鍵交換を開始したときに、同時鍵交換判定部が同時鍵交換の有無を判定する。同時鍵交換があった場合には、同時鍵交換判定部は自身がマスタであるかスレーブであるかを所定の方法により決定し、スレーブであった場合は、自身がイニシエータとして行っている鍵交換、もしくはレスポンダとして行っている鍵交換のどちらか一方のみを中断するように鍵交換処理部に指示し、鍵交換制御部が指示された鍵交換を中断する。これにより、一方の鍵交換のみが継続され、冗長なＳＡが存在する状態になることなどを防ぐ。【選択図】図１
2005354556.tif 000002
【特許請求の範囲】
【請求項１】
第１の鍵交換装置と第２の鍵交換装置の間において、暗号通信を行うための共通鍵を共有するための鍵交換を行うシステムにおいて用いられる前記第１の鍵交換装置であって、
前記第２の鍵交換装置との間で行われる鍵交換を制御する鍵交換制御部と、
進行中の各鍵交換の状態を管理する鍵交換状態管理部と、
同時鍵交換判定部を具備し、
前記同時鍵交換判定部が、前記鍵交換状態管理部が管理する鍵交換状態情報に基づいて、前記第１の鍵交換装置から開始した鍵交換と前記第２の鍵交換装置から開始した鍵交換が同時に進行しているかどうかを判定し、
同時に鍵交換が進行している場合は、前記第１の鍵交換装置に対応する第１の値と前記第２の鍵交換装置に対応する第２の値を所定の方法で比較し、
前記所定の比較方法による比較結果にもとづいて前記第１の鍵交換装置の役割がマスタであるかスレーブであるかを決定し、
決定された前記役割がスレーブであった場合には、前記第１の鍵交換装置から開始した鍵交換、もしくは前記第２の鍵交換装置から開始した鍵交換のどちらか一方のみを中断するように鍵交換制御部に指示し、
前記鍵交換制御部は指示された鍵交換を中断することを特徴とする鍵交換装置。
【請求項２】
前記第１の値、前記第２の値が、それぞれ、前記第１の鍵交換装置、前記第２の鍵交換装置から開始されたもしくは、それぞれ前記第２の鍵交換装置、前記第１の鍵交換装置から開始された鍵交換における、特定のメッセージの特定のフィールドの値であることを特徴とする請求項１記載の鍵交換装置。
【請求項３】
前記第１の値、前記第２の値が、それぞれ、前記第１の鍵交換装置、前記第２の鍵交換装置に固有もしくは、それぞれが持つ値で双方の装置において重複しないことが保証されている値であることを特徴とする請求項１記載の鍵交換装置。
【請求項４】
前記鍵交換制御部が、送信する鍵交換メッセージに請求項１に記載の同時鍵交換判定部を有することを示す情報を含ませ、
前記同時鍵交換判定部が、受信する鍵交換メッセージに、前記第２の鍵交換装置が請求項１に記載の処理を行うことを示す情報が含まれているかどうかを認識し、その情報を利用して鍵交換を中断するように鍵交換制御部に指示するかを決定することを特徴とする請求項１に記載の鍵交換装置。
【請求項５】
前記第１の鍵交換装置から開始した鍵交換と前記第２の鍵交換装置から開始した鍵交換が同時に進行していた場合で、前記同時鍵交換判定部が、かつ受信した鍵交換メッセージに前記第２の鍵交換装置が請求項１に記載の同時鍵交換判定部を有することを示す情報が含まれていないことを認識した場合には、前記第１の鍵交換装置から開始した鍵交換、もしくは前記第２の鍵交換装置から開始した鍵交換のどちらか一方のみを中断するように前記鍵交換制御部に指示し、
前記鍵交換制御部は指示された鍵交換を中断することを特徴とする請求項１に記載の鍵交換装置。
【請求項６】
前記鍵交換装置が鍵交換をＩＫＥのＲＦＣに基づいて行い、
前記請求項１に記載の同時鍵交換判定部を有することを示す情報がＶｅｎｄｅｒＩＤペイロードに含まれる所定の値であることを特徴とする請求項４に記載の鍵交換装置。
【請求項７】
さらに、前記同時鍵交換判定部が、前記同時鍵交換判定部により中断すると判定された鍵交換を再開するよう鍵交換制御部に指示し、
前記鍵交換制御部は指示された鍵交換を再開することを特徴とする請求項１に記載の鍵交換装置。
【請求項８】
さらに、前記同時鍵交換判定部により第２の鍵交換装置との間の鍵交換を中断すると判定された後、第２の鍵交換装置との間の鍵交換を最初からやり直すよう鍵交換制御部に指示し、
前記鍵交換制御部は指示された鍵交換をやり直すことを特徴とする請求項１に記載の鍵交換装置。
【請求項９】
第１の鍵交換装置と第２の鍵交換装置の間において、暗号通信を行うための共通鍵を共有するための鍵交換を行うシステムにおいて用いられる前記第１の鍵交換装置であって、
前記第２の鍵交換装置と間で行われる鍵交換を制御する鍵交換制御部と、
進行中の各鍵交換の状態を管理する鍵交換状態管理部と、
同時鍵交換判定部を具備し、
前記同時鍵交換判定部が、前記鍵交換状態管理部が管理する鍵交換状態情報に基づいて、前記第１の鍵交換装置から開始した鍵交換と前記第２の鍵交換装置から開始した鍵交換が同時に進行しているかどうかを判定し、
同時に鍵交換が進行している場合は、前記第１の鍵交換装置からの鍵交換もしくは前記第２の鍵交換装置からの鍵交換の少なくとも一方を中断するように前記鍵交換制御部に指示し、
前記鍵交換制御部は指示された鍵交換を中断することを特徴とする鍵交換装置。
【請求項１０】
前記同時鍵交換判定部により中断すると判定された鍵交換の中断後に第１の時間経過後も中断されなかった鍵交換が完了しない場合には、前記同時鍵交換判定部がそれを検知し、中断していた鍵交換の少なくともひとつを再開するように前記鍵交換制御部に指示し、
前記鍵交換制御部は指示された鍵交換を再開することを特徴とする請求項９に記載の鍵交換装置。
【請求項１１】
前記同時鍵交換判定部により中断すると判定された鍵交換の中断後に第１の時間経過後も中断されなかった鍵交換が完了しない場合には、前記同時鍵交換判定部がそれを検知し、
前記第２の鍵交換装置との間の鍵交換を最初からやり直すように前記鍵交換制御部に指示し、
前記鍵交換制御部は指示された鍵交換をやり直すことを特徴とする請求項９に記載の鍵交換装置。
【請求項１２】
前記第１の時間がランダムな時間であることことを特徴とする請求項１０または請求項１１に記載の鍵交換装置。
【請求項１３】
前記第１の時間が第１の所定の値以下の範囲内でランダムな時間であることを特徴とする請求項１２記載の鍵交換装置。
【請求項１４】
前記第１の鍵交換装置における前記第１の時間と、前記第２の鍵交換装置における前記第１の時間が予めそれぞれ異なるように与えられた値であることを特徴とする請求項１０または請求項１１に記載の鍵交換装置。
【請求項１５】
前記第１の鍵交換装置に対応する第１の値と前記第２の鍵交換装置に対応する第２の値を所定の方法で比較し、
前記所定の比較方法による比較結果にもとづいて前記第１の鍵交換装置の役割がマスタであるかスレーブであるかを決定し、
決定された前記役割がマスタであった場合には、予め前記鍵交換装置に与えられた第３の値を前記第１の値として用い、
決定された前記役割がスレーブであった場合には、予め前記鍵交換装置に与えられた第４の値を前記第１の値として用いることを特徴とする請求項１０または請求項１１記載の鍵交換装置。
【請求項１６】
鍵交換をやり直す際に、前記同時鍵交換判定部が、前記第２の鍵交換装置からの鍵交換が進行しているかどうかを判定し、
進行していた場合、新たに鍵交換を開始せず、
その後、前記第２の時間経過後も鍵交換が完了しない場合には、前記同時鍵交換判定部がそれを検知し、
前記第２の鍵交換装置との間の鍵交換を最初からやり直すように前記鍵交換制御部に指示し、
前記鍵交換制御部は指示された鍵交換をやり直すことを特徴とする請求項１１記載の鍵交換装置。
【請求項１７】
前記第２の時間が前記第１の時間よりも長いことを特徴とする請求項１６記載の鍵交換装置。
【請求項１８】
前記第１の時間が第１の所定の値以下の範囲内でランダムであり、
前記第２の時間が第２の所定の値以下の範囲内でランダムであることを特徴とする請求項１６記載の鍵交換装置。
【請求項１９】
前記第２の所定の値が前記第１の所定の値よりも大きいことを特徴とする請求項１８に記載の鍵交換装置。
【請求項２０】
第１の鍵交換装置と第２の鍵交換装置の間において、暗号通信を行うための共通鍵を共有するための鍵交換を行うシステムにおいて用いられる第１の鍵交換装置であって、
前記鍵交換制御部が鍵交換を行う際にリキーの開始タイミングが双方で異なるように決定するための情報の折衝を行うことを特徴とする鍵交換装置。
【請求項２１】
第１の鍵交換装置と第２の鍵交換装置の間において、暗号通信を行うための共通鍵を共有するための鍵交換を行うシステムであって、
前記鍵交換装置ごとに異なる値があらかじめ割り振られており、
前記第１の鍵交換装置における前記鍵交換制御部および、前記第２の鍵交換装置における前記鍵交換制御部が、それぞれがリキーの開始タイミングをそれぞれの鍵交換装置に割り振られた値から決定することを特徴とする鍵交換システム。
【請求項２２】
第１の鍵交換装置と第２の鍵交換装置の間において、暗号通信を行うための共通鍵を共有するための鍵交換を行うシステムにおいて用いられる鍵交換方法であって、請求項１〜請求項２０のいずれか１項に記載の鍵交換装置を用いて行うことを特徴とする鍵交換方法。
【請求項２３】
第１の鍵交換装置と第２の鍵交換装置の間において、暗号通信を行うための共通鍵を共有するための鍵交換を行うシステムであって、
請求項２２に記載の鍵交換方法を用いることを特徴とする暗号通信システム。
【請求項２４】
第１の鍵交換装置と第２の鍵交換装置の間において、暗号通信を行うための共通鍵を共有するための鍵交換を行うシステムにおいて用いられる前記第１の鍵交換方法であって、
前記第２の鍵交換装置との間で行われる鍵交換を制御する鍵交換制御ステップと、
進行中の各鍵交換の状態を管理する鍵交換状態管理ステップと、
同時鍵交換判定ステップよりなり、
前記同時鍵交換判定ステップが、前記鍵交換状態管理ステップが管理する鍵交換状態情報に基づいて、前記第１の鍵交換装置から開始した鍵交換と前記第２の鍵交換装置から開始した鍵交換が同時に進行しているかどうかを判定し、
同時に鍵交換が進行している場合は、前記第１の鍵交換装置に対応する第１の値と前記第２の鍵交換装置に対応する第２の値を所定の方法で比較し、
前記所定の比較方法による比較結果にもとづいて前記第１の鍵交換装置の役割がマスタであるかスレーブであるかを決定し、
決定された前記役割がスレーブであった場合には、前記第１の鍵交換装置から開始した鍵交換、もしくは前記第２の鍵交換装置から開始した鍵交換のどちらか一方のみを中断するように鍵交換制御ステップに指示し、
前記鍵交換制御ステップは指示された鍵交換を中断することを特徴とする鍵交換方法。
【請求項２５】
請求項２４記載の鍵交換方法を実行するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号通信システムに関し、より特定的には、ホームネットワークなどの環境において用いられる鍵交換方法、装置に関する。
【背景技術】
【０００２】
近年、インターネットなどの情報ネットワークの発展により、ネットワークに接続して情報をやりとりできる家電（以下、ネット家電と呼ぶ。）が登場してきている。これらの装置がやりとりする情報には個人情報などセキュリティを必要とするものが含まれることがある。ネットワーク上でこれらの情報に対するセキュリティを確保するための技術のひとつとして、暗号通信技術が用いられる。
【０００３】
暗号通信技術は、通信データに対する秘匿性確保、データ完全性保証、また通信相手の認証などを行うことにより、第三者による通信内容の盗聴、改ざん、またなりすましによる不正アクセスなどを防ぐ技術である。暗号通信技術の一つに、近年急速に普及しているＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）通信を適用対象とするＩＰｓｅｃ（Ｓｅｃｕｒｉｔｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  ＩＰ）がある。また、ＩＰｓｅｃで利用する鍵情報を管理するＩＫＥ（Ｉｎｔｅｒｎｅｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ）がある。ＩＰｓｅｃ／ＩＫＥはＲＦＣ２４０１−２４１０（ＲＦＣ：Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔｓ）としてＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）により標準化されている。
【０００４】
ＩＰｓｅｃ／ＩＫＥを用いた通信の暗号化はネットワーク上のＩＰ通信端末間において行われる。ＩＰｓｅｃ／ＩＫＥでは、暗号通信区間の両端のＩＰ通信端末においてセキュリティアソシエーション（ＳＡ）とよばれる鍵情報を含むデータを保持することで、論理的な暗号通信路を形成する。ＳＡにはＩＰｓｅｃが保護する通信データの暗号化に用いるＩＰｓｅｃ  ＳＡと、ＩＫＥが対向ＩＫＥとの間でやりとりする鍵交換や制御メッセージの暗号化に用いるＩＳＡＫＭＰ  ＳＡがある。ＩＫＥの鍵交換とは暗号通信区間の両端のＩＰ通信端末間においてメッセージを交換し、それらのメッセージに含まれる情報をもとに、両端点上で共通の暗号鍵を生成し、それらを含むＳＡを確立する処理のことである。
【０００５】
図３はＩＫＥ鍵交換のシーケンスであり、鍵交換を開始する側をイニシエータ、イニシエータから開始された鍵交換に応答する側をレスポンダと呼ぶ。イニシエータとレスポンダとの間で、いくつかのメッセージがやりとりされることで鍵交換が完了し、双方にＳＡが確立された状態（Ｓ３０１）になり、これらのＳＡを利用して暗号通信が可能となる。また、図３では１往復半の鍵交換を図示したが、これは１例であり鍵交換のメッセージシーケンスを限定するものではない。実際、ＩＫＥのＲＦＣではＩＳＡＫＭＰ  ＳＡを確立するための、ＭａｉｎＭｏｄｅ、ＡｇｇｒｅｓｓｉｖｅＭｏｄｅ、ＩＰｓｅｃ  ＳＡを確立するためのＱｕｉｃｋＭｏｄｅが規定されており、それぞれ３往復、１往復半、１往復半のメッセージシーケンスが必要である。
【０００６】
鍵交換が行われる状況としては、大きく分けて２つある。１つ目は暗号通信の開始時に鍵交換が行われる場合であり、２つ目は暗号通信の継続中にＳＡのライフタイム（生存期間：ＳＡが確立してから、そのＳＡが暗号化に利用できなくなるまでの期間。鍵交換により確立されたＳＡにはライフタイムが設定されることがＲＦＣで定められている。）が満了する前に、暗号通信継続のための新たなＳＡを確立するために鍵交換が行われる場合である。後者における鍵交換をリキーと呼ぶ。
【０００７】
ところで、ＩＫＥのＲＦＣではどちらの装置がイニシエータとなるかは定められておらず、両方の装置がイニシエータとなることができる。このため、両方から同時に鍵交換が行われる可能性がある。
【０００８】
以下同時鍵交換の定義、および同時鍵交換発生時の問題について説明する。
【０００９】
まず、同時鍵交換が発生している状態を以下のように定義する。「第１の鍵交換装置もしくは第２の鍵交換装置のいずれかにおいて、イニシエータとして鍵交換を開始後、鍵交換の最終メッセージ送受信前に、レスポンダとしての最初の鍵交換メッセージを受信した状態」次に、同時鍵交換が発生している場合のシーケンス例を図４に示す。図４ではまず、第１の鍵交換装置がイニシエータである鍵交換１と、第２の鍵交換装置がイニシエータである鍵交換２が同時に開始される。その後、両方の鍵交換が完了し、双方に鍵交換１により確立されたＳＡ１と鍵交換２により確立されたＳＡ２の両方が存在する状態（Ｓ４０１）になる。
【００１０】
同時鍵交換が発生した場合、以下のような問題が発生することが知られている。
【００１１】
１．鍵交換が両方から同時に開始されると、２組のＳＡがほぼ同時に確立される。すなわち、冗長なＳＡが存在する状態となる。ネット家電などメモリ資源の限られた装置においては、冗長なＳＡの存在によりメモリ資源が浪費され、同時接続数可能な通信数が減少するなどサービス品質の低下を招くことがある。
【００１２】
２．ＩＫＥの鍵交換は多くのＣＰＵ資源を消費する演算を含んでいるため、冗長なＳＡを生成する鍵交換を行うと、多大なＣＰＵ資源を無駄に浪費してしまうことになる。特に、ネット家電などＣＰＵ資源の限られた装置においては、ＣＰＵ資源を必要とする他の処理のサービス品質の低下を招くことがある。
【００１３】
３．高速化などのためにＩＰＳｅｃによる暗号化処理をハードウェアで行う場合、ハードウェア内でのＳＡ用のメモリ領域を削減するために、鍵交換された最新のＳＡのみをハードウェアに登録する場合がある。このような場合において、双方から同時に鍵交換が開始され、その結果同時に鍵交換が終了した場合、双方では別々の鍵交換により確立されたＳＡが存在することになる。別々の鍵交換により確立されたＳＡは、そこに含まれる鍵情報が異なるために、一方で暗号化したデータを他方で復号化できず、暗号通信が不能となる。
【００１４】
なお、ここでは１回の鍵交換で確立される、双方向の暗号通信に必要十分なＳＡの組のこと「１組をＳＡ」と定義する。また、ある状態において存在するＳＡに、存在しなくても将来にわたって暗号通信が可能であるＳＡが含まれている状態を「冗長なＳＡが存在する状態」と定義する。さらに、ある鍵交換によりＳＡが確立された後に冗長なＳＡが存在する状態となるような鍵交換を「冗長な鍵交換」と定義する。
【００１５】
上記問題を解決する方法のひとつとして、例えばＩＰｓｅｃ／ＩＫＥの一実装であるＦｒｅｅＳ／ＷＡＮ２．０２では、特にリキーの場合に限って、以下のような機構を取り入れている。
【００１６】
具体的には、イニシエータとレスポンダでリキーの開始タイミングが同じ場合は、高い確率で、双方から同時に鍵交換が行われることに着目し、これを防ぐために、リキーの開始タイミングをランダムに変化させることができるようになっている。この機構を利用することにより、双方からリキーの開始タイミングが同じになる確率を低減させることができる。
【００１７】
図７は、ＦｒｅｅＳ／ＷＡＮ２．０２の方式を実装した第１の鍵交換装置と、同方式をサポートした第２の鍵交換装置との間の処理シーケンスである。まず、第１の鍵交換装置と第２の鍵交換装置との間で鍵交換を行い、ＳＡ１を確立する（Ｓ７０１、Ｓ７０２）。そのとき、双方の装置は、第１の鍵交換装置からリキーの開始タイミングをランダムに決定する。たとえば、第１の鍵交換装置はＳＡ１確立からＴ１時間後に、第２の鍵交換装置はＴ２（＞Ｔ１）時間後にリキーを開始するようにスケジューリングする。次に、Ｔ１時間経過すると、第１の鍵交換装置はリキーを開始し（Ｓ７０３）、その結果ＳＡ２が確立される（Ｓ７０４、Ｓ７０５）。その後、第２の鍵交換装置において、ＳＡ１に対するリキーの開始タイミングが訪れるが、すでにＳＡ１に対するリキーにより確立されたＳＡ２が存在するため、新たにリキーを開始しない。
【００１８】
このように、双方におけるリキーの開始タイミングがずれることによって冗長なＳＡが存在する状態が発生しにくくなっている。
【非特許文献１】標準仕様書「ＲＦＣ２４０１」、ＩＥＴＦ、〔平成１６年３月８日検索〕、インターネット＜ＵＲＬ：http://www.ietf.org/rfc/2401.txt＞
【非特許文献２】標準仕様書「ＲＦＣ２４０７」、ＩＥＴＦ、〔平成１６年３月８日検索〕、インターネット＜ＵＲＬ：http://www.ietf.org/rfc/2407.txt＞
【非特許文献３】標準仕様書「ＲＦＣ２４０８」、ＩＥＴＦ、〔平成１６年３月８日検索〕、インターネット＜ＵＲＬ：http://www.ietf.org/rfc/2408.txt＞
【非特許文献４】標準仕様書「ＲＦＣ２４０９」、ＩＥＴＦ、〔平成１６年３月８日検索〕、インターネット＜ＵＲＬ：http://www.ietf.org/rfc/2409.txt＞
【非特許文献５】ＦｒｅｅＳ／ＷＡＮ２．０２付属のマニュアルドキュメント「ipsec_pluto.8.html」、ＦｒｅｅＳ／ＷＡＮ  Ｐｒｏｊｅｃｔ、〔平成１６年３月８日検索〕、インターネット＜ＵＲＬ：ftp://ftp.xs4all.nl/pub/old/freeswan/crypto/old/freeswan/crypto/freeswan-2.02.tar.gz＞
【発明の開示】
【発明が解決しようとする課題】
【００１９】
しかし、前記従来のＦｒｅｅＳ／ＷＡＮ２．０２の方法ではリキー時に発生する鍵交換のみを対象としているため、暗号通信開始時に冗長な鍵交換が発生するケースには適用できない。また、双方がランダムにリキーの開始タイミングを選択するため、場合によっては同時に鍵交換を開始され、冗長なＳＡが存在する状態になることがある。
【００２０】
本発明は、リキーに限らず双方から同時に鍵交換が発生した場合全てにおいて適用できる、もしくは確実に一方の鍵交換のみを成功させるという特徴を持った、冗長なＳＡが存在する状態の発生、冗長なリキーの発生、暗号通信の断絶を防ぐ鍵交換装置、鍵交換方法および、暗号通信システムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
前記従来の課題を解決するために、本発明における鍵交換装置は以下のような特徴を持っている。
【００２２】
第１の発明は第１の鍵交換装置と第２の鍵交換装置の間において、暗号通信を行うための共通鍵を共有するための鍵交換を行うシステムにおいて用いられる前記第１の鍵交換装置であって、前記第２の鍵交換装置との間で行われる鍵交換を制御する鍵交換制御部と、進行中の各鍵交換の状態を管理する鍵交換状態管理部と、同時鍵交換判定部を具備し、前記同時鍵交換判定部が、前記鍵交換状態管理部が管理する鍵交換状態情報に基づいて、前記第１の鍵交換装置から開始した鍵交換と前記第２の鍵交換装置から開始した鍵交換が同時に進行しているかどうかを判定し、同時に鍵交換が進行している場合は、前記第１の鍵交換装置に対応する第１の値と前記第２の鍵交換装置に対応する第２の値を所定の方法で比較し、前記所定の比較方法による比較結果にもとづいて前記第１の鍵交換装置の役割がマスタであるかスレーブであるかを決定し、決定された前記役割がスレーブであった場合には、前記第１の鍵交換装置から開始した鍵交換、もしくは前記第２の鍵交換装置から開始した鍵交換のどちらか一方のみを中断するように鍵交換制御部に指示し、前記鍵交換制御部は指示された鍵交換を中断することを特徴とする。
【００２３】
前記第１の発明によれば、第２の鍵交換装置も前記第１の発明に記載の鍵交換装置である場合には、双方から同時に鍵交換が開始されても、一方の鍵交換のみを完了させることができる。また、発生する同時鍵交換はリキーである必要はなく、任意の鍵交換に適用できる。
【００２４】
第２の発明は第１の発明において、前記第１の値、前記第２の値が、それぞれ、前記第１の鍵交換装置、前記第２の鍵交換装置から開始されたもしくは、それぞれ前記第２の鍵交換装置、前記第１の鍵交換装置から開始された鍵交換における、特定のメッセージの特定のフィールドの値であることを特徴とする。
【００２５】
前記第２の発明によれば、第１の発明の効果に加え、既存の鍵交換プロトコルに利用されるメッセージフォーマットを拡張する必要がなく、実装が容易となる。
【００２６】
第３の発明は第１の発明において、前記第１の値、前記第２の値が、それぞれ、前記第１の鍵交換装置、前記第２の鍵交換装置に固有もしくは、それぞれが持つ値で双方の装置において重複しないことが保証されている値であることを特徴とする。
【００２７】
前記第３の発明によれば、対向鍵交換装置が前記第３の発明を実装している場合には、双方から同時に鍵交換が開始されても、一方の鍵交換のみを確実に完了させることができる。
【００２８】
第４の発明は第１の発明において、前記鍵交換制御部が、送信する鍵交換メッセージに第１の発明に記載の同時鍵交換判定部を有することを示す情報を含ませ、前記同時鍵交換判定部が、受信する鍵交換メッセージに、前記第２の鍵交換装置が第１の発明に記載の処理を行うことを示す情報が含まれているかどうかを認識し、その情報を利用して鍵交換を中断するように鍵交換制御部に指示するかを決定することを特徴とする。
【００２９】
前記第４の発明によれば、対向鍵交換装置が前記第１の発明における処理を行うかどうかにより、その後の処理を変化させることができる。
【００３０】
第５の発明は第４の発明において、前記第１の鍵交換装置から開始した鍵交換と前記第２の鍵交換装置から開始した鍵交換が同時に進行していた場合で、前記同時鍵交換判定部が、かつ受信した鍵交換メッセージに前記第２の鍵交換装置が第１の発明に記載の同時鍵交換判定部を有することを示す情報が含まれていないことを認識した場合には、前記第１の鍵交換装置から開始した鍵交換、もしくは前記第２の鍵交換装置から開始した鍵交換のどちらか一方のみを中断するように前記鍵交換制御部に指示し、前記鍵交換制御部は指示された鍵交換を中断することを特徴とする。
【００３１】
前記第５の発明によれば、第１の発明の効果に加え、対向鍵交換装置が前記第１の発明における処理を行わない場合にも、確実に鍵交換を中断することができる。
【００３２】
第６の発明は第４の発明において、前記鍵交換装置が鍵交換をＩＫＥのＲＦＣに基づいて行い、前記第１の発明に記載の同時鍵交換判定部を有することを示す情報がＶｅｎｄｅｒＩＤペイロードに含まれる所定の値であることを特徴とする。
【００３３】
前記第６の発明によれば、第４の発明の効果に加え、既存のＩＫＥとの互換性を失うことなく適用できる。
【００３４】
第７の発明は第１の発明において、さらに、前記同時鍵交換判定部が、前記同時鍵交換判定部により中断すると判定された鍵交換を再開するよう鍵交換制御部に指示し、前記鍵交換制御部は指示された鍵交換を再開することを特徴とする。
【００３５】
前記第７の発明によれば、第１の発明の効果に加え、継続させた方の鍵交換が何らかの理由で失敗した場合でも、他方の鍵交換を成功させ、暗号通信を行うことができる。
【００３６】
第８の発明は第１の発明において、さらに、前記同時鍵交換判定部により第２の鍵交換装置との間の鍵交換を中断すると判定された後、第２の鍵交換装置との間の鍵交換を最初からやり直すよう鍵交換制御部に指示し、前記鍵交換制御部は指示された鍵交換をやり直すことを特徴とする。
【００３７】
前記第８の発明によれば、第１の発明の効果に加え、継続させた方の鍵交換が何らかの理由で失敗し、かつ中断した方の鍵交換を再開してもその鍵交換を完了できない状態であっても、暗号通信を行うことができる。
【００３８】
第９の発明は第１の鍵交換装置と第２の鍵交換装置の間において、暗号通信を行うための共通鍵を共有するための鍵交換を行うシステムにおいて用いられる前記第１の鍵交換装置であって、前記第２の鍵交換装置と間で行われる鍵交換を制御する鍵交換制御部と、進行中の各鍵交換の状態を管理する鍵交換状態管理部と、同時鍵交換判定部を具備し、前記同時鍵交換判定部が、前記鍵交換状態管理部が管理する鍵交換状態情報に基づいて、前記第１の鍵交換装置から開始した鍵交換と前記第２の鍵交換装置から開始した鍵交換が同時に進行しているかどうかを判定し、同時に鍵交換が進行している場合は、前記第１の鍵交換装置からの鍵交換もしくは前記第２の鍵交換装置からの鍵交換の少なくとも一方を中断するように前記鍵交換制御部に指示し、前記鍵交換制御部は指示された鍵交換を中断することを特徴とする。
【００３９】
前記第９の発明によれば、同時に進行している鍵交換の両方が成功し、冗長なＳＡが存在する状態になることを防ぐことができる。
【００４０】
第１０の発明は第９の発明において、前記同時鍵交換判定部により中断すると判定された鍵交換の中断後に第１の時間経過後も中断されなかった鍵交換が完了しない場合には、前記同時鍵交換判定部がそれを検知し、中断していた鍵交換の少なくともひとつを再開するように前記鍵交換制御部に指示し、前記鍵交換制御部は指示された鍵交換を再開することを特徴とする。
【００４１】
前記第１０の発明によれば、第９の発明の効果に加え、鍵交換の中断により本来必要であるＳＡまで確立されないことを防ぐことができる。
【００４２】
第１１の発明は第９の発明において、前記同時鍵交換判定部により中断すると判定された鍵交換の中断後に第１の時間経過後も中断されなかった鍵交換が完了しない場合には、前記同時鍵交換判定部がそれを検知し、前記第２の鍵交換装置との間の鍵交換を最初からやり直すように前記鍵交換制御部に指示し、前記鍵交換制御部は指示された鍵交換をやり直すことを特徴とする。
【００４３】
前記第１１の発明によれば、第９の発明の効果に加え、鍵交換の中断により本来必要であるＳＡまで確立されなくなり、かつ中断していた鍵交換を再開してもＳＡが確立不可能な状況においても、本来必要なＳＡを確立することができる。
【００４４】
第１２の発明は第１０の発明、第１１の発明において、前記第１の時間がランダムな時間であることことを特徴とする。
【００４５】
前記第１２の発明によれば、第１０の発明、第１１の発明の効果に加え、双方の装置が同時に鍵交換の再開、もしくはやり直しを行い、再び同時に鍵交換を行うことを高い確率で防ぐことができる。
【００４６】
第１３の発明は第１２の発明において、前記第１の時間が第１の所定の値以下の範囲内でランダムな時間であることことを特徴とする。
【００４７】
前記第１３の発明によれば、第１２の発明の効果に加え、双方の装置が同時に鍵交換の再開、もしくはやり直しをより早く行うことができる。
【００４８】
第１４の発明は第１０の発明、第１１の発明において、前記第１の鍵交換装置における前記第１の時間と、前記第２の鍵交換装置における前記第１の時間が予めそれぞれ異なるように与えられた値であることを特徴とする。
【００４９】
前記第１４の発明によれば、第１０の発明、第１１の発明の効果に加え、双方の装置が同時に鍵交換の再開、もしくはやり直しを行い、再び同時に鍵交換を行うことを確実に防ぐことができる。
【００５０】
第１５の発明は第１０の発明、第１１の発明において、前記第１の鍵交換装置に対応する第１の値と前記第２の鍵交換装置に対応する第２の値を所定の方法で比較し、前記所定の比較方法による比較結果にもとづいて前記第１の鍵交換装置の役割がマスタであるかスレーブであるかを決定し、決定された前記役割がマスタであった場合には、予め前記鍵交換装置に与えられた第３の値を前記第１の値として用い、決定された前記役割がスレーブであった場合には、予め前記鍵交換装置に与えられた第４の値を前記第１の値として用いることを特徴とする。
【００５１】
前記第１５の発明によれば、第１０の発明、第１１の発明の効果に加え、双方の装置が同時に鍵交換の再開、もしくはやり直しを行い、再び同時に鍵交換を行うことを確実に防ぐことができる。
【００５２】
第１６の発明は第１１の発明において、鍵交換をやり直す際に、前記同時鍵交換判定部が、前記第２の鍵交換装置からの鍵交換が進行しているかどうかを判定し、進行していた場合、新たに鍵交換を開始せず、その後、前記第２の時間経過後も鍵交換が完了しない場合には、前記同時鍵交換判定部がそれを検知し、前記第２の鍵交換装置との間の鍵交換を最初からやり直すように前記鍵交換制御部に指示し、前記鍵交換制御部は指示された鍵交換をやり直すことを特徴とする。
【００５３】
前記第１６の発明によれば、第１１の発明の効果に加え、双方の装置が同時に鍵交換の再開、もしくはやり直しを行った場合に同時鍵交換が発生した場合でも、冗長なＳＡが存在する状態となることを防ぐことができる。
【００５４】
第１７の発明は第１６の発明において、前記第２の時間が前記第１の時間よりも長いことを特徴とする。
【００５５】
前記第１７の発明によれば、第１６の発明の効果に加え、鍵交換の再開、もしくはやり直し時に双方から同時に鍵交換を開始する確率を低くすることができる。
【００５６】
第１８の発明は第１６の発明において、前記第１の時間が第１の所定の値以下の範囲内でランダムであり、前記第２の時間が第２の所定の値以下の範囲内でランダムであることを特徴とする。
【００５７】
前記第１８の発明によれば、第１６の発明の効果に加え、双方の装置が同時に鍵交換の再開、もしくはやり直しを行い、再び同時に鍵交換を行うことを高い確率で防ぐことができ、さらにそこで同時鍵交換が発生した場合でも、その次に、鍵交換の再開、もしくはやり直しを行ったときにも、再び同時に鍵交換を行うことを高い確率で防ぐことができる。
【００５８】
第１９の発明は第１８の発明において、前記第２の所定の値が前記第１の所定の値よりも大きいことを特徴とする。
【００５９】
前記第１９の発明によれば、第１８の発明の効果に加え、双方の装置が同時に鍵交換の再開、もしくはやり直しを行い、再び同時に鍵交換を行うことを高い確率で防ぐことができ、さらにそこで同時鍵交換が発生した場合でも、その次に、鍵交換の再開、もしくはやり直しを行ったときにも、再び同時に鍵交換を行うことをさらに高い確率で防ぐことができる。
【００６０】
第２０の発明は鍵交換装置であって、鍵交換を行う際にリキーの開始タイミングの折衝を行うことを特徴とする。
【００６１】
前記第２０の発明によれば、リキー時に双方から同時に鍵交換を行うことを確実に防ぐことができる。
【００６２】
第２１の発明は鍵交換装置により構成されるシステムであって、各前記処理装置ごとに異なる値があらかじめ割り振られており、鍵交換装置からのリキータイミングを鍵交換装置に割り振られた値から決定することを特徴とする。
【００６３】
前記第２１の発明によれば、リキー時に双方から同時に鍵交換を行うことを確実に防ぐことができる。
【００６４】
第２２の発明は、第１の鍵交換装置と第２の鍵交換装置の間において、暗号通信を行うための共通鍵を共有するための鍵交換を行うシステムにおいて用いられる鍵交換方法であって、上記第１から第２０の発明の鍵交換装置を用いて行うことを特徴とする。
【００６５】
前記第２２の発明によれば、双方から同時に鍵交換が開始されても、一方の鍵交換のみを完了させることができる。もしくは、双方から同に鍵交換を開始することを防ぐ、もしくはその確率を低下させることができる。
【００６６】
第２３の発明は、第１の鍵交換装置と第２の鍵交換装置の間において、暗号通信を行うための共通鍵を共有するための鍵交換を行う暗号通信システムであって、第２２の発明に記載の鍵交換方法を用いることを特徴とする。
【００６７】
前記第２３の発明によれば、双方から同時に鍵交換が開始されても、一方の鍵交換のみを完了させることができる。もしくは、双方から同に鍵交換を開始することを防ぐ、もしくはその確率を低下させることができる。
【発明の効果】
【００６８】
本発明の鍵交換装置、鍵交換方法、および暗号通信システムによれば、同時に鍵交換が発生した場合に、一方の鍵交換のみを中断させることができ、冗長なＳＡが存在する状態になることによるメモリ資源の浪費、冗長な鍵交換によるＣＰＵ資源の浪費、双方で最新のＳＡが異なることによる暗号通信の断絶を防ぐことができる。また、ここでの同時鍵交換はリキー時のものに限る必要はない。
【発明を実施するための最良の形態】
【００６９】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００７０】
〔本発明における鍵交換装置の適用環境〕
図２は、本発明の一実施の形態に係る鍵交換装置が適用されるネットワークの構成例を示すブロック図である。図２において第１の鍵交換装置（２０１）はＩＫＥ処理部（１０１）、およびＩＰｓｅｃ処理部（２０４）を有しており、本発明の一実施の形態に係る鍵交換装置である。また第２の鍵交換装置（２０３）もＩＫＥ処理部（２０５）を有しているが、本発明の一実施の形態に係る鍵交換装置であってもよいし、そうでなくてもよい。また、第２の鍵交換装置（２０３）もＩＰｓｅｃ処理部（２０６）を有している。第１の鍵交換装置（２０１）はネットワーク（２０２）を介して第２の鍵交換装置（２０３）に接続されており、第１の鍵交換装置（２０１）上のＩＫＥ処理部（１０１）と第２の鍵交換装置（２０３）上のＩＫＥ処理部（２０５）の間で鍵交換を行い、ＳＡを確立する。確立されたＳＡを利用して、第１の鍵交換装置（２０１）と第２の鍵交換装置（２０３）はネットワーク（２０２）を介して暗号通信を行う。なお、暗号化する通信データを、第１の鍵交換装置（２０１）、第２の鍵交換装置（２０３）が直接確立するような形態でもよいし、他の装置が生成した通信データを第１の鍵交換装置（２０１）、第２の鍵交換装置（２０３）が暗号化し転送を行うような形態でもよい。
【００７１】
（実施の形態１）
〔ＩＫＥ処理部（１０１）の構成〕
図１は本発明の一実施の形態に係る鍵交換装置におけるＩＫＥ処理部（１０１）の構成図である。ＩＫＥ処理部（１０１）は、要求受付部（１０２）、鍵交換制御部（１０３）、ＳＡ管理部（１０４）、メッセージ処理部（１０５）、鍵交換状態管理部（１０６）、同時鍵交換判定部（１０７）から構成される。
【００７２】
ＳＡ管理部（１０４）は確立済みのＳＡを管理する機能部である。
【００７３】
メッセージ処理部（１０５）は鍵交換メッセージの生成、送信、受信、解析を行う機能部である。
【００７４】
鍵交換状態管理部（１０６）は進行中の鍵交換の状態を保持する機能部である。
【００７５】
要求受付部（１０２）はリキー以外のイニシエータとしての鍵交換の開始要求を受付、鍵交換の開始を鍵交換制御部（１０３）に指示する機能部である。
【００７６】
同時鍵交換判定部（１０７）は、鍵交換制御部（１０３）から同時鍵交換判定の依頼を受けた場合に、同時鍵交換発生の有無の判定、およびそれにもとづく鍵交換の中断、再開、やり直しを鍵交換制御部（１０３）に指示する機能部である。
【００７７】
鍵交換管理部は鍵交換管理部の保持する鍵交換の状態を参照し、ＳＡ管理部（１０４）、メッセージ処理部（１０５）、要求受付部（１０２）、同時鍵交換判定部（１０７）と連携しながら、鍵交換開始からＳＡ確立、もしくは鍵交換中断までの一連の処理制御を行う機能部である。
【００７８】
〔ＳＡ確立時の動作概要〕
まず、鍵交換開始からＳＡ確立までのＩＫＥ処理部（１０１）の動作について説明する。要求受付部（１０２）はアプリケーションからのＳＡ確立要求があった場合や、暗号通信を必要とする通信データを送信されたことを検出した場合などに、鍵交換制御部（１０３）にイニシエータとしての鍵交換開始を指示する。また、メッセージ処理部（１０５）は鍵交換制御部（１０３）の指示に従い、鍵交換メッセージの生成、送信を行ったり、受信した鍵交換メッセージの解析などを行ったりする。たとえば、受信した鍵交換メッセージが第２の鍵交換装置（２０３）から開始された最初の鍵交換メッセージであった場合にはレスポンダとして鍵交換を行う必要があることを鍵交換制御部（１０３）に通知する。なお、ここであげた鍵交換の開始方法は一例であり、これに限るものではない。次に、鍵交換を開始する際にはイニシエータであるか、レスポンダであるかにかかわらず、鍵交換制御部（１０３）は、鍵交換状態管理部（１０６）に、開始された鍵交換に関するエントリを登録する。このエントリには、イニシエータかレスポンダか、どの第２の鍵交換装置（２０３）との鍵交換か、鍵交換はどこまで進行しているか、などの情報を含んでいる。さらに、レスポンダとしてのエントリには、第２の鍵交換装置（２０３）の鍵交換メッセージ内に本発明の機能を有していることを示すＶｅｎｄｅｒＩＤペイロードが含まれていたかどうかを示す情報を持つ。なお、このエントリは鍵交換に関するその他の情報も含んでもよく、前述したものに限るものではない。次に鍵交換制御部（１０３）は同時鍵交換判定部（１０７）に同時鍵交換が発生しているかどうかの判定を指示する。
【００７９】
図５はこのときの同時鍵交換判定部（１０７）の処理フローである。まず、同時鍵交換判定部（１０７）は鍵交換状態管理部（１０６）に登録されている鍵交換状態情報を検索し、第２の鍵交換装置（２０３）に対してイニシエータとして行っている鍵交換の状態情報と、レスポンダとして行っている鍵交換の状態情報との両方が存在するかどうかをチェック（Ｓ５０１）し同時鍵交換の有無を判定する（Ｓ５０２）。なおこの判定は開始された鍵交換の第２の鍵交換装置（２０３）の鍵交換状態情報のみを対象に限定してもよい。判定により同時鍵交換がないことが分かると、同時鍵交換判定部（１０７）は何もしない、すなわち両方の鍵交換を継続する。
【００８０】
同時鍵交換は発生していた場合の処理（Ｓ５０３−Ｓ５０８）は後述し、以下では同時鍵交換が発生していなかった場合の以降の処理について述べる。
【００８１】
次に、鍵交換制御部（１０３）は第２の鍵交換装置（２０３）への鍵交換メッセージの確立と送信をメッセージ処理部（１０５）に指示し、メッセージ処理部（１０５）が鍵交換メッセージの確立と送信を行う。その後、鍵交換制御部（１０３）が、メッセージ処理部（１０５）が受けた受信メッセージにもとづいて鍵交換状態管理部（１０６）が持つ鍵交換状態を変化させ、メッセージ送信部に鍵交換メッセージの送信を指示するといった処理を繰り返す。最後に、鍵交換が完了すると、鍵交換制御部（１０３）は完了した鍵交換に対するエントリを削除し、確立したＳＡをＳＡ管理部（１０４）に登録する。以上が、鍵交換開始からＳＡ確立までの一連の処理である。
【００８２】
〔同時鍵交換発生時の動作概要〕
ここでは、前述のＳＡ確立時の動作において、同時鍵交換を検出した場合の動作、すなわち図５の（Ｓ５０３−Ｓ５０８）について述べる。
【００８３】
同時鍵交換判定部（１０７）は、同時鍵交換が有ると判定すると、レスポンダとしての鍵交換状態をチェックする。レスポンダとしてのエントリには、第２の鍵交換装置（２０３）の鍵交換メッセージ内に本発明の機能を有していることを示すＶｅｎｄｅｒＩＤペイロードが含まれていたかどうかを示す情報を持っているため、第２の鍵交換装置（２０３）が本発明の機能を有しているかの情報が入っているためどうかを判定できる（Ｓ５０３）。まず、第２の鍵交換装置（２０３）が本発明の機能を有していない場合は、イニシエータとしてもしくはレスポンダとしてのどちらか一方の鍵交換を中断するよう、鍵交換制御部（１０３）に指示する（Ｓ５０６）。第２の鍵交換装置（２０３）が本発明の機能を有している場合は、第１の鍵交換装置（２０１）のＩＰアドレスと第２の鍵交換装置（２０３）のＩＰアドレスを比較し、第１の鍵交換装置（２０１）のＩＰアドレスのほうが小さい場合は、第１の鍵交換装置をスレーブとし、大きい場合は第１の鍵交換装置をマスタと決定する（Ｓ５０４）。なお、ここではＩＰアドレスを比較する場合について述べたが、この値は鍵交換メッセージ中の特定のフィールドの値であってもよいし、あらかじめ各装置に定められた値であってもよい。また、前記鍵交換メッセージ中の特定のフィールドは、ＩＫＥで定められたメッセージのフィールドであってもよいし、新たに定義したフィールドであってもよいし、メッセージ全体をビット列とみなしたときの指定された範囲であってもよく、ここに述べたものに限る必要はない。また比較方法も、大小を直接比較する方法にかぎらず、これらの値から真か偽かの２値を一意に導けるものであれば何でもよい。次に、比較の結果、第１の鍵交換装置がスレーブであると判定された場合にはイニシエータとしてもしくはレスポンダとしてのどちらか一方の鍵交換を中断するよう鍵交換制御部（１０３）に指示する（Ｓ５０６）。このとき、イニシエータとしてもしくはレスポンダとしてのどちらの鍵交換を中断するかは、予め決められており、第２の鍵交換装置（２０３）と同じになっていればどちらでもよい。また、同時鍵交換がリキーであった場合は、どちらを中断するかを、リキーを発生させるもととなったＳＡの確立時の鍵交換において決定してもよい。前記第１の鍵交換装置がマスタであると判定された場合には、第２の鍵交換装置（２０３）がスレーブとなり、どちらか一方の鍵交換を中断していると考えられるため、鍵交換制御部（１０３）には何も指示せず、両方の鍵交換を継続する。なお、第２の鍵交換装置（２０３）が中断すると考えられる方の鍵交換を中断するよう、鍵交換制御部（１０３）に指示してもよい。
【００８４】
なお、どちらか一方の鍵交換を中断させた場合（Ｓ５０６）、何らかの原因で継続させた側の鍵交換が失敗すると暗号通信を行うために必要なＳＡすら確立されない可能性がある。このような場合に対する対処として、以下のような処理を行ってもよい（Ｓ５０７、Ｓ５０８）。
【００８５】
まず、あるタイミングで、継続させた側の鍵交換が成功したかどうかを判定する（Ｓ５０７）。なお、この判定タイミングは鍵交換の成功、失敗が確定した後でもよいし、それ以前の一定時間経過後でもよい。鍵交換が失敗したと判定された場合には、鍵交換制御部（１０３）にイニシエータとしてさらに鍵交換を開始させる（Ｓ５０８）。このとき、新しい鍵交換を開始するのではなく、Ｓ５０６において中断させた鍵交換を再開するようにしてもよい。また、鍵交換再開後に、やはり再開した鍵交換が失敗したと判定された場合には、鍵交換制御部（１０３）にイニシエータとして新たな鍵交換を開始するようにしてもよい。
【００８６】
〔同時鍵交換発生時の第１の鍵交換装置（２０１）と第２の鍵交換装置（２０３）での動作〕
図６に、本発明に係る２つの装置が暗号通信を行う際に、双方から同時に鍵交換を開始した場合の動作例について説明する。図６ではＩＰアドレスが１６１．３３．１．１５である第１の鍵交換装置（２０１）と、ＩＰアドレスが２０２．５７．３．２２０である第２の鍵交換装置（２０３）とが暗号通信を行う。
【００８７】
まず、第１の鍵交換装置（２０１）から鍵交換１を、第２の鍵交換装置（２０３）から鍵交換２をほぼ同じタイミングで開始したとする（Ｓ６０１、Ｓ６１１）。その後、第１の鍵交換装置（２０１）は第２の鍵交換装置（２０３）からのメッセージを受信した時点で、また第２の鍵交換装置（２０３）は第１の鍵交換装置（２０１）からのメッセージを受信した時点で、ともにイニシエータとして、レスポンダとしての両方の鍵交換を行っている状態となり、同時鍵交換を検出する（Ｓ６０２，Ｓ６１２）。鍵交換を検出すると、第１の鍵交換装置（２０１）、第２の鍵交換装置（２０３）はそれぞれ第１の鍵交換装置のＩＰアドレスと第２の鍵交換装置（２０３）のＩＰアドレスを比較する。このとき、第２の鍵交換装置（２０３）のＩＰアドレスの方が第１の鍵交換装置（２０１）のＩＰアドレスよりも大きいため、第２の鍵交換装置（２０３）がマスタとなり（Ｓ６１３）、第１の鍵交換装置（２０１）がスレーブとなる（Ｓ６０３）。
【００８８】
マスタとなった第２の鍵交換装置（２０３）は両方のネゴシエーションを継続するが、スレーブとなった第１の鍵交換装置（２０１）は第１の鍵交換装置がイニシエータとなっている鍵交換１のみを中断し（すなわち鍵交換２に関するメッセージを受信しても、対抗装置に対して応答しない）（Ｓ６０４）、もう一方の鍵交換２は継続させる。
【００８９】
その結果、鍵交換１のみが中断され鍵交換２は最後まで完了する（Ｓ６２１）。
【００９０】
以上のように、第１の鍵交換装置（２０１）を用いれば、同時鍵交換が発生した場合に、そのことを検知し、一方の鍵交換のみを成功させることにより、冗長なＳＡが存在する状態の発生、冗長な鍵交換、ＳＡ不一致による暗号通信の断絶を防ぐことができる。
【００９１】
（実施の形態２）
実施の形態２では、実施の形態１と異なり、同時鍵交換の有無の判定後、マスタ、スレーブを決定せず、第１の鍵交換装置が、少なくともひとつの鍵交換を必ず中断することにより冗長なＳＡが存在する状態になることを防ぐ。
【００９２】
〔ＩＫＥ処理部（１０１）の構成とＳＡ確立時の動作概要〕は前記実施の形態１と同様であるためここでは省略する。
【００９３】
〔同時鍵交換発生時の動作概要〕
ここでは、本発明の一実施の形態に係るＳＡ確立時の動作において、同時鍵交換を検出した場合の動作について述べる。まず、同時鍵交換の発生の有無の判定方法は実施の形態１と同様であるため、ここでは省略する。
【００９４】
同時鍵交換が有ると判定された場合は、第１の鍵交換装置がイニシエータとして開始した鍵交換を中断する。なお、第１の鍵交換装置がレスポンダとして行っている鍵交換を中断してもよいし、両方の鍵交換を中断してもよい。中断後一定の範囲内でのランダムな時間経過後になっても、継続させた鍵交換が成功しない場合には、イニシエータとして新たに鍵交換を開始する。このとき、新しい鍵交換を開始するのではなく、中断した鍵交換を再開するようにしてもよい。
【００９５】
ここでいうランダムは、所定の値以下の範囲でのランダムであってもよいし、それ以外であってもよい。
【００９６】
また、鍵交換再開後に、やはり再開した鍵交換が失敗したと判定された場合には、イニシエータとして新たな鍵交換を開始するようにしてもよい。また、待ち時間はランダムではなく、第２の鍵交換装置（２０３）と値が異なるように予め定められた値であってもよいし、実施の形態１におけるＳ５０４と同様の方法によって定められる役割によって予め与えられた複数の値から選択してもよい。ただし、ランダムな時間経過後に鍵交換を再開、もしくは新たに開始した時点で、さらに同時鍵交換が有ると判定された場合は、再びランダム時間待つようにしてもよい。なお、再び待つ際のランダム時間の範囲は、前回の待ち時間と同じでもよいし、一定値ずつ増加するものでもよいし、一定の比率ずつ増加するものでもよく、またこれらに限る必要はない。また、この処理は２回に限らず複数回繰り返し適用してもよく、いわゆるＥｘｐｏｎｅｎｔｉａｌ  Ｂａｃｋ−Ｏｆｆアルゴリズムのように制御してもよい。
【００９７】
以上のように、第１の鍵交換装置（２０１）を用いれば、同時鍵交換が発生した場合に、そのことを検知し、鍵交換を中断した後、時間をおいて中断した鍵交換の再開する、もしくは新たな鍵交換をやり直すことにより、冗長なＳＡの存在する状態の発生、冗長な鍵交換、ＳＡ不一致による暗号通信の断絶を防ぐことができる。
【００９８】
（実施の形態３）
実施の形態３では、実施の形態１、実施の形態２と異なり、同時鍵交換の有無の判定を行わず、リキーの開始タイミングを制御することにより冗長な鍵交換の発生を防ぐ。
【００９９】
〔ＩＫＥ処理部（１０１）の構成〕
図８は本発明の一実施の形態に係る鍵交換装置におけるＩＫＥ処理部（１０１）の構成図である。ＩＫＥ処理部（１０１）は、要求受付部（１０２）、鍵交換制御部（１０３）、ＳＡ管理部（１０４）、メッセージ処理部（１０５）、鍵交換状態管理部（１０６）、リキー開始タイミング決定部（８０１）から構成される。
【０１００】
図８の構成は、同時鍵交換判定部（１０７）がなく、リキー開始タイミング決定部（８０１）存在する点で図１の構成と異なる。上記以外の機能部に関しては図１と同様である。
【０１０１】
リキー開始タイミング決定部（８０１）は、鍵交換制御部（１０３）、ＳＡ管理部（１０４）と連携し、鍵交換制御部（１０３）により確立されたＳＡに対するリキーの開始タイミングを決定する機能部である。
【０１０２】
〔ＳＡ確立時の動作概要〕
ＳＡ確立時の動作概要のうち、多くの部分は実施の形態１の場合と同様であるので、ここでは異なる部分についてのみ説明する。
【０１０３】
まず、同時鍵交換判定部（１０７）および同機能部に関わる処理はここでは必要ない。
【０１０４】
実施の形態３では、リキー開始タイミング決定部（８０１）が、鍵交換制御部（１０３）に対して、以下の処理を行うように指示する。すなわち、鍵交換のメッセージの中のいずれかのやりとりにおいて、一方からリキーの開始タイミングを決定するための値をひとつもしくは複数提案し、他方がその値をひとつであれば受諾、複数であれば一つを選択することによりリキーの開始タイミングを決定するように指示する。このとき、一方が双方におけるリキーの開始タイミングを提案してもよいし、それぞれが一方のリキーの開始タイミングのみを提案してもよい。なお、一方から提案する場合は、双方のリキーの開始タイミングとして提案する値が異なるようにする、もしくは他方が双方のリキーの開始タイミングが異なるように選択する必要がある。また、それぞれがリキーの開始タイミングを提案する場合は、後に提案する側がすでに選択したリキーの開始タイミングの値と、異なる値を提案するか、後で受諾する側がすでに選択されたリキーの開始タイミングの値と異なる値を選択する必要がある。
【０１０５】
鍵交換制御部（１０３）は、前記指示に従いリキーの開始タイミングを決定すると、そのタイミングをリキー開始タイミング決定部（８０１）に通知し、リキー開始タイミング決定部（８０１）は、ＳＡ管理部（１０４）に登録されたＳＡにリキーの開始タイミングを設定する。
【０１０６】
鍵交換制御部（１０３）は、ＳＡ管理部（１０４）に設定されたリキーの開始タイミングになると、リキーを開始する。もちろん、リキーの開始タイミングの遅い側は、第２の鍵交換装置（２０３）からのリキーが先に成功していればリキーの開始タイミングになったとしても改めてリキーを行う必要はない。
【０１０７】
以上のように、第１の鍵交換装置（２０１）を用いれば、リキーの開始タイミングを折衝することにより、リキー時の双方から同時に鍵交換が開始することを防ぐことができ、冗長なＳＡの存在する状態の発生、冗長な鍵交換、ＳＡ不一致による暗号通信の断絶を防ぐことができる。
【０１０８】
（実施の形態４）
実施の形態３では、実施の形態１、実施の形態２と異なり、同時鍵交換の有無の判定を行わず、リキーの開始タイミングを制御することにより冗長な鍵交換の発生を防ぐ。また、実施の形態３と異なり、リキーの開始タイミングが鍵交換開始前に定まっているため、リキーの開始タイミングを折衝する必要がない。
【０１０９】
〔ＩＫＥ処理部（１０１）の構成〕
実施の形態４におけるＩＫＥ処理部（１０１）の構成は、実施の形態３と同じく、図８であるため、ここでは説明を省略する。
【０１１０】
〔ＳＡ確立時の動作概要〕
ＩＫＥ処理部（１０１）の構成とＳＡ確立時の動作概要のうち、多くの部分は実施の形態３の場合と同様であるので、ここでは異なる部分についてのみ説明する。
【０１１１】
実施の形態４では、双方の機器におけるリキー開始タイミング決定部（８０１）があらかじめリキーの開始タイミングに関わる値を保持しており、これらの値は双方において異なる値に設定されている。なお、異なる値の設定はどのような方法で行ってもよく、例えば管理者が行ってもよいし、異なる値を設定するためのなんらかのプロトコルを動作させてもよい。前記値は、リキーの開始タイミングがライフタイムの一定時間前であることを表す値でもよいし、ライフタイムに一定比率を乗じることを表す値であってもよいし、またこれに限るものでもない。
【０１１２】
次に、鍵交換制御部（１０３）は通常の鍵交換を行い確立したＳＡをＳＡ管理部（１０４）に登録する。その後、リキー開始タイミング決定部（８０１）はＳＡ管理部（１０４）に登録されたＳＡに、予め設定されたリキーの開始タイミングにかかわる値を用いて決定されたリキーの開始タイミングに設定する。
【０１１３】
鍵交換制御部（１０３）は、ＳＡ管理部（１０４）に設定されたリキーの開始タイミングになると、リキーを開始する。もちろん、リキーの開始タイミングの遅い側は、第２の鍵交換装置（２０３）からのリキーが先に成功していればリキーの開始タイミングになったとしても改めてリキーを行う必要はない。
【０１１４】
以上のように、第１の鍵交換装置（２０１）および第２の鍵交換装置を用いれば、双方の鍵交換装置からリキーの開始タイミングを異ならせることができ、冗長なＳＡが存在する状態の発生、冗長な鍵交換、ＳＡ不一致による暗号通信の断絶を防ぐことができる。
【０１１５】
なお、上記した各実施の形態は、記憶装置（ＲＯＭ、ＲＡＭ、ハードディスク等）に格納された上述した処理手順を実行可能な所定のプログラムデータが、ＣＰＵによって解釈実行されることで実現される。この場合、プログラムデータは、記録媒体を介して記憶装置内に導入されてもよいし、記録媒体上から直接実行されてもよい。なお、記録媒体は、ＲＯＭ、ＲＡＭ、フラッシュメモリ等の半導体メモリ、フレキシブルディスクやハードディスク等の磁気ディスクメモリ、ＣＤ−ＲＯＭやＤＶＤ、ＢＤ等の光ディスク、メモリカード等の記録媒体をいう。また、記録媒体は、電話回線や搬送路等の通信媒体も含む概念である。
【０１１６】
また、上記した各実施の形態の各鍵交換装置あるいは各機能部は典型的には集積回路であるＬＳＩとして実現することができる。これらは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。
【０１１７】
ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１１８】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０１１９】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【産業上の利用可能性】
【０１２０】
本発明にかかる鍵交換方法、およびその装置は、ネット家電などメモリ資源、ＣＰＵ資源の限られた機器において、ＩＫＥを利用する場合に適用できる。また、メモリ資源の限られたＩＰｓｅｃハードウェアを持つ機器において、ＩＫＥを利用する場合に適用できる。
【図面の簡単な説明】
【０１２１】
【図１】本発明の実施の形態１および実施の形態２におけるＩＫＥ処理部のブロック図
【図２】本発明の全ての実施の形態における鍵交換装置を適用するネットワークの構成図
【図３】ＩＫＥの鍵交換のメッセージシーケンスを示す図
【図４】本発明を適用しない場合の同時鍵交換発生時のメッセージシーケンスを示す図
【図５】本発明の実施の形態１に関わる鍵交換のフローチャート
【図６】本発明の実施の形態１の鍵交換装置を第１の鍵交換装置、第２の鍵交換装置の両方に適用したシステムにおける同時鍵交換発生時のメッセージシーケンスを示す図
【図７】従来技術であるＦｒｅｅＳ／ＷＡＮ２．０２における鍵交換方法のメッセージシーケンスを示す図
【図８】本発明の実施の形態３および実施の形態４におけるＩＫＥ処理部のブロック図
【符号の説明】
【０１２２】
１０１    ＩＫＥ処理部
１０２    要求受付部
１０３    鍵交換制御部
１０４    ＳＡ管理部
１０５    メッセージ処理部
１０６    鍵交換状態管理部
１０７    同時鍵交換判定部
２０１    第１の鍵交換装置
２０２    ネットワーク
２０３    第２の鍵交換装置
２０４    第１の鍵交換装置のＩＰｓｅｃ処理部
２０５    第２の鍵交換装置のＩＫＥ処理部
２０６    第２の鍵交換装置のＩＰｓｅｃ処理部
【図１】
2005354556.tif 000003
【図２】
2005354556.tif 000004
【図３】
2005354556.tif 000005
【図４】
2005354556.tif 000006
【図５】
2005354556.tif 000007
【図６】
2005354556.tif 000008
【図７】
2005354556.tif 000009
【図８】
2005354556.tif 000010