(57)【特許請求の範囲】
【請求項１】
ハードウェアによる暗復号化処理と、ソフトウェアによる暗復号化処理とを併用する暗復号化装置において、
非暗復号化対象フィールドであるヘッダ、および暗復号化対象フィールドであるペイロードから構成されるパケットを受領するパケット受領手段と、
前記パケット受領手段で受領したパケット、またはペイロードのフィールド長を計測するフィールド長計測手段と、
前記フィールド長計測手段で計測したフィールド長に基づいて、ハードウェアによる暗復号化処理を行うか、ソフトウェアによる暗復号化処理を行うか、または、ハードウェアとソフトウェアの両方による暗復号化処理を行うか、を決定する処理決定手段と、
前記処理決定手段において、ハードウェアとソフトウェアの両方による暗復号化処理を行うことを決定した場合に、前記パケット受領手段で受領した前記パケットのペイロードをソフトウェアによって分割する分割手段と、
前記分割手段が分割したペイロードの一部をソフトウェアによってハードウェアに入力する入力手段と、
前記入力手段により入力された前記分割したペイロードの一部をハードウェアが暗復号化処理し、また、前記分割手段が分割したペイロードの残りのぺイロードをソフトウェアが暗復号化処理し、当該各々暗復号化処理されたペイロードを格納する暗復号データ格納手段と、
前記非暗復号化対象フィールドであるヘッダを格納する非暗復号データ格納手段と、
前記暗復号データ格納手段に格納された暗復号化処理されたペイロード、および前記非暗復号データ格納手段に格納されたヘッダから、対となるパケットを検出するパケット検出手段と、
前記パケット検出手段で検出された、対となるパケットである、ヘッダ、およびペイロードをそれぞれ結合してパケットを生成するパケット生成手段と、
を備え、
前記入力手段は、前記ペイロードを前記ヘッダの格納より優先して入力することを特徴とする暗復号化装置。
【請求項２】
前記処理決定手段を、ハードウェア側、またはソフトウェア側に備えることを特徴とする請求項１記載の暗復号化装置。
【請求項３】
第１の閾値、および第２の閾値をユーザから受け付ける閾値受付手段をさらに備え、
前記処理決定手段は、前記フィールド長計測手段で計測したフィールド長と、前記閾値受付手段で受け付けた前記第１の閾値とを比較して、ハードウェアで暗復号化処理を行うか、ソフトウェアで暗復号化処理を行うかを決定し、前記フィールド長計測手段で計測したフィールド長と、前記閾値受付手段で受け付けた前記第２の閾値とを比較して、ハードウェアとソフトウェアの両方で暗復号化処理を行うか否かを決定することを特徴とする請求項１、または請求項２記載の暗復号化装置。
【請求項４】
前記ハードウェアによる暗復号化処理、および前記ソフトウェアによる暗復号化処理における処理速度に基づいて、第１の閾値、および第２の閾値を算出する閾値算出手段をさらに備え、
前記処理決定手段は、前記フィールド長計測手段で計測したフィールド長と、前記閾値算出手段で算出した第１の閾値とを比較して、ハードウェアで暗復号化処理を行うか、ソフトウェアで暗復号化処理を行うかを決定し、前記フィールド長計測手段で計測したフィールド長と、前記閾値算出手段で算出した第２の閾値とを比較して、ハードウェアとソフトウェアの両方で暗復号化処理を行うか否かを決定することを特徴とする請求項１、または請求項２記載の暗復号化装置。
【請求項５】
ヘッダ、およびペイロードの格納先のアドレスを設定する格納先設定手段と、をさらに備え、
前記入力手段は、前記格納先設定手段で前記ヘッダより先に前記ペイロードの格納先を設定することにより、前記ペイロードを前記ヘッダより優先して入力することを特徴とする請求項１から請求項４のいずれか１項に記載の暗復号化装置。
【請求項６】
前記処理決定手段をハードウェア側に備え、前記暗復号化対象フィールドをソフトウェア側に転送する転送手段をさらに備えたことを特徴とする請求項２記載の暗復号化装置。
【請求項７】
前記パケット受領手段は、外部入出力インタフェースを用いて、パケットを受領することを特徴とする請求項１から請求項６のいずれか１項に記載の暗復号化装置。
【請求項８】
前記処理決定手段は、前記フィールド長計測手段で計測したフィールド長に基づいて、ハードウェアによる復号化処理を行うか、ソフトウェアによる復号化処理を行うか、または、ハードウェアとソフトウェアの両方による復号化処理を行うか、を決定することを特徴とする請求項１から請求項７のいずれか１項に記載の暗復号化装置。
【請求項９】
前記入力手段は、前記ソフトウェアから前記ハードウェアに入力することを特徴とする請求項１から請求項８のいずれか１項に記載の暗復号化装置。
【請求項１０】
ハードウェアによる暗復号化処理されたペイロード、およびソフトウェアによる暗復号化処理されたペイロードをそれぞれ結合するペイロード結合手段をさらに備えたことを特徴とする請求項１から請求９のいずれか１項に記載の暗復号化装置。
【請求項１１】
非暗復号化対象フィールドであるヘッダを格納する非暗復号データ格納手段と、暗復号化対象フィールドであるペイロードを格納する暗復号データ格納手段と、を具備し、ハードウェアによる暗復号化処理と、ソフトウェアによる暗復号化処理とを併用する暗復号化装置において、
非暗復号化対象フィールドであるヘッダ、および暗復号化対象フィールドであるペイロードから構成されるパケットを受領するパケット受領機能と、
前記パケット受領機能で受領したパケット、またはペイロードのフィールド長を計測するフィールド長計測機能と、
前記フィールド長計測機能で計測したフィールド長に基づいて、ハードウェアによる暗復号化処理を行うか、ソフトウェアによる暗復号化処理を行うか、または、ハードウェアとソフトウェアの両方による暗復号化処理を行うか、を決定する処理決定機能と、
前記処理決定機能において、ハードウェアとソフトウェアの両方による暗復号化処理を行うことを決定した場合に、前記パケット受領機能で受領した前記パケットのペイロードをソフトウェアによって分割する分割機能と、
前記分割機能が分割したペイロードの一部をソフトウェアによってハードウェアに入力する入力機能と、
前記入力機能により入力された前記分割したペイロードの一部をハードウェアが暗復号化処理し、また、前記分割機能が分割したペイロードの残りのぺイロードをソフトウェアが暗復号化処理し、当該各々暗復号化処理されたペイロードを前記暗復号データ格納手段に格納する暗復号データ格納機能と、
前記非暗復号化対象フィールドであるヘッダを前記非暗復号データ格納手段に格納する非暗復号データ格納機能と、
前記暗復号データ格納手段に格納された暗復号化処理されたペイロード、および前記非暗復号データ格納手段に格納されたヘッダから、対となるパケットを検出するパケット検出機能と、
前記パケット検出機能で検出された、対となるパケットである、ヘッダ、およびペイロードをそれぞれ結合してパケットを生成するパケット生成機能と、
を実行する暗復号化プログラムが格納されたコンピュータで読み取り可能な記憶媒体であり、さらに、
前記入力機能は、前記非暗復号データ格納機能より優先して前記分割機能が分割したペイロードの一部をハードウェアに入力することを特徴とする暗復号化プログラムが格納されたコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信パケットの暗号化または復号化（以下、暗復号化と呼ぶ）を行う暗復号化装置に関わり、特に暗復号化の処理をハードウェア、およびソフトウェアを用いて処理する暗復号化装置に関する。
【背景技術】
【０００２】
近年、通信、ネットワークなどの分野において、非常に早い速度で技術が発展している。これに伴い、情報や機密が漏洩する可能性も高まり、セキュリティ技術の分野においては、「暗復号化の高速化」がユーザから望まれている。
そして、ユーザからの「暗復号技術の高速化」の要求により、通信パケットの分野において、高速な暗復号処理を可能とした暗復号化装置が登場している。
ここで、通信パケットとは、送信するデータを一端細切れに分割し、該分割されたデータ単位を「パケット」として通信する方式である。
この「パケット」は、ヘッダ、およびペイロードによって構成されており、該ヘッダにはパケット自体を転送するための転送先の情報が含まれ、該ペイロードには転送するアプリケーションソフトなどの情報（ヘッダを除くデータそのもの）が含まれている。
暗復号化装置では、パケットが公衆回線などで漏洩する可能性がある場合には、該パケットを暗号化し、暗号化パケットを用いて装置間で送受信を行う。
そして、他の装置から受信したパケットが暗号化されている場合、この暗号化されているパケットを復号化して、パケットを読取可能な状態にする。
暗復号処理の際、該暗復号化装置は、暗号化するパケット、または転送されてきた復号化するパケットに対して、ヘッダを非暗復号化対象フィールドとし、ペイロードを暗復号化対象フィールドとして入力を受け付ける。
これにより、必要な暗復号化対象フィールドに対してのみ暗復号化処理を行うので、高速な暗復号処理を行うことができる。
【０００３】
そして、最近では、ハードウェア、およびソフトウェアの両者を併用して暗復号化処理を行う暗復号化装置が開発されている。
ハードウェアとソフトウェアの両方で暗復号化処理を行う場合、パケット中の暗復号化対象フィールドの長さによって、そのフィールドの長さが短い場合にはソフトウェアで暗復号処理を行った方が処理速度が早く、該暗復号化対象フィールドの長さが長い場合には、ハードウェアで暗復号処理を行った方が早いという現象が生じる。
この現象は、暗復号処理の過程において、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の処理速度や、ハードウェア（またはデバイス）のバススピードなどの差によって生じるものである。
例えば、下記特許文献１では、ハードウェア、およびソフトウェアを用いて暗復号化処理を行う場合、パケット長が各条件で決定した閾値よりも短い場合はソフトウェアで暗復号処理を行い、閾値よりも長い場合はハードウェアで暗復号処理を行っており、パケット長に応じて、ハードウェアを用いて暗復号処理を行うか、それともソフトウェアを用いて暗復号処理を行うかを決定する技術が開示されている。
例えば、下記特許文献２では、第三者により暗号方式が解読されることを防止するため、装置本体のカバーの開状態を検出した場合に、暗号化または復号化プログラムに記憶された揮発性記憶手段に対するバックアップ電源を遮断する技術が開示されている。
【特許文献１】特開２００３−６９５５５
【特許文献２】特開平７−１４１２６１
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の暗復号化装置では、ソフトウェアで生成したパケット、または転送されてきたパケットに対して、デバイスへの入力順序が効率的でないという問題がある。
また、上記特許文献１では、１のパケットに注目した場合の暗復号処理における効率化や、処理速度向上が達成できないという問題がある。
【０００５】
そこで、本発明では、ハードウェア、およびソフトウェアを用いて暗復号化処理を行う暗復号化装置において、パケット通信システムにおけるデバイスへの入力順序や、１のパケットにおける暗復号処理に注目し、暗復号化処理速度をより向上させた暗復号化装置、または暗復号化プログラムが格納されたコンピュータで読み取り可能な記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１記載の発明では、ハードウェアによる暗復号化処理と、ソフトウェアによる暗復号化処理とを併用する暗復号化装置において、非暗復号化対象フィールドであるヘッダ、および暗復号化対象フィールドであるペイロードから構成されるパケットを受領するパケット受領手段と、前記パケット受領手段で受領したパケット、またはペイロードのフィールド長を計測するフィールド長計測手段と、前記フィールド長計測手段で計測したフィールド長に基づいて、ハードウェアによる暗復号化処理を行うか、ソフトウェアによる暗復号化処理を行うか、または、ハードウェアとソフトウェアの両方による暗復号化処理を行うか、を決定する処理決定手段と、前記処理決定手段において、ハードウェアとソフトウェアの両方による暗復号化処理を行うことを決定した場合に、前記パケット受領手段で受領した前記パケットのペイロードをソフトウェアによって分割する分割手段と、前記分割手段が分割したペイロードの一部をソフトウェアによってハードウェアに入力する入力手段と、前記入力手段により入力された前記分割したペイロードの一部をハードウェアが暗復号化処理し、また、前記分割手段が分割したペイロードの残りのぺイロードをソフトウェアが暗復号化処理し、当該各々暗復号化処理されたペイロードを格納する暗復号データ格納手段と、前記非暗復号化対象フィールドであるヘッダを格納する非暗復号データ格納手段と、前記暗復号データ格納手段に格納された暗復号化処理されたペイロード、および前記非暗復号データ格納手段に格納されたヘッダから、対となるパケットを検出するパケット検出手段と、前記パケット検出手段で検出された、対となるパケットである、ヘッダ、およびペイロードをそれぞれ結合してパケットを生成するパケット生成手段と、を備え、前記入力手段は、前記ペイロードを前記ヘッダの格納より優先して入力することを特徴とする暗復号化装置を提供する。
請求項２記載の発明では、前記処理決定手段を、ハードウェア側、またはソフトウェア側に備えることを特徴とする請求項１記載の暗復号化装置を提供する。
請求項３記載の発明では、第１の閾値、および第２の閾値をユーザから受け付ける閾値受付手段をさらに備え、前記処理決定手段は、前記フィールド長計測手段で計測したフィールド長と、前記閾値受付手段で受け付けた前記第１の閾値とを比較して、ハードウェアで暗復号化処理を行うか、ソフトウェアで暗復号化処理を行うかを決定し、前記フィールド長計測手段で計測したフィールド長と、前記閾値受付手段で受け付けた前記第２の閾値とを比較して、ハードウェアとソフトウェアの両方で暗復号化処理を行うか否かを決定することを特徴とする請求項１、または請求項２記載の暗復号化装置を提供する。
請求項４記載の発明では、前記ハードウェアによる暗復号化処理、および前記ソフトウェアによる暗復号化処理における処理速度に基づいて、第１の閾値、および第２の閾値を算出する閾値算出手段をさらに備え、前記処理決定手段は、前記フィールド長計測手段で計測したフィールド長と、前記閾値算出手段で算出した第１の閾値とを比較して、ハードウェアで暗復号化処理を行うか、ソフトウェアで暗復号化処理を行うかを決定し、前記フィールド長計測手段で計測したフィールド長と、前記閾値算出手段で算出した第２の閾値とを比較して、ハードウェアとソフトウェアの両方で暗復号化処理を行うか否かを決定することを特徴とする請求項１、または請求項２記載の暗復号化装置を提供する。
請求項５記載の発明では、ヘッダ、およびペイロードの格納先のアドレスを設定する格納先設定手段と、をさらに備え、前記入力手段は、前記格納先設定手段で前記ヘッダより先に前記ペイロードの格納先を設定することにより、前記ペイロードを前記ヘッダより優先して入力することを特徴とする請求項１から請求項４のいずれか１項に記載の暗復号化装置を提供する。
請求項６記載の発明では、前記処理決定手段をハードウェア側に備え、前記暗復号化対象フィールドをソフトウェア側に転送する転送手段をさらに備えたことを特徴とする請求項２記載の暗復号化装置を提供する。
請求項７記載の発明では、前記パケット受領手段は、外部入出力インタフェースを用いて、パケットを受領することを特徴とする請求項１から請求項６のいずれか１項に記載の暗復号化装置を提供する。
請求項８記載の発明では、前記処理決定手段は、前記フィールド長計測手段で計測したフィールド長に基づいて、ハードウェアによる復号化処理を行うか、ソフトウェアによる復号化処理を行うか、または、ハードウェアとソフトウェアの両方による復号化処理を行うか、を決定することを特徴とする請求項１から請求項７のいずれか１項に記載の暗復号化装置を提供する。
請求項９記載の発明では、前記入力手段は、前記ソフトウェアから前記ハードウェアに入力することを特徴とする請求項１から請求項８のいずれか１項に記載の暗復号化装置を提供する。
請求項１０記載の発明では、ハードウェアによる暗復号化処理されたペイロード、およびソフトウェアによる暗復号化処理されたペイロードをそれぞれ結合するペイロード結合手段をさらに備えたことを特徴とする請求項１から請求９のいずれか１項に記載の暗復号化装置を提供する。
請求項１１記載の発明では、非暗復号化対象フィールドであるヘッダを格納する非暗復号データ格納手段と、暗復号化対象フィールドであるペイロードを格納する暗復号データ格納手段と、を具備し、ハードウェアによる暗復号化処理と、ソフトウェアによる暗復号化処理とを併用する暗復号化装置において、非暗復号化対象フィールドであるヘッダ、および暗復号化対象フィールドであるペイロードから構成されるパケットを受領するパケット受領機能と、前記パケット受領機能で受領したパケット、またはペイロードのフィールド長を計測するフィールド長計測機能と、前記フィールド長計測機能で計測したフィールド長に基づいて、ハードウェアによる暗復号化処理を行うか、ソフトウェアによる暗復号化処理を行うか、または、ハードウェアとソフトウェアの両方による暗復号化処理を行うか、を決定する処理決定機能と、前記処理決定機能において、ハードウェアとソフトウェアの両方による暗復号化処理を行うことを決定した場合に、前記パケット受領機能で受領した前記パケットのペイロードをソフトウェアによって分割する分割機能と、前記分割機能が分割したペイロードの一部をソフトウェアによってハードウェアに入力する入力機能と、前記入力機能により入力された前記分割したペイロードの一部をハードウェアが暗復号化処理し、また、前記分割機能が分割したペイロードの残りのぺイロードをソフトウェアが暗復号化処理し、当該各々暗復号化処理されたペイロードを前記暗復号データ格納手段に格納する暗復号データ格納機能と、前記非暗復号化対象フィールドであるヘッダを前記非暗復号データ格納手段に格納する非暗復号データ格納機能と、前記暗復号データ格納手段に格納された暗復号化処理されたペイロード、および前記非暗復号データ格納手段に格納されたヘッダから、対となるパケットを検出するパケット検出機能と、前記パケット検出機能で検出された、対となるパケットである、ヘッダ、およびペイロードをそれぞれ結合してパケットを生成するパケット生成機能と、を実行する暗復号化プログラムが格納されたコンピュータで読み取り可能な記憶媒体であり、さらに、前記入力機能は、前記非暗復号データ格納機能より優先して前記分割機能が分割したペイロードの一部をハードウェアに入力することを特徴とする暗復号化プログラムが格納されたコンピュータで読み取り可能な記憶媒体を提供する。
【発明の効果】
【０００７】
本発明によれば、暗復号化処理におけるパケットフィールドの入力順を並び替えるので、暗復号処理の高速化を図ることができ、開始時間を早めて全体の暗復号化処理をより高速にすることができる。
また、ハードウェアとソフトウェアの暗復号化処理をフィールド長により使い分けることで暗復号化処理を高速にすることができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の好適な実施形態について図１から図１１を参照して詳細に説明する。
（１）暗号化処理を行う暗復号化装置１の構成
図１は、本実施形態の暗号化処理を行う暗復号化装置１の構成を示したブロック図である。
暗号化処理を行う暗復号化装置１は、ソフトウェア処理ブロックのＣＰＵ１０、デバイス入出力ＩＦ（Ｉｎｔｅｒｆａｃｅ）２０、プロトコル処理ブロック３０、暗号化／非暗号化フィールド分類手段４０、暗号化ブロック５０、暗号データ用ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６０、非暗号データ用ＲＡＭ７０、暗号化／非暗号化フィールド読出手段８０、カウンタ９０、結合データ用ＲＡＭ１００、ＦＣＳ（Ｆｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ）ブロック１１０、ＭＡＣ−ＰＨＹＩＦ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｐｈｙｓｉｃａｌ  ｌａｙｅｒ  Ｉｎｔｅｒｆａｃｅ）１２０、および暗号鍵用ＲＡＭ１３０から構成されている。
さらに、ソフトウェア処理ブロックのＣＰＵ１０は、暗号化閾値決定ブロック１１、マックヘッダ生成ブロック１２、ペイロード生成ブロック１３、および暗号化ブロック１４から構成されている。
【０００９】
なお、本実施形態の暗号化処理を行うソフトウェアは、ソフトウェア処理ブロックのＣＰＵ１０（暗号化閾値決定ブロック１１、マックヘッダ生成ブロック１２、ペイロード生成ブロック１３、および暗号化ブロック１４）によって構成される。
そして、本実施形態の暗号化処理を行うハードウェアは、デバイス入出力ＩＦ２０、プロトコル処理ブロック３０、暗号化／非復号化フィールド分類手段４０、暗号化ブロック５０、暗号データ用ＲＡＭ６０、非暗号データ用ＲＡＭ７０、暗号化／非暗号化フィールド読出手段８０、カウンタ９０、結合データ用ＲＡＭ１００、ＦＣＳブロック１１０、ＭＡＣ−ＰＨＹＩＦ１２０、および暗号鍵用ＲＡＭ１３０によって構成されるものとして説明する。
【００１０】
図１１は、ＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）パケットを示した概念図である。
ＷＵＳＢパケットは、マックヘッダ（ヘッダに相当する）、およびペイロードによって構成されており、該マックヘッダにはデータを転送するための転送先の情報、該ペイロードには転送するアプリケーションソフトなどの情報（マックヘッダを除くデータそのもの）が含まれている。
そして、ペイロードを暗号化対象フィールドとし、マックヘッダを非暗号化対象フィールドとする。
なお、本実施形態では、図１１に示すように、ペイロードがＷＵＳＢヘッダを含むように構成する（ＷＵＳＢヘッダは、ＷＵＳＢにおける転送先の情報を示す）。
【００１１】
図１に戻り、マックヘッダ生成ブロック１２は、送信先の情報であるマックヘッダを生成する。そして、ペイロード生成ブロック１３には、転送するアプリケーションソフトなどの情報（ヘッダを除くデータそのもの）であるペイロードが生成される。
図４は、暗号化閾値決定ブロック１１で閾値が算出され、該閾値によってフィールド長を判定する判定例を示した図である。
まず暗号化閾値決定ブロック１１は、マックヘッダ生成ブロック１２、およびペイロード生成ブロック１３で生成されたパケット中のマックヘッダ、およびペイロードを取得し、それぞれのフィールド長を計測する。
なお、暗号化閾値決定ブロック１１は、マックヘッダのフィールド長については、予め設定されている場合があるので、その場合には、ペイロードのフィールド長を計測することとして構成する。
次に、暗号化閾値決定ブロック１１は、第１の閾値、および第２の閾値を算出する。
ここで、第１の閾値、および第２の閾値の算出方法には、例えば、ＣＰＵクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号化処理時間、パケット中の暗号化対象フィールド長といった処理速度に係る情報を基に算出する方法がある。
そして、暗号化閾値決定ブロック１１は、計測されたフィールド長と、算出された第１の閾値、または第２の閾値とを比較する。
また、本実施形態の構成では、暗号化閾値決定ブロック１１で第１の閾値、および第２の閾値を算出することとしたが、暗号化閾値決定ブロック１１に図示しないレジスタを設け、該レジスタにユーザからの閾値の設定を受け付けるように構成することも可能である。
【００１２】
暗号化閾値決定ブロック１１は、計測されたフィールド長が第１の閾値を下回るか否か、または上回るか否かを判断し、下回る場合には、暗号化ブロック１４（ソフトウェア）にて暗号化処理を行い、上回る場合には、暗号化ブロック５０（ハードウェア）にて暗号化処理を行う旨を示す処理決定情報がペイロードに付与される。
また、計測されたフィールド長が第２の閾値を下回るか否か、または上回るか否かを判断し、上回る場合には、暗号化ブロック１４（ソフトウェア）、および暗号化ブロック５０（ハードウェア）の両者にて暗号化処理を行う旨を示す処理決定情報がペイロードに付与される。
そして、処理決定情報がソフトウェアで処理する旨である場合、暗号化ブロック１４ではペイロードの暗号化処理を行う。
また、処理決定情報がハードウェアで処理する旨である場合、ソフトウェア処理ブロックのＣＰＵ１０は、バスラインを介して、ハードウェア側のデバイス入出力ＩＦ２０に入力する。
ソフトウェア処理ブロックのＣＰＵ１０は、マックヘッダを非暗号対象フィールドとし、ペイロードを暗号化対象フィールドとして、それぞれバスラインを介して、ハードウェア側のデバイス入出力ＩＦ２０に入力する。
このとき、ハードウェア側であるデバイス入出力ＩＦ２０への入力順序は、ペイロードの入力を優先して行い、ペイロードの入力が終了した場合に、マックヘッダの入力を開始する。
また、ソフトウェア処理ブロックのＣＰＵ１０は、ペイロード、およびヘッダの格納先となるアドレスを設定し、ヘッダより先にペイロードの格納先のアドレスを設定する。
【００１３】
デバイス入出力ＩＦ２０は、ブロックのＣＰＵ１０から、ペイロード、およびマックヘッダをバスラインを介して入力を受け付ける。
そして、デバイス入出力ＩＦ２０は、受け付けたマックヘッダ、およびペイロードをバスラインを介してプロトコル処理ブロック３０に転送する。
プロトコル処理ブロック３０では、デバイス入出力ＩＦ２０から転送されたマックヘッダ、およびペイロードのプロトコル（データ伝送方式）に係る所定の処理を行う。
そして、プロトコル処理ブロック３０は、マックヘッダ、およびペイロードを暗号化／非暗号化フィールド分類手段４０に転送する。
【００１４】
暗号化／非暗号化フィールド分類手段４０は、プロトコル処理ブロック３０から転送されたマックヘッダ、およびペイロードに応じて、バスラインを介して接続している暗号化ブロック５０、暗号データ用ＲＡＭ６０、または非暗号データ用ＲＡＭ７０に分類し、ＲＡＭへの格納や転送する処理を行う。
例えば、暗号化／非暗号化フィールド分類手段４０は、プロトコル処理ブロック３０から転送されたデータがマックヘッドである場合、該データを非暗号データとして認識し、非暗号データ用ＲＡＭ７０に転送し、該非暗号データ用ＲＡＭ７０にマックヘッドを格納する。
【００１５】
また、暗号化／非暗号化フィールド分類手段４０は、プロトコル処理ブロック３０から転送されたデータがハードウェアで暗号処理を行う旨の処理決定情報を備えたペイロードである場合、該データを暗号化ブロック１４で暗号化されたペイロードとして認識し、暗号データ用ＲＡＭ６０に転送し、該暗号データ用ＲＡＭ６０に暗号化されたペイロードを格納し、該ペイロードを暗号化ブロック５０に転送する。
【００１６】
暗号化ブロック５０では、暗号化／非暗号化フィールド分類手段４０から転送されたペイロードに対して、暗号化処理が行われる。
暗号化ブロック５０は、暗号化処理に際して、暗号鍵用ＲＡＭ１３０に格納された暗号鍵を適宜参照して、ペイロードに対して暗号化を行う。
そして、暗号化ブロック５０は、暗号化の処理が終了したペイロードを暗号データ用ＲＡＭ６０にバスラインを介して転送し、該暗号データ用ＲＡＭ６０に暗号化されたペイロードを格納する。
【００１７】
カウンタ９０は、非暗号データ用ＲＡＭ７０、および暗号データ用ＲＡＭ６０とバスラインを介して接続しており、読み出しイネーブル信号を周期的に送信している。
そして、カウンタ９０は、非暗号データ用ＲＡＭ７０、および暗号データ用ＲＡＭ６０に格納された各データのデータカウント、およびフィールド長情報を取得し、対となるパケットを検出している。
そして、対となるパケットが検出された場合、カウンタ９０は、暗号化／非暗号化フィールド読出手段８０に対して、要求信号を送信する。
暗号化／非暗号化フィールド読出手段８０は、該要求暗号を受領した場合、暗号データ用ＲＡＭ６０に格納された暗号化されたペイロードを読み出し、該ペイロードに対応するマックヘッドを非暗号データ用ＲＡＭ７０から読み出し、バスラインを介して接続しているカウンタ９０に該ペイロード、および該マックヘッドを転送する。
カウンタ９０では、マックヘッドと該暗号化されたペイロードを結合して、暗号化されたＷＵＳＢパケットを生成する。
そして、カウンタ９０では、生成され、暗号化されたＷＵＳＢパケットを、結合データ用ＲＡＭ１００に格納する。
【００１８】
ＦＣＳブロック１１０は、結合データ用ＲＡＭ１００に格納されたＷＵＳＢパケットに対して、ＦＣＳフィールドを付加する。
図１１に示すように、ＷＵＳＢパケットには、ＦＣＳフィールドが付加されており、該ＦＣＳフィールドには、通信プロトコルにおいてデータの誤り検出を行うため、フレーム内にチェックサム符号が付け加えられている。
これにより、フレームの送受信を行うコンピュータ間では、各々の規定されたアルゴリズムでチェックサム符号を再計算し、データの送受信が正常なものか否かを判断することができる。
【００１９】
図１に戻り、ＦＣＳブロック１１０は、ＦＣＳフィールドの付加されたＷＵＳＢパケットをバスラインを介してＭＡＣ−ＰＨＹＩＦ１２０に転送する。
そして、ＭＡＣ−ＰＨＹＩＦ１２０は、ＦＣＳブロック１１０から転送されたＷＵＳＢパケットをＷｉＭｅｄｉａ  ＰＨＹへ出力し、他の装置とのデータ送信を行う。
【００２０】
（２）復号化処理を行う暗復号化装置１の構成
図３は、本実施形態の復号化処理を行う暗復号化装置１の構成を示したブロック図である。
復号化処理を行う暗復号化装置１は、ＭＡＣ−ＰＨＹＩＦ１３５、ＦＣＳブロック１４０、復号化判定ブロック１５０、第１の復号化／非復号化フィールド分類手段１６０、復号化閾値決定ブロック１７０、第２の復号化／非復号化フィールド分類手段１７５、復号化ブロック１８０、復号鍵用ＲＡＭ１９０、非復号データ用ＲＡＭ２００、復号データ用ＲＡＭ２１０、復号化／非復号化フィールド読出手段２２０、カウンタ２３０、結合データ用ＲＡＭ２４０、プロトコル処理ブロック２５０、デバイス入出力ＩＦ２６０、およびソフトウェア処理ブロックのＣＰＵ２７０から構成されている。
さらに、ソフトウェア処理ブロックのＣＰＵ２７０は、パケット結合ブロック２７１、および復号化ブロック２７２から構成されている。
【００２１】
なお、本実施形態の復号化処理を行うソフトウェアは、ソフトウェア処理ブロックのＣＰＵ２７０（パケット結合ブロック２７１、および復号化ブロック２７２）によって構成されている。
そして、本実施形態の復号化処理を行うハードウェアは、ＭＡＣ−ＰＨＹＩＦ１３５、ＦＣＳブロック１４０、復号化判定ブロック１５０、第１の復号化／非復号化フィールド分類手段１６０、復号化閾値決定ブロック１７０、第２の復号化／非復号化フィールド分類手段１７５、復号化ブロック１８０、復号鍵用ＲＡＭ１９０、非復号データ用ＲＡＭ２００、復号データ用ＲＡＭ２１０、復号化／非復号化フィールド読出手段２２０、カウンタ２３０、結合データ用ＲＡＭ２４０、プロトコル処理ブロック２５０、デバイス入出力ＩＦ２６０、によって構成されるものとして説明する。
【００２２】
ＭＡＣ−ＰＨＹＩＦ１３５は、暗号化されたＷＵＳＢパケットを他の装置などからＷｉＭｅｄｉａ  ＰＨＹを介して受信し、該暗号化されたＷＵＳＢパケットをＦＣＳブロック１４０へ転送する。
ＦＣＳブロック１４０は、ＷＵＳＢパケットに付加されたＦＣＳフィールドのチェックサム符号を計算し、データの誤り検出を行う。
そして、データの誤りがない場合には、ＦＣＳブロック１４０は、バスラインを介して接続した復号化判定ブロック１５０に、暗号化されたＷＵＳＢパケットを転送する。
【００２３】
復号化判定ブロック１５０は、ＦＣＳブロック１４０から転送されたＷＵＳＢパケットが、暗号化されたパケットであるか否かを判定する。
そして、復号化判定ブロック１５０は、転送されたパケットが暗号化されたパケットである場合には、転送されたパケットを復号化閾値決定ブロック１７０に第１の復号化／非復号化フィールド分類手段１６０を介して転送する。
また、復号化判定ブロック１５０は、転送されたパケットが暗号化されたパケットでない場合には、転送された該パケットを第１の復号化／非復号化フィールド分類手段１６０を介して非復号データ用ＲＡＭ２００に格納させる。
【００２４】
図４は、復号化閾値決定ブロック１７０で閾値が算出され、該閾値によってフィールド長を判定する判定例を示した図である。
まず、復号化閾値決定ブロック１７０は、第１の復号化／非復号化フィールド分類手段１６０から転送されたパケットを取得し、取得したパケットのヘッダ、ペイロードにおけるそれぞれのフィールド長を計測する。
なお、復号化閾値決定ブロック１７０は、マックヘッダのフィールド長については、予め設定されている場合があるので、その場合には、ペイロードのフィールド長を計測することとして構成する。
次に、復号化閾値決定ブロック１７０は、第１の閾値、および第２の閾値を算出する。
この第１の閾値、および第２の閾値の算出方法には、例えば、ＣＰＵクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号処理時間、パケット中の復号化対象フィールド長などの処理速度に係る情報を基にする算出方法がある。
そして、復号化閾値決定ブロック１７０は、該計測されたフィールド長を、算出した第１の閾値、および第２の閾値と比較する。
なお、第２の閾値は、第１の閾値を上回るように設定される。
また、本実施形態の構成では、復号化閾値決定ブロック１７０で第１の閾値、および第２の閾値を算出することとしたが、復号化閾値決定ブロック１７０に図示しないレジスタを設け、該レジスタにユーザからの閾値の設定を受け付けるように構成することも可能である。
【００２５】
復号化閾値決定ブロック１７０は、計測されたフィールド長が第１の閾値を下回るか否か、または上回るか否かを判断し、下回る場合には、復号化ブロック２７２（ソフトウェア）にて復号化処理を行い、上回る場合には、復号化ブロック１８０（ハードウェア）にて復号化処理を行う旨を示す処理決定情報がペイロードに付与される。
また、計測されたフィールド長が第２の閾値を上回るか否かを判断し、上回る場合には、復号化ブロック２７２（ソフトウェア）、および復号化ブロック１８０（ハードウェア）の両者にて暗号化処理を行う旨を示す処理決定情報をペイロードに付与される。
そして、復号化閾値決定ブロック１７０は、処理決定情報をペイロードに付与し、第２の復号化／非復号化フィールド分類手段１７５にバスラインを介して転送する。
第２の復号化／非復号化フィールド分類手段１７５は、ペイロードに付与された処理決定情報を認識する。そして、認識の結果、第２の復号化／非復号化フィールド分類手段１７５は、ペイロードの処理決定情報がハードウェアにて処理する旨を示す情報である場合、復号化ブロック１８０に転送し、処理決定情報がソフトウェアにて処理する旨である場合、デバイス入出力ＩＦ２６０に転送する。
なお、処理決定情報がハードウェア、およびソフトウェアの両者で復号処理する旨である場合には、復号化閾値決定ブロック１７０にてペイロードの分割を行い、それぞれ、復号化ブロック１８０（ハードウェアで処理）、およびデバイス入出力ＩＦ２６０（ソフトウェアで処理）に転送処理を行う。
また、復号化閾値決定ブロック１７０は、マックヘッダを非暗号対象フィールドとし、ペイロードを暗号化対象フィールドとして、それぞれバスラインを介して、復号化ブロック１８０に入力する。
このとき、復号化ブロック１８０への入力順序は、ペイロードの入力を優先して行い、ペイロードの入力が終了した場合に、マックヘッダの入力を開始する。
また、復号化閾値決定ブロック１７０は、ペイロード、およびヘッダの格納先をとなるアドレスを設定し、ヘッダより先にペイロードの格納先のアドレスを設定する。
【００２６】
復号化ブロック１８０は、復号化閾値決定ブロック１７０で転送されたペイロードの復号化処理を行う。
このとき、復号化ブロック１８０は、復号化処理に際して、復号鍵用ＲＡＭ１９０に格納された復号鍵を適宜参照して、ペイロードに対して復号化処理を行う。
そして、復号化ブロック１８０は、復号化処理が終了したペイロードを復号データ用ＲＡＭ２１０にバスラインを介して転送し、該復号データ用ＲＡＭ２１０に復号化されたペイロードを格納させる。
【００２７】
カウンタ２３０は、非復号データ用ＲＡＭ２００、および復号データ用ＲＡＭ２１０とバスラインを介して接続しており、読み出しイネーブル信号を周期的に送信している。
そして、カウンタ２３０は、非復号データ用ＲＡＭ２００、および復号データ用ＲＡＭ２１０に格納された各データのデータカウント、およびフィールド長情報を取得し、対となるパケットを検出している。
そして、対となるパケットが検出された場合、カウンタ２３０は、復号化／非復号化フィールド読出手段２２０に対して、要求信号を送信する。
復号化／非復号化フィールド読出手段２２０は、該要求信号を受領した場合、復号データ用ＲＡＭ２１０に格納された復号化されたペイロードを読み出し、該ペイロードに対応するマックヘッドを非復号データ用ＲＡＭ２００から読み出し、復号化／非復号化フィールド読出手段２２０は、バスラインを介して接続しているカウンタ２３０に該ペイロード、および該マックヘッドを転送する。
カウンタ２３０には、復号化／非復号化フィールド読出手段２２０からマックヘッド、および該マックヘッドに対応する復号化されたペイロードが転送される。
カウンタ２３０では、マックヘッドと該復号化されたペイロードを結合して、ＷＵＳＢパケットを生成する。
そして、カウンタ２３０では、生成したＷＵＳＢパケットを、結合データ用ＲＡＭ２４０に格納する。
【００２８】
プロトコル処理ブロック２５０では、結合データ用ＲＡＭ２４０に格納されたＷＵＳＢパケットを読み出し、プロトコル（通信方式）に係る所定の処理を行う。
そして、プロトコル処理ブロック２５０は、ＷＵＳＢパケットをバスラインを介してデバイス入出力ＩＦ２６０に入力する。
デバイス入出力ＩＦ２６０は、プロトコル処理ブロック２５０から転送されたＷＵＳＢパケット、または第２の復号化／非復号化フィールド分類手段１７５から転送されたペイロード（ソフトウェアにて処理する旨を示す処理決定情報を含む）を受信する。
そして、デバイス入出力ＩＦ２６０は、第２の復号化／非復号化フィールド分類手段１７５から転送されたペイロードに復号化ブロック２７２にて復号化処理を行う。
そして、パケット結合ブロック２７１は、復号化ブロック２７２で復号化処理されたペイロードと、マックヘッダとを結合し、復号化されたＷＵＳＢパケットを生成する。
【００２９】
（３）暗号化処理を行う暗復号化装置１の手順
図５は、本実施形態におけるハードウェアによる暗号化処理の過程を示したフローチャートである。
まず、ユーザからのアプリケーションソフトに係るデータの転送要求などを受け付け、ソフトウェア処理ブロックのＣＰＵ１０は、マックヘッダ、およびペイロードによって構成されるＷＵＳＢパケットを生成する（ステップ５００）。
暗号化閾値決定ブロック１１は、生成されたパケット中のマックヘッダ、およびペイロードを取得し、それぞれのフィールド長を計測する。
なお、暗号化閾値決定ブロック１１は、マックヘッダのフィールド長については、予め設定されている場合があるので、その場合には、ペイロードのフィールド長を計測することとして構成する。
ここで、暗号化閾値決定ブロック１１は、例えば、ＣＰＵクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号処理時間、パケット中の暗号化対象フィールド長などの処理速度に係る情報を基に第１の閾値、および第２の閾値を算出する（ステップ５０２）。
暗号化閾値決定ブロック１１において第１の閾値、および第２の閾値が算出された場合（ステップ５０２；Ｙ）、暗号化閾値決定ブロック１１は、計測したフィールド長を、算出した第１の閾値、および第２の閾値と比較する。
暗号化閾値決定ブロック１１は、計測されたフィールド長が第１の閾値を上回り、第２の閾値を下回った場合、ハードウェアで暗号化処理を行う旨を示す処理決定情報をペイロードに付与する（ステップ５０３）。
ソフトウェア処理ブロックのＣＰＵ１０は、ペイロード（暗号化対象フィールド）をハードウェア側のデバイス入出力ＩＦ２０に入力する（ステップ５０４）。
ここで、マックヘッダの処理過程については、ステップ５０６〜ステップ５０８にて説明し、ペイロードの処理過程については、ステップ５１０〜ステップ５１２にて説明する。
【００３０】
ソフトウェア処理ブロックのＣＰＵ１０は、ステップ５０４において暗号化対象フィールド（ペイロード）の入力が終了したか否かを判断する（ステップ５０６）。
ペイロードの入力が終了した場合（ステップ５０６；Ｙ）、続いてマックヘッダの入力を行う。
デバイス入出力ＩＦ２０は、プロトコル処理ブロック３０、および暗復号化／非暗復号化フィールド分類手段４０を介して、マックヘッダを転送し、非暗号データ用ＲＡＭ７０に格納する（ステップ５０８）。
【００３１】
ステップ５０４において、デバイス入出力ＩＦ２０に入力された暗号化対象フィールド（ペイロード）は、プロトコル処理ブロック３０、および暗復号化／非暗復号化フィールド分類手段４０を介して、暗号化ブロック５０に転送される。
暗号化ブロック５０では、転送されたペイロードに対して、暗号化処理が行われる（ステップ５１０）。
このとき、暗号化ブロック５０は、暗号化に際して、暗号鍵用ＲＡＭ１３０に格納された暗号鍵を適宜参照して、ペイロード（暗号化対象フィールド）に対して暗号化処理を行う。
そして、暗号化ブロック５０は、暗号化処理が終了したペイロードを暗号データ用ＲＡＭ６０にバスラインを介して転送し、格納する（ステップ５１２）。
【００３２】
カウンタ９０は、非暗号データ用ＲＡＭ７０、および暗号データ用ＲＡＭ６０とバスラインを介して接続しており、読み出しイネーブル信号を周期的に送信している。
そして、非暗号データ用ＲＡＭ７０、および暗号データ用ＲＡＭ６０に格納された各データのデータカウント、およびフィールド長情報を取得する。
これにより、カウンタ９０は、非暗号データ用ＲＡＭ７０、および暗号データ用ＲＡＭ６０にＷＵＳＢパケットが揃ったか否かを検知する（ステップ５１４）。
そして、検知の結果、ＷＵＳＢパケットが揃った場合（ステップ５１４；Ｙ）、該検知に基づき、暗号化／非暗号化フィールド読出手段８０は、マックヘッド、およびペイロードを読み出し、カウンタ９０に転送する。
そして、カウンタ９０では、転送されたマックヘッド、およびペイロードを結合し、暗号化されたＷＵＳＢパケットを生成し、結合データ用ＲＡＭ１００に格納する（ステップ５１６）。
【００３３】
ＦＣＳブロック１１０は、結合データ用ＲＡＭ１００に格納されたＷＵＳＢパケットに対して、ＦＣＳフィールドを付加し、バスラインを介して、ＭＡＣ−ＰＨＹＩＦ１２０に転送する。
そして、ＭＡＣ−ＰＨＹＩＦ１２０は、ＦＣＳブロック１１０から転送された、該ＦＣＳフィールドの付加されたＷＵＳＢパケットを他の装置へＷｉＭｅｄｉａ  ＰＨＹを介して、データ送信を行う（ステップ５１８）。
【００３４】
なお、ステップ５０４において、ソフトウェア処理ブロックのＣＰＵ１０は、暗号化対象フィールド（ペイロード）の入力が終了したか否かを判断し（ステップ５０６）、入力が終了した場合（ステップ５０６；Ｙ）、マックヘッドをハードウェア側に入力することにしている。
これにより、ステップ５０４において、まずペイロードが先に暗号化されるので、ステップ５１４におけるデータが揃う時間をより早く達成することができ、結果的に、より高速な暗号処理装置とすることができる。
【００３５】
図６は、本実施形態におけるソフトウェア、およびハードウェアによる暗号化処理の過程を示したフローチャートである。
まず、ユーザからのアプリケーションソフトの転送要求などを受け付け、ソフトウェア処理ブロックのＣＰＵ１０は、マックヘッダ、およびペイロードによって構成されるＷＵＳＢパケットを生成する（ステップ６００）。
次に、暗号化閾値決定ブロック１１は、生成されたパケット中のマックヘッダ、およびペイロードを取得し、それぞれのフィールド長を計測する。
暗号化閾値決定ブロック１１は、例えば、ＣＰＵクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号処理時間、およびパケット中の暗号化対象フィールド長などを基に第１の閾値、および第２の閾値を算出（または決定）する（ステップ６０２）。
閾値が算出（または決定）された場合（ステップ６０２；Ｙ）、暗号化閾値決定ブロック１１は、計測したフィールド長を、算出した第１の閾値、および第２の閾値と比較する。
そして、暗号化閾値決定ブロック１１は、計測されたフィールド長が第１の閾値を上回り、第２の閾値を上回った場合、ハードウェア、およびソフトウェアで暗号化処理を行う旨を示す処理決定情報をペイロード付与する（ステップ６０３）。
ソフトウェア処理ブロックのＣＰＵ１０は、ペイロードを暗号化対象フィールドとし、ペイロード、マックヘッドをハードウェア側のデバイス入出力ＩＦ２０に入力する。
そして、ソフトウェア処理ブロックのＣＰＵ１０は、マックヘッダ、およびペイロード（または暗号化されたペイロード）をそれぞれバスラインを介して、ハードウェア側のデバイス入出力ＩＦ２０に入力する（ステップ６０８）。
なお、処理決定情報がハードウェア、およびソフトウェアの両者で暗号処理する旨である場合には、ソフトウェア処理ブロックのＣＰＵ１０にてペイロードの分割を行い、それぞれ、閾値以下のフィールド長のペイロードについては、暗号化ブロック５０（ハードウェアで処理）で暗号化処理され、閾値以上のフィールド長のペイロードについては、暗号化ブロック１４（ソフトウェアで処理）で暗号化処理されるように構成される。
【００３６】
ここで、ソフトウェアにおける暗号処理過程をステップ６０４〜ステップ６０６にて説明する。また、ハードウェアにおける暗号処理過程をステップ６１０〜ステップ６１６にて説明する。
特に、マックヘッダの処理過程については、ステップ６１０〜ステップ６１２にて説明し、ペイロードの処理過程については、ステップ６１４〜ステップ６１６にて説明する。
【００３７】
まず、ソフトウェア処理ブロックのＣＰＵ１０は、暗号化ブロック１４で第１の閾値、または第２の閾値以降のフィールド長のペイロードについて暗号化を行い（ステップ６０４）、暗号化されたペイロードをデバイス入出力ＩＦ２０に入力する。
該暗号化されたペイロードは、デバイス入出力ＩＦ２０、プロトコル処理ブロック３０、および暗号化／非暗号化フィールド分類手段４０を介して、暗号データ用ＲＡＭ６０に格納される（ステップ６０６）。
【００３８】
ソフトウェア処理ブロックのＣＰＵ１０は、ステップ６０８において暗号化対象フィールド（ペイロード）の入力が終了したか否かを判断する（ステップ６１０）。
ペイロードの入力が終了した場合（ステップ６１０；Ｙ）、続いてマックヘッダの入力を行う（ステップ６１０；Ｙ）。
デバイス入出力ＩＦ２０は、プロトコル処理ブロック３０、および暗復号化／非暗復号化フィールド分類手段４０を介して、マックヘッダを転送し、非暗号データ用ＲＡＭ７０に格納する（ステップ６１２）。
【００３９】
ステップ６０８において、デバイス入出力ＩＦ２０に入力された暗号化対象フィールド（ペイロード）は、プロトコル処理ブロック３０、および暗号化／非暗号化フィールド分類手段４０を介して、暗号化ブロック５０に転送される。
暗号化ブロック５０では、転送されたペイロードに対して、暗号化処理が行われる（ステップ６１４）。
このとき、暗号化ブロック５０は、暗号化に際して、暗号鍵用ＲＡＭ１３０に格納された暗号鍵を適宜参照して、ペイロード（暗号化対象フィールド）に対して暗号化処理を行う。
そして、暗号化ブロック５０は、暗号化処理が終了したペイロードを暗号データ用ＲＡＭ６０にバスラインを介して転送し、該暗号データ用ＲＡＭ６０に暗号化されたペイロードを格納する（ステップ６１６）。
【００４０】
カウンタ９０は、非暗号データ用ＲＡＭ７０、および暗号データ用ＲＡＭ６０とバスラインを介して接続しており、読み出しイネーブル信号を周期的に送信している。
非暗号データ用ＲＡＭ７０、および暗号データ用ＲＡＭ６０に格納された各データのデータカウント、およびフィールド長情報（マックヘッド）を取得する。
カウンタ９０は、非暗号データ用ＲＡＭ７０、および暗号データ用ＲＡＭ６０に対となるＷＵＳＢパケットが揃ったか否かを検知する（ステップ６１８）。
そして、対となるＷＵＳＢパケットを検知した場合（ステップ６１８；Ｙ）に、暗号化／非暗号化フィールド読出手段８０からマックヘッド、および暗号化されたペイロードがカウンタ９０に転送される。
カウンタ９０では、マックヘッドと該暗号化されたペイロードを結合して、ＷＵＳＢパケットを生成する。
カウンタ９０では、暗号化されたＷＵＳＢパケットを、結合データ用ＲＡＭ１００に格納する（ステップ６２０）。
【００４１】
ＦＣＳブロック１１０は、結合データ用ＲＡＭ１００に格納されたＷＵＳＢパケットに対して、ＦＣＳフィールドを付加し、バスラインを介して、ＭＡＣ−ＰＨＹＩＦ１２０に転送する。
そして、ＭＡＣ−ＰＨＹＩＦ１２０は、ＦＣＳブロック１１０から転送された、該ＦＣＳフィールドの付加されたＷＵＳＢパケットをＷｉＭｅｄｉａ  ＰＨＹを介してデータ送信を行う（ステップ６２２）。
【００４２】
図７は、本実施形態におけるソフトウェアによる暗号化処理の過程を示したフローチャートである。
まず、ユーザからのアプリケーションソフトの転送要求などを受け付け、ソフトウェア処理ブロックのＣＰＵ１０は、マックヘッダ、およびペイロードによって構成されるＷＵＳＢパケットを生成する（ステップ７００）。
次に、暗号化閾値決定ブロック１１は、生成されたパケット中のマックヘッダ、およびペイロードを取得し、それぞれのフィールド長を計測する。
なお、暗号化閾値決定ブロック１１は、マックヘッダのフィールド長については、予め設定されている場合があるので、その場合には、ペイロードのフィールド長を計測することとして構成する。
暗号化閾値決定ブロック１１は、例えば、ＣＰＵクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号処理時間、およびパケット中の暗号化対象フィールド長などを基に第１の閾値、および第２の閾値を算出（または決定）する（ステップ７０２）。
閾値が算出（または決定）された場合（ステップ７０２；Ｙ）、暗号化閾値決定ブロック１１は、計測したフィールド長を、算出した第１の閾値、および第２の閾値と比較する。
そして、計測されたフィールド長が第１の閾値、および第２の閾値を下回った場合、ハードウェアで暗号化処理を行う旨を示す処理決定情報をペイロードに付与する（ステップ７０３）。
【００４３】
ここで、マックヘッダの処理過程については、ステップ７０４にて説明し、ペイロードの処理過程については、ステップ７０６〜ステップ７０８にて説明する。
【００４４】
デバイス入出力ＩＦ２０は、プロトコル処理ブロック３０、および暗号化／非暗号化フィールド分類手段４０を介して、マックヘッダを転送し、非暗号データ用ＲＡＭ７０に格納する（ステップ７０４）。
次に、ソフトウェア処理ブロックのＣＰＵ１０は、暗号化ブロック１４で第１の閾値、または第２の閾値を下回るフィールド長のペイロードの暗号化を行い（ステップ７０６）、暗号化されたペイロードをデバイス入出力ＩＦ２０に入力する。
そして、デバイス入出力ＩＦ２０は、暗号化されたペイロードを、プロトコル処理ブロック３０、および暗号化／非暗号化フィールド分類手段４０を介して、暗号データ用ＲＡＭ６０に格納する（ステップ７０８）。
【００４５】
カウンタ９０は、非暗号データ用ＲＡＭ７０、および暗号データ用ＲＡＭ６０とバスラインを介して接続しており、読み出しイネーブル信号を周期的に送信している。
非暗号データ用ＲＡＭ７０、および暗号データ用ＲＡＭ６０に格納された各データのデータカウント、およびフィールド長情報（マックヘッド）を取得する。
カウンタ９０は、非暗号データ用ＲＡＭ７０、および暗号データ用ＲＡＭ６０に対となるＷＵＳＢパケットが揃ったか否かを検知する（ステップ７１０）。
対となるＷＵＳＢパケットを検知した場合（ステップ７１０；Ｙ）に、暗号化／非暗号化フィールド読出手段８０からマックヘッド、および暗号化されたペイロードが転送される。
カウンタ９０では、マックヘッドと該暗号化されたペイロードを結合して、ＷＵＳＢパケットを生成し、結合データ用ＲＡＭ１００に格納する（ステップ７１２）。
【００４６】
ＦＣＳブロック１１０は、結合データ用ＲＡＭ１００に格納されたＷＵＳＢパケットに対して、ＦＣＳフィールドを付加し、バスラインを介して、ＭＡＣ−ＰＨＹＩＦ１２０に転送する。
そして、ＭＡＣ−ＰＨＹＩＦ１２０は、ＦＣＳブロック１１０から転送された、該ＦＣＳフィールドの付加されたＷＵＳＢパケットをＷｉＭｅｄｉａ  ＰＨＹを介してデータ送信を行う（ステップ７１４）。
【００４７】
（４）復号化処理を行う暗復号化装置１の手順
図８は、本実施形態におけるハードウェアによる復号化処理の過程を示したフローチャートである。
まず、ＭＡＣ−ＰＨＹＩＦ１３５は、暗号化されたＷＵＳＢパケットをＷｉＭｅｄｉａ  ＰＨＹを介して、他の装置から受信する（ステップ８００）。
そして、該暗号化されたＷＵＳＢパケットをＦＣＳブロック１４０へ転送する。
ＦＣＳブロック１４０は、ＷＵＳＢパケットに付加されたＦＣＳフィールドから、チェックサム符号を計算し、データの誤り検出を行う（ステップ８０２）。
そして、データの誤りがない場合には（ステップ８０２；Ｙ）、ＦＣＳブロック１４０は、バスラインを介して接続した復号化判定ブロック１５０に暗号化されたＷＵＳＢパケットを転送する。
なお、データの誤りがある場合には（ステップ８０２；Ｎ）、パケットは廃棄され、データの再送要求を他の装置に対して行う（ステップ８０４）。
【００４８】
復号化判定ブロック１５０は、転送されたＷＵＳＢパケットが、暗号化されているか否かを判定する（ステップ８０６）。
そして、暗号化されている場合、復号化が必要であるため、復号化判定ブロック１５０は、ＷＵＳＢパケットのペイロード（復号化対象フィールド）を、ＷＵＳＢパケットを第１の復号化／非復号化フィールド分類手段１６０に転送する（ステップ８０６；Ｙ）。
復号化閾値決定ブロック１７０は、転送されたパケット中のマックヘッダ、およびペイロードを取得し、取得したそれぞれのフィールド長を計測する。
そして、復号化閾値決定ブロック１７０は、第１の閾値、および第２の閾値を算出（または決定）する（ステップ８０８）。
ここで、第１の閾値、および第２の閾値の算出方法には、例えば、ＣＰＵクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号処理時間、およびパケット中の復号化対象フィールド長などの処理速度に係る情報を基に算出する方法がある。
復号化閾値決定ブロック１７０にて閾値が決定した場合（ステップ８０８；Ｙ）、該復号化閾値決定ブロック１７０は、計測されたフィールド長と、算出された第１の閾値、および第２の閾値とを比較する。
【００４９】
そして、計測されたフィールド長が第１の閾値を下回るか否かを判断し、下回る場合、ハードウェアで復号化処理を行う旨を示す処理決定情報をペイロードに付与する（ステップ８０９）。
ハードウェアにて復号化処理を行うため、ペイロードを復号化対象フィールドとし、該復号化対象フィールドを第２の復号化／非復号化フィールド分類手段１７５にバスラインを介して転送する。
第２の復号化／非復号化フィールド分類手段１７５は、ペイロードが復号化対象フィールドであるか否かに基づき、復号化対象フィールドを復号化ブロック１８０に転送する。
ここで、マックヘッダの処理過程については、ステップ８１０〜ステップ８１２にて説明し、ペイロードの処理過程については、ステップ８１４〜ステップ８１６にて説明する。
【００５０】
デバイス入出力ＩＦ２６０は、ペイロード（復号化対象フィールド）の入力が終了したか否かを判断し（ステップ８１０）、入力が終了した場合に、続いて、マックヘッドの入力が行われる（ステップ８１０；Ｙ）。
そして、該マックヘッドは、非復号データ用ＲＡＭ２１０に転送され、格納される（ステップ８１２）。
【００５１】
復号化ブロック１８０は、第２の復号化／非復号化フィールド分類手段１７５から転送されたペイロードの復号化処理を行う（ステップ８１４）。
このとき、復号化に際して、復号化ブロック１８０は、復号鍵用ＲＡＭ１９０に格納された復号鍵を適宜参照して、復号化対象フィールドに対して復号化処理を行う。
そして、復号化ブロック１８０は、復号化の処理が終了した復号化対象フィールドを復号データ用ＲＡＭ２１０にバスラインを介して転送し、復号化されたペイロードを格納する（ステップ８１６）。
【００５２】
カウンタ２３０は、非復号データ用ＲＡＭ２００、および復号データ用ＲＡＭ２１０とバスラインを介して接続しており、読み出しイネーブル信号を周期的に送信している。
カウンタ２３０は、非復号データ用ＲＡＭ２００、および復号データ用ＲＡＭ２１０に格納された各データのデータカウント、およびフィールド長情報を取得する。
カウンタ２３０は、非復号データ用ＲＡＭ２００、および復号データ用ＲＡＭ２１０にＷＵＳＢパケットが揃ったか否かを検知する（ステップ８１８）。
復号化されたＷＵＳＢパケットが揃った場合（ステップ８１８；Ｙ）に、復号化／非復号化フィールド読出手段２２０からマックヘッド、および該マックヘッドに対応する暗号化されたペイロードがカウンタ２３０に転送され、該カウンタ２３０では、転送されたマックヘッド、およびペイロードを結合して、復号化されたＷＵＳＢパケットを生成する。
そして、カウンタ２３０では、この復号化されたＷＵＳＢパケットを、結合データ用ＲＡＭ２４０に格納する（ステップ８２０）。
プロトコル処理ブロック２５０は、結合データ用ＲＡＭ２４０に格納されたＷＵＳＢパケットを、デバイス入出力ＩＦ２６０に転送する。
そして、デバイス入出力ＩＦ２６０は、復号化されたＷＵＳＢパケットを受信し、ソフトウェア処理ブロックのＣＰＵ２７０に対して入力する（ステップ８２２）。
【００５３】
一方、ステップ８０６において、ＷＵＳＢパケットが暗号化されていない場合、復号化判定ブロック１５０は、該ＷＵＳＢパケットをデバイス入出力ＩＦ２６０を介してソフトウェア処理ブロックのＣＰＵ２７０に対して入力する（ステップ８０６；Ｎ）。
【００５４】
図９は、本実施形態におけるソフトウェア、およびハードウェアによる復号化処理の過程を示したフローチャートである。
まず、ＭＡＣ−ＰＨＹＩＦ１３５は、ＷｉＭｅｄｉａ  ＰＨＹを介して、暗号化されたＷＵＳＢパケットを他の装置から受信する（ステップ９００）。
そして、該暗号化されたＷＵＳＢパケットをＦＣＳブロック１４０へ転送する。
ＦＣＳブロック１４０は、ＷＵＳＢパケットに付加されたＦＣＳフィールドから、チェックサム符号を計算し、データの誤り検出を行う（ステップ９０２）。
そして、データの誤りがない場合には（ステップ９０２；Ｙ）、ＦＣＳブロック１４０は、バスラインを介して接続した復号化判定ブロック１５０に暗号化されたＷＵＳＢパケットを転送する。
なお、データの誤りがある場合には（ステップ９０２；Ｎ）、パケットは廃棄され、データの再送要求を他の装置に対して行う（ステップ９０４）。
【００５５】
復号化判定ブロック１５０は、転送されたＷＵＳＢパケットが、暗号化されているか否かを判定する（ステップ９０６）。
そして、暗号化されている場合（ステップ９０６；Ｙ）、復号化が必要であるため、復号化判定ブロック１５０は、ペイロード（復号化対象フィールド）を含むＷＵＳＢパケットを、第１の復号化／非復号化フィールド分類手段１６０に転送する。
復号化閾値決定ブロック１７０は、転送されたパケット中のマックヘッダ、およびペイロードを取得し、取得したそれぞれのフィールド長を計測する。
そして、復号化閾値決定ブロック１７０は、第１の閾値、および第２の閾値を算出（または決定）する（ステップ９０８）。
ここで、第１の閾値、および第２の閾値の算出方法には、例えば、ＣＰＵクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号処理時間、およびパケット中の復号化対象フィールド長などの処理速度に係る情報を基にする算出方法がある。
復号化閾値決定ブロック１７０にて閾値が決定した場合（ステップ９０８；Ｙ）、該復号化閾値決定ブロック１７０は、計測されたフィールド長と、算出された第１の閾値、および第２の閾値とを比較する。
【００５６】
そして、計測されたフィールド長が第１の閾値、および第２の閾値を上回るか否かを判断し、上回る場合、ハードウェア、およびソフトウェアで復号化処理を行う旨を示す処理決定情報をペイロードに付与する（ステップ９０９）。
そして、ハードウェア、およびソフトウェアにて復号化処理を行うため、ペイロード（復号化対象フィールド）を第２の復号化／非復号化フィールド分類手段１７５にバスラインを介して転送する。
そして、復号化閾値決定ブロック１７０は、処理決定情報をペイロードに付与し、第２の復号化／非復号化フィールド分類手段１７５にバスラインを介して転送する。
第２の復号化／非復号化フィールド分類手段１７５は、ペイロードに付与された処理決定情報を認識する。そして、認識の結果、ペイロードの処理決定情報がハードウェアにて処理する旨を示す情報である場合、復号化ブロック１８０に転送し、処理決定情報がソフトウェアにて処理する旨を示す情報である場合、デバイス入出力ＩＦ２６０に転送する。
なお、処理決定情報がハードウェア、およびソフトウェアの両者で復号処理する旨である場合には、復号化閾値決定ブロック１７０にてペイロードの分割を行い、それぞれ、閾値以下のフィールド長のペイロードについては、復号化ブロック１８０（ハードウェアで処理）で復号化処理され、閾値以上のフィールド長のペイロードについては、暗号化ブロック２７２（ソフトウェアで処理）で復号化処理されるように構成される（ステップ９１０）。
【００５７】
ここで、ソフトウェアにおける復号処理過程をステップ９１２にて説明する。また、ハードウェアにおける復号処理過程をステップ９１４〜ステップ９２０にて説明する。特に、マックヘッダの処理過程については、ステップ９１４〜ステップ９１６にて説明し、ペイロードの処理過程については、ステップ９１８〜ステップ９２０にて説明する。
【００５８】
ソフトウェア処理ブロックのＣＰＵ２７０は、デバイス入出力ＩＦ２６０から第１の閾値、または第２の閾値以降のフィールド長のペイロードについて復号化を行う（ステップ９１２）。
一方、デバイス入出力ＩＦ２００は、ペイロード（復号化対象フィールド）の入力が終了したか否かを判断し（ステップ９１４）、入力が終了した場合（ステップ９１４；Ｙ）、マックヘッドを非復号データ用ＲＡＭ２００に転送し、格納する（ステップ９１６）。
【００５９】
復号化ブロック１８０は、転送されたペイロード（復号化対象フィールド）の復号化処理を行う（ステップ９１８）。
このとき、復号化に際して、復号化ブロック１８０は、復号鍵用ＲＡＭ１９０に格納された復号鍵を適宜参照して、ペイロード（復号化対象フィールド）に対して復号化処理を行う。
そして、復号化ブロック１８０は、復号化処理が終了したペイロード（復号化対象フィールド）を暗号データ用ＲＡＭ２１０にバスラインを介して転送して格納する（ステップ９２０）。
【００６０】
カウンタ２３０は、非復号データ用ＲＡＭ２００、および復号データ用ＲＡＭ２１０とバスラインを介して接続しており、読み出しイネーブル信号を周期的に送信している。
カウンタ２３０は、非復号データ用ＲＡＭ２００、および復号データ用ＲＡＭ２１０に格納された各データのデータカウント、およびフィールド長情報を取得する。
カウンタ２３０は、非復号データ用ＲＡＭ２００、および復号データ用ＲＡＭ２１０にＷＵＳＢパケットが揃ったか否かを検知する（ステップ９２２）。
そして、暗号化されたＷＵＳＢパケットが揃った場合（ステップ９２２；Ｙ）に、復号化／非復号化フィールド読出手段２２０からマックヘッド、および該マックヘッドに対応する暗号化されたペイロードがカウンタ２３０に転送され、該カウンタ２３０では、転送されたマックヘッド、およびペイロードを結合して、復号化されたＷＵＳＢパケットを生成する。
そして、カウンタ２３０では、この復号化されたＷＵＳＢパケットを、結合データ用ＲＡＭ２４０に格納する（ステップ９２４）。
プロトコル処理ブロック２５０は、結合データ用ＲＡＭ２４０に格納されたＷＵＳＢパケットを、デバイス入出力ＩＦ２６０に転送する。
そして、デバイス入出力ＩＦ２６０は、復号化されたＷＵＳＢパケットを受信し、ソフトウェア処理ブロックのＣＰＵ２７０に対して入力する。
ソフトウェア処理ブロックのＣＰＵ２７０では、ハードウェアによる復号処理されたペイロード、およびソフトウェアによる復号処理されたペイロードをそれぞれ結合し、該結合されたパケットに、さらにマックヘッダを結合して、ＷＵＳＢパケットを生成する（ステップ９２６）。
【００６１】
一方、ステップ９０６において、ＷＵＳＢパケットが暗号化されていない（復号化しない）場合（ステップ９０６；Ｎ）、復号化判定ブロック１５０は、該ＷＵＳＢパケットを復号化しないものとして、デバイス入出力ＩＦ２６０を介してソフトウェア処理ブロックのＣＰＵ２７０に対して入力する（ステップ９２８）。
【００６２】
図１０は、本実施形態におけるソフトウェアによる復号化処理の過程を示したフローチャートである。
まず、ＭＡＣ−ＰＨＹＩＦ１３５は、暗号化されたＷＵＳＢパケットをＷｉＭｅｄｉａ  ＰＨＹを介して、他の装置から受信する（ステップ１０００）。
そして、該暗号化されたＷＵＳＢパケットをＦＣＳブロック１４０へ転送する。
ＦＣＳブロック１４０は、ＷＵＳＢパケットに付加されたＦＣＳフィールドから、チェックサム符号を計算し、データの誤り検出を行う（ステップ１００２）。
そして、データの誤りがない場合には（ステップ１００２；Ｙ）、ＦＣＳブロック１４０は、バスラインを介して接続した復号化判定ブロック１５０に暗号化されたＷＵＳＢパケットを転送する。
なお、データの誤りがある場合には（ステップ１００２；Ｎ）、パケットは廃棄され、データの再送要求を他の装置に対して行う（ステップ１００４）。
【００６３】
復号化判定ブロック１５０は、転送されたＷＵＳＢパケットが、暗号化されているか否かを判定する（ステップ１００６）。
そして、暗号化されている場合（ステップ１００６；Ｙ）、復号化が必要であるため、復号化判定ブロック１５０は、ＷＵＳＢパケットを第１の復号化／非復号化フィールド分類手段１６０に転送する。
復号化閾値決定ブロック１７０は、転送されたパケット中のマックヘッダ、およびペイロードを取得し、取得したそれぞれのフィールド長を計測する。
そして、復号化閾値決定ブロック１７０は、第１の閾値、および第２の閾値を算出（または決定）する（ステップ１００８）。
ここで、第１の閾値、および第２の閾値の算出方法には、例えば、ＣＰＵクロック周波数、デバイスのクロック周波数、デバイスのバスビット幅、転送速度、ハードウェア、ソフトウェアの暗復号処理時間、およびパケット中の復号化対象フィールド長などの処理速度に係る情報を基にする算出する方法がある。
復号化閾値決定ブロック１７０にて閾値が決定した場合（ステップ１００８；Ｙ）、該復号化閾値決定ブロック１７０は、計測されたフィールド長と、算出された第１の閾値、および第２の閾値とを比較する。
【００６４】
計測されたフィールド長が第１の閾値を下回るか否かを判断し、下回る場合、ソフトウェアで復号化処理を行う旨を示す処理決定情報をペイロードに付与する（ステップ１００９）。
ソフトウェアにて復号化処理を行うため、ペイロード（復号化対象フィールド）を第２の復号化／非復号化フィールド分類手段１７５にバスラインを介して転送する。
復号化閾値決定ブロック１７０は、処理決定情報をペイロードに付与し、第２の復号化／非復号化フィールド分類手段１７５にバスラインを介して転送する。
第２の復号化／非復号化フィールド分類手段１７５は、ペイロードに付与された処理決定情報を認識する。そして、認識の結果、ペイロードの処理決定情報がハードウェアにて処理する旨を示す情報である場合、該ペイロードを復号化ブロック１８０に転送する。
【００６５】
ソフトウェア処理ブロックのＣＰＵ２７０は、デバイス入出力ＩＦ２６０から第１の閾値、または第２の閾値を下回るフィールド長のペイロードの復号化を行う（ステップ１００９）。
【００６６】
以上説明したように、本実施形態では、暗号処理、および復号処理を併用して処理することが可能である。
そして、本実施形態における暗復号処理では、第１の閾値、および第２の閾値を算出し、これら閾値とフィールド長との比較の結果、計測されたフィールド長が第１の閾値を下回る場合、ソフトウェア側にて暗復号化処理を行うように構成され、上回る場合には、ハードウェア側にて処理するように構成されている。
また、第２の閾値を上回る場合には、ソフトウェア、およびハードウェアの両者を用いて暗復号化処理を行うように構成されている。
【００６７】
本実施形態では、ハードウェアによる暗復号処理を行う、またはハードウェアとソフトウェアの両者による暗復号処理を行う場合には、暗復号化対象フィールド（ペイロード）を非暗復号化対象フィールド（マックヘッダ）より優先して入力する。
これにより、パケット通信システムにおけるデバイスへの入力順序や、１のパケットの暗復号処理に注目することができ、結果的に、暗復号化における処理速度を向上させることができる。
【００６８】
なお、本実施形態では、暗復号化装置１を無線通信システム（ＷＵＳＢ）に接続される装置としたが、本発明の機器、およびアプリケーションはそれに限定されることなく、ＩＥＥＥ８０２．１１無線ＬＡＮや、他の有線通信システムなどにおいても本発明を実施することが可能である。
また、上記通信方式の変更によって、ヘッダもマックヘッダのみに限定されることなく、種々に設定される。
【００６９】
（５）変形例
図２は、本実施形態の変形例における暗号化処理を行う暗復号化装置１の構成を示したブロック図である。
なお、以下に説明する各実施形態の説明では、本実施形態と同様の部分については同一の符号を付し、異なる部分については、異なる符号を付す。そして、同一部分については、適宜その説明を省略することとする。
【００７０】
本実施形態の変形例では、暗号化閾値決定ブロック１１がハードウェア側に実装されている。
すなわち、本実施形態の変形例におけるソフトウェアは、ソフトウェア処理ブロックのＣＰＵ１０（マックヘッダ生成ブロック１２、ペイロード生成ブロック１３、および暗号化ブロック１４）によって構成され、本実施形態の変形例におけるハードウェアは、暗号化閾値決定ブロック１１、デバイス入出力ＩＦ２０、プロトコル処理ブロック３０、暗号化／非暗号化フィールド分類手段４０、暗号化ブロック５０、暗号データ用ＲＡＭ６０、非暗号データ用ＲＡＭ７０、暗号化／非暗号化フィールド読出手段８０、カウンタ９０、結合データ用ＲＡＭ１００、ＦＣＳブロック１１０、ＭＡＣ−ＰＨＹＩＦ１２０、および暗号鍵用ＲＡＭ１３０によって構成されるものとして説明する。
【００７１】
本実施形態の変形例では、暗号化閾値決定ブロック１１にてソフトウェアで暗号化処理が必要となった場合は、ソフトウェアで暗号化処理を行う対象フィールドのみを抽出し、ハードウェアからソフトウェアに再転送することができる。
【図面の簡単な説明】
【００７２】
【図１】本実施形態の暗号化処理を行う暗復号化装置の構成を示したブロック図である。
【図２】本実施形態の変形例における暗号化処理を行う暗復号化装置の構成を示したブロック図である。
【図３】本実施形態の復号化処理を行う暗復号化装置の構成を示したブロック図である。
【図４】復号化閾値決定ブロックで閾値が算出され、該閾値によってフィールド長が判定される判定例を示した図である。
【図５】本実施形態におけるハードウェアによる暗号化処理の過程を示したフローチャートである。
【図６】本実施形態におけるハードウェア、およびソフトウェアによる暗号化処理の過程を示したフローチャートである。
【図７】本実施形態におけるソフトウェアによる暗号化処理の過程を示したフローチャートである。
【図８】本実施形態におけるハードウェアによる復号化処理の過程を示したフローチャートである。
【図９】本実施形態におけるソフトウェア、およびハードウェアによる復号化処理の過程を示したフローチャートである。
【図１０】本実施形態におけるソフトウェアによる復号化処理の過程を示したフローチャートである。
【図１１】ＷＵＳＢパケットを示した概念図である。
【符号の説明】
【００７３】
１  暗復号化装置
１０  ソフトウェア処理ブロックのＣＰＵ
１１  暗号化閾値決定ブロック
１２  マックヘッダ生成ブロック
１３  ペイロード生成ブロック
１４  暗号化ブロック
２０  デバイス入出力ＩＦ
３０  プロトコル処理ブロック
４０  暗号化／非暗号化フィールド分類手段
５０  暗号化ブロック
６０  暗号データ用ＲＡＭ
７０  非暗号データ用ＲＡＭ
８０  暗号化／非暗号化フィールド読出手段
９０  カウンタ
１００  結合データ用ＲＡＭ
１１０  ＦＣＳブロック
１２０  ＭＡＣ−ＰＨＹＩＦ
１３０  暗号鍵用ＲＡＭ
１３５  ＭＡＣ−ＰＨＹＩＦ
１４０  ＦＣＳブロック
１５０  復号化判定ブロック
１６０  第１の復号化／非復号化フィールド分類手段
１７０  復号化閾値決定ブロック
１７５  第２の復号化／非復号化フィールド分類手段
１８０  復号化ブロック
１９０  復号鍵用ＲＡＭ
２００  非復号データ用ＲＡＭ
２１０  復号データ用ＲＡＭ
２２０  復号化／非復号化フィールド読出手段
２３０  カウンタ
２４０  結合データ用ＲＡＭ
２５０  プロトコル処理ブロック
２６０  デバイス入出力ＩＦ
２７０  ソフトウェア処理ブロックのＣＰＵ
２７１  パケット結合ブロック
２７２  復号化ブロック
【図１】
0005112028.tif 000002
【図２】
0005112028.tif 000003
【図３】
0005112028.tif 000004
【図４】
0005112028.tif 000005
【図５】
0005112028.tif 000006
【図６】
0005112028.tif 000007
【図７】
0005112028.tif 000008
【図８】
0005112028.tif 000009
【図９】
0005112028.tif 000010
【図１０】
0005112028.tif 000011
【図１１】
0005112028.tif 000012