(57)【要約】【課題】暗号化キーの変更によるパケットの破棄を回避する。【解決手段】暗号化キーで暗号化されたパケットを対向装置と双方向で送受信する通信装置は、暗号化キーの更新要求メッセージを送信する送信部と、新規の暗号化キーと、通信装置及び対向装置における新規の暗号化キーへの変更のタイミングを示すタイミング情報とを対向装置から受信する受信部と、前記タイミング情報に基づくタイミングでパケットの暗号化に使用する暗号化キーを新規の暗号化キーに変更する処理部とを含む。【選択図】図７
2018182665.tif 000002
【特許請求の範囲】
【請求項１】
暗号化キーで暗号化されたパケットを対向装置と双方向で送受信する通信装置において、
暗号化キーの更新要求メッセージを送信する送信部と、
新規の暗号化キーと、前記通信装置及び前記対向装置における前記新規の暗号化キーへの変更のタイミングを示すタイミング情報とを前記対向装置から受信する受信部と、
前記タイミング情報に基づくタイミングでパケットの暗号化に使用する暗号化キーを前記新規の暗号化キーに変更する処理部と
を含む通信装置。
【請求項２】
前記タイミング情報は、前記処理部が設定するタイマ値を含み、
前記処理部は、前記タイマ値の満了を契機に前記新規の暗号化キーへの変更を行う
請求項１に記載の通信装置。
【請求項３】
前記タイミング情報は、前記対向装置が前記通信装置へ送信するパケットのシーケンス番号の指定情報を含み、
前記処理部は、前記指定情報に合致するシーケンス番号を有するパケットの前記対向装置からの受信を契機に前記新規の暗号化キーへの変更を行う
請求項１又は２に記載の通信装置。
【請求項４】
前記タイミング情報は、前記通信装置が前記対向装置へ送信するパケットのシーケンス番号の指定情報を含み、
前記処理部は、前記指定情報に合致するシーケンス番号を有するパケットの前記対向装置への送信を契機に前記新規の暗号化キーへの変更を行う
請求項１から３のいずれか１項に記載の通信装置。
【請求項５】
前記処理部は、前記通信装置における前記更新要求メッセージの送信から前記新規の暗号化キーの受信までの時間と前記通信装置における前記新規の暗号化キーへの更新処理の所要時間とに基づくタイマ値を算出し前記対向装置へ送信する
請求項２から４のいずれか１項に記載の通信装置。
【請求項６】
暗号化キーで暗号化されたパケットを対向装置と双方向で送受信する通信装置において、
暗号化キーの更新要求メッセージを受信する受信部と、
前記更新要求メッセージに応じて新規の暗号化キーを生成する生成部と、
前記新規の暗号化キーと、前記通信装置及び前記対向装置における前記新規の暗号化キーへの変更のタイミングを示すタイミング情報とを前記対向装置へ送信する送信部と、
前記タイミング情報に基づくタイミングでパケットの暗号化に使用する暗号化キーを前記新規の暗号化キーに変更する処理部と
を含む通信装置。
【請求項７】
暗号化キーで暗号化されたパケットを対向装置と双方向で送受信する通信装置が、
暗号化キーの更新要求メッセージを送信し、
新規の暗号化キーと、前記通信装置及び前記対向装置における前記新規の暗号化キーへの変更のタイミングを示すタイミング情報とを前記対向装置から受信し、
前記タイミング情報に基づくタイミングで暗号化に使用する暗号化キーを前記新規の暗号化キーに変更する
ことを含む暗号化通信制御方法。
【請求項８】
暗号化キーで暗号化されたパケットを対向装置と双方向で送受信する通信装置が、
暗号化キーの更新要求メッセージを受信し、
前記更新要求メッセージに応じて新規の暗号化キーを生成し、
前記新規の暗号化キーと、前記新規の暗号化キーへの変更のタイミングを示すタイミング情報とを前記対向装置へ送信し、
前記タイミング情報に基づくタイミングでパケットの暗号化に使用する暗号化キーを前記新規の暗号化キーに変更する
ことを含む暗号化通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信システム及び暗号化通信制御方法に関する。
【背景技術】
【０００２】
暗号技術を用いてInternet Protocol（ＩＰ）パケット単位でデータの改竄防止や秘匿
機能を提供する仕組みとして、Security Architecture for Internet Protocol（ＩＰｓ
ｅｃ）がある。ＩＰｓｅｃでは、セキュリティアソシエーション（Security Association：ＳＡ）を用いてパケットが転送される。ＳＡは、それによって運ばれるトラフィックに対してセキュリティサービスを提供するためのコネクションである。
【０００３】
ＳＡを管理する方法の一つに、自動鍵管理プロトコル（「鍵交換プロトコル」とも呼ばれる）を用いて自動的にＳＡを生成及び管理する方法がある。鍵交換プロトコルは、Internet Key Exchange protocol（ＩＫＥ）と呼ばれる。ＩＫＥには、ＲＦＣ２４０９などで規定されたＩＫＥ version 1（ＩＫＥｖ１）と、ＲＦＣ４３０６で規定されたＩＫＥ version 2（ＩＫＥｖ２）とがある。
【０００４】
例えば、ＩＫＥｖ２では、最初に、対向する２つの装置（ピア）間で、鍵交換を行うためのＳＡが確立される。このＳＡは、「ＩＫＥ＿ＳＡ」と呼ばれる。次に、ＩＫＥ＿ＳＡを用いて、ＩＰｓｅｃのＳＡ（即ち、セキュリティプロトコルを用いた通信を保護するためのＳＡ）を確立するための鍵交換が行われる。ＩＰｓｅｃでは、Authentication Header（ＡＨ）及びEncapsulated Security Payload（ＥＳＰ）というセキュリティプロトコルが定義されている。ＡＨでは、ヘッダ認証が行われ、ＥＳＰではペイロードの暗号化が行われることで通信が保護される。１つのＳＡに対して適用されるセキュリティプロトコルは１つであり、上記したＡＨ及びＥＳＰの一方が用いられる。ＩＰｓｅｃのＳＡは、ＩＫＥｖ２では、「ＣＨＩＬＤ＿ＳＡ」と呼ばれる。
【０００５】
ＳＡ（ＩＫＥ＿ＳＡ及びＣＨＩＬＤ＿ＳＡ）は、ライフタイムの満了等、所定の契機で更新され得る。既存のＩＫＥ＿ＳＡを用いたＳＡの再確立（ＣＨＩＬＤ＿ＳＡの更新）は、「リキー」と呼ばれる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１２−５０８４９３号公報
【特許文献２】特開２０１４−０５７３８０号公報
【特許文献３】国際公開第２００８／０９６３９６号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＣＨＩＬＤ＿ＳＡの更新（リキー）を実施する場合に、ピア間で以下のような動作を行うことが考えられる。ピアのうち発側の装置（イニシエータと呼ばれる）はリキー要求メッセージを受け側の装置（レスポンダと呼ばれる）に送信する。レスポンダはリキー要求に基づき、ＣＨＩＬＤ＿ＳＡに適用する新規の暗号化キーを生成し、イニシエータに送信する。イニシエータでは、暗号化キーを新規の暗号化キーに更新する。
【０００８】
このとき、イニシエータでの暗号化キーの更新処理が終了する前に、レスポンダから新規の暗号化キーで暗号化されたパケットがイニシエータに到着する場合があり得る。この場合、イニシエータでは新規の暗号化キーを用いた復号処理を行うことができず、パケッ
トが破棄されるおそれがあった。
【０００９】
本発明は、暗号化キーの変更によるパケットの破棄を回避し得る通信装置、通信システム及び暗号化通信制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
一つの態様は、暗号化キーで暗号化されたパケットを対向装置と双方向で送受信する通信装置である。この通信装置は、暗号化キーの更新要求メッセージを送信する送信部と、新規の暗号化キーと、前記通信装置及び前記対向装置における前記新規の暗号化キーへの変更のタイミングを示すタイミング情報とを前記対向装置から受信する受信部と、前記タイミング情報に基づくタイミングでパケットの暗号化に使用する暗号化キーを前記新規の暗号化キーに変更する処理部とを含む。
【発明の効果】
【００１１】
一側面では、暗号化キーの変更によるパケットの破棄を回避することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は実施形態に係る通信システムの一例を示す。
【図２】図２は参考例を説明するシーケンス図である。
【図３】図３は通信装置のハードウェア構成例を示す。
【図４】図４は実施形態に係るＥＳＰパケットのフォーマット例を示す。
【図５】図５は実施形態に係る応答メッセージのフォーマット例を示す。
【図６】図６は動作例１を示すシーケンス図である。
【図７】図７は動作例２を示すシーケンス図である。
【図８】図８は動作例２を示すシーケンス図である。
【図９】図９は通信装置Ａのイニシエータ処理の例を示すフローチャートである。
【図１０】図１０は通信装置Ａのイニシエータ処理の例を示すフローチャートである。
【図１１】図１１は通信装置Ａのイニシエータ処理の例を示すフローチャートである。
【図１２】図１２は通信装置Ｂのレスポンダ処理の例を示すフローチャートである。
【図１３】図１３は通信装置Ｂにおけるパケット送信処理の例を示すフローチャートである。
【図１４】図１４は切替タイミング（タイマ値）算出処理の例を示すフローチャートである。
【図１５】図１５は切替タイミング（タイマ値）テーブルのデータ構造例を示す。
【図１６】図１６はＩＰｓｅｃ送信処理の例を示すフローチャートである。
【図１７】図１７はＩＰｓｅｃ受信処理の例を示すフローチャートである。
【図１８】図１８はＩＰｓｅｃパケット統計情報テーブルのデータ構造例を示す。
【図１９】図１９はＩＰｓｅｃパケット送受信時間テーブルのデータ構造例を示す。
【図２０】図２０はシーケンス番号算出処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、実施形態について説明する。実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００１４】
＜通信システムの例＞
図１は実施形態に係る通信システムの一例を示す。図１に示す通信システムは、ネットワーク１を介して接続された通信装置Ａと通信装置Ｂとを含む。通信装置Ａ及び通信装置ＢはＩＰ制御部をそれぞれ有しており、ＩＰ制御部同士はＩＰｓｅｃを用いたパケット通
信を行う。すなわち、通信システムは、通信装置Ａと、通信装置Ａの対向装置である通信装置Ｂとが暗号化キー（暗号鍵）で暗号化されたパケットを双方向で送受信する。
【００１５】
ＩＰ制御部間では、例えばＩＫＥｖ２に基づくＩＫＥ＿ＳＡ及びＣＨＩＬＤ＿ＳＡが確立され、例えばＥＳＰに基づいて暗号化されたパケット（ＥＳＰパケットと呼ぶ）が送受信される。例えば、ＣＨＩＬＤ＿ＳＡにはライフタイムが設けられ、ライフタイムの満了を契機にＣＨＩＬＤ＿ＳＡの更新処理（リキー）が行われる。但し、リキーの契機はライフタイム満了に限られない。ＣＨＩＬＤ＿ＳＡの更新処理によって、ＥＳＰパケットの暗号化及び復号に使用される暗号化キーが更新（切替又は変更）される。
【００１６】
通信装置Ａ及び通信装置Ｂに適用可能な通信装置には、パーソナルコンピュータ，ワークステーション，サーバマシン，スマートフォン，フィーチャーフォン，カーナビゲーション端末，ゲーム機等が含まれる。換言すれば、通信装置にはＩＰｓｅｃを用いた通信が可能な通信端末及び情報処理装置（コンピュータ）が含まれる。また、通信装置は、ＩＰｓｅｃに係る通信が可能である限り、ルータやレイヤ３スイッチなどの中継装置も含み得る。
【００１７】
＜参考例＞
図２は参考例を説明するシーケンス図であり、ＣＨＩＬＤ＿ＳＡの更新時の動作が図示されている。通信装置Ａと通信装置Ｂとは暗号化キー“Ｘ”を共有し、暗号化キー“Ｘ”を用いたＥＳＰパケットを送受信している。但し、図２では、通信装置Ｂから通信装置Ａへ送信されるＥＳＰパケットを例示している。
【００１８】
通信装置Ａにおいて、ライフタイムの満了等、ＣＨＩＬＤ＿ＳＡの更新契機が発生すると、イニシエータとして動作する通信装置Ａ（のＩＰ制御部）は、リキー要求のメッセージ“Create CHILD SA (Rekey) Request”を通信装置Ｂに送信する。リキー要求はＣＨＩ
ＬＤ＿ＳＡの更新要求メッセージである。
【００１９】
通信装置Ｂ（のＩＰ制御部）はリキー要求を受信すると、レスポンダとして動作し、新規の暗号化キー“Ｙ”を生成し、リキー要求の応答メッセージ“Create Child SA (Rekey) Response”に含めて通信装置Ａへ送信する。通信装置ＡはＥＳＰパケットに係る暗号化及び復号化に用いる暗号化キーを“Ｙ”に更新する。
【００２０】
通信装置Ａにおける暗号化キーの更新処理が完了する前に、通信装置Ｂが新規の暗号化キー“Ｙ”を用いて暗号化したＥＳＰパケットを送信し、通信装置Ａに到着した場合を仮定する。この場合、暗号化キーは“Ｙ”に更新されていないので、ＥＳＰパケットの復号を行うことができず、ＥＳＰパケットは破棄される。なお、更新処理による暗号化キーの切替後では、通信装置Ａは暗号化キー“Ｙ”を用いて通信装置ＢからのＥＳＰパケットを復号することができる。
【００２１】
以下に説明する実施形態では、上記したような暗号化キーの更新によるパケットの破棄を回避し得る通信装置，通信システム，及び暗号化通信制御方法について説明する。
【００２２】
＜実施形態＞
＜＜構成例＞＞
図３は通信装置のハードウェア構成例を示す。図３に示す通信装置１０は、通信装置Ａ及び通信装置Ｂとして適用可能である。通信装置１０は、バスＢ１を介して相互に接続されたＣＰＵ１１と、メモリ１２と、入力装置１３と、出力装置１４と、通信インタフェース（通信ＩＦ）１５とを含む。通信ＩＦ１５はネットワーク１に接続される。
【００２３】
メモリ１２は、主記憶装置と補助記憶装置とを含み得る。主記憶装置はプログラムの展開領域、ＣＰＵ１１の作業領域、データやプログラムの記憶領域、通信データのバッファ領域などとして使用される。主記憶装置は、例えばRandom Access Memory（ＲＡＭ）、ＲＡＭとRead Only Memory（ＲＯＭ）との組み合わせで形成される。
【００２４】
補助記憶装置はデータやプログラムの記憶領域として使用される。補助記憶装置は、例えば、ハードディスクドライブ（ＨＤＤ）、Solid State Drive（ＳＳＤ）、フラッシュ
メモリ、Electrically Erasable Programmable Read-Only Memory（ＥＥＰＲＯＭ）など
の不揮発性記憶媒体で形成される。メモリ１２は、「記憶装置」、「記憶媒体」、「メモリ」、「記憶部」の一例である。
【００２５】
入力装置１３は、例えば、キー、ボタン、ポインティングデバイス（マウスなど）、タッチパネル、音声入力装置（マイクロフォン）などである。出力装置１４は、例えばディスプレイである。出力装置１４は、プリンタ、スピーカ、ランプなどを含み得る。
【００２６】
通信ＩＦ１５は通信処理を司る回路である。通信ＩＦ１５として、例えばNetwork Interface Card（ＮＩＣ）が使用される。通信ＩＦ１５は、「送信部」、「受信部」、「第１送信部」、「第１受信部」、「第２送信部」、「第２受信部」の一例である。
【００２７】
ＣＰＵ１１は、メモリ１２に記憶されたプログラムを実行して、ＩＰ制御部としての動作及び処理を行う。例えば、ＣＰＵ１１は、ＩＰｓｅｃに係るイニシエータ及びレスポンダとして動作でき、対向装置との間でＩＰｓｅｃに係るＳＡ（ＩＫＥ＿ＳＡ及びＣＨＩＬＤ＿ＳＡ）を確立してＥＳＰパケットを送受信する処理や、ＣＨＩＬＤ＿ＳＡの更新に係る処理などを行う。
【００２８】
ＣＨＩＬＤ＿ＳＡの更新に係る処理は、以下を含む。
・更新の契機を検出してリキー要求のメッセージを生成して対向装置（レスポンダ）へ送信する処理。
・リキー要求に応じて新規の暗号化キーを生成する処理。
・新規の暗号化キーを含むリキー要求の応答メッセージを生成して対向装置（イニシエータ）へ送る処理。
・応答メッセージ中の新規の暗号化キーへの切替処理
・新規の暗号化キーへの切替タイミングを示す情報をイニシエータへ送る処理（後述）
・切替タイミングを示す情報に基づいて新規の暗号化キーへの切替タイミングを制御する処理（後述）。
【００２９】
ＣＰＵ１１は、「制御装置」、「制御部」、「コントローラ」、「生成部」、「処理部」の一例である。ＣＰＵ１１は、ＭＰＵ（Microprocessor）、プロセッサとも呼ばれる。ＣＰＵ１１は、単一のプロセッサに限定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のＣＰＵがマルチコア構成を有していても良い。ＣＰＵ１１で行われる処理の少なくとも一部は、マルチコア又は複数のＣＰＵで実行されても良い。ＣＰＵ１１で行われる処理の少なくとも一部は、ＣＰＵ以外のプロセッサ、例えば、Digital Signal Processor(ＤＳＰ)、Graphics Processing Unit（ＧＰＵ）、数値演算プロセッサ、ベクトルプロセッサ、画像処理プロセッサ等の専用プロセッサで行われても良い。
【００３０】
また、ＣＰＵ１１によって行われる処理の少なくとも一部は、集積回路（ＩＣ）、その他のディジタル回路で行われても良い。また、集積回路やディジタル回路はアナログ回路を含んでいても良い。集積回路は、ＬＳＩ、Application Specific Integrated Circuit
（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）を含む。ＰＬＤは、例えば、
Field-Programmable Gate Array(ＦＰＧＡ)を含む。ＣＰＵ１１で行われる処理の少なく
とも一部は、プロセッサと集積回路との組み合わせにより実行されても良い。組み合わせは、例えば、マイクロコントローラ（ＭＣＵ）、ＳｏＣ（System-on-a-chip）、システムＬＳＩ、チップセットなどと呼ばれる。
【００３１】
なお、通信装置Ｂは通信装置Ａと同じ構成を有し、通信装置Ｂがイニシエータとなり、通信装置Ａがレスポンダとなって上記したＳＡの確立及びリキーを行うことができる。以下の説明では、通信装置Ａがイニシエータであり、通信装置Ｂがレスポンダである例について説明する。
【００３２】
＜＜タイミング制御＞＞
実施形態に係る通信装置Ａ及び通信装置Ｂは、両者間において更新に係る暗号化キーへの切り替えタイミングを一致させることで、ＥＳＰパケット（暗号化パケット）の破棄を回避する。このため、リキー要求を受けて新規の暗号化キーを生成する通信装置（レスポンダ）は、イニシエータ及びレスポンダにおける新規の暗号化キーへの切替タイミングを示すタイミング情報をリキー要求側の（イニシエータの）通信装置へ送る。
【００３３】
タイミング情報は、切替タイミングを直接的に示す情報であっても、間接的に示す情報であっても良い。切替タイミングを間接的に示すタイミング情報として、例えば、ＥＳＰパケットのシーケンス番号や、タイマ値を適用し得る。タイミング情報は、例えば、リキー要求の応答メッセージに含められて送信される。但し、応答メッセージ以外のメッセージや信号によってタイミング情報がリキー要求側に伝達されても良い。
【００３４】
図４はＥＳＰパケットのフォーマット例を示す。図４に示すように、ＥＳＰパケットは、セキュリティパラメータインデックス（ＳＰＩ）と、シーケンス番号と、ペイロードと、ＥＳＰトレーラと、認証データがそれぞれ格納されるフィールドを含む。シーケンス番号として、ＥＳＰパケットの順序を示す連続番号が格納される。ＳＰＩ及びシーケンス番号のフィールドはＥＳＰパケットのヘッダ領域に設けられる。
【００３５】
図５は、タイミング情報が載せられる応答メッセージ（Child SA response）のフォー
マットを示す。応答メッセージの未使用領域（Reserve領域）に、パラメータ“ＣＴ（Change Timing）”と、パラメータ“ＣＳＮ（Change Sequence Number）”とが設けられている。
【００３６】
パラメータ“ＣＴ”は、新規の暗号化キーへの切替タイミングまでの時間を示す情報が設定される。パラメータ“ＣＴ”は、一例として、０〜２５５までの値を採ることができる。ＣＴ値が“０”である場合、ＣＴ値を用いた切替を実施しないことを意味する。“１〜２５５”は切替タイミングまでの時間を示す値（タイマ値、又は指定ＣＴ値と呼ぶ）として使用される。
【００３７】
パラメータ“ＣＳＮ”は、新規の暗号化キーへの切替を行うシーケンス番号（切替シーケンス番号）を示す情報が設定される。例えば、ＥＳＰパケットで使用されるシーケンス番号の下位１６ビットが使用される。但し、シーケンス番号の使用範囲は適宜設定可能である。イニシエータはＥＳＰパケットのシーケンス番号を参照し、シーケンス番号がＣＳＮに合致する場合に新規の暗号化キーへの切替を行う。例えば、ＣＳＮと一致するシーケンス番号のＥＳＰパケットが検出されてから直近の切替タイミング（ＣＳＮ＋１のタイミング）で切替が行われる。但し、ピア間で切替タイミングが一致するように動作する限り、直近の切替タイミングより後の切替タイミングで切替が行われることもあり得る。
【００３８】
パラメータ“ＣＳＮ”は、一例として、０〜６５５３５までの値を採ることができる。
ＣＴ値が“０”である場合、ＣＳＮ値を用いた切替を実施しないことを意味する。“１〜６５５３５”は指定された切替シーケンス番号を示す。
【００３９】
上述したパラメータ“ＣＴ”及びパラメータ“ＣＳＮ”は、通信システムの運用に応じて、これらのいずれか一方、又は双方を使用することができる（使用しないパラメータの値は“０”に設定される）。
【００４０】
＜＜動作例１＞＞
図６は、実施形態における動作例１を示すシーケンス図である。動作例１はＣＳＮに基づいて切替タイミングが制御される例を示す。図６において、通信装置Ａと通信装置Ｂとの間には、ＩＰｓｅｃに係るＩＫＥ＿ＳＡ及びＣＨＩＬＤ＿ＳＡが確立されている。通信装置Ｂは通信装置ＡへＣＨＩＬＤ＿ＳＡを用いてＥＳＰパケットを送信する。図６中の“ＳＮ＝ｘ（ｘは正の整数）”はＥＳＰパケットに設定されたシーケンス番号を示す。
【００４１】
通信装置Ａ及び通信装置Ｂは、ＥＳＰパケットの暗号化及び復号に、ＩＫＥ＿ＳＡを用いて両者間で共有された暗号化キー“Ｘ”を用いる。通信装置Ａにおいて、ライフタイムの満了等、リキーの契機（トリガ）が発生すると、通信装置Ａ（イニシエータ）は、リキー要求のメッセージを通信装置Ｂへ送信する（図６＜１＞）。
【００４２】
リキー要求を受信した通信装置Ｂ（レスポンダ）は、リキー要求に応じて新規の暗号化キー（例えば“Ｙ”）を生成する。通信装置Ｂは、新規の暗号化キー“Ｙ”を含むリキー要求の応答メッセージを生成する（図６＜２＞）。このとき、通信装置Ｂは、切替タイミングとなるシーケンス番号（切替シーケンス番号（ＣＳＮ＝２４））を応答メッセージに設定する（図６＜３＞）。なお、動作例１では、パラメータ“ＣＮ”は用いないので、その値は０に設定される。
【００４３】
新規の暗号化キー“Ｙ”及びタイミング情報（切替シーケンス番号（ＣＳＮ＝２４））を含む応答メッセージは通信装置Ａへ送信される（図６＜４＞）。応答メッセージを受信した通信装置Ａは、新規の暗号化キー“Ｙ”への更新処理を行うとともに、通信装置ＢからＳＮ＝２４を有するＥＳＰバケットの到着を待つ（図６＜５＞）。通信装置ＡはＳＮ＝２４のＥＳＰパケットを受信した場合に、例えば受信から直近に到来する切替タイミングにおいてＥＳＰパケットの暗号化及び復号に用いる暗号化キーを“Ｙ”に切り替える（変更する）（図６＜６＞）。
【００４４】
なお、通信装置Ｂでは、ＳＮ＝２４のＥＳＰパケットを送信してから所定時間経過後に暗号化キー“Ｙ”への切り替えを行う。所定時間はＳＮ＝２４のＥＳＰパケットが送信されてから通信装置Ａに受信されるまでの時間を考慮して決定される。このようにして、通信装置Ａと通信装置Ｂとが一致したタイミングで暗号化キー“Ｙ”への切り替えを実施する。
【００４５】
＜＜動作例２＞＞
図７は、実施形態における動作例２を示すシーケンス図である。動作例２はＣＴ及びＣＳＮを使用し、ＣＳＮに基づいて切替タイミングが制御される例を示す。図７において、通信装置Ｂが新規の暗号化キー“Ｙ”を含むリキー要求の応答メッセージを生成するまでの動作は動作例１（図６）と同じであるので説明を省略する（図７＜１＞、＜２＞）。
【００４６】
動作例２では、通信装置Ｂは、切替タイミングを示すシーケンス番号（切替シーケンス番号（ＣＳＮ＝２４））と、指定ＣＴ値を示すパラメータ“ＣＴ”の値（ＣＴ＝５）を応答メッセージに設定する（図７＜３＞）。
【００４７】
通信装置Ｂは、新規の暗号化キー“Ｙ”及びタイミング情報（ＣＴ＝５，ＣＳＮ＝２４）を含む応答メッセージを通信装置Ａへ送信する（図７＜４＞）。通信装置Ｂは、ＣＴ＝５に基づく時間長のタイマを設定する（図７＜４Ａ＞）。
【００４８】
応答メッセージを受信した通信装置Ａは、新規の暗号化キー“Ｙ”への更新処理を行うとともに、通信装置ＢからＳＮ＝２４を有するＥＳＰバケットの到着を待つ（図７＜５＞）。また、通信装置Ａは、ＣＴ＝５に基づく時間長のタイマを設定する（図７＜５Ａ＞）。
【００４９】
図７に示す例では、通信装置Ａにて待ち受けるＳＮ＝２４のＥＳＰパケットが到着しないまま、ＣＴ＝５に基づき設定したタイマが満了する。すると、通信装置ＡはＥＳＰパケットの暗号化及び復号に用いる暗号化キーを“Ｙ”に切り替える（変更する）（図７＜６＞）。
【００５０】
通信装置Ｂは、ＣＴ＝５に基づき設定したタイマの満了を以て暗号化キー“Ｙ”への切替を行う。このようにして、動作例２でも通信装置Ａと通信装置Ｂとが一致したタイミングで暗号化キー“Ｙ”への切替が実施される。
【００５１】
ＣＴ値により指定される時間長（タイマ値）は、例えば、通信装置Ｂから通信装置Ａへの応答メッセージの伝送遅延や通信装置Ａでの暗号化キーの更新準備（切替までの処理）に要する時間を考慮し、準備の完了後にタイマが満了するように設定される。
【００５２】
なお、動作例２に関して、通信装置Ａがタイマ満了前に切替シーケンス番号（ＳＮ＝２４）のＥＳＰパケットを受信した場合には、その受信を契機に暗号化キー“Ｙ”への切替を行う。一方、通信装置Ｂも、切替シーケンス番号（ＳＮ＝２４）のＥＳＰパケットの送信を契機に、暗号化キー“Ｙ”への切替を行う。
【００５３】
＜＜動作例３＞＞
図８は、実施形態における動作例３を示すシーケンス図である。動作例３はＣＴに基づいて切替タイミングが制御される例を示す。図８に示す動作は、以下の点で動作例２と異なる。
【００５４】
通信装置Ｂは、応答メッセージに対し、ＣＳＮ＝０と、指定ＣＴ値を示すパラメータ“ＣＴ”の値（ＣＴ＝５）を設定する（図８＜３＞）。また、応答メッセージを受信した通信装置Ａは、新規の暗号化キー“Ｙ”への更新処理を行うとともに、ＣＴ＝５に基づく時間長のタイマを設定する（図７＜５Ａ＞）。動作例３では、切替シーケンス番号を有するＥＳＰパケットの待ち受けは行われない。
【００５５】
上記を除き、動作例３の動作は動作例２と同じであるので説明を省略する。このようにして、動作例３でも通信装置Ａと通信装置Ｂとが一致したタイミングで暗号化キー“Ｙ”への切替が実施される。動作例１〜３では、通信装置Ａが暗号化キー“Ｙ”で暗号化された通信装置ＢからのＥＳＰパケットを復号でき、参考例で示したようなパケットの破棄は起こらない。
【００５６】
＜通信装置における処理＞
次に、通信装置Ａ及び通信装置Ｂにおける処理について説明する。以下に説明する処理は、例えば、通信装置Ａや通信装置Ｂとして動作する通信装置１０のＣＰＵ１１によって実行される。
【００５７】
＜イニシエータ側の処理＞
図９，図１０，及び図１１は通信装置Ａのイニシエータ処理の例を示すフローチャートである。００１の処理では、ＣＰＵ１１は、パケット（ＥＳＰパケット）が受信されたか否かを判定する。ＥＳＰパケットが受信されたと判定される場合には処理が０１２（図１０）に進み、そうでないと判定される場合には処理が００２に進む。
【００５８】
００２の処理では、ＣＰＵ１１はＣＴ値に基づくタイマが満了（タイムアウト）したか否かを判定する。タイマが満了したと判定される場合には処理が０１５（図１１）に進み、そうでないと判定される場合には処理が００３に進む。
【００５９】
００３の処理では、ＣＰＵ１１はリキーの契機（トリガ：例えばＣＨＩＬＤ＿ＳＡのライフタイムの満了）が発生したか否かを判定する。リキーの契機が発生したと判定される場合には処理が００４に進み、そうでないと判定される場合には、処理が００１に戻る。なお、００１〜００３の処理の順序は適宜変更可能である。
【００６０】
００４の処理では。ＣＰＵ１１は、リキーを実施する。すなわち、ＣＰＵ１１はリキー要求のメッセージを生成し、対向装置（レスポンダ）へ送信する。００５では、ＣＰＵ１１はリキー要求の応答メッセージの受信を待ち、応答メッセージが受信されると、処理を００６へ進める。
【００６１】
００６の処理では、応答メッセージに含まれる新規の（更新後の）暗号化キーを取得し、暗号化キーの更新（切替）の処理を行う。但し、新規の暗号化キーが有効にされるタイミングは、ＣＮやＣＳＮを用いた切替タイミングで行う。
【００６２】
００６において、ＣＰＵ１１は応答メッセージに含まれるＣＴ及びＣＳＮの各パラメータを取得（確認）する。００７の処理では、現在のモードがＣＴモード、ＣＴ及びＣＳＮモード、ＣＳＮモードのいずれであるかを判定する。
【００６３】
ＣＴモードはＣＴ及びＣＳＮのうちのＣＴのみを用いて切替タイミングを制御するモードである（動作例１に対応）。ＣＴ及びＣＳＮモードはＣＴ及びＣＳＮを用いて切替タイミングを制御するモードである（動作例２に対応）。ＣＳＮモードはＣＴ及びＣＳＮのうちのＣＳＮのみを用いて切替タイミングを制御するモードである（動作例３に対応）。
【００６４】
現在のモードがＣＴモードであると判定される場合には処理が００８に進み、ＣＴ及びＣＳＮモードであると判定される場合には処理が００９に進み、ＣＳＮモードであると判定される場合には処理が０１１に進む。
【００６５】
００８の処理では、ＣＰＵ１１はＣＴ値に基づく時間を計時するタイマを起動する。その後、処理が００１に戻る。００９の処理では、ＣＰＵ１１はＣＴ値に基づく時間を計時するタイマを起動する。
【００６６】
また、ＣＰＵ１１は、ＣＳＮ値（切替シーケンス番号）を切替タイミングのシーケンス番号、すなわち暗号化キーを新規の暗号化キーに変更するシーケンス番号に設定する（０１０）。その後、処理が００１に戻る。
【００６７】
０１１の処理では、ＣＰＵ１１はＣＳＮ値（切替シーケンス番号）を切替タイミングのシーケンス番号に設定する（０１０と同じ処理である）。その後、ＣＰＵ１１は処理を００１に戻す。
【００６８】
０１２の処理では、ＣＰＵ１１はＥＳＰパケットの受信処理を行う。このとき、ＣＰＵ１１は、ＥＳＰパケットのシーケンス番号が０１０や０１１で設定したＣＳＮ値（切替タ
イミングのシーケンス番号）に到達しているかを判定する（０１３）。シーケンス番号がＣＳＮ値に到達していると判定する場合には、ＣＰＵ１１は新規の暗号化キーをシステムに設定する（０１４）。これによって、ＥＳＰパケットの暗号化及び復号に適用される暗号化キーが新規の暗号化キーに変更される。その後、処理は００１に戻る。
【００６９】
処理が０１５に進んだ場合、ＣＰＵ１１は００８や００９で設定したＣＴ値に基づくタイマ値の満了（タイムアウト）を検出すると、新規の暗号化キーへの切替（変更）を行い、処理を００１に戻す。
【００７０】
＜レスポンダ側の処理＞
図１２は通信装置Ｂのレスポンダ処理の例を示すフローチャートである。０２１において、ＣＰＵ１１はリキー要求のメッセージが受信されたか否かを判定する。リキー要求が受信されたと判定される場合には処理が０２２に進み、そうでないと判定される場合には処理が０２１に戻る。
【００７１】
０２２の処理では、ＣＰＵ１１はリキー要求に応じて新規の暗号化キーを生成する。また、ＣＰＵ１１は新規の暗号化キーを含むリキー要求の応答メッセージを生成する。０２３の処理では、ＣＰＵ１１は現在のモードがＣＴモード、ＣＴ及びＣＳＮモード、ＣＳＮモードのいずれであるかを判定する。現在のモードがＣＴモードであると判定される場合には処理が０２４に進み、ＣＴ及びＣＳＮモードであると判定される場合には処理が０２６に進み、ＣＳＮモードであると判定される場合には処理が０２９に進む。
【００７２】
０２４の処理では、ＣＰＵ１１は指定ＣＴ値を算出し、応答メッセージに設定する。０２５の処理ではＣＰＵ１１は指定ＣＴ値に基づくタイマを起動する。その後、ＣＰＵ１１は０２８にて応答メッセージをイニシエータ（通信装置Ａ）へ送信する。０２８の後、処理は０２１に戻る。
【００７３】
０２６の処理では、ＣＰＵ１１は指定ＣＴ値及び指定ＣＳＮ（切替シーケンス番号）を算出し、応答メッセージに設定する。０２７の処理ではＣＰＵ１１は指定ＣＴ値に基づくタイマを起動する。その後、ＣＰＵ１１は０２８に処理を進め、応答メッセージの送信処理を行う。０２９の処理では、ＣＰＵ１１は指定ＣＳＮを算出して応答メッセージに設定する。その後、処理が０２８に進む。
【００７４】
＜＜通信装置Ｂ（レスポンダ）におけるパケット送信処理＞＞
図１３は、通信装置Ｂにおけるパケット送信処理の例を示すフローチャートである。０３１の処理において、ＣＰＵ１１はパケット生成処理を行い、パケット（ＥＳＰパケット）を生成する。
【００７５】
０３２の処理において、ＣＰＵ１１はＣＴ値に基づくタイマが満了したかを判定する。タイマが満了したと判定される場合には処理が０３４に進み、そうでないと判定される場合には処理が０３３に進む。
【００７６】
０３３の処理では、ＣＰＵ１１は送信対象のＥＳＰパケットに設定されたシーケンス場号が指定ＣＳＮ値に合致するものかを判定する。このとき、シーケンス場号が指定ＣＳＮ値に合致すると判定される場合には処理が０３４に進み、そうでないと判定される場合には処理が０３５に進む。
【００７７】
０３４の処理では、ＣＰＵ１１は新規の暗号化キーでのパケットの暗号化を開始する。すなわち、暗号化キーが新規の暗号化キーに切り替えられる。０３５ではＣＰＵ１１は暗号化されたパケットの処理を行う。その後、処理が０３１に戻る。
【００７８】
＜＜ＣＴ値の算出＞＞
図１４は、ＣＴ値の算出処理の一例を示すフローチャートである。図１４に示す処理は、イニシエータ（通信装置Ａ）にて行われる。リキー要求の送信契機を検出した場合、リキー要求の応答メッセージの受信を検出した場合、暗号化キーの更新契機を検出した場合に開始される。
【００７９】
リキー要求の送信契機が検出された場合、０７２の処理が行われる。０７２では、ＣＰＵ１１はリキー要求の送信時刻を収集（取得）する。応答メッセージの受信が検出された場合、０７３，０７４及び０７５の処理が行われる。０７３では、ＣＰＵ１１は応答メッセージの受信時刻を収集（取得）する。
【００８０】
０７４では、ＣＰＵ１１は対向装置のリキー処理時間を算出する。対向装置のリキー差処理時間は、リキー要求の送信時刻と応答メッセージの受信時刻との差分を算出することによって求められる。０７５では、ＣＰＵ１１は切替タイミングのタイマ値（ＣＴ値）の更新処理を行う。
【００８１】
図１５は、切替タイミング（タイマ値）テーブル（テーブルＴ１）のデータ構造例を示す。テーブルＴ３は、対向装置のリキー処理時間と、暗号化キー更新処理時間と、切替タイミングのタイマ値とを記憶する。テーブルＴ３はメモリ１２上に作成される。タイマ値（ＣＴ値）は、対向装置のリキー処理時間と暗号化キー更新処理時間との和である。但し、タイマちとして、対向装置のリキー処理時間と暗号化キー更新処理時間との和より長い時間を適用しても良い。
【００８２】
０７４では、ＣＰＵ１１は０７４で算出された対向装置リキー処理時間をテーブルＴ１に記憶（上書き）する。０７５では、ＣＰＵ１１は対向装置リキー処理時間とテーブルＴ３に記憶されている暗号化キー更新処理時間とを加算してタイマ値の更新値を求め、テーブルＴ３に記憶する。
【００８３】
暗号化キーの更新契機を検出した場合には、０７６及び０７７の処理が実行される。０７６において、ＣＰＵ１１は、例えば、応答メッセージに基づく新規の暗号化キーへの更新処理の所要時間を計測し、テーブルＴ１に記憶（上書き）する。０７７では、ＣＰＵ１１は暗号化キー更新処理時間とテーブルＴ１に記憶されている対向装置リキー処理時間とを加算してタイマ値の更新値を求め、テーブルＴ１に記憶（上書き）する。
【００８４】
ＣＰＵ１１は切替タイミングのタイマ値（ＣＴ値）をリキー要求に含めてレスポンダ（通信装置Ｂ）に伝達（通知）する。但し、リキー要求以外のメッセージを用いて伝達されても良い。レスポンダでは、動作例２や動作例３で説明したように、ＣＴ値に基づくタイマを設定する。この結果、シーケンス番号による切替が生じない場合には、タイマの満了前では更新前の暗号化キーが使用され、満了後は新規の暗号化キーが使用される。なお、タイマ値は、実験や経験則等に基づいて求められた値が静的にテーブルＴ１に記憶され、個固定的に使用されても良い。
【００８５】
＜＜ＣＳＮ値の算出＞＞
次に、ＣＳＮ値の算出例について説明する。ＣＳＮ値は、例えば、以下のようにして算出される。ＩＰｓｅｃ通信中のパケット（ＥＳＰパケット）の送受信をモニタリング、或いは、パケット送受信のログ（通信記録）を参照し、単位時間内に送受信されるパケット数（実測値でも推定値でも良い）を算出する。そして、応答メッセージの送信時におけるシーケンス番号（現シーケンス番号）に上記したパケット数を加えたシーケンス番号をＣＳＮ値として生成する。換言すれば、ＣＰＵ１１はパケットの送受信状況に基づく切替シ
ーケンス番号を生成する。
【００８６】
ＣＳＮ値は、例えばレスポンダ（通信装置Ｂ）からイニシエータ（通信装置Ａ）へ送信される単位時間あたりのパケット数に基づいて算出することができる（第１の算出方法）。また、ＣＳＮ値はレスポンダ（通信装置Ｂ）がイニシエータ（通信装置Ａ）から受信する単位時間あたりのパケット数に基づいて算出することもできる（第２の算出方法）。動作例１〜３は、第１の算出方法で算出されたＣＳＮを用いる場合を例示している。
【００８７】
単位時間当たりのパケット数は、単位時間毎のパケットの送信数や受信数を計数した統計情報に基づき算出できる。或いは、パケットの送信間隔や受信間隔を用いて、単位時間当たりの送信数や受信数を推定することもできる。単位時間は、例えば、切替タイミングのタイマ値（ＣＴ値）の時間長を適用できる。但し、タイマ値以外の時間長を適用することもできる。
【００８８】
図１６は、レスポンダで実行されるＩＰｓｅｃ送信処理の例を示すフローチャートである。図１６の処理は第１の算出方法のために実行される。０４１において、ＣＰＵ１１は、ＩＰｓｅｃパケット（ＥＳＰパケット）の送信処理を行う。
【００８９】
０４２では、ＣＰＵ１１は０４１で送信したパケットの送信時刻を収集する。０４３では、ＣＰＵ１１は０４１で送信したパケットの送信時刻と、前回送信したパケットの送信時刻とを用いて、送信間隔の時間長を算出する。０４４では、ＣＰＵ１１は単位時間の送信カウンタを更新する。
【００９０】
図１７は、レスポンダで実行されるＩＰｓｅｃ受信処理の例を示すフローチャートである。図１７の処理は第２の算出方法のために実行される。０５１において、ＣＰＵ１１は、ＩＰｓｅｃパケット（ＥＳＰパケット）の受信処理を行う。０５２では、ＣＰＵ１１は０５１で受信したパケットの受信時刻を収集する。０５３では、ＣＰＵ１１は０５１で受信したパケットの受信時刻と、前回受信したパケットの受信時刻とを用いて、受信間隔の時間長を算出する。０５４では、ＣＰＵ１１は単位時間の受信カウンタを更新する。
【００９１】
図１８はＩＰｓｅｃパケット統計情報テーブル（テーブルＴ２）のデータ構造例を示す。図１８に示す例では、現在から１時間遡った範囲におけるパケットの送信数及びパケットの受信数がテーブルＴ２に記憶される。テーブルＴ２は１分毎のパケットの送信数及びパケットの受信数を記憶するフォーマットを有する。図１８の例は最小の時間単位を１分としているが、最小の時間単位は１分より長い時間でも短い時間でも良い。
【００９２】
単位時間の送信カウンタ及び単位時間の受信カウンタはメモリ１２上にある。テーブルＴ２から単位時間分の送信カウンタ値が抽出されて合計された値が単位時間の送信カウンタとして扱われる。同様に、テーブルＴ２から単位時間分の受信カウンタ値が抽出されて合計された値が単位時間の受信カウンタとして扱われる。図１８の例では、単位時間の変動に対応できるよう、単位時間より短い或いは最小の時間単位毎のカウンタ値が記憶される構成を採用しているが、単位時間毎のカウンタ値が記憶される構成が採用されても良い。
【００９３】
０４４の処理において、ＣＰＵ１１は該当の時刻（単位時間）における送信カウンタの値をインクリメントするとともに、単位時間の送信カウンタの値をインクリメントする。また、０５４の処理においてＣＰＵ１１は該当の時刻（単位時間）における受信カウンタの値をインクリメントするとともに、単位時間の受信カウンタの値をインクリメントする。
【００９４】
図１９は、ＩＰｓｅｃパケット送受信時間テーブル（テーブルＴ３）のデータ構造例を示す。テーブルＴ３には、送信時刻、受信時刻、送信間隔、受信間隔、切替シーケンス番号が記憶される。送信時刻は最後に送信されたパケットの送信時刻を示し、受信時刻は最後に受信されたパケットの受信時刻を示す。
【００９５】
ＣＰＵ１１は、０４２で新たに送信時刻が収集された場合に、テーブルＴ３に記憶された送信時刻と新たな送信時刻との差分を送信間隔として算出し（０４３）、テーブルＴ３に格納する。また、ＣＰＵ１１は、０５２で新たに受信時刻が収集された場合に、テーブルＴ３に記憶された受信時刻と新たな受信時刻との差分を受信間隔として算出し（０５３）、テーブルＴ３に格納する。
【００９６】
テーブルＴ２及びテーブルＴ３はメモリ１２上に形成される。なお、図１８及び図１９に示す例は、第１の算出方法及び第２の算出方法の双方に適用可能なデータ構造例である。但し、第１の算出方法及び第２の算出方法のいずれか一方が実行される場合には、実行されない算出方法に係る情報が記憶されないデータ構造を採用し得る。
【００９７】
図２０は、シーケンス番号算出処理の例を示すフローチャートである。図２０に示す処理は、例えば０２６及び０２９の処理において実行される。但し、図２０に示す処理は、０２６及び０２９における設定処理の前に行われていれば良い。
【００９８】
０６１の処理において、ＣＰＵ１１は切替タイミング（タイマ値）テーブル（テーブルＴ３：図１５）から切替タイミングのタイマ値を読み出す。０６２の処理において、ＣＰＵ１１はＣＳＮ（切替シーケンス番号）を統計情報から算出するかパケット送信間隔（又はパケット受信間隔）から算出するかを判定する。ＣＳＮ（切替シーケンス番号）を統計情報から算出すると判定される場合には処理が０６３に進み、パケット送信間隔（又はパケット受信間隔）から算出すると判定される場合には処理が０６４に進む。
【００９９】
０６３の処理において第１の算出方法が適用される場合、ＣＰＵ１１はＩＰｓｅｃパケット統計情報テーブル（テーブルＴ２：図１８）の送信カウンタから直近の単位時間（タイマ値の時間長）における送信パケット数を算出する。これに対し、０６３の処理において第２の算出方法が適用される場合、ＣＰＵ１１はテーブルＴ２の受信カウンタから直近の単位時間（タイマ値の時間長）における受信パケット数を算出する。
【０１００】
０６４の処理において第１の算出方法が適用される場合、ＣＰＵ１１はＩＰｓｅｃパケット送受信時間テーブル（テーブルＴ３：図１９）の送信間隔を用いて単位時間あたりの送信パケット数（パケットの送信数）を算出する。これに対し、０６４の処理において第２の算出方法が適用される場合、ＣＰＵ１１はテーブルＴ３の受信間隔を用いて単位時間当たりの受信パケット数（パケットの受信数）を算出する。
【０１０１】
０６５の処理では、ＣＰＵ１１は０６３又は０６５で得られたパケットの送信数又は受信数を、最後の送信パケット又は受信パケットのシーケンス番号に加算したシーケンス番号を切替シーケンス番号としてテーブルＴ２に記憶する。テーブルＴ２に記憶された切替シーケンス番号が０２６及び０２９の処理にてＣＳＮとして設定される。
【０１０２】
第１の算出方法が使用される場合、レスポンダはＣＳＮに一致するシーケンス番号のＥＳＰパケットをイニシエータへ送信したことを契機に新規の暗号化キーへの変更（切替）を行う。イニシエータはＣＳＮに一致するシーケンス番号のＥＳＰパケットをレスポンダへ送信したことを契機に新規の暗号化キーへの変更（切替）を行う。すなわち、処理部の一例であるＣＰＵ１１は、ＣＳＮ（指定情報の一例）に合致するシーケンス番号を有するパケットのレスポンダ（対向装置）からの受信を契機に新規の暗号化キーへの変更を行う
。
【０１０３】
第２の算出方法が使用される場合、レスポンダはＣＳＮに一致するシーケンス番号のＥＳＰパケットをイニシエータから受信したことを契機に新規の暗号化キーへの変更（切替）を行う。一方、イニシエータはＣＳＮに一致するシーケンス番号のＥＳＰパケットをレスポンダへ送信したことを契機に新規の暗号化キーへの変更（切替）を行う。すなわち、処理部の一例であるイニシエータのＣＰＵ１１は、ＣＳＮ（指定情報の一例）に合致するシーケンス番号を有するパケットのレスポンダ（対向装置）への送信を契機に新規の暗号化キーへの変更を行う。
【０１０４】
第１の算出方法と第２の算出方法とは選択的に使用し得る。また、テーブルＴ２の統計情報を用いたパケットの送信数又は受信数の算出と、テーブルＴ３の送受信の間隔を用いたパケットの送信数又は受信数の算出とは選択的に行い得る。使用されない算出方法に係る構成は省略可能である。
【０１０５】
実施形態によると、通信システムは、通信装置Ａと、通信装置Ａと暗号化キーで暗号化されたパケットを双方向で送受信する通信装置Ｂとを含む。通信装置Ａは通信装置Ｂの対向装置であり、通信装置Ｂは通信装置Ａの対向装置である。
【０１０６】
通信装置Ａ（として動作する通信装置１０）の通信ＩＦ１５は、暗号化キーの更新要求メッセージ（リキー要求）を送信する送信部として動作する。また、通信ＩＦ１５は、新規の暗号化キーと新規の暗号化キーへの変更のタイミングを示すタイミング情報とを通信装置Ｂ（対向装置）から受信する受信部として動作する。通信装置Ａ（として動作する通信装置１０）のＣＰＵ１１は、タイミング情報に基づくタイミングでパケットの暗号化に使用する暗号化キーを新規の暗号化キーに変更する処理部として動作する。
【０１０７】
一方、通信装置Ｂ（として動作する通信装置１０）の通信ＩＦ１５は暗号化キーの更新要求メッセージ（リキー要求）を受信する受信部として動作する。また、通信ＩＦ１５は、新規の暗号化キーと、新規の暗号化キーへの変更のタイミングを示すタイミング情報とを通信装置Ａ（対向装置）へ送信する送信部として動作する。通信装置Ｂ（として動作する通信装置１０）のＣＰＵ１１は、更新要求メッセージに応じて新規の暗号化キーを生成する生成部と、タイミング情報に基づくタイミングでパケットの暗号化に使用する暗号化キーを新規の暗号化キーに変更する処理部として動作する。
【０１０８】
これによって、動作例１〜３に示したように、タイミング情報（ＣＴ及びＣＳＮの少なくとも一方）に基づくタイミングで、通信装置Ａ及び通信装置Ｂにおける新規の暗号化キーへの変更が行われる。よって、通信装置Ａにおける新規の暗号化キーへの変更前に、新規の暗号化鍵を用いて暗号化されたパケットが受信されるのを回避できるので、パケットの破棄が起こるのを回避することができる。
【０１０９】
タイマ値（ＣＴ）と切替シーケンス番号（ＣＳＮ）の一方を用いることで、ピア間における新規の暗号化キーへの変更のタイミングを一致させることができる。また、ＣＴとＣＳＮを併用することでＣＳＮで特定されるシーケンス番号のパケットが送受信されない場合でも、ＣＴのタイマ値の満了を契機に新規の暗号化キーへの変更を行うことができる。
【０１１０】
また、実施形態では、イニシエータにおける対向装置リキー処理時間と暗号化キー更新処理時間とに基づき算出したタイマ値をＣＴに適用する。このため、レスポンダから新規の暗号化キーを用いて暗号化されたパケットがイニシエータに到着した時点で、新規の暗号化キーへの変更が完了している可能性を高めることができる。
【０１１１】
なお、実施形態では、暗号化パケット通信がＩＰｓｅｃである例について説明した。但し、対向する装置（ピア）間で暗号化キーを共有し、ピア間で双方向の暗号化パケット（暗号化キーで暗号化されたパケット）を送受信する、ＩＰｓｅｃ以外のプロトコルを用いる通信システムにも適用可能である。実施形態にて説明した構成は例示であり、適宜組み合わせることができる。
【０１１２】
上記した実施の形態は、以下の付記を開示する。付記は適宜組み合わせることができる。
（付記１）  暗号化キーで暗号化されたパケットを対向装置と双方向で送受信する通信装置において、
暗号化キーの更新要求メッセージを送信する送信部と、
新規の暗号化キーと、前記通信装置及び前記対向装置における前記新規の暗号化キーへの変更のタイミングを示すタイミング情報とを前記対向装置から受信する受信部と、
前記タイミング情報に基づくタイミングでパケットの暗号化に使用する暗号化キーを前記新規の暗号化キーに変更する処理部と
を含む通信装置。
【０１１３】
（付記２）  前記タイミング情報は、前記処理部が設定するタイマ値を含み、
前記処理部は、前記タイマ値の満了を契機に前記新規の暗号化キーへの変更を行う
付記１に記載の通信装置。
【０１１４】
（付記３）  前記タイミング情報は、前記対向装置が前記通信装置へ送信するパケットのシーケンス番号の指定情報を含み、
前記処理部は、前記指定情報に合致するシーケンス番号を有するパケットの前記対向装置からの受信を契機に前記新規の暗号化キーへの変更を行う
付記１又は２に記載の通信装置。
【０１１５】
（付記４）  前記タイミング情報は、前記通信装置が前記対向装置へ送信するパケットのシーケンス番号の指定情報を含み、
前記処理部は、前記指定情報に合致するシーケンス番号を有するパケットの前記対向装置への送信を契機に前記新規の暗号化キーへの変更を行う
付記１から３のいずれか１項に記載の通信装置。
【０１１６】
（付記５）  前記処理部は、前記通信装置における前記更新要求メッセージの送信から前記新規の暗号化キーの受信までの時間と前記通信装置における前記新規の暗号化キーへの更新処理の所要時間とに基づくタイマ値を算出し前記対向装置へ送信する
付記２から４のいずれか１項に記載の通信装置。
【０１１７】
（付記６）  暗号化キーで暗号化されたパケットを対向装置と双方向で送受信する通信装置において、
暗号化キーの更新要求メッセージを受信する受信部と、
前記更新要求メッセージに応じて新規の暗号化キーを生成する生成部と、
前記新規の暗号化キーと、前記通信装置及び前記対向装置における前記新規の暗号化キーへの変更のタイミングを示すタイミング情報とを前記対向装置へ送信する送信部と、
前記タイミング情報に基づくタイミングでパケットの暗号化に使用する暗号化キーを前記新規の暗号化キーに変更する処理部と
を含む通信装置。
【０１１８】
（付記７）  前記タイミング情報は、前記処理部が設定するタイマ値を含み、
前記処理部は、前記タイマ値の満了を契機に前記新規の暗号化キーへの変更を行う
付記６に記載の通信装置。
【０１１９】
（付記８）  前記タイミング情報は、前記通信装置が前記対向装置へ送信するパケットのシーケンス番号の指定情報を含み、
前記処理部は、前記指定情報に合致するシーケンス番号を有するパケットの前記対向装置への送信を契機に前記新規の暗号化キーへの変更を行う
付記６又は７に記載の通信装置。
【０１２０】
（付記９）  前記タイミング情報は、前記通信装置が前記対向装置へ送信するパケットのシーケンス番号の指定情報を含み、
前記処理部は、前記指定情報に合致するシーケンス番号を有するパケットの前記対向装置からの受信を契機に前記新規の暗号化キーへの変更を行う
付記６から８のいずれか１項に記載の通信装置。
【０１２１】
（付記１０）  前記対向装置における前記更新要求メッセージの送信から前記新規の暗号化キーの受信までの時間と前記対向装置における前記新規の暗号化キーへの更新処理の所要時間とに基づいて算出されたタイマ値を前記処理部は前記タイマ値として用いる
付記６から９のいずれか１項に記載の通信装置。
【０１２２】
（付記１１）  通信装置と、
前記通信装置と暗号化キーで暗号化されたパケットを双方向で送受信する対向装置とを含み、
前記通信装置は、
暗号化キーの更新要求メッセージを送信する第１送信部と、
新規の暗号化キーと、前記通信装置及び前記対向装置における前記新規の暗号化キーへの変更のタイミングを示すタイミング情報とを前記対向装置から受信する第１受信部と、
前記新規の暗号化キーへの更新処理を行うとともに前記タイミング情報に基づくタイミングで暗号化に使用する暗号化キーを前記新規の暗号化キーに変更する処理部と
を含み、
前記対向装置は、
前記更新要求メッセージを受信する第２受信部と、
前記更新要求メッセージに応じて新規の暗号化キーを生成する生成部と、
前記新規の暗号化キーと、前記新規の暗号化キーへの変更のタイミングを示すタイミング情報とを前記通信装置へ送信する第２送信部と、
前記タイミング情報に基づくタイミングで暗号化に使用する暗号化キーを前記新規の暗号化キーに変更する処理部と
を含む
通信システム。
【０１２３】
（付記１２）  暗号化キーで暗号化されたパケットを対向装置と双方向で送受信する通信装置が、
暗号化キーの更新要求メッセージを送信し、
新規の暗号化キーと、前記通信装置及び前記対向装置における前記新規の暗号化キーへの変更のタイミングを示すタイミング情報とを前記対向装置から受信し、
前記タイミング情報に基づくタイミングで暗号化に使用する暗号化キーを前記新規の暗号化キーに変更する
ことを含む暗号化通信制御方法。
【０１２４】
（付記１３）  暗号化キーで暗号化されたパケットを対向装置と双方向で送受信する通信装置が、
暗号化キーの更新要求メッセージを受信し、
前記更新要求メッセージに応じて新規の暗号化キーを生成し、
前記新規の暗号化キーと、前記新規の暗号化キーへの変更のタイミングを示すタイミング情報とを前記対向装置へ送信し、
前記タイミング情報に基づくタイミングでパケットの暗号化に使用する暗号化キーを前記新規の暗号化キーに変更する
ことを含む暗号化通信制御方法。
【符号の説明】
【０１２５】
Ａ，Ｂ，１０・・・通信装置（対向装置）
１１・・・ＣＰＵ
１２・・・メモリ
１５・・・通信インタフェース
【図１】
2018182665.tif 000003
【図２】
2018182665.tif 000004
【図３】
2018182665.tif 000005
【図４】
2018182665.tif 000006
【図５】
2018182665.tif 000007
【図６】
2018182665.tif 000008
【図７】
2018182665.tif 000009
【図８】
2018182665.tif 000010
【図９】
2018182665.tif 000011
【図１０】
2018182665.tif 000012
【図１１】
2018182665.tif 000013
【図１２】
2018182665.tif 000014
【図１３】
2018182665.tif 000015
【図１４】
2018182665.tif 000016
【図１５】
2018182665.tif 000017
【図１６】
2018182665.tif 000018
【図１７】
2018182665.tif 000019
【図１８】
2018182665.tif 000020
【図１９】
2018182665.tif 000021
【図２０】
2018182665.tif 000022