説明

暗復号化装置、および暗復号化プログラムが格納されたコンピュータで読み取り可能な記憶媒体。

【課題】ハードウェア、およびソフトウェアを用いて暗復号化処理を行う暗復号化装置において、パケット通信システムにおけるデバイスへの入力順序や、1のパケットにおける暗復号処理に注目し、暗復号化処理速度をより向上させた暗復号化装置、または暗復号化プログラムが格納されたコンピュータで読み取り可能な記憶媒体を提供することを目的とする。
【解決手段】暗復号化装置1は、ハードウェアによる暗復号化処理を行う、またはハードウェアとソフトウェアの両方による暗復号化処理を行う場合には、暗復号化対象フィールド(ペイロード)を非暗復号化対象フィールド(マックヘッダ)より優先してソフトウェア処理ブロックのCPU10からデバイス入出力IF20に入力する。これにより、パケット通信システムにおけるデバイスへの入力順序や、1のパケットの暗復号処理に注目することができ、結果的に、暗復号化における処理速度を向上させることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信パケットの暗号化または復号化(以下、暗復号化と呼ぶ)を行う暗復号化装置に関わり、特に暗復号化の処理をハードウェア、およびソフトウェアを用いて処理する暗復号化装置に関する。
【背景技術】
【0002】
近年、通信、ネットワークなどの分野において、非常に早い速度で技術が発展している。これに伴い、情報や機密が漏洩する可能性も高まり、セキュリティ技術の分野においては、「暗復号化の高速化」がユーザから望まれている。
そして、ユーザからの「暗復号技術の高速化」の要求により、通信パケットの分野において、高速な暗復号処理を可能とした暗復号化装置が登場している。
ここで、通信パケットとは、送信するデータを一端細切れに分割し、該分割されたデータ単位を「パケット」として通信する方式である。
この「パケット」は、ヘッダ、およびペイロードによって構成されており、該ヘッダにはパケット自体を転送するための転送先の情報が含まれ、該ペイロードには転送するアプリケーションソフトなどの情報(ヘッダを除くデータそのもの)が含まれている。
暗復号化装置では、パケットが公衆回線などで漏洩する可能性がある場合には、該パケットを暗号化し、暗号化パケットを用いて装置間で送受信を行う。
そして、他の装置から受信したパケットが暗号化されている場合、この暗号化されているパケットを復号化して、パケットを読取可能な状態にする。
暗復号処理の際、該暗復号化装置は、暗号化するパケット、または転送されてきた復号化するパケットに対して、ヘッダを非暗復号化対象フィールドとし、ペイロードを暗復号化対象フィールドとして入力を受け付ける。
これにより、必要な暗復号化対象フィールドに対してのみ暗復号化処理を行うので、高速な暗復号処理を行うことができる。
【0003】
そして、最近では、ハードウェア、およびソフトウェアの両者を併用して暗復号化処理を行う暗復号化装置が開発されている。
ハードウェアとソフトウェアの両方で暗復号化処理を行う場合、パケット中の暗復号化対象フィールドの長さによって、そのフィールドの長さが短い場合にはソフトウェアで暗復号処理を行った方が処理速度が早く、該暗復号化対象フィールドの長さが長い場合には、ハードウェアで暗復号処理を行った方が早いという現象が生じる。
この現象は、暗復号処理の過程において、CPU(Central Processing Unit)の処理速度や、ハードウェア(またはデバイス)のバススピードなどの差によって生じるものである。
例えば、下記特許文献1では、ハードウェア、およびソフトウェアを用いて暗復号化処理を行う場合、パケット長が各条件で決定した閾値よりも短い場合はソフトウェアで暗復号処理を行い、閾値よりも長い場合はハードウェアで暗復号処理を行っており、パケット長に応じて、ハードウェアを用いて暗復号処理を行うか、それともソフトウェアを用いて暗復号処理を行うかを決定する技術が開示されている。
例えば、下記特許文献2では、第三者により暗号方式が解読されることを防止するため、装置本体のカバーの開状態を検出した場合に、暗号化または復号化プログラムに記憶された揮発性記憶手段に対するバックアップ電源を遮断する技術が開示されている。
【特許文献1】特開2003−69555
【特許文献2】特開平7−141261
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の暗復号化装置では、ソフトウェアで生成したパケット、または転送されてきたパケットに対して、デバイスへの入力順序が効率的でないという問題がある。
また、上記特許文献1では、1のパケットに注目した場合の暗復号処理における効率化や、処理速度向上が達成できないという問題がある。
【0005】
そこで、本発明では、ハードウェア、およびソフトウェアを用いて暗復号化処理を行う暗復号化装置において、パケット通信システムにおけるデバイスへの入力順序や、1のパケットにおける暗復号処理に注目し、暗復号化処理速度をより向上させた暗復号化装置、または暗復号化プログラムが格納されたコンピュータで読み取り可能な記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【0006】
請求項1記載の発明では、ハードウェアによる暗復号化処理と、ソフトウェアによる暗復号化処理とを併用する暗復号化装置において、非暗復号化対象フィールドであるヘッダ、および暗復号化対象フィールドであるペイロードから構成されるパケットを受領するパケット受領手段と、前記パケット受領手段で受領したパケット、またはペイロードのフィールド長を計測するフィールド長計測手段と、前記フィールド長計測手段で計測したフィールド長に基づいて、ハードウェアによる暗復号化処理を行うか、ソフトウェアによる暗復号化処理を行うか、または、ハードウェアとソフトウェアの両方による暗復号化処理を行うか、を決定する処理決定手段と、を備え、前記処理決定手段において、ハードウェアによる暗復号化処理を行う、またはハードウェアとソフトウェアの両方による暗復号化処理を行うことを決定した場合、前記ペイロードを前記ヘッダより優先して入力する入力手段と、を備えたことにより、前記目的を達成する。
請求項2記載の発明では、請求項1記載の発明において、前記処理決定手段を、ハードウェア側、またはソフトウェア側に備えることを特徴とする。
請求項3記載の発明では、請求項1、または請求項2記載の発明において、第1の閾値、および第2の閾値をユーザから受け付ける閾値受付手段をさらに備え、前記処理決定手段は、前記フィールド長計測手段で計測したフィールド長と、前記閾値受付手段で受け付けた前記第1の閾値とを比較して、ハードウェアで暗復号化処理を行うか、ソフトウェアで暗復号化処理を行うかを決定し、前記フィールド長計測手段で計測したフィールド長と、前記受付手段で受け付けた前記第2の閾値とを比較して、ハードウェアとソフトウェアの両方で暗復号化処理を行うか否かを決定することを特徴とする。
請求項4記載の発明では、請求項1、または請求項2記載の発明において、前記ハードウェアによる暗復号化処理、および前記ソフトウェアによる暗復号化処理における処理速度に基づいて、第1の閾値、および第2の閾値を算出する閾値算出手段をさらに備え、前記処理決定手段は、前記フィールド長計測手段で計測したフィールド長と、前記閾値算出手段で算出した前記第1の閾値とを比較して、ハードウェアで暗復号化処理を行うか、ソフトウェアで暗復号化処理を行うかを決定し、前記フィールド長計測手段で計測したフィールド長と、前記閾値算出手段で算出した前記第2の閾値とを比較して、ハードウェアとソフトウェアの両方で暗復号化処理を行うか否かを決定することを特徴とする。
請求項5記載の発明では、請求項1から請求項4のいずれか1項に記載の発明において、前記ハードウェアによる暗復号化処理、前記ソフトウェアによる暗復号化処理、または前記ハードウェアとソフトウェアの両方による暗復号化処理によって、前記暗復号化対象フィールドであるペイロードが暗復号化されたペイロードを格納する暗復号データ格納手段と、前記非暗復号化対象フィールドであるヘッダを格納する非暗復号データ格納手段と、をさらに備えたことを特徴とする。
請求項6記載の発明では、請求項5記載の発明において、前記暗復号データ格納手段に格納された暗復号化されたペイロード、および前記非暗復号データ格納手段に格納されたヘッダから、対となるパケットを検出するパケット検出手段と、をさらに備えたことを特徴とする。
請求項7記載の発明では、請求項1から請求項6のいずれか1項に記載の発明において、ヘッダ、およびペイロードの格納先のアドレスを設定する格納先設定手段と、をさらに備え、前記入力手段は、前記格納先設定手段で前記ヘッダより先に前記ペイロードの格納先を設定することにより、前記ペイロードを前記ヘッダより優先して入力することを特徴とする。
請求項8記載の発明では、請求項2記載の発明において、前記処理決定手段をハードウェア側に備え、前記処理決定手段でハードウェアとソフトウェアの両方で暗復号化処理を行う場合、前記暗復号化対象フィールドをソフトウェア側に転送する転送手段をさらに備えたことを特徴とする。
請求項9記載の発明では、請求項1から請求項8のいずれか1項に記載の発明において、前記パケット受領手段は、外部入出力インタフェースを用いて、パケットを受領することを特徴とする。
請求項10記載の発明では、請求項1から請求項9のいずれか1項に記載の発明において、前記処理決定手段は、前記フィールド長計測手段で計測したフィールド長に基づいて、ハードウェアによる復号化処理を行うか、ソフトウェアによる復号化処理を行うか、または、ハードウェアとソフトウェアの両方による復号化処理を行うか、を決定することを特徴とする。
請求項11記載の発明では、請求項1から請求項10のいずれか1項に記載の発明において、前記ソフトウェアから前記ハードウェアに入力することを特徴とする。
請求項12記載の発明では、請求項6記載の発明において、前記パケット検出手段で検出された、対となるパケットである、ヘッダ、およびペイロードをそれぞれ結合してパケットを生成するパケット生成手段をさらに備えたことを特徴とする。
請求項13記載の発明では、請求項1から請求項12のいずれか1項に記載の発明において、前記処理決定手段でハードウェアとソフトウェアの両方による暗復号化処理を行うことを決定した場合、ハードウェアによる暗復号化処理されたペイロード、およびソフトウェアによる暗復号化処理されたペイロードをそれぞれ結合するペイロード結合手段をさらに備えたことを特徴とする。
請求項14記載の発明では、ハードウェアによる暗復号化処理と、ソフトウェアによる暗復号化処理とを併用する暗復号化装置において、非暗復号化対象フィールドであるヘッダ、および暗復号化対象フィールドであるペイロードから構成されるパケットを受領するパケット受領機能と、前記パケット受領機能で受領したパケット、またはペイロードのフィールド長を計測するフィールド長計測機能と、前記フィールド長計測機能で計測したフィールド長に基づいて、ハードウェアによる暗復号化処理を行うか、ソフトウェアによる暗復号化処理を行うか、または、ハードウェアとソフトウェアの両方による暗復号化処理を行うか、を決定する処理決定機能と、を備え、前記処理決定機能において、ハードウェアによる暗復号化処理を行う、またはハードウェアとソフトウェアの両方による暗復号化処理を行うことを決定した場合、前記ペイロードを前記ヘッダより優先して入力する入力機能と、を実行することにより、前記目的を達成する。
【発明の効果】
【0007】
本発明によれば、暗復号化処理におけるパケットフィールドの入力順を並び替えるので、暗復号処理の高速化を図ることができ、開始時間を早めて全体の暗復号化処理をより高速にすることができる。
また、ハードウェアとソフトウェアの暗復号化処理をフィールド長により使い分けることで暗復号化処理を高速にすることができる。
【発明を実施するための最良の形態】
【0008】
以下、本発明の好適な実施形態について図1から図11を参照して詳細に説明する。
(1)暗号化処理を行う暗復号化装置1の構成
図1は、本実施形態の暗号化処理を行う暗復号化装置1の構成を示したブロック図である。
暗号化処理を行う暗復号化装置1は、ソフトウェア処理ブロックのCPU10、デバイス入出力IF(Interface)20、プロトコル処理ブロック30、暗号化/非暗号化フィールド分類手段40、暗号化ブロック50、暗号データ用RAM(Random Access Memory)60、非暗号データ用RAM70、暗号化/非暗号化フィールド読出手段80、カウンタ90、結合データ用RAM100、FCS(Frame Check Sequence)ブロック110、MAC−PHYIF(Media Access Control Physical layer Interface)120、および暗号鍵用RAM130から構成されている。
さらに、ソフトウェア処理ブロックのCPU10は、暗号化閾値決定ブロック11、マックヘッダ生成ブロック12、ペイロード生成ブロック13、および暗号化ブロック14から構成されている。
【0009】
なお、本実施形態の暗号化処理を行うソフトウェアは、ソフトウェア処理ブロックのCPU10(暗号化閾値決定ブロック11、マックヘッダ生成ブロック12、ペイロード生成ブロック13、および暗号化ブロック14)によって構成される。
そして、本実施形態の暗号化処理を行うハードウェアは、デバイス入出力IF20、プロトコル処理ブロック30、暗号化/非復号化フィールド分類手段40、暗号化ブロック50、暗号データ用RAM60、非暗号データ用RAM70、暗号化/非暗号化フィールド読出手段80、カウンタ90、結合データ用RAM100、FCSブロック110、MAC−PHYIF120、および暗号鍵用RAM130によって構成されるものとして説明する。
【0010】
図11は、WUSB(Wireless Universal Serial Bus)パケットを示した概念図である。
WUSBパケットは、マックヘッダ(ヘッダに相当する)、およびペイロードによって構成されており、該マックヘッダにはデータを転送するための転送先の情報、該ペイロードには転送するアプリケーションソフトなどの情報(マックヘッダを除くデータそのもの)が含まれている。
そして、ペイロードを暗号化対象フィールドとし、マックヘッダを非暗号化対象フィールドとする。
なお、本実施形態では、図11に示すように、ペイロードがWUSBヘッダを含むように構成する(WUSBヘッダは、WUSBにおける転送先の情報を示す)。
【0011】
図1に戻り、マックヘッダ生成ブロック12は、送信先の情報であるマックヘッダを生成する。そして、ペイロード生成ブロック13には、転送するアプリケーションソフトなどの情報(ヘッダを除くデータそのもの)であるペイロードが生成される。
図4は、暗号化閾値決定ブロック11で閾値が算出され、該閾値によってフィールド長を判定する判定例を示した図である。
まず暗号化閾値決定ブロック11は、マックヘッダ生成ブロック12、およびペイロード生成ブロック13で生成されたパケット中のマックヘッダ、およびペイロードを取得し、それぞれのフィールド長を計測する。
なお、暗号化閾値決定ブロック11は、マックヘッダのフィールド長については、予め設定されている場合があるので、その場合には、ペイロードのフィールド長を計測することとして構成する。
次に、暗号化閾値決定ブロック11は、第1の閾値、および第2の閾値を算出する。
ここで、第1の閾値、および第2の閾値の算出方法には、例えば、CPUクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号化処理時間、パケット中の暗号化対象フィールド長といった処理速度に係る情報を基に算出する方法がある。
そして、暗号化閾値決定ブロック11は、計測されたフィールド長と、算出された第1の閾値、または第2の閾値とを比較する。
また、本実施形態の構成では、暗号化閾値決定ブロック11で第1の閾値、および第2の閾値を算出することとしたが、暗号化閾値決定ブロック11に図示しないレジスタを設け、該レジスタにユーザからの閾値の設定を受け付けるように構成することも可能である。
【0012】
暗号化閾値決定ブロック11は、計測されたフィールド長が第1の閾値を下回るか否か、または上回るか否かを判断し、下回る場合には、暗号化ブロック14(ソフトウェア)にて暗号化処理を行い、上回る場合には、暗号化ブロック50(ハードウェア)にて暗号化処理を行う旨を示す処理決定情報がペイロードに付与される。
また、計測されたフィールド長が第2の閾値を下回るか否か、または上回るか否かを判断し、上回る場合には、暗号化ブロック14(ソフトウェア)、および暗号化ブロック50(ハードウェア)の両者にて暗号化処理を行う旨を示す処理決定情報がペイロードに付与される。
そして、処理決定情報がソフトウェアで処理する旨である場合、暗号化ブロック14ではペイロードの暗号化処理を行う。
また、処理決定情報がハードウェアで処理する旨である場合、ソフトウェア処理ブロックのCPU10は、バスラインを介して、ハードウェア側のデバイス入出力IF20に入力する。
ソフトウェア処理ブロックのCPU10は、マックヘッダを非暗号対象フィールドとし、ペイロードを暗号化対象フィールドとして、それぞれバスラインを介して、ハードウェア側のデバイス入出力IF20に入力する。
このとき、ハードウェア側であるデバイス入出力IF20への入力順序は、ペイロードの入力を優先して行い、ペイロードの入力が終了した場合に、マックヘッダの入力を開始する。
また、ソフトウェア処理ブロックのCPU10は、ペイロード、およびヘッダの格納先となるアドレスを設定し、ヘッダより先にペイロードの格納先のアドレスを設定する。
【0013】
デバイス入出力IF20は、ブロックのCPU10から、ペイロード、およびマックヘッダをバスラインを介して入力を受け付ける。
そして、デバイス入出力IF20は、受け付けたマックヘッダ、およびペイロードをバスラインを介してプロトコル処理ブロック30に転送する。
プロトコル処理ブロック30では、デバイス入出力IF20から転送されたマックヘッダ、およびペイロードのプロトコル(データ伝送方式)に係る所定の処理を行う。
そして、プロトコル処理ブロック30は、マックヘッダ、およびペイロードを暗号化/非暗号化フィールド分類手段40に転送する。
【0014】
暗号化/非暗号化フィールド分類手段40は、プロトコル処理ブロック30から転送されたマックヘッダ、およびペイロードに応じて、バスラインを介して接続している暗号化ブロック50、暗号データ用RAM60、または非暗号データ用RAM70に分類し、RAMへの格納や転送する処理を行う。
例えば、暗号化/非暗号化フィールド分類手段40は、プロトコル処理ブロック30から転送されたデータがマックヘッドである場合、該データを非暗号データとして認識し、非暗号データ用RAM70に転送し、該非暗号データ用RAM70にマックヘッドを格納する。
【0015】
また、暗号化/非暗号化フィールド分類手段40は、プロトコル処理ブロック30から転送されたデータがハードウェアで暗号処理を行う旨の処理決定情報を備えたペイロードである場合、該データを暗号化ブロック14で暗号化されたペイロードとして認識し、暗号データ用RAM60に転送し、該暗号データ用RAM60に暗号化されたペイロードを格納し、該ペイロードを暗号化ブロック50に転送する。
【0016】
暗号化ブロック50では、暗号化/非暗号化フィールド分類手段40から転送されたペイロードに対して、暗号化処理が行われる。
暗号化ブロック50は、暗号化処理に際して、暗号鍵用RAM130に格納された暗号鍵を適宜参照して、ペイロードに対して暗号化を行う。
そして、暗号化ブロック50は、暗号化の処理が終了したペイロードを暗号データ用RAM60にバスラインを介して転送し、該暗号データ用RAM60に暗号化されたペイロードを格納する。
【0017】
カウンタ90は、非暗号データ用RAM70、および暗号データ用RAM60とバスラインを介して接続しており、読み出しイネーブル信号を周期的に送信している。
そして、カウンタ90は、非暗号データ用RAM70、および暗号データ用RAM60に格納された各データのデータカウント、およびフィールド長情報を取得し、対となるパケットを検出している。
そして、対となるパケットが検出された場合、カウンタ90は、暗号化/非暗号化フィールド読出手段80に対して、要求信号を送信する。
暗号化/非暗号化フィールド読出手段80は、該要求暗号を受領した場合、暗号データ用RAM60に格納された暗号化されたペイロードを読み出し、該ペイロードに対応するマックヘッドを非暗号データ用RAM70から読み出し、バスラインを介して接続しているカウンタ90に該ペイロード、および該マックヘッドを転送する。
カウンタ90では、マックヘッドと該暗号化されたペイロードを結合して、暗号化されたWUSBパケットを生成する。
そして、カウンタ90では、生成され、暗号化されたWUSBパケットを、結合データ用RAM100に格納する。
【0018】
FCSブロック110は、結合データ用RAM100に格納されたWUSBパケットに対して、FCSフィールドを付加する。
図11に示すように、WUSBパケットには、FCSフィールドが付加されており、該FCSフィールドには、通信プロトコルにおいてデータの誤り検出を行うため、フレーム内にチェックサム符号が付け加えられている。
これにより、フレームの送受信を行うコンピュータ間では、各々の規定されたアルゴリズムでチェックサム符号を再計算し、データの送受信が正常なものか否かを判断することができる。
【0019】
図1に戻り、FCSブロック110は、FCSフィールドの付加されたWUSBパケットをバスラインを介してMAC−PHYIF120に転送する。
そして、MAC−PHYIF120は、FCSブロック110から転送されたWUSBパケットをWiMedia PHYへ出力し、他の装置とのデータ送信を行う。
【0020】
(2)復号化処理を行う暗復号化装置1の構成
図3は、本実施形態の復号化処理を行う暗復号化装置1の構成を示したブロック図である。
復号化処理を行う暗復号化装置1は、MAC−PHYIF135、FCSブロック140、復号化判定ブロック150、第1の復号化/非復号化フィールド分類手段160、復号化閾値決定ブロック170、第2の復号化/非復号化フィールド分類手段175、復号化ブロック180、復号鍵用RAM190、非復号データ用RAM200、復号データ用RAM210、復号化/非復号化フィールド読出手段220、カウンタ230、結合データ用RAM240、プロトコル処理ブロック250、デバイス入出力IF260、およびソフトウェア処理ブロックのCPU270から構成されている。
さらに、ソフトウェア処理ブロックのCPU270は、パケット結合ブロック271、および復号化ブロック272から構成されている。
【0021】
なお、本実施形態の復号化処理を行うソフトウェアは、ソフトウェア処理ブロックのCPU270(パケット結合ブロック271、および復号化ブロック272)によって構成されている。
そして、本実施形態の復号化処理を行うハードウェアは、MAC−PHYIF135、FCSブロック140、復号化判定ブロック150、第1の復号化/非復号化フィールド分類手段160、復号化閾値決定ブロック170、第2の復号化/非復号化フィールド分類手段175、復号化ブロック180、復号鍵用RAM190、非復号データ用RAM200、復号データ用RAM210、復号化/非復号化フィールド読出手段220、カウンタ230、結合データ用RAM240、プロトコル処理ブロック250、デバイス入出力IF260、によって構成されるものとして説明する。
【0022】
MAC−PHYIF135は、暗号化されたWUSBパケットを他の装置などからWiMedia PHYを介して受信し、該暗号化されたWUSBパケットをFCSブロック140へ転送する。
FCSブロック140は、WUSBパケットに付加されたFCSフィールドのチェックサム符号を計算し、データの誤り検出を行う。
そして、データの誤りがない場合には、FCSブロック140は、バスラインを介して接続した復号化判定ブロック150に、暗号化されたWUSBパケットを転送する。
【0023】
復号化判定ブロック150は、FCSブロック140から転送されたWUSBパケットが、暗号化されたパケットであるか否かを判定する。
そして、復号化判定ブロック150は、転送されたパケットが暗号化されたパケットである場合には、転送されたパケットを復号化閾値決定ブロック170に第1の復号化/非復号化フィールド分類手段160を介して転送する。
また、復号化判定ブロック150は、転送されたパケットが暗号化されたパケットでない場合には、転送された該パケットを第1の復号化/非復号化フィールド分類手段160を介して非復号データ用RAM200に格納させる。
【0024】
図4は、復号化閾値決定ブロック170で閾値が算出され、該閾値によってフィールド長を判定する判定例を示した図である。
まず、復号化閾値決定ブロック170は、第1の復号化/非復号化フィールド分類手段160から転送されたパケットを取得し、取得したパケットのヘッダ、ペイロードにおけるそれぞれのフィールド長を計測する。
なお、復号化閾値決定ブロック170は、マックヘッダのフィールド長については、予め設定されている場合があるので、その場合には、ペイロードのフィールド長を計測することとして構成する。
次に、復号化閾値決定ブロック170は、第1の閾値、および第2の閾値を算出する。
この第1の閾値、および第2の閾値の算出方法には、例えば、CPUクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号処理時間、パケット中の復号化対象フィールド長などの処理速度に係る情報を基にする算出方法がある。
そして、復号化閾値決定ブロック170は、該計測されたフィールド長を、算出した第1の閾値、および第2の閾値と比較する。
なお、第2の閾値は、第1の閾値を上回るように設定される。
また、本実施形態の構成では、復号化閾値決定ブロック170で第1の閾値、および第2の閾値を算出することとしたが、復号化閾値決定ブロック170に図示しないレジスタを設け、該レジスタにユーザからの閾値の設定を受け付けるように構成することも可能である。
【0025】
復号化閾値決定ブロック170は、計測されたフィールド長が第1の閾値を下回るか否か、または上回るか否かを判断し、下回る場合には、復号化ブロック272(ソフトウェア)にて復号化処理を行い、上回る場合には、復号化ブロック180(ハードウェア)にて復号化処理を行う旨を示す処理決定情報がペイロードに付与される。
また、計測されたフィールド長が第2の閾値を上回るか否かを判断し、上回る場合には、復号化ブロック272(ソフトウェア)、および復号化ブロック180(ハードウェア)の両者にて暗号化処理を行う旨を示す処理決定情報をペイロードに付与される。
そして、復号化閾値決定ブロック170は、処理決定情報をペイロードに付与し、第2の復号化/非復号化フィールド分類手段175にバスラインを介して転送する。
第2の復号化/非復号化フィールド分類手段175は、ペイロードに付与された処理決定情報を認識する。そして、認識の結果、第2の復号化/非復号化フィールド分類手段175は、ペイロードの処理決定情報がハードウェアにて処理する旨を示す情報である場合、復号化ブロック180に転送し、処理決定情報がソフトウェアにて処理する旨である場合、デバイス入出力IF260に転送する。
なお、処理決定情報がハードウェア、およびソフトウェアの両者で復号処理する旨である場合には、復号化閾値決定ブロック170にてペイロードの分割を行い、それぞれ、復号化ブロック180(ハードウェアで処理)、およびデバイス入出力IF260(ソフトウェアで処理)に転送処理を行う。
また、復号化閾値決定ブロック170は、マックヘッダを非暗号対象フィールドとし、ペイロードを暗号化対象フィールドとして、それぞれバスラインを介して、復号化ブロック180に入力する。
このとき、復号化ブロック180への入力順序は、ペイロードの入力を優先して行い、ペイロードの入力が終了した場合に、マックヘッダの入力を開始する。
また、復号化閾値決定ブロック170は、ペイロード、およびヘッダの格納先をとなるアドレスを設定し、ヘッダより先にペイロードの格納先のアドレスを設定する。
【0026】
復号化ブロック180は、復号化閾値決定ブロック170で転送されたペイロードの復号化処理を行う。
このとき、復号化ブロック180は、復号化処理に際して、復号鍵用RAM190に格納された復号鍵を適宜参照して、ペイロードに対して復号化処理を行う。
そして、復号化ブロック180は、復号化処理が終了したペイロードを復号データ用RAM210にバスラインを介して転送し、該復号データ用RAM210に復号化されたペイロードを格納させる。
【0027】
カウンタ230は、非復号データ用RAM200、および復号データ用RAM210とバスラインを介して接続しており、読み出しイネーブル信号を周期的に送信している。
そして、カウンタ230は、非復号データ用RAM200、および復号データ用RAM210に格納された各データのデータカウント、およびフィールド長情報を取得し、対となるパケットを検出している。
そして、対となるパケットが検出された場合、カウンタ230は、復号化/非復号化フィールド読出手段220に対して、要求信号を送信する。
復号化/非復号化フィールド読出手段220は、該要求信号を受領した場合、復号データ用RAM210に格納された復号化されたペイロードを読み出し、該ペイロードに対応するマックヘッドを非復号データ用RAM200から読み出し、復号化/非復号化フィールド読出手段220は、バスラインを介して接続しているカウンタ230に該ペイロード、および該マックヘッドを転送する。
カウンタ230には、復号化/非復号化フィールド読出手段220からマックヘッド、および該マックヘッドに対応する復号化されたペイロードが転送される。
カウンタ230では、マックヘッドと該復号化されたペイロードを結合して、WUSBパケットを生成する。
そして、カウンタ230では、生成したWUSBパケットを、結合データ用RAM240に格納する。
【0028】
プロトコル処理ブロック250では、結合データ用RAM240に格納されたWUSBパケットを読み出し、プロトコル(通信方式)に係る所定の処理を行う。
そして、プロトコル処理ブロック250は、WUSBパケットをバスラインを介してデバイス入出力IF260に入力する。
デバイス入出力IF260は、プロトコル処理ブロック250から転送されたWUSBパケット、または第2の復号化/非復号化フィールド分類手段175から転送されたペイロード(ソフトウェアにて処理する旨を示す処理決定情報を含む)を受信する。
そして、デバイス入出力IF260は、第2の復号化/非復号化フィールド分類手段175から転送されたペイロードに復号化ブロック272にて復号化処理を行う。
そして、パケット結合ブロック271は、復号化ブロック272で復号化処理されたペイロードと、マックヘッダとを結合し、復号化されたWUSBパケットを生成する。
【0029】
(3)暗号化処理を行う暗復号化装置1の手順
図5は、本実施形態におけるハードウェアによる暗号化処理の過程を示したフローチャートである。
まず、ユーザからのアプリケーションソフトに係るデータの転送要求などを受け付け、ソフトウェア処理ブロックのCPU10は、マックヘッダ、およびペイロードによって構成されるWUSBパケットを生成する(ステップ500)。
暗号化閾値決定ブロック11は、生成されたパケット中のマックヘッダ、およびペイロードを取得し、それぞれのフィールド長を計測する。
なお、暗号化閾値決定ブロック11は、マックヘッダのフィールド長については、予め設定されている場合があるので、その場合には、ペイロードのフィールド長を計測することとして構成する。
ここで、暗号化閾値決定ブロック11は、例えば、CPUクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号処理時間、パケット中の暗号化対象フィールド長などの処理速度に係る情報を基に第1の閾値、および第2の閾値を算出する(ステップ502)。
暗号化閾値決定ブロック11において第1の閾値、および第2の閾値が算出された場合(ステップ502;Y)、暗号化閾値決定ブロック11は、計測したフィールド長を、算出した第1の閾値、および第2の閾値と比較する。
暗号化閾値決定ブロック11は、計測されたフィールド長が第1の閾値を上回り、第2の閾値を下回った場合、ハードウェアで暗号化処理を行う旨を示す処理決定情報をペイロードに付与する(ステップ503)。
ソフトウェア処理ブロックのCPU10は、ペイロード(暗号化対象フィールド)をハードウェア側のデバイス入出力IF20に入力する(ステップ504)。
ここで、マックヘッダの処理過程については、ステップ506〜ステップ508にて説明し、ペイロードの処理過程については、ステップ510〜ステップ512にて説明する。
【0030】
ソフトウェア処理ブロックのCPU10は、ステップ504において暗号化対象フィールド(ペイロード)の入力が終了したか否かを判断する(ステップ506)。
ペイロードの入力が終了した場合(ステップ506;Y)、続いてマックヘッダの入力を行う。
デバイス入出力IF20は、プロトコル処理ブロック30、および暗復号化/非暗復号化フィールド分類手段40を介して、マックヘッダを転送し、非暗号データ用RAM70に格納する(ステップ508)。
【0031】
ステップ504において、デバイス入出力IF20に入力された暗号化対象フィールド(ペイロード)は、プロトコル処理ブロック30、および暗復号化/非暗復号化フィールド分類手段40を介して、暗号化ブロック50に転送される。
暗号化ブロック50では、転送されたペイロードに対して、暗号化処理が行われる(ステップ510)。
このとき、暗号化ブロック50は、暗号化に際して、暗号鍵用RAM130に格納された暗号鍵を適宜参照して、ペイロード(暗号化対象フィールド)に対して暗号化処理を行う。
そして、暗号化ブロック50は、暗号化処理が終了したペイロードを暗号データ用RAM60にバスラインを介して転送し、格納する(ステップ512)。
【0032】
カウンタ90は、非暗号データ用RAM70、および暗号データ用RAM60とバスラインを介して接続しており、読み出しイネーブル信号を周期的に送信している。
そして、非暗号データ用RAM70、および暗号データ用RAM60に格納された各データのデータカウント、およびフィールド長情報を取得する。
これにより、カウンタ90は、非暗号データ用RAM70、および暗号データ用RAM60にWUSBパケットが揃ったか否かを検知する(ステップ514)。
そして、検知の結果、WUSBパケットが揃った場合(ステップ514;Y)、該検知に基づき、暗号化/非暗号化フィールド読出手段80は、マックヘッド、およびペイロードを読み出し、カウンタ90に転送する。
そして、カウンタ90では、転送されたマックヘッド、およびペイロードを結合し、暗号化されたWUSBパケットを生成し、結合データ用RAM100に格納する(ステップ516)。
【0033】
FCSブロック110は、結合データ用RAM100に格納されたWUSBパケットに対して、FCSフィールドを付加し、バスラインを介して、MAC−PHYIF120に転送する。
そして、MAC−PHYIF120は、FCSブロック110から転送された、該FCSフィールドの付加されたWUSBパケットを他の装置へWiMedia PHYを介して、データ送信を行う(ステップ518)。
【0034】
なお、ステップ504において、ソフトウェア処理ブロックのCPU10は、暗号化対象フィールド(ペイロード)の入力が終了したか否かを判断し(ステップ506)、入力が終了した場合(ステップ506;Y)、マックヘッドをハードウェア側に入力することにしている。
これにより、ステップ504において、まずペイロードが先に暗号化されるので、ステップ514におけるデータが揃う時間をより早く達成することができ、結果的に、より高速な暗号処理装置とすることができる。
【0035】
図6は、本実施形態におけるソフトウェア、およびハードウェアによる暗号化処理の過程を示したフローチャートである。
まず、ユーザからのアプリケーションソフトの転送要求などを受け付け、ソフトウェア処理ブロックのCPU10は、マックヘッダ、およびペイロードによって構成されるWUSBパケットを生成する(ステップ600)。
次に、暗号化閾値決定ブロック11は、生成されたパケット中のマックヘッダ、およびペイロードを取得し、それぞれのフィールド長を計測する。
暗号化閾値決定ブロック11は、例えば、CPUクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号処理時間、およびパケット中の暗号化対象フィールド長などを基に第1の閾値、および第2の閾値を算出(または決定)する(ステップ602)。
閾値が算出(または決定)された場合(ステップ602;Y)、暗号化閾値決定ブロック11は、計測したフィールド長を、算出した第1の閾値、および第2の閾値と比較する。
そして、暗号化閾値決定ブロック11は、計測されたフィールド長が第1の閾値を上回り、第2の閾値を上回った場合、ハードウェア、およびソフトウェアで暗号化処理を行う旨を示す処理決定情報をペイロード付与する(ステップ603)。
ソフトウェア処理ブロックのCPU10は、ペイロードを暗号化対象フィールドとし、ペイロード、マックヘッドをハードウェア側のデバイス入出力IF20に入力する。
そして、ソフトウェア処理ブロックのCPU10は、マックヘッダ、およびペイロード(または暗号化されたペイロード)をそれぞれバスラインを介して、ハードウェア側のデバイス入出力IF20に入力する(ステップ608)。
なお、処理決定情報がハードウェア、およびソフトウェアの両者で暗号処理する旨である場合には、ソフトウェア処理ブロックのCPU10にてペイロードの分割を行い、それぞれ、閾値以下のフィールド長のペイロードについては、暗号化ブロック50(ハードウェアで処理)で暗号化処理され、閾値以上のフィールド長のペイロードについては、暗号化ブロック14(ソフトウェアで処理)で暗号化処理されるように構成される。
【0036】
ここで、ソフトウェアにおける暗号処理過程をステップ604〜ステップ606にて説明する。また、ハードウェアにおける暗号処理過程をステップ610〜ステップ616にて説明する。
特に、マックヘッダの処理過程については、ステップ610〜ステップ612にて説明し、ペイロードの処理過程については、ステップ614〜ステップ616にて説明する。
【0037】
まず、ソフトウェア処理ブロックのCPU10は、暗号化ブロック14で第1の閾値、または第2の閾値以降のフィールド長のペイロードについて暗号化を行い(ステップ604)、暗号化されたペイロードをデバイス入出力IF20に入力する。
該暗号化されたペイロードは、デバイス入出力IF20、プロトコル処理ブロック30、および暗号化/非暗号化フィールド分類手段40を介して、暗号データ用RAM60に格納される(ステップ606)。
【0038】
ソフトウェア処理ブロックのCPU10は、ステップ608において暗号化対象フィールド(ペイロード)の入力が終了したか否かを判断する(ステップ610)。
ペイロードの入力が終了した場合(ステップ610;Y)、続いてマックヘッダの入力を行う(ステップ610;Y)。
デバイス入出力IF20は、プロトコル処理ブロック30、および暗復号化/非暗復号化フィールド分類手段40を介して、マックヘッダを転送し、非暗号データ用RAM70に格納する(ステップ612)。
【0039】
ステップ608において、デバイス入出力IF20に入力された暗号化対象フィールド(ペイロード)は、プロトコル処理ブロック30、および暗号化/非暗号化フィールド分類手段40を介して、暗号化ブロック50に転送される。
暗号化ブロック50では、転送されたペイロードに対して、暗号化処理が行われる(ステップ614)。
このとき、暗号化ブロック50は、暗号化に際して、暗号鍵用RAM130に格納された暗号鍵を適宜参照して、ペイロード(暗号化対象フィールド)に対して暗号化処理を行う。
そして、暗号化ブロック50は、暗号化処理が終了したペイロードを暗号データ用RAM60にバスラインを介して転送し、該暗号データ用RAM60に暗号化されたペイロードを格納する(ステップ616)。
【0040】
カウンタ90は、非暗号データ用RAM70、および暗号データ用RAM60とバスラインを介して接続しており、読み出しイネーブル信号を周期的に送信している。
非暗号データ用RAM70、および暗号データ用RAM60に格納された各データのデータカウント、およびフィールド長情報(マックヘッド)を取得する。
カウンタ90は、非暗号データ用RAM70、および暗号データ用RAM60に対となるWUSBパケットが揃ったか否かを検知する(ステップ618)。
そして、対となるWUSBパケットを検知した場合(ステップ618;Y)に、暗号化/非暗号化フィールド読出手段80からマックヘッド、および暗号化されたペイロードがカウンタ90に転送される。
カウンタ90では、マックヘッドと該暗号化されたペイロードを結合して、WUSBパケットを生成する。
カウンタ90では、暗号化されたWUSBパケットを、結合データ用RAM100に格納する(ステップ620)。
【0041】
FCSブロック110は、結合データ用RAM100に格納されたWUSBパケットに対して、FCSフィールドを付加し、バスラインを介して、MAC−PHYIF120に転送する。
そして、MAC−PHYIF120は、FCSブロック110から転送された、該FCSフィールドの付加されたWUSBパケットをWiMedia PHYを介してデータ送信を行う(ステップ622)。
【0042】
図7は、本実施形態におけるソフトウェアによる暗号化処理の過程を示したフローチャートである。
まず、ユーザからのアプリケーションソフトの転送要求などを受け付け、ソフトウェア処理ブロックのCPU10は、マックヘッダ、およびペイロードによって構成されるWUSBパケットを生成する(ステップ700)。
次に、暗号化閾値決定ブロック11は、生成されたパケット中のマックヘッダ、およびペイロードを取得し、それぞれのフィールド長を計測する。
なお、暗号化閾値決定ブロック11は、マックヘッダのフィールド長については、予め設定されている場合があるので、その場合には、ペイロードのフィールド長を計測することとして構成する。
暗号化閾値決定ブロック11は、例えば、CPUクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号処理時間、およびパケット中の暗号化対象フィールド長などを基に第1の閾値、および第2の閾値を算出(または決定)する(ステップ702)。
閾値が算出(または決定)された場合(ステップ702;Y)、暗号化閾値決定ブロック11は、計測したフィールド長を、算出した第1の閾値、および第2の閾値と比較する。
そして、計測されたフィールド長が第1の閾値、および第2の閾値を下回った場合、ハードウェアで暗号化処理を行う旨を示す処理決定情報をペイロードに付与する(ステップ703)。
【0043】
ここで、マックヘッダの処理過程については、ステップ704にて説明し、ペイロードの処理過程については、ステップ706〜ステップ708にて説明する。
【0044】
デバイス入出力IF20は、プロトコル処理ブロック30、および暗号化/非暗号化フィールド分類手段40を介して、マックヘッダを転送し、非暗号データ用RAM70に格納する(ステップ704)。
次に、ソフトウェア処理ブロックのCPU10は、暗号化ブロック14で第1の閾値、または第2の閾値を下回るフィールド長のペイロードの暗号化を行い(ステップ706)、暗号化されたペイロードをデバイス入出力IF20に入力する。
そして、デバイス入出力IF20は、暗号化されたペイロードを、プロトコル処理ブロック30、および暗号化/非暗号化フィールド分類手段40を介して、暗号データ用RAM60に格納する(ステップ708)。
【0045】
カウンタ90は、非暗号データ用RAM70、および暗号データ用RAM60とバスラインを介して接続しており、読み出しイネーブル信号を周期的に送信している。
非暗号データ用RAM70、および暗号データ用RAM60に格納された各データのデータカウント、およびフィールド長情報(マックヘッド)を取得する。
カウンタ90は、非暗号データ用RAM70、および暗号データ用RAM60に対となるWUSBパケットが揃ったか否かを検知する(ステップ710)。
対となるWUSBパケットを検知した場合(ステップ710;Y)に、暗号化/非暗号化フィールド読出手段80からマックヘッド、および暗号化されたペイロードが転送される。
カウンタ90では、マックヘッドと該暗号化されたペイロードを結合して、WUSBパケットを生成し、結合データ用RAM100に格納する(ステップ712)。
【0046】
FCSブロック110は、結合データ用RAM100に格納されたWUSBパケットに対して、FCSフィールドを付加し、バスラインを介して、MAC−PHYIF120に転送する。
そして、MAC−PHYIF120は、FCSブロック110から転送された、該FCSフィールドの付加されたWUSBパケットをWiMedia PHYを介してデータ送信を行う(ステップ714)。
【0047】
(4)復号化処理を行う暗復号化装置1の手順
図8は、本実施形態におけるハードウェアによる復号化処理の過程を示したフローチャートである。
まず、MAC−PHYIF135は、暗号化されたWUSBパケットをWiMedia PHYを介して、他の装置から受信する(ステップ800)。
そして、該暗号化されたWUSBパケットをFCSブロック140へ転送する。
FCSブロック140は、WUSBパケットに付加されたFCSフィールドから、チェックサム符号を計算し、データの誤り検出を行う(ステップ802)。
そして、データの誤りがない場合には(ステップ802;Y)、FCSブロック140は、バスラインを介して接続した復号化判定ブロック150に暗号化されたWUSBパケットを転送する。
なお、データの誤りがある場合には(ステップ802;N)、パケットは廃棄され、データの再送要求を他の装置に対して行う(ステップ804)。
【0048】
復号化判定ブロック150は、転送されたWUSBパケットが、暗号化されているか否かを判定する(ステップ806)。
そして、暗号化されている場合、復号化が必要であるため、復号化判定ブロック150は、WUSBパケットのペイロード(復号化対象フィールド)を、WUSBパケットを第1の復号化/非復号化フィールド分類手段160に転送する(ステップ806;Y)。
復号化閾値決定ブロック170は、転送されたパケット中のマックヘッダ、およびペイロードを取得し、取得したそれぞれのフィールド長を計測する。
そして、復号化閾値決定ブロック170は、第1の閾値、および第2の閾値を算出(または決定)する(ステップ808)。
ここで、第1の閾値、および第2の閾値の算出方法には、例えば、CPUクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号処理時間、およびパケット中の復号化対象フィールド長などの処理速度に係る情報を基に算出する方法がある。
復号化閾値決定ブロック170にて閾値が決定した場合(ステップ808;Y)、該復号化閾値決定ブロック170は、計測されたフィールド長と、算出された第1の閾値、および第2の閾値とを比較する。
【0049】
そして、計測されたフィールド長が第1の閾値を下回るか否かを判断し、下回る場合、ハードウェアで復号化処理を行う旨を示す処理決定情報をペイロードに付与する(ステップ809)。
ハードウェアにて復号化処理を行うため、ペイロードを復号化対象フィールドとし、該復号化対象フィールドを第2の復号化/非復号化フィールド分類手段175にバスラインを介して転送する。
第2の復号化/非復号化フィールド分類手段175は、ペイロードが復号化対象フィールドであるか否かに基づき、復号化対象フィールドを復号化ブロック180に転送する。
ここで、マックヘッダの処理過程については、ステップ810〜ステップ812にて説明し、ペイロードの処理過程については、ステップ814〜ステップ816にて説明する。
【0050】
デバイス入出力IF260は、ペイロード(復号化対象フィールド)の入力が終了したか否かを判断し(ステップ810)、入力が終了した場合に、続いて、マックヘッドの入力が行われる(ステップ810;Y)。
そして、該マックヘッドは、非復号データ用RAM210に転送され、格納される(ステップ812)。
【0051】
復号化ブロック180は、第2の復号化/非復号化フィールド分類手段175から転送されたペイロードの復号化処理を行う(ステップ814)。
このとき、復号化に際して、復号化ブロック180は、復号鍵用RAM190に格納された復号鍵を適宜参照して、復号化対象フィールドに対して復号化処理を行う。
そして、復号化ブロック180は、復号化の処理が終了した復号化対象フィールドを復号データ用RAM210にバスラインを介して転送し、復号化されたペイロードを格納する(ステップ816)。
【0052】
カウンタ230は、非復号データ用RAM200、および復号データ用RAM210とバスラインを介して接続しており、読み出しイネーブル信号を周期的に送信している。
カウンタ230は、非復号データ用RAM200、および復号データ用RAM210に格納された各データのデータカウント、およびフィールド長情報を取得する。
カウンタ230は、非復号データ用RAM200、および復号データ用RAM210にWUSBパケットが揃ったか否かを検知する(ステップ818)。
復号化されたWUSBパケットが揃った場合(ステップ818;Y)に、復号化/非復号化フィールド読出手段220からマックヘッド、および該マックヘッドに対応する暗号化されたペイロードがカウンタ230に転送され、該カウンタ230では、転送されたマックヘッド、およびペイロードを結合して、復号化されたWUSBパケットを生成する。
そして、カウンタ230では、この復号化されたWUSBパケットを、結合データ用RAM240に格納する(ステップ820)。
プロトコル処理ブロック250は、結合データ用RAM240に格納されたWUSBパケットを、デバイス入出力IF260に転送する。
そして、デバイス入出力IF260は、復号化されたWUSBパケットを受信し、ソフトウェア処理ブロックのCPU270に対して入力する(ステップ822)。
【0053】
一方、ステップ806において、WUSBパケットが暗号化されていない場合、復号化判定ブロック150は、該WUSBパケットをデバイス入出力IF260を介してソフトウェア処理ブロックのCPU270に対して入力する(ステップ806;N)。
【0054】
図9は、本実施形態におけるソフトウェア、およびハードウェアによる復号化処理の過程を示したフローチャートである。
まず、MAC−PHYIF135は、WiMedia PHYを介して、暗号化されたWUSBパケットを他の装置から受信する(ステップ900)。
そして、該暗号化されたWUSBパケットをFCSブロック140へ転送する。
FCSブロック140は、WUSBパケットに付加されたFCSフィールドから、チェックサム符号を計算し、データの誤り検出を行う(ステップ902)。
そして、データの誤りがない場合には(ステップ902;Y)、FCSブロック140は、バスラインを介して接続した復号化判定ブロック150に暗号化されたWUSBパケットを転送する。
なお、データの誤りがある場合には(ステップ902;N)、パケットは廃棄され、データの再送要求を他の装置に対して行う(ステップ904)。
【0055】
復号化判定ブロック150は、転送されたWUSBパケットが、暗号化されているか否かを判定する(ステップ906)。
そして、暗号化されている場合(ステップ906;Y)、復号化が必要であるため、復号化判定ブロック150は、ペイロード(復号化対象フィールド)を含むWUSBパケットを、第1の復号化/非復号化フィールド分類手段160に転送する。
復号化閾値決定ブロック170は、転送されたパケット中のマックヘッダ、およびペイロードを取得し、取得したそれぞれのフィールド長を計測する。
そして、復号化閾値決定ブロック170は、第1の閾値、および第2の閾値を算出(または決定)する(ステップ908)。
ここで、第1の閾値、および第2の閾値の算出方法には、例えば、CPUクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号処理時間、およびパケット中の復号化対象フィールド長などの処理速度に係る情報を基にする算出方法がある。
復号化閾値決定ブロック170にて閾値が決定した場合(ステップ908;Y)、該復号化閾値決定ブロック170は、計測されたフィールド長と、算出された第1の閾値、および第2の閾値とを比較する。
【0056】
そして、計測されたフィールド長が第1の閾値、および第2の閾値を上回るか否かを判断し、上回る場合、ハードウェア、およびソフトウェアで復号化処理を行う旨を示す処理決定情報をペイロードに付与する(ステップ909)。
そして、ハードウェア、およびソフトウェアにて復号化処理を行うため、ペイロード(復号化対象フィールド)を第2の復号化/非復号化フィールド分類手段175にバスラインを介して転送する。
そして、復号化閾値決定ブロック170は、処理決定情報をペイロードに付与し、第2の復号化/非復号化フィールド分類手段175にバスラインを介して転送する。
第2の復号化/非復号化フィールド分類手段175は、ペイロードに付与された処理決定情報を認識する。そして、認識の結果、ペイロードの処理決定情報がハードウェアにて処理する旨を示す情報である場合、復号化ブロック180に転送し、処理決定情報がソフトウェアにて処理する旨を示す情報である場合、デバイス入出力IF260に転送する。
なお、処理決定情報がハードウェア、およびソフトウェアの両者で復号処理する旨である場合には、復号化閾値決定ブロック170にてペイロードの分割を行い、それぞれ、閾値以下のフィールド長のペイロードについては、復号化ブロック180(ハードウェアで処理)で復号化処理され、閾値以上のフィールド長のペイロードについては、暗号化ブロック272(ソフトウェアで処理)で復号化処理されるように構成される(ステップ910)。
【0057】
ここで、ソフトウェアにおける復号処理過程をステップ912にて説明する。また、ハードウェアにおける復号処理過程をステップ914〜ステップ920にて説明する。特に、マックヘッダの処理過程については、ステップ914〜ステップ916にて説明し、ペイロードの処理過程については、ステップ918〜ステップ920にて説明する。
【0058】
ソフトウェア処理ブロックのCPU270は、デバイス入出力IF260から第1の閾値、または第2の閾値以降のフィールド長のペイロードについて復号化を行う(ステップ912)。
一方、デバイス入出力IF200は、ペイロード(復号化対象フィールド)の入力が終了したか否かを判断し(ステップ914)、入力が終了した場合(ステップ914;Y)、マックヘッドを非復号データ用RAM200に転送し、格納する(ステップ916)。
【0059】
復号化ブロック180は、転送されたペイロード(復号化対象フィールド)の復号化処理を行う(ステップ918)。
このとき、復号化に際して、復号化ブロック180は、復号鍵用RAM190に格納された復号鍵を適宜参照して、ペイロード(復号化対象フィールド)に対して復号化処理を行う。
そして、復号化ブロック180は、復号化処理が終了したペイロード(復号化対象フィールド)を暗号データ用RAM210にバスラインを介して転送して格納する(ステップ920)。
【0060】
カウンタ230は、非復号データ用RAM200、および復号データ用RAM210とバスラインを介して接続しており、読み出しイネーブル信号を周期的に送信している。
カウンタ230は、非復号データ用RAM200、および復号データ用RAM210に格納された各データのデータカウント、およびフィールド長情報を取得する。
カウンタ230は、非復号データ用RAM200、および復号データ用RAM210にWUSBパケットが揃ったか否かを検知する(ステップ922)。
そして、暗号化されたWUSBパケットが揃った場合(ステップ922;Y)に、復号化/非復号化フィールド読出手段220からマックヘッド、および該マックヘッドに対応する暗号化されたペイロードがカウンタ230に転送され、該カウンタ230では、転送されたマックヘッド、およびペイロードを結合して、復号化されたWUSBパケットを生成する。
そして、カウンタ230では、この復号化されたWUSBパケットを、結合データ用RAM240に格納する(ステップ924)。
プロトコル処理ブロック250は、結合データ用RAM240に格納されたWUSBパケットを、デバイス入出力IF260に転送する。
そして、デバイス入出力IF260は、復号化されたWUSBパケットを受信し、ソフトウェア処理ブロックのCPU270に対して入力する。
ソフトウェア処理ブロックのCPU270では、ハードウェアによる復号処理されたペイロード、およびソフトウェアによる復号処理されたペイロードをそれぞれ結合し、該結合されたパケットに、さらにマックヘッダを結合して、WUSBパケットを生成する(ステップ926)。
【0061】
一方、ステップ906において、WUSBパケットが暗号化されていない(復号化しない)場合(ステップ906;N)、復号化判定ブロック150は、該WUSBパケットを復号化しないものとして、デバイス入出力IF260を介してソフトウェア処理ブロックのCPU270に対して入力する(ステップ928)。
【0062】
図10は、本実施形態におけるソフトウェアによる復号化処理の過程を示したフローチャートである。
まず、MAC−PHYIF135は、暗号化されたWUSBパケットをWiMedia PHYを介して、他の装置から受信する(ステップ1000)。
そして、該暗号化されたWUSBパケットをFCSブロック140へ転送する。
FCSブロック140は、WUSBパケットに付加されたFCSフィールドから、チェックサム符号を計算し、データの誤り検出を行う(ステップ1002)。
そして、データの誤りがない場合には(ステップ1002;Y)、FCSブロック140は、バスラインを介して接続した復号化判定ブロック150に暗号化されたWUSBパケットを転送する。
なお、データの誤りがある場合には(ステップ1002;N)、パケットは廃棄され、データの再送要求を他の装置に対して行う(ステップ1004)。
【0063】
復号化判定ブロック150は、転送されたWUSBパケットが、暗号化されているか否かを判定する(ステップ1006)。
そして、暗号化されている場合(ステップ1006;Y)、復号化が必要であるため、復号化判定ブロック150は、WUSBパケットを第1の復号化/非復号化フィールド分類手段160に転送する。
復号化閾値決定ブロック170は、転送されたパケット中のマックヘッダ、およびペイロードを取得し、取得したそれぞれのフィールド長を計測する。
そして、復号化閾値決定ブロック170は、第1の閾値、および第2の閾値を算出(または決定)する(ステップ1008)。
ここで、第1の閾値、および第2の閾値の算出方法には、例えば、CPUクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号処理時間、およびパケット中の復号化対象フィールド長などの処理速度に係る情報を基にする算出する方法がある。
復号化閾値決定ブロック170にて閾値が決定した場合(ステップ1008;Y)、該復号化閾値決定ブロック170は、計測されたフィールド長と、算出された第1の閾値、および第2の閾値とを比較する。
【0064】
計測されたフィールド長が第1の閾値を下回るか否かを判断し、下回る場合、ソフトウェアで復号化処理を行う旨を示す処理決定情報をペイロードに付与する(ステップ1009)。
ソフトウェアにて復号化処理を行うため、ペイロード(復号化対象フィールド)を第2の復号化/非復号化フィールド分類手段175にバスラインを介して転送する。
復号化閾値決定ブロック170は、処理決定情報をペイロードに付与し、第2の復号化/非復号化フィールド分類手段175にバスラインを介して転送する。
第2の復号化/非復号化フィールド分類手段175は、ペイロードに付与された処理決定情報を認識する。そして、認識の結果、ペイロードの処理決定情報がハードウェアにて処理する旨を示す情報である場合、該ペイロードを復号化ブロック180に転送する。
【0065】
ソフトウェア処理ブロックのCPU270は、デバイス入出力IF260から第1の閾値、または第2の閾値を下回るフィールド長のペイロードの復号化を行う(ステップ1009)。
【0066】
以上説明したように、本実施形態では、暗号処理、および復号処理を併用して処理することが可能である。
そして、本実施形態における暗復号処理では、第1の閾値、および第2の閾値を算出し、これら閾値とフィールド長との比較の結果、計測されたフィールド長が第1の閾値を下回る場合、ソフトウェア側にて暗復号化処理を行うように構成され、上回る場合には、ハードウェア側にて処理するように構成されている。
また、第2の閾値を上回る場合には、ソフトウェア、およびハードウェアの両者を用いて暗復号化処理を行うように構成されている。
【0067】
本実施形態では、ハードウェアによる暗復号処理を行う、またはハードウェアとソフトウェアの両者による暗復号処理を行う場合には、暗復号化対象フィールド(ペイロード)を非暗復号化対象フィールド(マックヘッダ)より優先して入力する。
これにより、パケット通信システムにおけるデバイスへの入力順序や、1のパケットの暗復号処理に注目することができ、結果的に、暗復号化における処理速度を向上させることができる。
【0068】
なお、本実施形態では、暗復号化装置1を無線通信システム(WUSB)に接続される装置としたが、本発明の機器、およびアプリケーションはそれに限定されることなく、IEEE802.11無線LANや、他の有線通信システムなどにおいても本発明を実施することが可能である。
また、上記通信方式の変更によって、ヘッダもマックヘッダのみに限定されることなく、種々に設定される。
【0069】
(5)変形例
図2は、本実施形態の変形例における暗号化処理を行う暗復号化装置1の構成を示したブロック図である。
なお、以下に説明する各実施形態の説明では、本実施形態と同様の部分については同一の符号を付し、異なる部分については、異なる符号を付す。そして、同一部分については、適宜その説明を省略することとする。
【0070】
本実施形態の変形例では、暗号化閾値決定ブロック11がハードウェア側に実装されている。
すなわち、本実施形態の変形例におけるソフトウェアは、ソフトウェア処理ブロックのCPU10(マックヘッダ生成ブロック12、ペイロード生成ブロック13、および暗号化ブロック14)によって構成され、本実施形態の変形例におけるハードウェアは、暗号化閾値決定ブロック11、デバイス入出力IF20、プロトコル処理ブロック30、暗号化/非暗号化フィールド分類手段40、暗号化ブロック50、暗号データ用RAM60、非暗号データ用RAM70、暗号化/非暗号化フィールド読出手段80、カウンタ90、結合データ用RAM100、FCSブロック110、MAC−PHYIF120、および暗号鍵用RAM130によって構成されるものとして説明する。
【0071】
本実施形態の変形例では、暗号化閾値決定ブロック11にてソフトウェアで暗号化処理が必要となった場合は、ソフトウェアで暗号化処理を行う対象フィールドのみを抽出し、ハードウェアからソフトウェアに再転送することができる。
【図面の簡単な説明】
【0072】
【図1】本実施形態の暗号化処理を行う暗復号化装置の構成を示したブロック図である。
【図2】本実施形態の変形例における暗号化処理を行う暗復号化装置の構成を示したブロック図である。
【図3】本実施形態の復号化処理を行う暗復号化装置の構成を示したブロック図である。
【図4】復号化閾値決定ブロックで閾値が算出され、該閾値によってフィールド長が判定される判定例を示した図である。
【図5】本実施形態におけるハードウェアによる暗号化処理の過程を示したフローチャートである。
【図6】本実施形態におけるハードウェア、およびソフトウェアによる暗号化処理の過程を示したフローチャートである。
【図7】本実施形態におけるソフトウェアによる暗号化処理の過程を示したフローチャートである。
【図8】本実施形態におけるハードウェアによる復号化処理の過程を示したフローチャートである。
【図9】本実施形態におけるソフトウェア、およびハードウェアによる復号化処理の過程を示したフローチャートである。
【図10】本実施形態におけるソフトウェアによる復号化処理の過程を示したフローチャートである。
【図11】WUSBパケットを示した概念図である。
【符号の説明】
【0073】
1 暗復号化装置
10 ソフトウェア処理ブロックのCPU
11 暗号化閾値決定ブロック
12 マックヘッダ生成ブロック
13 ペイロード生成ブロック
14 暗号化ブロック
20 デバイス入出力IF
30 プロトコル処理ブロック
40 暗号化/非暗号化フィールド分類手段
50 暗号化ブロック
60 暗号データ用RAM
70 非暗号データ用RAM
80 暗号化/非暗号化フィールド読出手段
90 カウンタ
100 結合データ用RAM
110 FCSブロック
120 MAC−PHYIF
130 暗号鍵用RAM
135 MAC−PHYIF
140 FCSブロック
150 復号化判定ブロック
160 第1の復号化/非復号化フィールド分類手段
170 復号化閾値決定ブロック
175 第2の復号化/非復号化フィールド分類手段
180 復号化ブロック
190 復号鍵用RAM
200 非復号データ用RAM
210 復号データ用RAM
220 復号化/非復号化フィールド読出手段
230 カウンタ
240 結合データ用RAM
250 プロトコル処理ブロック
260 デバイス入出力IF
270 ソフトウェア処理ブロックのCPU
271 パケット結合ブロック
272 復号化ブロック

