(57)【要約】【課題】２系統のAES処理を実行する場合において、２系統のAES処理で利用されるラウンド鍵を供給する鍵拡張部を共用する。【解決手段】MIC値算出部４２のAES処理部５１は、データの完全性検査に用いる符号を生成するためにCBCモードのAES処理を実行し、その結果得られたMIC値を合成部４５に供給する。暗号化部４３のAES処理部５２は、ブロックデータを暗号化するためにCTRモードのAES処理を実行し、ブロックデータを暗号化し、合成部４５に供給する。AES処理部５１およびAES処理部５２は、鍵拡張部４４を共用し、鍵拡張部４４から供給されるラウンド鍵に基づいてAES処理を実行する。合成部４５は、MIC値算出部４２から供給されたMIC値と暗号化部４３から供給された暗号化されたブロックデータを合成して出力する。本発明は、無線LANシステムを構成する通信装置に適用できる。【選択図】図５
2008304528.tif 000002
【特許請求の範囲】
【請求項１】
暗号化鍵から所定のブロックデータの長さに対応する複数の拡張鍵を利用して前記ブロックデータを攪拌する攪拌処理を実行し、送信するブロックデータを暗号化しまたは受信した暗号化されたブロックデータを復号する通信装置において、
データの完全性検査に用いる符号を生成するために前記ブロックデータを攪拌する第１の攪拌部と、
ブロックデータを暗号化するためにまたは暗号化されたブロックデータを復号するために前記ブロックデータを攪拌する第２の攪拌部と、
前記第１の攪拌部と前記第２の攪拌部で共用される拡張鍵を、前記第１の攪拌部と前記第２の攪拌部に供給する1個の鍵拡張部と、
暗号化されたブロックデータを送信し、または暗号化されたブロックデータを受信する通信手段と
を備える通信装置。
【請求項２】
前記鍵拡張部は、前記第１の攪拌部と前記第２の攪拌部で攪拌処理が実行されるタイミングに応じて、その攪拌処理で共用される拡張鍵を生成して、前記第１の攪拌部と前記第２の攪拌部に供給する
請求項１に記載の通信装置。
【請求項３】
前記鍵拡張部は、予め生成された前記第１の攪拌部と前記第２の攪拌部で共用されるすべての拡張鍵を保持している
請求項１に記載の通信装置。
【請求項４】
前記第１の攪拌部による攪拌処理は、CBC(Cipher Block Chaining)モードのAES(Advanced Encryption Standard)処理における攪拌処理であり、
前記第２の攪拌部による攪拌処理は、CTR（counter）モードのAES処理における攪拌処理である
請求項１に記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置に関し、２系統のAES処理を実行するに際し、２系統のAES処理で利用する鍵拡張を共用することができるようにした通信装置にする。
【背景技術】
【０００２】
802.11に準拠した無線LANにおける送信処理において実行される暗号化処理では、受信側で行われるデータの完全性検査に利用される符号（MIC（Message Integrity Code）値）を算出するためのAES(Advanced Encryption Standard)処理と、データを暗号化するためのAES処理の２系統のAES処理を行う必要がある。受信処理でも同様に、受信された暗号化データからMIC値を算出するためのAES処理と、暗号化データを復号するためのAES処理の２系統のAES処理を行う必要がある。
【０００３】
送信処理と受信処理におけるMIC値を算出するためのAES処理は、CBC(Cipher Block Chaining)モードのAES処理と呼ばれる。また送信処理におけるデータを暗号化するためのAES処理および受信処理における暗号化データを復号するためのAES処理は、CTR（カウンタ（counter））モードのAES処理と呼ばれる。
【０００４】
CBCモードのAES処理を実行するAES処理部１は、図１に示すように構成され、ブロックデータを攪拌した結果を次のブロックデータにXOR演算によって重ね合わせる処理を行う。CTRモードのAES処理を実行するAES処理部５は、図２に示すように構成され、所定のカウンタの値を攪拌し、その結果を、ブロックデータにXOR演算によって重ね合わせる処理を行う。
【０００５】
図１を参照して、CBCモードのAES処理を実行するAES処理部１について説明する。
【０００６】
鍵拡張部２は、送信側と受信側とで共有する鍵（以下、暗号化鍵と称する）から、ブロックデータの長さに対応する複数の拡張鍵（以下、ラウンド鍵と称する）を、AESドラフトに示されている鍵生成スケジュールに基づいて複数生成する。
【０００７】
攪拌部３は、鍵拡張部２で生成された所定の数のラウンド鍵を用いて、後述する所定の処理（以下、ラウンド処理と称する）を繰り返し行うことによって、ブロックデータを攪拌し、その攪拌の結果得られたブロックデータを出力するとともに、XOR演算部４に供給する。なおラウンド処理の繰り返し回数は、ブロックデータおよび暗号化鍵の長さによって決められており、ブロックデータおよび暗号化鍵の長さが128ビットである場合、ラウンド処理の繰り返し回数は、１０回とされている。
【０００８】
XOR演算部４は、攪拌部３から供給された攪拌されたブロックデータと、そのブロックデータの次に入力されるブロックデータ（攪拌前のブロックデータ）を、XOR演算によって重ね合わせ、攪拌部３に供給する。
【０００９】
次に図２を参照して、CTRモードのAES処理を実行するAES処理部５について説明する。
【００１０】
鍵拡張部６は、AES処理部１の鍵拡張部２と同様に、暗号化鍵から、複数のラウンド鍵を、AESドラフトに示されている鍵生成スケジュールに基づいて複数生成する。
【００１１】
攪拌部７は、AES処理部１の攪拌部３と同様に、鍵拡張部６で生成された所定の数のラウンド鍵を用いてラウンド処理を繰り返し行うことによって、カウンタ８から出力されたカウンタ値を攪拌し、XOR演算部９に供給する。
【００１２】
XOR演算部９は、攪拌部３から供給された攪拌されたカウンタ値と、入力されるブロックデータを、XOR演算によって重ね合わせ、その結果得られたブロックデータを出力する。
【００１３】
次に、図１のAES処理部１の攪拌部３および図２のAES処理部５の攪拌部７の攪拌処理を、図３を参照して説明する。
【００１４】
攪拌処理では、入力されるブロックデータ（この例の場合、128ビット）に対する、暗号化鍵加算処理RO、および１０個のラウンド処理R1乃至R10が、その順番で行われる。
【００１５】
初めに暗号化鍵加算処理R0で、入力されたブロックデータに、鍵拡張部２または６から供給される暗号化鍵K0が加算される。
【００１６】
ラウンド処理R1では、暗号化鍵加算処理R0で暗号化鍵K0が加算されたブロックデータに対して、SubByte変換処理R11、ShiftRow変換処理R12、MixColumn変換処理R13、およびRoundKey加算処理R14が順に行われる。
【００１７】
ラウンド処理R1のSubByte変換処理R11、ShiftRow変換処理R12、およびMixColumn変換処理R13では、暗号化鍵K0が加算されたブロックデータに対して所定の演算が行われて、そのブロックデータが他のブロックデータに変換される。
【００１８】
ラウンド処理R1のRoundKey加算処理R14では、SubByte変換処理等の結果得られたブロックデータに、鍵拡張部２または６から供給される、暗号化鍵K0から生成されたラウンド鍵の１つのラウンド鍵RK1が加算される。
【００１９】
ラウンド処理R2では、ラウンド処理R1でSubByte変換処理等が施されるとともにラウンド鍵RK1が加算されたブロックデータに対して、ラウンド処理R1と同様に、SubByte変換処理R11、ShiftRow変換処理R12、およびMixColumn変換処理R13が順に行われる。
【００２０】
そしてラウンド処理R2のRoundKey加算処理R14では、SubByte変換処理等の結果得られたブロックデータに、鍵拡張部２または６から供給されるラウンド鍵RK2が加算される。
【００２１】
ラウンド処理R3乃至R10では、基本的には、ラウンド処理R1およびR2と同様の処理が施される。すなわち前段のラウンド処理Rが施されたブロックデータに対してSubByte変換処理等が施されるとともに、鍵拡張部２または６から供給されるラウンド処理R3乃至R10に対応するラウンド鍵RK3乃至RK10が加算される。
【００２２】
なおラウンド処理R10では、ラウンド処理R1乃至R9におけるMixColumn変換処理R13が省略されている。
【００２３】
このように攪拌部３または７の攪拌処理では、鍵拡張部２または６から供給されるラウンド鍵RKを用いてラウンド処理を繰り返し行うことによって、例えば128ビット単位のブロックデータが攪拌される。
【００２４】
なお特許文献１には、ラウンド処理における各処理の処理データを所定の実行ブロック長に細分化したAES処理が開示されている。
【００２５】
【特許文献１】特開２００３−１５５２２号公報
【発明の開示】
【発明が解決しようとする課題】
【００２６】
上述したように802.11に準拠した無線LANにおける送信処理または受信処理では、CBCモードのAES処理と、CTRモードのAES処理の２系統のAES処理を行う必要があるので、通信装置は、AES処理部１およびAES処理部５の2個のAES処理部を備える必要がある。
【００２７】
しかしながらこのように２個のAES処理部１およびAES処理部５をそのまま備えることは、近年求められている装置の小型化の妨げになる。
【００２８】
本発明はこのような状況に鑑みてなされたものであり、２系統のAES処理を実行する場合において、２系統のAES処理で利用されるラウンド鍵を供給する鍵拡張部を共用することができるようにするものである。
【課題を解決するための手段】
【００２９】
本発明の通信装置は、暗号化鍵から所定のブロックデータの長さに対応する複数の拡張鍵を利用して前記ブロックデータを攪拌する攪拌処理を実行し、送信するブロックデータを暗号化しまたは受信した暗号化されたブロックデータを復号する通信装置において、データの完全性検査に用いる符号を生成するために前記ブロックデータを攪拌する第１の攪拌部と、ブロックデータを暗号化するためにまたは暗号化されたブロックデータを復号するために前記ブロックデータを攪拌する第２の攪拌部と、前記第１の攪拌部と前記第２の攪拌部で共用される拡張鍵を、前記第１の攪拌部と前記第２の攪拌部に供給する1個の鍵拡張部と、暗号化されたブロックデータを送信し、または暗号化されたブロックデータを受信する通信手段とを備える。
【００３０】
前記鍵拡張部は、前記第１の攪拌部と前記第２の攪拌部で攪拌処理が実行されるタイミングに応じて、その攪拌処理で共用される拡張鍵を生成して、前記第１の攪拌部と前記第２の攪拌部に供給することができる。
【００３１】
前記鍵拡張部は、予め生成された前記第１の攪拌部と前記第２の攪拌部で共用されるすべての拡張鍵を保持しているようにすることもできる。
【００３２】
前記第１の攪拌部による攪拌処理は、CBC(Cipher Block Chaining)モードのAES(Advanced Encryption Standard)処理における攪拌処理であり、前記第２の攪拌部による攪拌処理は、CTR（counter）モードのAES処理における攪拌処理であるようにすることができる。
【発明の効果】
【００３３】
本発明によれば、２系統のAES処理を実行する場合において、２系統のAES処理で利用されるラウンド鍵を供給する鍵拡張部を共用することができる。
【発明を実施するための最良の形態】
【００３４】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３５】
本発明の一側面の通信装置は、
暗号化鍵から所定のブロックデータの長さに対応する複数の拡張鍵を利用して前記ブロックデータを攪拌する攪拌処理を実行し、送信するブロックデータを暗号化しまたは受信した暗号化されたブロックデータを復号する通信装置において、
データの完全性検査に用いる符号を生成するために前記ブロックデータを攪拌する第１の攪拌部（例えば、図５のAES処理部５１、図７のAES処理部８１）と、
ブロックデータを暗号化するためにまたは暗号化されたブロックデータを復号するために前記ブロックデータを攪拌する第２の攪拌部（例えば、図５のAES処理部５２、図７のAES処理部８２）と、
前記第１の攪拌部と前記第２の攪拌部で共用される拡張鍵を、前記第１の攪拌部と前記第２の攪拌部に供給する1個の鍵拡張部（例えば、図５の鍵拡張部４４、図７の鍵拡張部７４）と、
暗号化されたブロックデータを送信し、または暗号化されたブロックデータを受信する通信手段（例えば、図４のPHY回路２１乃至アンテナ２４、図４のアンテナ２５乃至PHY回路２７）と
を備える。
【００３６】
図４は、本発明を適用した通信装置１１の構成例を示している。この通信装置１１は、IEEE802.11に準拠して、他の通信装置と無線ネットワークで接続されており、それらとデータの送受信を行う。
【００３７】
すなわち通信装置１１は、送信処理または受信処理において、CBCモードのAES処理とCTRモードのAES処理の２系統のAES処理を行うが、両者のAES処理では、後述するように同じブロックデータが処理される。
【００３８】
このように２系統のAES処理において同じブロックデータが処理される場合、CBCモードのAES処理とCTRモードのAES処理で利用されるラウンド鍵を共用することができる。そこで、この通信装置１１は、CBCモードのAES処理とCTRモードのAES処理において利用されるラウンド鍵を共用することができるようになされている。
【００３９】
通信装置１１の構成について説明する。
【００４０】
MAC回路２１の暗号化部３１は、上位レイヤ２９から供給されるデータを所定の長さ（この例の場合、128ビット）の単位のブロックに分割し、そのブロックデータに対して、後述するようにCBCモードのAES処理とCTRモードのAES処理の２系統のAES処理を施すことにより、受信側で行われるデータの完全性検査に利用されるMIC値を算出するとともに、ブロックデータを暗号化する。
【００４１】
MAC回路２１は、算出したMIC値と暗号化されたブロックデータを合成して、PHY回路２２に供給する。
【００４２】
PHY回路２２は、MAC回路２１から供給されたMIC値とブロックデータを変調し、RF回路２３に供給する。
【００４３】
RF回路２３は、PHY回路２２から供給された変調信号を高周波の無線信号に変換し、アンテナ２４を介して送出する。
【００４４】
RF回路２６は、アンテナ２５により受信された受信信号をベースバンド信号に変換し、PHY回路２７に供給する。PHY回路２７は、RF回路２６から供給されたベースバンド信号をデジタル信号へ変換し、MAC回路２８に供給する。
【００４５】
MAC回路２８の復号部３２は、PHY回路２７から供給されるデータを、送信側での分割処理と対応するように128ビット単位のブロックに分割し、そのブロックデータに対して、後述するようにCBCモードのAES処理とCTRモードのAES処理の２系統のAES処理を施すことにより、MIC値を算出するとともに、暗号化されたブロックデータを復号する。
【００４６】
復号部３２は、算出したMIC値と、受信されたMIC値を比較し、データの改竄等の有無を判断し、その判断結果に基づいて復号したブロックデータを上位レイヤ２９に供給する。
【００４７】
上位レイヤ２９は、送信するデータを適宜MAC回路２１に供給する。上位レイヤ２９はまた、MAC回路２８から供給されたデータ（すなわち受信データ）に対してアプリケーション上の所定の処理を実行する。
【００４８】
図５は、図４のMAC回路２１の暗号化部３１の構成例を示している。
【００４９】
分割部４１は、上位レイヤ２９から供給されたデータを128ビット単位のブロックデータに分割し、MIC値算出部４２および暗号化部４３のそれぞれに供給する。
【００５０】
MIC値算出部４２は、CBCモードのAES処理を行うAES処理部５１を有している。AES処理部５１は、分割部４１から供給されたブロックデータに対して、鍵拡張部４４から供給されたラウンド鍵を利用してCBCモードのAES処理を施しMIC値を算出し、合成部４５に供給する。なおAES処理部５１は、ラウンド鍵は鍵拡張部４４から供給されるため、図１のAES処理部１の攪拌部３とXOR演算部４から構成されている。
【００５１】
暗号化部４３は、CTRモードのAES処理を行うAES処理部５２を有している。AES処理部５２は、分割部４１から供給されたブロックデータに対して、鍵拡張部４４から供給されたラウンド鍵を利用してCTRモードのAES処理を施し暗号化し、暗号化したブロックデータを合成部４５に供給する。なおAES処理部５２は、ラウンド鍵は鍵拡張部４４から供給されるため、図２のAES処理部５の攪拌部７、カウンタ８、およびXOR演算部９から構成されている。
【００５２】
鍵拡張部４４は、図１のAES処理部１を構成する鍵拡張部２または図２のAES処理部５を構成する鍵拡張部６に相当するものであり、MIC値算出部４２および暗号化部４３で行われるAES処理で利用されるラウンド鍵（いまの例の場合、１０個のラウンド鍵）を、暗号化鍵から生成し、MIC値算出部４２のAES処理部５１および暗号化部４３のAES処理部５２に供給する。
【００５３】
合成部４５は、MIC値算出部４２から供給されたMIC値と、暗号化部４３から供給された暗号化されたブロックデータを合成し、PHY回路２２に供給する。
【００５４】
次に、図３および図６を参照して、暗号化部３１の動作を説明する。
【００５５】
上位レイヤ２９から供給されるデータは、初期ベクトル（Initialization Vector）、ヘッダ（Header）、およびプレーンテキスト（Plain Text）から構成されている。
【００５６】
分割部４１は、上位レイヤ２９から供給されるデータを構成する初期ベクトルを１個のブロックデータD-IV、ヘッダを２個のブロックデータD-H1，D-H2、そしてプレーンテキストデータを、ｎ個のブロックデータD-P1乃至D-Pnにそれぞれ分割し、順に、MIC値算出部４２（のAES処理部５１）に供給する。なおプレーンテキストの最後のブロックデータD-Pnには、必要に応じてパディング（padding）処理が施されている。
【００５７】
MIC値算出部４２（のAES処理部５１）は、分割部４１から供給される初期ベクトルD-IVおよびヘッダD-H1,D-H2、およびプレーンテキストD-P1乃至D-Pnのすべてに対して、CBCモードのAES処理を施す。
【００５８】
具体的には初めに、攪拌処理Ｐ１で、初期ベクトルD-IVが攪拌される（図３）。その処理に利用される暗号化鍵KOおよびラウンド鍵RK1乃至RK10は鍵拡張部４４から供給されるが、ラウンド鍵RK1乃至RK10は、鍵拡張部４４の鍵拡張処理Ｗ１で生成されたものである。
【００５９】
XOR演算処理Ｐ２で、攪拌処理Ｐ１で攪拌された初期ベクトルD-IVと、初期ベクトルD-IVの次のヘッダD-H1が、XOR演算によって重ね合わされる。
【００６０】
次に、攪拌処理Ｐ３で、XOR演算処理Ｐ２の結果得られたブロックデータが攪拌される（図３）。その処理に利用される暗号化鍵KOおよびラウンド鍵RK1乃至RK10は鍵拡張部４４から供給されるが、ラウンド鍵RK1乃至RK10は、鍵拡張部４４の鍵拡張処理Ｗ２で生成されたものである。
【００６１】
XOR演算処理Ｐ４で、攪拌処理Ｐ３で攪拌されたブロックデータと、ヘッダD-H1の次のヘッダD-H2が、XOR演算によって重ね合わされる。
【００６２】
次に、攪拌処理Ｐ５で、XOR演算処理Ｐ４の結果得られたブロックデータが攪拌される（図３）。その処理に利用される暗号化鍵KOおよびラウンド鍵RK1乃至RK10は鍵拡張部４４から供給されるが、ラウンド鍵RK1乃至RK10は、鍵拡張部４４の鍵拡張処理Ｗ３で生成されたものである。
【００６３】
XOR演算処理Ｐ６で、攪拌処理Ｐ５で攪拌されたブロックデータと、ヘッダD-H2の次のプレーンテキストD-P1が、XOR演算によって重ね合わされる。
【００６４】
次に、攪拌処理Ｐ７で、XOR演算処理Ｐ６の結果得られたブロックデータが攪拌される（図３）。その処理に利用される暗号化鍵KOおよびラウンド鍵RK1乃至RK10は鍵拡張部４４から供給されるが、ラウンド鍵RK1乃至RK10は、鍵拡張部４４の鍵拡張処理Ｗ４で生成されたものである。
【００６５】
XOR演算処理Ｐ８で、攪拌処理Ｐ７で攪拌されたブロックデータと、プレーンテキストD-P1の次のプレーンテキストD-P2が、XOR演算によって重ね合わされる。
【００６６】
プレーンテキストD-P3乃至D-Pnに対しても、図６に示す処理Ｐ９乃至Ｐ１４により、初期ベクトルD-IV乃至プレーンテキストD-P2と同様の処理が施され、最終的にMIC値が算出される。
【００６７】
一方暗号化部４３（のAES処理部５２）は、分割部４１から供給されるプレーンテキストD-P1乃至D-Pnに対して、CTRモードのAES処理を施す。
【００６８】
具体的にはカウンタ処理Ｑ１で、所定のカウンタ値を発生する。なお暗号化部４３で発生されるカウンタ値は、128ビットで、下４ビットの値が1乃至10に順にインクリメントされる。
【００６９】
攪拌処理Ｑ２で、カウンタ処理Ｑ１で発生されたカウント値が攪拌される（図３）。その処理に利用される暗号化鍵KOおよびラウンド鍵RK1乃至RK10は鍵拡張部４４から供給されるが、ラウンド鍵RK1乃至RK10は、鍵拡張部４４の鍵拡張処理Ｗ３で生成されたものである。
【００７０】
XOR演算処理Ｑ３で、攪拌処理Ｑ２で攪拌されたカウンタ値と、プレーンテキストD-P1が、XOR演算によって重ね合わされてプレーンテキストD-P1が暗号化され、暗号化されたプレーンテキストED-P1が生成される。
【００７１】
プレーンテキストD-P2乃至D-Pn、およびMIC値に対しても、図６に示す処理Ｑ４乃至処理Ｑ１６により、プレーンテキストD-P1と同様の処理が施されて暗号化され、暗号化されたプレーンテキストED-P2乃至D-Pnおよび暗号化されたMIC値ED-Pmicが生成される。
【００７２】
このようにCBCモードのAES処理とCTRモードのAES処理が同時に行われ、各AES処理で用いる暗号化鍵K0が同じ場合には、同じラウンド鍵RK1乃至RK10を利用することができる。
【００７３】
そこでこの暗号化部３１には、CBCモードのAES処理とCTRモードのAES処理の２系統のAES処理に対して１個の鍵拡張部４４が設けられ、暗号化部３１は、CBCモードのAES処理を行うAES処理部５１とCTRモードのAES処理を行うAES処理部５２が、鍵拡張部４４を共用するように構成されている。
【００７４】
図７は、図４のMAC回路２８の復号部３２の構成例を示している。
【００７５】
分割部７１は、PHY回路２７から供給されたデータを128ビット単位のブロックデータに分割し、MIC値算出部７２および復号部７３のそれぞれに供給する。
【００７６】
分割部７１はまた、PHY回路２７から供給されたデータの最後のブロックデータ（暗号化されたMIC値のブロックデータ）を、比較部７５に供給する。
【００７７】
MIC値算出部７２は、CBCモードのAES処理を行うAES処理部８１を有している。AES処理部８１は、分割部７１から供給されたブロックデータに対して、鍵拡張部７４から供給されたラウンド鍵を利用してCBCモードのAES処理を施してMIC値を算出し、比較部７５に供給する。なおAES処理部８１は、ラウンド鍵は鍵拡張部７４から供給されるため、図１のAES処理部１の攪拌部３とXOR演算部４から構成されている。
【００７８】
復号部７３は、CTRモードのAES処理を行うAES処理部８２を有している。AES処理部８２は、分割部７１から供給された暗号化されたブロックデータに対して、鍵拡張部７４から供給されたラウンド鍵を利用してCTRモードのAES処理を施し復号し、復号したブロックデータを出力制御部７６に供給する。なおAES処理部８２は、ラウンド鍵は鍵拡張部７４から供給されるため、図２のAES処理部５の攪拌部７、カウンタ８、およびXOR演算部９から構成されている。
【００７９】
鍵拡張部７４は、図１のAES処理部１を構成する鍵拡張部２または図２のAES処理部５を構成する鍵拡張部６に相当するものであり、MIC値算出部７２および復号部７３で行われるAES処理で利用されるラウンド鍵（いまの例の場合、１０個のラウンド鍵）を、暗号化鍵から生成し、MIC値算出部７２のAES処理部８１および復号部７３のAES処理部８２に供給する。
【００８０】
比較部７５は、MIC値算出部７２から供給されたMIC値と、分割部７１から供給されたMIC値とが同じであるか否かを判定し、同じであれば、その旨を、出力制御部７６に通知する。
【００８１】
出力制御部７６は、比較部７５からの通知に応じて、復号部７３から供給されたブロックデータを、上位レイヤ２９に供給する。
【００８２】
次に、図３および図８を参照して、復号部３２の動作を説明する。
【００８３】
分割部７１は、PHY回路２７から供給されたデータを、128ビットの初期ベクトルD-IV、ヘッダD-H1，D-H2、暗号化されたプレーンテキストED-P1乃至ED-Pn、および暗号化されたMIC値ED-Pmicにそれぞれ分割し、順に、MIC値算出部７２（のAES処理部８１）に供給する。
【００８４】
MIC値算出部７２（のAES処理部８１）は、分割部７１から供給される初期ベクトルD-IVおよびヘッダD-H1,D-H2、暗号化されたプレーンテキストED-P1乃至ED-Pn、および暗号化されたMIC値ED-Pmicのすべてに対して、CBCモードのAES処理を施す。
【００８５】
具体的には初めに、攪拌処理Ｐ５１で、初期ベクトルD-IVが攪拌される（図３）。その処理に利用される暗号化鍵K0およびラウンド鍵RK1乃至RK10は鍵拡張部７４から供給されるが、ラウンド鍵RK1乃至RK10は鍵拡張部７４の鍵拡張処理Ｗ５１で生成されたものである。なおここで生成されるラウンド鍵は、図６の鍵拡張処理Ｗ１で生成されるものと同じである。
【００８６】
XOR演算処理Ｐ５２で、攪拌処理Ｐ５１で攪拌された初期ベクトルD-IVと、初期ベクトルD-IVの次のヘッダD-H1が、XOR演算によって重ね合わされる。
【００８７】
次に、攪拌処理Ｐ５３で、XOR演算処理Ｐ５２の結果得られたブロックデータが攪拌される（図３）。その処理に利用される暗号化鍵K0およびラウンド鍵RK1乃至RK10は鍵拡張部７４から供給されるが、ラウンド鍵RK1乃至RK10は、鍵拡張部７４の鍵拡張処理Ｗ５２で生成されたものである。なおここで生成されるラウンド鍵は、図６の鍵拡張処理Ｗ２で生成されるものと同じである。
【００８８】
XOR演算処理Ｐ５４で、攪拌処理Ｐ５３で攪拌されたブロックデータと、ヘッダD-H1の次のヘッダD-H2が、XOR演算によって重ね合わされる。
【００８９】
次に、攪拌処理Ｐ５５で、XOR演算処理Ｐ５４の結果得られたブロックデータが攪拌される（図３）。その処理に利用される暗号化鍵K0およびラウンド鍵RK1乃至RK10は鍵拡張部７４から供給されるが、ラウンド鍵RK1乃至RK10は、鍵拡張部７４の鍵拡張処理Ｗ５３で生成されたものである。なおここで生成されるラウンド鍵は、図６の鍵拡張処理Ｗ３で生成されるものと同じである。
【００９０】
XOR演算処理Ｐ５６で、攪拌処理Ｐ５５で攪拌されたブロックデータと、後述するXOR演算処理Ｑ５３で復号された、ヘッダD-H2の次のプレーンテキストD-P1が、XOR演算によって重ね合わされる。
【００９１】
次に、攪拌処理Ｐ５７で、XOR演算処理Ｐ５６の結果得られたブロックデータが攪拌される（図３）。その処理に利用される暗号化鍵K0およびラウンド鍵RK1乃至RK10は鍵拡張部７４から供給されるが、ラウンド鍵RK1乃至RK10は、鍵拡張部７４の鍵拡張処理Ｗ５４で生成されたものである。なおここで生成されるラウンド鍵は、図６の鍵拡張処理Ｗ４で生成されるものと同じである。
【００９２】
XOR演算処理Ｐ５８で、攪拌処理Ｐ５７で攪拌されたブロックデータと、後述するXOR演算処理Ｑ５６で復号された、プレーンテキストD-P1の次のプレーンテキストD-P2が、XOR演算によって重ね合わされる。
【００９３】
同様にして、暗号化されたプレーンテキストED-P3乃至ED-Pnに対して図８に示す処理Ｐ５９乃至Ｐ６４が実行され、最終的に、MIC値が算出される。
【００９４】
一方復号部７３（のAES処理部８２）は、分割部７１から供給される暗号化されたプレーンテキストED-P1乃至ED-Pnに対して、CTRモードのAES処理を施す。
【００９５】
具体的にはカウンタ処理Ｑ５１で、所定のカウンタ値を発生する。なおここで発生されるカウント値は、図６のカウンタ処理Ｑ１で発生されるものと同じである。
【００９６】
攪拌処理Ｑ５２で、カウンタ処理Ｑ５１で発生されたカウント値が攪拌される（図３）。その処理に利用される暗号化鍵K0およびラウンド鍵RK1乃至RK10は鍵拡張部７４から供給されるが、ラウンド鍵RK1乃至RK10は、鍵拡張部７４の鍵拡張処理Ｗ５３で生成されたものである。
【００９７】
XOR演算処理Ｑ５３で、攪拌処理Ｑ５２で攪拌されたカウンタ値と、暗号化されたプレーンテキストED-P1が、XOR演算によって重ね合わされて復号されプレーンテキストD-P1が生成される。
【００９８】
暗号化されたプレーンテキストED-P2乃至ED-Pnに対しては、図８に示す処理Ｑ５４乃至処理Ｑ６３により、暗号化されたプレーンテキストED-P1と同様の処理が施されて復号され、プレーンテキストD-P2乃至D-Pnが生成される。また、処理Ｑ６４乃至処理Ｑ６６により、MIC値算出部７２（のAES処理部８１）で算出されたMIC値が暗号化される。
【００９９】
分割部７１から分割された暗号化されたMIC値ED-Pmicと、MIC値算出部７２で算出され、処理Ｑ６４乃至処理Ｑ６６で暗号化されたMIC値が、比較部７５で比較され、その結果が出力制御部７６に通知される。
【０１００】
このようにCBCモードのAES処理とCTRモードのAES処理が同時に行われ、各AES処理で用いる暗号化鍵が同じ場合には、同じラウンド鍵RK1乃至RK10を利用することができる。
【０１０１】
そこでこの復号部３２には、CBCモードのAES処理とCTRモードのAES処理の２系統のAES処理に対して１個の鍵拡張部７４が設けられ、復号部３２は、CBCモードのAES処理を行うAES処理部８１とCTRモードのAES処理を行うAES処理部８２が、鍵拡張部７４を共用するように構成されている。
【０１０２】
以上のように、２系統のAES処理を実行する場合において、２系統のAES処理で利用されるラウンド鍵を供給する鍵拡張部を共用することができるようにしたので、装置の小型化を図ることができる。特に、制定が予定されている、MIMO（Multiple Input Multiple Output）技術を用いてより高速なデータ伝送を行う802.11n規格では、高速なデータ伝送速度に対応させるために、２系統のAES処理を、時分割処理ではなく、並列に処理されることが予想される。そこでこのように２系統のAES処理を並列に実行する構成を有し、かつ１個の鍵拡張部を共用するようにすれば、小型の装置で高速伝送レート通信を実現することができる。
【０１０３】
なお以上においては、暗号化部３１の鍵拡張部４４または復号部３２の鍵拡張部７４のラウンド鍵の生成タイミングについては言及しなかったが、AES処理部５１およびAES処理部５２、またはAES処理部８１およびAES処理部８２でラウンド処理が実行されるタイミングが合わせて、実行されるラウンド処理で利用されるラウンド鍵を適時生成するようにすることもできる。またラウンド鍵は予め生成されており、鍵拡張部４４または鍵拡張部７４は、それを保持しておくようにすることもできる。そのときラウンド鍵は鍵拡張部４４または鍵拡張部７４が生成してもよいし、外部から供給されるようにすることもできる。
【０１０４】
なお以上において通信装置１１は、送信機能および受信機能の両方を有するものとしたが、送信機能または受信機能のみを有する通信装置についても本発明を適用することができる。
【図面の簡単な説明】
【０１０５】
【図１】従来のCBCモードのAES処理を実行するAES処理部１の構成例を示すブロック図である。
【図２】従来のCTRモードのAES処理を実行するAES処理部５の構成例を示すブロック図である。
【図３】図１および図２の攪拌部３および７の動作を説明する図である。
【図４】本発明を適用した通信装置１１の構成例を示すブロック図である。
【図５】図４のMAC回路２１の暗号化部３１の構成例を示すブロック図である。
【図６】暗号化部３１の動作を説明する図である。
【図７】図４のMAC回路２８の復号部３２の構成例を示すブロック図である。
【図８】復号部３２の動作を説明する図である。
【符号の説明】
【０１０６】
１１  通信装置，  ２１  MAC回路，  ２８  MAC回路，  ３１  暗号化部，  ３２  復号部，  ４１  分割部，  ４２  MIC値算出部，  ４３  暗号化部，  ４４  鍵拡張部，  ４５  合成部，  ５１  AES処理部，  ５２  AES処理部，  ７１  分割部，  ７２  MIC値算出部，  ７３  復号部，  ７４  鍵拡張部，  ７５  比較部，  ７６  出力制御部
【図１】
2008304528.tif 000003
【図２】
2008304528.tif 000004
【図３】
2008304528.tif 000005
【図４】
2008304528.tif 000006
【図５】
2008304528.tif 000007
【図６】
2008304528.tif 000008
【図７】
2008304528.tif 000009
【図８】
2008304528.tif 000010