(57)【要約】【課題】暗号通信の転送性能を向上すること【解決手段】ゲートウェイ装置１１０は、データの暗号通信を行う暗号通信処理部１２０と、データの暗号処理を行うセキュリティ機能部１３０とを備え、セキュリティ機能部１３０は、ソフトウェアを用いて、データの暗号処理を行うＳ／Ｗセキュリティ機能部１３２と、ハードウェアを用いて、データの暗号処理を行うＨ／Ｗセキュリティ機能部１３６と、暗号処理を行わせる機能部を、Ｓ／Ｗセキュリティ機能部１３２及びＨ／Ｗセキュリティ機能部１３６の間で切り替える処理切替部１３１と、を備える。【選択図】図２
2019033402.tif 000002
【特許請求の範囲】
【請求項１】
データの暗号通信を行う暗号通信処理部と、
前記データの暗号処理を行うセキュリティ機能部とを備え、
前記セキュリティ機能部は、
ソフトウェアを用いて、前記データの前記暗号処理を行うソフトウェアセキュリティ機能部と、
ハードウェアを用いて、前記データの前記暗号処理を行うハードウェアセキュリティ機能部と、
前記暗号処理を行わせる機能部を、前記ソフトウェアセキュリティ機能部及び前記ハードウェアセキュリティ機能部の間で切り替える処理切替部と、を備えること
を特徴とする通信装置。
【請求項２】
前記処理切替部は、前記暗号処理の処理内容と、前記データのデータサイズとの組み合わせに応じて、前記ソフトウェアセキュリティ機能部と、前記ハードウェアセキュリティ機能部とを切り替えること
を特徴とする請求項１に記載の通信装置。
【請求項３】
前記処理内容は、前記データの暗号化に用いられる乱数を生成する乱数生成処理であること
を特徴とする請求項２に記載の通信装置。
【請求項４】
前記処理内容は、前記データを暗号化する暗号化処理の複数のプロトコルの各々又は前記暗号化されたデータの改竄を検知するためのハッシュ値を計算するハッシュ値計算処理の複数のプロトコルの各々であること
を特徴とする請求項２に記載の通信装置。
【請求項５】
前記処理内容は、前記データを復号化する復号化処理の複数のプロトコルの各々又は前記データの改竄を検知するためのハッシュ値を計算するハッシュ値計算処理の複数のプロトコルの各々であること
を特徴とする請求項２に記載の通信装置。
【請求項６】
前記組み合わせ毎に、前記ソフトウェアセキュリティ機能部及び前記ハードウェアセキュリティ機能部の何れを使用するかを示す切替情報を記憶する記憶部をさらに備え、
前記処理切替部は、前記切替情報を参照して、前記組み合わせに応じて、前記ソフトウェアセキュリティ機能部と、前記ハードウェアセキュリティ機能部とを切り替えること
を特徴とする請求項２から５の何れか一項に記載の通信装置。
【請求項７】
前記セキュリティ機能部は、前記データを圧縮する圧縮部をさらに備え、
前記処理切替部は、前記データの種類に応じて、前記データを圧縮するか否かを判断し、
前記ソフトウェアセキュリティ機能部又は前記ハードウェアセキュリティ機能部は、前記処理切替部が前記データを圧縮すると判断した場合には、前記圧縮部により圧縮された前記データに対して、前記暗号処理を行うこと
を特徴とする請求項１に記載の通信装置。
【請求項８】
前記データとしてＥｔｈｅｒｎｅｔフレーム又はＩＰパケットを受信するネットワーク処理部をさらに備え、
前記暗号通信処理部は、前記暗号通信としてＶＰＮ通信を行い、
前記セキュリティ機能部は、前記Ｅｔｈｅｒｎｅｔフレーム又は前記ＩＰパケットに対して前記暗号処理を行うこと
を特徴とする請求項１から７の何れか一項に記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置に関し、特に、暗号通信を行う通信装置に関する。
【背景技術】
【０００２】
暗号通信では一般的に送信データの暗号処理が行われる。暗号処理では、暗号化処理に用いるための乱数生成処理、各種アルゴリズムを用いた暗号化処理及び通信路上での送信データの改竄検知のためのハッシュ値計算処理が行われている。
【０００３】
また、暗号通信には、Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ（ＳＳＬ）若しくはＴｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ（ＴＬＳ）を用いたＨｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  ｏｖｅｒ  ＴＬＳ（ＨＴＴＰＳ）通信若しくはＦｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  ｏｖｅｒ  ＴＬＳ（ＦＴＰＳ）通信、Ｓｅｃｕｒｅ  Ｓｈｅｌｌ（ＳＳＨ）を用いたＳＳＨ  Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＳＦＴＰ）通信若しくはＳｅｃｕｒｅ  Ｃｏｐｙ（ＳＣＰ）通信、又は、Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ（ＶＰＮ）通信等が存在する。また、ＶＰＮには、ＯＳＩ階層モデルに応じた各種のＶＰＮがあり、第２層で暗号通信処理を行うＬ２ＴＰ（Ｌａｙｅｒ  ２  Ｔｕｎｎｅｌｉｎｇ  Ｐｒｏｔｏｃｏｌ）若しくはＰＰＴＰ（Ｐｏｉｎｔ−ｔｏ−Ｐｏｉｎｔ  Ｔｕｎｎｅｌｉｎｇ  Ｐｒｏｔｏｃｏｌ）、第３層で暗号通信処理を行うＩＰｓｅｃ（Ｓｅｃｕｒｉｔｙ  Ａｕｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）、又は、第４層以上で暗号通信処理を行うＳＳＬ  ＶＰＮ等が存在する。
【０００４】
上記の暗号処理では、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いたソフトウェア（Ｓ／Ｗ）処理が行われることが一般的だが、高速転送を実現するために専用のセキュリティ処理用ハードウェア（Ｈ／Ｗ）エンジンを搭載し、Ｈ／Ｗ処理を行っている通信装置も存在する。例えば、特許文献１では、専用の暗号化／復号化処理用エンジンとカプセル化処理用エンジンとを有したＨ／Ｗ処理機能をＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）に実装し、ＳＳＬ  ＶＰＮでの高速転送を図っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００６／０９３０２１号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の暗号通信機能を有するゲートウェイ装置の暗号通信処理方式には、一般的に用いられているＳ／Ｗ処理、又は特許文献１のようなＨ／Ｗエンジンを用いて転送速度向上を図ったＨ／Ｗ処理がある。
【０００７】
特許文献１のＨ／Ｗ処理では、特定のデータサイズと特定の暗号化アルゴリズム等とを組み合わせた場合の速度低下に関しては考慮されていない。また、特許文献１のＨ／ＷエンジンはＩＰｓｅｃ等特定の暗号通信専用にカスタマイズされているが、データサイズと暗号化アルゴリズム等との組み合わせによっては、Ｓ／Ｗのみの処理より遅くなるという問題点があった。
【０００８】
そこで、この発明は、上記のような問題点を解消するためになされたものであり、暗号通信の転送性能を向上することができるようにすることを目的としている。
【課題を解決するための手段】
【０００９】
本発明の一態様に係る通信装置は、データの暗号通信を行う暗号通信処理部と、前記データの暗号処理を行うセキュリティ機能部とを備え、前記セキュリティ機能部は、ソフトウェアを用いて、前記データの前記暗号処理を行うソフトウェアセキュリティ機能部と、ハードウェアを用いて、前記データの前記暗号処理を行うハードウェアセキュリティ機能部と、前記暗号処理を行わせる機能部を、前記ソフトウェアセキュリティ機能部及び前記ハードウェアセキュリティ機能部の間で切り替える処理切替部と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明の一態様によれば、暗号通信の転送性能を向上することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１〜３に係る通信システムの構成を概略的に示すブロック図である。
【図２】実施の形態１におけるゲートウェイ装置の構成を概略的に示すブロック図である。
【図３】実施の形態１におけるマッピングテーブルのデータ構造を説明するための概略図である。
【図４】実施の形態１におけるマッピングテーブルの一例を示す概略図である。
【図５】（Ａ）及び（Ｂ）は、ハードウェア構成例を示す概略図である。
【図６】実施の形態１におけるＳ／Ｗ処理及びＨ／Ｗ処理の選択動作を示すフローチャートである。
【図７】実施の形態１におけるＳ／Ｗ処理及びＨ／Ｗ処理の選択動作の変形例を示すフローチャートである。
【図８】実施の形態２におけるゲートウェイ装置の構成を概略的に示すブロック図である。
【図９】実施の形態２における圧縮テーブルのデータ構造を説明するための概略図である。
【図１０】実施の形態２における圧縮テーブルの一例を示す概略図である。
【図１１】実施の形態２における、データ圧縮の有無の選択動作、並びに、Ｓ／Ｗ処理及びＨ／Ｗ処理の選択動作を示すフローチャートである。
【図１２】実施の形態３におけるゲートウェイ装置の構成を概略的に示すブロック図である。
【図１３】実施の形態３におけるマッピングテーブルのデータ構造を説明するための概略図である。
【図１４】実施の形態３におけるマッピングテーブルの一例を示す概略図である。
【図１５】実施の形態３におけるＳ／Ｗ処理及びＨ／Ｗ処理の選択動作を示すフローチャートである。
【図１６】実施の形態１〜３に係る通信システムの第１の変形例を示すブロック図である。
【図１７】実施の形態１〜３に係る通信システムの第２の変形例を示すブロック図である。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１は、実施の形態１に係る通信システム１００の構成を概略的に示すブロック図である。
通信システム１００は、ゲートウェイ装置１１０Ａ、１１０Ｂを備える。
実施の形態１は、暗号通信機能をネットワークのエッジにあたるゲートウェイ装置１１０Ａ、１１０Ｂに搭載した例である。
【００１３】
ゲートウェイ装置１１０Ａ、１１０Ｂは、ネットワークとしてのインターネット１０１に接続され、ゲートウェイ装置１１０Ａ、１１０Ｂの間に、暗号通信トンネル１０２を構成している。
ここで、ゲートウェイ装置１１０Ａ、１１０Ｂは、同じように構成されているため、以下、ゲートウェイ装置１１０Ａ、１１０Ｂの各々を特に区別する必要がない場合には、ゲートウェイ装置１１０という。
【００１４】
通信システム１００では、配下端末１０３Ａから送信されたデータは、ゲートウェイ装置１１０Ａで暗号化されて、暗号化されたデータがゲートウェイ装置１１０Ｂに送られる。ゲートウェイ装置１１０Ｂは、暗号化されたデータを復号し、復号されたデータが配下端末１０３Ｂに送られる。
また、配下端末１０３Ｂから送信されたデータは、ゲートウェイ装置１１０Ｂで暗号化されて、暗号化されたデータがゲートウェイ装置１１０Ａに送られる。ゲートウェイ装置１１０Ａは、暗号化されたデータを復号し、復号されたデータが配下端末１０３Ａに送られる。
なお、配下端末１０３Ａ、１０３Ｂの各々を特に区別する必要がない場合には、配下端末１０３という。
【００１５】
暗号通信には、ＳＳＬを用いたＨＴＴＰＳ通信若しくはＦＴＰＳ通信、ＳＳＨを用いたＳＦＴＰ通信若しくはＳＣＰ通信、又は、ＶＰＮ通信等が存在する。また、ＶＰＮには、ＯＳＩ階層モデルに応じた各種のＶＰＮがあり、第２層で暗号通信処理を行うＬ２ＴＰ若しくはＰＰＴＰ、第３層で暗号通信処理を行うＩＰｓｅｃ、又は、第４層以上で暗号通信処理を行うＳＳＬ  ＶＰＮ等が存在する。
【００１６】
図２は、ゲートウェイ装置１１０の構成を概略的に示すブロック図である。
ゲートウェイ装置１１０は、ネットワーク処理部１１１と、暗号通信処理部１２０と、セキュリティ機能部１３０と、記憶部１４０とを備える。
ネットワーク処理部１１１は、インターネット１０１とのインターフェースとして機能する。例えば、ネットワーク処理部１１１は、Ｅｔｈｅｒｎｅｔフレーム又はＩＰパケットを受信する。ここで、Ｅｔｈｅｒｎｅｔは、登録商標である。
【００１７】
暗号通信処理部１２０は、データの暗号通信を行う。例えば、暗号通信処理部１２０は、インターネット１０１において暗号通信を行うために、暗号通信トンネル構築処理及び暗号通信処理を行う。
暗号通信処理部１２０は、暗号通信トンネル構築処理部１２１と、暗号通信パラメータ記憶部１２２と、暗号処理部１２３とを備える。
【００１８】
暗号通信トンネル構築処理部１２１は、暗号通信を行うために、対向するゲートウェイ装置１１０の暗号通信処理部１２０と暗号通信トンネル１０２を構築する暗号通信トンネル構築処理を行う。暗号通信トンネル１０２の構築処理では、暗号通信トンネル構築処理部１２１は、ネットワーク処理部１１１を介して、対向するゲートウェイ装置１１０の暗号通信処理部１２０と、暗号通信処理に用いる、暗号化キー、暗号化アルゴリズム、ハッシュ値計算アルゴリズム、ゲートウェイ装置１１０のＩＰアドレス、ゲートウェイ装置１１０の配下の配下端末１０３のネットワークアドレス等のパラメータのネゴシエーションを行う。
暗号通信パラメータ記憶部１２２は、暗号通信トンネル構築処理部１２１によるネゴシエーションで決定されたパラメータを記憶する。
【００１９】
暗号処理部１２３は、暗号通信トンネル構築処理部１２１によるネゴシエーションで決定されたパラメータを用いて、送信対象データの暗号通信処理を行う。
例えば、ゲートウェイ装置１１０の図示しない他のプロセス部が送出したデータ及び配下端末１０３から受信した受信データを含む送信対象データは、暗号通信処理を行うため、ネットワーク処理部１１１から暗号通信処理部１２０に渡される。なお、他のプロセス部は、Ｗｅｂサーバプロセスを実行するＷｅｂサーバプロセス部又はＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）プロセスを実行するＦＴＰプロセス部等である。暗号通信処理部１２０は、送信対象データを受け取ったのち、暗号処理を行うため、暗号通信パラメータ記憶部１２２に記憶されているパラメータとともに、送信対象データをセキュリティ機能部１３０に渡す。
【００２０】
そして、暗号処理部１２３は、セキュリティ機能部１３０で暗号化された送信対象データである暗号化送信対象データを受け取り、暗号通信パラメータ記憶部１２２に記憶されているパラメータに基づいて、データのカプセル化、対向するゲートウェイ装置１１０のＩＰアドレス情報の付与を行った後、処理後のデータをネットワーク処理部１１１に渡す。ネットワーク処理部１１１に渡されたデータは、送信データとして対向先のゲートウェイ装置１１０に送信される。
【００２１】
セキュリティ機能部１３０は、送信対象データの暗号処理を行う。
セキュリティ機能部１３０は、処理切替部１３１と、Ｓ／Ｗセキュリティ機能部１３２と、Ｈ／Ｗセキュリティ機能部１３６とを備える。
【００２２】
処理切替部１３１は、データの暗号処理を行わせる機能部を、Ｓ／Ｗセキュリティ機能部１３２と、Ｈ／Ｗセキュリティ機能部１３６との間で切り替える。例えば、処理切替部１３１は、記憶部１４０に記憶されているマッピングテーブルを参照し、暗号通信処理部１２０から渡された送信対象データの暗号処理を、Ｓ／Ｗセキュリティ機能部１３２で行うか、又は、Ｈ／Ｗセキュリティ機能部１３６で行うかを切り替える。
【００２３】
Ｓ／Ｗセキュリティ機能部１３２は、ソフトウェアを用いて、送信対象データの暗号処理、例えば、乱数生成処理、暗号化処理及びハッシュ値計算処理を行う。
例えば、Ｓ／Ｗセキュリティ機能部１３２は、Ｓ／Ｗ乱数生成部１３３と、Ｓ／Ｗ暗号化処理部１３４と、Ｓ／Ｗハッシュ値計算部１３５とを備える。
Ｓ／Ｗ乱数生成部１３３は、ソフトウェアを用いて、送信対象データの暗号化に用いられる乱数を生成する。
Ｓ／Ｗ暗号化処理部１３４は、ソフトウェアを用いて、送信対象データを暗号化する。ここで、Ｓ／Ｗ暗号化処理部１３４は、複数の暗号化アルゴリズム（暗号化処理の複数の処理内容）に対応している。
Ｓ／Ｗハッシュ値計算部１３５は、ソフトウェアを用いて、暗号化されたデータの改竄を検知するためのハッシュ値を計算する。ここで、Ｓ／Ｗハッシュ値計算部１３５は、複数のハッシュ値計算アルゴリズム（ハッシュ値計算処理の複数の処理内容）に対応している。
【００２４】
Ｈ／Ｗセキュリティ機能部１３６は、ハードウェアを用いて、送信対象データの暗号処理、例えば、乱数生成処理、暗号化処理及びハッシュ値計算処理を行う。
例えば、Ｈ／Ｗセキュリティ機能部１３６は、Ｈ／Ｗ乱数生成部１３７と、Ｈ／Ｗ暗号化処理部１３８と、Ｈ／Ｗハッシュ値計算部１３９とを備える。
Ｈ／Ｗ乱数生成部１３７は、ハードウェアを用いて、送信対象データの暗号化に用いられる乱数を生成する。
Ｈ／Ｗ暗号化処理部１３８は、ハードウェアを用いて、送信対象データを暗号化する。ここで、Ｈ／Ｗ暗号化処理部１３８は、複数の暗号化アルゴリズムに対応している。
Ｈ／Ｗハッシュ値計算部１３９は、ハードウェアを用いて、暗号化されたデータの改竄を検知するためのハッシュ値を計算する。ここで、Ｈ／Ｗハッシュ値計算部１３９は、複数のハッシュ値計算アルゴリズムに対応している。
【００２５】
記憶部１４０は、切替情報としてのマッピングテーブルを記憶する。
マッピングテーブルは、暗号処理の処理内容とデータサイズとの組み合わせ毎に、ソフトウェアを選択するか、ハードウェアを選択するかを示す切替情報である。
【００２６】
図３は、マッピングテーブルのデータ構造を説明するための概略図である。
図３に示されているように、マッピングテーブル１４１は、暗号処理の処理内容である乱数生成処理と複数のデータサイズの各々との組み合わせ毎、暗号化処理を行う複数のアルゴリズム（暗号化処理の複数の処理内容）の各々と複数のデータサイズの各々との組み合わせ毎、及び、ハッシュ値を計算する複数のアルゴリズム（ハッシュ値を計算する複数の処理内証）の各々と複数のデータサイズの各々との組み合わせ毎に、ソフトウェアを選択するか、ハードウェアを選択するかを示す。
【００２７】
ソフトウェアとハードウェアとの切替を行うために、暗号通信を行う機器上で事前に、データサイズ、乱数生成処理、暗号化処理に用いるアルゴリズム、及び、ハッシュ値計算に用いるアルゴリズムを基にして、ソフトウェア及びハードウェアを用いた処理をそれぞれ行うことで、より処理の完了時間の短い方を選択して、選択された方を、図３に示されているようなマッピングテーブル１４１に格納する。
例えば、図３に示されている例では、送信対象データのデータサイズを、６４ｂｙｔｅ、１２８ｂｙｔｅ、２５６ｂｙｔｅ、５１２ｂｙｔｅ、１０２４ｂｙｔｅ、・・・のように変更し、それぞれのデータサイズでの、乱数生成処理、ＤＥＳ、３ＤＥＳ、ＡＥＳ１２８、ＡＥＳ１９２又はＡＥＳ２５６等の暗号化アルゴリズムを用いた暗号化処理、ＭＤ５、ＳＨＡ１又はＳＨＡ２等のハッシュ値計算アルゴリズムを用いたハッシュ計算処理において、Ｓ／Ｗセキュリティ機能部１３２を用いた処理時及びＨ／Ｗセキュリティ機能部１３６を用いた処理時のそれぞれのスループットの測定を行う。測定結果を基に、Ｓ／Ｗセキュリティ機能部１３２及びＨ／Ｗセキュリティ機能部１３６のどちらのスループット性能が高いか比較を行い、スループット性能が高い方を選択することで、マッピングテーブルが構築される。
【００２８】
なお、図３における「Ｓ  ｏｒ  Ｈ」における「Ｓ」は、ソフトウェア（Ｓ／Ｗセキュリティ機能部１３２）を示し、「Ｈ」は、ハードウェア（Ｈ／Ｗセキュリティ機能部１３６）を示し、「Ｓ  ｏｒ  Ｈ」は、ソフトウェア（Ｓ／Ｗセキュリティ機能部１３２）及びハードウェア（Ｈ／Ｗセキュリティ機能部１３６）の何れかが選択されることを示している。
【００２９】
図４は、マッピングテーブルの一例を示す概略図である。
図４に示されているマッピングテーブル１４２は、Ｈ／Ｗセキュリティ機能部１３６に送信対象データを渡す際に、オーバーヘッドがかかり、データサイズが小さいときにはオーバーヘッドが処理時間の大部分を占めるため、Ｓ／Ｗセキュリティ機能部１３２の処理性能の方が良くなる例を示している。
【００３０】
例えば、ＶＰＮ通信を行いＯＳＩ階層モデルの第３層で処理を行うＩＰｓｅｃでは、配下端末１０３から受信したＩＰパケットを暗号処理し転送することとなる。暗号化アルゴリズムとしてＡＥＳ２５６、ハッシュ値計算アルゴリズムとしてＳＨＡ２を使用する際、１つ目の転送データのデータサイズが５１２ｂｙｔｅだった場合、乱数生成処理では、Ｓ／Ｗセキュリティ機能部１３２が使用され、暗号化処理では、Ｓ／Ｗセキュリティ機能部１３２が使用され、ハッシュ値計算処理は、Ｈ／Ｗセキュリティ機能部１３６が使用される。２つ目の転送データのデータサイズが１０２４ｂｙｔｅだった場合、乱数生成処理、暗号化処理、ハッシュ値計算処理の全てにおいて、Ｈ／Ｗセキュリティ機能部１３６が使用される。
【００３１】
以上のように、マッピングテーブルによれば、暗号処理の処理内容である乱数生成処理では、送信対象データのデータサイズに応じて切り替えが行われ、暗号化処理では、送信対象データのデータサイズ及び暗号化処理の処理内容（アルゴリズム）の組み合わせに応じて切り替えが行われ、ハッシュ値計算処理では、送信対象データのデータサイズ及びハッシュ値計算処理の処理内容（アルゴリズム）の組み合わせに応じて切り替えが行われる。
【００３２】
以上に記載された、ネットワーク処理部１１１、暗号通信トンネル構築処理部１２１、暗号処理部１２３、処理切替部１３１及びＨ/Ｗセキュリティ機能部１３６の一部又は全部は、例えば、図５（Ａ）に示されているように、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ）又はＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の処理回路１０で構成することができる。
【００３３】
また、Ｓ／Ｗセキュリティ機能部１３２は、例えば、図５（Ｂ）に示されているように、メモリ１１と、メモリ１１に記憶されているプログラムを実行するＣＰＵ等のプロセッサ１２とにより構成することができる。このようなプログラムは、ネットワークを通じて提供されてもよく、また、記録媒体に記録されて提供されてもよい。即ち、このようなプログラムは、例えば、プログラムプロダクトとして提供されてもよい。
【００３４】
なお、暗号通信トンネル構築処理部１２１、暗号処理部１２３及び処理切替部１３１の一部又は全部は、図５（Ｂ）に示されているように、メモリ１１と、プロセッサ１２とにより構成することもできる。
また、暗号通信パラメータ記憶部１２２は、揮発性又は不揮発性のメモリにより構成することができ、記憶部１４０は、不揮発性のメモリにより構成することができる。
【００３５】
次に動作について説明する。
図６は、実施の形態１のセキュリティ機能部１３０におけるＳ／Ｗ処理及びＨ／Ｗ処理の選択動作を示すフローチャートである。
【００３６】
セキュリティ機能部１３０の処理切替部１３１は、暗号通信処理部１２０から送信対象データを受け取ると、記憶部１４０に記憶されているマッピングテーブルを参照して、送信対象データのデータサイズから、乱数生成処理について、Ｓ／Ｗ処理を行うか、Ｈ／Ｗ処理を行うかを選択する（Ｓ１０）。
送信対象データのデータサイズは、送信対象データのヘッダ部分を参照することで確認することができる。Ｓ／Ｗ処理が選択された場合は、処理はステップＳ１１に進み、Ｈ／Ｗ処理が選択された場合には、処理はステップＳ１２に進む。
ステップＳ１１では、Ｓ／Ｗ乱数生成部１３３が乱数生成処理を行う。言い換えると、ソフトウェアを用いた乱数生成処理が行われる。そして、処理はステップＳ１３に進む。
一方、ステップＳ１２では、Ｈ／Ｗ乱数生成部１３７が乱数生成処理を行う。言い換えると、ハードウェアを用いた乱数生成処理が行われる。そして、処理はステップＳ１３に進む。
【００３７】
ステップＳ１３では、処理切替部１３１は、マッピングテーブルを参照して、送信対象データのデータサイズと使用する暗号化アルゴリズムとから、暗号化処理について、Ｓ／Ｗ処理を行うか、Ｈ／Ｗ処理を行うかを選択する。使用する暗号化アルゴリズムは、暗号通信処理部１２０から送られてくるパラメータを参照することで確認することができる。Ｓ／Ｗ処理が選択された場合は、処理はステップＳ１４に進み、Ｈ／Ｗ処理が選択された場合には、処理はステップＳ１５に進む。
ステップＳ１４では、Ｓ／Ｗ暗号化処理部１３４が暗号化処理を行う。言い換えると、ソフトウェアを用いた暗号化処理が行われる。そして、処理はステップＳ１６に進む。
一方、ステップＳ１５では、Ｈ／Ｗ暗号化処理部１３８が暗号化処理を行う。言い換えると、ハードウェアを用いた暗号化処理が行われる。そして、処理はステップＳ１６に進む。
【００３８】
ステップＳ１６では、処理切替部１３１は、マッピングテーブルを参照して、送信対象データのデータサイズと使用するハッシュ値計算アルゴリズムとから、ハッシュ値の計算について、Ｓ／Ｗ処理を行うか、Ｈ／Ｗ処理を行うかを選択する。使用するハッシュ値計算アルゴリズムは、暗号通信処理部１２０から送られてくるパラメータを参照することで確認することができる。Ｓ／Ｗ処理が選択された場合は、処理はステップＳ１７に進み、Ｈ／Ｗ処理が選択された場合には、処理はステップＳ１８に進む。
ステップＳ１７では、Ｓ／Ｗハッシュ値計算部１３５がハッシュ値計算処理を行う。言い換えると、ソフトウェアを用いたハッシュ値計算処理が行われる。
一方、ステップＳ１８では、Ｈ／Ｗハッシュ値計算部１３９がハッシュ値計算処理を行う。言い換えると、ハードウェアを用いたハッシュ値計算処理が行われる。
【００３９】
なお、セキュリティ機能部１３０での暗号処理が施された暗号化送信対象データは、暗号通信処理部１２０に戻される。
【００４０】
暗号通信処理部１２０に戻された暗号化送信対象データは、暗号通信パラメータ記憶部１２２に記憶されているパラメータに基づいて、データのカプセル化、対向するゲートウェイ装置１１０のＩＰアドレス情報の付与が行われた後、ネットワーク処理部１１１に渡され、対向先のゲートウェイ装置１１０に送信データとして送信される。
【００４１】
暗号通信処理された送信データを受け取った対向先のゲートウェイ装置１１０は、復号処理を行い、配下端末１０３又は対向先のゲートウェイ装置１１０内部へ転送を行う。
【００４２】
以上のように、実施の形態１によれば、セキュリティ機能部１３０で行う暗号処理に含まれる乱数生成処理、暗号化処理及びハッシュ値計算処理において、アルゴリズム及びデータサイズ等の各条件に応じて、Ｈ／Ｗ処理及びＳ／Ｗ処理を切り替られることができるため、各条件で最も性能が高い処理方式を選択することができる。このため、暗号処理を行う際に機器の性能を最大限引き出すことができる。
【００４３】
実施の形態１は、上述のように、暗号処理についてＳ／Ｗ処理及びＨ／Ｗ処理の両方に対応しているゲートウェイ装置１１０に限られない。例えば、処理を行うゲートウェイ装置の制約上、Ｈ／Ｗセキュリティ機能部１３６を備えておらず、Ｓ／Ｗ処理しかできないゲートウェイ装置、又は、Ｈ／Ｗ処理に固定されており切り替えができないゲートウェイ装置にも、実施の形態１を適用することができる。このような場合には、マッピングテーブルを全てＳ／Ｗ又はＨ／Ｗとすることで対応可能である。
【００４４】
または、図７に示されているように、図６のステップＳ１０の前段に、ステップＳ２０及びＳ２４を設けることで、マッピングテーブルの全体を確認して、Ｈ／Ｗ処理のみ又はＳ／Ｗ処理のみが選択されている場合に、処理を簡略化することができる。
例えば、ステップＳ２０で、マッピングテーブルの全体がＨ／Ｗ処理のみを選択している場合には、処理切替部１３１は、ステップＳ２１からＳ２３で、Ｈ／Ｗセキュリティ機能部１３６にハードウェアを用いた暗号処理を行わせる。
また、ステップＳ２４で、マッピングテーブルの全体がＳ／Ｗ処理のみを選択している場合には、処理切替部１３１は、ステップＳ２５からＳ２７で、Ｓ／Ｗセキュリティ機能部１３２にソフトウェアを用いた暗号処理を行わせる。
【００４５】
なお、ステップＳ２０及びＳ２４での処理については、Ｓ／Ｗ処理のみ、Ｈ／Ｗ処理のみ又は両方対応を示すフラグをマッピングテーブルに設けておくことで、処理切替部１３１がそのフラグを確認するようにしてもよい。
【００４６】
なお、実施形態１では、ゲートウェイ装置１１０が行う暗号化通信をＶＰＮ通信として、ＯＳＩ階層の第３層で処理を行うＩＰｓｅｃを例に説明したが、他のＶＰＮ暗号通信でも同様に構成することができる。例えば、ＶＰＮ通信を行い第２層で暗号通信処理を行うＬ２ＴＰ又はＰＰＴＰでは、Ｅｔｈｅｒｎｅｔフレームが対象となり、第４層以上で暗号通信処理を行うＳＳＬ  ＶＰＮ等では、第４層以上のデータが対象となることを除き、同様の動作となる。
【００４７】
また、ＶＰＮ通信だけでなく、ＳＳＬを用いたＨＴＴＰＳ通信、又は、ＳＦＴＰ若しくはＳＳＨ等他のプロトコルの暗号通信でも同様の動作となり、この場合は、送信対象データは、他のアプリケーションが送信したデータとなる。
【００４８】
実施の形態２．
実施の形態１は、暗号処理をＨ／Ｗ処理及びＳ／Ｗ処理に分岐させているが、実施の形態２は、暗号処理前段のデータ圧縮の使用及び不使用も分岐させる。
【００４９】
一般に、送信対象データを圧縮した後に暗号処理を実施した方が、データ量が少なくなるため、スループット性能が向上するが、すでに送信対象データが圧縮されている場合には、再度、送信対象データを圧縮しても、データ量はさほど少なくならないことが多い。このため、実施の形態２では、すでに圧縮された送信対象データについては、再度圧縮処理を実施しないことにより、圧縮処理の時間を削減するようにした。
【００５０】
図１に示されているように、実施の形態２に係る通信システム２００は、ゲートウェイ装置２１０Ａ、２１０Ｂを備える。
実施の形態２も、暗号通信機能をネットワークのエッジにあたるゲートウェイ装置２１０Ａ、２１０Ｂに搭載した例である。
【００５１】
ゲートウェイ装置２１０Ａ、２１０Ｂは、ネットワークとしてのインターネット１０１に接続され、ゲートウェイ装置２１０Ａ、２１０Ｂの間に、暗号通信トンネル１０２を構成している。
ここで、ゲートウェイ装置２１０Ａ、２１０Ｂは、同じように構成されているため、以下、ゲートウェイ装置２１０Ａ、２１０Ｂの各々を特に区別する必要がない場合には、ゲートウェイ装置２１０という。
【００５２】
図８は、実施の形態２におけるゲートウェイ装置２１０の構成を概略的に示すブロック図である。
ゲートウェイ装置２１０は、ネットワーク処理部１１１と、暗号通信処理部１２０と、セキュリティ機能部２３０と、記憶部２４０とを備える。
実施の形態２におけるゲートウェイ装置２１０のネットワーク処理部１１１及び暗号通信処理部１２０は、実施の形態１と同様である。
【００５３】
セキュリティ機能部２３０は、送信対象データの圧縮処理及び暗号処理を行う。
セキュリティ機能部２３０は、処理切替部２３１と、Ｓ／Ｗセキュリティ機能部１３２と、Ｈ／Ｗセキュリティ機能部１３６と、圧縮部２５０とを備える。
実施の形態２におけるセキュリティ機能部２３０のＳ／Ｗセキュリティ機能部１３２及びＨ／Ｗセキュリティ機能部１３６は、実施の形態１と同様である。
【００５４】
処理切替部２３１は、実施の形態１と同様の処理を行うほか、暗号処理の選択を行う前に、記憶部２４０に記憶されている圧縮テーブルを参照し、暗号通信処理部１２０から渡された送信対象データの圧縮処理を行うか否かを切り替える。
圧縮部２５０は、処理切替部２３１の判断に従って、送信対象データの圧縮を行う。
【００５５】
記憶部２４０は、切替情報としてのマッピングテーブル及び圧縮情報としての圧縮テーブルを記憶する。
マッピングテーブルについては、実施の形態１と同様である。
【００５６】
図９は、圧縮テーブルのデータ構造を説明するための概略図である。
図９に示されているように、圧縮テーブル２４３は、送信対象データの種類毎に、データの圧縮を行うか否かを示す情報である。
ここで、図９における「○  ｏｒ  ×」における「○」は、圧縮処理を行うことを示し、「×」は、圧縮処理を行わないことを示し、「○  ｏｒ  ×」は、圧縮処理を行うこと及び圧縮処理を行わないことの何れかが選択されることを示している。
【００５７】
また、圧縮テーブルの作成では、例えば、データの種類を、テキストデータ、圧縮済みの画像データ、非圧縮の画像データ、圧縮済みの映像データ、非圧縮の映像データ、・・・のように変更し、それぞれのデータの種類でデータ圧縮使用時及びデータ圧縮未使用時それぞれについて、暗号処理完了までのスループットの測定を行う。測定結果を基に、データ圧縮使用時及びデータ圧縮未使用時のどちらのスループット性能が高いか比較を行い、スループット性能が高い方式を選択することで、圧縮テーブルが構築される。
なお、ここでの暗号処理は、代表的なデータサイズ及びアルゴリズムが使用されればよい。
【００５８】
図１０は、圧縮テーブルの一例を示す概略図である。
例えば、ＶＰＮ通信を行いＯＳＩ階層モデルの第３層で処理を行うＩＰｓｅｃでは、配下端末１０３から受信したＩＰパケットを暗号通信処理し転送することとなる。図１０の圧縮テーブル２４４に示されているように、１つ目の転送データの種類がテキストデータだった場合、データ圧縮処理を行った後に各種暗号処理を行う。２つ目の転送データの種類が圧縮済みの映像データだった場合、データ圧縮処理を行わずに各種暗号処理を行う。
【００５９】
次に動作について説明する。
図１１は、実施の形態２のセキュリティ機能部２３０における、データ圧縮の有無の選択動作、並びに、Ｓ／Ｗ処理及びＨ／Ｗ処理の選択動作を示すフローチャートである。
【００６０】
まず、セキュリティ機能部２３０の処理切替部２３１は、暗号通信処理部１２０から送信対象データを受け取ると、記憶部２４０に記憶されている圧縮テーブルを参照することで、送信対象データのデータ内容に応じて、データ圧縮の使用の有無を選択する（Ｓ３０）。データ圧縮を使用する場合は、処理はステップＳ３１に進み、データ圧縮を使用しない場合には、処理はステップＳ１０に進む。
【００６１】
データ圧縮の使用の有無の判断には、送信対象データ内のヘッダ部分、又は、通信に用いているポート番号等の確認が行われる。
送信対象データ内のヘッダ部分には、そのデータ種類の識別情報が記載されている。例えば、ヘッダ部分にＪＰＥＧ画像データの識別情報が記載されていた場合は、処理切替部２３１は、圧縮済の画像データと判断する。ヘッダ部分にＭＰ４映像データの識別情報が記載されていた場合は、処理切替部２３１は、圧縮済の映像データと判断する。
なお、映像データ及び画像データ等には非圧縮のデータも存在する。例えば、ＢＭＰファイル又はＴＩＦＦファイルの一部は、非圧縮の画像データである。これらも、ヘッダ部分の識別情報で圧縮済又は非圧縮の判断が可能のため、処理切替部２３１は、これらを元に、圧縮処理を行うか否かを決定する。
【００６２】
また、通信に用いているポート番号は、プロトコル毎に決まっているため、処理切替部２３１は、ポート番号を確認することでデータ種類の判別が可能である。例えば、ポート番号が、映像ストリーミングプロトコルである、Ｍｉｃｒｏｓｏｆｔ  Ｍｅｄｉａ  Ｓｅｒｖｅｒ（ＭＭＳ）、又は、リアルタイム  ストリーミング  プロトコル（ＲＴＳＰ）等を示している場合には、圧縮済みの映像データに該当する。具体的には、ＭＭＳなら１７５５、ＲＳＴＰなら５５４のように、デフォルトのポート番号が割り当てられるため、処理切替部２３１は、これらを元に圧縮処理を行うか否かを決定する。
【００６３】
図１１のステップＳ１０〜Ｓ１８の処理については、実施の形態１における図６のステップＳ１０〜Ｓ１８の処理と同様のため、詳細な説明は、省略する。
【００６４】
以上のように、実施の形態２によれば、データ種類毎に圧縮処理を行うか否かを切り替えることができるため、既に圧縮されているデータの再圧縮による処理時間ロスを低減させることが可能となり、転送スループットの向上を図ることができる。
【００６５】
実施の形態２は、上述のような、圧縮処理に対応しているゲートウェイ装置２１０に限らず、圧縮処理を必ず行うゲートウェイ装置、又は、圧縮処理に対応していないゲートウェイ装置にも適用可能である。例えば、データ圧縮を必ず行うゲートウェイ装置では、圧縮テーブルを全て○、データ圧縮に対応していないゲートウェイ装置では圧縮テーブルを全て×とすることで対応可能である。
【００６６】
実施の形態３．
実施の形態１及び２では、暗号通信の送信側の処理を説明したが、実施の形態３では、暗号通信の受信側の処理を説明する。
図１に示されているように、実施の形態３に係る通信システム３００は、ゲートウェイ装置３１０Ａ、３１０Ｂを備える。
実施の形態３も、暗号通信機能をネットワークのエッジにあたるゲートウェイ装置３１０Ａ、３１０Ｂに搭載した例である。
【００６７】
ゲートウェイ装置３１０Ａ、３１０Ｂは、ネットワークとしてのインターネット１０１に接続され、ゲートウェイ装置３１０Ａ、３１０Ｂの間に、暗号通信トンネル１０２を構成している。
ここで、ゲートウェイ装置３１０Ａ、３１０Ｂは、同じように構成されているため、以下、ゲートウェイ装置３１０Ａ、３１０Ｂの各々を特に区別する必要がない場合には、ゲートウェイ装置３１０という。
【００６８】
図１２は、ゲートウェイ装置３１０の構成を概略的に示すブロック図である。
ゲートウェイ装置３１０は、ネットワーク処理部３１１と、暗号通信処理部３２０と、セキュリティ機能部３３０と、記憶部３４０とを備える。
ネットワーク処理部３１１は、インターネット１０１とのインターフェースとして機能する。例えば、ネットワーク処理部３１１は、Ｅｔｈｅｒｎｅｔフレーム又はＩＰパケットを受信する。
【００６９】
暗号通信処理部３２０は、インターネット１０１において暗号通信を行うために、暗号通信トンネル構築処理及び暗号通信処理を行う。
暗号通信処理部３２０は、暗号通信トンネル構築処理部１２１と、暗号通信パラメータ記憶部１２２と、復号処理部３２４とを備える。
実施の形態３における暗号通信処理部３２０の暗号通信トンネル構築処理部１２１及び暗号通信パラメータ記憶部１２２は、実施の形態１と同様である。
【００７０】
復号処理部３２４は、暗号通信トンネル構築処理部１２１によるネゴシエーションで決定されたパラメータを用いて、復号対象データの暗号通信処理を行う。
例えば、インターネット１０１から受信した受信データを含む復号対象データは、暗号通信処理を行うためネットワーク処理部３１１から暗号通信処理部３２０に渡される。暗号通信処理部３２０は、復号対象データを受け取ったのち、暗号処理を行うため、暗号通信パラメータ記憶部１２２に記憶されているパラメータとともに、復号対象データをセキュリティ機能部３３０に渡す。
【００７１】
そして、復号処理部３２４は、セキュリティ機能部３３０で復号された復号データを受け取り、宛先に応じて、処理を行った後、処理後のデータを、送信データとして宛先に送る。例えば、宛先がゲートウェイ装置３１０である場合には、復号処理部３２４は、復号されたデータを、ネットワーク処理部３１１からゲートウェイ装置３１０の他のプロセス部（図示せず）に送る。また、復号データの宛先が、配下端末１０３である場合には、データのカプセル化、宛先となる配下端末１０３のＩＰアドレス情報の付与が行われた後、ネットワーク処理部１１１に渡され、配下端末１０３に送信データとして送信される。
【００７２】
セキュリティ機能部３３０は、送信対象データの暗号処理を行う。
セキュリティ機能部３３０は、処理切替部３３１と、Ｓ／Ｗセキュリティ機能部３３２と、Ｈ／Ｗセキュリティ機能部３３６とを備える。
【００７３】
処理切替部３３１は、記憶部３４０に記憶されているマッピングテーブルを参照し、暗号通信処理部３２０から渡された復号対象データの暗号処理を、Ｓ／Ｗセキュリティ機能部３３２で行うか、又は、Ｈ／Ｗセキュリティ機能部３３６で行うかを切り替える。
【００７４】
Ｓ／Ｗセキュリティ機能部３３２は、ソフトウェアを用いて、復号対象データの暗号処理、例えば、復号化処理及びハッシュ値計算処理を行う。
例えば、Ｓ／Ｗセキュリティ機能部３３２は、Ｓ／Ｗ復号化処理部３５１と、Ｓ／Ｗハッシュ値計算部３３５とを備える。
Ｓ／Ｗ復号化処理部３５１は、ソフトウェアを用いて、復号対象データを復号化する。ここで、Ｓ／Ｗ復号化処理部３５１は、複数の復号化アルゴリズム（復号化処理の処理内容）に対応している。
Ｓ／Ｗハッシュ値計算部３３５は、ソフトウェアを用いて、復号対象データの改竄を検知するためのハッシュ値を計算する。ここで、Ｓ／Ｗハッシュ値計算部３３５は、複数のハッシュ値計算アルゴリズム（ハッシュ値計算処理の処理内容）に対応している。
【００７５】
Ｈ／Ｗセキュリティ機能部３３６は、ハードウェアを用いて、復号対象データの暗号処理、例えば、復号化処理及びハッシュ値計算処理を行う。
例えば、Ｈ／Ｗセキュリティ機能部３３６は、Ｈ／Ｗ復号化処理部３５２と、Ｈ／Ｗハッシュ値計算部３３９とを備える。
Ｈ／Ｗ復号化処理部３５２は、ハードウェアを用いて、復号対象データを復号化する。ここで、Ｈ／Ｗ復号化処理部３５２は、複数の復号化アルゴリズムに対応している。
Ｈ／Ｗハッシュ値計算部３３９は、ハードウェアを用いて、復号対象データの改竄を検知するためのハッシュ値を計算する。ここで、Ｈ／Ｗハッシュ値計算部３３９は、複数のハッシュ値計算アルゴリズムに対応している。
【００７６】
記憶部３４０は、切替情報としてのマッピングテーブルを記憶する。
マッピングテーブルは、暗号処理の処理内容とデータサイズとの組み合わせ毎に、ソフトウェアを選択するか、ハードウェアを選択するかを示す情報である。
【００７７】
図１３は、マッピングテーブルのデータ構造を説明するための概略図である。
図１３に示されているように、マッピングテーブル３４５は、ハッシュ値を計算する複数のアルゴリズム（ハッシュ値を計算する複数の処理内容）の各々と複数のデータサイズの各々との組み合わせ毎、及び、復号化処理を行う複数のアルゴリズム（復号化処理の複数の処理内容）の各々と複数のデータサイズの各々との組み合わせ毎に、ソフトウェアを選択するか、ハードウェアを選択するかを示す。
【００７８】
ソフトウェアとハードウェアとの切替を行うために、暗号通信を行う機器上で事前に、データサイズ、ハッシュ値計算に用いるアルゴリズム、及び、暗号化処理に用いるアルゴリズムを基にして、ソフトウェアとハードウェアとのそれぞれで処理を行うことで、より処理の完了時間の短い方を選択して、選択された方を、図１３に示されているようなマッピングテーブル３４５に格納する。
例えば、図１３に示されている例では、復号対象データのデータサイズを、６４ｂｙｔｅ、１２８ｂｙｔｅ、２５６ｂｙｔｅ、５１２ｂｙｔｅ、１０２４ｂｙｔｅ、・・・のように変更し、それぞれのデータサイズでの、ＭＤ５、ＳＨＡ１又はＳＨＡ２等のハッシュ値計算アルゴリズムを用いたハッシュ計算処理、及び、ＤＥＳ、３ＤＥＳ、ＡＥＳ１２８、ＡＥＳ１９２又はＡＥＳ２５６等の復号化アルゴリズムを用いた復号化処理において、Ｓ／Ｗセキュリティ機能部３３２を用いた処理時及びＨ／Ｗセキュリティ機能部３３６を用いた処理時のそれぞれのスループットの測定を行う。測定結果を基に、Ｓ／Ｗセキュリティ機能部３３２及びＨ／Ｗセキュリティ機能部３３６のどちらのスループット性能が高いか比較を行い、スループット性能が高い方を選択することで、マッピングテーブルが構築される。
【００７９】
なお、図１３における「Ｓ  ｏｒ  Ｈ」における「Ｓ」は、ソフトウェア（Ｓ／Ｗセキュリティ機能部３３２）を示し、「Ｈ」は、ハードウェア（Ｈ／Ｗセキュリティ機能部３３６）を示し、「Ｓ  ｏｒ  Ｈ」は、ソフトウェア（Ｓ／Ｗセキュリティ機能部３３２）及びハードウェア（Ｈ／Ｗセキュリティ機能部３３６）の何れかが選択されることを示している。
【００８０】
図１４は、マッピングテーブルの一例を示す概略図である。
図１４に示されているマッピングテーブル３４６は、Ｈ／Ｗセキュリティ機能部３３６に復号対象データを渡す際に、オーバーヘッドがかかり、データサイズが小さいときにはオーバーヘッドが処理時間の大部分を占めるため、Ｓ／Ｗセキュリティ機能部３３２の処理性能の方が良くなる例を示している。
【００８１】
以上のように、マッピングテーブルによれば、復号化処理では、復号対象データのデータサイズ及び復号化処理の処理内容（アルゴリズム）の組み合わせに応じて切り替えが行われ、ハッシュ値計算処理では、復号対象データのデータサイズ及びハッシュ値計算処理の処理内容（アルゴリズム）の組み合わせに応じて切り替えが行われる。
【００８２】
以上に記載された、ネットワーク処理部３１１、暗号通信トンネル構築処理部１２１、復号処理部３２４、処理切替部３３１及びＨ/Ｗセキュリティ機能部３３６の一部又は全部は、例えば、図５（Ａ）に示されているように、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ又はＦＰＧＡ等の処理回路１０で構成することができる。
【００８３】
また、Ｓ／Ｗセキュリティ機能部３３２は、例えば、図５（Ｂ）に示されているように、メモリ１１と、メモリ１１に記憶されているプログラムを実行するＣＰＵ等のプロセッサ１２とにより構成することができる。このようなプログラムは、ネットワークを通じて提供されてもよく、また、記録媒体に記録されて提供されてもよい。即ち、このようなプログラムは、例えば、プログラムプロダクトとして提供されてもよい。
【００８４】
なお、暗号通信トンネル構築処理部１２１、復号処理部３２４及び処理切替部３３１の一部又は全部は、図５（Ｂ）に示されているように、メモリ１１と、プロセッサ１２とにより構成することもできる。
また、暗号通信パラメータ記憶部１２２は、揮発性又は不揮発性のメモリにより構成することができ、記憶部３４０は、不揮発性のメモリにより構成することができる。
【００８５】
次に動作について説明する。
図１５は、実施の形態３のセキュリティ機能部３３０におけるＳ／Ｗ処理及びＨ／Ｗ処理の選択動作を示すフローチャートである。
【００８６】
セキュリティ機能部３３０の処理切替部３３１は、暗号通信処理部３２０から復号対象データを受け取ると、記憶部３４０に記憶されているマッピングテーブルを参照して、送信対象データのデータサイズと使用するハッシュ値計算アルゴリズムとから、ハッシュ値の計算について、Ｓ／Ｗ処理を行うか、Ｈ／Ｗ処理を行うかを選択する（Ｓ４０）。使用するハッシュ値計算アルゴリズムは、暗号通信処理部３２０から送られてくるパラメータを参照することで確認することができる。Ｓ／Ｗ処理が選択された場合は、処理はステップＳ４１に進み、Ｈ／Ｗ処理が選択された場合には、処理はステップＳ４２に進む。
ステップＳ４１では、Ｓ／Ｗハッシュ値計算部３３５がハッシュ値計算処理を行う。言い換えると、ソフトウェアを用いたハッシュ値計算処理が行われる。そして、処理はステップＳ４３に進む。
一方、ステップＳ４２では、Ｈ／Ｗハッシュ値計算部３３９がハッシュ値計算処理を行う。言い換えると、ハードウェアを用いたハッシュ値計算処理が行われる。そして、処理はステップＳ４３に進む。
【００８７】
ステップＳ４３では、処理切替部３３１は、マッピングテーブルを参照して、復号対象データのデータサイズと使用する復号化アルゴリズムとから、復号化処理について、Ｓ／Ｗ処理を行うか、Ｈ／Ｗ処理を行うかを選択する。使用する復号化アルゴリズムは、暗号通信処理部３２０から送られてくるパラメータを参照することで確認することができる。Ｓ／Ｗ処理が選択された場合は、処理はステップＳ４４に進み、Ｈ／Ｗ処理が選択された場合には、処理はステップＳ４５に進む。
ステップＳ４４では、Ｓ／Ｗ復号化処理部３５１が復号化処理を行う。言い換えると、ソフトウェアを用いた復号化処理が行われる。
一方、ステップＳ４５では、Ｈ／Ｗ復号化処理部３５２が復号化処理を行う。言い換えると、ハードウェアを用いた復号化処理が行われる。
【００８８】
なお、セキュリティ機能部３３０での暗号処理が施された復号データは、暗号通信処理部３２０に戻される。
【００８９】
以上のように、実施の形態３では、復号処理を行う際に機器の性能を最大限に引き出すことが可能となる。
【００９０】
なお、実施の形態１及び２において、Ｓ／Ｗ処理及びＨ／Ｗ処理共に出力されるデータは同じとなるため、暗号通信の対向先のゲートウェイ装置は、実施の形態３に記載の機能を有していなくてもよい。
【００９１】
また、実施の形態３におけるゲートウェイ装置３１０の機能が、実施の形態１又は２におけるゲートウェイ装置１１０、２１０に搭載されていてもよい。このような場合には、送信側及び受信側の暗号処理の両方において、通信の効率化を図ることができる。
【００９２】
実施の形態１〜３は、図１６に示されているように、ゲートウェイ装置４１０Ａの配下の配下端末４０３Ａと、ゲートウェイ装置４１０Ｂの配下の配下端末４０３Ｂとが暗号通信を行う場合にも、適用可能である。
このような場合には、配下端末４０３Ａ、４０３Ｂが、ネットワーク処理部１１１、３１１、暗号通信処理部１２０、３２０、及び、セキュリティ機能部１３０、２３０、３３０を備えればよい。
そして、ゲートウェイ装置４１０Ａ、４１０Ｂは、上述のゲートウェイ装置１１０、２１０、３１０とは異なり、通常の装置でよい。
【００９３】
また、実施の形態１〜３は、図１７に示されているように、ゲートウェイ装置１１０Ａ、２１０Ａ、３１０Ａと、ゲートウェイ装置４１０Ｂの配下の配下端末４０３Ｂとが暗号通信を行う場合にも、適用可能である。
このような場合には、配下端末４０３Ｂが、ネットワーク処理部１１１、３１１、暗号通信処理部１２０、３２０、及び、セキュリティ機能部１３０、２３０、３３０を備えればよい。
そして、ゲートウェイ装置４１０Ｂは、上述のゲートウェイ装置１１０、２１０、３１０とは異なり、通常の装置でよい。
【００９４】
即ち、実施の形態１〜３は、ゲートウェイ装置１１０、２１０、３１０に限定されず、暗号通信を行う通信装置に適用することができる。
【符号の説明】
【００９５】
１００，２００，３００  通信システム、  １０１  インターネット、  １０２  暗号通信トンネル、  １０３  配下端末、  １１０，２１０，３１０  ゲートウェイ装置、  １１１，３１１  ネットワーク処理部、  １２０，３２０  暗号通信処理部、  １２１  暗号通信トンネル構築処理部、  １２２  暗号通信パラメータ記憶部、  １２３  暗号処理部、  ３２４  復号処理部、  １３０，２３０，３３０  セキュリティ機能部、  １３１，２３１，３３１  処理切替部、  １３２，３３２  Ｓ／Ｗセキュリティ機能部、  １３３  Ｓ／Ｗ乱数生成部、  １３４  Ｓ／Ｗ暗号化処理部、  １３５，３３５  Ｓ／Ｗハッシュ値計算部、  １３６，３３６  Ｈ／Ｗセキュリティ機能部、  １３７  Ｈ／Ｗ乱数生成部、  １３８  Ｈ／Ｗ暗号化処理部、  １３９，３３９  Ｈ／Ｗハッシュ値計算部、  １４０，２４０，３４０  記憶部、  ２５０  圧縮部、  ３５１  Ｓ／Ｗ復号化処理部、  ３５２  Ｈ／Ｗ復号化処理部。
【図１】
2019033402.tif 000003
【図２】
2019033402.tif 000004
【図３】
2019033402.tif 000005
【図４】
2019033402.tif 000006
【図５】
2019033402.tif 000007
【図６】
2019033402.tif 000008
【図７】
2019033402.tif 000009
【図８】
2019033402.tif 000010
【図９】
2019033402.tif 000011
【図１０】
2019033402.tif 000012
【図１１】
2019033402.tif 000013
【図１２】
2019033402.tif 000014
【図１３】
2019033402.tif 000015
【図１４】
2019033402.tif 000016
【図１５】
2019033402.tif 000017
【図１６】
2019033402.tif 000018
【図１７】
2019033402.tif 000019