【特許請求の範囲】
【請求項1】
ハードウェアによる暗復号化処理と、ソフトウェアによる暗復号化処理とを併用する暗復号化装置において、
非暗復号化対象フィールドであるヘッダ、および暗復号化対象フィールドであるペイロードから構成されるパケットを受領するパケット受領手段と、
前記パケット受領手段で受領したパケット、またはペイロードのフィールド長を計測するフィールド長計測手段と、
前記フィールド長計測手段で計測したフィールド長に基づいて、ハードウェアによる暗復号化処理を行うか、ソフトウェアによる暗復号化処理を行うか、または、ハードウェアとソフトウェアの両方による暗復号化処理を行うか、を決定する処理決定手段と、を備え、
前記処理決定手段において、ハードウェアによる暗復号化処理を行う、またはハードウェアとソフトウェアの両方による暗復号化処理を行うことを決定した場合、前記ペイロードを前記ヘッダより優先して入力する入力手段と、
を備えたことを特徴とする暗復号化装置。
【請求項2】
前記処理決定手段を、ハードウェア側、またはソフトウェア側に備えることを特徴とする請求項1記載の暗復号化装置。
【請求項3】
第1の閾値、および第2の閾値をユーザから受け付ける閾値受付手段をさらに備え、
前記処理決定手段は、前記フィールド長計測手段で計測したフィールド長と、前記閾値受付手段で受け付けた前記第1の閾値とを比較して、ハードウェアで暗復号化処理を行うか、ソフトウェアで暗復号化処理を行うかを決定し、前記フィールド長計測手段で計測したフィールド長と、前記受付手段で受け付けた前記第2の閾値とを比較して、ハードウェアとソフトウェアの両方で暗復号化処理を行うか否かを決定することを特徴とする請求項1、または請求項2記載の暗復号化装置。
【請求項4】
前記ハードウェアによる暗復号化処理、および前記ソフトウェアによる暗復号化処理における処理速度に基づいて、第1の閾値、および第2の閾値を算出する閾値算出手段をさらに備え、
前記処理決定手段は、前記フィールド長計測手段で計測したフィールド長と、前記閾値算出手段で算出した第1の閾値とを比較して、ハードウェアで暗復号化処理を行うか、ソフトウェアで暗復号化処理を行うかを決定し、前記フィールド長計測手段で計測したフィールド長と、前記閾値算出手段で算出した第2の閾値とを比較して、ハードウェアとソフトウェアの両方で暗復号化処理を行うか否かを決定することを特徴とする請求項1、または請求項2記載の暗復号化装置。
【請求項5】
前記ハードウェアによる暗復号化処理、前記ソフトウェアによる暗復号化処理、または前記ハードウェアとソフトウェアの両方による暗復号化処理によって、前記暗復号化対象フィールドであるペイロードが暗復号化されたペイロードを格納する暗復号データ格納手段と、
前記非暗復号化対象フィールドであるヘッダを格納する非暗復号データ格納手段と、をさらに備えたことを特徴とする請求項1から請求項4のいずれか1項に記載の暗復号化装置。
【請求項6】
前記暗復号データ格納手段に格納された暗復号化されたペイロード、および前記非暗復号データ格納手段に格納されたヘッダから、対となるパケットを検出するパケット検出手段と、をさらに備えたことを特徴とする請求項5記載の暗復号化装置。
【請求項7】
ヘッダ、およびペイロードの格納先のアドレスを設定する格納先設定手段と、をさらに備え、
前記入力手段は、前記格納先設定手段で前記ヘッダより先に前記ペイロードの格納先を設定することにより、前記ペイロードを前記ヘッダより優先して入力することを特徴とする請求項1から請求項6のいずれか1項に記載の暗復号化装置。
【請求項8】
前記処理決定手段をハードウェア側に備え、前記処理決定手段でハードウェアとソフトウェアの両方で暗復号化処理を行う場合、前記暗復号化対象フィールドをソフトウェア側に転送する転送手段をさらに備えたことを特徴とする請求項2記載の暗復号化装置。
【請求項9】
前記パケット受領手段は、外部入出力インタフェースを用いて、パケットを受領することを特徴とする請求項1から請求項8のいずれか1項に記載の暗復号化装置。
【請求項10】
前記処理決定手段は、前記フィールド長計測手段で計測したフィールド長に基づいて、ハードウェアによる復号化処理を行うか、ソフトウェアによる復号化処理を行うか、または、ハードウェアとソフトウェアの両方による復号化処理を行うか、を決定することを特徴とする請求項1から請求項9のいずれか1項に記載の暗復号化装置。
【請求項11】
前記入力手段は、前記ソフトウェアから前記ハードウェアに入力することを特徴とする請求項1から請求項10のいずれか1項に記載の暗復号化装置。
【請求項12】
前記パケット検出手段で検出された、対となるパケットである、ヘッダ、およびペイロードをそれぞれ結合してパケットを生成するパケット生成手段をさらに備えたことを特徴とする請求項6記載の暗復号化装置。
【請求項13】
前記処理決定手段でハードウェアとソフトウェアの両方による暗復号化処理を行うことを決定した場合、ハードウェアによる暗復号化処理されたペイロード、およびソフトウェアによる暗復号化処理されたペイロードをそれぞれ結合するペイロード結合手段をさらに備えたことを特徴とする請求項1から請求項12のいずれか1項に記載の暗復号化装置。
【請求項14】
ハードウェアによる暗復号化処理と、ソフトウェアによる暗復号化処理とを併用する暗復号化装置において、
非暗復号化対象フィールドであるヘッダ、および暗復号化対象フィールドであるペイロードから構成されるパケットを受領するパケット受領機能と、
前記パケット受領機能で受領したパケット、またはペイロードのフィールド長を計測するフィールド長計測機能と、
前記フィールド長計測機能で計測したフィールド長に基づいて、ハードウェアによる暗復号化処理を行うか、ソフトウェアによる暗復号化処理を行うか、または、ハードウェアとソフトウェアの両方による暗復号化処理を行うか、を決定する処理決定機能と、を備え、
前記処理決定機能において、ハードウェアによる暗復号化処理を行う、またはハードウェアとソフトウェアの両方による暗復号化処理を行うことを決定した場合、前記ペイロードを前記ヘッダより優先して入力する入力機能と、
を実行する暗復号化プログラムが格納されたコンピュータで読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2009−135813(P2009−135813A)
【公開日】平成21年6月18日(2009.6.18)
【国際特許分類】
【出願番号】特願2007−311276(P2007−311276)
【出願日】平成19年11月30日(2007.11.30)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】