(57)【要約】【課題】パケットの改竄を検出するための演算値の計算をハードウェアでより効率良く行うことができ、転送レートの劣化をより効果的に防止可能な無線通信技術を提供する。【解決手段】送信側の無線通信装置のMIC値記憶部２８は、各宛先アドレスに対応付けてMIC値、シーケンス番号、フラグメント番号及びフラグメント・タグを記憶する。比較回路２７は、送信パケットデコード回路２６から入力された情報と、MIC値記憶部２８に記憶された送信管理情報とを用いて比較を行い、当該比較結果に応じて、MIC値演算回路３０に情報を入力する。MIC値演算回路３０は、入力された情報を用いて、MIC値を計算する。【選択図】図１
2010258864.tif 000002
【特許請求の範囲】
【請求項１】
宛先アドレス、送信元アドレス及びフレームボディを含むパケットを無線ネットワークを介して送信する無線通信装置であって、
前記パケットに対して、改竄の検出を行なうための演算値を、前記宛先アドレス、前記送信元アドレス及び前記フレームボディに基づいて所定の計算方法により計算する演算手段と、
宛先アドレス及び送信元アドレスを用いて前記所定の計算方法により計算された第１演算値を前記宛先アドレス毎に記憶する記憶手段とを備え、
前記演算手段は、同一の宛先アドレスに前記パケットを送信する場合、前記記憶手段に記憶された前記第１演算値と、当該パケットに含まれる前記フレームボディとを用いて、前記所定の計算方法により第２演算値を計算する
ことを特徴とする無線通信装置。
【請求項２】
前記パケットは、シーケンス番号、フラグメント番号及びモア・フラグメントを含み、
前記記憶手段は、当該パケットの次に送信するであろうパケットのシーケンス番号、フラグメント番号及びモア・フラグメントと、前記第１演算値とを前記宛先アドレス毎に記憶する
ことを特徴とする請求項１に記載の無線通信装置。
【請求項３】
前記記憶手段は、フラグメント化されて送信されるパケットのそれぞれについて計算される前記第１演算値を前記宛先アドレス毎に記憶し、
前記演算手段は、同一の宛先アドレスにフラグメント化された前記パケットのうち一部を送信する場合、前記記憶手段に記憶された前記第１演算値と、当該パケットに含まれる前記フレームボディとを用いて、前記第２演算値を計算する
ことを特徴とする請求項２に記載の無線通信装置。
【請求項４】
前記演算手段は、前記パケットに含まれる前記宛先アドレス、前記シーケンス番号、前記フラグメント番号及び前記モア・フラグメントパケットと、当該宛先アドレスについて前記記憶手段に記憶された前記シーケンス番号、前記フラグメント番号及び前記モア・フラグメントとがそれぞれ一致する場合に、当該宛先アドレスについて前記記憶手段に記憶された前記第１演算値と、当該パケットに含まれる前記フレームボディとを用いて、前記第２演算値を計算する
ことを特徴とする請求項２又は３に記載の無線通信装置。
【請求項５】
フラグメントされた前記パケットの最後尾のパケットを送信する場合、前記演算手段が演算した前記第２演算値を当該パケットに付加する付加手段を更に備える
ことを特徴とする請求項２乃至４のいずれか一項に記載の無線通信装置。
【請求項６】
前記演算手段は、前記演算値を計算する演算回路と、前記演算値を計算するプログラムを記憶するプログラム記憶手段と、前記記憶手段の容量が所定値以下である場合、前記プログラム記憶手段に記憶された前記プログラムを実行して、前記演算値を計算する制御手段とを有する
ことを特徴とする請求項１乃至５のいずれか一項に記載の無線通信装置。
【請求項７】
宛先アドレス、送信元アドレス及びフレームボディを含むパケットを無線ネットワークを介して受信する無線通信装置であって、
前記パケットに対して、改竄の検出を行なうための演算値を、前記宛先アドレス、前記送信元アドレス及び前記フレームボディに基づいて所定の計算方法により計算する演算手段と、
宛先アドレス及び送信元アドレスを用いて前記所定の計算方法により計算された第１演算値を前記送信元アドレス毎に記憶する記憶手段とを備え、
前記演算手段は、同一の前記送信元アドレスから前記パケットを受信する場合、前記記憶手段に記憶された前記第１演算値と、当該パケットに含まれる前記フレームボディとを用いて、前記所定の計算方法により第２演算値を計算する
ことを特徴とする無線通信装置。
【請求項８】
前記パケットは、シーケンス番号、フラグメント番号及びモア・フラグメントを含み、
前記記憶手段は、当該パケットの次に受信するであろうパケットのシーケンス番号、フラグメント番号及びモア・フラグメントと、前記第１演算値とを前記送信元アドレス毎に記憶する
ことを特徴とする請求項７に記載の無線通信装置。
【請求項９】
前記記憶手段は、フラグメント化されて受信されるパケットのそれぞれについて計算される前記第１演算値を前記送信元アドレス毎に記憶し、
前記演算手段は、同一の前記送信元アドレスからフラグメント化された前記パケットのうち一部を受信する場合、前記記憶手段に記憶された前記第１演算値と、当該パケットに含まれる前記フレームボディとを用いて、前記第２演算値を計算する
ことを特徴とする請求項８に記載の無線通信装置。
【請求項１０】
前記演算手段は、前記パケットに含まれる前記送信元アドレス、前記シーケンス番号、前記フラグメント番号及び前記モア・フラグメントパケットと、当該送信元アドレスについて前記記憶手段に記憶された前記シーケンス番号、前記フラグメント番号及び前記モア・フラグメントとがそれぞれ一致する場合に、当該送信元アドレスについて前記記憶手段に記憶された前記第１演算値と、当該パケットに含まれる前記フレームボディとを用いて、前記第２演算値を計算する
ことを特徴とする請求項８又は９に記載の無線通信装置。
【請求項１１】
フラグメントされた前記パケットの最後尾のパケットには前記第２演算値が付加されており、
前記最後尾のパケットを受信した場合、当該パケットに対して前記演算手段が演算した前記第２演算値と、当該パケットに付加された前記第２演算値とを比較してその比較結果を出力する比較手段とを更に備える
ことを特徴とする請求項８乃至１０のいずれか一項に記載の無線通信装置。
【請求項１２】
前記記憶手段は、前記第１演算値と、前記パケットの再送回数とを前記送信元アドレス毎に記憶し、
前記再送回数が、再送制限回数に到達した場合、前記送信元アドレスに対して前記記憶手段に記憶された前記第１演算値及び前記再送回数を削除する
ことを特徴とする７乃至１０のいずれか一項に記載の無線通信装置。
【請求項１３】
宛先アドレス、送信元アドレス及びフレームボディを含むパケットを無線ネットワークを介して送信する無線通信装置で実行される無線通信方法であって、
前記無線通信装置は、演算手段と、記憶制御手段とを備え、
前記演算手段が、前記パケットに対して、改竄の検出を行なうための演算値を、前記宛先アドレス、前記送信元アドレス及び前記フレームボディに基づいて所定の計算方法により計算する演算ステップと、
前記記憶制御手段が、宛先アドレス及び送信元アドレスを用いて前記所定の計算方法により計算された第１演算値を前記宛先アドレス毎に記憶手段に記憶させる記憶制御ステップとを含み、
前記演算ステップでは、同一の宛先アドレスに前記パケットを送信する場合、前記記憶手段に記憶された前記第１演算値と、当該パケットに含まれる前記フレームボディとを用いて、前記所定の計算方法により第２演算値を計算する
ことを特徴とする無線通信方法。
【請求項１４】
宛先アドレス、送信元アドレス及びフレームボディを含むパケットを無線ネットワークを介して受信する無線通信装置で実行される無線通信方法であって、
前記無線通信装置は、演算手段と、記憶制御手段とを備え、
前記演算手段が、前記パケットに対して、改竄の検出を行なうための演算値を、前記宛先アドレス、前記送信元アドレス及び前記フレームボディに基づいて所定の計算方法により計算する演算ステップと、
前記記憶制御手段が、宛先アドレス及び送信元アドレスを用いて前記所定の計算方法により計算された第１演算値を前記送信元アドレス毎に記憶する記憶ステップとを含み、
前記演算ステップでは、同一の前記送信元アドレスから前記パケットを受信する場合、前記記憶手段に記憶された前記第１演算値と、当該パケットに含まれる前記フレームボディとを用いて、前記所定の計算方法により第２演算値を計算する
ことを特徴とする無線通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信装置及び無線通信方法に関する。
【背景技術】
【０００２】
IEEE (lnstitute of Electrical and Electronics Engineers、米国電気電子技術者協会) 802.11規格に定められている無線LAN(Local Area Network)のなどの無線通信ネットワークは、今まで以上に需要が高まり、その通信速度もますます高速化している。無線通信ネットワークの需要が高くなると同時にセキュリティ技術の向上が必要になり、IEEE802.11iでは従来のWEP(Wired Equivalent Privacy)暗号方式に代わり、TKIP(Temporal Key Integrity Protocol)暗号方式とCCMP(Counter mode CBC-MAC Protocol暗号方式とが標準化されている。TKIP暗号方式では、暗号化アルゴリズムとしてRC4を用いて、改竄検出方法として、WEP暗号方式からMIC(Message Integrity Check)値の計算と、ICV(Integrity Check Value)値との計算を行うことを定めている。
【０００３】
ここで、IEEE802.11iで決められているMIC値の計算方法を説明する。パケットを暗号化して転送する際に暗号化方式としてTKIPを選択する場合、パケットの送信時はMIC値の計算を行い、計算したMIC値を、送信パケットのフレームボディの後ろのフィールド（MICフィールドという）にセットする。パケットの受信時は、MIC値の計算を行ってこれを記憶しこれと受信したパケット中のMICフィールドの値とを比較してチェックを行なう。これらが一致しない場合は受信パケットを破棄するように定められている。MIC値の計算に用いるデータは、送信元アドレス、宛先アドレス、フレームボディであり、MAC層より上位で生成されるMSDU(MAC Service Data Unit)毎にMIC値の計算が行われる。計算方法はIEEE802.11iで定められている。具体的には、宛先アドレス、送信元アドレス、パディングデータ、フレームボディ、パディングデータの順番に並び替えたデータをブロック単位(32ビット)に分割して、先頭ブロックとMIC鍵とを最初に用いてMIC値を計算する。この計算結果と、並び替えたデータの次のブロックのデータとを用いてMIC値を計算するという処理を繰り返していく。そして最終的に計算されたMIC値を使用する。フラグメント化されたフレーム（フラグメントフレームという）のMIC値を計算する場合は、各フラグメントフレームのMIC値の計算結果を次のフラグメントフレームのMIC値を計算する時に、MIC鍵の代わりに用いる。以上のようにMIC値を計算してこれを用いてチェックを行うことで、無線通信ネットワークでパケットの改竄を防止している。
【０００４】
従来、TKIP暗号方式はWEP暗号方式から比較的容易に置き換えることができることを目的に標準化されたものであり、MIC値の計算はハードウェアではなくて、ソフトウェアで行うことを基本としている。しかし、MIC値の計算をソフトウェアで行う場合、マイクロプロセッサの処理時間が増大してしまい、データ通信レートの劣化が懸念される。データ通信レートの劣化を防止する手段として、MIC値の計算をハードウェアで高速に行うことが考えられる。例えば特許文献１の技術では、MIC値の計算をハードウェアで行い、パケットを再送する場合は、再送する前に計算しておいたMIC値を再利用することで、転送レートの劣化を防止している。また、特許文献２の技術では、フラグメントフレームを受信する場合に、フラグメントフレームを転送する間に他の無線局からのフラグメントフレームを受信しても、その無線局毎にMIC値の計算結果を記憶しておき、無線通信が混在している環境下でもMIC値の計算を正確に行うことができるように工夫されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、MIC値の計算をハードウェアでより効率良く行うことができ、転送レートの劣化をより効果的に防止することができる技術が望まれていた。
【０００６】
本発明は、上記に鑑みてなされたものであって、パケットの改竄を検出するための演算値の計算をハードウェアでより効率良く行うことができ、転送レートの劣化をより効果的に防止可能な無線通信装置及び無線通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、宛先アドレス、送信元アドレス及びフレームボディを含むパケットを無線ネットワークを介して送信する無線通信装置であって、前記パケットに対して、改竄の検出を行なうための演算値を、前記宛先アドレス、前記送信元アドレス及び前記フレームボディに基づいて所定の計算方法により計算する演算手段と、宛先アドレス及び送信元アドレスを用いて前記所定の計算方法により計算された第１演算値を前記宛先アドレス毎に記憶する記憶手段とを備え、前記演算手段は、同一の宛先アドレスに前記パケットを送信する場合、前記記憶手段に記憶された前記第１演算値と、当該パケットに含まれる前記フレームボディとを用いて、前記所定の計算方法により第２演算値を計算することを特徴とする。
【０００８】
また、本発明は、宛先アドレス、送信元アドレス及びフレームボディを含むパケットを無線ネットワークを介して受信する無線通信装置であって、前記パケットに対して、改竄の検出を行なうための演算値を、前記宛先アドレス、前記送信元アドレス及び前記フレームボディに基づいて所定の計算方法により計算する演算手段と、宛先アドレス及び送信元アドレスを用いて前記所定の計算方法により計算された第１演算値を前記送信元アドレス毎に記憶する記憶手段とを備え、前記演算手段は、同一の前記送信元アドレスから前記パケットを受信する場合、前記記憶手段に記憶された前記第１演算値と、当該パケットに含まれる前記フレームボディとを用いて、前記所定の計算方法により第２演算値を計算することを特徴とする。
【０００９】
また、本発明は、宛先アドレス、送信元アドレス及びフレームボディを含むパケットを無線ネットワークを介して送信する無線通信装置で実行される無線通信方法であって、前記無線通信装置は、演算手段と、記憶制御手段とを備え、前記演算手段が、前記パケットに対して、改竄の検出を行なうための演算値を、前記宛先アドレス、前記送信元アドレス及び前記フレームボディに基づいて所定の計算方法により計算する演算ステップと、前記記憶制御手段が、宛先アドレス及び送信元アドレスを用いて前記所定の計算方法により計算された第１演算値を前記宛先アドレス毎に記憶手段に記憶させる記憶制御ステップとを含み、前記演算ステップでは、同一の宛先アドレスに前記パケットを送信する場合、前記記憶手段に記憶された前記第１演算値と、当該パケットに含まれる前記フレームボディとを用いて、前記所定の計算方法により第２演算値を計算することを特徴とする。
【００１０】
また、本発明は、宛先アドレス、送信元アドレス及びフレームボディを含むパケットを無線ネットワークを介して受信する無線通信装置で実行される無線通信方法であって、前記無線通信装置は、演算手段と、記憶制御手段とを備え、前記演算手段が、前記パケットに対して、改竄の検出を行なうための演算値を、前記宛先アドレス、前記送信元アドレス及び前記フレームボディに基づいて所定の計算方法により計算する演算ステップと、前記記憶制御手段が、宛先アドレス及び送信元アドレスを用いて前記所定の計算方法により計算された第１演算値を前記送信元アドレス毎に記憶する記憶ステップとを含み、前記演算ステップでは、同一の前記送信元アドレスから前記パケットを受信する場合、前記記憶手段に記憶された前記第１演算値と、当該パケットに含まれる前記フレームボディとを用いて、前記所定の計算方法により第２演算値を計算することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、パケットの改竄を検出するための演算値の計算をハードウェアでより効率良く行うことができ、転送レートの劣化をより効果的に防止可能になる。
【図面の簡単な説明】
【００１２】
【図１】図１は、一実施の形態にかかる送信側の無線通信装置が備える改竄検出回路のハードウェア構成を例示する図である。
【図２】図２は、MIC値の計算方法を説明するための図である。
【図３】図３は、受信側の無線通信装置が備える改竄検出回路３５のハードウェア構成を例示する図である。
【図４】図４は、送信側の無線通信装置が備える改竄検出回路２５の行う処理の手順を示すフローチャートである。
【図５】図５は、送信側の無線通信装置が備える改竄検出回路２５の行う処理の手順の一部を示すフローチャートである。
【図６】図６は、受信側の無線通信装置が備える改竄検出回路３５の行う処理の手順を示すフローチャートである。
【図７】図７は、受信側の無線通信装置が備える改竄検出回路３５の行う処理の手順の一部を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、この発明にかかる無線通信装置及び無線通信方法の最良な実施の形態を詳細に説明する。
【００１４】
（１）構成
本実施の形態では、無線ＬＡＮのネットワークのTKIP暗号化方式で暗号化したパケットを送信側の無線通信装置から受信側の無線通信装置に転送する場合について説明する。尚、以降、便宜上、送信側の無線通信装置及び受信側の無線通信装置を各々区別する必要がない場合には、単に、無線通信装置と記載する。ここで、本実施の形態に係る無線通信装置のハードウェア構成について説明する。無線通信装置は、無線通信装置全体を制御するＣＰＵ（Central Processing Unit）等の制御装置と、各種データや各種プログラムを記憶するＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）等の記憶部と、各種データや各種プログラムを記憶するＨＤＤ（Hard Disk Drive）やＣＤ（Compact Disk）ドライブ装置等の補助記憶部と、外部装置との通信を制御する無線通信部と、改竄検出回路と、これらを接続するバスとを備えている。改竄検出回路は、上述したように、無線通信装置間で送受信されるパケットの改竄を検出する。この改竄検出回路は、パケットを送信する送信側とパケットを受信する受信側とで構成が異なる。このため、以下では送信側の無線通信装置の備える改竄検出回路と受信側の無線通信装置の備える改竄検出回路とについて各々説明する。尚、１つの無線通信装置がパケットを送信する機能及びパケットを受信する機能の双方を有し、以下で説明する送信側の改竄検出回路と受信側の改竄検出回路との両方を備えるように構成しても良いし、双方の機能を有するものの、改竄検出回路は一方のみを備えるようにしても良い。
【００１５】
図１は、送信側の無線通信装置が備える改竄検出回路のハードウェア構成を例示する図である。改竄検出回路２５は、送信パケットデコード回路２６と、比較回路２７と、MIC値記憶部２８と、論理回路２９，３１と、MIC値演算回路３０とを有する。送信パケットデコード回路２６には、制御部が記憶部や補助記憶部に記憶された各種プログラムを実行することにより生成した送信対象のパケット（送信パケットという）が入力される。送信パケットは、MACヘッダと、フレームボディと、パディングデータとを含む。MACヘッダは、宛先アドレス、送信元アドレス、シーケンス番号、フラグメント番号及びモア・フラグメントを含む。送信パケットデコード回路２６は、送信パケットをデコードして、MACヘッダに含まれる宛先アドレス、シーケンス番号、フラグメント番号、送信元アドレス 及びモア・フラグメントを抽出してこれを出力すると共に、フレームボディと、パディングデータとを出力する。
【００１６】
尚、宛先アドレスは、送信側の無線通信装置が送信したパケットを受信する受信側の無線通信装置に割り当てられたアドレスであり、送信元アドレスは、パケットを送信する送信側の無線通信装置に割り当てられたアドレスである。モア・フラグメントは、後続の送信パケットがあるか否かを示すものである。例えば、フラグメント化された送信パケット（フラグメント送信パケット）について同じ宛先アドレスの無線通信装置から送信される後続のフラグメント送信パケットがある場合、モア・フラグメントには‘１’がセットされ、送信パケットがフラグメント化されていない場合、又は、フラグメント送信パケットについて同じ無線通信装置から送信される後続のフラグメント送信パケットがない場合、即ち、最後尾のフラグメント送信パケットである場合、モア・フラグメントには‘０’がセットされる。フラグメント・タグは、フラグメント化された送信パケット(フラグメント送信パケットいう)の転送途中であるか否かを示すものである。前者の場合、フラグメント・タグには‘１’がセットされ、後者の場合、フラグメント・タグには‘０’がセットされる。
【００１７】
MIC値演算回路３０は、送信パケットについて、MIC値を計算する。ここで、MIC値を計算する方法について簡単に説明する。図２は、MIC値の計算方法を説明するための図である。送受信されるパケットが、宛先アドレスの下位４バイトと、送信元アドレスの上位２バイトに加え宛先アドレスの上位２バイトと、送信元アドレスの上位４バイトと、パディングデータと、フレームボディと、パディングデータとの各ブロック（32ビット）の順に並び替えられ、各ブロックが順にMIC値演算回路３０に入力される。また、フラグメント化されたパケットについてMIC値を最初に計算する際には、MIC鍵がMIC値演算回路３０に入力される。このMIC鍵は予め取得されるものであり、例えば補助記憶部に記憶されている。MIC値演算回路３０は、入力された情報を用いて、MIC値を計算する。尚、フラグメント化されたパケットについて次のパケットについてMIC値を計算する際には、MIC鍵の代わりに、前のパケットについて計算されたMIC値が入力される。このように計算されるMIC値について、本実施の形態においては、フラグメント化されたパケットについて前のパケットのMIC値を、以下に説明するMIC値記憶部２８に記憶させ、記憶したMIC値を用いてMIC値を計算することで、計算を効率化する。
【００１８】
MIC値記憶部２８は、各宛先アドレスに対応付けてMIC値、シーケンス番号、フラグメント番号及びフラグメント・タグ（これらを送信管理情報という）を記憶する。宛先アドレス毎に記憶される送信管理情報の数は、ハードウェアの実装に依存しており、特に指定はされない。尚、フラグメント・タグの値が‘０’である場合、MIC値には、MIC値の最初の計算結果がセットされる。MIC値の最初の計算結果とは、宛先アドレス、送信元アドレス及びパディングデータの４ワード（図２の符号１００）とMIC鍵とがMIC値演算回路３０に入力されて計算されたMIC値である。フラグメント・タグの値が‘１’である場合、MIC値には、それまでに転送された送信パケットから計算されたMIC値がセットされる。
【００１９】
比較回路２７は、送信パケットデコード回路２６から入力された情報と、MIC値記憶部２８に記憶された送信管理情報とを用いて比較を行い、当該比較結果に応じて、MIC値演算回路３０に情報を入力する。この比較回路２７が行なう比較の詳細については後述する。論理回路２９は、比較回路２７から出力された情報と、送信パケットデコード回路２６が出力した情報とをMIC値演算回路３０に入力する。論理回路３１は、フラグメント化されていない送信パケット又はフラグメント化された送信パケットのうち最後尾の送信パケットについてフレームボディの後ろのMICフィールドに、MIC値演算回路３０が計算したMIC値を付加してこれを出力する。これが無線通信部を介して受信側の無線通信装置に送信される。
【００２０】
図３は、受信側の無線通信装置が備える改竄検出回路３５のハードウェア構成を例示する図である。改竄検出回路３５は、受信パケットデコード回路３６と、比較回路３７と、論理回路３９と、MIC値演算回路４０と、MIC値記憶部３８と、MIC値比較回路４１とを有する。受信パケットデコード回路３６には、無線通信部を介して受信されたパケット（受信パケットという）が入力される。受信パケットのデータ構成は、送信パケットのデータ構成と同様である。受信パケットデコード回路３６は、受信パケットをデコードして、MACヘッダに含まれる宛先アドレス 、シーケンス番号、フラグメント番号、送信元アドレス及びモア・フラグメントを抽出してこれを出力すると共に、フレームボディと、パディングデータとを出力する。
【００２１】
MIC値記憶部３８は、各送信元アドレスに対応付けてMIC値、シーケンス番号、フラグメント番号、フラグメント・タグ及び再送カウント値（これらを受信管理情報という）を記憶する。送信元アドレス毎に記憶される受信管理情報の数は、ハードウェアの実装に依存しており、特に指定はされない。尚、フラグメント・タグの値が‘０’である場合、MIC値には、上述したMIC値の最初の計算結果がセットされる。フラグメント・タグの値が‘１’である場合、MIC値には、それまでに転送された受信パケットから計算されたMIC値がセットされる。再送カウント値とは、同一の送信元アドレスから同一のパケットが再送された回数である。また、このようなパケットの再送についてはその回数を制限するための再送制限回数が予め設定されており例えば補助記憶部に記憶されている。
【００２２】
比較回路３７は、受信パケットデコード回路３６から入力された情報と、MIC値記憶部３８に記憶された受信管理情報とを用いて比較を行い、当該比較結果に応じて、MIC値演算回路４０に情報を入力する。この比較回路３７が行なう比較の詳細については後述するMIC値演算回路４０は、受信パケットについて、MIC値を計算する。MIC値を計算する方法は、MIC値演算回路３０と略同様であるためその説明を省略する。また、MIC値演算回路４０は、フラグメント化されていない受信パケット又はフラグメント化された受信パケットのうち最後尾の受信パケットについてのMIC値の計算が終了するとこれを出力する。MIC値比較回路４１は、MIC値演算回路４０が出力したMIC値と、当該受信パケットのフレームボディの後ろのMICフィールドにセットされたMIC値とを比較して、その比較結果を出力する。この比較の結果、両者のMIC値が一致しない場合、受信パケットは改竄されている可能性があることが検出される。
【００２３】
（２）動作
次に、本実施の形態にかかる送信側の無線通信装置が備える改竄検出回路２５の行う処理の手順について図４〜５を用いて説明する。送信パケットが改竄検出回路２５に入力されると、送信パケットデコード回路２６は、送信パケットをデコードして、MACヘッダに含まれる宛先アドレス、シーケンス番号、フラグメント番号、送信元アドレス及びモア・フラグメントを抽出してこれを出力する（ステップＳ１）。その後、比較回路２７は、ステップＳ１で送信パケットデコード回路２６が出力した宛先アドレスに対応付けられてMIC値記憶部２８に記憶されている送信管理情報があるか否かを判断する（ステップＳ２）。該当の送信管理情報がMIC値記憶部２８に記憶されてない場合（ステップＳ２：ＮＯ）、論理回路２９は、ステップＳ１で送信パケットデコード回路２６が出力した宛先アドレス、送信元アドレス、パディングデータ及びフレームボディをブロック単位で順番にMIC値演算回路３０に入力する。MIC値演算回路３０は、論理回路２９から入力された宛先アドレス、送信元アドレス、パディングデータ及びフレームボディを用いて、MIC値を計算する（図５のステップＳ２０）。また、比較回路２７は、ステップＳ１で送信パケットデコード回路２６が出力したモア・フラグメントの値が‘１’であるか否かを判断し（ステップＳ２１）、モア・フラグメントの値が‘１’である場合（ステップＳ２１：ＹＥＳ）、ステップＳ１で送信パケットデコード回路２６が出力した宛先アドレスと、シーケンス番号及び当該MACヘッダに含まれるフラグメント番号を‘１’インクリメントしたフラグメント番号とを含む送信管理情報を生成してこれをMIC値記憶部２８に記憶させる。このとき、比較回路２７は、送信管理情報のフラグメント・タグには‘１’をセットし、送信管理情報のMIC値にはステップＳ２０で計算されたMIC値をセットする（ステップＳ２２）。尚、ステップＳ１で送信パケットデコード回路２６が出力したモア・フラグメントの値が‘０’である場合（ステップＳ２１：ＮＯ）、比較回路２７は、ステップＳ１で送信パケットデコード回路２６が出力した宛先アドレスと、ステップＳ１で送信パケットデコード回路２６が出力したシーケンス番号を‘１’インクリメントしたシーケンス番号とを含む送信管理情報を生成してこれをMIC値記憶部２８に記憶させる。このとき、比較回路２７は、送信管理情報のフラグメント番号には‘０’をセットし、送信管理情報のフラグメント・タグには‘０’をセットし、送信管理情報のMIC値には上述したMIC値の最初の計算結果をセットする（ステップＳ２３）。以上のように、送信パケットの宛先アドレスに対応する送信管理情報がMIC値記憶部２８に記憶されていない場合には、改竄検出回路２５は、モア・フラグメントの値に応じて生成してこれをMIC値記憶部２８に登録する。
【００２４】
このようにMIC値記憶部２８に送信管理情報が登録された後に、当該宛先アドレスをMACヘッダに含む送信パケットが次に改竄検出回路２５に入力された場合は、ステップＳ２の判断結果が肯定的となる。この場合、比較回路２７は、ステップＳ１で送信パケットデコード回路２６が出力した宛先アドレスに対応付けられてMIC値記憶部２８に記憶されている送信管理情報に含まれるシーケンス番号、フラグメント番号及びフラグメント・タグを抽出する（ステップＳ３）。次いで、比較回路２７は、ステップＳ３で抽出したフラグメント・タグの値が‘１’であるか否かを判断する（ステップＳ４）。フラグメント・タグの値が‘１’である場合（ステップＳ４：ＹＥＳ）、比較回路２７は、ステップＳ１で送信パケットデコード回路２６が出力したシーケンス番号とステップＳ３で送信管理情報から抽出したシーケンス番号とが一致するか否か及びステップＳ１で送信パケットデコード回路２６が出力したフラグメント番号とステップＳ３で送信管理情報から抽出したフラグメント番号とが一致するか否かを判断する（ステップＳ５）。両者のシーケンス番号が一致する場合且つ両者のフラグメント番号が一致する場合（ステップＳ５：ＹＥＳ）、論理回路２９は、当該送信管理情報に含まれるMIC値を初期値としてMIC値演算回路３０に入力すると共に、ステップＳ１で送信パケットデコード回路２６が出力した宛先アドレス、送信元アドレス、パディングデータ及びフレームボディをブロック単位で順番にMIC値演算回路３０に入力する。このとき、MIC値演算回路３０は、論理回路２９から入力されたMIC値を初期値として用いると共に、宛先アドレス、送信元アドレス、パディングデータ及びフレームボディを順次用いて、MIC値を計算する（ステップＳ６）。
【００２５】
次いで、比較回路２７は、ステップＳ１で送信パケットデコード回路２６が出力したモア・フラグメントの値が‘１’であるか否かを判断する(ステップＳ７)。モア・フラグメントの値が‘１’である場合（ステップＳ７：ＹＥＳ）、送信パケットがフラグメント化されその転送途中であるということである。この場合、比較回路２７は、MIC値記憶部２８に記憶されている当該送信管理情報を、次に送信するであろうパケットについての送信管理情報を書き換えるべく、当該送信管理情報に含まれるシーケンス番号とフラグメント番号とについて、ステップＳ１で送信パケットデコード回路２６が出力したシーケンス番号と、ステップＳ１で送信パケットデコード回路２６が出力したフラグメント番号を‘１’インクリメントしたフラグメント番号とにそれぞれ書き換え、当該送信管理情報に含まれるフラグメント・タグを‘１’にセットする（ステップＳ８）。このとき、当該送信管理情報に含まれるMIC値は、更新されず、当該送信パケットの前に送信パケットとして処理された送信パケットに対して計算されたMIC値のままである。一方、モア・フラグメントの値が‘０’である場合（ステップＳ７：ＮＯ）、比較回路２７は、MIC値記憶部２８に記憶されている当該送信管理情報を、次に送信するであろうパケットについての送信管理情報を書き換えるべく、当該送信管理情報に含まれるシーケンス番号について、送信パケットデコード回路２６が出力したシーケンス番号を‘１’インクリメントしたシーケンス番号に書き換え、当該送信管理情報に含まれるフラグメント番号を‘０’にセットし、当該送信管理情報に含まれるフラグメント・タグを‘０’にセットする。更に、比較回路２７は、当該送信管理情報に含まれるMIC値を、ステップＳ６で宛先アドレス、送信元アドレス及びパディングデータを用いて計算されたMIC値に書き換える（ステップＳ９）。
【００２６】
また、フラグメント・タグの値が‘０’である場合（ステップＳ４：ＮＯ）、フラグメント化された送信パケットの転送途中ではないということである。この場合、比較回路２７は、ステップＳ１で送信パケットデコード回路２６が出力したシーケンス番号が、MIC値記憶部２８に記憶されている当該送信管理情報に含まれるシーケンス番号より大きいか否か及びステップＳ１で送信パケットデコード回路２６が出力したフラグメント番号がMIC値記憶部２８に記憶されている当該送信管理情報に含まれるフラグメント番号と一致するか否か、即ち、フラグメント番号が‘０’であるか否かを判断する（ステップＳ１０）。そして、前者のシーケンス番号が後者のシーケンス番号より大きい場合且つ前者のフラグメント番号が後者のフラグメント番号と一致する場合（ステップＳ１０：ＹＥＳ）、論理回路２９は、当該送信管理情報に含まれるMIC値と、ステップＳ１で送信パケットデコード回路２６がデコードした送信パケットに含まれるフレームボディとをMIC値演算回路３０に入力する。MIC値演算回路３０は、入力されたMIC値及びフレームボディを用いて、MIC値を新たに計算する（ステップＳ１１）。
【００２７】
尚、送信パケット及び送信管理情報についてシーケンス番号及びフラグメント番号のうち少なくとも一方が一致しない場合（ステップＳ５：ＮＯ）又は送信パケットのシーケンス番号が送信管理情報のシーケンス番号以下であるか受信パケット及び送信管理情報についてフレーム番号が一致しない場合（ステップＳ１０：ＮＯ）、MIC値演算回路３０は、MIC値の計算を行わない。また、MIC値演算回路３０は、フラグメント化されていない送信パケット又はフラグメント化された送信パケットのうち最後尾の送信パケットについてのMIC値の計算が終了するとこれを出力する。論理回路３１は、当該送信パケットのフレームボディの後ろに、当該MIC値を付加してこれを出力する。これが無線通信部を介して受信側の無線通信装置に送信される。
【００２８】
次に、受信側の無線通信装置が備える改竄検出回路３５の行う処理の手順について図６〜７を用いて説明する。無線通信装置が無線通信部を介して送信側の無線通信装置から受信した受信パケットが改竄検出回路３５の受信パケットデコード回路３６に入力されると、これをデコードして、受信パケットのMACヘッダに含まれる送信元アドレス、宛先アドレス、シーケンス番号、フラグメント番号及びモア・フラグメントを抽出してこれを出力する（ステップＳ３０）。その後、比較回路３７は、ステップＳ３０で受信パケットデコード回路３６が出力した送信元アドレスに対応付けられてMIC値記憶部３８に記憶されている受信管理情報があるか否かを判断する（ステップＳ３１）。該当の受信管理情報がMIC値記憶部３８に記憶されてない場合（ステップＳ３１：ＮＯ）、論理回路３９は、ステップＳ３０で受信パケットデコード回路３６が出力した宛先アドレス、送信元アドレス、パディングデータ及びフレームボディをブロック単位で順番にMIC値演算回路４０に入力する。MIC値演算回路４０は、論理回路３９から入力された宛先アドレス、送信元アドレス、パディングデータ及びフレームボディを用いて、MIC値を計算する（図７のステップＳ６０）。また、比較回路３７は、ステップＳ３０で受信パケットデコード回路３６が出力したモア・フラグメントの値が‘１’であるか否かを判断し（ステップＳ６１）、モア・フラグメントの値が‘１’である場合（ステップＳ６１：ＹＥＳ）、ステップＳ３０で受信パケットデコード回路３６が出力した送信元アドレスと、シーケンス番号及び当該MACヘッダに含まれるフラグメント番号を‘１’インクリメントしたフラグメント番号とを含む受信管理情報を生成してこれをMIC値記憶部３８に記憶させる。このとき、比較回路３７は、受信管理情報のフラグメント・タグには‘１’をセットし、受信管理情報のMIC値には、ステップＳ６２で計算されたMIC値をセットする（ステップＳ６２）。尚、ステップＳ３０で受信パケットデコード回路３６が出力したモア・フラグメントの値が‘０’である場合（ステップＳ６１：ＮＯ）、比較回路３７は、ステップＳ３０で受信パケットデコード回路３６が出力した宛先アドレスと、ステップＳ３０で受信パケットデコード回路３６が出力したシーケンス番号を‘１’インクリメントしたシーケンス番号とを含む受信管理情報を生成してこれをMIC値記憶部３８に記憶させる。このとき、比較回路３７は、受信管理情報のフラグメント番号には‘０’をセットし、受信管理情報のフラグメント・タグには‘０’をセットし、受信管理情報のMIC値には上述したMIC値の最初の計算結果をセットする（ステップＳ６３）。以上のように、受信パケットの送信元アドレスに対応する受信管理情報がMIC値記憶部３８に記憶されていない場合には、改竄検出回路３５は、モア・フラグメントの値に応じて生成してこれをMIC値記憶部３８に登録する。
【００２９】
このようにMIC値記憶部３８に受信管理情報が登録された後に、当該送信元アドレスをMACヘッダに含む受信パケットが次に改竄検出回路３５に入力された場合は、ステップＳ３１の判断結果が肯定的となる。この場合、比較回路３７は、ステップＳ３０で受信パケットデコード回路３６が出力した送信元アドレスに対応付けられてMIC値記憶部３８に記憶されている受信管理情報に含まれるシーケンス番号、フラグメント番号、フラグメント・タグ及び再送カウント値を抽出する（ステップＳ３２）。次いで、比較回路３７は、ステップＳ３２で抽出した再送カウント値が再送制限回数に到達しているか否かを判断する（ステップＳ３３）。再送カウント値が再送制限回数に到達している場合（ステップＳ３３：ＹＥＳ）、比較回路３７は、ステップＳ３０で受信パケットデコード回路３６が出力した宛先アドレスと、ステップＳ３０で受信パケットデコード回路３６が出力したシーケンス番号を‘１’インクリメントしたシーケンス番号とを含む受信管理情報を生成してこれをMIC値記憶部３８に記憶させる。このとき、比較回路３７は、受信管理情報のフラグメント番号及びフラグメント・タグには各々‘０’をセットする。更に、比較回路３７は、受信管理情報の再送カウント値及びMIC値を各々‘０’にリセットする（ステップＳ３４）。この結果、再送制限回数を超えた受信パケットについての受信管理情報が削除されて、新たに受信されるであろう受信パケットについての受信管理情報に書き換えられる。尚、再送カウント値が再送制限回数に到達している場合には、MIC値演算回路４０はMIC値の計算を行わない。
【００３０】
再送カウント値が再送制限回数に到達していない場合（ステップＳ３３：ＮＯ）、比較回路３７は、ステップＳ３０で抽出したフラグメント・タグの値が‘１’であるか否かを判断する（ステップＳ３５）。フラグメント・タグの値が‘１’である場合（ステップＳ３５：ＹＥＳ）、比較回路３７は、ステップＳ３０で受信パケットデコード回路３６が出力したシーケンス番号とステップＳ３２で受信管理情報から抽出したシーケンス番号とが一致するか否か及びステップＳ３０で受信パケットデコード回路３６が出力したフラグメント番号とステップＳ３２で受信管理情報から抽出したフラグメント番号とが一致するか否かを判断する（ステップＳ３６）。両者のシーケンス番号が一致する場合且つ両者のフラグメント番号が一致する場合（ステップＳ３６：ＹＥＳ）、論理回路３９は、当該受信管理情報に含まれるMIC値を初期値としてMIC値演算回路４０に入力すると共に、ステップＳ３０で受信パケットデコード回路３６が出力した宛先アドレス、送信元アドレス、パディングデータ及びフレームボディをブロック単位で順番にMIC値演算回路４０に入力する。このとき、MIC値演算回路４０は、論理回路３９から入力されたMIC値を初期値として用いると共に、宛先アドレス、送信元アドレス、パディングデータ及びフレームボディを順次用いて、MIC値を計算する（ステップＳ３７）。
【００３１】
次いで、比較回路３７は、ステップＳ３０で受信パケットデコード回路３６が出力したモア・フラグメントの値が‘１’であるか否かを判断する(ステップＳ３８)。モア・フラグメントの値が‘１’である場合（ステップＳ３８：ＹＥＳ）、受信パケットがフラグメント化されその転送途中であるということである。この場合、比較回路３７は、MIC値記憶部３８に記憶されている当該受信管理情報を、次に受信するであろうパケットについての受信管理情報を書き換えるべく、当該受信管理情報に含まれるシーケンス番号とフラグメント番号とについて、ステップＳ３０で受信パケットデコード回路３６が出力したシーケンス番号と、ステップＳ３０で受信パケットデコード回路３６が出力したフラグメント番号を‘１’インクリメントしたフラグメント番号とにそれぞれ書き換え、当該受信管理情報に含まれるフラグメント・タグを‘１’にセットする（ステップＳ３９）。このとき、当該送信管理情報に含まれるMIC値は、更新されず、当該送信パケットの前に送信パケットとして処理された送信パケットに対して計算されたMIC値のままである。一方、モア・フラグメントの値が‘０’である場合（ステップＳ３８：ＮＯ）、比較回路３７は、MIC値記憶部３８に記憶されている当該受信管理情報を、次に受信するであろうパケットについての受信管理情報を書き換えるべく、当該受信管理情報に含まれるシーケンス番号について、ステップＳ３０で受信パケットデコード回路３６が出力したシーケンス番号を‘１’インクリメントしたシーケンス番号に書き換え、当該受信管理情報に含まれるフラグメント番号を‘０’にセットし、当該受信管理情報に含まれるフラグメント・タグを‘１’にセットする。更に、比較回路３７は、当該受信管理情報に含まれるMIC値を、ステップＳ３７で宛先アドレス、送信元アドレス及びパディングデータを用いて計算されたMIC値に書き換える（ステップＳ４３）。
【００３２】
また、フラグメント・タグの値が‘０’である場合（ステップＳ３５：ＮＯ）、フラグメント化された受信パケットの転送途中ではないということである。この場合、比較回路３７は、ステップＳ３０で受信パケットデコード回路３６が出力したシーケンス番号が、MIC値記憶部３８に記憶されている当該受信管理情報に含まれるシーケンス番号より大きいか否か及びステップＳ３０で受信パケットデコード回路３６が出力したフラグメント番号がMIC値記憶部３８に記憶されている当該受信管理情報に含まれるフラグメント番号と一致するか否か、即ち、フラグメント番号が‘０’であるか否かを判断する（ステップＳ４１）。そして、前者のシーケンス番号が後者のシーケンス番号より大きい場合且つ前者のフラグメント番号が後者のフラグメント番号と一致する場合（ステップＳ４１：ＹＥＳ）、論理回路３９は、当該受信管理情報に含まれるMIC値と、ステップＳ３０で受信パケットデコード回路３６がデコードした受信パケットに含まれるフレームボディとをMIC値演算回路４０に入力する。MIC値演算回路４０は、入力されたMIC値及びフレームボディを用いて、MIC値を新たに計算する（ステップＳ４２）。
【００３３】
尚、受信パケット及び受信管理情報についてシーケンス番号及びフラグメント番号のうち少なくとも一方が一致しない場合（ステップＳ３６：ＮＯ）又は受信パケットのシーケンス番号が受信管理情報のシーケンス番号以下であるか受信パケット及び受信管理情報についてフレーム番号が一致しない場合（ステップＳ４１：ＮＯ）、MIC値演算回路４０は、MIC値の計算を行わない。また、MIC値演算回路４０は、フラグメント化されていない受信パケット又はフラグメント化された受信パケットのうち最後尾の受信パケットについてのMIC値の計算が終了するとこれを出力する。MIC値比較回路４１は、当該MIC値と、当該受信パケットのフレームボディの後ろにあるMIC値とを比較して、その比較結果を出力する。この比較の結果両者のMIC値が一致しない場合、受信パケットは改竄されている可能性があることが検出される。
【００３４】
以上のような構成によれば、無線により通信されるパケットの改竄を検出するためにMIC値の比較を行う場合、MIC値の計算をハードウェアで行うことにより、更に効率良く行うことでき、転送レートの劣化を防止することが可能となる。
【００３５】
[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
【００３６】
上述した実施の形態において、無線通信装置で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また当該プログラムを、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供するように構成しても良い。
【００３７】
上述の実施の形態で説明した改竄検出回路を備える無線通信装置を、画像形成装置に適用しても良い。画像形成装置とは、例えば、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能のうち少なくとも２つの機能を有する複合機や、複写機、プリンタ、スキャナ装置、ファクシミリ装置等の、画像を形成する機能を有する装置である。
【００３８】
上述の実施の形態では、無線ＬＡＮのネットワークのTKIP暗号化方式で暗号化したパケットを通信する例について説明したが、無線通信ネットワーク及び暗号化方式はこれらに限らない。
【００３９】
上述の実施の形態では、送信側の無線通信装置では、MIC値の計算をMIC値演算回路３０で行うように構成したが、MIC値記憶部２８の容量が所定値より少ない場合には、ＣＰＵがプログラムを実行することによりMIC値を計算するように構成しても良い。この場合、上述したMIC値演算回路３０と同様にしてMIC値を計算するプログラムを例えばＨＤＤなどの補助記憶部に予め記憶させておき、パケットの送信の際には、MIC値記憶部２８の容量が所定値より少ない場合、ＣＰＵが補助記憶部から当該プログラムを読み出してこれを実行すれば良い。受信側の無線通信装置についても同様に、上述したMIC値演算回路４０と同様にしてMIC値を計算するプログラムを例えばＨＤＤなどの補助記憶部に予め記憶させておき、パケットの受信の際には、MIC値記憶部３８の容量が所定値より少ない場合、ＣＰＵが補助記憶部から当該プログラムを読み出してこれを実行すれば良い。
【符号の説明】
【００４０】
２５  改竄検出回路
２６  送信パケットデコード回路
２７  比較回路
２８  MIC値記憶部
２９，３１  論理回路
３０  MIC値演算回路
３５  改竄検出回路
３６  受信パケットデコード回路
３７  比較回路
３８  MIC値記憶部
３９  論理回路
４０  MIC値演算回路
４１  MIC値比較回路
【先行技術文献】
【特許文献】
【００４１】
【特許文献１】特開２００７−０８６６０８号公報
【特許文献２】特開２００６−３１１３９４号公報
【図１】
2010258864.tif 000003
【図２】
2010258864.tif 000004
【図３】
2010258864.tif 000005
【図４】
2010258864.tif 000006
【図５】
2010258864.tif 000007
【図６】
2010258864.tif 000008
【図７】
2010258864.tif 000009