(57)【要約】【課題】パケットの送信時間を短縮する通信装置を提供する。【解決手段】パケットを送受信する通信装置であって、連続するシーケンス番号を有する異なるシーケンス番号群をそれぞれ対応づけられ、パケットに割り当てたシーケンス番号に基づき前記パケットに含まれる認証情報を生成する認証生成処理を並列で実行する複数の認証生成処理部と、前記複数の認証生成処理部の認証生成処理が完了した順に、前記割り当てたシーケンス番号を含むパケットを他の通信装置に送信する送信部と、前記他の通信装置からパケットを受信する受信部と、前記受信パケットのシーケンス番号の属するシーケンス番号群の、前記受信パケットより前に受信した先行受信パケットのシーケンス番号と、前記受信パケットのシーケンス番号との関係に基づいて前記受信パケットの認証を行う第１認証処理を実行する認証処理部とを有する。【選択図】  図１２
2017191965.tif 000002
【特許請求の範囲】
【請求項１】
パケットを送受信する通信装置であって、
連続するシーケンス番号を有する異なるシーケンス番号群をそれぞれ対応づけられ、パケットに割り当てたシーケンス番号に基づき前記パケットに含まれる認証情報を生成する認証生成処理を並列で実行する複数の認証生成処理部と、
前記複数の認証生成処理部の認証生成処理が完了した順に、前記割り当てたシーケンス番号を含むパケットを他の通信装置に送信する送信部と、
前記他の通信装置からパケットを受信する受信部と、
前記受信パケットのシーケンス番号の属するシーケンス番号群の、前記受信パケットより前に受信した先行受信パケットのシーケンス番号と、前記受信パケットのシーケンス番号との関係に基づいて前記受信パケットの認証を行う第１認証処理を実行する認証処理部とを有する
通信装置。
【請求項２】
前記関係は、前記先行受信パケットの最新のシーケンス番号と、前記受信パケットのシーケンス番号との差である
請求項１記載の通信装置。
【請求項３】
前記認証処理部は、前記差が第１閾値より小さい場合、前記受信パケットの前記第１認証処理を通過させる
請求項２記載の通信装置。
【請求項４】
前記認証生成処理は、前記送信パケットのデータを暗号化し、前記暗号化した暗号化データと前記割り当てたシーケンス番号に基づいて、前記認証情報を生成することを含み、
前記認証処理部は、前記受信パケットが前記第１認証処理を通過した場合、さらに、前記受信パケットの認証情報及びシーケンス番号に基づいて前記受信パケットの認証を行う第２認証処理を実行し、前記第２認証処理を通過した前記受信パケットの暗号化データを復号する復号処理を実行する
請求項１記載の通信装置。
【請求項５】
さらに、前記復号処理を並列で実行する複数の復号処理部を有し、
前記受信パケットの暗号化データの復号処理は、前記復号処理を実行中でないいずれかの復号処理部が実行する
請求項４記載の通信装置。
【請求項６】
さらに、前記復号処理を並列で実行する複数の復号処理部を有し、
前記受信パケットのシーケンス番号を有するシーケンス番号群を対応づけられた前記復号処理部が、前記受信パケットの暗号化データの復号処理を実行する
請求項４記載の通信装置。
【請求項７】
前記複数の認証生成処理部の少なくとも１つは、他の認証生成処理部とは異なるデータサイズが対応づけられ、
前記複数の認証生成処理部は、それぞれに対応づけられたデータサイズのパケットの前記認証生成処理を実行する
請求項４記載の通信装置。
【請求項８】
第１のデータサイズが対応づけられた認証生成処理部の数は、第１のデータサイズより大きい第２のデータサイズが対応づけられた認証生成処理部の数より多い
請求項７記載の通信装置。
【請求項９】
前記認証処理部は、さらに、前記差が前記第１閾値以上である場合であって、前記受信パケットのシーケンス番号の方が前記先行受信パケットの最新のシーケンス番号より、第１閾値より大きい第２閾値以上に大きい場合、前記受信パケットの属する第１のシーケンス番号群の最小のシーケンス番号から、前記受信パケットのシーケンス番号より小さいシーケンス番号までを有するシーケンス番号群を、第２のシーケンス番号群として、前記第１のシーケンス番号群より分離する
請求項３記載の通信装置。
【請求項１０】
前記他の通信装置に送信するパケットのデータが生成されたとき、前記認証生成処理を実行していないいずれかの認証生成処理部が、前記生成されたデータの認証生成処理を実行する
請求項１記載の通信装置。
【請求項１１】
通信装置におけるパケットを送受信するパケット送受信プログラムであって、
連続するシーケンス番号を有する異なるシーケンス番号群をそれぞれ対応づけられ、パケットに割り当てたシーケンス番号に基づき前記パケットに含まれる認証情報を生成する複数の認証生成処理を並列で実行し、
前記複数の認証生成処理が完了した順に、前記割り当てたシーケンス番号を含むパケットを他の通信装置に送信し、
前記他の通信装置からパケットを受信し、
前記受信パケットのシーケンス番号の属するシーケンス番号群の、前記受信パケットより前に受信した先行受信パケットのシーケンス番号と、前記受信パケットのシーケンス番号との関係に基づいて前記受信パケットの認証を行う第１認証処理を実行する処理を
コンピュータに実行させるパケット送受信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置及びパケット送受信プログラムに関する。
【背景技術】
【０００２】
近年、ＩＰｓｅｃ（Security Architecture for Internet Protocol）など、データ改竄防止や秘匿機能を有する通信プロトコルが注目されている。
【０００３】
ＩＰｓｅｃで通信を行う通信装置は、受信したパケットが不正なパケットでないかどうかの認証を行う。送信側の通信装置は、シーケンス番号順にパケットを送信する。一方、パケットを受信した通信装置は、送信側の通信装置がパケットに付与したパケットの送信順を示すシーケンス番号に基づいて認証を行う。すなわち、受信側の通信装置は、シーケンス番号に基づく認証において、例えば、受信した最新のシーケンス番号より基準値以上古いシーケンス番号のパケットを受信した場合、不正なパケットと判定し、受信したパケットを破棄する。
【０００４】
また、送信側の通信装置は、シーケンス番号及び暗号化したデータに基づいて認証情報を生成し、認証情報をパケットに含めて送信する。受信側の通信装置は、受信したパケット内のシーケンス番号及び暗号化したデータに基づいて認証情報を生成し、受信したパケット内の認証情報と一致するかどうかを判定する。
【０００５】
ＩＰｓｅｃに関する技術は、以下の特許文献１〜２に記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００８−５４１５０４号公報
【特許文献２】特開２０１０−２７３２２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、データを暗号化し、暗号化したデータとシーケンス番号に基づいて認証情報を生成する処理（以降、認証生成処理と呼ぶ）は、多くの演算処理やメモリアクセスを伴い、処理時間が長い。そして、パケットのデータサイズが大きくなるほど、処理時間は長くなる。
【０００８】
認証生成処理をシーケンス番号順に行う場合、認証生成処理中はパケットを送信できず、認証生成処理が完了するまでの待ち時間が発生する。また、複数の認証生成処理を並列で実行する場合、パケットの認証生成処理が完了しても、より小さいシーケンス番号のパケットの認証生成処理中が未完了なら、送信することができない。この場合、より小さいシーケンス番号のパケットの認証生成処理が完了するまで待ち時間が発生し、パケットの送信が遅延し、パケットの送信が完了するまでの時間が長くなる。
【０００９】
そこで、パケットの送信時間を短縮する通信装置を提供する。
【課題を解決するための手段】
【００１０】
パケットを送受信する通信装置であって、連続するシーケンス番号を有する異なるシーケンス番号群をそれぞれ対応づけられ、パケットに割り当てたシーケンス番号に基づき前記パケットに含まれる認証情報を生成する認証生成処理を並列で実行する複数の認証生成処理部と、前記複数の認証生成処理部の認証生成処理が完了した順に、前記割り当てたシーケンス番号を含むパケットを他の通信装置に送信する送信部と、前記他の通信装置からパケットを受信する受信部と、前記受信パケットのシーケンス番号の属するシーケンス番号群の、前記受信パケットより前に受信した先行受信パケットのシーケンス番号と、前記受信パケットのシーケンス番号との関係に基づいて前記受信パケットの認証を行う第１認証処理を実行する認証処理部とを有する。
【発明の効果】
【００１１】
一開示は、パケットの送信時間を短縮する通信装置を提供することにある。
【図面の簡単な説明】
【００１２】
【図１】図１は、通信システム１０の構成例を示す図である。
【図２】図２は、通信装置２００の構成例を示す図である。
【図３】図３は、送受信するパケットのフォーマットの例を示す図である。
【図４】図４は、シーケンス番号群情報テーブル２２５の例を示す図である。
【図５】図５は、シーケンス番号群毎受信パケット管理テーブル２２６の例を示す図である。
【図６】図６は、通信装置におけるパケット送受信のシーケンスの例を示す図である。
【図７】図７は、送信側セッション確立処理（Ｓ１１）及び受信側セッション確立処理（Ｓ１３）の処理フローチャートの例を示す図である。
【図８】図８は、認証生成処理の処理フローチャートの例を示す図である。
【図９】図９は、パケット送信処理の処理フローチャートの例を示す図である。
【図１０】図１０は、パケット受信処理の処理フローチャートの例を示す図である。
【図１１】図１１は、パケット認証処理の処理フローチャートの例を示す図である。
【図１２】図１２は、パケット送信のタイムチャートの例を示す図である。
【図１３】図１３は、比較対象方式と第１の実施の形態の方式とのパケット送信の比較タイムチャートの例を示す図である。
【図１４】図１４は、通信装置２００の構成例を示す図である。
【図１５】図１５は、データサイズ情報テーブル２２７の例を示す図である。
【図１６】図１６は、パケット送信のタイムチャートの例を示す図である。
【図１７】図１７は、通信装置がパケットを受信するシーケンスの例を示す図である。
【図１８】図１８は、パケット認証処理の処理フローチャートの例を示す図である。
【図１９】図１９は、通信装置２００の構成例を示す図である。
【図２０】図２０は、シーケンス番号群情報テーブル２２５の例を示す図である。
【図２１】図２１は、パケットを受信したときに実行される復号処理のタイムチャートの例を示す図である。
【図２２】図２２は、パケットを受信したときに実行される復号処理のタイムチャートの例を示す図である。
【発明を実施するための形態】
【００１３】
＜通信システムの構成例＞
図１は、通信システム１０の構成例を示す図である。通信システム１０は、端末装置１００−１〜ａ、基地局装置２００−１〜ｂ、ゲートウェイ３００−１〜ｃ、及び管理装置４００を有する。通信システム１０は、例えば、端末装置１００−１〜ａがインターネットなどのネットワークのサービスを受けるため、端末装置１００−１〜ａに通信を提供する通信システムである。通信システム１０は、例えば、ＬＴＥ（Long Term Evolution）の通信規格に対応した通信システムである。
【００１４】
端末装置１００はサービスを受けるとき、例えば、管理装置４００と接続される図示しないインターネットと通信を行う。基地局装置２００、ゲートウェイ３００、管理装置４００は、端末装置１００が送受信するパケットを中継することで、端末装置１００の通信を実現する。管理装置４００、ゲートウェイ３００、及び基地局装置２００は、専用線またはイントラネットなどのネットワークを介して互いに接続する。端末装置１００と基地局装置２００は、無線を介して接続する。
【００１５】
このように、通信システム１０を構成する通信装置は、インターネットと通信を行う。インターネットは一般に開放されたネットワークであり、インターネットを介したパケットは、データを改竄されたり、他人に詐取されたりする恐れがある。そこで、通信機器は、データ改竄防止や秘匿機能を有するプロトコル（例えば、ＩＰｓｅｃ）を適用した通信を行う場合がある。ＩＰｓｅｃを適用した通信は、パケットの送信順を示すシーケンス番号を使用した認証処理や、データ部の暗号化を行うことで、セキュリティが向上する。
【００１６】
ＩＰｓｅｃにおいて、通信装置がパケットを送信するとき、データ部を暗号化し、暗号化したデータ部とシーケンス番号に基づき認証情報を生成する、認証生成処理を実行する。認証生成処理をシーケンス番号順に行うと、シーケンス番号が小さいパケットの認証生成処理が完了し送信されるまで、次に送信するパケットの認証生成処理を実行できず、待ち時間が発生する。複数の認証生成処理を並列で行ったとしても、シーケンス番号が小さいパケットの認証生成処理が完了し送信されるまでの待ち時間が発生する。この待ち時間はパケットを送信しない時間であり、この時間だけパケットの送信が遅延する。
【００１７】
そこで、通信システム１０における通信装置は、認証生成処理を並列で実行する複数の認証生成処理部を有する。複数の認証生成処理部それぞれは、連続したシーケンス番号を有するシーケンス番号群を対応づけられる。複数の認証生成処理部それぞれは、対応づけられたシーケンス番号群の有するシーケンス番号を送信するパケットに割り当てる。そして、受信側の通信装置は、シーケンス番号群ごとに受信したパケットのシーケンス番号を管理し、認証を行う。
【００１８】
すなわち、認証生成処理部ごとに、使用可能なシーケンス番号の範囲が決まっており、認証処理部ごとに送信するパケットの送信順はシーケンス番号通りとなる。そして、受信側の通信装置がシーケンス番号群ごとにシーケンス番号を管理することで、シーケンス番号群ごとにシーケンス番号による認証を実行することができる。こうすることで、他の認証生成処理部の認証生成処理の完了を待たずに、パケットの送信を行うことができる。
【００１９】
以下、基地局装置２００を通信装置の例として説明するが、管理装置４００、ゲートウェイ３００、及び端末装置１００も通信装置となり得る。
【００２０】
［第１の実施の形態］
最初に第１の実施の形態について説明する。通信装置は、連続するシーケンス番号を有する異なるシーケンス番号群をそれぞれ対応づけられた複数の認証生成処理部を有する。複数の認証生成処理部は、パケットに割り当てたシーケンス番号に基づきパケットに含まれる認証情報を生成する認証生成処理を並列で実行する。また、複数の認証生成処理部の認証生成処理が完了した順に、割り当てたシーケンス番号を含むパケットを他の通信装置に送信する送信部の通信装置からパケットを受信する。さらに、受信パケットのシーケンス番号の属するシーケンス番号群の、受信パケットより前に受信した先行受信パケットのシーケンス番号と、受信パケットのシーケンス番号との関係に基づいて受信パケットの認証を行う第１認証処理を実行する。
【００２１】
＜通信装置の構成例＞
図２は、通信装置２００の構成例を示す図である。
【００２２】
通信装置２００は、ＣＰＵ（Central Processing Unit）２１０、ストレージ２２０、メモリ２３０、及びＮＩＣ（Network Interface Card）２４０−１〜ｎを有する。通信装置２００は、他の通信装置をパケットの送受信を行う装置である。
【００２３】
図３は、送受信するパケットのフォーマットの例を示す図である。パケットＰ１は、ＩＰ（Internet Protocol）ヘッダ、ＥＳＰ（Encapsulating Security Payload）ヘッダ、暗号化データ、及びＥＳＰトレイラを情報要素として有する。ＩＰヘッダは、ＩＰに関する情報を含むヘッダであり、ＩＰバージョン、パケットサイズ、ＩＰアドレス、上位層のプロトコルを識別するためのプロトコル番号を有する。また、ＩＰヘッダは、ＱｏＳ（Quality of Service）のクラスを決定するためのＤＳＣＰ（Differentiated Services Code Point）を含むｄｉｆｆｓｅｒｖや、パケットを分割したパケットの識別子であるフラグメントＩＤを有する。
【００２４】
ＥＳＰヘッダは、シーケンス番号と、ランダム値であるＩｎｉｔｉａｌ  Ｖｅｃｔｏｒを有する。また、ＥＳＰヘッダは、セッションごとに異なる数値であり、セッションの識別子であるＳＰＩ（Security Parameter Index）番号を有する。
【００２５】
暗号化データは、ユーザデータ領域（またはペイロード領域）を暗号化したデータ領域である。送受信側で共通の暗号化鍵を使用し、送信側で暗号化したデータを、受信側で復号する。
【００２６】
ＥＳＰトレイラは、ＰａｄｄｉｎｇまたはＮｅｘｔ  Ｌａｙｅｒ  Ｐｒｏｔｏｃｏｌの情報、及び認証情報を有する。認証情報は、ＥＳＰヘッダが有する情報、及び暗号化データに基づき生成される。また、認証情報は、例えば、ＩＰＳｅｃにおけるパケットに付与されるＩＣＶ（Initial Check Value）である。
【００２７】
次に、通信装置２００が有する各装置について説明する。ストレージ２２０は、プログラムやデータを記憶する補助記憶装置である。ストレージ２２０は、セッション管理プログラム２２１、パケット送信制御プログラム２２２、パケット受信制御プログラム２２３、セッション情報テーブル２２４、シーケンス番号群情報テーブル２２５、及びシーケンス番号群毎受信パケット管理テーブル２２６を記憶する。
【００２８】
セッション情報テーブル２２４は、パケット送信先の通信装置との通信におけるセッションに関する情報を記憶するテーブルである。記憶する情報要素は、例えば、ＳＰＩ番号、暗号鍵、及び認証鍵である。通信装置２００は、パケットの送受信や、複数の通信装置と通信を行うため、複数のセッションを同時に有することが可能である。この場合、セッション情報テーブル２２４は、ＳＰＩ番号ごとにテーブルを有する。セッション情報テーブル２２４は、ＳＰＩ番号取得時に生成され、当該ＳＰＩ番号での通信が終了し、セッションが解放されると当該ＳＰＩ番号のセッション情報テーブル２２４は消去される。
【００２９】
シーケンス番号群情報テーブル２２５は、複数のシーケンス番号群それぞれが有するシーケンス番号を記憶するテーブルである。
【００３０】
図４は、シーケンス番号群情報テーブル２２５の例を示す図である。シーケンス番号群情報テーブル２２５に記憶する情報要素は、「シーケンス番号群」、「シーケンス番号」、及び「認証生成処理部」である。「シーケンス番号群」は、例えば、シーケンス番号群を識別するための情報であり、「シーケンス番号群１」などのシーケンス番号群の名称や識別子などの情報である。「シーケンス番号」は、シーケンス番号群が有するシーケンス番号の範囲を示す情報である。「認証生成処理部」は、シーケンス番号群に対応づけられた認証生成処理部を識別するための情報であり、「認証生成処理部１」などの認証生成処理部の名称や識別子などの情報である。シーケンス番号群情報テーブル２２５は、例えば、通信システム１０のシステム管理者が、コンソール用コンピュータなどを介して、通信装置に記憶させる。
【００３１】
シーケンス番号群毎受信パケット管理テーブル２２６は、受信したパケットのシーケンス番号を、複数のシーケンス番号群ごとに記憶するテーブルである。
【００３２】
図５は、シーケンス番号群毎受信パケット管理テーブル２２６の例を示す図である。図５は、シーケンス番号群１のテーブルであり、図５の上部はシーケンス番号１２のパケットを受信する前のシーケンス番号群毎受信パケット管理テーブル２２６−１、図５の下部はシーケンス番号１２のパケット受信後のシーケンス番号群毎受信パケット管理テーブル２２６−２の例を示す図である。
【００３３】
シーケンス番号群毎受信パケット管理テーブル２２６は、例えば、１０パケット分のパケット受信履歴を記憶する。「シーケンス番号」に、対応する「受信状況」を記憶し、「受信状況」が「×」のシーケンス番号のパケットは未受信であり、「受信状況」が「○」のシーケンス番号のパケットは受信済みである。シーケンス番号群毎受信パケット管理テーブルは、例えば、シーケンス番号群ごとに存在するリプレイウィンドウである。
【００３４】
シーケンス番号群毎受信パケット管理テーブル２２６−１は、１〜１０までのシーケンス番号のパケットを管理する。シーケンス番号１及び７は未受信である。
【００３５】
そして、通信装置２００は、シーケンス番号１２のパケットを受信すると、シーケンス番号群毎受信パケット管理テーブル２２６−１を、シーケンス番号群毎受信パケット管理テーブル２２６−２に更新する。シーケンス番号群毎受信パケット管理テーブル２２６−２は、最新のシーケンス番号である１２から１０個遡ったシーケンス番号である３までを管理対象とする。このように、シーケンス番号群毎受信パケット管理テーブル２２６は、受信した最新のシーケンス番号から所定数のパケットの受信履歴を管理する。
【００３６】
メモリ２３０は、ストレージ２２０に記憶されているプログラムをロードする領域である。また、メモリ２３０、プログラムがデータを記憶する領域としても使用される。
【００３７】
ＮＩＣ２４０−１〜ｎは、他の通信装置と無線または有線で接続し、通信を行う装置である。ＮＩＣ２４０−１〜ｎは、ハブやスイッチを介して他の通信装置と接続してもよい。
【００３８】
ＣＰＵ２１０は、ストレージ２２０に記憶されているプログラムを、メモリ２３０にロードし、ロードしたプログラムを実行し、各処理を実現するプロセッサである。
【００３９】
ＣＰＵ２１０は、セッション管理プログラム２２１を実行することで、セッション管理部を構築し、セッション管理部の機能を実現する。セッション管理部は、他の通信装置とのセッショ確立、及びセッションの管理を行う。セッション管理部は、通信装置が他の通信装置に対してパケットの送信を開始するとき、セッションを確立する送信側セッション確立処理を実行する。また、セッション管理部は、他の通信装置からパケットの受信を開始するとき、受信側セッション確立処理を実行する。
【００４０】
通信装置２００は、送信側セッション確立処理において、発行したＳＰＩ番号や、採択可能なシーケンス番号方式の候補などをＳＡ（Security Association）確立要求に付与して、送信先の通信装置に送信する。シーケンス番号方式とは、例えば、シーケンス番号をシーケンス番号群に分割せずに使用する方式や、シーケンス番号をシーケンス番号に分割して使用する方式である。また、シーケンス番号方式は、例えば、拡張シーケンス番号方式も含まれる。そして、通信装置２００は、ＳＡ確立要求に対するＳＡ確立応答に含まれる暗号鍵、認証鍵、送信先の通信装置が採択したシーケンス番号方式などを取得し、セッション情報テーブル２２４に記憶する。また、通信装置２００は、受信側セッション確立処理において、シーケンス番号方式を採択し、ＳＡ確立応答に付与して、送信元の通信装置に送信する。
【００４１】
また、ＣＰＵ２１０は、パケット送信制御プログラム２２２及び、含まれる各モジュールを実行することで、パケット送信制御処理を実現する。パケット送信制御プログラム２２２は、パケット認証生成モジュール２２２１及びパケット送信モジュール２２２２を有する。
【００４２】
ＣＰＵ２１０は、パケット認証生成モジュール２２２１を実行することで、認証生成処理部を構築し、認証生成処理を実現する。複数の認証生成処理部を構築する場合、例えば、パケット認証生成モジュール２２２１を複数回実行するか、構築する認証生成処理部の数を引数としてパケット認証生成モジュール２２２１を実行する。また、複数の認証生成処理部は、例えば、それぞれに専用のアクセラレーターやＣＰＵが実現してもよい。認証生成処理は、送信するパケットのデータ部を暗号化し、暗号化したデータ部とシーケンス番号に基づき、認証情報を生成する処理である。認証生成処理は、対応するシーケンス番号群をシーケンス番号群情報テーブル２２５より読み出し、対応するシーケンス番号群から、認証生成するパケットにシーケンス番号を割り当てる。
【００４３】
ＣＰＵ２１０は、パケット送信モジュール２２２２を実行することで、送信部を構築し、パケット送信処理を実現する。パケット送信処理は、認証生成処理が完了した順にパケットを送信する処理である。
【００４４】
さらに、ＣＰＵ２１０は、パケット受信制御プログラム２２３及び、含まれる各モジュールを実行することで、パケット受信制御処理を実現する。パケット受信制御プログラム２２３は、パケット受信モジュール２２３１及びパケット認証モジュール２２３２を有する。
【００４５】
ＣＰＵ２１０は、パケット受信モジュール２２３１を実行することで、受信部を構築し、パケット受信処理を実現する。パケット受信処理は、他の通信装置から送信されたパケットを受信し、パケットを受信したことを認証処理部に通知する処理である。
【００４６】
ＣＰＵ２１０は、パケット認証モジュール２２３２を実行することで、認証処理部を構築し、パケット認証処理を実現する。パケット認証処理は、受信したパケットのシーケンス番号と、受信済みの最新のシーケンス番号を有するパケットのシーケンス番号との差が、所定値以内であれば認証を通過させる第１認証処理を含む。所定値は、例えば、シーケンス番号群毎受信パケット管理テーブル２２６が管理する受信パケットの数である。通信装置は、シーケンス番号群毎受信パケット管理テーブル２２６で管理している最も古い番号のシーケンス番号より古いシーケンス番号のパケットを受信すると、不正なパケットと判定し、受信したパケットを破棄する。
【００４７】
また、パケット認証処理は、受信したパケットのシーケンス番号と暗号化データとに基づき認証情報を生成し、受信したパケットの認証情報と一致するかどうかを判定し、一致する場合認証を通過させる第２認証処理を含む。第２認証処理は、例えば、第１認証処理を通過したパケットに対して実行される。さらに、パケット認証処理は、第２認証処理を通過したパケットの暗号化データを復号する復号処理を含んでもよい。
【００４８】
＜パケット送受信処理＞
図６は、通信装置におけるパケット送受信のシーケンスの例を示す図である。以下、図６を用いて、通信装置２００−１から通信装置２００−２にパケットを送信する場合について説明する。
【００４９】
通信装置２００−１は、通信装置２００−２にパケットの送信を開始するとき、送信側セッション確立処理（Ｓ１１）を実行する。そして、パケットの送信先である通信装置２００−２は、ＳＡ確立要求を受信し、受信側セッション確立処理（Ｓ１３）を実行する。
【００５０】
図７は、送信側セッション確立処理（Ｓ１１）及び受信側セッション確立処理（Ｓ１３）の処理フローチャートの例を示す図である。通信装置２００−１は、送信側セッション確立処理（Ｓ１１）において、ＳＰＩ番号を発行する（Ｓ１１１）。第１の実施の形態においては、シーケンス番号方式として、シーケンス番号群分割方式を採択する。シーケンス番号群分割方式は、通信装置が使用可能なシーケンス番号を、複数の異なるシーケンス番号群に分割し、シーケンス番号群ごとにシーケンス番号を管理する方式である。そして、通信装置２００−１は、ＳＰＩ番号、採択するシーケンス番号方式がシーケンス番号群分割方式であることを付与したＳＡ確立要求を通信装置２００−２に送信する（Ｓ１２）。
【００５１】
通信装置２００−２は、受信側セッション確立処理（Ｓ１３）において、ＳＡ確立要求を受信すると（Ｓ１２）、受信したＳＡ確立要求に含まれるＳＰＩ番号に基づき、認証鍵及び暗号鍵を生成する（Ｓ１３１）。通信装置２００−２は、生成した認証鍵及び暗証鍵、採択したシーケンス番号方式を付与したＳＡ確立応答を通信装置２００−１に送信する（Ｓ１４）。そして、通信装置２００−２は、セッション情報テーブル２２４を更新する（Ｓ１３２）。
【００５２】
通信装置２００−１は、ＳＡ確立応答を受信すると（Ｓ１４）、セッション情報テーブル２２４を更新する（Ｓ１１２）。以降、上述した処理で確立したセッションを使用して、パケットの送受信を行う。
【００５３】
通信装置２００−１は、送信するパケットに対して、認証生成処理（Ｓ１５）を実行する。認証生成処理は、複数の認証生成処理部が並列で実行する処理である。認証生成処理部は、例えば、４個存在し、それぞれを認証生成処理部１〜４と呼ぶ。
【００５４】
送信するパケットのデータが生成されると、認証生成処理を実行していない(以降、空状態と呼ぶ)認証生成処理部が、送信するパケットの認証生成処理を実行する。空状態の認証生成処理部が複数ある場合、どの空状態の認証生成処理部が認証生成処理を実行してもよい。また、空状態の認証生成処理部がない場合、いずれかの認証生成処理部が空状態になるのを待ち、空状態となった認証生成処理部が、認証生成処理を実行する。さらに、空状態の認証生成処理部がないときに、複数の送信パケットのデータが生成された場合、空状態になった認証生成処理部は、送信パケットのデータが生成された順に認証生成処理を実行する。
【００５５】
図８は、認証生成処理の処理フローチャートの例を示す図である。以下、シーケンス番号群が図４に示す対応関係の認証生成処理部１が、認証生成処理を実行する場合を例として説明する。
【００５６】
認証生成処理（Ｓ１５）では、送信するパケットのデータが生成されたかどうかを監視する（Ｓ１５１）。認証生成処理部１は、送信するパケットのデータが生成されると（Ｓ１５１のＹｅｓ）、対応づけられたシーケンス番号群から、送信するパケットにシーケンス番号を割り当てる（Ｓ１５２）。認証生成処理部１はシーケンス番号群１に対応づけられており、シーケンス番号群１は１〜１０００のシーケンス番号を有する。認証生成処理部１は、前回割り当てたシーケンス番号の次の番号をシーケンス番号として割り当てる。前回の割り当てがない場合、最小のシーケンス番号である１を割り当てる。
【００５７】
そして、送信するパケットのデータを暗号化する（Ｓ１５３）。暗号化には、セッション確立時に送受信した、送信側の通信装置及び受信側の通信装置の共通の暗号鍵を使用する。
【００５８】
そして、暗号化したデータと、割り当てたシーケンス番号に基づいて、認証情報を生成する（Ｓ１５４）。認証情報は、例えば、ＳＰＩ番号、シーケンス番号、及び暗号化したデータを、セッション確立時に送受信した、送信側の通信装置及び受信側の通信装置の共通の認証鍵を用い、特定の演算から生成する。また、認証情報の生成は、さらに、例えばＩｎｉｔｉａｌ  Ｖｅｃｔｏｒなどの、ランダム値を使用してもよい。
【００５９】
認証生成処理部１は、送信するパケットの認証生成処理が完了したことを送信部に通知し（Ｓ１５５）、送信するパケットのデータが生成されるのを待つ状態（例えば、空状態）に遷移する。
【００６０】
図６のシーケンスに戻り、認証生成処理部１からパケットの認証生成処理が完了した通知を受信した送信部は、パケット送信処理（Ｓ１６）を実行する。
【００６１】
図９は、パケット送信処理の処理フローチャートの例を示す図である。送信部は、認証生成処理が完了したことの通知を受信すると（Ｓ１６１のＹｅｓ）、送信するパケットに割り当てられたシーケンス番号を取得する（Ｓ１６２）。シーケンス番号の取得は、例えば、認証生成処理が完了したことの通知に割り当てたシーケンス番号が含まれている場合、当該通知から取得する。また、認証生成処理部に問い合わせてもよい。さらに、認証生成処理部が、割り当てたシーケンス番号を、メモリ上に記憶し、当該記憶した情報を読み出してもよい。
【００６２】
送信部は、シーケンス番号の取得と同様に、暗号化したデータを取得し（Ｓ１６３）、認証情報を取得する（Ｓ１６４）。そして、送信部は、取得した情報からパケットを生成し（Ｓ１６５）、生成したパケットを通信装置２００−１に送信する（Ｓ１６６）。送信部は、送信が完了すると、認証生成処理が完了した通知を受信していないか確認し（Ｓ１６１）、受信していれば（Ｓ１６１のＹｅｓ）、情報取得からパケット送信を実行し、受信していなければ（Ｓ１６６のＮｏ）、通知を受信するのを待つ。このように、送信部は、複数の認証生成処理部の認証生成処理が完了するのを待ち、認証生成処理が完了したパケットから順に送信する。
【００６３】
図６のシーケンスに戻り、通信装置２００−１からパケットが送信され（Ｓ１７）、送信されたパケットを、通信装置２００−２が受信する。パケットを受信するとき、受信部はパケット受信処理（Ｓ１８）を実行する。
【００６４】
図１０は、パケット受信処理の処理フローチャートの例を示す図である。受信部は、パケットを受信したかどうかを監視する（Ｓ１８１）。そして、パケットを受信すると（Ｓ１８１のＹｅｓ）、パケットを受信したことを認証処理部に通知する（Ｓ１８２）。
【００６５】
図６のシーケンスに戻り、認証処理部は、受信部からパケットを受信したことを示す通知を受信し、パケット認証処理（Ｓ１９）を実行する。
【００６６】
図１１は、パケット認証処理の処理フローチャートの例を示す図である。認証処理部は、パケットを受信したかどうかを監視する（Ｓ１９１）。パケットを受信したかどうかは、受信部からの通知の有無で確認する。そして、認証処理部は、パケットを受信すると（Ｓ１９１のＹｅｓ）、シーケンス番号による認証（第１認証）を実行する（Ｓ１９２）。
【００６７】
第１認証は、受信したパケットのシーケンス番号と、以前に受信済みのパケットのシーケンス番号との関係に基づいて行う認証である。第１認証は、例えば、今回受信したパケットのシーケンス番号が属するシーケンス番号群の、今回より以前に受信した受信済みパケット（先行受信パケットとも呼ぶ）のうち、最新のシーケンス番号と、今回受信したパケットのシーケンス番号との差（以下、シーケンス番号差）に基づいて行う。シーケンス番号差は、先行受信パケットの最新のシーケンス番号から受信したパケットのシーケンス番号を引いた数であり、マイナスの値も取りうる。
【００６８】
第１認証では、シーケンス番号差が第１閾値より小さい場合、受信したパケットの認証を通過させる。例えば、第１閾値が１０であり、受信したパケットのシーケンス番号が９であり、先行受信パケットの最新のシーケンス番号が１０であるとする。この場合、シーケンス番号差は（１０−９＝）１であり、第１閾値より小さいため、受信したパケットは認証を通過する。また、第１認証は、シーケンス番号差が第１閾値より小さい場合でも、先行受信パケットと同一のシーケンス番号のパケットは、認証を通過させず、破棄してもよい。なお、第１閾値は、例えば、シーケンス番号群毎受信パケット管理テーブルで、履歴管理するパケットの数であってもよい。こうすることで、シーケンス番号群毎受信パケット管理テーブルで管理されていない、より古いシーケンス番号のパケットを受信した場合、認証を通過させず、破棄することができる。
【００６９】
第１認証を、第１閾値をシーケンス番号群毎受信パケット管理テーブルで履歴管理するパケットの数とし、先行受信パケットと同一のシーケンス番号のパケットは認証を通過させない場合について説明する。また、シーケンス番号群毎受信パケット管理テーブルが図５のシーケンス番号群毎受信パケット管理テーブル２２６−２の状態である場合を例とする。
【００７０】
通信装置は、シーケンス番号が１１のパケットを受信すると、シーケンス番号差（１２−１１＝）１は第１閾値１０より小さく、未受信のシーケンス番号であるため、認証を通過させる。また、通信装置は、シーケンス番号が９のパケットを受信すると、シーケンス番号差（１２−９＝）３は第１閾値１０より小さいが、受信済みのシーケンス番号であるため、認証を通過させない。さらに、通信装置は、シーケンス番号が２のパケットを受信すると、シーケンス番号差（１２−２＝）１０は第１閾値１０より小さくないため、認証を通過させない。さらに、通信装置は、シーケンス番号が１３のパケットを受信すると、最新のシーケンス番号（１２−１３＝）１は第１閾値１０より小さく、未受信のシーケンス番号であるため、認証を通過させる。
【００７１】
なお、シーケンス番号差を、先行受信パケットの最新のシーケンス番号と受信したパケットのシーケンス番号の絶対値としてもよい。この場合、通信装置は、先行受信パケットの最新のシーケンス番号より新しいシーケンス番号のパケットを受信した場合でも、第１閾値以上のシーケンス番号差であれば、認証を通過せず、受信したパケットを破棄する。
【００７２】
このように、第１認証では、先行受信パケットの最新のシーケンス番号をシーケンス番号群ごとに管理し、受信したシーケンス番号とのシーケンス番号差に基づいて認証を行う。第１認証を行うことで、以降で説明する認証情報に基づく第２認証や、復号処理などの処理時間が長い処理を行うことなく、不正なパケットを破棄することができる。
【００７３】
パケット認証処理（Ｓ１９）において、第１認証を通過すると（Ｓ１９３のＹｅｓ）、認証情報による認証（第２認証）を実行する（Ｓ１９４）。認証処理部は、受信したパケットのシーケンス番号、暗号化データ、ＳＰＩ番号などに基づき、認証鍵を用いて演算を実行し、認証情報を生成する。認証処理部は、生成した認証情報と、受信したパケットに含まれる認証情報が一致するかどうかを確認し、一致すれば第２認証を通過させる。
【００７４】
第２認証を通過すると（Ｓ１９５のＹｅｓ）、受信したパケットの暗号化データの復号処理を実行する（Ｓ１９６）。なお、認証処理部が復号処理を実行しない場合、通信装置は復号処理を実行するための処理部（復号処理部）を構築し、復号処理部が実行してもよい。
【００７５】
＜パケット送信タイムチャート＞
通信装置が、送信するパケットのデータを生成し、パケットを送信するまでのタイムチャートについて説明する。
【００７６】
図１２は、パケット送信のタイムチャートの例を示す図である。なお、図１２中のＤｘ（ｘは数字）のｘはデータの番号を示し、Ｓｙ（ｙは数字）のｙはシーケンス番号を示す。以降、データの番号が１番のデータをデータＤ１、シーケンス番号が１であることをＳ１と表現する。また、データＤ１はデータＤ１〜Ｄ８の中で最も大きいサイズであり、データＤ２はデータＤ１に次ぐ大きさのサイズである。データＤ３〜Ｄ８は、ほぼ同じサイズのデータである。通信装置はデータＤ１〜Ｄ８までをパケットのデータとして生成する。データは、データＤ１から番号順に生成される。
【００７７】
データＤ１が生成されると、空状態の認証生成処理部１は、データＤ１を送信するパケットの認証生成処理を実行する。対応するシーケンス番号群のシーケンス番号１をパケットに割り当てる。
【００７８】
次に、データＤ２が生成されると、空状態の認証生成処理部２は、データＤ２を送信するパケットの認証生成処理を実行する。対応するシーケンス番号群のシーケンス番号１００１をパケットに割り当てる。
【００７９】
同様に、認証生成処理部３及び４は、データＤ３及びＤ４を送信するパケットの認証生成処理を実行する。
【００８０】
このとき、認証生成処理部１〜４は、認証生成処理を実行する状態（以下、実行中状態と呼ぶ）である。認証生成処理は、認証生成するデータのサイズが大きいほど時間を要する。そのため、後発で開始したデータサイズが小さいデータＤ３のパケットの認証生成処理が最初に完了する。
【００８１】
送信部は、認証生成処理が完了した順にパケットを送信する。送信部は、最初に認証生成処理が完了するデータＤ３のシーケンス番号２００１のパケットを送信する。そして、次に認証生成処理が完了するデータＤ４のシーケンス番号３００１のパケットを送信する。
【００８２】
そして、データＤ５が生成されると、認証生成処理部１，２は実行中状態であるため、空状態の認証生成処理部３がデータＤ５を送信するパケットの認証生成処理を実行する。認証生成処理部３は、データＤ３を送信するパケットにシーケンス番号２００１を割り当てているため、対応するシーケンス番号群の次のシーケンス番号である２００２を送信するパケットに割り当てる。同様に、認証生成処理部４がデータＤ５を送信するパケットにシーケンス番号２００２を割り当て、認証生成処理を実行する。
【００８３】
そして、送信部は、シーケンス番号２００１及び３００１のパケットの送信を完了すると、認証生成処理部２で認証生成処理が完了したシーケンス番号１００１のパケットの送信を開始する。
【００８４】
データＤ７が生成されると、認証生成処理部１は実行中状態であるため、空状態の認証生成処理部２がデータＤ７を送信するパケットの認証生成処理を実行する。認証生成処理部７は、データＤ２を送信するパケットにシーケンス番号１００１を割り当てているため、対応するシーケンス番号群の次のシーケンス番号である１００２を送信するパケットに割り当てる。
【００８５】
そして、送信部は、シーケンス番号１００１のパケットの送信を完了すると、認証生成処理部３で認証生成処理が完了したシーケンス番号２００１のパケットを送信する。送信部は、シーケンス番号２００１のパケットを送信完了すると、認証生成処理が完了したシーケンス番号３００２のパケットを送信する。さらに、送信部は、シーケンス番号１００１のパケットの送信を完了すると、認証生成処理部１で認証生成処理が完了したシーケンス番号１のパケットを送信する。以降、同様の処理を繰り返し、シーケンス番号１００２及びＳ２のパケットを送信する。
【００８６】
第１の実施の形態では、データが生成されたときに、空状態の認証生成処理部が認証生成処理を実行する。そして、認証生成処理が完了した順にパケットを送信する。図１２においては、データの生成された順番はデータＤ１からデータＤ８までの番号順であるが、パケットでデータが送信される順番は、データＤ３、Ｄ４、Ｄ２、Ｄ５、Ｄ６、Ｄ１、Ｄ７、Ｄ８の、認証生成処理が完了した順番となる。
【００８７】
図１３は、比較対象方式と第１の実施の形態の方式とのパケット送信の比較タイムチャートの例を示す図である。なお、データのサイズは図１２と同様である。
【００８８】
比較対象方式は、複数の認証生成処理部が、並列で認証生成処理を実行する方式である。そして、比較対象方式では、シーケンス番号はデータ生成順に割り当てられる。すなわち、第１の実施の形態の方式と異なり、シーケンス番号群が存在せず、パケットの認証生成処理を実行する認証生成処理部によらず、一連のシーケンス番号を割り当てる。
【００８９】
比較対象方式で認証生成処理を実行する場合について説明する。認証生成処理部１〜４は、それぞれデータＤ１〜Ｄ４の送信するパケットの認証生成処理を実行する。割り当てるシーケンス番号はデータ生成順であるため、データＤ１はシーケンス番号１、データＤ２はシーケンス番号２、データＤ３はシーケンス番号３、データＤ４はシーケンス番号４が割り当てられる。そして、サイズの小さいデータＤ３の認証生成処理が完了する。しかし、送信部は、データＤ３の認証生成処理が完了したとき、シーケンス番号１、２のパケットは未送信であるため、シーケンス番号が３であるデータＤ３のパケットを送信しない。さらに、データＤ４、及びデータＤ２の認証生成処理が完了しても、同様の理由でパケットを送信しない。そして、データＤ１のパケットの認証生成処理が完了すると、シーケンス番号順にパケットを送信する。
【００９０】
次に、第１の実施の形態の方式の場合について説明する。認証生成処理部１〜４は、それぞれデータＤ１〜Ｄ４の送信するパケットの認証生成処理を実行する。割り当てるシーケンス番号は対応するシーケンス番号群のシーケンス番号であるため、データＤ１はシーケンス番号１、データＤ２はシーケンス番号１００１、データＤ３はシーケンス番号２００１、データＤ４はシーケンス番号３００１が割り当てられる。そして、サイズの小さいデータＤ３の認証生成処理が完了する。送信部は、認証生成処理が完了した順にパケットを送信するため、ただちにシーケンス番号２００１のパケットを送信する。以降、認証生成処理が完了した順にパケットを送信する。
【００９１】
比較対象方式では、データＤ３の認証生成処理が完了しても、大きいデータサイズのデータＤ１のパケットの認証生成処理が完了するまでパケットを送信しない。よって、全パケットを送信完了は、図１３に示すように、第１の実施の形態の方式より遅い時間となる。
【００９２】
第１の実施の形態において、通信装置が有する複数の認証生成処理部それぞれは、連続したシーケンス番号を有する複数の異なるシーケンス番号群に対応づけられる。各認証生成処理部は、送信するデータが生成されると、送信するパケットに対応づけられたシーケンス番号群の有するシーケンス番号を割り当て、認証生成処理を実行する。そして、送信部は、複数の認証処理部の間では、認証生成処理が完了した順にパケットを送信する。また、通信装置の認証処理部は、受信パケットのシーケンス番号の属するシーケンス番号群の、受信パケットより前に受信した先行受信パケットのシーケンス番号と、受信パケットのシーケンス番号との関係に基づいて受信パケットの認証を行う第１認証処理を実行する。
【００９３】
従って、送信側が認証生成処理が完了した順に送信するので、認証生成処理時間が長い第１のシーケンス番号のパケットよりも、第１のシーケンス番号より大きい第２のシーケンス番号のパケットであるが、認証生成時間の短いパケットを先に送信することができる。また、送信側では、複数のシーケンス番号群毎に、それぞれのパケットがシーケンス番号順に受信したか否かの認証を行うので、シーケンス番号順の認証を適用できる。
【００９４】
こうすることで、パケットの送信処理において、他の認証生成処理部のパケット認証処理の完了を待つ時間が減少し、パケットの送信時間が短縮される。
【００９５】
［第２の実施の形態］
次に第２の実施の形態について説明する。
【００９６】
第２の実施の形態では、複数の認証生成処理部それぞれが、送信するパケットのデータサイズに対応づけられる。認証生成処理部は、対応づけられたデータサイズのパケットの認証生成処理を実行する。
【００９７】
＜通信装置の構成例＞
図１４は、通信装置２００の構成例を示す図である。通信装置２００は、さらに、データサイズ情報テーブル２２７を有する。
【００９８】
図１５は、データサイズ情報テーブル２２７の例を示す図である。データサイズ情報テーブル２２７に記憶する情報としては、「認証生成処理部」及び「データサイズ（ｂｙｔｅ）」がある。「認証生成処理部」は、データサイズに対応する認証生成処理部の名称である。「データサイズ（ｂｙｔｅ）」は、認証生成処理部に対応づけられたデータサイズである。図１５では、認証生成処理部１及び２はデータサイズ５００ｂｙｔｅ未満に対応づけられる。そして、認証生成処理部３は５００ｂｙｔｅ以上１０００ｂｙｔｅ未満に、認証生成処理部４は１０００ｂｙｔｅ以上に対応づけられる。あるデータサイズは、複数の認証生成処理部に対応づけられてもよい。また、図１５では、データサイズ５００ｂｙｔｅ未満に対応する認証生成処理部が２つあり、他のデータサイズに対応する認証生成処理部の数より多い。例えば、リアルタイム性が求められる音声通話における音声データが、データサイズ５００ｂｙｔｅ未満のパケットであるとする。他の大きなデータサイズの認証生成処理のため、全ての認証生成処理部が実行中状態であれば、音声データの送信が遅延する。そこで、優先的に音声データのパケットの認証生成処理を実行できるよう、多くの認証生成処理部に小さいデータサイズを対応づける。
【００９９】
＜パケット送信タイムチャート＞
通信装置が、送信するパケットのデータを生成し、パケットを送信するまでのタイムチャートについて説明する。
【０１００】
図１６は、パケット送信のタイムチャートの例を示す図である。データの下の数値は、データのサイズ（ｂｙｔｅ）を示す。また、図１５で示したデータサイズ情報テーブル２２６を例として説明する。
【０１０１】
認証生成処理部１は、対応するデータサイズのデータＤ１のパケットの認証生成処理を実行する。認証生成処理部２は、対応するデータサイズのデータＤ２のパケットの認証生成処理を実行し、データＤ２のパケットの認証生成処理完了後、データＤ３のパケットの認証生成処理を実行する。そして、データＤ４〜Ｄ６のパケットは、対応するデータサイズの認証生成処理部３及び４が認証生成処理を実行する。
【０１０２】
データＤ４〜Ｄ６は、例えば、音声データである。データＤ６以降に、新たな音声データが生成された場合でも、認証生成処理部３及び４は空状態であり、音声データが生成さると、認証生成処理部３又は４が音声データの認証生成処理を実行する。
【０１０３】
第２の実施の形態においては、複数の認証生成処理部それぞれは、対応づけられたデータサイズのパケットのパケット認証処理を実行する。通信装置は、例えば、音声通話における音声データ（例えば、１００ｂｙｔｅ以下）など、データサイズは小さいが、リアルタイム性の高いデータを認証生成処理する認証生成処理部を少なくも１つ又は必要な数有する。こうすることで、音声データが生成されたときに、全ての認証生成処理部が大きなデータを認証生成処理中であり、音声データを認証生成できないというリスクを軽減させることができ、リアルタイム性を確保することができる。
【０１０４】
［第３の実施の形態］
次に第３の実施の形態について説明する。
【０１０５】
第３の実施の形態では、受信側の通信装置は、初期状態では１つのシーケンス番号群でシーケンス番号の管理を行う。そして、受信したパケットのシーケンス番号に応じて、シーケンス番号群を分割し、分割したシーケンス番号群ごとにシーケンス番号を管理する。
【０１０６】
＜シーケンス番号群分割処理＞
図１７は、通信装置がパケットを受信するシーケンスの例を示す図である。図１７は、受信したパケットのシーケンス番号に応じて、シーケンス番号群を分割する例を示す。
【０１０７】
通信装置２００は、通信を開始するとき、セッションを確立する（Ｓ３１）。通信装置２００のシーケンス番号群情報テーブル２２５は、セッションが確立したとき、初期状態（Ｔ１）である。
【０１０８】
通信装置２００は、シーケンス番号が１であるパケット（パケット（１）。以下、同様に表現する。）を受信すると（Ｓ３２）、パケット認証処理を実行する。
【０１０９】
図１８は、パケット認証処理の処理フローチャートの例を示す図である。パケットを受信してから（Ｓ１９１）、第１認証処理を通過したかどうかを確認するまで（Ｓ１９３）は、図１１に示す第１の実施の形態におけるパケット認証処理と同様である。
【０１１０】
通信装置２００は、受信したパケットがシーケンス番号による認証を通過した場合（Ｓ１９３のＹｅｓ）、シーケンス番号が最新のシーケンス番号より分割閾値（第２閾値）以上大きいかを確認する（Ｓ３０１）。第２閾値は、第１閾値より大きい数値であり、シーケンス番号群を分割するかどうかを判定するための閾値である。通信装置２００は、シーケンス番号が最新のシーケンス番号より第２閾値以上大きい場合（Ｓ３０１のＹｅｓ）、シーケンス番号群を分割する（Ｓ３０２）。シーケンス番号群の分割は、受信したパケットのシーケンス番号を境界として分割する。シーケンス番号の分割は、例えば、受信したパケットのシーケンス番号以上のシーケンス番号を有するシーケンス番号群と、受信したパケットのシーケンス番号より小さいシーケンス番号を有するシーケンス番号群の２つのシーケンス番号群に分割する。また、パケットの受信順序が逆転する場合も考慮し、受信したパケットのシーケンス番号より所定値（例えば１０）小さいシーケンス番号を境界として分割してもよい。以降、第１閾値を１０、第２閾値を５００として説明する。
【０１１１】
図１７のシーケンスに戻り、通信装置２００はパケット（１）を受信すると（Ｓ３２）、シーケンス番号差が（０（初期値）−１００＝）−１００であり、第１閾値１０より小さいので、第１認証を通過させる。
【０１１２】
次に、パケット（８０）を受信すると（Ｓ３３）、シーケンス番号差が（１００−８０＝）１であり、第１閾値１０より小さくないので、第１認証を不通過とし、受信したパケットを破棄する。
【０１１３】
次に、パケット１００１を受信すると（Ｓ３４）、シーケンス番号差が（１００−１００１＝）―９０１であり、第１閾値１０より小さいので、第１認証を通過させる。さらに、通信装置２００は、受信したパケットのシーケンス番号１００１が、先行受信パケットの最新シーケンス番号１００より、第２閾値以上大きいので、シーケンス番号群を分割する。通信装置２００は、受信したパケットのシーケンス番号１００１から、シーケンス番号群１の最大のシーケンス番号４０００までを、シーケンス番号群２として、分割前のシーケンス番号群１より分離する（Ｔ２）。
【０１１４】
次に、パケット２００１を受信すると（Ｓ３５）、シーケンス番号差が（１００１−２００１＝）−１０００であり、第１閾値１０より小さいので、第１認証を通過させる。さらに、通信装置２００は、受信したパケットのシーケンス番号２００１が、先行受信パケットの最新シーケンス番号１００１より、第２閾値以上大きいので、シーケンス番号群を分割する。通信装置２００は、受信したパケットのシーケンス番号２００１から、シーケンス番号群２の最大のシーケンス番号４０００までを、シーケンス番号群３として、分割前のシーケンス番号群２より分離する（Ｔ３）。
【０１１５】
第３の実施の形態においては、通信装置は、受信したパケットのシーケンス番号が最新のシーケンス番号よりも第２閾値以上大きいかどうかを判定する。そして、第２閾値以上大きい場合、受信したシーケンス番号群から新たなシーケンス番号群を分割する。
【０１１６】
例えば、通信システムにおいて、パケットを送信する頻度が低く、認証生成処理が重複して実行されない場合、１つのシーケンス番号群でパケットを送受信する。しかし、通信システムを運用中にパケットの送信頻度が上昇すると、複数の認証生成処理装置が並列に処理を実行する。この場合、通信装置は、複数のシーケンス番号群に分割して複数の認証生成処理装置が処理する。そこで、受信側は、送信側でシーケンス番号群が新たに発生したことを検出すると、受信したシーケンス番号群から新たなシーケンス番号群を分割し、分割したシーケンス番号群内でシーケンス番号順の受信の認証を行う。このように、第３の実施の形態では、通信システムの通信の状態の変化に応じてシーケンス番号群の数を増加させることができる。
【０１１７】
［第４の実施の形態］
次に第４の実施の形態について説明する。
【０１１８】
第４の実施の形態では、受信側の通信装置は、復号処理を並列で実行する複数の復号処理部を有する。複数の復号処理部は、それぞれ異なるシーケンス番号群を対応づけられ、受信パケットのシーケンス番号を有するシーケンス番号群を対応づけられた復号処理部が、受信パケットの暗号化データの復号処理を実行する。
【０１１９】
＜通信装置の構成例＞
図１９は、通信装置２００の構成例を示す図である。パケット受信制御プログラム２２３は、さらに、復号モジュール２２３３を有する。
【０１２０】
ＣＰＵ２１０は、復号モジュール２２３３を実行することで、復号処理部を構築し、復号処理部が実行する復号処理を実現する。復号処理は、受信したパケットの暗号化データを復号する処理であり、送信側と受信側の通信装置で共通の暗号化鍵を使用する。複数の復号処理部を構築する場合、例えば、復号モジュール２２３３を複数回実行するか、構築する復号モジュールの数を引数として復号モジュール２２３３を実行する。また、複数の復号処理部は、例えば、それぞれに専用のアクセラレーターやＣＰＵが実現してもよい。
【０１２１】
図２０は、シーケンス番号群情報テーブル２２５の例を示す図である。受信側の通信装置２００においては、復号処理部とシーケンス番号群が対応づけられる。
【０１２２】
＜パケット受信時の復号処理＞
図２１は、パケットを受信したときに実行される復号処理のタイムチャートの例を示す図である。復号処理部は、図２０の対応関係である場合について説明する。
【０１２３】
通信装置の受信部では、シーケンス番号１００１、１００２、１、２００１、３００１の順番でパケットを受信する。復号処理部は、それぞれ対応づけられたシーケンス番号群のパケットの暗号化データの復号を行う。
【０１２４】
シーケンス番号１００１のパケットは、復号処理部２が復号処理を実行する。次に受信したシーケンス番号１００２のパケットは、復号処理部２が復号処理を実行するが、シーケンス番号１００１のパケットを復号処理中であるため、当該復号処理が完了してから、シーケンス番号１００２のパケットの復号処理を実行する。シーケンス番号１、２００１、３００１のパケットは、それぞれ空状態の復号処理部１、３、４が復号処理を実行する。
【０１２５】
第４の実施の形態では、通信装置は、複数の復号処理部をそれぞれ異なるシーケンス番号群に対応づける。こうすることで、通信装置は、例えば、第２の実施の形態のように、音声データなどリアルタイム性が高いデータの復号処理を、他のデータの復号処理の完了を待つことなく実行することができ、リアルタイム性を確保できる。
【０１２６】
＜パケット受信時の復号処理の変形例＞
変形例では、複数の復号処理部は、シーケンス番号群とは対応づけられず、パケットの受信したときに、復号処理を実行していない（以降、空状態と呼ぶ）復号処理部が復号処理を実行する。
【０１２７】
図２２は、パケットを受信したときに実行される復号処理のタイムチャートの例を示す図である。パケットの受信順は、図２１と同様である。復号処理部は、それぞれ、パケットを受信した順に復号処理を実行する。複数の復号処理部が空状態である場合、復号処理部の番号が小さい順に、復号処理を実行する。
【０１２８】
シーケンス番号１００１のパケットを受信したとき、全ての復号処理部が空状態であるため、復号処理部１が復号処理を実行する。シーケンス番号１００２のパケットを受信したとき、復号処理部１は復号処理を実行中であるため、復号処理部２が復号処理を実行する。同様に、シーケンス番号１、２００１のパケットを、復号処理部３、４が復号処理を実行する。
【０１２９】
シーケンス番号３００１のパケットを受信したとき、復号処理部４以外の復号処理部が空状態であるため、復号処理部１が復号処理を実行する。
【０１３０】
変形例では、空状態の復号処理部が新たに受信したパケットの復号処理を実行する。こうすることで、復号処理部が空状態である時間が少なくなり、受信パケットの復号処理を待つ時間が減少する。すなわち、受信したパケットの復号処理が完了するまでの時間を短くすることができる。
【０１３１】
以上の第１〜第４の実施の形態を含む実施の形態に関し、更に以下の付記を開示する。
【０１３２】
（付記１）
パケットを送受信する通信装置であって、
連続するシーケンス番号を有する異なるシーケンス番号群をそれぞれ対応づけられ、パケットに割り当てたシーケンス番号に基づき前記パケットに含まれる認証情報を生成する認証生成処理を並列で実行する複数の認証生成処理部と、
前記複数の認証生成処理部の認証生成処理が完了した順に、前記割り当てたシーケンス番号を含むパケットを他の通信装置に送信する送信部と、
前記他の通信装置からパケットを受信する受信部と、
前記受信パケットのシーケンス番号の属するシーケンス番号群の、前記受信パケットより前に受信した先行受信パケットのシーケンス番号と、前記受信パケットのシーケンス番号との関係に基づいて前記受信パケットの認証を行う第１認証処理を実行する認証処理部とを有する
通信装置。
【０１３３】
（付記２）
前記関係は、前記先行受信パケットの最新のシーケンス番号と、前記受信パケットのシーケンス番号との差である
付記１記載の通信装置。
【０１３４】
（付記３）
前記認証処理部は、前記差が第１閾値より小さい場合、前記受信パケットの前記第１認証処理を通過させる
付記２記載の通信装置。
【０１３５】
（付記４）
前記認証生成処理は、前記送信パケットのデータを暗号化し、前記暗号化した暗号化データと前記割り当てたシーケンス番号に基づいて、前記認証情報を生成することを含み、
前記認証処理部は、前記受信パケットが前記第１認証処理を通過した場合、さらに、前記受信パケットの認証情報及びシーケンス番号に基づいて前記受信パケットの認証を行う第２認証処理を実行し、前記第２認証処理を通過した前記受信パケットの暗号化データを復号する復号処理を実行する
付記１記載の通信装置。
【０１３６】
（付記５）
さらに、前記復号処理を並列で実行する複数の復号処理部を有し、
前記受信パケットの暗号化データの復号処理は、前記復号処理を実行中でないいずれかの復号処理部が実行する
付記４記載の通信装置。
【０１３７】
（付記６）
さらに、前記復号処理を並列で実行する複数の復号処理部を有し、
前記受信パケットのシーケンス番号を有するシーケンス番号群を対応づけられた前記復号処理部が、前記受信パケットの暗号化データの復号処理を実行する
付記４記載の通信装置。
【０１３８】
（付記７）
前記複数の認証生成処理部の少なくとも１つは、他の認証生成処理部とは異なるデータサイズが対応づけられ、
前記複数の認証生成処理部は、それぞれに対応づけられたデータサイズのパケットの前記認証生成処理を実行する
付記４記載の通信装置。
【０１３９】
（付記８）
第１のデータサイズが対応づけられた認証生成処理部の数は、第１のデータサイズより大きい第２のデータサイズが対応づけられた認証生成処理部の数より多い
付記７記載の通信装置。
【０１４０】
（付記９）
前記認証処理部は、さらに、前記差が前記第１閾値以上である場合であって、前記受信パケットのシーケンス番号の方が前記先行受信パケットの最新のシーケンス番号より、第１閾値より大きい第２閾値以上に大きい場合、前記受信パケットの属する第１のシーケンス番号群の最小のシーケンス番号から、前記受信パケットのシーケンス番号より小さいシーケンス番号までを有するシーケンス番号群を、第２のシーケンス番号群として、前記第１のシーケンス番号群より分離する
付記３記載の通信装置。
【０１４１】
（付記１０）
前記他の通信装置に送信するパケットのデータが生成されたとき、前記認証生成処理を実行していないいずれかの認証生成処理部が、前記生成されたデータの認証生成処理を実行する
付記１記載の通信装置。
【０１４２】
（付記１１）
前記異なるシーケンス番号群は、それぞれ重複したシーケンス番号を有さず、前記通信装置が使用可能なシーケンス番号の全てを、前記異なるシーケンス番号群のいずれかが有する
付記１記載の通信装置。
【０１４３】
（付記１２）
通信装置におけるパケットを送受信するパケット送受信プログラムであって、
連続するシーケンス番号を有する異なるシーケンス番号群をそれぞれ対応づけられ、パケットに割り当てたシーケンス番号に基づき前記パケットに含まれる認証情報を生成する複数の認証生成処理を並列で実行し、
前記複数の認証生成処理が完了した順に、前記割り当てたシーケンス番号を含むパケットを他の通信装置に送信し、
前記他の通信装置からパケットを受信し、
前記受信パケットのシーケンス番号の属するシーケンス番号群の、前記受信パケットより前に受信した先行受信パケットのシーケンス番号と、前記受信パケットのシーケンス番号との関係に基づいて前記受信パケットの認証を行う第１認証処理を実行する処理を
コンピュータに実行させるパケット送受信プログラム。
【０１４４】
（付記１３）
通信装置におけるパケットを送受信するパケット送受信方法であって、
連続するシーケンス番号を有する異なるシーケンス番号群をそれぞれ対応づけられ、パケットに割り当てたシーケンス番号に基づき前記パケットに含まれる認証情報を生成する複数の認証生成処理を並列で実行し、
前記複数の認証生成処理が完了した順に、前記割り当てたシーケンス番号を含むパケットを他の通信装置に送信し、
前記他の通信装置からパケットを受信し、
前記受信パケットのシーケンス番号の属するシーケンス番号群の、前記受信パケットより前に受信した先行受信パケットのシーケンス番号と、前記受信パケットのシーケンス番号との関係に基づいて前記受信パケットの認証を行う第１認証処理を実行する
パケット送受信方法。
【０１４５】
（付記１４）
連続するシーケンス番号を有する異なるシーケンス番号群をそれぞれ対応づけられ、パケットに割り当てたシーケンス番号に基づき前記パケットに含まれる認証情報を生成する複数の認証生成処理を並列で実行し、
前記複数の認証生成処理が完了した順に、前記割り当てたシーケンス番号を含むパケットを第２の通信装置に送信する第１の通信装置と、
前記第１の通信装置からパケットを受信し、
前記受信パケットのシーケンス番号の属するシーケンス番号群の、前記受信パケットより前に受信した先行受信パケットのシーケンス番号と、前記受信パケットのシーケンス番号との関係に基づいて前記受信パケットの認証を行う第１認証処理を実行する第２の通信装置とを有する
通信システム。
【符号の説明】
【０１４６】
１０…通信システム                        １００…端末装置
２００…通信装置（基地局装置）            ２１０…ＣＰＵ
２２０…ストレージ                        ２２１…セッション管理プログラム
２２２…パケット送信制御プログラム  ２２２１…パケット認証生成モジュール
２２２２…パケット送信モジュール          ２２３…パケット受信制御プログラム
２２３１…パケット受信モジュール          ２２３２…パケット認証モジュール
２２３３…復号モジュール                  ２２４…セッション情報テーブル
２２５…シーケンス番号群情報テーブル      
２２６…シーケンス番号群毎受信パケット管理テーブル
２２７…データサイズ情報テーブル          ２３０…メモリ
２４０…ＮＩＣ                      ３００…ゲートウェイ
４００…管理装置
【図１】
2017191965.tif 000003
【図２】
2017191965.tif 000004
【図３】
2017191965.tif 000005
【図４】
2017191965.tif 000006
【図５】
2017191965.tif 000007
【図６】
2017191965.tif 000008
【図７】
2017191965.tif 000009
【図８】
2017191965.tif 000010
【図９】
2017191965.tif 000011
【図１０】
2017191965.tif 000012
【図１１】
2017191965.tif 000013
【図１２】
2017191965.tif 000014
【図１３】
2017191965.tif 000015
【図１４】
2017191965.tif 000016
【図１５】
2017191965.tif 000017
【図１６】
2017191965.tif 000018
【図１７】
2017191965.tif 000019
【図１８】
2017191965.tif 000020
【図１９】
2017191965.tif 000021
【図２０】
2017191965.tif 000022
【図２１】
2017191965.tif 000023
【図２２】
2017191965.tif 000024