説明

暗号化通信装置

【課題】情報転送を伴わないパディングフィールドの付与を可能な限り行なわずして、暗号化処理を施す。
【解決手段】ESPペイロードデータフィールドの調整を以下のように行なうことで、暗号アルゴリズムが要求するブロック長の整数倍にすることで課題を解決する。まず、IPパケットの優先度をIPヘッダのTOSフィールドにより分別し、高優先IPパケットからESPペイロードデータフィールドに格納し、暗号化処理を施すサイズが暗号化アルゴリズムの要求するブロック長の整数倍になっていない場合、その不足分は低優先IPパケットを分割し、格納する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化通信装置に係り、特に、ESPパケットの生成、送受信する際、暗号化および復号化処理効率の向上、および転送効率の向上を図った暗号化通信装置に関する。
【背景技術】
【0002】
IP(Internet Protocol)通信をセキュアに行なうために、IPパケットの認証、および暗号化、復号化を行なうIPsec(Security Architecture for Internet Protocol)が使用されている。
【0003】
IPsecで使用するセキュリティプロトコルは、AH(Authentication Header)とESP(Encapsulating Security Payload)がある。AHは、認証のみを行なう。ESPは、認証および暗号化、復号化を行なう。IPsecの処理においてESPを適用する際は、トランスポートモードまたはトンネルモードを選択する。トランスポートモードとトンネルモードは、保護対象をデータグラムのデータ部だけとするか(トランスポートモード)、データグラム全体とするか(トンネルモード)との違いである。
【0004】
ESPをトンネルモードで適用し、送信データの暗号化を施す際、ESPは、元のIPパケット全体の前にESPヘッダを付与する。ESPは、さらにSecurity−GW(Security Gateway)間で使用するIPヘッダをESPヘッダの前に新たに付与する。ESPは、元のIPパケット全体の後ろにESPトレイラおよびICV(Integrity Check Value)を付与する。ESPトレイラは、PAD長と次ヘッダからなる。ICVは、ESP認証データである。
【0005】
IPsecにおけるデータの暗号化は、ブロック暗号が使用される。ブロック暗号は、平文(元のデータ)を一定の大きさのブロックに分割し、ブロック毎に暗号化処理を施す。ブロック長は、使用する暗号化アルゴリズム毎にRFCによって決められている。DES(Data Encryption Standard)のブロック長は、64ビットである。一方、AES(Advanced Encryption Standard)のブロック長は、128ビットである。例えば、AESは、128ビットの平文のブロックから128ビットの暗号文を生成する。
【0006】
暗号化処理を行ないたいIPパケットの大きさは、必ずしも使用する暗号化アルゴリズムで定められたブロック長の整数倍になっているとは限らない。そのため、ESPは、ESPトレイラ部に含まれるパディングフィールドを使用し、暗号化処理を施すデータを暗号化アルゴリズムで定められたブロック長の整数倍になるようにサイズの調整を行なう。パディングフィールドは、0〜255バイトの可変長である。パディングフィールドは、暗号化アルゴリズムがパディングフィールドの中身を指定しない限り、符号なし、1バイトの連続した整数値を1、2、3…と1バイトずつ埋めていく。また、RFCは、この方法をデフォルトとしている。
【0007】
特許文献1は、入力データ長が所定ワードより少ないとき、乱数で発生させた乱数データを追加する技術を開示している。特許文献2は、パディング部に暗号化されるデータの座標データを格納する技術を開示している。特許文献3は、パディング部に暗号化されるデータの座標データとパリティデータとを格納する技術を開示している。特許文献4は、ブロック単位で暗号化する際に所定のサイズに満たないブロックは盗聴者に予想困難なデータを埋め込むことを開示する。
【0008】
非特許文献1は、デフォルト方法以外のパディング処理を行なう際の暗号化アルゴリズムに関するRFCである。非特許文献1は、ESPパケットの使用方法を定義するよう規定している。
【0009】
また現在、ESP暗号化でよく用いられる暗号化アルゴリズムDESおよびAESのRFC(DES:非特許文献2、AES:非特許文献3)においてもパディングフィールドの使用方法はデフォルトのパディングパターンを採用することとしている。しかし、そもそもデフォルトのパディングパターンは、送信するデータとは無関係であり、データとしては無効である。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2007−251483号公報
【特許文献2】特開2006−220748号公報
【特許文献3】特開2006−220747号公報
【特許文献4】特開平10−303864号公報
【非特許文献】
【0011】
【非特許文献1】S. Kent、外1名、”IP Encapsulating Security Payload (ESP)”、[online]、1988年11月、IETF、平成22年3月15日検索、インターネット、<URL:http://www.rfc-editor.org/rfc/rfc2406.txt>
【非特許文献2】C. Madson、外1名、”The ESP DES-CBC Cipher Algorithm With Explicit IV”、[online]、1988年11月、IETF、平成22年3月15日検索、インターネット、<URL:http://www.rfc-editor.org/rfc/rfc2405.txt>
【非特許文献3】S. Frankel、外2名、”The AES-CBC Cipher Algorithm and Its Use with IPsec”、[online]、2003年9月、IETF、平成22年3月15日検索、インターネット、<URL:http://www.rfc-editor.org/rfc/rfc3602.txt>
【発明の概要】
【発明が解決しようとする課題】
【0012】
ESPパケットの復号化処理を行なった後、ブロック暗号化処理にて付与されたパディングフィールドは、検査されずに破棄される。これは、パディンングフィールドは、単に送信データをブロック長の整数倍にするために付与されたに過ぎないからである。したがって、パディングフィールドは、実効的な情報の伝達には寄与せず、冗長である。またスループット性能を少しでも多く確保するために、情報伝達を伴わないパディングフィールドは、小さければ小さいほど性能は向上する。
【0013】
本発明は、送信データがブロック長の整数倍になるという条件を確保しつつもパディングフィールドを使用せずにブロック暗号化処理を施し、IPsec通信を可能とする方法を提供する。
【課題を解決するための手段】
【0014】
本発明は、暗号化処理を施すデータ部(ESPペイロードデータフィールド)を暗号化アルゴリズムが要求するブロック長の整数倍に調整することで、ESPパケットにおけるパディングフィールドをなくす。
【0015】
まず、暗号化を施そうとするIPパケットのIPヘッダのTOS(Type Of Service)フィールドにより優先度の高低によってIPパケットを分別し、それぞれ指定のバッファに格納する。次に、高優先IPパケット格納バッファより高優先IPパケットをESPペイロードデータフィールドに格納する。
【0016】
ここで、高優先IPパケットをブロック暗号化処理するにあたってブロック長に満たない場合の不足サイズ分は、低優先IPパケットを分割し、ESPペイロードデータフィールドに続けて格納する。これによって、ESPのペイロードデータフィールドがブロック長の整数倍になるよう調整を行なう。
【0017】
上述した課題は、第1のIPパケットを受信して、この第1のIPパケットを暗号化した第1の暗号パケットを送信し、第2の暗号パケットを受信して、こと第2の暗号パケットを復号化した第2のIPパケットを送信する暗号化通信装置において、ペイロードデータフィールドに複数の第1のIPパケットを格納して暗号化アルゴリズムの要求するサイズに調整し、複数の第2のIPパケットを結合するデータ処理部と、第1のIPパケットの優先度をIPヘッダのTOSフィールドにて判別し、優先度の高い第1のIPパケットと優先度の低い第1のIPパケットに分けてバッファリングを行なうバッファ管理部とを有する暗号化通信装置により、達成できる。
【発明の効果】
【0018】
本発明によれば、暗号化および復号化処理の効率が向上する。
【図面の簡単な説明】
【0019】
【図1】ネットワーク構成を説明するブロック図である。
【図2】暗号通信装置のブロック図である。
【図3A】暗号パケット生成過程を説明する図(その1)である。
【図3B】暗号パケット生成過程を説明する図(その2)である。
【図3C】暗号パケット生成過程を説明する図(その3)である。
【図4】暗号化処理範囲の構成とパターンを説明する図である。
【図5A】暗号パケットの生成処理を説明するフローチャート(その1)である。
【図5B】暗号パケットの生成処理を説明するフローチャート(その2)である。
【図6A】暗号パケットの復号化処理説明するフローチャート(その1)である。
【図6B】暗号パケットの復号化処理説明するフローチャート(その2)である。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態について、実施例を用い図面を参照しながら、詳細に説明する。なお、実質同一部位には、同じ参照番号を振り、説明は繰り返さない。
【0021】
図1を参照して、暗号通信ネットワークの構成を説明する。図1において、暗号通信ネットワーク500は、インターネット450と、インターネット450に接続された3台の暗号化通信装置100と、暗号化通信装置100−1に接続された2台のホスト200−1、200−2と、暗号化通信装置100−2に接続された2台のホスト200−3、200−4と、暗号化通信装置100−3に接続された2台のホスト200−5、200−6とから構成されている。暗号化通信装置100と、暗号化通信装置100に接続された2台のホスト200は、ネットワーク400を構成する。
【0022】
暗号化通信装置100は、異なるネットワーク400間においてIPsec通信を用いてVPN(Virtual Private Network)を構築する。暗号化通信装置100は、異なるネットワーク400に属するホスト110間でのIPsec通信を可能とする。
【0023】
図2を参照して、暗号通信装置100の構成を説明する。図2において、暗号通信装置100は、CPU110と、メモリ120と、外部インタフェース部130とから構成される。メモリ120は、バッファ121と、バッファ管理部122と、データ処理部123と、暗号化/復号化処理部124とから構成される。バッファ管理部122、データ処理部123、暗号化/復号化処理部124は、いずれもプログラムである。CPU110は、これらのプログラムを実行して、バッファ管理部122、データ処理部123、暗号化/復号化処理部124の機能を実現する。
【0024】
外部インタフェース部130は、暗号化を施したIPパケットの送受信を行なう。暗号化/復号化処理部124は、送受信するIPパケットの暗号化/復号化処理を施す。データ処理部123は、暗号化を施す前のIPパケットおよび復号化を施したIPパケットの解析、分解、および結合を行なう。バッファ管理部122は、暗号化処理を施そうとするIPパケットの優先度をIPヘッダのTOS(Type of Service)フィールドにて判別する。バッファ管理部122は、バッファ121を優先度の高いIPパケット保持域121a、優先度の低いIPパケット保持域121b、分割したIPパケット保持域121cに分けてバッファリングを行なう。バッファ管理部122は、分割されて送信されてきたIPパケットを受信バッファ121d(図示せず)に一時記憶する。バッファ121は、IPパケットを優先度の高低で分けて格納する。バッファ121は、また分割されたIPパケットを保持する。バッファ121は、分割されて送信されてきたIPパケットを保持する。
【0025】
図3を参照して、暗号化処理を施す処理について説明する。図3Aないし図3Cにおいて、(a)はバッファ121である。バッファ121は、高優先IPパケット格納バッファ121aと、低優先IPパケット格納バッファ121bと、分割IPパケット格納バッファ121cとで構成される。
【0026】
図3Aないし図3Cにおいて、(b)は、暗号化前のESPトンネルモードパケットである。暗号化前のESPトンネルモードパケットは、IPヘッダ31、ESPヘッダ32、IV(Initial Vector)33、IPパケット格納フィールド34、PAD長35、次ヘッダ36、ICV37から構成される。
【0027】
IPヘッダ31は、対向する暗号化通信装置との通信に用いる。ESPヘッダ32は、セキュリティヘッダである。IV33は、先頭の平文を暗号化するのに用いるデータである。IPパケット格納フィールド34は、IPパケットを格納する。PAD長35は、パディングしたときの長さであり、ここでは「0」である。次ヘッダ36は、暗号化されたデータの先頭を保持する。ICV37は、認証フィールドである。
【0028】
図3Aないし図3Cにおいて、(c)は、暗号化後のESPトンネルモードパケットである。暗号化後のESPトンネルモードパケットは、IPヘッダ31、ESPヘッダ32、IV33、ESPペイロード38、PAD長35A、次ヘッダ36A、ICV37から構成される。ESPペイロード38、PAD長35A、次ヘッダ36Aが暗号化範囲である。
【0029】
図3Aにおいて、ここでは高優先IPパケット格納バッファ121aに格納されたIPパケット1とPAD長35と次ヘッダ36の合計がブロック長の整数倍とする。このとき、暗号化通信装置100は、IPパケット格納フィールド34に、IPパケット1のみを格納する。
【0030】
一方、図3Bにおいて、ここでは高優先IPパケット格納バッファ121aに格納されたIPパケット2とPAD長35と次ヘッダ36の合計がブロック長の整数倍以外とする。このとき、暗号化通信装置100は、IPパケット格納フィールド34に、IPパケット2を格納する。暗号化通信装置100は、低優先IPパケット格納バッファ121bに格納されたIPパケット3をIPパケット3−1とIPパケット3−2に分割する。暗号化通信装置100は、合計がブロック長の整数倍となるIPパケット3−1をIPパケット格納フィールド34に格納する。暗号化通信装置100は、残りのIPパケット3−2を分割IPパケット格納バッファ121cに格納する。
【0031】
次に、図3Cにおいて、ここでは高優先IPパケット格納バッファ121aに格納されたIPパケット4とPAD長35と次ヘッダ36の合計がブロック長の整数倍以外とする。このとき、暗号化通信装置100は、IPパケット格納フィールド34に、IPパケット4を格納する。暗号化通信装置100は、分割IPパケット格納バッファ121cに格納されたIPパケット3−2をIPパケット格納フィールド34に格納する。暗号化通信装置100は、低優先IPパケット格納バッファ121bに格納されたIPパケット5をIPパケット5−1とIPパケット5−2に分割する。暗号化通信装置100は、合計がブロック長の整数倍となるIPパケット5−1をIPパケット格納フィールド34に格納する。暗号化通信装置100は、残りのIPパケット5−2を分割IPパケット格納バッファ121cに格納する。
図3Cから明らかなように、暗号化通信装置100の送信優先度は、高優先IPパケット>分割IPパケット>対優先IPパケットの順である。
【0032】
図4を参照して、図3Aないし図3Cの暗号化前のESPトンネルモードパケットの暗号化範囲を説明する。図4において、(a)は図3Aの暗号化前のESPトンネルモードパケット305の暗号化範囲である。図4(b)は図3Bの暗号化前のESPトンネルモードパケット308の暗号化範囲である。図4(c)は図3Cの暗号化前のESPトンネルモードパケット311の暗号化範囲である。ESPトレイラは、図3のPAD長35と次ヘッダ36である。
【0033】
暗号化前のESPトンネルモードパケット305の暗号化範囲は、高優先IPパケットとESPトレイラである。暗号化前のESPトンネルモードパケット308の暗号化範囲は、高優先IPパケット、分割されたIPパケット、ESPトレイラである。暗号化前のESPトンネルモードパケット311の暗号化範囲は、高優先IPパケット、分割された残りのIPパケット、新たに分割されたIPパケット、ESPトレイラである。
【0034】
ESPトンネルモードパケット305の暗号化範囲、ESPトンネルモードパケット308の暗号化範囲、ESPトンネルモードパケット311の暗号化範囲の長さは、いずれも等しく、ブロック長の整数倍である。
【0035】
なお、ESPトンネルモードパケット305の暗号化範囲、ESPトンネルモードパケット308の暗号化範囲、ESPトンネルモードパケット311の暗号化範囲の長さは、ブロック長の整数倍であれば、互いに等しい必要はない。しかし、MTU(Maximum Transmission Unit)のサイズ以下とする。なぜなら、MTUを上回るサイズのパケットはMTU以下に分割されるからである。
【0036】
図5を参照して、暗号化通信装置100の暗号化処理を説明する。図5Aにおいて、暗号化通信装置100は、各バッファ121a〜121cチェック処理を実行する(S700)。暗号化通信装置100は、高優先IPパケットがあるか判定する(S701)。YESのとき、暗号化通信装置100は、暗号化サイズがMTU以下か判定する(S702)。YESのとき、暗号化通信装置100は、ESPペイロード格納処理を実行する(S703)。暗号化通信装置100は、暗号化範囲をブロック長で割った残余が0か判定する(S704)。YESのとき、暗号化通信装置100は、暗号化処理を実行して(S706)、終了する。
【0037】
ステップ704でNOのとき、暗号化通信装置100は、図5Bのステップ709に遷移する。ステップ702でNOのとき、暗号化通信装置100は、フラグメント処理を実行して(S707)、ステップ703に遷移する。ここで、フラグメント処理は、MTUを上回るサイズのパケットをMTU以下に分割する処理である。
【0038】
ステップ701でNOのとき、暗号化通信装置100は、分割または低優先IPパケットがあるか判定する(S708)。YESのとき、暗号化通信装置100は、ステップ702に遷移する。ステップ708でNOのとき、暗号化通信装置100は、ステップ700に遷移する。
【0039】
図5Bにおいて、暗号化通信装置100は、不足サイズ計算処理を実行する(S709)。暗号化通信装置100は、各バッファ121a〜121cのチェック処理を実行する(S711)。暗号化通信装置100は、不足サイズ以下の高優先IPパケットがあるか判定する(S712)。YESのとき、暗号化通信装置100は、図5Aのステップ703に遷移する。ステップ712でNOのとき、暗号化通信装置100は、分割または低優先IPパケットがあるか判定する(S713)。YESのとき、暗号化通信装置100は、分割または低優先IPパケットのサイズが、不足サイズを超えているか判定する(S714)。YESのとき、分割処理を実行して(S716)、図5Aのステップ703に遷移する。ステップ714でNOのとき、暗号化通信装置100は、そのままステップ703に遷移する。ステップ713でNOのとき、暗号化通信装置100は、パディング処理を実行して(S717)、図5Aのステップ706に遷移する。
【0040】
図6参照して、暗号化通信装置100の復号化処理を説明する。図6Aにおいて、暗号化通信装置100は、復号化処理を実行する(S901)。暗号化通信装置100は、ESPのPAD長が0か判定する(S902)。YESのとき、暗号化通信装置100は、データの先頭は完全なIPパケットか判定する(S903)。YESのとき、暗号化通信装置100は、IPパケット抽出処理を実行する(S906)。暗号化通信装置100は、残りデータサイズが0か判定する(S907)。YESのとき、暗号化通信装置100は、終了する。
【0041】
ステップ907でNOのとき、暗号化通信装置100は、ステップ903に遷移する。ステップ903でNOのとき、暗号化通信装置100は、図6Bのステップ909に遷移する。ステップ902でNOのとき、暗号化通信装置100は、パディング廃棄処理を実行して(S908)、ステップ903に遷移する。
【0042】
図6Bにおいて、暗号化通信装置100は、受信バッファ121dの参照処理を実行する(S909)。暗号化通信装置100は、IPパケットの結合対象データがあるか判定する(S911)。YESのとき、暗号化通信装置100は、データ結合処理を実行して(S912)、図6Aのステップ906に遷移する。ステップ暗号化通信装置100は、受信バッファ121dへの格納処理を実行して(S913)、図6Aのステップ907に遷移する。
上述した実施例に拠れば、パディングフィールドの使用を最小限に抑え、暗号化および復号化処理の効率が向上した暗号化通信装置を提供できる。
【符号の説明】
【0043】
100…暗号化通信装置、110…中央演算装置(CPU)、120…メモリ、121…バッファ、122…バッファ管理部、123…データ処理部、124…暗号化/復号化処理部、130…外部インタフェース、200…ホスト、400…ネットワーク、450…インターネット、500…暗号通信ネットワーク。

