(57)【要約】  【課題】フレームカウント値を不揮発性メモリに記憶し、更新する必要がなく、フレームカウント値がフルカウント値に近い値に改ざんされたフレームが送信されても影響を少なくする。  【解決手段】有効なフレームカウント値が保持されていないと、フレームカウント値の問い合わせがなされる（ＳＴ３３）。受信側からフレームカウント値が通知され、フレームカウント値が取得される。フレームカウント値を基に暗号化鍵が生成される（ＳＴ３４）。暗号化鍵によりデータが暗号化される（ＳＴ３５）。フレーム構成のデータが送信される（ＳＴ３７）。フレーム送信が終了すると、フレームカウント値がインクリメントされる（ＳＴ３８）。【選択図】図１０
2010272984.tif 000002
【特許請求の範囲】
【請求項１】
カウント値が無効な場合に、受信装置に対して問い合わせを行い、受信装置において生成された第１の乱数を受信して上記第１の乱数から生成された最初のカウント値ｎを揮発性メモリに記憶する問い合わせステップと、
上記カウント値ｎによって送信するデータを暗号化する暗号化ステップと、
上記カウント値ｎと暗号化データとを含むフレームフォーマットのデータを送信する送信ステップと、
データの送信がなされる度に、上記揮発性メモリに記憶されるカウント値を変更するカウント値変更ステップとからなり、
変更後の値が設定される範囲を超えると、受信装置に対して問い合わせを行い、受信装置において生成された上記第１の乱数と異なる第２の乱数を受信して上記第２の乱数から生成された最初のカウント値ｎ’（≠ｎ）を揮発性メモリに記憶し、
上記カウント値ｎ’を使用して、上記暗号化ステップ、上記送信ステップ、上記カウント値変更ステップとを繰り返すデータ送信方法。
【請求項２】
上記受信装置が電子機器に備えられ、上記電子機器をリモートコントロールするためのデータを送信する請求項１記載のデータ送信方法。
【請求項３】
上記設定された範囲が固定とされる請求項１記載のデータ送信方法。
【請求項４】
上記設定された範囲が受信装置から送信される請求項１記載のデータ送信方法。
【請求項５】
カウント値が無効な場合に、受信装置に対して問い合わせを行い、受信装置において生成された第１の乱数を受信して上記第１の乱数から生成された最初のカウント値ｎを揮発性メモリに記憶する問い合わせ手段と、
上記カウント値ｎによって送信するデータを暗号化する暗号化手段と、
上記カウント値ｎと暗号化データとを含むフレームフォーマットのデータを送信する送信手段と、
データの送信がなされる度に、上記揮発性メモリに記憶されるカウント値を変更するカウント値変更手段とからなり、
変更後の値が設定される範囲を超えると、受信装置に対して問い合わせを行い、受信装置において生成された上記第１の乱数と異なる第２の乱数を受信して上記第２の乱数から生成された最初のカウント値ｎ’（≠ｎ）を揮発性メモリに記憶し、
上記カウント値ｎ’を使用して、上記暗号化手段による暗号化処理、上記送信手段による送信処理、および上記カウント値変更手段によるカウント値変更処理を繰り返すデータ送信装置。
【請求項６】
上記受信装置が電子機器に備えられ、上記電子機器をリモートコントロールするためのデータを送信する請求項５記載のデータ送信装置。
【請求項７】
上記設定された範囲が固定とされる請求項５記載のデータ送信装置。
【請求項８】
上記設定された範囲が受信装置から送信される請求項５記載のデータ送信装置。
【請求項９】
電池電源で動作する請求項５記載のデータ送信装置。
【請求項１０】
送信装置と受信装置とが双方向通信可能な無線伝送路を介して通信を行うデータ通信方法において、
データ送信方法は、
カウント値が無効な場合に、受信装置に対して問い合わせを行い、受信装置において生成された第１の乱数を受信して上記第１の乱数から生成された最初のカウント値ｎを揮発性メモリに記憶する問い合わせステップと、
上記カウント値ｎによって送信するデータを暗号化する暗号化ステップと、
上記カウント値ｎと暗号化データとを含むフレームフォーマットのデータを送信する送信ステップと、
データの送信がなされる度に、上記揮発性メモリに記憶されるカウント値を変更するカウント値変更ステップとからなり、
変更後の値が設定される範囲を超えると、受信装置に対して問い合わせを行い、受信装置において生成された上記第１の乱数と異なる第２の乱数を受信して上記第２の乱数から生成された最初のカウント値ｎ’（≠ｎ）を揮発性メモリに記憶し、
上記カウント値ｎ’を使用して、上記暗号化ステップ、上記送信ステップ、上記カウント値変更ステップとを繰り返し、
データ受信方法は、
上記問い合わせを受信し、上記第１の乱数を受信装置に対して送信する問い合わせ応答ステップと、
上記送信ステップで送信されたフレームフォーマットのデータを受信する受信ステップと、
受信される上記カウント値が保持されている値より増加または減少しており、且つ上記設定される範囲内か否かを判定する判定ステップと、
上記判定ステップにおいて、受信される上記カウント値が保持されているカウント値と一致していると判定されると、上記受信される上記カウント値を使用して復号鍵を生成し、生成される復号鍵によって受信されたフレーム内の暗号化データを復号し、
受信される上記カウント値が保持されているカウント値と一致していないと判定されると、受信されたフレームが破棄される復号ステップと、
上記フレーム内の暗号化データを復号されると、上記保持されている値を変更するカウント値変更ステップとからなるデータ通信方法。
【請求項１１】
送信装置と受信装置とが双方向通信可能な無線伝送路を介して通信を行うデータ通信装置において、
データ送信装置は、
カウント値が無効な場合に、受信装置に対して問い合わせを行い、受信装置において生成された第１の乱数を受信して上記第１の乱数から生成された最初のカウント値ｎを揮発性メモリに記憶する問い合わせ手段と、
上記カウント値ｎによって送信するデータを暗号化する暗号化手段と、
上記カウント値ｎと暗号化データとを含むフレームフォーマットのデータを送信する送信手段と、
データの送信がなされる度に、上記揮発性メモリに記憶されるカウント値を変更するカウント値変更手段とからなり、
変更後の値が設定される範囲を超えると、受信装置に対して問い合わせを行い、受信装置において生成された上記第１の乱数と異なる第２の乱数を受信して上記第２の乱数から生成された最初のカウント値ｎ’（≠ｎ）を揮発性メモリに記憶し、
上記カウント値ｎ’を使用して、上記暗号化手段による暗号化処理、上記送信手段による送信処理、および上記カウント値変更手段によるカウント値変更処理を繰り返し、
データ受信装置は、
上記問い合わせを受信し、上記第１の乱数を受信装置に対して送信する問い合わせ応答手段と、
上記送信手段で送信されたフレームフォーマットのデータを受信する受信手段と、
受信される上記カウント値が保持されている値より増加または減少しており、且つ上記設定される範囲内か否かを判定する判定手段と、
上記判定手段において、受信される上記カウント値が保持されているカウント値と一致していると判定されると、上記受信される上記カウント値を使用して復号鍵を生成し、生成される復号鍵によって受信されたフレーム内の暗号化データを復号し、
受信される上記カウント値が保持されているカウント値と一致していないと判定されると、受信されたフレームが破棄される復号手段と、
上記フレーム内の暗号化データを復号されると、上記保持されている値を変更するカウント値変更手段とからなるデータ通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば無線で電子機器をリモートコントロールするのに適用できるデータ送信方法および装置、データ通信方法および装置に関する。
【背景技術】
【０００２】
テレビジョン受像機等の電子機器を制御するリモートコントローラとして、２．４ＧHz帯のＩＳＭ(Industrial,Scientific and Medical use)バンドは、高周波電波を使用すれ
ば、赤外線方式に比して遮蔽物の影響が少なくなり、また、到達距離が延びる利点がある。最近では、高周波通信方式（ＲＦ方式と適宜称する）によるリモートコントロールに関して、Zigbee（登録商標）AllianceとＲＦ４ＣＥ(Radio Frequency for Consumer Electronics:コンシューマ・エレクトロニクス製品向けＲＦテクノロジー）コンソーシアムとの間の合意に基づいて標準規格（ＲＦ４ＣＥ規格と適宜称する）が策定されつつある。
【０００３】
電波が無指向性であるため、ＲＦ方式のリモートコントロールにおいては、近隣にいる他者によって送信データが読み取られ（スキミング）たり、偽のリモートコントローラをあたかも本物のように操作し、電子機器を操作する（なりすまし）のおそれがある。特に、最近では、テレビジョン受像機をインターネットと接続して銀行との取引が行われたり、ショッピングが行われ、現金やクレジットカードの情報がやりとりされることが多くなり、セキュリティを高める必要性が増している。
【０００４】
特許文献１には、ＲＦ方式のリモートコントロールにおいて、セキュリティを高めるために暗号化の共通鍵を送信側および受信側の双方が持つことが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−０４９９１６号公報
【０００６】
「リモートコントロール通信システムの概略」
次に、ＲＦ４ＣＥ規格について、主としてセキュリティに関して以下説明する。図１に示すように、送信装置例えばリモートコントローラ１００の送信モジュール１０１と受信装置例えばテレビジョン受像機２００に設けられている受信モジュール２０１とがＲＦ無線通信を行う。１０２が送信アンテナであり、２０２が受信アンテナである。送信アンテナ１０２から受信アンテナ２０２に送信される電波をＲＦリモートコントロール信号と称する。双方向通信の場合には、さらに、１組の送信モジュールおよび受信モジュールが追加される。
【０００７】
リモートコントローラ１００のキーマトリクス１０４の操作に対応する信号が送信制御部１０３に供給され、制御部１０３において生成されたコードが送信モジュール１０１に供給される。送信モジュール１０１、アンテナ１０２および受信アンテナ２０２を介して受信モジュール２０１が送信信号を受信する。受信モジュール２０１が受信制御部２０３に対してコードを供給する。受信制御部２０２は、受け取ったコードにしたがって受信側電子機器例えばテレビジョン受像機２００の動作を制御する。実際の構成としては、送信モジュール１０１と送信制御部１０３とが一体化され、受信モジュール２０１と受信制御部２０３とが一体化された構成がある。
【０００８】
リモートコントローラ１００およびテレビジョン受像機２００は、所定の無線通信方式で双方向通信を行う。ＲＦ４ＣＥ規格の通信方式としては、例えばＩＥＥＥ(Institute of Electrical and Electronics Engineers)８０２．１５．４が使用される。ＩＥＥＥ８
０２．１５．４は、ＰＡＮ(Personal Area Network) またはＷ(Wireless)ＰＡＮと呼ばれる短距離無線ネットワーク規格の名称である。
【０００９】
通信レートは、数１０ｋ〜数１００ｋbps であり、通信距離は、数１０ｍ〜数１００ｍになる。また、通信は、フレームの単位で行われる。１フレームは、ペイロード（０〜１２７バイト）にヘッダ（６バイト）で、最大１３３バイトのサイズとされる。
【００１０】
このようなＲＦ４ＣＥ規格による遠隔制御システムにおいては、隣室や、隣家に設置されているような機器を意図せずに制御してしまう問題がある。したがって、テレビジョン受像機を新たに購入して設置した際に、コマンダによるテレビジョン受像機の制御を可能とするために１対１の対応付け（ペアリングと称される）が必要とされる。ペアリングは、リモートコントローラと被制御電子機器との間で、双方のＩＤ（識別情報）を交換することを意味する。ペアリングを行っていても、悪意の第三者によって自身の機器が制御されたり、ＲＦ信号が傍受されて個人情報等の秘密情報が盗まれる危険性がある。
【００１１】
ＲＦ４ＣＥ規格では、ＲＦリモートコントロール信号が受信され、情報が読み取られるスキミングに対する対策として、ＲＦリモートコントロール信号をモニターしてもコードの内容は分からないようにする。その方法として、コードが入っているペイロード部を暗号化する。２度と同じ値とならないフレームカウンタの値をペイロド部の暗号化鍵として利用することで、フレーム単位で同じ鍵が使われないようにされる。フレームカウンタは、送信の度にインクリメントされる。
【００１２】
さらに、ＲＦリモートコントロール信号のフレームがキャプチャーされ、当該フレームが再度送信されても受け付けないようにする。すなわち、過去に受け付けたフレームカウンタのカウント値（フレームカウント値と称する）と同じか、それより小さい値のフレームは受け付けないようにする。この処理によって、同一フレームの２度受けを防止することができる。さらに、フレームがキャプチャーされ、フレームカウント値が大きくされたフレームが送られても、ペイロード部の復号化鍵が一致しないので、暗号化を復号できない。
【００１３】
「送信モジュール」
図２に示すように、送信モジュール１０１に対して送信制御部１０３からの送信すべきコード（ペイロードデータ）が送信され、ペイロードデータ受信部１０５がコードを受信する。フレームカウンタ１０６は、ペイロードデータ受信部１０５がペイロードデータを受け取る度に発生するカウントアップ信号によってインクリメントする。フレームカウンタ１０６が発生したフレームカウント値が不揮発性メモリに保持される。フレームカウント値が鍵記憶部１０８に保持されている鍵データと共に排他的論理和回路（ＥＸ−ＯＲゲートと称する）１０７に供給され、ＥＸ−ＯＲゲート１０７から暗号化鍵が発生する。
【００１４】
ペイロードデータ受信部１０５からのペイロードデータがＡＥＳ(Advanced Encryption Standard)暗号化部１０９に供給される。ＡＥＳ暗号化部１０９において、ペイロードデータがＥＸ−ＯＲゲート１０７からの暗号化鍵によって暗号化される。ＡＥＳ暗号化部１０９からの暗号化ペイロードデータがフレーム化部１１０に供給される。フレーム部１１０において、後述するようなフォーマットのデータが構成される。
【００１５】
フレーム化部１１０の出力がパケット化部１１１に供給され、パケット構成に変換される。パケット化部１１１の出力データが変調部１１２に供給される。変調部１１２において、ＱＰＳＫ(Quadrature Phase Shift Keying) 、拡散変調等の変調処理がなされる。図示せずも送信アンテナおよび受信アンテナを介してＲＦリモートコントロール信号が受信モジュール２０１に対して送信される。フレーム送信が終わったところでフレームカウンタ１０６がインクリメントされる。
【００１６】
「受信モジュール」
受信モジュール２０１は、図３に示すように、図示せずも送信アンテナおよび受信アンテナを介してＲＦリモートコントロール信号が送信モジュール１０１から受信される。受信されたＲＦリモートコントロール信号が復調部２０４に供給され、復調処理を受ける。復調部２０４の復調出力がパケット選別部２０５に供給され、パケットが選別される。パケット選別部２０５は、送信モジュール１０１のパケット化部１１１と逆にパケット分解処理を行う。
【００１７】
選別されたパケットがフレーム分析部２０６に供給される。フレーム分析部２０６は、送信モジュール１０１のフレーム化部１１０と逆にフレーム分解処理を行う。フレーム分析部２０６で分離されたフレームカウント値がフレームカウント値チェック部２０７に供給される。フレームカウント値チェック部２０７に対してフレームカウント値記憶部２０８に保存されているフレームカウント値が供給される。
【００１８】
フレームカウント値記憶部２０８は、不揮発性メモリによって構成される。フレームカウント値チェック部２０７では、受信されたフレームカウント値が受容値か否かが判定される。すなわち、受信したフレームのフレームカウント値とその時の受信側の保存フレームカウント値とが比較される。受信したフレームカウント値が保存フレームカウント値より大きい値のときは、受容値と判断され、暗号化ペイロードがＡＥＳ復号化部２１１に送られる。それ以外の時は、受容できないと判定され、受信したフレーム全体が破棄され、次のフレームの受信を待つ待機状態となる。
【００１９】
フレームカウント値チェック部２０７において受容値と判定されたフレームカウント値がＥＸ−ＯＲゲート２０９に供給される。ＥＸ−ＯＲゲート２０９に対して鍵記憶部２１０に保持されている鍵データが供給され、復号化鍵がＥＸ−ＯＲゲート２０９から出力される。フレーム分析部２０６によって分離された暗号化ペイロードデータと復号化鍵とがＡＥＳ復号化部２１１に供給され、ペイロードデータが復号されて出力される。復号されたペイロードデータがペイロードデータ送信部２１２に供給され、受信制御部２０３に対して送信される。復号が正しく完了し、ペイロードを出力した時点で、受信したフレームのフレームカウント値がフレームカウント値記憶部２０８に保存される。
【００２０】
フレームカウンタ３０２のビット数が４バイトとＲＦ４ＣＥ規格では定められている。フレームカウント値は、ペアリング後、値「１」からフレームを送信する毎にインクリメントされる。４バイトのビット数があるので、通常のリモコンの利用においては、カウント値がフルになることはないので、一度使用されたカウント値が再び使われることはない。ペアリング時に交換した鍵とフレームカウンタのカウント値との排他論理和を求め、排他的論理和出力が実際の暗号化鍵として使用される。したがって、全てのフレームを通じて同じ鍵の値で暗号化されることがない。
【００２１】
「１フレームのデータ構成および暗号化／復号化処理」
送信モジュール１０１および受信モジュール２０１の間で通信されるＲＦリモートコントロール信号の１フレームのフォーマットは、図４Ａに示すものである。１フレームの先頭にヘッダ部が位置し、その後にフレームカウンタ（４バイト）が挿入され、さらに、コマンド等のコード（暗号化ペイロードデータ）が位置する。ヘッダ部は、ＩＥＥＥ８０２．１５．４において規定されているフォーマットがそのまま利用される。ヘッダ部には、送り先のアドレス（pan ＿id、short address ）と、送り元アドレス（ pan＿id、short
address ）が記述される。
【００２２】
通信を行うには、事前に１対１のペアリングを行い、その際に双方のアドレスと、鍵が交換される。ペアリングした双方は、ペアリング直後に乱数により発生させた共通の値の鍵を交換し、お互いが保持し、以降の通信のペイロードの暗号化／復号化に利用する。暗号化ペイロードデータは、フレームカウント値と予め交換された鍵とから形成される暗号化鍵によって暗号化される。１フレームの最後にエラー検出用のＣＲＣ(cyclic redundancy code)が挿入される。ヘッダによってＲＦシステムが識別される。暗号化アルゴリズムは、一例としてＡＥＳが使用される。
【００２３】
１つのフレームを送る通信は、送り元と送り先が１つに限定される１対１の通信である。ヘッダ部にあるアドレスにより管理され、若し、ヘッダ部に別の送り元アドレス、送り先アドレスが書かれている場合には、フレームを受信しない。
【００２４】
図４Ｂに示すように、暗号化／復号化がなされる。送信モジュール１０１および受信モジュール２０１のそれぞれの不揮発性メモリには、ペアリング時に交換した鍵３０１および３１０が保存されている。これらの鍵３０１および３１０は、同じ値である。図２および図３においては、鍵記憶部１０８および鍵記憶部２１０にそれぞれ記憶されている鍵データが鍵３０１および３１０と対応する。
【００２５】
フレーム化送信部３０３が１フレームを送信する度に、送信モジュール１０１のフレームカウンタ３０２（図２におけるフレームカウンタ１０６）がインクリメントされる。フレームカウンタ３０２のフレームカウント値と鍵データ３０１とからＥＸ−ＯＲゲート３０４（図２におけるＥＸ−ＯＲゲート１０７）によって暗号化鍵が生成され、暗号化鍵によってペイロードデータが暗号化部３０５によって暗号化される。
【００２６】
フレーム化送信部３０３から図４Ａに示す伝送フォーマットを有するデータが受信モジュール２０１に送信され、フレーム受信判断部３１１が受信したフレームのフレームカウント値が受容値か否かを判断する。判断のために、フレームカウント値記憶部（４バイト）３１２に保存されているフレームカウント値が使用される。受信したフレームカウント値が保存フレームカウント値より大きい値のときは、受容値と判断され、暗号化ペイロードがＡＥＳ復号化部２１１に送られる。それ以外の時は、受容できない値と判定され、受信したフレーム全体が破棄され、次のフレームの受信を待つ待機状態となる。
【００２７】
フレーム受信判断部３１１において、フレームカウント値が受容値と判定されたフレームの暗号化ペイロードデータが復号化部３１３に供給され、暗号化ペイロードデータが復号される。復号化鍵は、ペアリング時に交換した鍵３１０とフレームカウント値記憶部（４バイト）３１２に保存されているフレームカウント値とをＥＸ−ＯＲゲート３１４に供給することによって生成される。
【００２８】
図５を参照して、図４の構成によってなされる処理の流れを説明する。送信モジュール１０１では、ステップＳＴ１において送信データが発生する。送信データは、上述したフレームフォーマットを有する。ステップＳＴ２において、フレームカウント値がフレームカウンタ３０２（不揮発性メモリ）から取得される。ステップＳＴ３において、フレームカウント値およびペアリング時に交換された鍵データから基に暗号化鍵が生成される。ステップＳＴ４において、データ（ペイロード）が暗号化部３０５によって暗号化される。
【００２９】
暗号化データがフレームフォーマットのデータ構成とされる（ステップＳＴ５）。ステップＳＴ６において、フレームフォーマットのデータが送信される。ステップＳＴ７において、フレームカウンタ３０２（不揮発性メモリ）のカウント値がインクリメントされる。以上の一連の処理によってデータ送信処理が終了する。
【００３０】
受信モジュール２０１では、送信モジュール１０１から送信されたデータ（ＲＦリモートコントロール信号）が受信される（ステップＳＴ１１）。受信したフレーム中のフレームカウント値がフレームカウント値記憶部（不揮発性メモリ）３１２に保存されているカウント値と比較される（ステップＳＴ１２）。ステップＳＴ１２がフレーム受信判断部３１１によりなされる処理である。
【００３１】
受信したフレームカウント値が保存フレームカウント値より大きいときは、受信したフレームが受容できるものと判定される。受容できるフレームの場合には、受信された暗号化ペイロードが復号化部３１３に送られ、フレームカウント値とペアリング時に交換された鍵データとから復号化鍵が生成される（ステップＳＴ１３）。ステップＳＴ１４において、復号化部３１３によって暗号化が復号される。復号されたデータが受信制御部に出力される。復号が正しく完了し、ペイロードを出力した時点で、受信したフレームのフレームカウント値がフレームカウント値記憶部３１２に保存される。
【００３２】
受信フレームカウント値が保存フレームカウント値より大きいという条件が満足されない場合には、受信したフレームが受容できないと判定される。受容できないと判定されるときは、受信したフレーム全体が破棄され、次のフレームの受信を待つ。以上の一連の処理によってデータ受信処理が終了する。
【発明の概要】
【発明が解決しようとする課題】
【００３３】
上述したように、ＲＦ４ＣＥ規格を実現するためには、送信側、受信側双方で、フレームカウンタの値を不揮発性メモリに記憶しなくては実現しない。不揮発性メモリは、送信モジュール１０１のフレームカウンタ１０６（３０２）並びに受信モジュール２０１のフレームカウント値記憶部２０８（３１２）である。送信モジュール１０１および受信モジュール２０１の何れか一方でカウント値が消えて元の値（＝１）に戻ると、通信ができなくなるか、セキュリティが保てなくなる問題が生じる。
【００３４】
「不揮発性メモリを使用する場合の問題点」
不揮発性メモリは、以下の特徴を有することが知られている。
１．書き込み後の消去回数に制限がある。
２．書き込み消去の際、電源電圧の制限を受ける。
３．書き込み途中で暴走するとプログラム破壊となる場合がある。
４．書き込み後の情報保持寿命が実用上存在する。
【００３５】
このような特徴を有する不揮発性メモリは、書き換え頻度が少ないプログラムデータを保存するために使用されていた。リモートコントロールシステムのように、リモートコントローラが頻繁に操作され、フレームカウント値の書き換えの頻度が多い用途には、不向きであった。さらに、リモートコントローラは、通常、電池を電源とするのが普通であり、電池電源を使用する場合には、問題が生じる。不揮発性メモリを使用することによる問題について以下に詳述する。
【００３６】
「１．書き込み後の消去回数に制限がある」ことによって生じる問題点１について説明する。リモートコントローラ（送信側）では、ボタンが押される度に、フレームカウンタが更新される。ボタンが連続押しされると、５０ｍsec毎に、フレームカウンタを更新し
、送出する必要がある。例えば、ユーザーが１秒間連続的にボタンを押したときは、２０回、フレームカウンタが更新される。
【００３７】
更新した値がＲＡＭのみに保持されていた場合、突然発生する電池の接触不良で電源が供給されなくなった場合や、静電ノイズによる動作不良が生じた場合、ＲＡＭの値が保持できない。電源の回復後、ボタンを押しても、どこまでフレームカウンタが進んだかが分からず、過去に送出したカウント値を再び送信することになり、受信側は、これを受け付けることができない。その結果、リモートコントローラによる操作が効かない事態が生じる。
【００３８】
受信側のフレームカウント値についても、同様である。受信した最も大きな値のカウント値をＲＡＭ上に記憶するのみでは、電源供給を故意に遮断するなどで、保持値を消すことができる。不揮発性メモリにフレームカウント値を記憶しておかないと、セキュリティ、通信が確保できない。
【００３９】
実際のシステムでは、送信モジュールおよび受信モジュールの両者とも制御用のワンチップマイクロコンピュータによって実現される。フレームカウント値を不揮発性メモリに記憶するため、マイクロコンピュータチップが持つフラッシュメモリの機能が使用される。フラッシュメモリを持たないマイクロコンピュータについては、外部に不揮発性メモリ専用チップ（ＥＥＰＲＯＭ(Electrical Erasable Programmable ＲＯＭ）等）が設けられる。
【００４０】
フラッシュメモリ上のデータの更新する場合、更新するデータが属するブロック内の全データを一旦消去しなければならない。したがって、更新すべきデータが含まれるブロック内の全データを揮発性メモリであるＲＡＭに一時的に退避させる。ＲＡＭ上でデータの更新作業がなされる。一方、フラッシュメモリ上のブロックが消去され、更新後のデータが消去済みのブロックに書き込まれるようになされる。フラッシュメモリにしても、ＥＥＰＲＯＭにしても、書き込み消去の回数に制限があり、少ないもので数百回程度、多いものでも数万回程度で寿命となってしまう。
【００４１】
仮に、フレームカウンタのカウント値が更新される毎に、1 つの領域のみに対して書き込み処理がなされると、直ぐに寿命となってしまうことになる。例えば、１００回の書き込み消去回数が保証されているものでは５秒で寿命となり、１万回の書き込み消去回数が保証されているものでは、５００秒（＝８分強）で寿命となってしまう。
【００４２】
ＲＦ４ＣＥ規格では、緩和策として、１０２４回に１回、不揮発性メモリに対して書き込み消去を行えば、問題なく動作する手段を規定している。これは、送信側がワークエリアを提供するＲＡＭ上に保持したカウント値を忘れた場合には、不揮発性メモリに保持している値に１０２４カウント値を加算して次回のフレームを送る仕様となっている。マイクロコンピュータにリセットがかかったりすると、カウント値を忘れる事態が生じる。これにより、１０２４回に１回の書き込みでも問題なく動作するようにされている。かかる緩和策により、寿命が約１０００倍に延びる。しかしながら、延びた寿命でも、コンスーマ機器の寿命としては、大きく不足している。
【００４３】
不揮発性メモリの寿命は、書き込み回数ではなく、消去ブロック毎の消去回数である。書き込み回数を増やすため、消去ブロックに対し、書き込むべきデータ大きさが小さい場合（例えば１／１０程度以下）であれば、消去したブロックをデータの大きさに分割する。例えば消去単位の１ブロックを例えば１ｋバイトとし、１ｋバイトを４バイト単位で区切る。そして、書き込みが発生する毎に一つづつに対して書き込むことで、消去回数に比べ、書き込み回数のみを増やす方法が提案されている。この方法では、書き込むべきデータの大きさに対し、消去ブロックの大きさが１０００倍の場合、１ブロックに１０００個のデータが書けるので寿命が１０００倍近くとできる。この方法は、カウント値（４バイト）に対し、１ｋバイトの不揮発性メモリ領域が必要となる。
【００４４】
さらに、消去ブロックを複数使用し、分散して書き込んでいくことで、書き込みに対する１消去ブロック当たりの消去回数を減らす方法が提案されている。この方法で、１０倍の寿命を得るために、１０倍の消去ブロックのメモリが必要となる。ＲＦ４ＣＥ規格用にワンチップマイクロコンピュータを供給しようとしているメーカーは、１消去ブロック内の複数回利用と、複数の消去ブロックの利用により書き込み回数を増やす案を提案している。しかしながら、カウント値（４バイト）に対し、４ｋバイトもの不揮発性メモリ領域が必要となっているものまである。このように、消去回数を減少させる方法は、大きなメモリ容量を使用する問題がある。
【００４５】
「２．書き込み消去の際、電源電圧の制限を受ける」ことによって生じる問題点２について説明する。リモートコントローラ（コマンダ）は、電源に電池を用いることが多い。電池寿命が短いと、ユーザーにとって利用コストと電池交換の手間が増えるので、なるべく電池の交換を減らすために、電池寿命を長くすることが求められる。
【００４６】
電池寿命は、電流を抑えることと、動作しなくなる電圧を低くすることの２つにより改善される。しかしながら、ワンチップマイクロコンピュータの機能としてフラッシュメモリを利用する場合、マイクロコンピュータの動作可能電圧よりも、フラッシュメモリの書き込み消去時の電圧の方が高い仕様となっているものが大半である。
【００４７】
一例として、あるマイクロコンピュータは、動作電圧が２．０Ｖ以上の電源を必要とし、フラッシュメモリの書き込み消去時には、２．７Ｖの電源を必要とする。したがって、ＲＦ４ＣＥ規格のように、通常利用時に不揮発性メモリへの書き込み消去が発生する場合には、電池の電圧がフラッシュメモリの書き込み消去電圧以下になると、電池が寿命となり、電池交換が発生する。
【００４８】
「３．書き込み途中で暴走するとプログラム破壊となる場合がある」ことによって生じる問題点３について説明する。リモートコントローラは、電池の利用が一般的である。利用中に、接触不良等で、回路に電圧が供給されず、マイクロコンピュータプログラムが正しく動作しなくなるケースを想定する必要がある。さらに、静電気などで回路やマイクロコンピュータのプログラム正しく動作しなくなるケースを想定する必要がある。いずれの場合もリモートコントローラが動作しなくなるが、単なるマイクロコンピュータプログラムの暴走の場合、電池を入れ直せば復帰する。
【００４９】
しかしながら、不揮発性メモリの書き込み消去途中で、プログラム暴走が発生すると、マイクロコンピュータのプログラムがフラッシュメモリ上に書かれている場合、単にデータが書き込めないだけでなく、プログラムそのものが破壊されてしまう場合がある。プログラムが破壊された場合は、電池の入れ直しによっては復帰せず、リモートコントローラ自身を交換することとなる。
【００５０】
「４．書き込み後の情報保持寿命が実用上存在する」ことによって生じる問題点４について説明する。不揮発性メモリの書き込み回数を増やす一般的方法がある。この方法は、消去書き込みに際し、書き込み時間を減らすことで、情報を弱く書く方法である。しかしながら、この書き込み方法では、データ保持時間が短くなる。書き込み回数と、データの保持寿命のバランスを取ることで、最適化を図ることも可能である。しかしながら、リモートコントローラのように、使われずに長期間放置される場合には、このような方法は適さない。
【００５１】
「カウンタ動作上の問題点」
フレームカウンタは、ＲＦ４ＣＥ規格では、４バイトとされている。したがって、カウント可能な値は、4294967295（約４２億）ステップとなり、リモートコントローラのボタンを連続的に押したことを想定して、５０ｍsec毎に1 カウント進んだ場合でも、約６．
８年分の量となる、通常の使用では、カウントフルが発生しない。
【００５２】
しかしながら、悪意を持った者が、ＲＦリモートコントロール信号のフレームを傍受し、フレームカウンタの値をカウントフル値に近い改ざんを行ったフレームを受信側に送ったと仮定する。この場合、受信側のカウンタ値が一気に増え、正規のリモートコントローラが動作しなくなったり、受信側の受信可能回数の減少といった問題が生じてしまう。
【００５３】
したがって、この発明の目的は、上述したような不揮発性メモリに関連する問題、並びにフレームカウンタに関連する問題が解決することができるデータ送信方法および装置、データ通信方法および装置を提供することにある。
【課題を解決するための手段】
【００５４】
上述の課題を解決するために、この発明は、カウント値が無効な場合に、受信装置に対して問い合わせを行い、受信装置において生成された第１の乱数を受信して第１の乱数から生成された最初のカウント値ｎを揮発性メモリに記憶する問い合わせステップと、
カウント値ｎによって送信するデータを暗号化する暗号化ステップと、
カウント値ｎと暗号化データとを含むフレームフォーマットのデータを送信する送信ステップと、
データの送信がなされる度に、揮発性メモリに記憶されるカウント値を変更するカウント値変更ステップとからなり、
変更後の値が設定される範囲を超えると、受信装置に対して問い合わせを行い、受信装置において生成された第１の乱数と異なる第２の乱数を受信して第２の乱数から生成された最初のカウント値ｎ’（≠ｎ）を揮発性メモリに記憶し、
カウント値ｎ’を使用して、暗号化ステップ、送信ステップ、カウント値変更ステップとを繰り返すデータ送信方法である。
【００５５】
この発明は、カウント値が無効な場合に、受信装置に対して問い合わせを行い、受信装置において生成された第１の乱数を受信して第１の乱数から生成された最初のカウント値ｎを揮発性メモリに記憶する問い合わせ手段と、
カウント値ｎによって送信するデータを暗号化する暗号化手段と、
カウント値ｎと暗号化データとを含むフレームフォーマットのデータを送信する送信手段と、
データの送信がなされる度に、揮発性メモリに記憶されるカウント値を変更するカウント値変更手段とからなり、
変更後の値が設定される範囲を超えると、受信装置に対して問い合わせを行い、受信装置において生成された第１の乱数と異なる第２の乱数を受信して第２の乱数から生成された最初のカウント値ｎ’（≠ｎ）を揮発性メモリに記憶し、
カウント値ｎ’を使用して、暗号化手段による暗号化処理、送信手段による送信処理、およびカウント値変更手段によるカウント値変更処理を繰り返すデータ送信装置である。
【００５６】
この発明は、送信装置と受信装置とが双方向通信可能な無線伝送路を介して通信を行うデータ通信方法において、
データ送信方法は、
カウント値が無効な場合に、受信装置に対して問い合わせを行い、受信装置において生成された第１の乱数を受信して第１の乱数から生成された最初のカウント値ｎを揮発性メモリに記憶する問い合わせステップと、
カウント値ｎによって送信するデータを暗号化する暗号化ステップと、
カウント値ｎと暗号化データとを含むフレームフォーマットのデータを送信する送信ステップと、
データの送信がなされる度に、揮発性メモリに記憶されるカウント値を変更するカウント値変更ステップとからなり、
変更後の値が設定される範囲を超えると、受信装置に対して問い合わせを行い、受信装置において生成された第１の乱数と異なる第２の乱数を受信して第２の乱数から生成された最初のカウント値ｎ’（≠ｎ）を揮発性メモリに記憶し、
カウント値ｎ’を使用して、暗号化ステップ、送信ステップ、カウント値変更ステップとを繰り返し、
データ受信方法は、
問い合わせを受信し、第１の乱数を受信装置に対して送信する問い合わせ応答ステップと、
送信ステップで送信されたフレームフォーマットのデータを受信する受信ステップと、
受信されるカウント値が保持されている値より増加または減少しており、且つ設定される範囲内か否かを判定する判定ステップと、
判定ステップにおいて、受信されるカウント値が保持されているカウント値と一致していると判定されると、受信されるカウント値を使用して復号化鍵を生成し、生成される復号化鍵によって受信されたフレーム内の暗号化データを復号し、
受信されるカウント値が保持されているカウント値と一致していないと判定されると、受信されたフレームが破棄される復号ステップと、
フレーム内の暗号化データを復号されると、保持されている値を変更するカウント値変更ステップとからなるデータ通信方法である。
【００５７】
この発明は、送信装置と受信装置とが双方向通信可能な無線伝送路を介して通信を行うデータ通信装置において、
データ送信装置は、
カウント値が無効な場合に、受信装置に対して問い合わせを行い、受信装置において生成された第１の乱数を受信して第１の乱数から生成された最初のカウント値ｎを揮発性メモリに記憶する問い合わせ手段と、
カウント値ｎによって送信するデータを暗号化する暗号化手段と、
カウント値ｎと暗号化データとを含むフレームフォーマットのデータを送信する送信手段と、
データの送信がなされる度に、揮発性メモリに記憶されるカウント値を変更するカウント値変更手段とからなり、
変更後の値が設定される範囲を超えると、受信装置に対して問い合わせを行い、受信装置において生成された第１の乱数と異なる第２の乱数を受信して第２の乱数から生成された最初のカウント値ｎ’（≠ｎ）を揮発性メモリに記憶し、
カウント値ｎ’を使用して、暗号化手段による暗号化処理、送信手段による送信処理、およびカウント値変更手段によるカウント値変更処理を繰り返し、
データ受信装置は、
問い合わせを受信し、第１の乱数を受信装置に対して送信する問い合わせ応答手段と、
送信手段で送信されたフレームフォーマットのデータを受信する受信手段と、
受信されるカウント値が保持されている値より増加または減少しており、且つ設定される範囲内か否かを判定する判定手段と、
判定手段において、受信されるカウント値が保持されているカウント値と一致していると判定されると、受信されるカウント値を使用して復号化鍵を生成し、生成される復号化鍵によって受信されたフレーム内の暗号化データを復号し、
受信されるカウント値が保持されているカウント値と一致していないと判定されると、受信されたフレームが破棄される復号手段と、
フレーム内の暗号化データを復号されると、保持されている値を変更するカウント値変更手段とからなるデータ通信装置である。
【発明の効果】
【００５８】
この発明によれば、送信側および受信側の何れにいても、不揮発性メモリに対してフレームカウント値を記憶することが必要ないので、不揮発性メモリに関する上述した問題点を生じない利点がある。この発明では、フレームカウント値がフルカウント値に近い値に改ざんされても、その影響を少なくすることができる。
【図面の簡単な説明】
【００５９】
【図１】この発明を適用できる通信装置の概略的構成を示すブロック図である。
【図２】この発明を適用できる送信装置の一例のブロック図である。
【図３】この発明を適用できる受信装置の一例のブロック図である。
【図４】この発明の説明のために使用する参考例におけるフレームフォーマットを示す略線図、並びに処理の説明のための略線図である。
【図５】参考例の処理の流れを示すシーケンス図である。
【図６】この発明の処理の流れを示すシーケンス図である。
【図７】この発明の処理の流れを示すシーケンス図である。
【図８】この発明の第１の実施の形態における送信側（リモートコントローラ）の説明に用いるブロック図である。
【図９】この発明の第１の実施の形態における受信側の説明に用いるブロック図である。
【図１０】この発明の第１の実施の形態における送信側の処理の流れを示すフローチャートである。
【図１１】この発明の第１の実施の形態における受信側の処理の流れを示すフローチャートである。
【図１２】この発明の第１の実施の形態における受信側の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００６０】
以下、この発明の実施の形態について説明する。なお、説明は、以下の順序で行う。
＜１．参考例＞
＜２．第１の実施の形態＞
＜３．変形例＞
なお、以下に説明する実施の形態は、この発明の好適な具体例であり、技術的に好ましい種々の限定が付されているが、この発明の範囲は、以下の説明において、特にこの発明を限定する旨の記載がない限り、これらの実施の形態に限定されないものとする。
【００６１】
＜１．参考例＞
この発明の理解を容易とするために、参考例について図６を参照して説明する。送信モジュール１０１では、ステップＳＴ１において送信データが発生する。送信データは、図４Ａを参照して説明した伝送フォーマットを有する。送信データが発生すると、受信モジュール２０１に対してフレームカウント値の問い合わせがなされる（ステップＳＴ２１）。
【００６２】
受信モジュール２０１は、問い合わせを受信すると、ステップＳＴ２２において、ハードウェアまたはソフトウェアの乱数発生装置によって乱数を生成する。乱数が受信モジュールの揮発性メモリ例えばＲＡＭに保存されると共に、フレームカウント値として送信モジュール１０１に対して通知される（ステップＳＴ２３）。破線で囲んで示すように、フレームカウント値の問い合わせステップＳＴ２１と、フレームカウント値発生のステップＳＴ２２と、フレームカウント値通知ステップＳＴ２３とが追加された処理である。
【００６３】
ステップＳＴ２３において受信したフレームカウント値を使用して、暗号化鍵が生成され（ステップＳＴ３）、データ（ペイロード）が暗号化され（ステップＳＴ４）、暗号化データがフレームフォーマットのデータ構成とされる（ステップＳＴ５）。ステップＳＴ６において、フレームフォーマットのデータが送信される。以上の一連の処理によってデータ送信処理が終了する。フレームカウント値を記憶する不揮発性メモリが不要とされている。
【００６４】
受信モジュール２０１では、送信モジュール１０１から送信されたデータが受信される（ステップＳＴ１１）、受信したフレーム中のフレームカウント値がフレームカウント値記憶部（揮発性メモリ例えばＲＡＭ）に保存されているカウント値と比較される（ステップＳＴ２４）。すなわち、受信フレーム中のフレームカウント値と保存されている保存フレームカウント値とが一致するか否かが判定される。
【００６５】
受信したフレームカウント値が保存フレームカウント値と一致するときは、受信したフレームが受容可能であると判定される。受容可能なフレームの場合には、フレームカウント値とペアリング時に交換された鍵データとから復号化鍵が生成される（ステップＳＴ１３）。ステップＳＴ１４において、暗号化が復号される。
【００６６】
受信フレームカウント値が保存フレームカウント値と一致するという条件が満足されない場合には、受信したフレームが受容できないものと判定される。受容できないと判定されるときは、受信したフレーム全体が破棄され、次のフレームの受信を待つ。以上の一連の処理によってデータ受信処理が終了する。
【００６７】
上述した参考例は、ペアリング後、フレームの送信受信に際しフレームカウンタ値を不揮発記憶に保存しなくても同等のセキュリティーを得ることができる。ここまでの説明で、送信側、受信側を定義して説明したが、ＲＦ４ＣＥ規格で用いられる物理層の規格は、ＩＥＥＥ８０２．１５．４を利用している。この規格は、双方向通信機能を含んでいる。したがって、受信側も送信側に対しデータを送る双方向通信が可能である。
【００６８】
参考例は、受信側においてフレームカウント値を乱数により発生させ、送信側がその値を問い合わせ、戻ってきた値をフレームカウント値として利用する。これにより、送信側は、カウンタ値を消失しても受信側に問い合わせれば済むため、カウント値を不揮発性メモリに記憶しておく必要がない。一方、受信側も送信側から問いわせが来たところで乱数を発生させ、その値を送信側に戻し、戻した値を次の受信可能な値とすることで、カウント値を不揮発記憶させておく必要はない。
【００６９】
フレームカウンタの問い合わせをする際、特に暗号化の必要はなく、傍受によりこの値が取られても、直ぐに正規の送信部がこの値で送信を行えば、その値は以降利用不可となるため、セキュリティーは維持可能である。
【００７０】
＜２．第１の実施の形態＞
「この発明の一実施の形態の概要」
参考例では、フレームを送信する毎に、送信側は受信側にフレームカウント値を問い合わせることになる。したがって、本来はフレーム送信のみであったのに対し、「フレームカウンタ問い合わせステップ」および「フレームカウント値通知ステップ」が増加するので、フレームの転送効率の低下や、乱数発生処理に要する時間による応答速度の低下を招くおそれがある。
【００７１】
この発明の一実施の形態では、フレームカウント値の問い合わせを１回行うと、得られたカウント値をベースに、設定したあるカウント値まで、受信側はフレームを受け付けるようにすることで、「フレームカウンタ問い合わせステップ」の回数を減らすことが可能となる。
【００７２】
図７に示すように、有効なフレームカウント値が保持されていない状態において、フレームカウント値の問い合わせがなされる（ステップＳＴ２１）。受信側において、乱数ｎが発生される（ステップＳＴ２２）。乱数ｎが受信側から送信側へ送信される（ステップＳＴ２３）。
【００７３】
最初のデータ送信要求Ｔ０が発生すると、データがフレームカウント値ｎで暗号化され、フレームカウント値ｎと暗号化データを含むフレームが送信され、そのフレームが受信される（データ受信Ｒ０）。受信側のフレームカウント値が（＋１）とされる。その結果、受容可能範囲の下限値が＋１され、（ｎ＋１）以上で（ｎ＋ｍ−１）以下が受容可能範囲とされる。
【００７４】
次に、データ送信要求Ｔ１が発生すると、フレームカウント値が（ｎ＋１）とされ、送信される。データ受信Ｒ１において、保存されているフレームカウント値と一致するので、受信データが受容可能なデータと判定され、復号される。受信側のフレームカウント値が（ｎ＋１）とされる。その結果、受容可能範囲の下限値が＋１され、（ｎ＋２）以上で（ｎ＋ｍ−１）以下が受容可能範囲とされる。
【００７５】
このように、データ送信要求毎に、送信側のフレームカウント値がインクリメントされる。受信側では、データ受信毎にフレームカウント値がインクリメントされる。インクリメントされた値がＲＡＭ（揮発性メモリ）上に、次回、「フレームカウンタ問い合わせステップ」が行われるまで保持される。受信側は「フレームカウンタ問い合わせステップ」に応答して乱数ｎを発生させると、次に送られてくる受容可能なフレームカウンタの範囲をｎ以上、（ｎ＋ｍ−１）以下とする。ｍは、システムにより固定値を設定するか、予め、送信側と受信側との間で交換しておく。例えば乱数ｎと一緒に受信側からｍの値を送信しても良い。
【００７６】
受信側は、自己が発行したフレームカウント値ｎから（ｎ＋ｍ−１）までの間にあり、且つ既に受信した値より大きい値のフレームカウント値を持つフレームのみを受容可能なデータとして受信する。例えば図７中のデータ送信要求Ｔ３に関しては、（ｎ＋３）以上で（ｎ＋ｍ−１）以下のフレームカウント値が受容可能範囲であるので、フレームカウント値が（ｎ＋２）以下のフレームは、受容可能なデータではないと判定される。例えばデータ送信要求Ｔ４において、フレームカウント値が（ｎ〜ｎ＋ｍ−１）の範囲外のフレームを送信すると、受信側で受容可能なデータではないものとして破棄される。
【００７７】
送信側は、フレームをｍ回送信して（ｍ＋１）回目のフレームカウント値（ｎ＋ｍ）を持つフレームを送信すると、受信側は、そのフレームを受信しないことが分かっている。したがって、事前に、フレームカウント値の問い合わせを再度行い、ｎと異なる乱数ｎ’をフレームカウント値として取得する。
【００７８】
受容可能なデータであることを示すフレームカウント値の範囲ｍの値は、任意に設定することができる。しかしながら、ｍの値が小さいと、「フレームカウンタ問い合わせステップ」の回数が増え、伝送効率が低下する。ｍの値が大きいと、悪意の第三者がＲＦリモートコントロール信号を傍受してフレームカウント値をカウントフル値に近い値を改ざんしたフレームを送信した場合の影響が大きくなる。この場合、フレームカウント値が急激に増加し、正規のリモートコントローラが動作できなくなる。
【００７９】
適当なｍの値は、例えば１０２４程度である。このような値であれば、フレームカウント値をカウントフル値に近い値を改ざんしたフレームが送信された場合に、リモコンのボタンを押し続ければ良い。例えば５０ｍsec毎にフレームが発生するので、数秒程度で「
フレームカウンタの問い合わせステップ」が新たに発生し、回復することができる。さらに、フレームカウンタは、乱数により発生させるので、厳密には、同じ値を２度使用するおそれがある。しかしながら、４バイトの場合では、約４２億通りの乱数を発生できるので、１つの乱数が利用期間に一致する可能性は極めて低い。
【００８０】
フレームカウンタのビット数は、４バイトに限らず、セキュリティーの要求レベルに応じ、長さを最適にすれば良い。さらに、フレームカウンタの４バイトの全体を乱数とする。これ以外に、例えばｍを１０２４（２の１０乗）とした場合、４バイト（３２ビット）の内の２２ビットを乱数に割り当て、下位側の１０ビットをインクリメントするカウント値に割り当てるようにしても良い。
【００８１】
「送信側の構成および動作」
図８を参照してこの発明の一実施の形態の送信モジュール（リモートコントローラ）の構成について説明する。この発明の一実施の形態のシステム全体の構成は、図１を参照して説明したものと同様である。リモートコントローラ１００に送信側制御部１０３が設けられ、キーマトリクスをユーザが操作することによって、リモートコントロールのコマンド（コード）が発生する。さらに、リモートコントローラ１００は、電池を電源とするものである。
【００８２】
データインターフェース４０１に対して送信制御部からの送信すべきコード（ペイロードデータ）が供給される。ペイロードデータが例えばＡＥＳのデータ暗号化部４０２において暗号化される。暗号化部４０２からの暗号化ペイロードデータがフレーム生成部４０３に供給される。フレーム生成部４０３において、図４Ａに示すようなフォーマットのデータが構成される。フレーム生成部４０３からのデータがフレーム送信部４０４に供給され、フレーム送信部４０４の出力データが受信モジュールに対して送信される。
【００８３】
フレーム送信部４０４において、送信データのパケット化の処理、変調処理等がなされる。図示せずも送信アンテナおよび受信アンテナを介してＲＦリモートコントロール信号が受信モジュールに対して送信される。フレーム送信が終わったところでインクリメント指示がフレームカウンタ制御部４１０に対して供給される。
【００８４】
データインターフェース４０１において、送信データが発生したことを通知するためのデータ発生通知が生成され、データ発生通知がフレームカウント値保持確認部４０５に供給される。フレームカウント値保持確認部４０５がフレームカウンタ４０７に有効なフレームカウント値が保持されているか否かを判定する。フレームカウンタ４０７は、例えば４バイトの長さである。フレームカウンタ４０７は、フレームカウンタ制御部４１０からのインクリメント指示によってインクリメントし、フレームカウンタ制御部４１０からの無効化指示によって、その内容が無効な値とされる。
【００８５】
有効でない（無効な）フレームカウント値は、フレームカウント値が０、カウント可能な最大値、または、使用されることがない所定値である。フレームカウント値がこれらの何れかの値となった場合が無効と定義される。したがって、フレームカウント値保持確認部４０５がフレームカウンタ４０７のフレームカウント値がこれらの何れかの値の場合に、フレームカウント値が無効であると判定する。
【００８６】
フレームカウント値保持確認部４０５がフレームカウンタ４０７のフレームカウント値が無効であると判定すると、フレームカウント値問い合わせ取得部４０６に対して、問い合わせを行うように指示する。この指示によって、フレームカウント値の問い合わせがなされ、フレームカウント値の通知を受ける。取得されたフレームカウント値がフレームカウンタ４０７にセットされる。フレームカウント値の問い合わせと、フレームカウント値の通知とのための双方向通信は、ペイロードデータと同様の通信によりなされる。しかしながら、暗号化、フレームカウント値を使用した処理等がなされない。但し、ペイロードデータデータに関する通信とは別個に、暗号化処理、別のフレームカウント値を使用する処理を行うようにしても良い。
【００８７】
フレームカウンタ４０７のカウント値が暗号化鍵生成部４０８に供給される。暗号化鍵生成部４０８において、フレームカウント値と鍵記憶部に保持されている鍵データとの排他的論理和によって、暗号化鍵が生成される。暗号化鍵がデータ暗号化部４０２に供給され、ペイロードデータが暗号化される。さらに、生成されたフレームカウント値がフレーム生成部４０３に供給され、１フレームの送信データ内に挿入される。
【００８８】
フレームカウンタ制御部４１０がフレームカウンタ４０７をインクリメントするための信号を発生すると共に、インクリメントの回数が揮発性メモリ例えばマイクロコンピュータチップのＲＡＭからなるインクリメント回数保持部４０９に保持される。フレームカウンタ制御部４１０は、インクリメントの回数がｍに達した場合に、無効化指示をフレームカウンタ４０７に対して供給し、フレームカウンタ４０７の値を無効な値とする。
【００８９】
送信モジュールの処理について図１０のフローチャートを参照して説明する。この処理は、図８に示す構成要素（ハードウェアおよび／またはソフトウェア）により行われる。ステップＳＴ３１において、送信データが発生する。送信データがデータインターフェース４０１に供給されると、フレームカウント値保持確認部４０５によって、有効なフレームカウント値が保持されているか否かが判定される（ステップＳＴ３２）。
【００９０】
有効なフレームカウント値が保持されていると判定されると、処理がステップＳＴ３４に移る。有効なフレームカウント値が保持されていないと、ステップＳＴ３３において、フレームカウント値の問い合わせがなされる。受信側の処理ＳＴ５０によって、フレームカウント値が通知され、フレームカウント値が取得される。ステップＳＴ３３は、フレームカウント値問い合わせ取得部４０６によりなされる処理である。
【００９１】
ステップＳＴ３４において、暗号化鍵生成部４０８によって、有効なフレームカウント値または取得されたフレームカウント値を基に暗号化鍵が生成される。ステップＳＴ３５において、データ暗号化部４０２によって、暗号化鍵によりデータ（ペイロードデータ）が暗号化される。フレーム生成部４３によって、暗号化ペイロード、フレームカウント値、ヘッダ部等によって１フレームのデータが生成される（ステップＳＴ３６）。
【００９２】
生成されたフレーム構成のデータがフレーム送信部４０４に供給され、ステップＳＴ３７において、フレーム送信部４０４によって、ＲＦリモートコントロール信号が送信される。受信側は、送信されてきたＲＦリモートコントロール信号の受信処理ＳＴ６０を行う。フレーム送信のステップＳＴ３７は、双方向通信の必要がないものであるが、受信側から送信側に対してフレームカウンタの無効化の指示を行う場合には、双方向通信が行われる。
【００９３】
フレーム送信が終了すると、ステップＳＴ３８において、フレームカウンタ制御部４１０によってフレームカウント値がインクリメントされる。ステップＳＴ３９において、フレームカウンタのインクリメント回数がｍ回以上か否かがフレームカウンタ制御部４１０によって判定される。ｍ回以上でないと判定されると、データ送信が終了する（ステップＳＴ４１）。そして、ユーザのボタン押し等に応答して送信データが発生するのを待機する状態となる。若し、ステップＳＴ３９において、インクリメント回数がｍ回以上と判定されると、上限に達したために、ステップＳＴ４０において、フレームカウント値が無効化される。そして、データ送信処理が終了する（ステップＳＴ４１）。
【００９４】
「受信側の構成および動作」
図９を参照してこの発明の一実施の形態の受信モジュール（テレビジョン受像機等の電子機器に設けられている）の構成について説明する。送信モジュールからのフレームカウント値問い合わせがカウント値問い合わせ受信部５０１によって受信される。カウント値問い合わせ受信部５０１が問い合わせの受信に応答して乱数発生部５０２に対して、乱数発生の指示を供給する。発生した乱数がフレームカウント値の初期値（ｎで表す）となる。この乱数がカウント値通知部５０３に供給され、送信側に対してカウント値の初期値が通知される。
【００９５】
カウント値初期値ｎがカウンタ下限値保持部５０５に供給される。設定されているフレームカウント値の変化範囲をｍ（０，１，・・・、ｍ−１）で表すと、カウント値の初期値に（ｍ−１）を加えた値（ｎ＋ｍ−１）が有効なカウント値の上限値となる。カウンタ上限値がカウンタ上限値保持部５０４に保持される。カウンタ上限値保持部５０４およびカウンタ下限値保持部５０５は、揮発性メモリ例えばマイクロコンピュータチップのＲＡＭによって構成される。
【００９６】
カウンタ下限値保持部５０５に保持されるフレームカウント値は、フレームを受信する毎に、受信したフレームカウント値に＋１した値に更新される。加算する値は、フレームを受信する毎に設定された値（１以外の値）を加算するようにしても良い。この場合では、送信側において、同様にフレームカウント値が変更される。
【００９７】
図示せずも送信モジュールから受信アンテナを介してＲＦリモートコントロール信号がフレーム受信部５０７に供給される。フレーム受信部５０７において、受信データの復調処理、パケット分解の処理、フレーム分解の処理等がなされる。受信フレーム中のフレームカウント値（ｙで表す）がフレームカウント値比較部５０６において、受容可能範囲内の値か否かが判定される。
【００９８】
カウント値下限値（ｎ＋ｘ）（ｘ＝０，１，２，・・・）とカウント値上限値（ｎ＋ｍ−１）とがフレームカウント値比較部５０６に供給される。フレームカウント値比較部５０６は、（ｎ＋ｘ）≦ｙ≦（ｎ＋ｍ−１）の関係が満足される場合には、受信フレームカウント値ｙが受容可能範囲内の値であると判定する。そうでない場合には、受容できない値と判定される。判定結果が受容可能な場合には、フレームカウント値ｙが復号化鍵生成部５０８に供給されると共に、受信されたペイロードデータがデータ復号化部５０９に供給される。判定結果が受容可能でない場合には、受信されたフレームのデータが破棄されると共に、受容可能範囲が全て無効とされる。
【００９９】
復号化鍵生成部５０８において、フレームカウント値ｙと鍵記憶部に保持されている鍵データとの排他的論理和によって、復号化鍵が生成される。復号化鍵がデータ復号化部５０９に供給され、ペイロードデータが復号化される。さらに、カウンタ下限値保持部５０５に対して、保持されている下限値をインクリメント（＋１）する指示が発生する。復号化されたデータが受信側制御部２０３（図１参照）に供給され、電子機器がリモートコントロールされる。
【０１００】
なお、受信側の初期化（リセット）直後は、送信側の「フレームカウンタ問い合わせステップ」等によって、有効なカウント値がセットされるまでの期間、カウンタの保持値（上限値、下限値）が無効となる。カウンタの保持値（上限値、下限値）が無効の場合、受信側は、送られてくるフレームカウンタの値が正しいかどうか判断できなくなる。この結果、フレームを受信できない状態となる。
【０１０１】
この場合は、送信側がフレームカウント値がフルカウントになるまでデータを送信し続ければ、「フレームカウント値問い合わせステップ」が発生し、新しいフレームカウント値が送受信側にセットされ、復帰する。しかしながら、値ｍが大きい場合、送信側フレームカウント値がフルカウントになり、「フレームカウント値問い合わせステップ」が発生するまでの時間が長くなる。
【０１０２】
このような復帰が遅くなる問題の対策として、受信側のカウンタ保持値が無効の時に、受信側がフレームデータを受信した場合、送信側のフレームカウンタの無効化指示の信号を送信側に送る。送信側が無効化指示の信号にしたがって、直ぐに送信側フレームカウンタの無効化と「フレームカウント値問い合わせステップ」を実行する。この処理によって復帰までの時間を短縮できる。
【０１０３】
他の方法として、受信側は、受信側のカウンタの保持値が無効の場合、最初に受信したフレームのフレームカウント値から、＋ｍの値までを有効とするように、受信側のカウンタの保持値をセットし、以降、カウンタの保持値は有効として処理を行う。この処理によって、直後に無効となるフレームデータを無くすと共に、一定のカウント値を受け付けている間に、送信側でフレームカウンタ問い合わせが発生することになり、短時間に復帰を図ることができる。
【０１０４】
受信モジュールの処理について図１１および図１２のフローチャートを参照して説明する。この処理は、図９に示す構成要素（ハードウェアおよび／またはソフトウェア）により行われる。図１１は、送信モジュールからのフレームカウント値の問い合わせに対する処理（図１０中の処理ＳＴ５０）を詳細に示す。
【０１０５】
ステップＳＴ５１において、カウント値問い合わせ受信部５０１がフレームカウント値問い合わせを受信する。ステップＳＴ５２において、乱数発生部５０２に対して乱数発生指示が供給され、乱数が発生する。乱数がフレームカウント値の初期値ｎである。
【０１０６】
ステップＳＴ５３において、発生した乱数（フレームカウント値の初期値ｎ）がカウント値通知部５０３によって送信側に通知される。ステップＳＴ５４において、カウント値初期値ｎがカウンタ下限値保持部５０５にセットされ、カウンタ上限値（ｎ＋ｍ−１）がカウンタ上限値保持部５０４にセットされる。以上の処理によって、フレームカウント値問い合わせに対する処理が終了する（ステップＳＴ５５）。
【０１０７】
図１２は、送信モジュールからのＲＦリモートコントロール信号を受信した場合の受信処理（図１０中の処理ＳＴ６０）を詳細に示す。ステップＳＴ６１において、フレーム受信部５０７がＲＦリモートコントロール信号を受信する。
【０１０８】
ステップＳＴ６２において、受信されたフレームカウント値ｙがフレームカウント値比較部５０６によって受容可能範囲内の値であるか否かが判定される。（ｎ＋ｘ）≦ｙ≦（ｎ＋ｍ−１）の関係が満足される場合には、受信フレームカウント値ｙが受容可能範囲内の値であると判定する。そうでない場合には、受容できない値と判定される。
【０１０９】
ステップＳＴ６２において、受信されたフレームカウント値が受容可能範囲内でないと判定されると、そのフレームのデータが破棄されると共に、ステップＳＴ６６において、受容可能範囲（保持されている下限値および上限値）が無効とされる。そして、データの受信処理が終了する。
【０１１０】
ステップＳＴ６２において、受信されたフレームカウント値が受容可能範囲内であると判定されると、ステップＳＴ６３において、復号化鍵生成部５０８によって、受信したフレームカウント値を基に復号化鍵が生成される。ステップＳＴ６４において、データ復号化部５０９によってペイロードデータが復号される。ステップＳＴ６５において、受信したフレームカウント値を＋１した値が次回の受容可能範囲の下限値として、カウンタ下限値保持部５０５にセットされる。以上の処理でデータ受信処理が終了する（ステップＳＴ６７）。
【０１１１】
＜３．変形例＞
この発明は、上述の実施の形態に限定されるものではなく、この発明の技術的思想に基づく各種の変形が可能である。例えば受信側の「フレームカウント値問い合わせ受信ステップＳＴ５１（図１１）」の後に、乱数を発生させている。しかしながら、フレームカウント値問い合わせに対する処理が終了するステップＳＴ５５の後に、次回の問合せに備えて乱数を生成し、生成した乱数を保持しておくことによって、応答を速くすることができる。
【０１１２】
さらに、上述した説明では、フレームカウント値が増加する方向として説明したが、減少する方向であっても良い。その場合には、下限値が固定とされ、上限値が送信の度にデクリメントするようになされる。この発明は、例えば電子機器からリモートコントローラに対する通信を可能とする場合に対しても適用できる。
【符号の説明】
【０１１３】
１００・・・リモートコントローラ
１０１・・・送信モジュール
１０３・・・送信制御部
１０４・・・キーマトリクス
２００・・・テレビジョン受像機
２０１・・・受信モジュール
２０３・・・受信制御部
４０２・・・データ暗号化部
４０３・・・フレーム生成部
４０５・・・フレームカウント値保持確認部
４０６・・・フレームカウント値問い合わせ取得部
４０９・・・インクリメント回数保持部
４１０・・・フレームカウンタ制御部
５０１・・・カウント値問い合わせ受信部
５０２・・・乱数発生部
５０３・・・カウント値通知部
５０４・・・カウンタ上限値保持部
５０５・・・カウンタ下限値保持部
５０６・・・フレームカウント値比較部
【図１】
2010272984.tif 000003
【図２】
2010272984.tif 000004
【図３】
2010272984.tif 000005
【図４】
2010272984.tif 000006
【図５】
2010272984.tif 000007
【図６】
2010272984.tif 000008
【図７】
2010272984.tif 000009
【図８】
2010272984.tif 000010
【図９】
2010272984.tif 000011
【図１０】
2010272984.tif 000012
【図１１】
2010272984.tif 000013
【図１２】
2010272984.tif 000014