(57)【要約】【課題】送信側でシーケンス番号が電源OFFなどにより喪失された場合にも、正常な通信が可能な通信システムを提供する。【解決手段】順次更新されるシーケンス番号を含むデータを送信する送信部と、上記送信部からデータを受信し、受信データのシーケンス番号が所定条件を満たしているとき受信データを受け入れる受信部からなる通信システムにおいて、前記送信部は、シーケンス番号の上位桁と下位桁を記憶するカウンタと、データ送信時にシーケンス番号の下位桁を更新すると共に電源が入力された起動時に上位桁を更新しながらデータを送信する送信制御部を有し、前記受信部は、前記送信部から受信したデータのシーケンス番号と前の受信データのシーケンス番号を比較し、シーケンス番号が所定条件を満たしているとき受信データを受け入れる受信制御部を備えたことを特徴とする。【選択図】図４
2012169829.tif 000002
【特許請求の範囲】
【請求項１】
順次更新されるシーケンス番号を含むデータを送信する送信部と、上記送信部からデータを受信し、受信データのシーケンス番号が所定条件を満たしているとき受信データを受け入れる受信部からなる通信システムにおいて、
前記送信部は、シーケンス番号の上位桁と下位桁を計数するカウンタと、データ送信時にシーケンス番号の下位桁を更新すると共に、電源投入の起動時に上位桁を更新する送信制御部を有し、
前記受信部は、前記送信部から受信したデータのシーケンス番号と前の受信データのシーケンス番号を比較し、シーケンス番号が所定条件を満たしているとき受信データを受け入れる受信制御部を備えたことを特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムにおいて、前記送信部のカウンタはシーケンス番号の上位桁の部分が不揮発性のメモリで構成されたことを特徴とする通信システム。
【請求項３】
請求項１または２に記載の通信システムにおいて、前記受信制御部はシーケンス番号を比較し、受信したデータのシーケンス番号が前の受信データのシーケンス番号より大きいとき受信データを受け入れることを特徴とする通信システム。
【請求項４】
請求項１〜３のいずれかに記載の通信システムにおいて、前記送信制御部はデータを暗号化して送信し、前記受信制御部は受信した暗号化データを解読して受信データとして用いることを特徴とする通信システム。
【請求項５】
請求項４に記載の通信システムにおいて、前記送信部と受信部とは同一移動体に搭載され、移動体固有の共通の暗号鍵を予め有することを特徴とする通信システム。
【請求項６】
順次更新されるシーケンス番号を含むデータを送信部から送信し、受信部で上記送信部からのデータを受信し、受信データのシーケンス番号が所定条件を満たしているとき受信データを受け入れる通信方法において、
前記送信部は、内部カウンタでシーケンス番号の上位桁と下位桁を計数し、データ送信時にシーケンス番号の下位桁を更新すると共に、電源が入力された起動時に上位桁を更新し、
前記受信部は、前記送信部から受信したデータのシーケンス番号と前の受信データのシーケンス番号を比較し、シーケンス番号が所定条件を満たしているとき受信データを受け入れることを特徴とする通信方法。
【請求項７】
請求項６に記載の通信方法において、前記送信部はシーケンス番号の上位桁を不揮発性のカウンタに記憶したことを特徴とする通信方法。
【請求項８】
請求項６または７に記載の通信方法において、前記受信部はシーケンス番号を比較し、受信したデータのシーケンス番号が前の受信データのシーケンス番号より大きいとき受信データを受け入れることを特徴とする通信方法。
【請求項９】
請求項６〜８のいずれかに記載の通信方法において、前記送信部はデータを暗号化して送信し、前記受信部は受信した暗号化データを解読して受信データとして用いることを特徴とする通信方法。
【請求項１０】
請求項９に記載の通信方法において、前記送信部と受信部とは同一移動体に搭載され、予め備えた移動体固有の暗号鍵を共通に用いることを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信などにおいて、通信を妨害する目的で、傍受したデータをコピーして何度も送り付ける再送攻撃に対して保護するための技術に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、従来の通信システムは、送信機からコード化された信号を送信し、受信機では予め記憶しているコードと受信信号のコードを比較し、所定の関係（例えば、一致または大小関係）にあるとき、所定の動作を行わせる構成となっている。しかし、コード化信号が単純なため市販の機器でコード化信号がコピーされ易く、セキュリティ上課題となるため、送信信号に送信毎に番号が変化するビットを付加してセキュリティを高め、受信した信号の番号とこれより前に受信した信号の番号との大小を比較して所定の関係にあるとき、受信信号を受入れるように構成されている。
【０００３】
ところが、電池駆動の送信機で電池の交換や、何らかのハードウエア障害などによってリセットがかかった場合、機器が一旦リセットされるので送信信号に付加しているビットの番号が初期化されてしまう。このため、この初期化された番号が付加された受信信号では、前に受信した信号の番号との比較が、正しくできなくなる。
【０００４】
この対策技術として、特許文献１および特許文献２を挙げることができる。特許文献１では、送信機がリセット時に通常の番号（シーケンス番号）とは異なる特定のシーケンス番号を付与することによって上記誤判定を回避する技術が示されている。また、特許文献２では、送信機がリセット時に通常のコード化信号にて発生し得ないコード化信号を出力することにより、高い確率で上記誤判定を回避する技術が示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２１８８７６号公報
【特許文献２】特開平９−６０３６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、リセット時に送信側と受信側でタイマーを用いた特別な処理を行うため、通信の敏速性が劣ることなどが考えられる。また、特許文献２では、高い確率で回避するものの回避できない恐れも否定できない。さらに、送信機と受信機の構造が複雑になると共に、処理手順も複雑になる恐れがある。
【０００７】
本発明は上記従来の問題点に鑑み、極めて簡単な構成により、送信側での電源断などによるリセット時においても、正常な通信が可能な通信システムおよび通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は、順次更新されるシーケンス番号を含むデータを送信する送信部と、上記送信部からデータを受信し、受信データのシーケンス番号が所定条件を満たしているとき受信データを受け入れる受信部からなる通信システムにおいて、
前記送信部は、シーケンス番号の上位桁と下位桁を計数するカウンタと、データ送信時にシーケンス番号の下位桁を更新すると共に、電源投入の起動時に上位桁を更新する送信制御部を有し、
前記受信部は、前記送信部から受信したデータのシーケンス番号と前の受信データのシーケンス番号を比較し、シーケンス番号が所定条件を満たしているとき受信データを受け入れる受信制御部を備えたことを特徴とする。
【０００９】
また、上記に記載の通信システムにおいて、前記送信部のカウンタはシーケンス番号の上位桁の部分が不揮発性のメモリで構成されたことを特徴とする。
【００１０】
また、上記に記載の通信システムにおいて、前記受信制御部はシーケンス番号を比較し、受信したデータのシーケンス番号が前の受信データのシーケンス番号より大きいとき受信データを受け入れることを特徴とする。
【００１１】
また、上記に記載の通信システムにおいて、前記送信制御部はデータを暗号化して送信し、前記受信制御部は受信した暗号化データを解読して受信データとして用いることを特徴とする。
【００１２】
また、上記に記載の通信システムにおいて、前記送信部と受信部とは同一移動体に搭載され、移動体固有の共通の暗号鍵を予め有することを特徴とする。
【００１３】
上記課題を解決するために、本発明は、順次更新されるシーケンス番号を含むデータを送信部から送信し、受信部で上記送信部からのデータを受信し、受信データのシーケンス番号が所定条件を満たしているとき受信データを受け入れる通信方法において、
前記送信部は、内部カウンタでシーケンス番号の上位桁と下位桁を計数し、データ送信時にシーケンス番号の下位桁を更新すると共に、電源が入力された起動時に上位桁を更新し、
前記受信部は、前記送信部から受信したデータのシーケンス番号と前の受信データのシーケンス番号を比較し、シーケンス番号が所定条件を満たしているとき受信データを受け入れることを特徴とする。
【００１４】
また、上記に記載の通信方法において、前記送信部はシーケンス番号の上位桁を不揮発性のカウンタに記憶したことを特徴とする。
【００１５】
本願は上記課題を解決する手段として、電源が入力された起動時（再起動時）にのみ更新する不揮発性の起動カウンタを備え、通信シーケンス番号をこの起動カウンタを上位ビットとする値から開始することで、全体のシーケンス番号が逆戻りすることを防止することを特長とする。
【発明の効果】
【００１６】
本発明によれば、電源遮断などによるリセット時にシーケンス番号の初期化を防止することができ、通信不良を確実に防ぐことができる。
【図面の簡単な説明】
【００１７】
【図１】本発明実施例の送信部の構成図である。
【図２】本発明実施例の受信部の構成図である。
【図３】本発明実施例のカウンタ内容とシーケンス番号の説明図である。
【図４】本発明実施例のシーケンス番号の更新動作の説明図である。
【図５】本発明実施例の送受信処理の動作説明図である。
【図６】本発明実施例のデータの暗号化と暗号解読の説明図である。
【図７】本発明実施例の送信処理の動作フローチャートである。
【図８】本発明実施例の受信処理の動作フローチャートである。
【発明を実施するための形態】
【００１８】
以下、実施例を図面を用いて説明する。図１に、実施例として無線による通信システムの携帯形の送信部１の内部構成を示し、図２に受信部１１の内部構成を示す。
【００１９】
送信部１で、２はシーケンス番号を計数するカウンタで、上位桁を計数する不揮発メモリで構成された起動カウンタ２ａと、下位桁を計数するパケットカウンタ２ｂ（ＲＡＭ）からなる。３は中央演算処理装置（ＣＰＵ）で、プログラムが記憶されたＲＯＭ４と共に、送信部１全体を制御する送信制御部を構成する。データは送信制御部で生成され、操作スイッチ７が操作される度に、送信機５からアンテナ６を介してパケット通信により送信（発信）される。８は送信部に電源を供給する電池で、消耗に応じて適宜交換される。送信部１は、例えば自動車のドアを無線でロック／アンロックする携帯型のワイヤレスリモコンであり、電池挿入状態では常時電源が入っており、消耗により電池交換するとき電源が一時遮断される。
【００２０】
図２の受信部１１で、１２はパケット通信により受信したデータの履歴情報を記憶するメモリ（ＲＡＭ）で、データに含まれるシーケンス番号の履歴も一緒に記憶される。１３は中央演算処理装置（ＣＰＵ）で、プログラムが記憶されたＲＯＭ１４と共に、受信部１１全体を制御する受信制御部を構成する。受信したデータはこの受信制御部で処理され、上記メモリ１２に記憶すると共に、受信データの機能に基いて駆動機構１７を駆動して、例えば自動車のドアをロック／アンロック操作する。１６はアンテナで１５はデータを受信する受信機である。
【００２１】
受信部１１は、パケット通信により送信部１から今回送信されたデータのシーケンス番号と、メモリ１２から読み出した過去分で直近の最新データ（前回の受信データ）のシーケンス番号とを比較し、送信部１から今回送信されて受信したデータのシーケンス番号が大きい場合に、正しい（本物の）送信部から送信されたと判断して、受信データを受け入れるように構成される。
【００２２】
次に図３、図４を用いて送信部１のカウンタを説明する。カウンタ２は、前述のように起動カウンタ２ａとパケットカウンタ２ｂとで構成され、起動カウンタ２ａは不揮発メモリで、リセット信号によって０にリセットされないように構成されている。起動カウンタ２ａには上位ビット（桁）のシーケンス番号Ａが保持され、パケットカウンタ２ｂには下位ビット（桁）のシーケンス番号Ｂが保持され、図３に示すように上位と下位のビットが合成されて、一つのシーケンス番号が形成される。
【００２３】
図３に示すように、上位が「０ｘ１ａ（Ａ）」、下位が「０ｘ００００００００（Ｂ）」の場合、シーケンス番号は「０ｘ１ａ００００００」となり、この番号からカウントが行われる。なお、下位ビットは上位を含む全ビット分を含んでおり、下位ビットの一部が上位ビットに置き換えられて合成がなされる。シーケンス番号はＳＮ(ｎ)と表される。
【００２４】
送信制御部（３、４）は、スイッチ７が操作される都度これを検知し、図4に示すように、パケットカウンタ２ｂのシーケンス番号Ｂをカウントアップし、シーケンス番号を「０ｘ００００００００」から「０ｘ０００００００１」、「０ｘ０００００００２」、「０ｘ０００００００３」と、「１」ずつ更新する。一方、起動カウンタ２ａのシーケンス番号Ａは変化せず、図４に示すように「０ｘ１ａ」のまま維持される。
【００２５】
電池消耗により電池交換されると、電源が一旦切断された後再投入がなされ、送信制御部（３、４）は、再起動によりリセット信号を出力する。このリセット信号によってパケットカウンタ２ｂのシーケンス番号Ｂが０にリセットされる。すなわち、図４に示すように、パケットカウンタ２ｂのシーケンス番号Ｂが、「０ｘ０００００００３」から「０ｘ００００００００」にリセットされる。
【００２６】
一方、起動カウンタ２ａは不揮発性メモリであって、上記再起動によるリセット信号によって、シーケンス番号Ａがリセットされず、逆にカウントアップされる。すなわち、図４に示すように、起動カウンタ２ａのシーケンス番号Ａは、「０ｘ１ａ」から「０ｘ１ｂ」にカウントアップされて更新される。
【００２７】
その後は、スイッチ７が操作される都度、パケットカウンタ２ｂのみのシーケンス番号Ｂが「１」ずつ更新され、起動カウンタ２ａのシーケンス番号が「０ｘ１ｂ」のまま維持される。
【００２８】
従って、起動カウンタ２ａ、２ｂを合成した全体のシーケンス番号は、リセット信号によって０にリセットされたり、逆戻り（減少）することが防止され、リセット信号の発生時と、スイッチ７の操作時に、常に大きな番号に更新される。
【００２９】
図５を用いて上記構成での送信部１と受信部１１の通信処理について説明する。送信部１は起動時によりリセット信号を出力し、起動カウンタ２ａを更新すると共にパケットカウンタ２ｂをリセットする。その後スイッチ（ＳＷ）が操作されるたびに、パケットカウンタ２ｂのみのシーケンス番号Ｂが「１」更新され、両カウンタの合成したシーケンス番号を含む暗号化パケットが送信され、受信部１１から受信確認信号が返信される。
【００３０】
電池の交換やハードウエア障害などによって電源が一時遮断して再投入されると、送信部１は上記起動時と同様に、リセット信号を出力して起動カウンタ２ａをカウントアップして更新すると共に、パケットカウンタ２ｂを０にリセットする。その後スイッチ（ＳＷ）が操作されるたびに、パケットカウンタ２ｂのみのシーケンス番号Ｂが「１」ずつ更新され、両カウンタの合成したシーケンス番号を含む暗号化パケットが送信され、受信部１１から受信確認信号が返信される。
【００３１】
図６を用いて暗号化パケットのデータ構成とデータ処理を説明する。パケットデータは、上位ビットのシーケンス番号Ａ、下位ビットのシーケンス番号Ｂおよび機能データＤで構成される。送信部１では、予め備えた暗号鍵ｋによって上記データＡ、Ｂ、Ｄを暗号化し、更に、宛先ＩＤと送信元ＩＤを付加して暗号化パケットとしてパケット送信する。
【００３２】
受信部１１では、受信したパケットに含まれる暗号化されたデータＡ、Ｂ、Ｄを、予め備えた暗号鍵ｋによって解読し、解読されたシーケンス番号Ａ、Ｂおよび機能データＤを得る。
【００３３】
次に、図７に基いて送信部１におけるデータの送信処理について説明する。ステップ（Ｓ）１００で送信部１が電源ＯＮされるとリセット信号が出力される。このリセット信号によりＳ１０１で起動カウンタ２ａのシーケンス番号「Ａ」が更新されて「Ａ＋１」となる。一方、パケットカウンタ２ｂはリセットされてシーケンス番号「Ｂ」が「０」となる。
【００３４】
その後、Ｓ１０２でスイッチ７が操作されると、上記Ｓ１０１で得られたシーケンス番号Ａ、Ｂの合成されたシーケンス番号ＳＮ（ｎ）と機能データＤとがＳ１０３で暗号化され、この暗号化されたデータに「宛先ＩＤ」と「送信元ＩＤ」が付加されて暗号化パケットとし、Ｓ１０４で無線（ＲＦ）でパケット送信される。
【００３５】
パケット送信後のＳ１０５で、下位のシーケンス番号Ｂとなるパケットカウンタ２ｂの内容が、Ｓ１０５で更新されて「Ｂ＋１」となる。ここで更新されたシーケンス番号「Ｂ＋１」は、次回のスイッチの操作時に送信されるパケットデータのシーケンス番号の下位の番号として備えられる。
【００３６】
ここで、操作スイッチの操作ステップ後に速やかにパケット送信することでレスポンスを良くするため、更新のステップＳ１０５をパケット送信のステップＳ１０４の後に配置している。
【００３７】
次のＳ１０６で、シーケンス番号「Ｂ＋１」がパケットカウンタ２ｂ内でオーバーフローしているか否かが判定され、ＮＯであればＳ１０２に戻る。ＹＥＳであれば、Ｓ１０７で上位のシーケンス番号Ａが更新されて「Ａ＋１」となり、Ｓ１０２に戻る。
【００３８】
その後、スイッチの操作ごとにＳ１０２〜Ｓ１０６を繰り返し、シーケンス番号が「１」ずつ更新されたデータをパケット信号としてＳ１０４で送信する。
【００３９】
次に図8を用いて、上記Ｓ１０４で送信されたパケットデータの、受信部１１での受信処理について説明する。
【００４０】
図８において、Ｓ１１０で動作が開始後、先ずＳ１１１で無線によるパケット信号の受信を判定し、受信した場合Ｓ１１２のステップに進む。Ｓ１１２では宛先ＩＤが受信部１１と一致するか判定され、一致の場合Ｓ１１３に進み、不一致の場合Ｓ１１１に戻る。Ｓ１１３では受信データが予め備えた解読鍵ｋで解読され、シーケンス番号Ａ、Ｂと機能データＤが得られて次のＳ１１４に進み、エラーの場合Ｓ１１１に戻る。
【００４１】
Ｓ１１４では、ＲＡＭ１２に記憶されている履歴情報から、過去で最も直近に受信したデータの最新のシーケンス番号ＳＮ(ｎ)を読み出し、次のＳ１１５で、先のＳ１１１で今回受信しＳ１１３で解読された受信データのシーケンス番号ＳＮ(ｎ＋１)を取出す。
【００４２】
次のＳ１１６で、上記各受信データのシーケンス番号ＳＮ(ｎ)と、ＳＮ(ｎ＋１)が比較される。比較の結果、ＳＮ(ｎ＋１)＞ＳＮ(ｎ)の場合、次のＳ１１７で、シーケンス番号ＳＮ(ｎ＋１)を、最新のシーケンス番号としてＲＡＭ１２に更新して記憶し、次のＳ１１８で受信したパケットデータを正しいデータとして受信部１１に受入れる。そして、機能データＤに基いて駆動機構１７の動作がなさる。例えば自動車のドアをロック／アンロックする。
【００４３】
上記Ｓ１１６で、ＳＮ(ｎ＋１)＞ＳＮ(ｎ)でない場合、即ちＳＮ(ｎ＋１)≦ＳＮ(ｎ)の場合、Ｓ１１９に進んでパケット（受信データ）が廃棄されてＳ１１１に戻る。
【００４４】
上記動作で受信制御部は、ＳＮ(ｎ＋１)＞ＳＮ(ｎ)の場合、正規（本物）の送信部１からデータが送信されたと判断して受信データを受け入れ、また、ＳＮ(ｎ＋１)≦ＳＮ(ｎ)の場合、偽者（成りすまし）の送信部からのデータと判断し、受信データを廃棄する。
【００４５】
上記図８の処理は再送攻撃を防ぐために有効である。再送攻撃は前述したように、市販の機器で過去に受信したパケット信号をそのままコピーして、送信することによって成りすましを行うものである。コピーして送信すると、まったく同じ内容となり、シーケンス番号部分も同じになる。したがって、前回受信と今回受信のシーケンス番号が同じ[（Ｓ１１６でＳＮ(ｎ＋１)＝ＳＮ(ｎ)]となるので、Ｓ１１９で受信したパケット（受信データ）は廃棄される。従って、成りすまし行う攻撃者のパケット送信は無効となる。
【００４６】
本実施例の送信部１では、リセットの発生時とスイッチ７の操作時に、常にシーケンス番号が大きな番号に更新されるので、このシーケンス番号を含む送信データが受信部１１において廃棄されることがない。従って、正規（本物）の送信部と偽者（成りすまし）の送信部とを明確に区別して、正規（本物）の送信部からのデータのみを取り込むことができる。
【００４７】
また、本実施例では、不揮発メモリへの更新は、リセット時だけであるので、すべてのカウンタ値を不揮発性メモリに持つ場合に比較して、不揮発メモリの更新機会が極めて少なく、不揮発メモリ更新中に異常状態が発生する危険性を低くする効果もある。また、不揮発性メモリの容量を少なくする効果もある。さらに、本実施例を適用するに当り、受信部１１側では大きな改良が不要であるため、コスト的に有利で適用が簡単で、適用範囲を広げることができる。
【００４８】
次に、本実施例の他の応用例について説明する。この応用例では、送信部１と受信部１１が、車等の同一の移動体に搭載され、移動体内部で無線で制御信号を送受信することで、移動体内部の各部の制御を行い、制御用の内部配線を削減するものである。そして、暗号鍵を、無線送信機［送信元のMACアドレス（Media access control address）］毎に読み出すのではなく、各移動体で固有の暗号鍵を共通に持つように構成する。すなわち、同一の車両に搭載する無線機（送信部、受信部）は、車両固有の暗号鍵を共通で利用する。
【００４９】
上記のように構成することにより、シーケンス番号のチェックと暗号鍵によって、同一車両内では相互に通信が可能となるが、異なる車両に搭載された無線装置とは通信ができなくすることができる。したがって、無線機を持つ他の車両が近くにいる場合でも、自車両以外との無線通信の干渉を防止することができるという効果がある。
【符号の説明】
【００５０】
１…送信部
２…カウンタ
２ａ…不揮発性のメモリ（起動カウンタ）
２ｂ…パケットカウンタ（ＲＡＭ）
３、１３…ＣＰＵ
４、１４…ＲＯＭ
３、４…送信制御部
５…送信機
７…スイッチ
８…電池
１１…受信部
１３、１４…受信制御部
１５…受信機
１７…駆動機構
１８…外部電源
ＳＮ（ｎ）…シーケンス番号
【図１】
2012169829.tif 000003
【図２】
2012169829.tif 000004
【図３】
2012169829.tif 000005
【図４】
2012169829.tif 000006
【図５】
2012169829.tif 000007
【図６】
2012169829.tif 000008
【図７】
2012169829.tif 000009
【図８】
2012169829.tif 000010