【特許請求の範囲】
【請求項1】
第1のIPパケットを受信して、この第1のIPパケットを暗号化した第1の暗号パケットを送信し、第2の暗号パケットを受信して、こと第2の暗号パケットを復号化した第2のIPパケットを送信する暗号化通信装置において、
ペイロードデータフィールドに複数の前記第1のIPパケットを格納して暗号化アルゴリズムの要求するサイズに調整し、複数の前記第2のIPパケットを結合するデータ処理部と、
前記第1のIPパケットの優先度をIPヘッダのTOSフィールドにて判別し、優先度の高い第1のIPパケットと優先度の低い第1のIPパケットに分けてバッファリングを行なうバッファ管理部とを有することを特徴とする暗号化通信装置。
【請求項2】
請求項1に記載の暗号化通信装置であって、
さらに、高優先度IPパケット格納バッファと、低優先度IPパケット格納バッファと、分割IPパケット格納バッファと、前記第2のIPパケット格納バッファとを記憶するバッファを有することを特徴とする暗号化通信装置。
【請求項3】
請求項2に記載の暗号化通信装置であって、
前記データ処理部は、前記高優先度IPパケット格納バッファに格納された前記第1のIPパケットを最優先して、暗号化アルゴリズムの要求するサイズに調整することを特徴とする暗号化通信装置。
【請求項4】
請求項3に記載の暗号化通信装置であって、
前記データ処理部は、前記分割IPパケット格納バッファに格納された分割された第1のIPパケットを次に優先して、暗号化アルゴリズムの要求するサイズに調整することを特徴とする暗号化通信装置。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6A】
image rotate

【図6B】
image rotate


【公開番号】特開2011−223385(P2011−223385A)
【公開日】平成23年11月4日(2011.11.4)
【国際特許分類】
【出願番号】特願2010−91386(P2010−91386)
【出願日】平成22年4月12日(2010.4.12)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】