(57)【特許請求の範囲】
【請求項１】
レイヤ２の通信機能を有し、ヘッダ内に識別子フィールドを有するＩＰパケットをＭＡＣフレームのペイロードとして通信するための通信装置であって、
擬似乱数によってベクトル識別子を新規に発生させ、当該ベクトル識別子に応じて初期ベクトル（Ｉｎｉｔｉａｌ  Ｖｅｃｔｏｒ）を生成するベクトル出力部と、
前記ベクトル出力部によって生成された前記初期ベクトルを用いて、通信データが分割されることにより生成された複数のＩＰパケットを暗号化して、暗号化された複数の前記ＩＰパケットを生成するパケット暗号化部と、
暗号化された複数の前記ＩＰパケットの前記識別子フィールドに既に記録されている情報を、前記ベクトル識別子に基づいて変換することにより、暗号化された複数の前記ＩＰパケットのサイズを増加させることなく、暗号化された複数の前記ＩＰパケットの前記識別子フィールドに、同一の前記ベクトル識別子を記録するベクトル書込部と
を備える通信装置。
【請求項２】
既に暗号化したＩＰパケットについて、ＩＰパケット内の前記識別子フィールドに記憶されていたパケット識別子と、ＩＰパケットの暗号化に用いた前記初期ベクトルを特定する前記ベクトル識別子とを対応付けて記憶する記憶部をさらに備え、
前記ベクトル出力部は、新たに暗号化すべきＩＰパケットの前記パケット識別子に対応する一の前記ベクトル識別子が前記記憶部に記憶されていることを条件として、当該一のベクトル識別子に対応する前記初期ベクトルを当該ＩＰパケットの暗号化に用いる前記初期ベクトルとして出力する
請求項１に記載の通信装置。
【請求項３】
前記記憶部は、当該通信装置が暗号鍵を変更したことに応じて、前記記憶部に記憶した前記パケット識別子および前記初期ベクトルの対応付けを削除する請求項２に記載の通信装置。
【請求項４】
前記パケット暗号化部は、前記ＩＰパケットにおける前記識別子フィールドを除く部分を暗号化する請求項１から３のいずれかに記載の通信装置。
【請求項５】
前記パケット暗号化部は、
前記ＩＰパケットを予め定められたサイズを有する複数の分割データに順次分割する分割部と、
前記初期ベクトルを用いて前記分割データを暗号化し、暗号化された暗号化データを次のベクトルとして用いて次の前記分割データを更に暗号化していくことにより前記複数の分割データを複数の前記暗号化データとして暗号化するデータ暗号化部と
を備える請求項１から４のいずれかに記載の通信装置。
【請求項６】
受信装置に対して送信すべきＭＡＣフレームのペイロードが、ＩＰプロトコルを用いるＩＰパケットであるか否かを判定する判定部を更に備え、
前記パケット暗号化部は、ＭＡＣフレームのペイロードがＩＰパケットであることを条件として当該ＩＰパケットを暗号化して暗号化パケットを生成する
請求項１から５のいずれかに記載の通信装置。
【請求項７】
レイヤ２の通信機能を有する通信装置が、ヘッダ内に識別子フィールドを有するＩＰパケットをＭＡＣフレームのペイロードとして通信するための通信方法であって、
前記通信装置のベクトル出力部が、擬似乱数によってベクトル識別子を新規に発生させ、当該ベクトル識別子に応じて初期ベクトル（Ｉｎｉｔｉａｌ  Ｖｅｃｔｏｒ）を生成するベクトル出力工程と、
前記通信装置のパケット暗号化部が、前記ベクトル出力工程によって生成された前記初期ベクトルを用いて、通信データが分割されることにより生成された複数のＩＰパケットを暗号化して、暗号化された複数の前記ＩＰパケットを生成するパケット暗号化工程と、
前記通信装置のベクトル書込部が、暗号化された複数の前記ＩＰパケットの前記識別子フィールドに既に記録されている情報を、前記ベクトル識別子に基づいて変換することにより、暗号化された複数の前記ＩＰパケットのサイズを増加させることなく、暗号化された複数の前記ＩＰパケットの前記識別子フィールドに、同一の前記ベクトル識別子を記録するベクトル書込工程と
を備える通信方法。
【請求項８】
前記通信装置の記憶部が、既に暗号化したＩＰパケットについて、ＩＰパケット内の前記識別子フィールドに記憶されていたパケット識別子と、ＩＰパケットの暗号化に用いた前記初期ベクトルを特定する前記ベクトル識別子とを対応付けて記憶する記憶工程をさらに備え、
前記ベクトル出力工程は、新たに暗号化すべきＩＰパケットの前記パケット識別子に対応する一の前記ベクトル識別子が前記記憶部に記憶されていることを条件として、当該一のベクトル識別子に対応する前記初期ベクトルを当該ＩＰパケットの暗号化に用いる前記初期ベクトルとして出力する
請求項７に記載の通信方法。
【請求項９】
前記パケット暗号化工程は、
前記ＩＰパケットを予め定められたサイズを有する複数の分割データに順次分割する分割工程と、
前記初期ベクトルを用いて前記分割データを暗号化し、暗号化された暗号化データを次のベクトルとして用いて次の前記分割データを更に暗号化していくことにより前記複数の分割データを複数の前記暗号化データとして暗号化するデータ暗号化工程と
を備える請求項７または８に記載の通信方法。
【請求項１０】
前記通信装置の判定部が、受信装置に対して送信すべきＭＡＣフレームのペイロードが、ＩＰプロトコルを用いるＩＰパケットであるか否かを判定する判定工程を更に備え、
前記パケット暗号化工程は、ＭＡＣフレームのペイロードがＩＰパケットであることを条件として当該ＩＰパケットを暗号化して暗号化パケットを生成する
請求項７から９のいずれかに記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置および通信方法に関する。特に本発明は、通信の秘匿性確保のためにＩＰパケットを暗号化する通信装置および通信方法に関する。
【背景技術】
【０００２】
従来、暗号通信などの分野において、ブロック型の暗号化方式が用いられている。ブロック方式の暗号化方式において、暗号化装置は、平文を所定のビット数毎に分割した分割データを生成し、生成されたそれぞれの分割データを暗号鍵で暗号化する。この暗号化方式において、それぞれの分割データを同一の暗号鍵で暗号化してしまうと、同一の平文データに対しては同一の暗号データが得られることとなる。このため、複数の暗号データが同一であれば、それらは同一の平文データから生成されたということが分かってしまう。また、大量の暗号データを収集して、各暗号データの出現頻度を解析すれば、暗号データと平文データとの対応付けが判明してしまい、ひいては、暗号鍵や暗号アルゴリズムが推測されるおそれがある。
【０００３】
これに対し、従来、ＣＢＣ（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ）という暗号化方式が用いられている（非特許文献１を参照。）。ＣＢＣにおいて、暗号化装置は、平文データを分割した複数の分割データのうち第１の分割データと、予め定められたベクトルとを、排他的論理和演算などによって演算して演算結果を得る。そして、暗号化装置は、その演算結果を暗号化して暗号データを得る。次に、暗号化装置は、その暗号データを次のベクトルとして用い、第２の分割データとの間で演算して演算結果を得る。暗号化装置は、その演算結果を暗号化することにより、次の暗号データを得る。以上の処理の繰り返しによって、暗号化装置は、平文データを暗号化する。この処理によって得られる複数の暗号データは、例え同一の平文データから生成された場合であっても異なるビット配列となる。
【０００４】
また、近年、広域イーサネットサービスなどの普及に伴って、レイヤ３（ＯＳＩ参照モデルのネットワーク層）における暗号化装置のみならず、レイヤ２（ＯＳＩ参照モデルのデータ・リンク層）における暗号化装置が用いられるようになってきている（イーサネットは登録商標である。）。このため、レイヤ２の通信装置に対して、上記のＣＢＣのような暗号化方式を実装する必要が生じてきている。
【０００５】
【非特許文献１】ISO/IEC 10116:1997 "Modes of Operation for an n-bit block cipher"
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＣＢＣにおいて、暗号データを復号する処理には、暗号化に用いたベクトルが必要である。したがって、ＣＢＣを通信装置に応用した場合には、この通信装置は、暗号データにベクトルを付加して送信する必要がある。しかしながら、ベクトルの付加によって通信フレームの大きさがＭＴＵ（Maximum Transmission Unit）を超えた場合には、通信フレームの分割によって通信速度が大きく低下する恐れがある。また、レイヤ２（ＯＳＩ参照モデルのデータ・リンク層）においては、通信フレームの分割処理が規格化されていないので、レイヤ２の通信装置にＣＢＣを応用することは難しい場合がある。
【０００７】
そこで本発明は、上記の課題を解決することのできる通信装置および通信方法を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００８】
本発明の第１の形態によると、そのヘッダ内に識別子フィールドを有するデータパケットを通信するための通信装置であって、予め定めた初期ベクトル（Ｉｎｉｔｉａｌ  Ｖｅｃｔｏｒ）を用いてデータパケットを暗号化して暗号化パケットを生成するパケット暗号化部と、暗号化パケットにおける、データパケットが複数のデータパケットに分割されたことに応じて分割後のそれぞれのデータパケットのヘッダ内に同一のパケット識別子を記憶するための識別子フィールドの少なくとも一部に、初期ベクトルを特定するベクトル識別子を記録するベクトル書込部とを備える通信装置、および、この通信装置による通信方法を提供する。
また、本発明の第２の形態によると、そのヘッダ内に識別子フィールドを有するデータパケットを通信するための通信装置であって、データパケットを暗号化した暗号化パケットのヘッダ内に設けられた、データパケットが複数のデータパケットに分割されたことに応じて分割後のそれぞれのデータパケットのヘッダ内に同一のパケット識別子を記憶するための識別子フィールドの少なくとも一部から、データパケットの暗号化に用いられた初期ベクトルを特定するベクトル識別子を取得する識別子取得部と、ベクトル識別子により特定される初期ベクトルを用いて暗号化パケットを復号化して復号化データを生成するパケット復号化部とを備える通信装置、および、この通信装置による通信方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【０００９】
本発明によれば、通信フレームのサイズを増大させることなく、また、暗号化に伴う処理時間を増大させることなく、暗号通信における情報の秘匿性を高めることができる。
【発明を実施するための最良の形態】
【００１０】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１１】
図１は、情報処理システム１０の全体構成を示す。情報処理システム１０は、送信側システム１２と、受信側システム１４とを備える。送信側システム１２は、通信端末１３と、レイヤ３（ＯＳＩ参照モデルのネットワーク層）の通信機能を有する通信装置１５と、レイヤ２（ＯＳＩ参照モデルのデータリンク層）の通信機能を有する通信装置３０とを有する。通信端末１３は、後述する通信装置９５と通信するために、通信装置１５に対してデータパケットを送信する。通信装置１５は、例えば、インターネット・プロトコル（以下、ＩＰ）による通信を制御する。具体的には、通信装置１５は、通信端末１３からデータパケットを受け取り、ＩＰプロトコルの通信を制御するための情報、例えば、宛先ＩＰアドレスなどの情報をＩＰヘッダに書き込んで通信装置３０に送る。通信装置３０に送られるデータパケットを通信データ２０とする。
【００１２】
通信装置３０は、メディア・アクセス・コントロール・アドレス（以下、ＭＡＣアドレス）を用いた通信を制御する。具体的には、通信装置３０は、通信データ２０を通信装置１５から受け取り、宛先のＭＡＣアドレスなどの情報をＭＡＣヘッダに書き込む。また、通信装置３０は、通信データ２０の少なくとも一部を暗号化する。この暗号は、通信装置６０によって復号可能である。このようにして生成された通信データを通信データ５０とする。通信データ５０は、受信側システム１４に対して送信される。
【００１３】
なお、本例に示した通信端末１３は、例えば、パーソナル・コンピュータ、ファイル・サーバやプリント・サーバなどの各種のサーバ、または、ＰＤＡなどである。また、通信装置１５は、ルータやゲートウェイと呼ばれるレイヤ３スイッチである。また、通信装置３０は、ブリッジなどと呼ばれるレイヤ２スイッチである。
【００１４】
また、これらのパーソナル・コンピュータなど、または、スイッチなどは、例えば、ＣＤ−ＲＯＭ１００に記録されたプログラムによって制御されてもよい。このプログラムは、パーソナル・コンピュータなど、または、スイッチなどに搭載されたプロセッサを、通信端末１３、通信装置１５および／または通信装置３０として機能させる。さらに、このプログラムは、プロセッサを、さらに、通信端末９５、通信装置６０および／または通信装置９０として機能させてもよい。このプログラムは、ＣＤ−ＲＯＭ１００から読み出されて、送信側システム１２または受信側システム１４に対して送信され、送信側システム１２または受信側システム１４にインストールされて実行される。このプログラムが送信側システム１２または受信側システム１４に働きかけて行わせる具体的な動作は、図２から図８において説明する動作と同一であるので、説明を省略する。
【００１５】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、ＣＤ−ＲＯＭ１００の他に、フレキシブルディスク、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを送信側システム１２に提供してもよい。
【００１６】
受信側システム１４は、レイヤ２の通信機能を有する通信装置６０と、レイヤ３の通信機能を有する通信装置９０と、通信端末９５とを有する。通信装置６０は、ＭＡＣアドレスを用いた通信を制御し、本例においてはＭＡＣフレームの受信装置として機能する。具体的には、通信装置６０は、ＭＡＣヘッダに書かれた情報に基づいて、通信装置６０において中継するべきＭＡＣフレームを取得する。例えば、通信装置６０は、通信データ５０をネットワークを経由して通信装置３０から受け取る。また、通信装置６０は、通信データ５０のうち通信装置３０によって暗号化された部分を復号化する。このようにして生成された通信データを通信データ８０とする。通信装置９０は、通信データ８０を通信装置６０から受け取って通信端末９５に送信する。
【００１７】
このように、本発明の実施形態に係る情報処理システム１０は、レイヤ２における暗号通信を実現することを目的とする。この際、暗号化に伴う処理時間を増大させることなく、ＣＢＣ（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ）などを応用して暗号通信における情報の秘匿性を高めることを目的とする。
【００１８】
なお、本実施形態においては説明の便宜上、送信側システム１２および受信側システム１４を別体のシステムとして説明するが、これら一方のシステムが他方のシステムの機能を更に有していてもよい。即ち、送信側システム１２および受信側システム１４のいずれもが、ＩＰパケットの送信・受信システムとして機能してもよい。
【００１９】
図２は、通信データ２０の具体例を示す。通信データ２０は、ＩＰパケット２００−１をペイロードとするＭＡＣフレームと、ＩＰパケット２００−２をペイロードとするＭＡＣフレームとを有する。ＩＰパケット２００−１およびＩＰパケット２００−２は、ある一つの通信データから生成されている。即ち例えば、通信装置１５は、通信装置１３から受け取った通信データのサイズがそのままではＭＴＵ（Maximum Transmission Unit）を超えるので、この通信データを２つに分割してＩＰパケット２００−１およびＩＰパケット２００−２を生成する。
【００２０】
ＩＰパケット２００−１は、ＩＰヘッダ２１０−１と、ＩＰデータ２２０−１とを含む。ＩＰパケット２００−２は、ＩＰヘッダ２１０−２と、ＩＰデータ２２０−２とを含む。ＩＰヘッダ２１０−１およびＩＰヘッダ２１０−２は、それぞれ、宛先ＩＰアドレスなどの各種の制御情報を含む。また、ＩＰヘッダ２１０−１は識別子フィールド２３０−１を有し、ＩＰデータ２２０−２は識別子フィールド２３０−２を有する。識別子フィールド２３０−１は、ＩＰパケット２００−１のパケット識別子を記録するためのフィールドである。また、識別子フィールド２３０−２は、ＩＰパケット２００−２のパケット識別子を記録するためのフィールドである。ここで、ＩＰパケットが複数のＩＰパケットに分割されたことに応じて、分割後のそれぞれのＩＰパケットの識別子フィールドには、同一のパケット識別子が記憶される。したがって、識別子フィールド２３０−１〜２のそれぞれは、同一のパケット識別子を記憶している。
【００２１】
なお、図２をはじめ、図５および図８においては、レイヤ２およびレイヤ３の処理説明において必要な部分以外のパケット構成については省略して示す。具体的には、ＩＰパケット２００−１は、図２の構成に加えて、更に、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅ）などのエラー検出・訂正用のデータ、または、ヘッダに対応するトレーラなどを有していてもよいが、これらについての説明は省略する。
【００２２】
図３は、通信装置３０の機能構成を示す。通信装置３０は、レイヤ２の通信を制御する機能の他、本図の各部材が示す機能を有する。具体的には、通信装置３０は、判定部３００と、パケット暗号化部３１０と、ベクトル書込部３１５と、記憶部３４０と、ベクトル出力部３５０とを有する。判定部３００は、通信装置６０に対して送信すべきＭＡＣフレームのペイロードがＩＰプロトコルを用いるＩＰパケットであるか否かを判定する。ＭＡＣフレームがイーサネット（登録商標）・フレームフォーマットに従う場合には、判定部３００は、「タイプ」フィールドの値によって、そのペイロードがＩＰパケットか否かを判定してもよい。パケット暗号化部３１０は、このＭＡＣフレームのペイロードがＩＰパケットであることを条件として、そのＩＰパケットを暗号化して暗号化パケットを生成する。
【００２３】
この暗号化には、予め定められた初期ベクトル（Ｉｎｉｔｉａｌ  Ｖｅｃｔｏｒ）が用いられる。より詳細には、パケット暗号化部３１０は、分割部３２０と、データ暗号化部３３０とを有する。そして、まず、分割部３２０は、ＩＰパケットを予め定められたサイズを有する複数の分割データに順次分割する。次に、データ暗号化部３３０は、初期ベクトルを用いて分割データを暗号化する。さらに、データ暗号化部３３０は、暗号化された暗号化データを次のベクトルとして用いて次の分割データを更に暗号化していく。この結果、データ暗号化部３３０は、複数の分割データを複数の暗号化データとして暗号化することができる。
【００２４】
ベクトル書込部３１５は、このように生成された暗号化パケットのＩＰヘッダ内に設けられた所定のフィールドの少なくとも一部に、この初期ベクトルを特定するベクトル識別子を記録する。この所定のフィールドは、具体的には、分割された複数のＩＰパケットから元のＩＰパケットを再構成するために用いる情報を記憶するフィールドである。一例として、このフィールドは、図２に示した識別子フィールド２３０−１である。この識別子フィールド２３０−１は、ＩＰパケットが分割されている場合であっても分割されていない場合であっても、ＩＰパケットの分割に備えて予め確保されているフィールドである。即ち、ベクトル書込部３１５は、ＩＰパケットが分割されているか否かに関わらず、ベクトル識別子をこの識別子フィールド２３０−１に記録する。
【００２５】
これに代えて、この所定のフィールドは、ＩＰパケットのフラグメントオフセットを記憶するフィールドであってもよい。また、この所定のフィールドには、ＩＰパケットのサイズを増加させない方法によって、ベクトル識別子が記録される。例えば、この所定のフィールドに既に記録されている情報がベクトル識別子によって上書きされてもよいし、この所定のフィールドに既に記録されている情報が、ベクトル識別子に基づいて変換されてもよい。更に、この所定のフィールドは、レイヤ３（ネットワーク層）よりも上位層の装置に対して値を渡さないフィールドであることが望ましい。これにより、レイヤ２の暗号通信によって他の階層の通信を妨害することを防ぐことができる。
【００２６】
記憶部３４０は、既に暗号化したＩＰパケットについて、そのＩＰパケット内の識別子フィールドに記憶されていたパケット識別子（パケットＩＤ）と、そのＩＰパケットの暗号化に用いた初期ベクトルを特定するベクトル識別子（ベクトルＩＤ）とを対応付けて記憶する。図３の例では、記憶部３４０は、ベクトルＩＤである０ｘ１２３４に対応付けて、パケットＩＤである０ｘ１２３４・・・・５６７８を記憶している。好ましくは、記憶部３４０は、所定のタイミングによって、または、定期的に、記憶しているパケット識別子および初期ベクトルの対応付けを削除する。これによって、記憶部３４０の必要容量の増大を防止でき、また、ベクトルＩＤの検索速度を向上できる。この所定のタイミングは、一例として、通信装置３０および通信装置６０間で定められた暗号鍵を変更するタイミングであってもよい。
【００２７】
ベクトル出力部３５０は、通信装置３０がＩＰパケットを受信したことに応じ、そのＩＰパケットを新たに暗号化すべきＩＰパケットとして、そのＩＰパケットのパケット識別子に対応するベクトル識別子を記憶部３４０から検索する。このベクトル識別子が検索されたことを条件に、即ち、このベクトル識別子が記憶部３４０に記憶されていることを条件に、ベクトル出力部３５０は、そのベクトル識別子に対応する初期ベクトルを、ＩＰパケットの暗号化に用いる初期ベクトルとして出力する。パケット暗号化部３１０は、この初期ベクトルを用いて上述の暗号化を行う。
【００２８】
また、ベクトル出力部３５０は、検索されたベクトル識別子をベクトル書込部３１５に出力する。ベクトル書込部３１５は、このベクトル識別子をＩＰヘッダ内に記録する。以上の処理により、同じパケットＩＤを有するＩＰパケットには、同じベクトル識別子が記録される。これにより、例えば識別子フィールド２３０−１および識別子フィールド２３０−２の記録内容を同一として、受信側システム１４におけるＩＰパケットの再構成を可能とすることができる。
なお、ベクトル出力部３５０は、ベクトル識別子が検索されなかったことを条件に、所定の擬似乱数などによってベクトル識別子を新規に発生させ、そのベクトル識別子に応じて初期ベクトルを生成してもよい。生成されたベクトル識別子および初期ベクトルは、同様に、ベクトル書込部３１５およびパケット暗号化部３１０に対して出力される。
【００２９】
図４は、通信装置３０によってＩＰパケット２００−１が暗号化される処理の概念図である。本図上部には、暗号化前のＩＰパケット２００−１を示し、本図下部には、暗号化後のＩＰパケット２００−１を示す。通信装置３０はＩＰパケット２００−１をレイヤ２において暗号化するので、本例のＩＰパケット２００−１は、図２のＩＰパケット２００−１に加えて更にＭＡＣヘッダを有する。このＭＡＣヘッダのデータサイズは例えば６バイトである。
【００３０】
まず、分割部３２０は、ＩＰパケット２００−１を予め定められたサイズを有する複数の分割データに順次分割する。例えば、ＩＰデータ２２０−１を分割した複数の分割データを平文データ２２５−１〜Ｎとする。なお、ＩＰヘッダ２１０−１からも分割データは生成される。次に、ベクトル出力部３５０は、ベクトルＩＤに基づいて、或いは、擬似乱数によって初期ベクトルを生成する（Ｓ４１０）。ベクトルＩＤから初期ベクトルを生成する処理は、たとえば、所定のエクスパンド・ハッシュ関数によって実現され、この関数の内容は公開されていても構わない。
【００３１】
次に、データ暗号化部３３０は、ＩＰヘッダ２１０−１内の分割データを、初期ベクトルを用いて順次暗号化する。例えば、データ暗号化部３３０は、ＩＰヘッダ２１０−１内のある分割データと、初期ベクトルとを排他的論理和演算する（Ｓ４２０）。そして、データ暗号化部３３０は、その演算結果を所定の暗号鍵で暗号化して暗号化データを生成する（Ｓ４３０）。この際、パケット暗号化部３１０は、ＩＰパケット２００−１内の識別子フィールド２３０−１をベクトル識別子に置換して（Ｓ４３５）、そのＩＰパケットにおけるその識別子フィールドを除く部分を暗号化してもよい。なお、パケット暗号化部３１０は、識別子フィールド２３０−１の全部をベクトル識別に置換してもよいし、識別子フィールド２３０−１の一部のみをベクトル識別子に置換してもよい。一部のみを置換した場合には、パケット暗号化部３１０は、ＩＰパケット２００−１のうち、その置換した部分を除く部分を暗号化してもよい。
【００３２】
これに代えて、パケット暗号化部３１０は、平文のＩＰパケット２００−１ではなく、Ｓ４２０において排他的論理和演算した演算結果をベクトル識別子に置換してもよい。即ち、パケット暗号化部３１０は、Ｓ４２０において排他的論理和演算した演算結果のうち、識別子フィールド２３０−１に対応する部分を、ベクトル識別子に置換してもよい。このような構成においても、暗号化データを復号化した時点でベクトル識別子を得ることができ、復号化に際し排他的論理和演算に用いる初期ベクトルを得ることができる。
【００３３】
続いて、データ暗号化部３３０は、暗号化データを次のベクトルとして用いて、次の分割データを暗号化する。暗号化手順は同様である。ＩＰヘッダ２１０−１の暗号化が終わると、データ暗号化部３３０は、最後の暗号化データをベクトルとして用いて、平文データ２２５−１を暗号化する。具体的には、データ暗号化部３３０は、そのベクトルと平文データ２２５−１とを排他的論理和演算する（Ｓ４４０）。そして、データ暗号化部３３０は、その演算結果を所定の暗号鍵で暗号化して暗号化データ２２８−１を生成する（Ｓ４５０）。次に、データ暗号化部３３０は、暗号化データ２２８−１を暗号化データとして用い、平文データ２２５−１の次の平文データ２２５−２を暗号化する。具体的には、データ暗号化部３３０は、暗号化データ２２８−１と平文データ２２５−２とを排他的論理和演算する（Ｓ４６０）。そして、データ暗号化部３３０は、その演算結果を所定の暗号鍵で暗号化して暗号化データ２２８−２を生成する（Ｓ４７０）。以降同様に暗号化を繰り返し、データ暗号化部３３０は、最後に暗号化データ２２８−Ｎを生成する（Ｓ４８０、Ｓ４９０）。
【００３４】
以上の暗号化方式は一例であり、初期ベクトルを用いた暗号化方式には多様なバリエーションが考えられる。例えば、パケット暗号化部３１０は、分割データを暗号化したデータと、初期ベクトルとを排他的論理和演算し、その演算結果を暗号化データとして生成してもよい。この場合、パケット暗号化部３１０は、その暗号化データを次のベクトルとして用いて、次の分割データを暗号化する。このような構成であっても、図４の例と同様に暗号化の秘匿性を高めることができる。
なお、ＩＰパケット２００−２の暗号化の処理は、ＩＰパケット２００−１の暗号化の処理と同様であるから説明を省略する。
【００３５】
図５は、通信データ５０の具体例を示す。以上の暗号化によって得られた通信データ５０は、ＩＰパケット２００−１をペイロードとするＭＡＣフレームと、ＩＰパケット２００−２をペイロードとするＭＡＣフレームとを有する。ＩＰパケット２００−１は、暗号化されたＩＰヘッダ２１０−１と、暗号化されたＩＰデータ２２０−１とを有する。ＩＰヘッダ２１０−１は、分割データ毎に暗号化されている。但し、ＩＰヘッダ２１０−１は、識別子フィールド２３０−１内に、暗号化されていないベクトル識別子を含む。ＩＰデータ２２０−１は、分割データ毎に暗号化されている。同様に、ＩＰヘッダ２１０−２およびＩＰデータ２２０−２は、分割データ毎に暗号化されている。但し、ＩＰヘッダ２１０−２は、識別子フィールド２３０−２内に、暗号化されていないベクトル識別子を含む。
【００３６】
図６は、通信装置６０の機能構成を示す。通信装置６０は、レイヤ２の通信を制御する機能の他、判定部６００と、識別子取得部６０５と、パケット復号化部６１０とを有する。判定部６００は、通信装置６０が受信したＭＡＣフレームのペイロードがＩＰパケットであるか否かを判定する。ＩＰパケットであることを条件に、識別子取得部６０５は、暗号化パケットのＩＰヘッダ内に設けられた識別子フィールドの少なくとも一部から、そのＩＰパケットの暗号化に用いられた初期ベクトルを特定するベクトル識別子を取得する。この識別子フィールドは、分割された複数のＩＰパケットから元のＩＰパケットを再構成するために用いる情報の一例である。同じＩＰパケットから分割された複数のＩＰパケットは、この識別子フィールドに互いに同一の値を格納している。
【００３７】
パケット復号化部６１０は、このベクトル識別子により特定される初期ベクトルを用いて暗号化パケットを復号化して復号化データを生成する。具体的には、パケット復号化部６１０は、分割部６２０と、ベクトル取得部６３０と、データ復号化部６４０とを有する。分割部６２０は、暗号化パケットを予め定められたサイズを有する複数の分割データに順次分割する。ベクトル取得部６３０は、暗号化パケットの識別子フィールドから取得されたベクトル識別子に対応する初期ベクトルを取得する。データ復号化部６４０は、初期ベクトルを用いて分割データを復号化し、前の分割データを次のベクトルとして用いて次の分割データを更に復号化していく。この結果、データ復号化部６４０は、複数の分割データを複数の復号化データとして復号化することができる。
【００３８】
図７は、通信装置６０によってＩＰパケット２００−１が復号化される処理の概念図である。まず、分割部６２０は、ＩＰヘッダ２１０−１およびＩＰデータ２２０−１を複数の分割データに分割する。ＩＰデータ２２０−１を分割した複数の分割データを暗号化データ２２８−１〜Ｎとする。また、識別子取得部６０５は、識別子フィールド２３０−１からベクトル識別子を取得する（Ｓ７００）。次に、ベクトル取得部６３０は、そのベクトル識別子に対応する初期ベクトルを取得する（Ｓ７１０）。ベクトル識別子から初期ベクトルを取得する処理は、既に述べたように、予め定められたハッシュ関数によって実現されてもよい。
【００３９】
次に、データ復号化部６４０は、初期ベクトルを用いて分割データを復号化し、前の分割データを次のベクトルとして用いて次の分割データを更に復号化していく。これにより、データ復号化部６４０は、複数の分割データを複数の復号化データとして復号化することができる。例えば、具体的には、データ復号化部６４０は、ＩＰヘッダ２１０−１内のある分割データを復号化する（Ｓ７２０）。この分割データがベクトル識別子を含む場合には、データ復号化部６４０は、この暗号化データ２２８−１のうちベクトル識別子を除く部分を復号化する。そして、データ復号化部６４０は、復号化されたデータと、初期ベクトルとを排他的論理和演算することにより、平文データ２２５−１を生成する（Ｓ７３０）。復号化前の分割データを次のベクトルとして用いて、データ復号化部６４０は、次の分割データを復号化する。
【００４０】
ＩＰヘッダ２１０−１内の復号化を終えると、次に、データ復号化部６４０は、ＩＰデータ２２０−１内を復号化する。具体的には、最後に復号化した分割データの復号化前の状態のデータをベクトルとし、データ復号化部６４０は、暗号化データ２２８−１を復号化する（Ｓ７４０）。そして、データ復号化部６４０は、復号化した暗号化データ２２８−１と、ベクトルとを排他的論理和演算する（Ｓ７５０）。次に、データ復号化部６４０は、暗号化データ２２８−１をベクトルとして用い、暗号化データ２２８−２を復号化する。例えば、データ復号化部６４０は、暗号化データ２２８−２を復号化し（Ｓ７６０）、復号化された暗号化データ２２８−２と暗号化データ２２８−１とを排他的論理和演算する（Ｓ７７０）。この復号化を順次繰り返し、最後に、データ復号化部６４０は、暗号化データ２２８−Ｎを平文データ２２５−Ｎに復号化する（Ｓ７８０、Ｓ７９０）。
なお、ＩＰパケット２００−２を復号化する処理も、ＩＰパケット２００−１を復号化する処理と略同一であるから説明を省略する。
【００４１】
図８は、通信データ８０の具体例を示す。以上の復号化によって得られた通信データ８０は、ＩＰパケット２００−１をペイロードとするＭＡＣフレームと、ＩＰパケット２００−２をペイロードとするＭＡＣフレームとを有する。ＩＰパケット２００−１は、平文のＩＰヘッダ２１０−１と、平文のＩＰデータ２２０−１とを有する。ＩＰヘッダ２１０−１は、識別子フィールド２３０−１内にベクトル識別子を含む。ＩＰパケット２００−２は、平文のＩＰヘッダ２１０−２と、平文のＩＰデータ２２０−２とを有する。ＩＰヘッダ２１０−２は、識別子フィールド２３０−２内にベクトル識別子を含む。
【００４２】
通信装置９０は、これらのＩＰパケット２００−１〜２を受信すると、識別子フィールド２３０−１〜２に格納されたパケット識別子を用いて元のＩＰパケットを再構成する。ここで、通信データ８０を、図２に示した通信データ２０と比較すると、識別子フィールド２３０−１〜２に格納されたパケット識別子は異なっている。パケット識別子の少なくとも一部がベクトル識別子によって上書きされたからである。したがって、元のＩＰパケットは適切に再構成されないとも考えられる。しかしながら、通信装置９０は、パケット識別子の具体的な内容に関わらず、同じパケット識別子を有する複数のＩＰパケットを結合し、異なるパケット識別子を有する複数のＩＰパケットは結合しない。ここで、図３の記憶部３４０において、パケット識別子とベクトル識別子とは対応付けられていることから、通信データ８０において、識別子フィールド２３０−１に格納されたベクトルＩＤと、識別子フィールド２３０−２に格納されたベクトルＩＤとは同一となる。したがって、通信装置９０は、ＩＰパケット２００−１およびＩＰパケット２００−２を結合して、元のＩＰパケットを適切に再構成することができる。
【００４３】
図９は、通信装置３０および通信装置６０の通信フローの一例を示す。通信装置３０が通信装置１５から通信データ２０を受け取ると、判定部３００は、その通信データ２０に含まれるＭＡＣフレームのペイロードがＩＰパケットか否かを判断する（Ｓ９００）。ＩＰパケットであることを条件に（Ｓ９００：ＹＥＳ）、パケット暗号化部３１０は、初期ベクトルを用いてデータパケットを暗号化して暗号化パケットを生成する（Ｓ９１０）。そして、ベクトル書込部３１５は、この暗号化パケットにおける識別子フィールドの少なくとも一部に、初期ベクトルを特定するベクトル識別子を記録する（Ｓ９２０）。このようにして暗号化されたＭＡＣフレームは、通信データ５０として通信装置３０から通信装置６０に送信される。
【００４４】
通信装置６０が通信装置３０から通信データ５０を受け取ると、判定部６００は、その通信データ５０に含まれるＭＡＣフレームのペイロードがＩＰパケットか否かを判断する（Ｓ９３０）。ＩＰパケットであることを条件に（Ｓ９３０：ＹＥＳ）、識別子取得部６０５は、このＩＰパケットの識別子フィールドの少なくとも一部から、初期ベクトルを特定するベクトル識別子を取得する（Ｓ９４０）。そして、パケット復号化部６１０は、このベクトル識別子を用いて、暗号化されたこのＩＰパケットを復号化し（Ｓ９５０）、通信装置９０を介して通信端末９５に提供する。これにより、通信装置１３と通信端末９５との間で、秘匿性の高い通信が実現される。
【００４５】
以上、本実施例における情報処理システム１０によれば、ＩＰパケットの分割や再構成のような処理を妨げることなく、分割や再構成に用いるパケット識別子などの情報フィールドを利用して、レイヤ２の暗号通信の秘匿性を高めることができる。これにより、レイヤ２におけるデータフレームのサイズ増加を防止し、レイヤ２におけるデータフレームの分割や再構成を不要とすることができる。また、本実施例における暗号化方式は、初期ベクトルを必要とする様々な暗号アルゴリズムに適用できる。このため、ＣＢＣなどの既存のアルゴリズムの利用のみならず、将来開発されるアルゴリズムなどにも広く適用することができる。
【００４６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００４７】
【図１】図１は、情報処理システム１０の全体構成を示す。
【図２】図２は、通信データ２０の具体例を示す。
【図３】図３は、通信装置３０の機能構成を示す。
【図４】図４は、通信装置３０によってＩＰパケット２００−１が暗号化される処理の概念図である。
【図５】図５は、通信データ５０の具体例を示す。
【図６】図６は、通信装置６０の機能構成を示す。
【図７】図７は、通信装置６０によってＩＰパケット２００−１が復号化される処理の概念図である。
【図８】図８は、通信データ８０の具体例を示す。
【図９】図９は、通信装置３０および通信装置６０の通信フローの一例を示す。
【符号の説明】
【００４８】
１０  情報処理システム
１２  送信側システム
１４  受信側システム
１５  通信装置
２０  通信データ
３０  通信装置
５０  通信データ
６０  通信装置
８０  通信データ
９０  通信装置
１００  ＣＤ−ＲＯＭ
２００  ＩＰパケット
２１０  ＩＰヘッダ
２２０  ＩＰデータ
２２５  平文データ
２２８  暗号化データ
２３０  識別子フィールド
３００  判定部
３１０  パケット暗号化部
３１５  ベクトル書込部
３２０  分割部
３３０  データ暗号化部
３４０  記憶部
３５０  ベクトル出力部
６００  判定部
６０５  識別子取得部
６１０  パケット復号化部
６２０  分割部
６３０  ベクトル取得部
６４０  データ復号化部
【図１】
0004482630.tif 000002
【図２】
0004482630.tif 000003
【図３】
0004482630.tif 000004
【図４】
0004482630.tif 000005
【図５】
0004482630.tif 000006
【図６】
0004482630.tif 000007
【図７】
0004482630.tif 000008
【図８】
0004482630.tif 000009
【図９】
0004482630.tif 000010