以下、本発明を実施するための形態について説明する。
[第1の実施の形態]
最初に第1の実施の形態について説明する。図1は第1の実施の形態における通信システム10の構成例を表わす図である。通信システム10は、通信装置700と他の通信装置800とを備える。
通信装置700は、他の通信装置800から送信されたデータに対して、第1の暗号アルゴリズム又は第2の暗号アルゴリズムによる暗号化を行う。また、通信装置700は、第1の暗号アルゴリズム又は第2の暗号アルゴリズムで暗号化されたデータに対して、暗号化に使用した暗号アルゴリズムで暗号化する。
通信装置700は暗号化部710を備える。暗号化部710は、暗号化又は復号化を行うときに使用するパラメータを識別する暗号クラスを含むデータを受信したとき、暗号クラスに基づいて、データに対して第1又は第2の暗号アルゴリズムによる暗号化或いは復号化を行う。この場合において、第2の暗号アルゴリズムは第1の暗号アルゴリズムよりセキュリティレベルが高い暗号アルゴリズムとなっている。
例えば、第1の暗号アルゴリズムは通信装置700の設置時において実行することができる暗号アルゴリズムとし、第2の暗号アルゴリズムは、通信装置700の設置後、ダウンロードなどにより実行することができる暗号アルゴリズムとする。
この場合、通信装置700は第2の暗号アルゴリズムによる暗号化や復号化(以下、「暗号化等」と称する場合がある)を実行することで、設置時に実行可能な第1の暗号アルゴリズムよりも高セキュリティ化を実現することができる。
さらに、この場合、通信装置700は更なる最新の暗号アルゴリズムをダウンロードなどにより実行することができれば、新たなセキュリティの脅威に対して、常に最新の暗号アルゴリズムにより対応することができる。通信装置700においては、例えば、このような最新の暗号アルゴリズムを第2の暗号アルゴリズムとして実行することができる。
また、暗号化部710は暗号クラスに基づいて第1又は第2の暗号アルゴリズムを選択するようになっている。このため、例えば、暗号クラスについて、通信装置700が他の通信装置800に提供するサービスの種別に応じて異なるものであるとき、暗号化部710はサービス種別に応じて第1又は第2の暗号アルゴリズムを選択することができる。従って、通信装置700は、サービスに応じたセキュリティを確保することができる。
例えば、通信装置700は銀行やカードの決済に関する「機密パケット」に関するデータに対しては第2の暗号アルゴリズム、電子メールなどに関する「通常パケット」や「音声」に関するデータなどに対しては第1の暗号アルゴリズムを適用することも可能である。
[第2の実施の形態]
次に第2の実施の形態について説明する。本第2の実施の形態は以下の順番で説明する。すなわち、最初に通信システムの構成例について説明し、次に、通信システムに含まれる各装置の構成例について説明する。最後に、動作例について説明する。
<全体構成例>
図2は通信システム10の構成例を表わす図である。通信システム10は無線基地局装置(eNB:evolved Node B、以下「基地局」と称する場合がある)100−1〜100−n、通信端末装置(以下、「通信端末」と称する場合がある)200−1〜200−m、セキュリティGW(Gateway)300、保守装置(OPE:Operation equipment、以下「OPE」と称する場合がある)400、ネットワーク500、及び対向ノード600とを備える。
なお、基地局100−1〜100−nは、例えば、第1の実施の形態における通信装置700に対応する。また、通信端末200−1〜200−mは、例えば、第1の実施の形態における他の通信装置800に対応する。
各基地局100−1〜100−nは通信端末200−1〜200−mと無線接続して無線通信を行う通信装置である。また、各基地局100−1〜100−nは、1又は複数の自局のセル範囲内において、通信端末200−1〜200−mに対して音声通信や映像のストリーミング、GPS情報の提供、クレジット決済など種々のサービスを提供できる。
さらに、各基地局100−1〜100−nは暗号プログラムを実行することで、セキュリティGW300と間で送受信されるパケットデータなどに対して暗号処理を行い、セキュリティGW300との間の通信路のセキュリティを確保することができる。各基地局100−1〜100−nとセキュリティGW300間において通信路のセキュリティが確保される理由については後述する。
なお、本第2の実施の形態においては、暗号処理や復号処理が専用のLSI(例えば専用集積回路)などハードエンジンによって行われることを例えばハードウェアによる暗号化と称する場合がある。また、暗号処理や復号処理がCPUなどによって行われることを例えばソフトウェアによる暗号化と称する場合がある。
各基地局100−1〜100−nは装置内に搭載されたハードエンジンによってハードウェアによる暗号化を行い、CPUによってソフトウェアによる暗号化を行う。各基地局100−1〜100−nの詳細は後述する。
各通信端末200−1〜200−mは、例えば、フィーチャーフォンやスマートフォン、無線通信可能なパーソナルコンピュータなどである。各通信端末200−1〜200−mは、例えば、各基地局100−1〜100−nと無線接続して無線通信を行う通信装置でもある。通信端末200−1〜200−mも詳細も後述する。
図2の例では、通信端末200−1は基地局100−1と無線接続して無線通信を行っている様子を表わしている。無線接続の形態はこれ以外にも、例えば、他の通信端末200−2〜200−mが基地局100−1と無線通信を行ってもよいし、通信端末200−1が各基地局100−2〜100−nと無線通信を行ってもよい。
セキュリティGW300は、1又は複数の基地局100−1〜100−nと接続され、またネットワーク500を介して対向ノード600とも接続される通信装置である。セキュリティGW300においても暗号プログラムを実行することができ、各基地局100−1〜100−nとの間の通信路のセキュリティを確保することができる。セキュリティGW300についても、各基地局100−1〜100−nと同様に、ハードウェアによる暗号化を行うことができるし、ソフトウェアによる暗号化を行うこともできる。セキュリティGW300の詳細は後述する。
なお、本第2の実施の形態においては、主に、セキュリティGW300と各基地局100−1〜100−nとにおいて暗号プログラムが実行される。これにより、例えば、セキュリティGW300と各基地局100−1〜100−nとの間の通信路のセキュリティが確保される。かかる通信路は、例えば、インターネットなど商用のネットワークなどである。また、各基地局100−1〜100−nの設置場所とセキュリティGW300などの設置場所は例えば異なるものとなっている。例えば、設置場所が同一の装置間では、暗号プログラムが実行されるなどして当該装置間の通信路のセキュリティは確保されるようになっている。しかし、設置場所の異なる装置間では、それぞれで暗号プログラムを実行することは同一の設置場所にある装置間と比較して少なく、本第2の実施の形態ではこのような装置を対象としている。そのため、本第2の実施の形態では、各基地局100−1〜100−nとセキュリティGW300の通信路についてもセキュリティを確保するようにしている。
図2の例においては、基地局100−1とセキュリティGW300との間においては、「高セキュリティ」と「低セキュリティ」の2つの暗号トンネルが確立されている。本第2の実施の形態では、「高セキュリティ」の暗号トンネルによって、例えばAES(Advanced Encryption Standard)方式による暗号化が施されたパケットデータなどが交換される。また、「低セキュリティ」の暗号トンネルによって、例えばDES(Data Encryption Standard)方式による暗号化が施されたパケットデータなどが交換される。
AES方式とは、例えば、アメリカ合衆国の新暗号規格(AES)として規格化された共通鍵暗号方式である。AES暗号化方式は、旧規格のDES暗号方式では安全性が低下したため、1997年にNIST(National Institute of Standard and Technology:アメリカ国立標準技術研究所)により公募されて採用された暗号化方式である。なお、DES方式は、例えば、アメリカ合衆国の旧国家暗号規格、もしくはその規格で規格化されている共通鍵暗号方式のことである。
OPE400は、例えば、通信システム10において有線接続された各装置100−1〜100−n,300などを保守管理する装置である。本第2の実施の形態において、OPE400は、最新の暗号プログラム(又は暗号ソフトウェア)を保持しており、最新の暗号プログラムをセキュリティGW300や各基地局100−1〜100−nに送信することができる。最新の暗号プログラムは、例えば、AES方式による暗号プログラムである。
対向ノード600は、通信端末200−1の通信相手の通信装置である。対向ノード600はネットワーク500を介してセキュリティGW300と接続されている。
なお、図2の例においては、通信端末200−1と対向ノード600との間においても「高セキュリティ」による暗号トンネルが確立されている。「高セキュリティ」による暗号トンネルによって、通信端末200−1又は対向ノード600において、例えばAES方式による暗号化を施したパケットデータなどを交換することができる。
この「高セキュリティ」による暗号トンネルについては、基地局100−1とセキュリティGW300間においては「低セキュリティ」による暗号トンネルを通過するようになっている。これは、例えば、通信端末200−1において「高セキュリティ」による暗号化が行われたデータを含むパケットデータに対して、基地局100−1では「低セキュリティ」による暗号化を行い、これをパケット化したパケットデータをセキュリティGW300に送信している。これにより、例えば同一の通信路において2つトンネルを実現することができる。その詳細は後述する。
なお、本第2の実施の形態では2つの暗号方式、AES方式(以下、「AES」と称する場合がある)とDES方式(以下、「DES」と称する場合がある)により、「高セキュリティ」と「低セキュリティ」による暗号方式がそれぞれ実現される。例えば、AESよりもセキュリティの度合いが高い暗号方式があれば、AESを「低セキュリティ」、AESよりも高いセキュリティの暗号方式を「高セキュリティ」とすることもできる。
<基地局100の構成例>
次に基地局100−1〜100−nの構成例について説明する。基地局100−1〜100−nについては、とくに断らない限り、基地局100として以下説明する。また、通信端末200−1〜200−mについても、とくに断らない限り、通信端末200として以下説明する。
図3は基地局100の構成例を表わす図である。基地局100は、PHY(Ethernet(登録商標) Physical layer)110、DSP(Digital Signal Processor)120、AMP(Amplifier)130、CPU140、SECURITY150を備える。
なお、CPU140とSECURITY150は、例えば、第1の実施の形態における暗号化部710に対応する。
PHY110は有線送受信部111を備える。有線送受信部111は、例えば、セキュリティGW300と接続されて、セキュリティGW300との間においてパケットデータなどの送受信を行う。また、有線送受信部111は、DSP120と接続されて、通信端末200との間においてパケットデータの送受信を行う。
さらに、有線送受信部111は、CPU140と接続される。有線送受信部111は、セキュリティGW300や通信端末200から送信されたパケットデータなどをCPU140に出力することで、パケットデータに対して暗号化させたり、暗号化されたパケットデータを復号化させることができる。有線送受信部111は、CPU140とSECURITY150から暗号化されたパケットデータや復号されたパケットデータなどを受け取り、セキュリティGW300や通信端末200に送信する。
DSP120はベースバンド部121を備える。ベースバンド部121は有線送受信部111から出力されたパケットデータなどに対して、例えば誤り訂正符号化処理や変調処理などを施して、ベースバンド信号に変換する。ベースバンド部121は変換したベースバンド信号を無線送受信部131に出力する。また、ベースバンド部121は無線送受信部131から出力されたベースバンド信号に対して、例えば復調処理や誤り訂正復号化処理などを施して、データなどを抽出する。ベースバンド部121は抽出したデータなどをPHY110に出力する。
AMP130は無線送受信部131を備える。無線送受信部131は、DSP120から出力されたベースバンド信号に対して無線帯域の無線信号に周波数変換(アップコンバード)する。無線送受信部131は無線信号を通信端末200に送信する。また、無線送受信部131は、通信端末200から送信された無線信号を受信して、ベースバンド帯域のベースバンド信号に周波数変換(ダウンコンバート)するなどしてベースバンド信号に変換する。無線送受信部131は変換したベースバンド信号をDSP120に出力する。
CPU140は、セレクタ141、ソフトウェア更新部142、ソフト暗号化部143、暗号管理部144、暗号待ちバッファ145、暗号スケジューラ146、呼制御部147、鍵交換部148を備える。
なお、CPU140内のこれらの処理ブロックは、例えば、ROM(Read Only Memory、図示せず)などに記憶されたプログラムをCPU140が読み出して実行することで実現できる機能ブロックでもある。この場合、暗号待ちバッファ145は、例えばCPU140の外部にあるRAM(Random Access Memory)などのメモリ、またはCPU140内のバッファとすることもできる。
セレクタ141は、有線送受信部111から出力されたデータなどに対して、暗号クラスやセキュリティプロトコルなどに基づいて、データなどをソフトウェア更新部142、暗号管理部144、呼制御部147、又は鍵交換部148のいずれかに出力する。暗号クラスの詳細やデータなどの振り分けなどについては後述する。また、セレクタ141は、暗号管理部144、呼制御部147、鍵交換部148から出力されたデータなどを受け取り、これを有線送受信部111に出力する。
ソフトウェア更新部142は、OPE400から受信した最新の暗号プログラムを基地局100内で実行できるようにするため暗号プログラム(又は暗号ソフトウェア)の更新を行う。ソフトウェア更新部142は、例えば内部にメモリを備え、受信した最新の暗号プログラムをメモリに記憶することでソフトウェアを更新する。
ソフト暗号化部143は、ソフトウェア更新部142から暗号プログラムを読み出し、当該暗号プログラムを実行することで、暗号管理部144から受け取ったパケットデータなどに対して暗号化と復号化の処理(以下では、単に「暗号処理」と称する場合がある)を行う。ソフト暗号化部143は、例えば、パケットデータなどに対してAESによる暗号処理を行う。
暗号管理部144は、基地局100と通信端末200間で伝送されるセキュリティパラメータ要求やセキュリティパラメータ通知の生成や終端を行う。セキュリティパラメータ要求やセキュリティパラメータ通知の詳細などは後述する。また、暗号管理部144は、セレクタ141から受け取ったパケットデータについて、暗号クラスなどに基づいて、ソフト暗号化部143、暗号待ちバッファ145、又はハード暗号化部151のいずれかに出力する。また、暗号管理部144は、ソフト暗号化部143やハード暗号化部151から暗号処理が施されたデータなどを受け取ると、セレクタ141に出力する。暗号管理部144で行われる処理の詳細については後述する。
暗号待ちバッファ145は、ソフト暗号化部143で行われる暗号処理について、当該処理の使用率が閾値よりも高いとき、スケジューリングされた期間経過後に暗号処理が行われるよう、暗号化前又は復号化前のパケットデータなどを格納するメモリである。かかる処理の詳細についても後述する。
暗号スケジューラ146は、ソフト暗号化部143で行われる暗号処理の使用率が閾値以下となるタイミングを計算(又はスケジュール)し、計算したタイミングを暗号管理部144に出力する。暗号管理部144では、このタイミングで暗号待ちバッファ145に格納されたパケットデータなどを読み出して、ソフト暗号化部143に出力し、暗号処理を行わせる。このような処理の詳細については後述する。
なお、暗号管理部144がセレクタ141から出力されたデータを暗号待ちバッファ145に格納しないで、ソフトウェア暗号化部133に出力してソフトウェアによる暗号化を行わせることを、例えば「即時のソフトウェア暗号化」と称する場合がある。また、暗号管理部144がセレクタ141から出力されたパケットデータを暗号待ちバッファ145に格納させた後でソフト暗号化部143に出力して暗号処理を行わせることを、例えば「スケジューリングによるソフトウェア暗号化」と称する場合がある。
呼制御部147は、例えば、基地局100と通信端末200との間や、基地局100とセキュリティGW300との間の呼接続に関する処理を行う。呼制御部147は、例えば、呼接続のための各種メッセージの生成や終端を行い、呼の接続を制御する。
鍵交換部148は、例えば、セキュリティGW300との間で鍵交換プロトコル(例えばIKE(Internet Key Exchange))によるメッセージを交換する。鍵交換は、例えば、暗号化トンネルが確立される前に行われる。鍵交換部148は交換した鍵を使用しながら新たな鍵を生成するなどして、セキュリティGW300との通信路において「高セキュリティ」や「低セキュリティ」の暗号トンネルを確立する。
SECURITY150はハード暗号化部151を備える。ハード暗号化部151は暗号管理部144から出力されたデータに対してハードウェアによる暗号処理を行う。例えば、SECUIRTY150は暗号化の処理を行うための専用のLSIであり、ハード暗号化部151はそのようなLSIにおいて暗号処理を行う部分である。例えば、ハード暗号化部151で行われるハードウェアによる暗号処理は、ソフト暗号化部143で行われる暗号処理と比較して、セキュリティレベルは低いものの、暗号処理は高速となっている。
なお、本第2の実施の形態において、ハード暗号化部151において暗号処理が行われることを、例えば、「ハードウェア暗号化」と称する場合がある。
<通信端末200の構成例>
次に通信端末200の構成例を説明する。図4は通信端末200の構成例を表わす図である。通信端末200は、AMP210、DSP220、CPU240を備える。
AMP210は送受信部211を備える。送受信部211は、基地局100から送信された無線信号を受信したり、無線信号を基地局100に送信する。
例えば、送受信部211は基地局100から送信された無線信号を受信し、ベースバンド帯域のベースバンド信号に変換(ダウンコンバート)する。送受信部211は変換したベースバンド信号をベースバンド部221に出力する。この場合、送受信部211はベースバンド部221から復調処理などが施されたデータなどを受け取り、これをCPU240に出力する。これにより、例えば、基地局100から受信したデータなどに対してCPU240のアプリケーション244において処理を行われることができる。
また、送受信部211は、CPU240からデータなどを受け取ると、これをベースバンド部221に出力する。この場合、送受信部211はベースバンド部221から変調処理などが施されたデータを受け取り、これを無線帯域の無線信号に変換(アップコンバート)する。送受信部211は無線信号を基地局100に送信する。これにより、例えば、通信端末200はデータなどを基地局100に送信できる。
DSP220はベースバンド部221を備える。ベースバンド部221はAMP210から受け取ったベースバンド信号に対して復調処理や誤り訂正復号化処理などを施してデータなどを抽出する。ベースバンド部221は抽出したデータを送受信部211に出力する。また、ベースバンド部221は送受信部211からデータなどを受け取ると、当該データに対して誤り訂正符号化処理や変調処理を施してベースバンド信号に変換する。ベースバンド部221は変換したベースバンド信号を送受信部211に出力する。
CPU240は、セレクタ241、クラス付与部242、暗号処理部243、アプリケーション244、呼制御部247、鍵交換部248を備える。CPU240におけるこれらの処理ブロックについても、基地局100におけるCPU140と同様に、CPU240がROM(図示せず)などのメモリに記憶されたプログラムを実行することで実現する機能ブロックでもある。
セレクタ241は、送受信部211から出力されたデータなどを受け取り、暗号クラスやプロトコルなどに基づいて当該データなどをクラス付与部242、呼制御部247、又は鍵交換部248に出力する。暗号クラスやデータの振り分けなどの詳細は後述する。また、セレクタ241は、クラス付与部242、呼制御部247、鍵交換部248から出力されたデータなどを受け取り、受け取ったデータなどを送受信部211に出力する。
クラス付与部242は、アプリケーション244から受け取ったデータなどに対して暗号クラスを付与し、暗号クラスを含むセキュリティパラメータ要求を生成する。暗号クラスの付与やセキュリティパラメータ要求の生成などの詳細は後述するが、図9(A)はセキュリティパラメータ要求の例を表わしている。「サービス種別」、「暗号アルゴリズム」、「候補」、「最大レート」、「待ち合わせ」、「暗号クラス」、及び「結果」を例えばセキュリティパラメータと称する場合がある。暗号クラスは、例えば、このようなセキュリティパラメータの組み合わせを識別する識別子である。
図4に戻り、クラス付与部242は生成したセキュリティパラメータ要求を、セレクタ241などを介して基地局100に送信する。また、クラス付与部242は、送信したセキュリティパラメータ要求に対する応答としてセキュリティパラメータ通知を、セレクタ241などを介して基地局100から受信する。以後、クラス付与部242は、例えばアプリケーション244から受け取ったデータに対してセキュリティパラメータ通知により通知された暗号クラスを付与する。そして、クラス付与部242は、例えば暗号クラスが付与されたデータを含むパケットデータを生成し、セレクタ241などを介して基地局100に送信する。
暗号処理部243は、クラス付与部242から受け取ったデータに対して暗号処理を行う。本第2の実施の形態においては、暗号処理部243は、例えばAESによる「高セキュリティ」の暗号処理を行う。
アプリケーション244は、アプリケーションレイヤに関する処理を行う。例えば、アプリケーション244にはマイクやカメラなどを含み、マイクを介して入力された音声を音声データに変換したり、カメラで撮影された映像を映像データに変換したりすることができる。アプリケーション244は音声データや映像データなどをクラス付与部242に出力する。あるいは、アプリケーション244は、クラス付与部242からデータを受け取り、スピーカーから音声出力させたり、画面上に映像や文字などを表示させたりすることができる。
また、アプリケーション244は、例えば、セキュリティパラメータを生成する。例えば、通信端末200の表示画面上においてユーザによりTCPパケットのポートxxxには「高セキュリティ」などの操作入力がなされ、これに応じて、アプリケーション244はセキュリティパラメータを生成する。アプリケーション244はセキュリティパラメータをクラス付与部242に出力し、クラス付与部242ではこのパラメータに基づいて、セキュリティパラメータ通知を生成する。
呼制御部247は、例えば、対向ノード600と通信端末200との間、または基地局100と通信端末200との間の呼接続に関する処理を行う。呼制御部247は呼接続に関する各種メッセージの生成や終端などを行い、呼の接続を制御する。
鍵交換部248は、例えば、対向ノード600との間で鍵交換プロトコル(例えばIKE(Internet Key Exchange))によるメッセージなどの交換を行い、鍵交換(SA交渉)を行う。鍵交換は、例えば、暗号化トンネルが確立される前に行われる。鍵交換部248は、交換した鍵を使用しながら新たな鍵を生成するなどして対向ノード600との間で「高セキュリティ」の暗号トンネルを確立する。
<セキュリティGW300の構成例>
次にセキュリティGW300の構成例について説明する。図5はセキュリティGW300の構成例を表わす図である。
セキュリティGW300は、PHY310、CPU340、及びSECURITY350を備える。
PHY310は有線送受信部311を備える。有線送受信部311は基地局100、OPE400、及び対向ノード600と接続される。有線送受信部311は、基地局100及び対向ノード600との間でパケットデータなどを送受信する。また、有線送受信部311は、OPE400から最新の暗号プログラムを受信する。この場合の最新の暗号プログラムは、例えば、基地局100が受信した最新の暗号プログラムと同一のものとなっている。
また、有線送受信部311は、CPU340及びSECURITY350と接続され、CPU340に受信したパケットデータなどを出力することで暗号処理などを行わせたり、SECURITY350から復号処理されたデータを受け取ることもできる。
CPU340は、セレクタ341、ソフトウェア更新部342、ソフト暗号化部343、暗号管理部344、暗号待ちバッファ345、暗号スケジューラ346、呼制御部347、鍵交換部348を備える。このCPU340における各ブロックについても、CPU340におけるプログラムの実行により実現する機能ブロックでもある。この場合、暗号待ちバッファ345はCPU340の内部または外部に備えられたメモリ又はバッファに対応する。
セレクタ341は、有線送受信部311から出力されたパケットデータなどに対して、暗号クラスやセキュリティプロトコルなどに基づいてパケットデータなどをソフトウェア更新部342、暗号管理部344、呼制御部347、又は鍵交換部348のいずれかに出力する。振り分けなどの詳細は後述する。また、セレクタ341は、暗号管理部344、呼制御部347、鍵交換部348から出力されたデータなどを受け取り、これを有線送受信部311に出力する。
ソフトウェア更新部342は、OPE400から受信した最新の暗号プログラムをセキュリティGW300で実行できるようにするため暗号プログラム(又は暗号ソフトウェア)の更新を行う。ソフトウェア更新部342は、例えば内部にメモリを備え、受信した最新の暗号プログラムをメモリに記憶することでソフトウェアを更新する。
ソフト暗号化部343は、ソフトウェア更新部342から暗号プログラムを読み出し、当該暗号プログラムを実行することで、暗号管理部344から受け取ったパケットデータなどに対してソフトウェアによる暗号処理を行う。ソフト暗号化部343は、例えば、AESによる暗号処理を行う。
暗号管理部344は、セレクタ341から受け取ったパケットデータについて、暗号クラスなどに基づいて、ソフト暗号化部343、暗号待ちバッファ345、又はハード暗号化部351のいずれかに出力する。また、暗号管理部344は、ソフト暗号化部343やハード暗号化部351から暗号処理が施されたデータなどを受け取ると、セレクタ341に出力する。暗号管理部344で行われる処理の詳細については後述する。
暗号待ちバッファ345は、ソフト暗号化部343で行われる暗号処理について、「スケジューリングによるソフトウェア暗号化」が行われるときに、暗号処理対象のパケットデータなどを格納するメモリである。
暗号スケジューラ346は、基地局100における暗号スケジューラ146と同様に、ソフト暗号化部343で行われる暗号処理の使用率が閾値以下となるタイミングを計算(又はスケジュール)し、計算したタイミングを暗号管理部344に出力する。暗号管理部344では、このタイミングで暗号待ちバッファ345に格納されたパケットデータなどを読み出して、ソフト暗号化部343に出力し、暗号処理を行わせる。
呼制御部347は、例えば、セキュリティGW300と基地局100との間や、セキュリティGW300と対向ノード600との間の呼接続に関する処理を行う。呼制御部347は、例えば、呼接続のための各種メッセージの生成や終端を行い、呼の接続を制御する。
鍵交換部348は、例えば、鍵交換プロトコル(例えばIKE(Internet Key Exchange))によるメッセージや信号の生成や終端を行い、基地局100との間で鍵交換(SA交渉)を行う。
SECURITY350はハード暗号化部351を備える。ハード暗号化部351は暗号管理部344から出力されたデータに対してハードウェアによる暗号処理を行う。例えば、SECUIRTY350は暗号化の処理を行うための専用のLSIであり、ハード暗号化部351はそのようなLSIにおいて暗号処理を行う部分である。例えば、ハード暗号化部351で行われるハードウェアによる暗号処理は、ソフト暗号化部343で行われる暗号処理と比較して、セキュリティレベルは低いものの、暗号処理は高速となっている。
<対向ノード600>
次に対向ノード600の構成例について説明する。対向ノード600は、PHY610とCPU640を備える。
PHY610は有線送受信部611を備える。有線送受信部611はネットワーク500を介してセキュリティGW300と接続され、セキュリティGW300との間でパケットデータなどを送受信する。また、有線送受信部611はCPU640と接続され、セキュリティGW300から受信したパケットデータをCPU640に出力したり、CPU640から出力されたパケットデータをセキュリティGW300に出力する。
CPU640は、セレクタ641、暗号管理部642、暗号処理部643、アプリケーション644、呼制御部647、鍵交換部648を備える。なお、CPU640におけるこれらの処理ブロックも、例えば、CPU640がプログラムを実行することで実現する機能ブロックでもある。
セレクタ641は、有線送受信部611から出力されたパケットデータなどに対して、暗号クラスやセキュリティプロトコルなどに基づいて、パケットデータなど暗号管理部642、呼制御部647、又は鍵交換部648に出力する。この振り分けについては後述する。また、セレクタ641は、暗号管理部642、呼制御部647、又は鍵交換部648から出力されたデータなどを受け取り、これを有線送受信部611に出力する。
暗号管理部642は、暗号クラスやセキュリティクラスなどに基づいて、セレクタ641から受け取ったパケットデータなどアプリケーション644または暗号処理部643に出力する。
また、暗号管理部642は、アプリケーション644や暗号処理部643から受け取ったデータなどをセレクタ641に出力する。データなどの振り分けについては後述する。
暗号処理部643は、暗号管理部642から受け取ったデータに対して暗号処理を行う。本第2の実施の形態においては、暗号処理部643は例えばAESによる「高セキュリティ」の暗号処理を行う。
アプリケーション644はアプリケーションレイヤの処理を行う。例えば、アプリケーション644にはマイクやカメラなどを含み、マイクを介して入力された音声を音声データに変換したり、カメラで撮影された映像を映像データに変換したりすることができる。アプリケーション644は音声データや映像データなどを暗号管理部642に出力する。あるいは、アプリケーション644は、暗号管理部642からデータを受け取り、アプリケーション644としてのスピーカーから音声として出力させたり、画面上に映像を表示させたりすることができる。
呼制御部647は、例えば、対向ノード600とセキュリティGW300との間の呼接続に関する処理を行う。呼制御部647は、例えば、呼接続のための各種メッセージの生成や終端を行い、呼の接続を制御する。
鍵交換部648は、例えば、鍵交換プロトコル(例えばIKE(Internet Key Exchange))によるメッセージの生成や終端を行い、通信端末200との間で鍵交換(SA交渉)を行う。
<動作例>
次に動作例について説明する。動作例については理解を容易にするため、最初に通信システム10全体のシーケンス例を説明し、次に、基地局100において行われる処理の動作フローの例について説明することにする。
<通信システム10全体のシーケンス例>
図7及び図8は通信システム10全体のシーケンス例を表わす図である。シーケンス例は、例えば、以下のような順序となっている。
すなわち、基地局100は暗号ソフトウェアを最新のものに更新し(S10〜S12)、基地局100とセキュリティGW300は更新した最新の暗号プログラムを利用して「即時のソフトウェア暗号化」を行う(S14〜S29)。これにより、例えば、基地局100とセキュリティGW300との間において通信路のセキュリティが確保される。
その後、基地局100において最新の暗号プログラムによる暗号処理の使用率が閾値を超えるなどして当該プログラムによる処理について輻輳が発生すると、基地局100は「スケジューリングによるソフトウェア暗号化」を行う(S30〜S41)。セキュリティGW300においても暗号処理が行われるが、本第2の実施の形態では、例えばセキュリティGW300においても「スケジューリングによるソフトウェア暗号化」を行う。これにより、基地局100とセキュリティGW300との間において通信路のセキュリティが確保される。
その後、基地局100において「スケジューリングによるソフトウェア暗号化」においても暗号待ちバッファ145のバッファ量がバッファ閾値を超えるなどして輻輳が発生すると、基地局100は「ハードウェア暗号化」を行う(S50〜S66)。セキュリティGW300においても例えば「ハードウェア暗号化」を行う。この場合、通信端末200と対向ノード600との間において「高セキュリティ」の暗号処理が行われる(S53,S59など)。これにより、例えば、通信端末200と対向ノード600間において「高セキュリティ」が確保される。
最後に、輻輳が復旧し、基地局100などは復旧後の動作を行う(S70〜S81)。
<1.「プログラム更新〜暗号トンネル確立」>
最初に暗号ソフトウェア更新等の処理について説明する。
基地局100はOPE400から送信された最新の暗号プログラムを、セキュリティGW300を介して受信して、暗号ソフトウェアを更新する(S10)。例えば、基地局100のソフトウェア更新部142において、AESの暗号プログラムの受信により最新の暗号ソフトウェアの更新が行われる。また、セキュリティGW300においても、同一の暗号プログラムを受信し、暗号ソフトウェアが更新されるものとする。
一方、基地局100においては、DESによる「ハードウェア暗号化」を行うことができる。また、セキュリティGW300においてもDESによる「ハード暗号化」を行うことができる。
基地局100とセキュリティGW300は、AESとDESの2つの暗号処理を行うことができるよう、AESによる「高セキュリティ」の暗号トンネルと、DESによる「低セキュリティ」の暗号トンネルの2つの暗号トンネルを確立する。
暗号トンネルの確立は、例えば、以下のようにして行う。すなわち、基地局100はセキュリティGW300との間で、トンネル確立要求などを送信後、Diffie−Hellman鍵交換方式を利用するなどして秘密鍵を生成し、さらにセキュリティGW300との間で交換した変数を利用して暗号鍵を生成し制御用のトンネルを確立する。その後、基地局100は制御用トンネルを利用して、セキュリティGW300とネゴシエーションするなどして新たに暗号鍵の生成を行いながら、暗号トンネルを確立する。基地局100とセキュリティGW300は、このような暗号トンネルを「低セキュリティ」と「高セキュリティ」の2つの暗号方式についてそれぞれ確立することで、2つの暗号トンネルを確立する。このような処理は、例えば、基地局100の鍵交換部148とセキュリティGW300の鍵交換部348との間において行われる。
<2.「即時のソフトウェア暗号化」>
暗号トンネル確立(S11,S12)後、基地局100とセキュリティGW300は呼接続を開始する(S13,S14)。
例えば、基地局100の呼制御部147と通信端末200の呼制御部247との間で呼接続を開始するためのメッセージが交換される。また、基地局100の呼制御部147と対向ノード600の呼制御部647との間で呼接続を開始するためのメッセージが交換される。
次いで、通信端末200はセキュリティパラメータ要求を基地局100に送信する(S15)。例えば、通信端末200は呼接続開始(S13)を契機にセキュリティパラメータ要求を生成して送信する。
図9(A)はセキュリティパラメータ要求の例を表わす図である。セキュリティパラメータ要求は、例えば通信端末200が基地局100に要求するセキュリティパラメータを含む。また、セキュリティパラメータは、例えば、基地局100などが暗号処理を行うときに利用されるパラメータである。セキュリティパラメータとしては、例えば図9(A)に示すように、「サービス種別」、「候補」、「アルゴリズム」、「最大レート」、「待ち合わせ」、「暗号クラス」を含む。
「サービス種別」は、例えば、提供する(又は通信する)サービスの種別を表わす。サービス種別の例としては、例えば、銀行やカードなどの決済に関する機密パケットの送信に関するサービス、電子メールなど機密パケットよりも機密性が低い通常パケットの送信に関するサービス、音声通話などの音声サービス、映像のストリーム配信サービス、などがある。
「候補」は、例えば、セキュリティを要求するときに通信端末200から希望する暗号クラスの候補を表わす。図9(A)の例では、サービス種別が「機密パケット」、アルゴリズムが「AES」、最大レートが「0.1Mbps」、待ち合わせが「不可」であるセキュリティパターンについては、候補として「第1希望」であることを示す。例えば、「候補」はサービス種別ごとに「第1希望」から順に表わされる。
「アルゴリズム」は、例えば、暗号処理において使用される暗号アルゴリズムを表わす。図9(A)の例では、「アルゴリズム」として「AES」と「DES」がある。例えば、処理可能な暗号処理の中から通信端末200において選択可能となっている。
「最大レート」は、例えば、暗号クラスごとに単位時間(例えば1秒)あたりに処理を許容するビット数を表わす。例えば、「0.1Mpbs(Megabit per second)」の場合、最大「0.1Mps」分のデータ量に相当するデータについて暗号処理を行うことができることを表わしている。
「待ち合わせ」は、例えば、所定時間経過後にソフトウェアによる暗号化を許容するか否かを表わす。或いは、「待ち合わせ」は、例えば、基地局100において「ソフトウェアによる暗号化」の処理が輻輳した場合、バッファリングして待ち合わせする処理を許容するか否かを表わす。例えば、リアルタイム性が必要なサービスについては待ち合わせを許容しないことを表わす「不可」とし、リアルタイム性がそれほど必要ではないサービスについては待ち合わせを許容することを表わす「可」とすることができる。
「暗号クラス」は、上述したように、例えばセキュリティパラメータの組み合わせを識別する識別子である。このようなセキュリティパラメータの組み合わせを例えばセキュリティパターンと称する場合がある。例えば、暗号クラス「1」は、「機密パケット」、「AES」、「0.1Mbps」、待ち合わせは「不可」のセキュリティパターンを表わし、暗号クラス「2」は、「機密パケット」、「AES」、「0.1Mps」、待ち合わせは「可」のセキュリティパターンを表わしている。
このようなセキュリティパラメータ要求の生成と送信は例えば以下のようにして行われる。すなわち、アプリケーション244は通信端末200の画面上においてユーザによる入力操作に応じて、セキュリティパラメータを生成してクラス付与部242に出力する。クラス付与部242は、セキュリティパラメータを含むセキュリティパラメータ要求を生成し、セレクタ241等を介して基地局100に送信する。このとき、クラス付与部242はヘッダ領域などにセキュリティパラメータ要求であることを示す情報を付加して送信する。
通信端末200はセキュリティパラメータ要求を送信することで、例えば、基地局100に対してサービス種別単位で実施するセキュリティパラメータの希望要求を通知している。
図7に戻り、基地局100はセキュリティパラメータ要求を受信すると、セキュリティパラメータ通知を含むパケットデータ(以下、当該パケットデータを「セキュリティパラメータ通知」と称する場合がある)を生成し、通信端末200に送信する(S16)。
図9(B)はセキュリティパラメータ通知の例を表わす図である。セキュリティパラメータ通知は、例えば、セキュリティパラメータ要求に対して「結果」が付加されたものである。「結果」は、例えば、セキュリティパラメータの希望要求に対して交渉結果を表わしている。例えば、「OK」は基地局100が各セキュリティパラメータの希望要求について許容(又は許可)することを表わし、「NG」は当該希望要求を許容しないことを表わしている。「−」は、例えば、未判断であることを表わす。
図9(B)の例では、暗号クラスが「1」のセキュリティパラメータについては「OK」となっているため、許容されたことを表わしている。例えば、基地局100の暗号管理部144がセキュリティパラメータ要求に対する「結果」を付与し、セキュリティパラメータ通知を生成する。例えば、暗号管理部144は以下のようにして「結果」を付与する。
すなわち、暗号管理部144は、「ソフトウェアによる暗号化」での処理において使用される暗号プログラム(例えばAES)の使用率を考慮して「結果」を付与する。例えば、ソフト暗号化部143がある8ユーザ(又は8個の通信端末200−1〜200−8)分のデータ(例えば「1Mbps」)に対して暗号処理を行うことが可能なときを考える。このような場合、暗号管理部144は、8ユーザ分のデータを受け取るまではセキュリティパラメータ要求を許容し(「OK」とする)、9ユーザ目以降のセキュリティパラメータ要求に対しては許容しない(「NG」または未判断の「−」とする)とすることができる。この場合、暗号管理部144は、例えば、サービス種別ごとにユーザ数に応じて許容するか否かを判別するようにしてもよい。
セキュリティパラメータ通知の送受信は例えば以下のようにして行われる。すなわち、セレクタ141は有線送受信部111からセキュリティパラメータ要求を受け取り、ヘッダ領域に付加されたセキュリティパラメータ情報であることを示す情報に基づいて、当該通知を暗号管理部144に出力する。暗号管理部144は、上述のように、セキュリティパラメータ通知に対してセキュリティパラメータ通知を生成し、セレクタ141等を介して通信端末200に送信する。このとき、暗号管理部144はヘッダ領域などにセキュリティパラメータ通知であることを示す情報を付加して送信する。通信端末200のセレクタ241は、セキュリティパラメータ通知を受け取ると、ヘッダ領域などに付加された当該通信であることを示す情報に基づいて、当該通知をクラス付与部242に出力する。クラス付与部242は、受信したセキュリティパラメータを内部又は外部のメモリに保持し、以後、パケットデータなどを送信するときはヘッダ領域に暗号クラスを付加して送信する。
図7に戻り、次いで、通信端末200と基地局100は呼接続を完了させる(S18)。また、基地局100と対向ノード600とにおいても呼接続を完了させる(S19)。これにより、呼接続開始(S13,S14)に対する処理が完了し、通信端末200と対向ノード600はパケットデータなどを交換することが可能となる。
この場合においても、基地局100の呼制御部147と通信端末200の呼制御部247は呼接続完了を示すメッセージであることを示す情報を付加して、当該メッセージ(又はパケットデータ)を交換する。基地局100や通信端末200のセレクタ141,241は、ヘッダに付加された情報に基づいて、受信した当該メッセージを呼制御部147,247にそれぞれ振り分けて出力する。
次いで、通信端末200は許可されたセキュリティパラメータを利用してパケットデータの送信を行う(S20)。
例えば通信端末200が「機密パケット」を送信するときは以下のようにして処理が行われる。すなわち、ユーザによる通信端末200の画面上の入力操作などによりアプリケーション244が「機密パケット」である旨の通知と、「機密パケット」に含まれるデータとを生成する。クラス付与部242は、アプリケーション244から当該通知と当該データとを受け取ると、メモリなどに保持したセキュリティパラメータ通知(S16)に基づいて、「機密パケット」に対応する暗号クラスなどを検索する。そして、クラス付与部242は、ヘッダ領域に暗号クラス「1」、ペイロード領域に「機密パケット」のデータを含むパケットデータを生成し、基地局100に送信する。その他のサービス種別のデータについても、クラス付与部242がアプリケーション244からその旨の通知とデータとを受け取ると、セキュリティパラメータ通知に基づいて暗号クラスなどを検索し、暗号クラス「4」や「5」などを含むパケットデータを生成し基地局100に送信する。
なお、暗号クラスは、例えば、送信されるパケットデータがIPパケットデータである場合、ヘッダ領域におけるオプションに含むようにしたり、当該ヘッダ領域のToS(Type Of Service)に挿入されるDSCP(Differentiated Service Code Point)値により暗号クラスを関連付けるようにしてもよい。
また、以下においてはパケットデータの種別として「機密パケット」が送受信される例で説明することにする。
基地局100は通信端末200からパケットデータを受信すると、AESによる暗号化を行う(S21)。
例えば、基地局100のセレクタ141では、パケットデータのヘッダ領域に暗号クラスが含まれることを確認すると、当該パケットデータを暗号管理部144に出力する。暗号管理部144では、パケットデータのヘッダ領域から暗号クラスを抽出し、抽出した暗号クラスに基づいて、「即時ソフトウェア暗号化」、「スケジューリングによるソフトウェア暗号化」、又は「ハードウェア暗号化」の選択肢からいずれかの暗号処理を行うことを選択又は決定する。そして、暗号管理部144は、選択した結果に従って、当該パケットデータをソフト暗号化部143、暗号待ちバッファ145、又はハード暗号化部151にそれぞれ出力する。
抽出した暗号クラスが「1」の場合、例えば、図9(B)に示すように「AES」による暗号化を行い、待ち合わせは「不可」となっている。この場合、暗号管理部144は、「AES」による暗号化は「高セキュリティ」であってスケジューリングは行わないことから、「即時ソフトウェア暗号化」を選択する。暗号管理部144は、図9(B)で示すようなセキュリティパラメータ通知を内部又は外部のメモリなどに保持しており、これに基づいて判別する。そして、暗号管理部144はセレクタ141から受け取ったパケットデータをソフト暗号化部143に出力する。ソフト暗号化部143は暗号管理部144から受け取ったパケットデータに対してAESによる暗号化処理を行う。これにより、「即時のソフトウェア暗号化」が行われる。
図7に戻り、次いで、基地局100は暗号化されたパケットデータをセキュリティGW300に送信する(S22)。
例えば、基地局100は通信端末200から受け取った暗号クラス(例えば暗号クラス「1」)を外側IPヘッダにコピーして、当該暗号クラスをヘッダ領域に含むIPパケットデータを生成して送信する。このような処理は、例えば以下のようにして行われる。
すなわち、ソフト暗号化部143は暗号化されたパケットデータを、暗号管理部144等を介して有線送受信部111に出力する。また、暗号管理部144は、パケットデータを受信した際に抽出した暗号クラス(S20)を有線送受信部111に出力する。有線送受信部111は、暗号化されたパケットデータをペイロード領域、抽出された暗号クラスをヘッダ領域にそれぞれ含むIPパケットデータを生成し、これをセキュリティGW300に送信する。
セキュリティGW300は、パケットデータを受信すると、暗号化されたデータを復号する(S23)。
例えば、セレクタ341は有線送受信部311からIPパケットデータを受け取り、ヘッダ領域に含まれる暗号クラスなどに基づいて当該IPパケットデータを暗号管理部344に出力する。暗号管理部344はヘッダ領域から暗号クラス(例えば暗号クラス「1」)を抽出し、ペイロード領域からデータ(基地局100でAESにより即暗号化されたパケットデータ)を抽出する。そして、暗号管理部344は、抽出した暗号クラスに基づいて、抽出したデータをソフト暗号化部343、暗号待ちバッファ345、又はハード暗号化部351のいずれかに出力する。
例えば、暗号管理部344は暗号クラスが「1」のとき、「AES」による暗号化で、待ち合わせが「不可」であることから、「即時のソフトウェア暗号化」であることを確認する。そして、暗号管理部344は、抽出したデータをソフト暗号化部343に出力する。ソフト暗号化部343は例えばAESに対応する復号化処理を行い、暗号化されたパケットデータを復号する。
次いで、セキュリティGW300は復号したパケットデータを対向ノード600に送信する(S24)。
例えば、ソフト暗号化部343は復号したパケットデータを、暗号管理部344等を介して有線送受信部311に出力する。有線送受信部311は復号されたパケットデータを対向ノード600に送信する。
対向ノード600はパケットデータを受信すると、当該パケットデータに対する応答パケットを生成し、暗号クラスを付加して送信する(S25)。
例えば、対向ノード600のセレクタ641は、有線送受信部611を介して受信したIPパケットデータのヘッダ領域に含まれる暗号クラスなどに基づいて、受信したIPパケットデータを暗号管理部642に出力する。暗号管理部642では、例えばヘッダ領域から暗号クラスを抽出し、ペイロード領域に含まれるデータをアプリケーション644に出力する。アプリケーション644では、例えば、パケットデータ(例えば「機密パケット」)を正常に受信した或いは正常に受信していない等の情報を含む応答データを生成して暗号管理部642に出力する。暗号管理部642は抽出した暗号クラスと、アプリケーション644から受け取った応答データとをセレクタ641を介して有線送受信部611に出力する。有線送受信部611は、例えば、暗号クラス(例えば暗号クラス「1」)をヘッダ領域、応答データをペイロード領域に含むIPパケットデータを生成し、セキュリティGW300に向けて送信する。
セキュリティGW300は、対向ノード600から送信されたパケットデータを受信すると、受信したパケットデータを暗号化する(S26)。
例えば、暗号管理部344はIPパケットデータのヘッダ領域に含まれる暗号クラス(例えば暗号クラス「1」)に基づいて、受信したIPパケットデータをソフト暗号化部343に出力する。ソフト暗号化部343は、受信したIPパケットデータに対してAESによる暗号処理を行う。
次いで、セキュリティGW300は暗号化されたパケットデータを基地局100に送信する(S27)。
この場合、セキュリティGW300は例えば暗号化したパケットデータに対して、外側IPヘッダによるパケット送信を行う。例えば、セキュリティGW300は以下のような処理を行う。
すなわち、ソフト暗号化部343は暗号化したパケットデータを暗号管理部344に出力し、暗号管理部344はIPパケットデータを受信したときに抽出した暗号クラスと、暗号化されたデータとを、セレクタ341を介して有線送受信部311に出力する。有線送受信部311は、暗号クラスをヘッダ領域、暗号化されたデータをペイロード領域に含むIPパケットデータを生成し、基地局100に送信する。
基地局100はセキュリティGW300から送信されたパケットデータを受信すると、AESによる「即時のソフトウェア暗号化」を行う(S28)。
例えば、セレクタ141は有線送受信部111からパケットデータを受け取ると、ヘッダ領域に含まれる暗号クラスなどに基づいて、受け取ったパケットデータを暗号管理部144に出力する。暗号管理部144は、パケットデータのペイロード領域からデータ(セキュリティGW300において暗号化されたパケットデータ)を抽出し、パケットデータのヘッダに付加された暗号クラス(例えば暗号クラス「1」)に基づいて、抽出したデータをソフト暗号化部143に出力する。そして、ソフト暗号化部143は、暗号管理部144から受け取ったデータに対してAESによる復号化処理を施す。
次いで、基地局100は復号化されたパケットデータを通信端末200に送信する(S29)。
例えば、ソフト暗号化部143は復号したパケットデータを、暗号管理部144等を介して有線送受信部111に出力する。有線送受信部111は、復号されたパケットデータを、ベースバンド部221等を介して通信端末200に送信する。この場合、復号されたパケットデータは、例えば、誤り訂正符号化処理や変調処理、無線信号への変換処理などが施されて無線信号として通信端末200に送信される。
通信端末200はパケットデータを受信する(S29)と、例えば以下のような処理を行う。すなわち、送受信部211は受信した無線信号をベースバンド部221に出力して、復調処理などが施されたIPパケットデータを抽出し、セレクタ241に出力する。セレクタ241は受信したIPパケットデータのヘッダに暗号クラスが含まれることを確認すると、当該IPパケットデータをクラス付与部242に出力する。クラス付与部242は当該IPパケットデータのペイロード領域に含まれるデータ(対向ノード600において生成された応答データなど)を抽出しアプリケーション244に出力する。
<3.「スケジューリングによるソフトウェア暗号化」>
基地局100が「即時のソフトウェア暗号化」を行っているとき、暗号対象のデータを集中して受信するなどして、ソフトウェアによる暗号処理について輻輳が発生する場合がある。このような場合、基地局100は「即時のソフトウェア暗号化」を行うことができなくなる。そこで、本第2の実施の形態においては、処理を「即時のソフトウェア暗号化」から「スケジューリングによるソフトウェア暗号化」に変更することで輻輳の発生を解消するようにしている。以下、「スケジューリングによるソフトウェア暗号化」の処理について説明する。
基地局100は輻輳の発生を検出する(S30)。例えば、基地局100の暗号管理部144はソフト暗号化部143におけるソフトウェア暗号化処理の使用率を計測し、当該使用率が閾値を超えると、「即時ソフトウェア暗号化」による処理について輻輳が発生していることを検出する。例えば、ソフトウェア暗号処理の使用率が単位時間あたりにソフトウェア暗号処理を行ったデータのデータ量であるとした場合、暗号管理部144はソフト暗号化部143に出力したデータのデータ量(例えば1Mbpsに相当するデータ量)が閾値を超えるか否かにより判別する。そのため、暗号管理部144は例えばソフト暗号化部143に出力したデータのデータ量を測定しているものとする。
基地局100は輻輳の発生を検出すると、セキュリティパラメータを変更し、変更後のセキュリティパラメータ通知を通信端末200に送信する(S31)。
例えば、図10(A)は変更後のセキュリティパラメータ通知の例を表わしている。基地局100は、暗号クラス「2」については待ち合わせが「可」となっているため、基地局100はこの暗号クラスについての暗号化を許可するべく、「結果」に「OK」を付与する。その一方、基地局100は暗号クラスが「1」であるセキュリティパラメータについては「NG」を付与する。これにより、基地局100は「機密パケット」については「即時のソフトウェア暗号化」を行わないようにして輻輳を解消するようにしている。
なお、図10(A)の例において、「通常パケット」や「音声」、「ストリーム」に関して基地局100はセキュリティパラメータをそのまま許可した状態としている。これは、「通常パケット」や「音声」、「ストリーム」に関して、通信端末200は「スケジューリングによるソフトウェア暗号化」を希望していないためである。従って、例えば、「通常パケット」において待ち合わせが「可」となるセキュリティパラメータがあれば、基地局100はこのパラメータを「OK」にし、待ち合わせが「不可」となるセキュリティパラメータを「NG」とすることになる。
このように、基地局100は、例えばセキュリティパラメータのうち待ち合わせが「可」となっている暗号クラスを許容し、同一サービス種別で「即時のソフトウェア暗号化」において許可された暗号クラスを許容しないようにセキュリティパラメータを変更するようにしている。このような処理は、例えば、暗号管理部144において行われる。
図7に戻り、通信端末200は変更後のセキュリティパラメータ通知を受信し、変更後の暗号クラスを含むパケットデータを送信する(S32)。
例えば、クラス付与部242は基地局100から受信した変更後のセキュリティパラメータを内部又は外部のメモリなどに保持する。そして、クラス付与部242はアプリケーション244から「機密パケット」に関するデータを受け取ると、ヘッダ領域に暗号クラス「2」、ペイロード領域に当該データを含むパケットデータを生成する。クラス付与部242は、セレクタ241等を介して、生成したパケットデータを基地局100に送信する。
基地局100はパケットデータを受信するとスケジューリングを行い、スケジューリングした時刻になるとAESによる暗号処理を行う(S33)。
基地局100においては例えば以下のような処理が行われる。すなわち、セレクタ141は受信したパケットデータのヘッダ領域に暗号クラスが含まれることを確認すると、当該パケットデータを暗号管理部144に出力する。暗号管理部144は、当該パケットデータのヘッダ領域から暗号クラスを抽出する。そして、暗号管理部144は、メモリなどに保持した変更後のセキュリティパラメータ通知(S31)に基づいて暗号クラスが「ハード暗号化」を示す暗号クラスであることを確認すると、当該パケットデータをハード暗号化部151に出力する。図10(A)の例では、暗号管理部144は暗号クラス「2」のパケットデータを暗号待ちバッファ145に出力する。この場合、暗号管理部144は暗号クラス「4」〜「6」のパケットデータをハード暗号化部151に出力する。
暗号管理部144は、例えば、抽出した暗号クラスがS31の処理により許容していない暗号クラス、又は、「スケジューリングによるソフト暗号化」を示す暗号クラスでないとき、受信したパケットデータを暗号化しないでセキュリティGW300に出力することもできる。
そして、暗号スケジューラ146は、例えば、暗号管理部144がどのタイミングで暗号待ちバッファ145に格納されたパケットデータを読み出して暗号化させるかを計算(又はスケジューリング)する。
スケジューリングについては例えば以下のような処理が行われる。すなわち、基地局100の暗号管理部144は、IPパケットデータを暗号待ちバッファ145に格納すると、格納した旨を暗号スケジューラ146に通知する。暗号スケジューラ146は当該通知を受け取ると、暗号管理部144から随時通知されたソフト暗号化部143におけるソフトウェア暗号化処理の使用率に基づいて、その使用率の推移から当該使用率が閾値以下となる時刻を計算する。暗号スケジューラ146は計算した時刻を暗号管理部144に通知し、暗号管理部144は当該時刻になると暗号待ちバッファ145からパケットデータを読み出してソフト暗号化部143に出力する。
そして、ソフト暗号化部143は受け取ったパケットデータを暗号化する。この場合、ソフト暗号化部143はAESにより暗号化を行う。
次いで、基地局100は暗号化したパケットデータをセキュリティGW300に送信する(S34)。
例えば、ソフト暗号化部143は暗号化したデータを暗号管理部144に出力する。暗号管理部144は、セレクタ141からパケットデータを受信したとき(S32)に抽出した暗号クラスと、ソフト暗号化部143から受け取った暗号化されたデータとをセレクタ141を介して有線送受信部111に出力する。有線送受信部111は暗号クラスをヘッダ領域、暗号化されたデータをペイロード領域に含むIPパケットデータを生成し、セキュリティGW300に送信する。基地局100はこのような外側IPヘッダによる処理を行う。
セキュリティGW300は基地局100からパケットデータを受信すると、暗号化されたパケットデータを復号する(S35)。
例えば、セキュリティGW300の暗号管理部344は、基地局100から送信されたパケットデータをセレクタ341から受け取ると、IPパケットデータのヘッダ領域に含まれる暗号クラスを抽出する。そして、暗号管理部344は、当該IPパケットデータのペイロード領域に含まれるデータ(暗号化されたパケットデータ)を抽出し、抽出したデータをソフト暗号化部343に出力し、暗号化されパケットデータを復号させる。
この場合、セキュリティGW300においても、基地局100と同様にスケジューリングによる処理が行われるようにしてもよい。例えば、セキュリティGW300の暗号管理部344は、セレクタ341からIPパケットデータを受け取ると、ヘッダ領域に含まれる暗号クラス「2」を抽出する。そして、暗号管理部344は、暗号クラス「2」が「スケジューリングによるソフト暗号化」であることを確認すると、ペイロード領域に含まれるデータ(暗号化されたパケットデータ)を暗号待ちバッファ345に格納する。暗号スケジューラ346は基地局100の暗号スケジューラ146と同様に、暗号待ちバッファ345からパケットデータを読み出すタイミング(又は時刻)を計算(又はスケジューリング)し、暗号管理部344に通知する。暗号管理部344はその時刻になると暗号待ちバッファ345からデータを読み出してソフト暗号化部343に出力して、暗号化されたパケットデータを復号させる。このような処理が行われるよう、例えば、基地局100は通信端末200に送信したセキュリティパラメータ通知(S31)をセキュリティGW300に送信し、暗号管理部344において当該通知を保持することで上述した処理を行うことができる。
次いで、セキュリティGW300は復号したパケットデータを対向ノード600に送信する(S36)。
例えば、セキュリティGW300の暗号管理部344は、復号したパケットデータをソフト暗号化部343から受け取り、セレクタ341等を介して対向ノード600に送信する。
そして、対向ノード600は受信したパケットデータに対する応答データを含むパケットデータを生成してセキュリティGW300に送信する(図8のS37)。
次いで、セキュリティGW300は対向ノード600から受け取ったパケットデータを暗号化する(S38)。
この場合も、例えば、セキュリティGW300は「スケジューリングによる暗号化」を行うこともできるし、「即時のソフトウェア暗号化」を行うこともできる。例えば、ソフト暗号化部343は対向ノード600から送信されたパケットデータに対して、AESにより暗号化する。
次いで、セキュリティGW300は暗号化したデータを含むパケットデータを基地局100に送信する(S39)。
例えば、有線送受信部311は、暗号化されたデータ(又は対向ノード600から送信されたパケットデータ)をペイロード領域、受信したときに抽出した暗号クラスをヘッダ領域にそれぞれ含むIPパケットデータを生成して基地局100に送信する。
基地局100は、セキュリティGW300からパケットデータを受信するとスケジューリングを行い、AESにより復号化を行う(S40)。
この場合も、スケジューリングによる暗号化(S33)と同様に、例えば、暗号管理部144は暗号クラスに基づいて受信したIPパケットデータのペイロード領域に含まれるデータ(セキュリティGW300において暗号化されたパケットデータ)を暗号待ちバッファ145に格納する。暗号スケジューラ146はソフト暗号化部143におけるソフト暗号化処理の使用率が閾値以下となるタイミングを計算して、暗号管理部144は当該タイミングになると暗号待ちバッファ145からデータを読み出してソフト暗号化部143に出力する。
なお、このようなスケジューリングが行われるのは、図10(A)の例では暗号クラスが「2」であるパケットデータであり、暗号クラスが「4」〜「6」のパケットデータについて暗号管理部144は、暗号待ちバッファ145に出力しないでハード暗号化151に出力する。
次いで、基地局100は復号したパケットデータを通信端末200に送信する(S41)。例えば、暗号管理部144はソフト暗号化部143から復号されたパケットデータを受け取ると、セレクタ141等を介して通信端末200に送信する。通信端末200では、例えば、対向ノード600において生成された応答データを抽出することができる。
<4.「ハードウェア暗号化」>
基地局100が「スケジューリングによるソフト暗号化」を行っているときに、暗号処理対象のデータを集中して受信するなどして、暗号待ちバッファ145に格納されたデータのデータ量が、バッファ閾値を超える場合がある。かかる場合、基地局100において輻輳が発生し、基地局100は「スケジューリングによるソフト暗号化」の処理を行うことができなくなる。そこで、本第2の実施の形態では、暗号処理を「スケジューリングによるソフト暗号化」から「ハードウェア暗号化」に変更することで輻輳の発生を解消するようにしている。以下、「ハードウェア暗号化」について説明する。
基地局100は、「スケジューリングによるソフトウェア暗号化」に対する処理について輻輳の発生を検出する(S50)。例えば、暗号管理部144は暗号待ちバッファ145に格納したデータのデータ量を計測し、当該データ量がバッファ閾値を超えると、輻輳の発生を検出する。
次いで、基地局100は変更後のセキュリティパラメータ通知を通信端末200に送信する(S51)。
図10(B)は変更後のセキュリティパラメータ通知の例を表わしている。基地局100は、例えば、「AES」によるセキュリティパラメータを「NG」とし、「DES」によるセキュリティパラメータを「OK」とする。図10(B)の例では、「機密パケット」に関するセキュリティパラメータのうち、暗号クラス「1」,「2」については結果を「NG」にし、暗号クラスが「3」についてはアルゴリズムが「DES」となっているため、「OK」とする。例えば、暗号管理部144において変更後のセキュリティパラメータを生成して通信端末200に送信する。
図8に戻り、通信端末200は変更後のセキュリティパラメータ通知を受信すると、当該通知結果に基づいて、対向ノード600との間で「高セキュリティ」による暗号トンネルを確立する(S52)。
例えば、通信端末200の鍵交換部248はセレクタ241から変更後のセキュリティパラメータ通知を受け取り、暗号クラス「3」の「DES」が「OK」であることを確認すると、DESよりも高セキュリティであるAESによる暗号化を行うことを決定する。そして、通信端末200の鍵交換部248と対向ノード600の鍵交換部648は、「高セキュリティ」による暗号トンネルを確立すべくSA交渉を行い、鍵交換に関するメッセージなどを交換することで、「高セキュリティ」の暗号トンネルを確立する。
基地局100とセキュリティGW300との間では「低セキュリティ」の暗号化が行われるため、通信端末200と対向ノード600との間で「高セキュリティ」の暗号化を行うことで、例えば通信路全体としてはより高いセキュリティを確保することができる。
通信端末200と対向ノード600との間で暗号トンネルが確立すると、通信端末200は対向ノード600に送信するパケットデータなどに対して暗号化を行う(S53)。
例えば、クラス付与部242は、暗号トンネル確立の通知を鍵交換部248からセレクタ241を介して受け取り、この通知を受け取ると、以後はアプリケーション244で生成されたデータを受け取ると当該データを暗号処理部243に出力する。暗号処理部243は、例えば、AESによる暗号化を行う。
次いで、通信端末200は暗号化したパケットデータを基地局100に送信する(S54)。
例えば、クラス付与部242は暗号処理部243から暗号化されたデータを受け取り、当該データをペイロード領域に含むパケットデータを生成する。このとき、クラス付与部242は、当該パケットデータのヘッダ領域に、セキュリティパラメータ通知の暗号クラスを付加する。クラス付与部242は、例えば、データが「機密パケット」に関するデータのときは暗号クラス「3」を付加して送信する。この場合、クラス付与部242は「通常パケット」に関するデータのときは暗号クラス「4」などを付加して送信する。
基地局100は通信端末200からパケットデータを受信すると、当該パケットデータに対して「ハードウェア暗号化」の処理を行う(S55)。
例えば、基地局100の暗号管理部144は通信端末200から受信したパケットデータのヘッダ領域に含まれる暗号クラスを抽出する。そして、暗号管理部144は、メモリなどに保持した変更後のセキュリティパラメータ通知(S51)に基づいて暗号クラスが「ハード暗号化」を示す暗号クラスであることを確認すると、受信したパケットデータをハード暗号化部151に出力する。図10(B)の例では、暗号管理部144は暗号クラス「3」〜「6」のパケットデータをハード暗号化部151に出力する。ハード暗号化部151は、受け取ったパケットデータに対してDESによる暗号化を行う。
この場合、暗号管理部144は、例えば、「ハード暗号化」を示す暗号クラスでないとき、受信したパケットデータを暗号化しないでセキュリティGW300に出力することもできる。
次いで、基地局100はDESによる暗号化したパケットデータをセキュリティGW300に送信する(S56)。
例えば、暗号管理部144は、ハード暗号化部151から暗号化されたデータ(通信端末200から送信されたパケットデータ)を受け取ると、セレクタ141を介して有線送受信部111に出力する。また、暗号管理部144は、受信したときに抽出した暗号クラス(例えば「3」)もセレクタ141を介して有線送受信部111に出力する。有線送受信部111は、暗号化されたデータをペイロード領域、暗号クラスをヘッダ領域に含むIPパケットデータを生成し、セキュリティGW300に送信する。
セキュリティGW300は基地局100から送信されたパケットデータを受信すると、DESによる復号処理を行う(S57)。
例えば、セキュリティGW300の暗号管理部344は、基地局100から送信されたパケットデータをセレクタ341から受け取ると、ヘッダ領域から暗号クラス(例えば「3」)を抽出して当該パケットデータの暗号クラスを確認する。そして、暗号管理部344は、受け取ったパケットデータのペイロード領域に含まれるデータ(基地局100でハード暗号化されたパケットデータ)を抽出し、暗号クラスに基づいて、抽出したデータをハード暗号化部351に出力する。ハード暗号化部151は受け取ったデータに対してDESによる復号化処理を施す。これにより、セキュリティGW300は、例えば基地局100においてハード暗号化される前のデータ(通信端末200から送信されたパケットデータ)を復号することができる。
次いで、セキュリティGW300はパケットデータを対向ノード600に送信する(S58)。
例えば、暗号管理部344はハード暗号化部351から復号後のデータ(通信端末200から送信されたパケットデータ)を受け取ると、当該データを、セレクタ341を介して有線送受信部311に出力する。また、暗号管理部344は、パケットデータを受信したときに抽出した暗号クラス(例えば「3」)も有線送受信部311に出力する。有線送受信部311は、復号化されたデータ(通信端末200から送信されたパケットデータ)をペイロード領域、暗号クラスをヘッダ領域に含むIPパケットデータを生成し、これを対向ノード600に送信する。
対向ノード600はセキュリティGW300から送信されたパケットデータを受信すると、当該パケットデータに含まれるデータを復号化する(S59)。
例えば、対向ノード600の暗号管理部642は、セキュリティGW300から送信されたIPパケットデータのヘッダ領域から暗号クラスを抽出し、当該IPパケットデータのペイロード領域に含まれるデータ(通信端末200においてAESにより暗号化されたデータ)を暗号処理部643に出力する。暗号処理部643は、暗号管理部642から受け取ったデータに対してAESによる復号化を行う。復号されたデータは、通信端末200においてAESにより暗号化される前のデータとなっており、暗号処理部643から暗号管理部642を介してアプリケーション644に出力される。
次いで、対向ノード600は応答データを生成し、応答データをAESにより暗号化する(S60)。
例えば、アプリケーション644において応答データが生成され、暗号管理部642は応答データを受け取ると暗号処理部643に出力する。暗号処理部643は応答データに対して、例えばAESによる暗号化処理を行う。
次いで、対向ノード600はパケットデータをセキュリティGW300に送信する(S61)。
例えば、暗号管理部642は暗号処理部643から暗号化された応答データを受け取ると、当該応答データを、セレクタ641を介して有線送受信部611に出力する。また、暗号管理部642は、S59の処理により抽出した暗号クラスもセレクタ641を介して有線送受信部611に出力する。有線送受信部611は、暗号化された応答データをペイロード領域、暗号クラスをヘッダ領域に含むIPパケットデータを生成し、セキュリティGW300に送信する。
セキュリティGW300は、対向ノード600からパケットデータを受信すると、DESによる暗号化を行う(S62)。例えば、ハード暗号化部351は対向ノード600から送信されたパケットデータをDESにより暗号化する。
次いで、セキュリティGW300は暗号化したデータを含むパケットデータを基地局100に送信する(S63)。
例えば、暗号管理部344は、パケットデータを受信したとき(S61)に抽出した暗号クラスと、ハード暗号化部351においてDESにより暗号化されたデータ(対向ノード600から送信されたパケットデータ)とを、セレクタ341を介して有線送受信部311に出力する。有線送受信部311は、ペイロード領域にDESにより暗号化されたデータ、ヘッダ領域に暗号クラスを含むIPパケットデータを生成して基地局100に送信する。
基地局100はセキュリティGW300からパケットデータを受信すると、DESにより復号化する(S64)。例えば、ハード暗号化部151はセキュリティGW300から送信されたIPパケットデータのペイロード領域に含まれるデータ(対向ノード600から送信されたパケットデータ)をDESにより復号化する。
次いで、基地局100はパケットデータを通信端末200に送信する(S65)。例えば、有線送受信部111は、復号されたパケットデータをペイロード領域、受信したときに抽出した暗号クラスをヘッダ領域に含むIPパケットデータを生成して通信端末200に送信する。
通信端末200は、基地局100から送信されたパケットデータを受信すると、対向ノード600との間における復号化処理を行う(S66)。
例えば、クラス付与部242は基地局100から送信されたパケットデータのペイロード領域に含まれるデータを暗号処理部243に出力し、暗号処理部243は当該データをDESにより復号する。復号後のデータは、例えば、対向ノード600において暗号化される前の応答データであって、クラス付与部242を介してアプリケーション244に出力される。
<5.「復旧時の暗号化」>
基地局100では、暗号化対象のデータのデータ量が輻輳状態よりも少なくなって、輻輳状態から復旧する場合がある。このような場合、本第2の実施の形態においては、通信端末200の希望する暗号クラスにより通信を行うことができるようにするため、「即時のソフトウェア暗号化」を実現するようにしている。
例えば、基地局100の暗号管理部144は、ソフト暗号化部143におけるソフトウェア暗号処理の使用率が閾値以下となったことを検出すると輻輳状態から復旧したと判別する。暗号管理部144はこの判別を契機として、S15の処理によって、メモリなどに保持したセキュリティパラメータを読み出し、当該パラメータを含むセキュリティパラメータ通知を生成する。そして、暗号管理部144は生成したセキュリティパラメータ通知を送信する(S71)。例えば、基地局100は図9(B)に示すセキュリティパラメータ通知を通信端末200に送信する。
これにより、基地局100は通信端末200が最初に希望した暗号クラスを通信端末200に送信することができる。例えば、暗号管理部144とクラス付与部242は変更後のセキュリティパラメータ通知をメモリに保持し、パケットデータの送信や受信の際に使用する。
以後は、「即時ソフトウェアによる暗号化」と同一の処理が行われ(S72〜S81)、通信端末200において希望した暗号クラスによる暗号化が行われる。
<基地局100における動作例>
次に基地局100における動作例について説明する。図11は基地局100における動作例を表わすフローチャートである。ただし、図7及び図8で示したシーケンス例と重複している部分もあるため、以下簡単に説明することにする。
基地局100は処理を開始すると(S100)、暗号ソフトウェアを更新する(S101)。例えば、基地局100はOPE400から最新の暗号プログラム(例えばAES方式による暗号プログラム)をダウンロードし、ソフトウェア更新部142においてメモリなどにダウンロードした暗号プログラムを記憶する。
次いで、基地局100はセキュリティGW300との間で暗号トンネルを確立する(S102)。基地局100は、例えば、「高セキュリティ」の暗号トンネル(ダウンロードしたAESを使用できるようにするための暗号トンネル)と「低セキュリティ」の暗号トンネル(ハードウェアにより利用するDESを使用できるようにするための暗号トンネル)を確立する。
次いで、基地局100は、通信端末200からセキュリティパラメータ要求(又はセキュリティパラメータ通知)を受信したか否かを判別する(S103)。基地局100はセキュリティパラメータ通知を受信するまで待ち(S103でNoのループ)、受信するとパラメータ確認処理を行う(S104)。
図12はセキュリティパラメータ確認処理の動作例を表わすフローチャートであるである。基地局100はパラメータ確認処理を開始すると(S104)、受信したセキュリティパラメータ要求のサービス種別を確認する(S1041)。
例えば、基地局100は図9(A)に示すセキュリティパラメータ要求を受信すると、サービス種別として「機密パケット」、「通常パケット」、「音声パケット」、「ストリーム」があることを確認する。このような確認は、例えば暗号管理部144において行われる。そして、基地局100はサービス種別それぞれに対して、S1042からS1047までの処理を行う。
すなわち、S1042において基地局100はソフトウェア使用率について余裕があるか否かを判別する(S1042)。例えば、暗号管理部144はソフト暗号化部143で行われるソフトウェアによる暗号化処理の使用率を計算し、当該使用率が閾値以下のときは余裕があると判別し、当該使用率が閾値を超えるとき余裕がないと判別する。
基地局100はソフトウェア使用率について余裕があると判別したとき(S1042で「余裕あり」)、「即時のソフトウェア暗号化」を希望する暗号クラスについては無条件でソフトウェアによる暗号化を許可する(S1043)。基地局100は、例えば、「即時のソフトウェア暗号化」を行うことができる状態のときは、「即時のソフトウェア暗号化」を希望する暗号クラスについてはその暗号化を許可している。例えば、基地局100は、図9(A)の例では暗号クラス「1」、「4」を許可する。
一方、ソフトウェア使用率について余裕がないとき(S1042で「余裕なし」)、基地局100は暗号クラスについて待ち合わせが可能な暗号クラスがあるか否かを判別する(S1044)。待ち合わせが可能な否かは、例えば、基地局100が通信端末200から受信したセキュリティパラメータ通知の「待ち合わせ」が「可」となっているか「不可」となっているかに応じて判別する。基地局100は、例えば「スケジューリングによるソフト暗号化」が可能な暗号クラスがあるか否かを判別している。
待ち合わせが「可」のとき(S1043で「可」)、基地局100はバッファの使用率について余裕があるか否かを判別する(S1045)。例えば、暗号管理部144は暗号待ちバッファ145の使用率を計算し、当該使用率がバッファ閾値を超えるか否かにより判別する。
そして、基地局100は、バッファ使用率について「余裕あり」と判別したとき(S1045で「余裕あり」)、スケジューリング有りのソフトウェア暗号化による暗号化を許可する(S1046)。ここでは、基地局100は例えば「スケジューリングによるソフト暗号化」を希望する暗号クラスについてはその暗号化を許可するようにしている。図9(A)の例では、基地局100は暗号クラス「2」について許可する。
一方、基地局100はバッファ使用率について「余裕なし」と判別したとき(S1045で「余裕なし」)、ソフト暗号化については許可せずに、ハード暗号化を許可する(S1047)。ここでは、基地局100は暗号待ちバッファ145の使用率がバッファ閾値を超えているため、「即時のソフトウェア暗号化」と「スケジューリングによるソフトウェア暗号化」を許可せず、「ハードウェアによる暗号化」を希望する暗号クラスについてその暗号化を許可している。図9(A)の例では、基地局100は暗号クラス「3」について許可する。
一方、基地局100は待ち合わせについて「不可」のとき(S1043で「不可」)、ハード暗号化による暗号化を許可する(S1047)。ここでは、基地局100は例えばソフトウェア使用率も余裕がなく(S1042で「余裕なし」)、「待ち合わせ」してもよい暗号クラスがないとき、「ハード暗号化」を希望する暗号クラスについての暗号化を許可する。図9(A)の例では、基地局100は暗号クラス「4」〜「6」を許可する。
基地局100は以上の処理を各サービス種別について行うとセキュリティパラメータ通知を通信端末200に送信する(S1049)。
例えば、図7のS15のように、基地局100はセキュリティパラメータ要求を受信したときにソフトウェア使用率について余裕があるとき(例えば図12のS1042で「余裕あり」)、「即時によるソフトウェア暗号化」を示す暗号クラスについて許可する(例えば図12のS1043)。
また、基地局100は、セキュリティパラメータ要求を受信したときに、「即時のソフトウェア暗号化」について輻輳状態となっているとき(例えば図7のS30)、ソフトウェア使用率については余裕がなくなる(図12のS1042で「余裕なし」)。この場合、基地局100は待ち合わせが「可」となる暗号クラスを許可する(S1045)。
さらに、基地局100は、例えば図8のS50に示す輻輳状態となったとき、バッファ使用率も余裕がなくなり(図12のS1045で「余裕なし」)、「ハードウェア暗号化」を希望する暗号化を許可する(S1047)。
図11に戻り、基地局100はパラメータ確認処理(S104)を終了すると、暗号化を行う(又は復号化を行う)パケットデータの受信があるか否かを判別する(S105)。例えば、暗号管理部144は、ヘッダ領域に暗号クラスを含むパケットデータをセレクタ141から受け取ったか否かにより判別する。
基地局100は、このようなパケットデータを受信すると(S105でYes)、当該パケットデータから暗号クラスを抽出する(S106)。
次いで、基地局100は抽出した暗号クラスがどのようなものかを判別する(S107)。基地局100は暗号クラスについてはセキュリティパラメータ通知として通信端末200に送信している(図12のS1049)ため、ここでは受け取った暗号クラスに応じて暗号化を行うことになる。
基地局100は、抽出した暗号クラスがソフト暗号化を表わしているとき(S107で「ソフト暗号化」)、「即時のソフトウェア暗号化」を行う(S108)。
また、基地局100は、抽出した暗号クラスがスケジューリングによるソフトウェア暗号を表わしているとき(S107で「ソフト暗号+スケジュール」)、受信したパケットデータを暗号待ちバッファ145に格納する(S109)。
さらに、基地局100は、抽出した暗号クラスがハード暗号化を表わしているとき(S107で「ハード暗号化」)、「ハードウェア暗号化」を行う(S110)。
基地局100は、S108〜S110のいずれかの処理が終了すると、暗号待ちバッファ145にパケットデータなどが格納されていればこれを読み出し、ソフトウェア暗号化を行う(S111)。
一方、基地局100は、暗号化を行うパケットデータの受信がないとき(S105でNo)、S111の処理を行う。
次いで、基地局100はソフト暗号化の使用率を更新する(S112)。例えば、基地局100がS108で「即時のソフトウェア暗号化」を行うと、ソフト暗号化部143におけるソフト暗号化の使用率は変化する。S109やS111において、例えば「スケジューリングによるソフトウェア暗号化」を行っても同様に使用率は変化する。例えば、暗号管理部144はこのようにS108又はS111によってソフト暗号化の処理が行われ場合の使用率を計測する。
そして、処理はS104に移行して基地局100は上述した処理を繰り返す。なお、基地局100は例えばその電源がオフになったときにS101〜S112のいずれかの処理を行った後に本処理を終了させることになる。
最後に本第2の実施の形態による効果について述べることにする。
基地局100ではハードウェア暗号化をハード暗号化部151において行っているが、このようなハードウェアによる暗号化についてのセキュリティレベルが暗号解読技術の進歩に対して低下する場合がある。そこで、基地局100においてはハードウェアの更新などを行うことなく、最新の暗号プログラムをダウンロードして、CPU140によるソフトウェアの暗号化を行うようにしている(例えば、図7のS10)。これにより、基地局100は、SECURITY150を交換するなどによるコスト増加を招くことなく、暗号解読技術に対してより高度のセキュリティを確保した暗号アルゴリズムを適用することができる。さらに、全国各地に設置済みの基地局100のセキュリティを継続的に向上させることも可能であり、セキュリティの脅威に対してより安全な通信環境を提供できる。従って、本通信システム10は基地局100の設置時と比較して、高セキュリティ化を実現することができる。
また、基地局100又は通信端末200では、サービス種別ごとに暗号クラスを付与しており、サービス単位で異なる暗号アルゴリズムを提供することができる(例えば、図9(A)〜図10(B))。例えば、第2の実施の形態における基地局100は、セキュリティレベルが他のサービスより高い「機密パケット」などについては高セキュリティレベルの暗号アルゴリズム(例えばAES)を適用し、そうでない「音声」などのパケットデータについては低セキュリティレベルの暗号アルゴリズム(例えばDES)を適用するようにしている(例えば、図9(B)など)。
さらに、基地局100は、例えば、他のサービスを比較してリアルタイム性は必要ないものの高度のセキュリティが必要なサービス種別に対しては「スケジューリングによるソフトウェア暗号化」を行うようにしている(例えば、図9(B))。このようなスケジューリングによって、ソフトウェアによる暗号化の処理が均等化されて、かかるサービス種別(例えば、データ量が少ないが他のデータと比較して重要な金融決済情報を含む「機密パケット」)に対して高セキュリティの暗号アルゴリズムが適用可能となる。このように、本通信システム10においてはサービスに応じたセキュリティを確保することができる。
また、通信端末200が移動する場合などにおいて、パケットデータのデータ量が変化する場合において、基地局100は「即時のソフトウェア暗号化」や「スケジューリングによるソフトウェア暗号化」を行うことができる。
例えば、基地局100において通信端末200から受信したデータのデータ量が増加し、基地局100のソフトウェア使用率が閾値を超えると、「即時のソフトウェア暗号化」から「スケジューリングによるソフトウェア暗号化」を行うようにしている(図7のS30など)。また、基地局100において通信端末200から受信したデータのデータ量がデータ閾値以下となるとき、ソフトウェア使用率が閾値以下となり、「即時のソフトウェア暗号化」を行うことができる(図8のS70)。例えば、通信端末200から送信されるデータのデータ量に応じて、基地局100はソフトウェアによる暗号化とハードウェアによる暗号化を切替えることができる。
さらに、基地局100ではソフトウェア暗号化が輻輳したとき、通信端末200と対向ノード600において暗号化を行うようにしている。このため、基地局100とセキュリティGW300間が他よりも低セキュリティとなっても、通信端末200と対向ノード600間では全体として高セキュリティの暗号化を行うことができる。これにより、通信端末200と対向ノード600間において高セキュリティを保証することができる。また、このような場合に限り、通信端末200では暗号化を行うようにしているため、通信端末200に対しては常に暗号化処理を行わせることはなく、最小限のセキュリティ処理を行わせることができ、かかる場合と比較して通信端末200の消費電力を低くすることができる。
[その他の実施の形態]
次にその他の実施の形態について説明する。図13(A)は基地局100、図13(B)は通信端末200、図14はセキュリティGW300と対向ノード600の構成例をそれぞれ表わす図である。
基地局100は、CPU160、Memory/Peripheral IO Controller(以下、「メモリコントローラ」と称する場合がある)161、Memory162、GbE L2SW(以下、「L2SW」と称する場合がある)163、PHY164、Security165、DSP166、AMP167、及びアンテナ168を備える。
CPU160は、例えば、第2の実施の形態におけるソフトウェア更新部142、ソフト暗号化部143、暗号管理部133、暗号スケジューラ146、呼制御部147、及び鍵交換部148に対応する。
また、メモリコントローラ161は、例えば、第2の実施の形態におけるセレクタ141、ソフトウェア更新部142、ソフト暗号化部143、暗号管理部144、暗号スケジューラ146、呼制御部147、及び鍵交換部148に対応する。
さらに、Memory162は、例えば、第2の実施の形態におけるセレクタ141、ソフトウェア更新部142、ソフト暗号化部143、暗号管理部144、暗号待ちバッファ145、暗号スケジューラ146、呼制御部147、及び鍵交換部148に対応する。
さらに、L2SW163は、例えば、第2の実施の形態におけるセレクタ141に対応する。
さらに、PHY164は、例えば、第2の実施の形態における有線送受信部111に対応する。
さらに、Security165は、例えば、第2の実施の形態におけるハード暗号化部151に対応する。
さらに、例えば、DSP166は第2の実施の形態におけるベースバンド部121に対応し、AMP167は第2の実施の形態における無線送受信部131に対応する。
例えば、CPU160は通信端末200から送信されたセキュリティパラメータ要求(例えば図7のS15)に対して、ソフトウェア暗号化の使用率などに基づいて、許可する暗号クラスを含むセキュリティパラメータ通知を生成し送信する(S16)。
また、CPU160は、通信端末200から送信された暗号クラスに基づいて、「即時のソフトウェア暗号化」、「スケジューリングによるソフトウェア暗号化」、又は「ハード暗号化」を判別し(例えば図11のS107)、その判別に応じた処理を行う(例えばS108〜S110)。
通信端末200は、CPU260、メモリコントローラ261、Memory262,L2SW263、Security265、DSP266、AMP267、アンテナ268を備える。
CPU260は、例えば、第2の実施の形態におけるクラス付与部242、暗号処理部243、アプリケーション244、呼制御部247、及び鍵交換部248に対応する。
また、メモリコントローラ261は、例えば、第2の実施の形態における送受信部211、ベースバンド部221、セレクタ241、暗号処理部243、アプリケーション244、呼制御部247、及び鍵交換部248に対応する。
さらに、Memory262は、例えば、第2の実施の形態における送受信部211、ベースバンド部221、セレクタ241、暗号処理部243、アプリケーション244、呼制御部247、及び鍵交換部248に対応する。
さらに、L2SW263は、例えば、第2の実施の形態におけるセレクタ241に対応する。
さらに、Security265は、例えば、第2の実施の形態における暗号処理部243に対応する。
さらに、例えば、DSP266は第2の実施の形態におけるベースバンド部221に対応し、AMP267は第2の実施の形態における送受信部211に対応する。
例えば、CPU260はセキュリティパラメータに対して暗号クラスを付与し、暗号クラスを含むセキュリティパラメータ要求を基地局100に送信する(例えば図7のS15)。また、CPU260は、セキュリティパラメータ通知を基地局100から受信すると、Memory262に許可された暗号クラスを保持し、送信するパケットのサービス種別に応じて、暗号クラスを含むパケットデータを生成し基地局100に送信する(例えば図7のS20,S32,図8のS54,S72)。
セキュリティGW300は、CPU360、メモリコントローラ361、Memory362、L2SW363、PHY364を備える。
CPU360は、例えば、第2の実施の形態におけるソフトウェア更新部342、ソフト暗号化部343、暗号管理部344、暗号スケジューラ345、呼制御部347、及び鍵交換部348に対応する。
また、メモリコントローラ361は、例えば、第2の実施の形態におけるセレクタ341、ソフトウェア更新部342、ソフト暗号化部343、暗号管理部344、暗号スケジューラ345、呼制御部347、及び鍵交換部348に対応する。
さらに、Memory362は、例えば、第2の実施の形態におけるセレクタ341、ソフトウェア更新部342、ソフト暗号化部343、暗号管理部344、暗号スケジューラ345、呼制御部347、及び鍵交換部348に対応する。
さらに、例えば、L2SW363は第2の実施の形態におけるセレクタ341に対応し、PHY364は第2の実施の形態における有線送受信部311に対応する。
また、対向ノード600も、CPU360、メモリコントローラ361、Memory362、L2SW363、PHY364を備える。
この場合において、CPU360は例えば第2の実施の形態における暗号管理部642、アプリケーション644、暗号処理部643、呼制御部647、鍵交換部648に対応する。また、メモリコントローラ361は例えば第2の実施の形態におけるセレクタ641、暗号管理部642、アプリケーション644、暗号処理部643、呼制御部647、鍵交換部648に対応する。さらに、Memory362は例えば第2の実施の形態におけるセレクタ641、暗号管理部642、アプリケーション644、暗号処理部643、呼制御部647、鍵交換部648に対応する。さらに、例えば、L2SW363は第2の実施の形態におけるセレクタ641、PHY364は有線送受信部611にそれぞれ対応する。
また、他の実施の形態としては例えば以下のようなものがある。すなわち、第2の実施の形態においては、パケットデータが通信端末200から対向ノード600に送信される例について述べた。例えば、パケットデータが対向ノード600から通信端末200に送信されるようにしてもよい。この場合、基地局100はセキュリティパラメータ通知をセキュリティGW300と対向ノード600に送信し、対向ノード600は暗号クラスを含むパケットデータを送信する。セキュリティGW300と基地局100では暗号クラスに基づいて暗号化と復号化をそれぞれ行う。通信端末200は受信したパケットデータに対する応答データを生成し、パケットデータを対向ノードに向けて送信する。
また、第2の実施の形態においては、「即時のソフトウェア暗号化」、「スケジューリングによるソフトウェア暗号化」、及び「ハード暗号化」について基地局100とセキュリティGW300で行うものとして説明した。
例えば、通信端末200と基地局100がこのような暗号処理を行うようにしてもよい。この場合、通信端末200と基地局100間の通信路のセキュリティが確保できる。
また、通信端末200とセキュリティGW300とで、「即時のソフトウェア暗号化」、「スケジューリングによるソフトウェア暗号化」、及び「ハード暗号化」が行われるようにしてもよい。この場合、通信端末200とセキュリティGW300との間の通信路のセキュリティが確保できる。
さらに、通信端末200と対向ノード600とで、「即時のソフトウェア暗号化」、「スケジューリングによるソフトウェア暗号化」、及び「ハード暗号化」が行われるようにしてもよい。この場合、通信端末200と対向ノード600間における通信路のセキュリティが確保できる。
例えば、第1の実施の形態における通信装置700は、通信端末200やセキュリティGW300、対向ノード600であってもよいし、第1の実施の形態における他の通信装置800も、通信装置700との間の通信路でセキュリティを確保する、通信端末200やセキュリティGW300、対向ノード600であってもよい。このような場合、基地局100のCPU140における各ブロックが、通信端末200やセキュリティGW300、対向ノード600に備えられて、第2の実施の形態で説明したCPU140における各処理が通信端末200などで行われる。
以上まとめると付記のようになる。
(付記1)
他の通信装置から送信されたデータを第1の暗号アルゴリズムもしくは前記第1の暗号アルゴリズムよりもセキュリティレベルが高い第2の暗号アルゴリズムにより暗号化、又は前記第1もしくは第2の暗号アルゴリズムで暗号化されたデータを前記暗号化に使用した暗号アルゴリズムにより復号化を行う通信装置において、
前記暗号化又は復号化を行うときに使用するパラメータを識別する暗号クラスを含む前記データを受信したとき、前記暗号クラスに基づいて、前記第1又は第2の暗号アルゴリズムによる暗号化或いは復号化を行う暗号化部と
を備えることを特徴とする通信装置。
(付記2)
前記暗号化部は、
前記第1の暗号アルゴリズムによる暗号化又は復号化を行う専用集積回路と、
前記第2の暗号アルゴリズムによる暗号化又は復号化を行うCPUと、
前記暗号クラスを含むデータを受信したとき、前記暗号クラスに基づいて、前記データを前記専用集積回路又は前記CPUに出力する暗号管理部とを備えることを特徴とする付記1記載の通信装置。
(付記3)
前記暗号クラスは前記通信装置が前記他の通信装置に提供するサービスの種別に応じて異なることを特徴とする付記1記載の通信装置。
(付記4)
前記暗号クラスは、前記サービスの種別、前記第1又は第2の暗号アルゴリズム、前記第1又は第2の暗号アルゴリズムにより処理を許容する単位時間あたりのビット数、及び所定時間経過後に第2の暗号アルゴリズムによる処理を行うことを許容するか否かについての組み合わせを識別する識別子であることを特徴とする付記3記載の通信装置。
(付記5)
前記サービスの種別は、機密パケットの送信、通常パケットの送信、音声データを含むパケットの送信、映像ストリームを含むパケットの送信による各サービスを含むことを特徴とする付記3記載の通信装置。
(付記6)
前記暗号化部は前記受信したデータを記憶する記憶部を備え、
前記暗号管理部は、前記暗号クラスを含む前記データを受信したとき、前記暗号クラスに基づいて、前記データを前記専用集積回路、前記CPU、又は前記記憶部のいずれかに出力し、
前記暗号管理部は前記記憶部に格納した前記データを読み出して前記CPUに出力することを特徴とする付記2記載の通信装置。
(付記7)
前記暗号化部は、
前記記憶部に格納した前記データのデータ量が所定の閾値以下となるタイミングを計算する暗号スケジューラを備え、
前記暗号管理部は前記タイミングのときに前記記憶部から前記データを読み出して前記CPUに出力することを特徴する付記6記載の通信装置。
(付記8)
前記暗号化部は、前記他の通信装置から前記暗号クラスを含むセキュリティパラメータ要求を受信したとき、暗号化又は復号化を許可する暗号クラスを含むセキュリティパラメータ通知を前記他の通信装置に送信し、
前記暗号化部は、前記許可した暗号クラスを含む前記データを前記他の通信装置から受信することを特徴とする付記1記載の通信装置。
(付記9)
前記暗号管理部は、前記他の通信装置から前記暗号クラスを含むセキュリティパラメータ要求を受信したとき、前記第2の暗号アルゴリズムによる暗号化又は復号化の前記CPUにおける第1の使用率、前記暗号クラス、及び前記記憶部の第2の使用率に基づいて、暗号化又は復号化を許可する暗号クラスを含むセキュリティパラメータ通知を前記他の通信装置に送信することを特徴とする付記2記載の通信装置。
(付記10)
前記暗号化部は前記受信したデータを記憶する記憶部を備え、
前記暗号管理部は、前記他の通信装置から前記暗号クラスを含むセキュリティパラメータ要求を受信したときにおいて、
前記第2の暗号アルゴリズムによる暗号化又は復号化の前記CPUにおける第1の使用率が第1の閾値以下のとき、前記第2の暗号アルゴリズムによる暗号化或いは復号化を許可する暗号クラスを含むセキュリティパラメータ通知を送信し、
前記第1の使用率が前記第1の閾値を超え、前記記憶部においてバッファリングした後前記第2の暗号アルゴリズムによる暗号化又は復号化を要求する前記暗号クラスが前記セキュリティパラメータ要求に含まれ、かつ、前記記憶部の第2の使用率が第2の閾値以下のとき、前記バッファリングした後前記第2の暗号アルゴリズムによる暗号化又は復号化を許可する暗号クラスを含むセキュリティパラメータ通知を送信し、
前記第1の使用率が前記第1の閾値を超え、前記バッファリングした後前記第2の暗号アルゴリズムによる暗号化又は復号化を要求する暗号クラスが前記セキュリティパラメータ要求に含まれ、かつ、前記第2の使用率が前記第2の閾値を超えるとき、又は、
前記第1の使用率が前記第1の閾値を超え、かつ、前記バッファリングした後前記第2の暗号アルゴリズムによる暗号化又は復号化を要求する暗号クラスが前記セキュリティパラメータ要求に含まれないとき、前記第1の暗号アルゴリズムを許可する暗号クラスを含むセキュリティパラメータ通知を送信することを特徴とする付記2記載の通信装置。
(付記11)
前記通信装置は無線基地局装置、前記他の通信装置は通信端末装置であることを特徴とする付記1記載の通信装置。
(付記12)
第1の暗号アルゴリズムもしくは前記第1の暗号アルゴリズムよりもセキュリティレベルが高い第2の暗号アルゴリズムによる暗号化、又は前記第1もしくは第2の暗号アルゴリズムで暗号化されたデータを前記暗号化に使用した暗号アルゴリズムにより復号化を行う他の通信装置に対してデータを送信する通信装置において、
前記他の通信装置において暗号化又は復号化が行われるときに使用されるパラメータに対して暗号クラスを付与し、前記付与した暗号クラスに対して前記他の通信装置において許可された前記暗号クラスを含むデータを前記他の通信装置に送信するクラス付与部
を備えることを特徴とする通信装置。
(付記13)
第1の通信装置と、
前記第1の通信装置から送信されたデータを第1の暗号アルゴリズムもしくは前記第1の暗号アルゴリズムよりもセキュリティレベルが高い第2の暗号アルゴリズムにより暗号化、又は前記第1もしくは第2の暗号アルゴリズムで暗号化されたデータを前記暗号化に使用した暗号アルゴリズムにより復号化を行う第2の通信装置とを備える通信システムにおいて、
前記第1の通信装置は、
前記第2の通信装置において暗号化又は復号化が行われるときに使用されるパラメータに対して暗号クラスを付与し、前記付与した暗号クラスに対して前記第2の通信装置において許可された前記暗号クラスを含むデータを前記第2の通信装置に送信するクラス付与部を備え、
前記第2の通信装置は、
前記暗号クラスを含む前記データを受信したとき、前記暗号クラスに基づいて、前記第1又は第2の暗号アルゴリズムによる暗号化或いは復号化を行う暗号化部を備えることを特徴とする通信システム。
(付記14)
第1の通信装置と、前記第1の通信装置から送信されたデータを第1の暗号アルゴリズムもしくは前記第1の暗号アルゴリズムよりもセキュリティレベルが高い第2の暗号アルゴリズムにより暗号化、又は前記第1もしくは第2の暗号アルゴリズムで暗号化されたデータを前記暗号化に使用した暗号アルゴリズムにより復号化を行う第2の通信装置とを備える通信システムにおける暗号アルゴリズム実行方法であって、
前記第1の通信装置は、前記第2の通信装置において暗号化又は復号化が行われるときに使用されるパラメータに対して暗号クラスを付与し、前記付与した暗号クラスに対して前記第2の通信装置において許可された前記暗号クラスを含むデータを前記第2の通信装置に送信し、
前記第2の通信装置は、前記暗号クラスを含む前記データを受信したとき、前記暗号クラスに基づいて、前記第1又は第2の暗号アルゴリズムによる暗号化或いは復号化を行う、
ことを特徴とする暗号アルゴリズム実行方法。