(57)【要約】  非一時的なコンピュータ可読媒体に格納された命令を実行するように構成されたプロセッサを含む、システムおよび方法が開示される。命令は、共有秘密鍵（１０２）に基づいて第１のメッセージ認証コード（ＭＡＣ）バイト（１１１−１）を生成することを含む。命令は、第１のノンスバイト（１０９−１）を生成し、および、第１のＭＡＣバイトと第１のノンスバイトとメッセージバイトとに基づいて、認証パケット（１１０）を生成することを含む。命令は、共有秘密鍵に基づいて、非白色化トーンバイト（１１３）を生成することを含む。命令は、認証パケットおよび非白色化トーンバイトを含むメッセージパケット（１４０）を生成することを含む。メッセージパケットを生成することは、認証パケットの第１の場所を擬似ランダムに特定すること、および、第１の場所に非白色化トーンバイトを挿入することを含む。命令は、周辺デバイスにメッセージパケットを送信すること、および、周辺デバイスがメッセージパケットを検証することに応じて、携帯デバイス（１０）と周辺デバイスとの間に通信リンク（５０）を確立することとを含む。
2021509786.tif 000002
【特許請求の範囲】
【請求項１】
（ｉ）非一時的なコンピュータ可読媒体に格納された命令を実行するように構成されたプロセッサを含む携帯デバイス（１０）と（ｉｉ）周辺デバイスとの間に通信リンク（５０）を確立する方法であって、
携帯デバイス（１０）のプロセッサを使用して、共有秘密鍵（１０２）に基づく第１のメッセージ認証コード（ＭＡＣ）バイト（１１１−１）、第１のノンスバイト（１０９−１）、第１のＭＡＣバイト（１１１−１）と第１のノンスバイト（１０９−１）とメッセージバイト（１０４）に基づく認証パケット（１１０）、共有秘密鍵（１０２）に基づく非白色化トーンバイト（１１３）、および、認証パケット（１１０）と非白色化トーンバイト（１１３）を含むメッセージパケット（１４０）を生成すること、を備え、
メッセージパケット（１４０）を生成することは、認証パケット（１１０）の第１の場所を擬似ランダムに特定すること、非白色化トーンバイト（１１３）を第１の場所に挿入すること、携帯デバイス（１０）のプロセッサを使用して、メッセージパケット（１４０）を周辺デバイスに送信すること、そして、携帯デバイス（１０）のプロセッサを使用して、周辺デバイスがメッセージパケット（１４０）を検証することに応じて、携帯デバイス（１０）と周辺デバイスとの間に通信リンク（５０）を確立することを含む、方法。
【請求項２】
周辺デバイスのプロセッサを使用して、共有秘密鍵（１０２）に基づく第２のＭＡＣバイト（１１１−２）を生成すること、
周辺機器のプロセッサは、非一時的なコンピュータ可読媒体に格納された命令を実行するように構成され、および
周辺デバイスのプロセッサを使用して、第２のノンスバイト（１０９−２）を生成すること、をさらに備える請求項１に記載の方法。
【請求項３】
メッセージパケット（１４０）を検証することは、
周辺デバイスのプロセッサを使用して、非白色化トーンバイト（１１３）をメッセージパケット（１４０）から削除すること、および
周辺デバイスのプロセッサを使用して、第１のＭＡＣバイト（１１１−１）が第２のＭＡＣバイト（１１１−２）と一致すると周辺デバイスのプロセッサが判定することに応じて、メッセージパケット（１４０）が正当なものと認められることを決定すること、を含む請求項２に記載の方法。
【請求項４】
メッセージパケット（１４０）を検証することは、
周辺デバイスのプロセッサを使用して、第１のノンスバイト（１０９−１）が第２のノンスバイト（１０９−２）と一致すると周辺デバイスのプロセッサが判定することに応じて、メッセージパケット（１４０）が正当なものと認められることを決定すること、を含む請求項３に記載の方法。
【請求項５】
周辺デバイスのプロセッサを使用して、第１のＭＡＣバイト（１１１−１）が第２のＭＡＣバイト（１１１−２）と一致しないと判定すること、周辺デバイスのプロセッサを使用して、第１のノンスバイト（１０９−１）が第２のノンスバイト（１０９−２）と一致しないと判定することの１つに応じて、メッセージパケット（１０４）が無効であると決定することをさらに含む請求項２乃至４のいずれか１項に記載の方法。
【請求項６】
第１のノンスバイト（１０９−１）は乱数生成器（１０８）を使用して生成される、請求項１乃至５のいずれか１項に記載の方法。
【請求項７】
第１の場所は、第１のＭＡＣバイト（１１１−１）の第１のＭＡＣビットと、第１のＭＡＣバイト（１１１−１）の第２のＭＡＣビットとの間である、請求項１乃至６のいずれか１項に記載の方法。
【請求項８】
第１の場所は、第１のノンスバイト（１０９−１）の第１のノンスビットと、第１のノンスバイト（１０９−１）の第２のノンスビットとの間である、請求項１乃至６のいずれか１項に記載の方法。
【請求項９】
第１の場所は、第１のノンスバイト（１０９−１）と第１のＭＡＣバイト（１１１−１）の一方の場所の前にある、請求項１乃至６のいずれか１項に記載の方法。
【請求項１０】
第１のノンスバイト（１０９−１）の場所と第１のＭＡＣバイト（１１１−１）の場所は、第１の場所の前にある、請求項１乃至６のいずれか１項に記載の方法。
【請求項１１】
非一時的コンピュータ可読媒体に格納された命令を実行するように構成されたプロセッサを含む携帯デバイス（１０）を備えるシステムであって、
命令は、
共有秘密鍵（１０２）に基づいて第１のメッセージ認証コード（ＭＡＣ）バイト（１１１−１）を生成すること、
第１のノンスバイト（１０９−１）を生成すること、
第１のＭＡＣバイト（１１１−１）と第１のノンスバイト（１０９−１）とメッセージバイト（１０４）に基づいて認証パケット（１１０）を生成すること、
共有秘密鍵（１０２）に基づいて非白色化トーンバイト（１０３）を生成すること、および、
認証パケット（１１０）と非白色化トーンバイト（１１３）を含むメッセージパケット（１４０）を生成することを含み、
メッセージパケット（１４０）を生成することは、
認証パケット（１１０）の第１の場所を擬似ランダムに特定すること、
非白色化トーンバイト（１１３）を第１の場所に挿入すること、
携帯デバイス（１０）のプロセッサを使用して、メッセージパケット（１４０）を周辺デバイスに送信すること、そして、
携帯デバイス（１０）のプロセッサを使用して、周辺デバイスがメッセージパケット（１４０）を検証することに応じて、携帯デバイス（１０）と周辺デバイスとの間に通信リンク（５０）を確立することを含む、システム。
【請求項１２】
周辺デバイスは、第２の非一時的なコンピュータ可読媒体に格納された第２の命令を実行するように構成されたプロセッサを含み、
第２の命令は、
周辺デバイスのプロセッサを使用して、共有秘密鍵（１０２）に基づく第２のＭＡＣバイト（１１１−２）を生成すること、および、
周辺デバイスのプロセッサを使用して、第２のノンスバイト（１０９−２）を生成することを含む、請求項１１に記載のシステム。
【請求項１３】
メッセージパケット（１４０）を検証することは、
周辺デバイスのプロセッサを使用して、非白色化トーンバイト（１１３）をメッセージパケット（１４０）から削除すること、および、
周辺デバイスのプロセッサを使用して、第１のＭＡＣバイト（１１１−１）が第２のＭＡＣバイト（１１１−２）と一致すると周辺デバイスのプロセッサが判定することに応じて、メッセージパケット（１４０）が正当なものと認められることを決定することを含む、請求項１２に記載のシステム。
【請求項１４】
メッセージパケット（１４０）を検証することは、
周辺デバイスのプロセッサを使用して、第１のノンスバイト（１０９−１）が第２のノンスバイト（１０９−２）と一致すると周辺デバイスのプロセッサが判定することに応じて、メッセージパケット（１４０）が正当なものと認められることを決定することを含む、請求項１３に記載のシステム。
【請求項１５】
命令は、周辺デバイスのプロセッサを使用して、第１のＭＡＣバイト（１１１−１）が第２のＭＡＣバイト（１１１−２）と一致しないと判定すること、および、周辺デバイスのプロセッサを使用して、第１のノンスバイト（１０９−１）が第２のノンスバイト（１０９−２と一致しないと判定することの１つに応じて、メッセージパケット（１４０）が無効であると決定することを含む、請求項１２乃至１４のいずれか１項に記載のシステム。
【請求項１６】
第１のノンスバイト（１０９−１）は乱数生成器（１０８）を使用して生成される、請求項１１乃至１５のいずれか１項に記載のシステム。
【請求項１７】
第１の場所は、第１のＭＡＣバイト（１１１−１）の第１のＭＡＣビットと、第１のＭＡＣバイト（１１１−１）の第２のＭＡＣビットとの間である、請求項１１乃至１６のいずれか１項に記載のシステム。
【請求項１８】
第１の場所は、第１のノンスバイト（１０９−１）の第１のノンスビットと、第１のノンスバイト（１０９−１）の第２のノンスビットとの間である、請求項１１乃至１６のいずれか１項に記載のシステム。
【請求項１９】
第１の場所は、第１のノンスバイト（１０９−１）と第１のＭＡＣバイト（１１１−１）の一方の場所の前にある、請求項１１乃至１６のいずれか１項に記載のシステム。
【請求項２０】
第１のノンスバイト（１０９−１）の場所と第１のＭＡＣバイト（１１１−１）の場所は、第１の場所の前にある、請求項１１乃至１６のいずれか１項に記載のシステム。
【発明の詳細な説明】
【相互参照】
【０００１】
この出願は、２０１８年１月５日に出願された米国仮出願第６２／６１３９３４号、および、２０１８年１２月６日に出願された米国特許出願第１６／２１１３３０の利益を主張する。上記出願の全開示が、参照により本明細書に組み込まれる。
【技術分野】
【０００２】
本開示は、携帯デバイスと周辺デバイスとの間に安全な通信リンクを確立するためのシステムおよび方法に関する。
【背景技術】
【０００３】
この欄は、必ずしも公知技術に該当しない、本開示に関連する背景情報を提供する。
【０００４】
伝統的に、キーレスエントリシステムを含む車両システムである、パッシブエントリ／パッシブスタート（ＰＥＰＳ）システムは、事前に車両の中央ＰＥＰＳ電子制御装置（ＥＣＵ）とペアリングされたキーフォブの所有者が、単にドアハンドルを掴むことによって車両へアクセスすること、および、ボタンをプッシュすることで車両を始動することを可能とする。ボタンプッシュに応答して、中央ＰＥＰＳ ＥＣＵは、キーフォブが車両にアクセスする権限を与えられているかどうかを判定してキーフォブを認証し、複数の車両アンテナによって示される信号強度を使用して、キーフォブの位置を推定する。キーフォブが認証され、認可しているゾーン内に位置する場合、車両の機能はユーザに利用可能にされる（すなわち、ドアがアンロックされ、または、車両が始動される）。
【０００５】
伝統的に、ＰＥＰＳシステムは、約１２５ｋＨｚの低周波（ＬＦ）信号を使う独自グレードの無線プロトコルを使用する。ＰＥＰＳシステムはまた、ＬＦシステムの物理的性質によって拘束される。電波伝播が、２メートルの典型的な目標起動範囲内の信号強度を使用することによって、範囲および位置の比較的正確な推定を可能にするため、ＬＦは、初期のＰＥＰＳシステムにおいて選択された。しかしながら、実用的な車両アンテナおよびキーフォブ受信機のサイズに比べて、ＬＦ信号の非常に長い波長のために、妥当な電力消費および安全な送信電力レベル内では、ＬＦを使うキーフォブと、数メートルを超えて確実に通信することは困難である。したがって、キーフォブが車両から数メートル以上離れている場合、いずれの車両機能も、ユーザに利用できるようにすることは困難である。
【０００６】
そのため、キーフォブは、スマートフォンやウェアラブルデバイスなどのスマートデバイスによって実現されるようになってきており、スマートデバイスはＬＦシステムの起動範囲よりも広い範囲内で通信することができる。このように、スマートデバイスは、パッシブウェルカムライティング、リモートパーキングアプリケーションの距離限度など、さまざまな車両機能や長距離の距離機能の利用を可能にする。
【０００７】
ただし、従前のＰＥＰＳシステム、およびスマートデバイスによって実現されるキーフォブを備えるＰＥＰＳシステムは、それぞれのＰＥＰＳシステムを悪意のある攻撃にさらすかもしれない無線の脆弱性を包含している。一例として、ユーザは受動的な盗聴、中間者（ＭＩＴＭ）攻撃、リプレイ攻撃、およびＰＥＰＳシステムのさまざまなテレメトリックリンクのＩＤ追跡によってＰＥＰＳシステムを攻撃される可能性がある。
【発明の概要】
【０００８】
この欄は、開示の概要を提供するが、その全範囲またはその全特徴の包括的な開示ではない。
【０００９】
本開示は、（ｉ）非一時的なコンピュータ可読媒体に格納された命令を実行するように構成されたプロセッサを含む携帯デバイスと（ｉｉ）周辺デバイスとの間に通信リンクを確立する方法を提供する。この方法は、携帯デバイスのプロセッサを使用して、共有秘密鍵に基づく第１のメッセージ認証コード（ＭＡＣ）バイト、第１のノンスバイト、第１のＭＡＣバイトと第１のノンスバイトとメッセージバイトに基づく認証パケット、共有秘密鍵に基づく非白色化トーンバイト、および、認証パケットと非白色化トーンバイトを含むメッセージパケットを生成する。メッセージパケットを生成することは、認証パケットの第１の場所を擬似ランダムに特定すること、非白色化トーンバイトを第１の場所に挿入すること、携帯デバイスのプロセッサを使用して、メッセージパケットを周辺デバイスに送信すること、そして、携帯デバイスのプロセッサを使用して、周辺デバイスがメッセージパケットを検証することに応じて、携帯デバイスと周辺デバイスとの間に通信リンクを確立することを含む。
【００１０】
いくつかの構成では、方法は、周辺デバイスのプロセッサを使用して、共有秘密鍵に基づく第２のＭＡＣバイトを生成することを含み、周辺機器のプロセッサは、非一時的なコンピュータ可読媒体に格納された命令を実行するように構成される。この方法はまた、周辺デバイスのプロセッサを使用して、第２のノンスバイトを生成することを含む。
【００１１】
いくつかの構成では、メッセージパケットを検証することは、周辺デバイスのプロセッサを使用して、非白色化トーンバイトをメッセージパケットから削除することを含む。メッセージパケットを検証することはまた、周辺デバイスのプロセッサを使用して、第１のＭＡＣバイトが第２のＭＡＣバイトと一致すると周辺デバイスのプロセッサが判定することに応じて、メッセージパケットが正当なものと認められることを決定することを含む。
【００１２】
いくつかの構成では、メッセージパケットを検証することは、周辺デバイスのプロセッサを使用して、第１のノンスバイトが第２のノンスバイトと一致すると周辺デバイスのプロセッサが判定することに応じて、メッセージパケットが正当なものと認められることを決定することを含む。
【００１３】
いくつかの構成では、方法は、（ｉ）周辺デバイスのプロセッサを使用して、第１のＭＡＣバイトが第２のＭＡＣバイトと一致しないと判定すること、（ｉｉ）周辺デバイスのプロセッサを使用して、第１のノンスバイトが第２のノンスバイトと一致しないと判定することの１つに応じて、メッセージパケットが無効であると決定することをさらに含む。
【００１４】
いくつかの構成では、第１のノンスバイトは乱数生成器を使用して生成される。
【００１５】
いくつかの構成では、第１の場所は、第１のＭＡＣバイトの第１のＭＡＣビットと、第１のＭＡＣバイトの第２のＭＡＣビットとの間である。
【００１６】
いくつかの構成では、第１の場所は、第１のノンスバイトの第１のノンスビットと、第１のノンスバイトの第２のノンスビットとの間である。
【００１７】
いくつかの構成では、第１の場所は、第１のノンスバイトと第１のＭＡＣバイトの一方の場所の前にある。
【００１８】
いくつかの構成では、第１のノンスバイトの場所と第１のＭＡＣバイトの場所は、第１の場所の前にある。
【００１９】
本開示はまた、非一時的コンピュータ可読媒体に格納された命令を実行するように構成されたプロセッサを含む携帯デバイスを備えるシステムを提供する。命令は、携帯デバイスのプロセッサを使用して、共有秘密鍵に基づく第１のメッセージ認証コード（ＭＡＣ）バイト、第１のノンスバイト、第１のＭＡＣバイトと第１のノンスバイトとメッセージバイトに基づく認証パケット、共有秘密鍵に基づく非白色化トーンバイト、および、認証パケットと非白色化トーンバイトを含むメッセージパケットを生成することを含む。メッセージパケットを生成することは、認証パケットの第１の場所を擬似ランダムに特定すること、非白色化トーンバイトを第１の場所に挿入すること、携帯デバイスのプロセッサを使用して、メッセージパケットを周辺デバイスに送信すること、そして、携帯デバイスのプロセッサを使用して、周辺デバイスがメッセージパケットを検証することに応じて、携帯デバイスと周辺デバイスとの間に通信リンクを確立することを含む。
【００２０】
いくつかの構成では、周辺デバイスは、第２の非一時的なコンピュータ可読媒体に格納された第２の命令を実行するように構成されたプロセッサを含む。第２の命令は、周辺デバイスのプロセッサを使用して、共有秘密鍵に基づく第２のＭＡＣバイトを生成することを含む。第２の命令はまた、周辺デバイスのプロセッサを使用して、第２のノンスバイトを生成することを含む。
【００２１】
いくつかの構成では、メッセージパケットを検証することは、周辺デバイスのプロセッサを使用して、非白色化トーンバイトをメッセージパケットから削除することを含む。メッセージパケットを検証することはまた、周辺デバイスのプロセッサを使用して、第１のＭＡＣバイトが第２のＭＡＣバイトと一致すると周辺デバイスのプロセッサが判定することに応じて、メッセージパケットが正当なものと認められることを決定することを含む。
【００２２】
いくつかの構成では、メッセージパケットを検証することは、周辺デバイスのプロセッサを使用して、第１のノンスバイトが第２のノンスバイトと一致すると周辺デバイスのプロセッサが判定することに応じて、メッセージパケットが正当なものと認められることを決定することを含む。
【００２３】
いくつかの構成では、命令は、（ｉ）周辺デバイスのプロセッサを使用して、第１のＭＡＣバイトが第２のＭＡＣバイトと一致しないと判定すること、（ｉｉ）周辺デバイスのプロセッサを使用して、第１のノンスバイトが第２のノンスバイトと一致しないと判定することの１つに応じて、メッセージパケットが無効であると決定することを含む。
【００２４】
いくつかの構成では、第１のノンスバイトは乱数生成器を使用して生成される。
【００２５】
いくつかの構成では、第１の場所は、第１のＭＡＣバイトの第１のＭＡＣビットと、第１のＭＡＣバイトの第２のＭＡＣビットとの間である。
【００２６】
いくつかの構成では、第１の場所は、第１のノンスバイトの第１のノンスビットと、第１のノンスバイトの第２のノンスビットとの間である。
【００２７】
いくつかの構成では、第１の場所は、第１のノンスバイトと第１のＭＡＣバイトの一方の場所の前にある。
【００２８】
いくつかの構成では、第１のノンスバイトの場所と第１のＭＡＣバイトの場所は、第１の場所の前にある。
【００２９】
さらなる適用可能範囲は、本明細書の説明から明らかとなろう。本概要の説明および具体例は例示の目的だけを意図しており、本開示の範囲を限定することを意図していない。
【図面の簡単な説明】
【００３０】
本明細書で説明される図面は、全ての可能な実施例ではなく、選択された実施形態だけを図示する目的のためのものであり、また、本開示の範囲を限定することを意図するものでもない。
【００３１】
【図１】図１は、本開示による車両および携帯デバイスの図である。
【図２】図２は、本開示による車両および携帯デバイスの機能ブロック図である。
【図３】図３は、本開示による車両のセンサの機能ブロック図である。
【図４】図４は、本開示による車両の通信ゲートウェイの機能ブロック図である。
【図５】図５は、本開示による、携帯デバイスと車両との間の通信リンクを攻撃する未承認デバイスを示す。
【図６】図６は、本開示による暗号検証モジュールおよびフォン・アズ・ア・キー（ＰａａＫ）モジュールの機能ブロック図を示す。
【図７Ａ】図７Ａは、本開示による例示的なメッセージパケットを示す。
【図７Ｂ】図７Ｂは、本開示による例示的なメッセージパケットを示す。
【図７Ｃ】図７Ｃは、本開示による例示的なメッセージパケットを示す。
【図７Ｄ】図７Ｄは、本開示による例示的なメッセージパケットを示す。
【図７Ｅ】図７Ｅは、本開示による例示的なメッセージパケットを示す。
【図７Ｆ】図７Ｆは、本開示による例示的なメッセージパケットを示す。
【図７Ｇ】図７Ｇは、本開示による例示的なメッセージパケットを示す。
【図８】図８は、本開示による例示的な制御アルゴリズムのフローチャートを示す。
【図９】図９は、本開示による例示的な制御アルゴリズムのフローチャートを示す。
【図１０】図１０は、本開示による例示的な制御アルゴリズムのフローチャートを示す。
【００３２】
複数の図面にわたって、対応する参照番号は、対応する部分を示している。
【発明を実施するための形態】
【００３３】
例示的な実施形態が、添付の図面を参照してより詳細に説明される。
【００３４】
本開示は、コンシューマーグレードのワイヤレスプロトコルを使用する、ＰＥＰＳシステムのような、位置特定システムを実現するためのシステム、方法、およびアーキテクチャに関する。具体的には、本開示は、車両と、スマートフォンまたはウェアラブルデバイスなどの携帯デバイスとの間の通信のため、ブルートゥースローエナジー（ＢＬＥ）通信プロトコルなどの、無線通信プロトコルを使用するＰＥＰＳシステムに関する。ＰＥＰＳシステムは、携帯デバイスと車両との間の現存する接続を見つけ出し、携帯デバイスと車両との間の通信のタイミングおよび信号特性を測定するように構成されたセンサネットワークを含む。中央モジュールは、タイミングと信号特性に基づいて、携帯デバイスと車両の間の距離を決定する。ＰＥＰＳシステムはまた、未承認のデバイスが車両と携帯デバイスとの間の通信リンクに対してリプレイ攻撃を実行することを防止するための暗号化処理を実行するように構成される。
【００３５】
図１および図２を参照すると、ＰＥＰＳシステム１は、車両３０内に設けられ、通信ゲートウェイ２９、複数のセンサ３１Ａ−３１Ｊ（まとめてセンサ３１と呼ばれる）、および制御モジュール２０を含んでいる。図1および図２は、１０個のセンサ３１Ａ−３１Ｊを示しているが、任意の数のセンサを使用することができる。さらに、図２は、１つの制御モジュール２０を示しているが、ＰＥＰＳシステム１は、車両３０全体に分散された１つ以上の制御モジュール２０を含んでもよい。
【００３６】
１つ以上の制御モジュール２０およびセンサ３１は、車両インターフェース４５を使用して互いに通信することができる。一例として、車両インターフェース４５は、メインモジュール間の通信のためのコントローラエリアネットワーク（ＣＡＮ）バスを含むことができる。別の例として、車両インターフェース４５は、より低いデータレート通信のためのローカル相互接続ネットワーク（ＬＩＮ）を含んでもよい。他の実施形態では、車両インターフェース４５は、クロック拡張周辺インターフェース（ＣＸＰＩ）バスを含むことができる。追加的または代替的に、車両インターフェース４５は、ＣＡＮバス、ＬＩＮ、およびＣＸＰＩバス通信インターフェースの任意の組み合わせを含むことができる。
【００３７】
制御モジュール２０は、アンテナ１９に接続された無線通信チップセット２１を含む通信ゲートウェイ２９を含む。たとえば、無線通信チップセット２１は、ＢＬＥ通信プロトコルを利用するブルートゥースローエナジー（ＢＬＥ）通信チップセットであってもよい。あるいは、Ｗｉ−ＦｉまたはＷｉ−Ｆｉダイレクトなどの、他の無線通信プロトコルが使用されてもよい。図２に示すように、アンテナ１９は、車両３０内に配置されてもよい。あるいは、アンテナ１９は、車両３０の外部または制御モジュール２０内に配置されてもよい。制御モジュール２０はまた、通信リンク５０を介した通信のために携帯デバイス１０を認証するリンク認証モジュール２２を含んでもよい。一例として、リンク認証モジュール２２は、携帯デバイス１０を認証するために、チャレンジレスポンス認証または他の暗号検証アルゴリズムを実行するように構成されてもよい。
【００３８】
制御モジュール２０はまた、プッシュデータのためのデータ管理層２３を含むことができる。一例として、データ管理層２３は、任意のモジュールによって取得された車両情報（例えば、テレマティクスモジュール２６によって取得された位置情報）を取得し、その車両情報を携帯デバイス１０に送信するように構成される。
【００３９】
制御モジュール２０はまた、通信リンク５０の通信チャネルおよびチャネル切り替えパラメータに対応する情報を取得し、その情報をセンサ３１に送信するように構成された、接続情報配信モジュール２４を含むことができる。センサ３１が、車両インターフェース４５を介して接続情報配信モジュール２４から情報を受信し、センサ３１が通信ゲートウェイ２９と同期されたことに応じて、センサ３１は、通信リンク５０を探し出して、追跡、または傍受することができる。
【００４０】
制御モジュール２０はまた、リンク認証モジュール２２がチャレンジ−レスポンス認証を実行するときの通信リンク５０に対応するタイミング情報を取得する、タイミング制御モジュール２５を含むことができる。さらに、タイミング制御モジュール２５は、車両インターフェース４５を介してセンサ３１にタイミング情報を提供するように構成される。
【００４１】
制御モジュール２０はまた、車両３０に関連する位置情報および／または位置情報の誤差を生成するように構成された、テレマティクスモジュール２６を含むことができる。テレマティクスモジュール２６は、全地球的衛星航法システム（例えば、ＧＰＳ）、慣性航法システム、移動体通信用全地球的システム（ＧＳＭ）、または他の位置特定システムによって実現され得る。
【００４２】
制御モジュール２０はまた、物理層およびプロトコルの違反を検出し、センサ処理および位置特定モジュール３２に情報を提供する前にデータをフィルタリングするように構成されたセキュリティフィルタリングモジュール３３を含むことができる。セキュリティフィルタリングモジュール３３はまた、注入されたデータにフラグを立てるように構成されることができ、その結果、センサ処理および位置特定モジュール３２は、フラグが立てられたデータを破棄し、ＰＥＰＳシステム１に警告することができる。センサ処理および位置特定モジュール３２からのデータは、ＰＥＰＳモジュール２７に提供され、ＰＥＰＳモジュール２７は、車両機能にアクセスするユーザの意図を検出し、携帯デバイス１０の位置と、車両３０のドアのロック解除および／または車両３０の始動などの特定の機能を許可する場所のセットとを比較するために、センサ３１から車両状態情報を読み取るように構成される。
【００４３】
上述した様々なモジュールの上記の機能を実行するために、制御モジュール２０は、リードオンリーメモリ（ＲＯＭ）および／またはランダムアクセスメモリ（ＲＡＭ）などの非一時的なコンピュータ可読媒体に格納された命令を実行するように構成される１つ以上のプロセッサも含むことができる。
【００４４】
図１および図２に示すように、携帯デバイス１０は、通信リンク５０を介して車両３０の通信ゲートウェイ２９と通信することができる。限定するものではないが、携帯デバイス１０は、たとえば、車両３０の所有者、運転者、乗員、および／または、車両３０の整備士などの、車両３０のユーザと関連付けられる、スマートフォン、スマートウォッチ、ウェアラブル電子デバイス、キーフォブ、タブレットデバイス、ブルートゥース送信機デバイス、または、他のデバイスなどの任意のブルートゥース対応通信デバイスであってもよい。追加的または代替的に、携帯デバイス１０は、Ｗｉ−Ｆｉおよび／またはＷｉ−Ｆｉダイレクトなどの別の無線通信プロトコルを介して無線通信するように構成されてもよい。通信リンク５０は、ブルートゥース仕様に規定され、定義されているようなブルートゥース通信リンクであってもよい。一例として、通信リンク５０は、ＢＬＥ通信リンクであってよい。あるいは、通信リンク５０は、Ｗｉ−ＦｉまたはＷｉ−Ｆｉダイレクト通信リンクであってもよい。
【００４５】
携帯デバイス１０は、アンテナ１３に接続された無線通信チップセット１１を含むことができる。無線通信チップセット１１は、ＢＬＥ通信チップセットであってもよい。あるいは、無線通信チップセット１１は、Ｗｉ−ＦｉまたはＷｉ−Ｆｉダイレクト通信チップセットであってもよい。携帯デバイス１０はまた、携帯デバイス１０のプロセッサによって実行可能であり、リードオンリーメモリ（ＲＯＭ）またはランダムアクセスメモリ（ＲＡＭ）などの非一時的なコンピュータ可読媒体に格納されるアプリケーションコード１２を含むことができる。携帯デバイス１０は、アプリケーションコード１２に基づき、無線通信チップセット１１およびアンテナ１３を使用して、たとえば、通信リンク５０の認証、携帯デバイス１０の全地球的衛星航法システム（例えば、ＧＰＳ）のセンサまたは加速度計によって取得される位置および／または速度情報の送信、および、車両機能の手動起動に対応する様々な命令を実行するように構成されることができる。
【００４６】
携帯デバイス１０はまた、暗号検証モジュール（ＣＶＭ）１４を含むことができ、ＣＶＭ１４は、携帯デバイス１０のプロセッサによって実行可能であり、リードオンリーメモリ（ＲＯＭ）またはランダムアクセスメモリ（ＲＡＭ）などの非一時的なコンピュータ可読媒体に記憶されるアプリケーションコードによって実現されることができる。ＣＶＭ１４は、図６から図８を参照して以下でさらに詳細に説明される。
【００４７】
図３を参照すると、各々のセンサ３１は、アンテナシステム４３に接続された無線通信チップセット４１を含む。無線通信チップセット４１は、ＢＬＥ通信チップセットであってもよい。あるいは、無線通信チップセット４１は、ＷｉＦｉまたはＷｉＦｉダイレクト通信チップセットであってもよい。図３に示すように、アンテナシステム４３は、センサ３１の内部に配置されてもよい。あるいは、アンテナシステム４３は、センサ３１の外部に配置されてもよい。
【００４８】
制御モジュール２０、より具体的には通信ゲートウェイ２９は、携帯デバイス１０とともに、通信リンク５０などの安全な通信接続を確立することができる。たとえば、制御モジュール２０は、ＢＬＥ通信プロトコルを使用して、安全な通信接続を確立することができる。そして、制御モジュール２０は、タイミングおよび同期情報などの安全な通信接続に関する情報を各々のセンサ３１に通信することができる。たとえば、制御モジュール２０は、次の通信接続イベントのタイミング、通信接続イベント間のタイミング間隔、次の通信接続イベントの通信チャネル、チャネルマップ、後続の通信接続イベントのチャネルを計算するためのチャネルホップ間隔またはオフセット、通信遅延情報、通信ジッタ情報などのような、安全な通信接続に関する情報を通信することができる。そして、センサ３１は、携帯デバイス１０によって制御モジュール２０へ送信された通信パケットを傍受し、携帯デバイス１０から受信した信号の信号情報を測定することができる。たとえば、センサ３１は受信信号強度を測定し、受信信号強度インジケータ（ＲＳＳＩ）値を決定することができる。追加的または代替的に、センサ３１は、到来角、到来時間、到来時間差などのような、携帯デバイス１０から受信した信号の他の測定値を決定することができる。
【００４９】
次いで、センサ３１は測定情報を制御モジュール２０に通信することができ、制御モジュール２０は、各々のセンサ３１から受信した測定情報に基づいて、携帯デバイス１０の位置または携帯デバイス１０までの距離を決定することができる。たとえば、制御モジュール２０は、たとえば、様々なセンサ３１によって受信された携帯デバイス１０からの様々な信号のＲＳＳＩ値のパターンに基づいて、携帯デバイス１０の位置を決定することができる。たとえば、相対的に強いＲＳＳＩは一般的に携帯デバイス１０がより近いことを示し、相対的に弱いＲＳＳＩは一般的に携帯デバイス１０が遠く離れていることを示す。各々のセンサ３１を用いて、携帯デバイス１０によって送信された通信信号のＲＳＳＩを分析することにより、制御モジュール２０は、車両３０に対する携帯デバイス１０の位置または携帯デバイス１０までの距離を決定することができる。追加的または代替的に、携帯デバイス１０によって送信され、センサ３１によって受信された信号の到来角または到来時間差の測定値も、携帯デバイス１０の位置を決定するために制御モジュール２０によって使用されることができる。追加的または代替的に、センサ３１自体が、測定情報に基づいて携帯デバイス１０の位置または携帯デバイス１０までの距離を決定し、その位置または距離を制御モジュール２０に通信することができる。
【００５０】
次いで、車両３０に対する携帯デバイス１０の決定された位置または距離に基づいて、ＰＥＰＳシステム１は、車両３０のドアのロック解除、車両３０のトランクのロック解除、車両３０の始動、および／または車両３０の始動許可のような、車両機能を許可または実行することができる。たとえば、携帯デバイス１０が車両３０まで第1の距離閾値よりも近い場合、ＰＥＰＳシステム１は車両の室内灯または室外灯を作動させることができる。携帯デバイス１０が車両まで第２の距離閾値よりも近い場合、ＰＥＰＳシステム１は車両３０のドアまたはトランクのロックを解除することができる。携帯デバイス１０が車両３０の内部にある場合、ＰＥＰＳシステム１は車両３０の始動を許可することができる
【００５１】
引き続き図３を参照すると、ＢＬＥ通信プロトコルが使用される場合、センサ３１は、アンテナシステム４３を使用してＢＬＥ信号を受信し、具体的には、ＢＬＥ物理層（ＰＨＹ）コントローラ４６を使用してＢＬＥ物理層メッセージを受信する。センサ３１は、ＢＬＥ物理層メッセージを観察し、チャネルマップ再構成モジュール４２によって生成されるチャネルマップを使用して、たとえば、受信信号強度インジケータ（ＲＳＳＩ）を含む、関連信号の物理的特性の測定値を取得するように構成されることができる。追加的または代替的に、センサ３１は、複数のセンサ３１によって受信された信号の、到来時間差、到来時間、または到来角データを決定するために、相互に通信可能であり、および／または、車両インターフェース４５を介して通信ゲートウェイ２９と通信可能である。
【００５２】
タイミング同期モジュール４４は、車両インターフェース４５でのメッセージの受信時間を正確に測定し、そのタイミング情報を無線通信チップセット４１に渡すように構成される。無線通信チップセット４１は、チャネルマップ情報およびタイミング信号に基づいて、特定の時間にＰＨＹコントローラ４６を特定のチャネルに同調させるように構成される。さらに、ＢＬＥ通信プロトコルが使用される場合、無線通信チップセット４１は、たとえば、ブルートゥース仕様バージョン５．０において提案または採用された標準データレートを含む、ブルートゥース物理層仕様に準拠するすべての物理層メッセージおよびデータを観察するように構成される。データ、タイムスタンプ、および、測定信号強度が、無線通信チップセット４１によって、車両インターフェース４５を介して制御モジュール２０の様々なモジュールに報告されてもよい。
【００５３】
図４を参照すると、通信ゲートウェイ２９は、ＢＬＥ信号を受信するためにアンテナ１９に接続された無線通信チップセット４１を含んでいる。ＢＬＥ通信プロトコルが使用されるとき、無線通信チップセット４１は、たとえば、ＢＬＥ仕様（すなわち、ブルートゥース仕様バージョン５．０）に準拠するブルートゥースプロトコルスタック４８を実装する。無線通信チップセット４１はまた、無線通信チップセット４１のプロセッサによって実行可能なアプリケーションコードによって実現されるアプリケーション４７を含むことができる。追加的または代替的に、アプリケーション４７は、制御モジュール２０のプロセッサによって実行可能であってもよく、制御モジュール２０の非一時的なコンピュータ可読媒体に格納されてもよい。
【００５４】
アプリケーション４７は、データの有効性に係わらず、無線通信チップセット４１によって送受信されるタイムスタンプ付きデータを無線通信チップセット４１が検査できるようにするために、ブルートゥース仕様外の修正に相当するコードを含んでもよい。たとえば、アプリケーション４７は、無線通信チップセット４１が期待値に対して送受信データを比較することを可能にする。通信ゲートウェイ２９は、実際の送受信データを、車両インターフェース４５を介して制御モジュール２０の様々なモジュールに送信するように構成される。あるいは、通信ゲートウェイ２９は、車両インターフェース４５を介して各々のセンサ３１からデータを受信するように構成されてもよい。アプリケーション４７はさらに、無線通信チップセット４１が、各々のセンサ３１が正しい時間に正しいデータを受信したことを確認できるように構成されてもよい。
【００５５】
ブルートゥースプロトコルスタック４８は、チャネルマップ、アクセス識別子、次のチャネル、および次のチャネルまでの時間をアプリケーション４７に提供するように構成される。ブルートゥースプロトコルスタック４８は、アプリケーション４７に対する送信および受信イベントのタイムスタンプのためのタイミング信号および／または無線通信チップセット４１のデジタルＰＩＮ出力を出力するように構成される。通信ゲートウェイ２９はまた、タイミング信号を受け入れるように構成され、車両インターフェース４５と連携して機能して、接続情報メッセージおよび他の通信の正確なタイムスタンプを作成するように構成されたタイミング同期モジュール４４を含む。
【００５６】
引き続き図４を参照すると、通信ゲートウェイ２９は、タイミング情報およびチャネルマップ情報をそれぞれタイミング制御モジュール２５に提供することができる。通信ゲートウェイ２９は、接続情報配信モジュール２４への進行中の接続に対応する情報およびタイミング信号をタイミング制御モジュール２５に提供するように構成されることができ、その結果、センサ３１は、通信リンク５０を見つけて、追跡または傍受することができる。
【００５７】
さらに、無線通信チップセット４１は、フォン−アズ−ア−キー（ＰａａＫ）モジュール４９を含み、ＰａａＫモジュール４９は、制御モジュール２０のプロセッサによって実行可能であり、リードオンリーメモリ（ＲＯＭ）またはランダムアクセスメモリ（ＲＡＭ）などの非一時的なコンピュータ可読媒体に格納されるアプリケーションコードによって実現される。ＰａａＫモジュール４９は、図６から図８を参照して以下でさらに詳細に説明される。
【００５８】
図５を参照すると、車両３０、通信ゲートウェイ２９、およびセンサ３１を含むＰＥＰＳシステム２が提供される。上述したように、センサ３１は、通信リンク５０を介して携帯デバイス１０によって通信ゲートウェイ２９に送信される無線信号の物理的特性の測定を行うように構成されている。センサ３１は、例えば、通信リンク５０を介して送信される無線信号の到来角（ＡｏＡ）を測定することができる。制御モジュール２０がセンサ３１からＡｏＡ測定値を受信することに応じて、制御モジュール２０は、センサ３１から受信したＡｏＡ測定値に基づいて、携帯デバイス１０の位置、携帯デバイス１０と車両３０との間の距離、および／または携帯デバイス１０の軌跡を決定することができる。
【００５９】
携帯デバイス１０の位置、携帯デバイス１０と車両３０との間の距離、および／または携帯デバイス１０の軌跡に基づいて、制御モジュール２０は、ミラー位置の設定、ステアリングホイール位置の調整、運転者のシート位置の調整、空調制御設定の変更、オーディオ／メディア設定の調整、車両のドアのロック解除、車両のトランクのロック解除、車両の照明システムの起動、車両の始動などのような、特定の車両機能を作動させることができる。
【００６０】
一実施形態では、未承認デバイス６０は、ＰＥＰＳシステム１の無線脆弱性に基づいて、通信リンク５０を介して車両インターフェース４５の信号を操作および／または信号を車両インターフェース４５に直接注入するように構成される可能性がある。一例として、未承認デバイス６０は、制御モジュール２０からメッセージを送信および／または受信するために、通信リンク５０上で破線の矢印７０、８０によって示されるように、リプレイ攻撃を実行するように構成され得る。したがって、未承認デバイス６０のユーザは、特定の車両機能を不正におよび／または悪意を持って作動させ、または、それへのアクセスを取得する可能性がある。
【００６１】
図６を参照すると、ＣＶＭ１４およびＰａａＫモジュール４９の機能ブロック図が示されている。ＣＶＭ１４は、メッセージ認証コード（ＭＡＣ）生成器１０６およびトーン位置モジュール１１２を含むことができる。ＰａａＫモジュール４９は、ノンス生成器１０８、ＭＡＣ生成器１１８、トーン除去モジュール１２８、ＭＡＣ比較モジュール１３０、および検証モジュール１３２を含むことができる。
【００６２】
通信リンク５０を確立し、その後、ＰａａＫモジュール４９を介してメッセージバイト１０４を通信ゲートウェイ２９に送信するために、ＣＶＭ１４は、メッセージパケット１４０のペイロード１１４のランダムなまたは疑似ランダムな位置に、トーンバイト１１３（例えば、非白色化トーンバイト）を挿入するように構成される。続いて、以下でさらに詳しく説明するように、たとえば、ＰａａＫモジュール４９がペイロード１１４からトーンバイト１１３を除去し、ペイロード１１４の他の部分の真正性および完全性を確認することができる場合、ＰａａＫモジュール４９は、通信ゲートウェイ２９にメッセージバイト１０４を提供する。
【００６３】
例示的な一実施形態では、ＣＶＭ１４は、メッセージバイト１０４、ＭＡＣ生成器１０６によって生成された第１のＭＡＣバイト１１１−１、およびノンス生成器１０８（つまり、乱数生成器）によって生成された第１のノンスバイト１０９−１を含む認証パケット１１０を生成するように構成される。ＭＡＣ生成器１０６は、メッセージバイト１０４内のデータの完全性または真正性を保護および／または保証するように構成される。いくつかの実施形態では、ＭＡＣ生成器１０６は、たとえば、高度暗号化標準（ＡＥＳ）またはハッシュベースのメッセージ認証アルゴリズム（ＭＭＡＣ）などの対称暗号化または復号アルゴリズムを使用して、第１のＭＡＣバイト１１１−１を生成するように構成される。特定の例として、ＭＡＣ生成器１０６は、共有秘密鍵１０２の第１の部分およびメッセージバイト１０４に基づいて第１のＭＡＣバイト１１１−１を生成してもよい。
【００６４】
ノンス生成器１０８は、乱数または疑似乱数（たとえば３２バイトの値）である、第１のノンスバイト１０９−１および第２のノンスバイト１０９−２を生成するように構成される。特に、第１のノンスバイト１０９−１が第１のＭＡＣバイト１１１−１およびメッセージバイト１０４と組み合わされると、通信リンク５０は、リプレイ攻撃を受けることを回避することができる。
【００６５】
トーン位置モジュール１１２は、ペイロード１１４を生成するために、共有秘密鍵１０２の第２の部分、認証パケット１１０、および／または通信チャネルに基づいて、トーンバイト１１３（例えば、非白色化トーンバイト）を生成して、擬似ランダムに認証パケット１１０へ挿入するように構成される。トーン位置モジュール１１２は、図７Ａ〜７Ｇを参照して以下でさらに詳細に説明するように、たとえば、第１のノンスバイト１０９−１、第１のＭＡＣバイト１１１−１、またはメッセージバイトの１つの後を含む、認証パケット１１０内の任意の場所にトーンバイト１１３を挿入することができる。あるいは、トーン位置モジュール１１２は、図７Ａ〜７Ｇを参照して以下でさらに詳細に説明するように、第１のノンスバイト１０９−１の第１の部分（すなわち、第１のノンスビット）と第２の部分（すなわち、第２のノンスビット）との間、第１のＭＡＣバイト１１１−１の第１の部分（すなわち、第１のＭＡＣビット）と第２の部分（すなわち、第２のＭＡＣビット）との間、または、メッセージバイト１０４の第１の部分と第２の部分との間にトーンバイト１１３を挿入してもよい。図６に示すように、トーン位置モジュール１１２は、第１のＭＡＣバイト１１１−１の第１の部分と第２の部分との間にトーンバイト１１３を擬似ランダムに挿入し、そこでは、第１のＭＡＣバイト１１１−１の第１の部分は、ＭＡＣ＿１バイト（バイツ）として表され、ＭＡＣバイト１１１−１の第２の部分は、ＭＡＣ＿２バイト（バイツ）として表されている。あるいは、トーン位置モジュール１１２は、サービスおよび／またはＢＬＥ通信プロトコルの特徴的属性に基づいて選択される固定されたまたはランダムな場所にトーンバイト１１３を挿入することができる。
【００６６】
いくつかの実施形態では、トーンバイト１１３は、任意の８ビットの値であってもよい。他の実施形態では、トーンバイト１１３は、特定の８ビット値に限定されてもよい。一例として、トーンバイト１１３は、例えば、ペイロード１１４へのＤＣバイアスの導入を回避するために、トーンバイト１１３内に同じ値の連続するビットがいくつ存在するかに関する制限を有することができる（たとえば、トーンバイト１１３は、５つよりも多い１および／または０の連続した値を有することができない）。
【００６７】
その後、ＣＶＭ１４は、ペイロード１１４、プリアンブルバイト（図示せず）、アクセスアドレスバイト（図示せず）、ヘッダバイト（図示せず）、および巡回冗長検査バイト（図示せず）を含むメッセージパケット１４０を、ＰａａＫモジュール４９のトーン除去モジュール１２８へ送信することができる。トーン除去モジュール１２８は、メッセージパケット１４０からトーンバイト１１３を除去するように構成される（すなわち、トーンバイト１１３を除去するためにペイロード１１４に対して白色化アルゴリズムを実行する）。
【００６８】
ＭＡＣ比較モジュール１３０は、トーンバイト１１３の除去に応じて、ＭＡＣ生成器１０６によって生成された第１のＭＡＣバイト１１１−１が、ＰａａＫモジュール４９のＭＡＣ生成器１１８によって生成された第２のＭＡＣバイト１１１−２と一致するかどうかを判定するように構成される。さらに、検証モジュール１３２は、第１のノンスバイト１０９−１がノンス生成器１０８によって生成された第２のノンスバイト１０９−２と一致するかどうかを判定することができる。検証モジュール１３２が、第１のノンスバイト１０９−１と第２のノンスバイト１０９−２とが一致すると判定し、ＭＡＣ比較モジュール１３０から、第１のＭＡＣバイト１１１−１と第２のＭＡＣバイト１１１−２が一致するとの指標を受信した場合、通信リンク５０が承認される。
【００６９】
さらに、検証モジュール１３２が、第１のノンスバイト１０９−１と第２のノンスバイト１０９−２が一致すると判定し、ＭＡＣ比較モジュール１３０が、第１のＭＡＣバイト１１１−１と第２のＭＡＣバイト１１１−２が一致すると判定した場合、検証モジュール１３２は、トーンバイト１１３を除くメッセージパケット１４０のコンテンツのすべてを含む、再構成されたメッセージパケット１４１を生成するように構成されてもよい。そして、検証モジュール１３２は、その後、再構成されたメッセージパケット１４１を通信ゲートウェイ２９に提供することができる。他の実施形態では、検証モジュール１３２が第１のノンスバイト１０９−１と第２のノンスバイト１０９−２が一致すると判定し、ＭＡＣ比較モジュールが、第１のＭＡＣバイト１１１−１と第２のＭＡＣバイト１１１−２が一致すると判定した場合、検証モジュール１３２は、単にメッセージバイト１０４を通信ゲートウェイ２９に送信してもよい。
【００７０】
図７Ａ〜７Ｇを参照すると、メッセージパケット１４０の例示的な図が示されている。メッセージパケット１４０は、アドバタイジングＢＬＥパケットまたはデータＢＬＥパケットのいずれかであってもよく、メッセージパケット１４０が送信または受信される通信チャネルは、メッセージパケットのタイプに基づいて変化してもよい（たとえば、アドバタイジングＢＬＥパケットは、ＢＬＥ通信プロトコルのチャネル３７−３９でのみ送信される）。
【００７１】
いくつかの実施形態では、メッセージパケット１４０は、プリアンブル部１４２（８ビット）、アクセスアドレス部１４４（３２ビット）、プロトコルデータユニット部１４６（５３６ビット）、および巡回冗長検査部１４８（２４ビット）を含むことができる。メッセージパケット１４０がアドバタイジングＢＬＥパケットである場合、アクセスアドレス部１４４は、ＢＬＥ対応デバイスの発見を可能にするために、すべてのＢＬＥ対応デバイス間で不変（すなわち、共通アクセスアドレス）であるビット値を有することができる。プロトコルデータユニット部１４６は、論理リンク識別子（ＬＬＩＤ）ビット、次の予期されるシーケンス番号（ＮＥＳＮ）ビット、シーケンス番号（ＳＮ）ビット、さらなるデータ（ＭＤ）ビット、長さビット、および、将来の使用のために確保されているビット（ＲＦＵ）を含む、ヘッダ部１５０（１６ビット）を含むことができる。ＬＬＩＤビットは、メッセージパケット１４０がデータを含むか、または制御メッセージを含むかを示すことができる。ＮＥＮＳビットとＳＮビットは、通知とフロー制御のためのシーケンス番号を表すことができる。ＭＤビットは、携帯デバイス１０と通信ゲートウェイ２９が通信リンク５０を介して通信している間に、携帯デバイス１０が追加のメッセージパケット１４０を送信することを意図しているかどうかを示すことができる。長さビットは、ペイロード１１４の長さを表すことができる。
【００７２】
上述のように、トーン位置モジュール１１２は、ペイロード１１４を生成するために、共有秘密鍵１０２の第２の部分と認証パケット１１０に基づいて、トーンバイト１１３（例えば、非白色化トーンバイト）を生成し、疑似ランダムに認証パケット１１０に挿入するように構成される。一例として、図６および図７Ａに示すように、トーン位置モジュール１１２は、ペイロード１１４−１を生成するために、第１のＭＡＣバイト１１１−１の第１の部分と第２の部分との間にトーンバイト１１３を挿入することができ、ここで、ＭＡＣバイト１１１−１の第１の部分は、ＭＡＣ＿１ Ｂｙｔｅ（s）として表され、ＭＡＣバイト１１１−１の第２の部分はＭＡＣ＿２ Ｂｙｔｅ（ｓ）として表されている。
【００７３】
別の例として、図７Ｂに示すように、トーン位置モジュール１１２は、ペイロード１１４−２を生成するために、第１のＭＡＣバイト１１１−１とメッセージバイト１０４との間にトーンバイト１１３を挿入することができる。図７Ｃに示すように、トーン位置モジュール１１２は、ペイロード１１４−３を生成するために、第１のノンスバイト１０９−１と第１のＭＡＣバイト１１１−１との間にトーンバイト１１３を挿入することができる。
【００７４】
別の例として、図７Ｄに示すように、トーン位置モジュール１１２は、ペイロード１１４−４を生成するために、第１のノンスバイト１０９−１の前にトーンバイト１１３を挿入することができる。図７Ｅに示すように、トーン位置モジュール１１２は、ペイロード１１４−５を生成するために、第１のノンスバイト１０９−１の第１の部分と第２の部分との間にトーンバイト１１３を挿入することができ、ここで、第１のノンスバイト１０９−１の第１の部分は、Ｎｏｎｃｅ＿１ Ｂｙｔｅ（ｓ）として表され、第１のノンスバイト１０９−１の第２の部分は、Ｎｏｎｃｅ＿２ Ｂｙｔｅ（ｓ）として表されている。
【００７５】
別の例として、図７Ｆに示すように、トーン位置モジュール１１２は、ペイロード１１４−６を生成するために、メッセージバイト１０４の第１の部分と第２の部分との間にトーンバイト１１３を挿入することができ、ここで、メッセージバイト１０４の第１の部分は、Ｍｅｓｓａｇｅ＿１Ｂｉｔｓとして表され、メッセージバイト１０４の第２の部分は、Ｍｅｓｓａｇｅ＿２Ｂｉｔｓとして表される。図７Ｇに示すように、トーン位置モジュール１１２は、ペイロード１１４−７を生成するために、メッセージバイト１０４の後にトーンバイト１１３を挿入することができる。
【００７６】
図８を参照すると、携帯デバイス１０と通信ゲートウェイ２９との間の通信リンク５０を確立するための制御アルゴリズム８００を示すフローチャートが示されている。制御アルゴリズム８００は、例えば、携帯デバイス１０がオンされ、通信ゲートウェイ２９との通信範囲内にあるとき、８０４で始まる。８０６で、制御アルゴリズム８００は、共有秘密鍵１０２を生成する。８０８で、制御アルゴリズム８００は、ＭＡＣ生成器１０６、１１８を使用して、共有秘密鍵１０２に基づいて第１のＭＡＣバイト１１１−１、第２のＭＡＣバイト１１１−２を生成する。８１２で、制御アルゴリズム８００は、ノンス生成器１０８を使用して、第１のノンスバイト１０９−１および第２のノンスバイト１０９−２を生成する。８１６では、制御アルゴリズム８００は、ＣＶＭ１４を使用して、第１のノンスバイト１０９−１、第１のＭＡＣバイト１１１−１、およびメッセージバイト１０４を使用し、認証パケット１１０を生成する。
【００７７】
８２０で、制御アルゴリズム８００は、トーン位置モジュール１１２を使用して、共有秘密鍵１０２に基づいてトーンバイト１１３を生成する。８２４で、制御アルゴリズム８００は、トーン位置モジュール１１２を使用して、トーンバイト１１３を挿入するための、認証パケット１１０の位置（すなわち、第１の位置）を擬似ランダムに決定する。８２８で、制御アルゴリズム８００は、ＣＶＭ１４を使用し、決定された位置に基づいて、メッセージパケット１４０のペイロード１１４を生成する。８３２で、制御アルゴリズム８００は、メッセージパケット１４０をＰａａＫモジュール４９に送信する。８３６で、制御アルゴリズム８００は、ＰａａＫモジュール４９を使用して、メッセージパケット１４０からトーンバイト１１３を除去し、メッセージパケット１４０を分解する（すなわち、ＰａａＫモジュール４９は、第１のＭＡＣバイト１１１−１をＭＡＣ比較モジュール１３０に提供し、第１のノンスバイト１０９−１を検証モジュール１３２に提供する）。
【００７８】
８４０で、制御アルゴリズム８００は、ＭＡＣ比較モジュール１３０を使用して、ＭＡＣ生成器１０６によって生成された第１のＭＡＣバイト１１１−１が、ＭＡＣ生成器１１８によって生成された第２のＭＡＣバイト１１１−２と一致するかどうかを判定する。一致する場合、制御アルゴリズム８００は８４４に進む。そうでない場合、制御アルゴリズム８００は８５６に進む。８４４で、制御アルゴリズム８００は、検証モジュール１３２を使用して、たとえば、ＰＥＰＳシステム１がリプレイ攻撃の対象となっていないことを確認するために、第１のノンスバイト１０９−１が第２のノンスバイト１０９−２に一致するかどうかを判定する。一致する場合、制御アルゴリズム８００は８４８に進む。そうでない場合、制御アルゴリズム８００は８５６に進む。８４８で、制御アルゴリズム８００は、検証モジュール１３２を使用して、メッセージパケット１４０が承認されたことを決定し、その後、８５２に進む。８５２で、制御アルゴリズム８００は、検証モジュール１３２を使用して、トーンバイト１１３の無いメッセージパケット１４０を再構成する（すなわち、再構成メッセージパケット１４１を生成する）。８５４で、制御アルゴリズム８００は、ＰａａＫモジュール４９を使用して、再構成メッセージパケット１４１を通信ゲートウェイ２９に提供し、通信リンク５０を確立し、その後、８６４に進む。
【００７９】
８５６で、制御アルゴリズム８００は、検証モジュール１３２を使用して、メッセージパケット１４０が承認されないことを決定し、次に８６０で、携帯デバイス１０と通信ゲートウェイ２９との間の通信を無効にする。８６４で、制御アルゴリズム８００は終了する。
【００８０】
図９を参照すると、携帯デバイス１０と車両３０との間の制御ループを示す例示的な制御アルゴリズム９００のフローチャートが示されている。制御アルゴリズム９００は、たとえばで、携帯デバイス１０がオンされ、通信ゲートウェイ２９の通信範囲内にあるとき９０４で始まる。９０８で、制御アルゴリズム９００は、ＣＶＭ１４を使用して、ＰａａＫモジュール４９から第１のパケットペアの第１のメッセージパケットを受信する。９１２で、制御アルゴリズム９００は、ＣＶＭ１４を使用して、第１のパケットペアの第２のメッセージパケットを、第１の通信チャネル（例えば、ＢＬＥチャネル１−３９のうちの１つ）を介してＰａａＫモジュール４９に送信する。メッセージパケットをＰａａＫモジュール４９に送信することは、図１０を参照して以下でさらに詳細に説明される。
【００８１】
９１６で、制御アルゴリズム９００は、ＣＶＭ１４を使用して、第２のパケットペアの第１のメッセージパケットを受信し、第２のペアの第１のパケットは、空のプロトコルデータユニット（ＰＤＵ）部１４６を含む。９２０で、制御アルゴリズム９００は、ＣＶＭ１４を使用して、第１のパケットペアの第１のメッセージパケットがメッセージ送信失敗を示すかどうかを判定する。一例として、第１のパケットペアの第１のメッセージパケットが、それが少なくとも１つのチャネルによって遅れていることを示す場合、ＣＶＭ１４は、それがメッセージ送信失敗を示すと決定することができる。ＣＶＭ１４がメッセージ送信失敗を示す場合、制御アルゴリズム９００は９２４に進み、ＣＶＭ１４を使用して、第２のパケットペアの第２のメッセージパケットを第２の通信チャネルを介してＰａａＫモジュール４９に送信し、次いで、９３２に進む。そうでない場合、制御アルゴリズム９００は９２８に進み、ＣＶＭ１４を使用して、第２のパケットペアの第２のメッセージパケットを第１の通信チャネルを介してＰａａＫモジュール４９に送信し、次いで、９３２に進む。
【００８２】
９３２で、制御アルゴリズム９００は、無線通信チップセット１１を使用して、送信用の追加のメッセージパケットが、現在の接続間隔内で必要かどうかを判定する。必要である場合、制御アルゴリズム９００は９３６に進む。そうでない場合、制御アルゴリズム９００は９４４に進む。９３６で、制御アルゴリズム９００は、ＣＶＭ１４を使用して、追加のパケットペアの第１のメッセージパケットを受信し、追加のパケットペアの第１のパケットは、空のＰＤＵ部１４６を含む。９４０で、制御アルゴリズム９００は、ＣＶＭ１４を使用して、追加のパケットペアの第２のメッセージパケットを次の通信チャネルを介してＰａａＫモジュール４９に送信し、次いで、９３２に進む。９４４で、制御アルゴリズム９００は、ＣＶＭ１４をＰａａＫモジュール４９から切断する。９４８で、制御アルゴリズム９００は、接続間隔の間の期間が経過したかどうか（例えば、５０ｍｓ）を判定する。経過した場合、制御アルゴリズム９００は９０８に進む。そうでなければ、制御アルゴリズム９００は、期間が経過するまで９４８に留まる。
【００８３】
図１０を参照すると、ＰａａＫモジュール４９へのメッセージパケットの送信を示す制御アルゴリズム１０００のフローチャートが示されている。制御アルゴリズム１０００は、たとえば、制御アルゴリズム９００がステップ９１２、９２８、９３６、または９４０のうちの１つを実行するとき、１００４で始まる。１００８で、制御アルゴリズム１０００は、ＣＶＭ１４を使用して、接続間隔の現在の通信チャネル（例えば、ＢＬＥプロトコルのチャネル１６）を決定する。１０１２で、制御アルゴリズム１０００は、無線通信チップセット１１を使用して、接続間隔の現在の通信チャネルに基づいて一連のビットを生成する。１０１６で、制御アルゴリズム１０００は、無線通信チップセット１１を使用し、一連のビットに基づいて、白色化アルゴリズムを使用してトーンバイト１１３を生成する。
【００８４】
一例として、無線通信チップセット１１は、ｘ’＋ｘ４＋ｉの多項式を有する７ビット線形フィードバックシフトレジスタ（ＬＦＳＲ）回路を含むことができる。次に、ＬＦＳＲ回路は、トーンバイト１１３を生成するために、一連のビットおよびメッセージパケット１４０にＸＯＲ関数を適用することができる。このようにして、トーンバイト１１３を決定するために使用される関数と、メッセージパケット１４０を白色化するために使用される一続きのビットを出力するためにＬＦＳＲ回路によって使用される関数の両方は、現在の通信チャネルに基づく。出力された一連のビットがメッセージパケット１４０とＸＯＲされたときに、結果として生じる白色化されたメッセージパケットが一連のゼロまたは１を含むように、関数は調整される。１０２０で、制御アルゴリズム１０００は、無線通信チップセット１１を使用して、白色化されたメッセージパケットをＰａａＫモジュール４９に送信し、その後、１０２４で終了する。
【００８５】
前述の説明は、本質的に単なる例示にすぎず、本開示、その適用、または使用を限定することを決して意図するものではない。本開示の広範な教示は様々な形態で実施することができる。したがって、本開示は特定の例を含むが、図面、明細書、および添付の特許請求の範囲を検討すれば他の変更態様が明らかになるので、本開示の真の範囲はそのように限定されるべきではない。本開示の原理を変更することなく、方法内の１つまたは複数のステップが異なる順序で（または同時に）実行されてもよいことを理解されたい。さらに、各実施形態は特定の特徴を有するものとして上記に説明されているが、本開示の任意の実施形態に関して説明されたこれらの特徴のうちのいずれか１つまたは複数は、任意の他の実施形態で実施されること、および／または、組み合わせが明示的に説明されていなくとも、任意の他の実施形態の特徴と組み合わせることが可能である。言い換えれば、説明された実施形態は相互に排他的ではなく、１つまたは複数の実施形態の相互の入れ替えは、本開示の範囲内に留まる。
【００８６】
要素間（例えば、モジュール間、回路要素間、半導体層間など）の空間的および機能的関係は、「接続され」、「係合され」、「結合され」、「隣接して」、「の隣に」、「の上に」、「上」、「下」、および「配置され」を含む、様々な用語を用いて説明される。第１および第２要素間の関係が、上記開示において説明されているとき、「直接」であると明示的に記載されていない限り、その関係は第１および第２要素間に他の介在要素が存在しない直接的な関係であり得るが、第１および第２要素間に１つまたは複数の介在要素が（空間的または機能的に）存在する間接的な関係でもあり得る。本明細書で使用されるように、Ａ、Ｂ、およびＣのうちの少なくとも１つとのフレーズは、非排他的論理和を使用する論理（ＡまたはＢまたはＣ）を意味すると解釈されるべきであり、「Ａの少なくとも１つ、Ｂの少なくとも１つ、およびＣの少なくとも１つ」を意味すると解釈されるべきではない。
【００８７】
図面において、矢じりで示される矢印の方向は、概して、図にとって重要な情報（データまたは命令など）の流れを示す。たとえば、要素Ａと要素Ｂが様々な情報を交換するが、要素Ａから要素Ｂに送信される情報が図に関連する場合、矢印は要素Ａから要素Ｂを指すことがある。この一方向の矢印は、他の情報が要素Ｂから要素Ａに送信されないことを意味しない。さらに、要素Ａから要素Ｂに送信された情報について、要素Ｂは、要素Ａに、情報の要求または情報の受信確認を送信するかもしれない。
【００８８】
以下の定義を含む本出願では、用語「モジュール」または用語「コントローラ」は、用語「回路」と置き換えられてもよい。「モジュール」という用語は、特定用途向け集積回路（ＡＳＩＣ）、デジタル，アナログ，またはアナログ／デジタル混合ディスクリート回路、デジタル，アナログ，またはアナログ／デジタル混合集積回路、組み合わせ論理回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コードを実行するプロセッサ回路（共有、専用、またはグループ）、プロセッサ回路によって実行されるコードを記憶するメモリ回路（共有、専用、またはグループ）、説明された機能を提供する他の適切なハードウェアコンポーネント、あるいは、システムオンチップなどにおける上記のいくつかまたはすべての組み合わせ、を指すか、一部であるか、または含むことができる。
【００８９】
モジュールは、１つ以上のインターフェース回路を有することができる。いくつかの例では、インターフェース回路は、ローカルエリアネットワーク（ＬＡＮ）、インターネット、ワイドエリアネットワーク（ＷＡＮ）、またはそれらの組み合わせに接続される有線または無線インターフェースを含むことができる。本開示の任意の所与のモジュールの機能は、インターフェース回路を介して接続される複数のモジュール間で分散されてもよい。たとえば、複数のモジュールが負荷分散を可能にし得る。さらなる例では、サーバ（リモート、またはクラウドとしても知られる）モジュールは、クライアントモジュールに代わっていくつかの機能を達成してもよい。
【００９０】
上記で使用される、コードという用語は、ソフトウェア、ファームウェア、および／またはマイクロコードを含むことができ、プログラム、ルーチン、機能、クラス、データ構造、および／またはオブジェクトを指すことがある。共有プロセッサ回路との用語は、複数のモジュールからのコードの一部または全部を実行する単一のプロセッサ回路を包含する。グループプロセッサ回路との用語は、追加のプロセッサ回路と組み合わせて、１つまたは複数のモジュールからのコードの一部または全部を実行するプロセッサ回路を包含する。複数のプロセッサ回路への言及は、個別のダイ上の複数のプロセッサ回路、単一のダイ上の複数のプロセッサ回路、単一のプロセッサ回路の複数のコア、単一のプロセッサ回路の複数のスレッド、またはこれらの組み合わせを包含する。共有メモリ回路との用語は、複数のモジュールからのコードの一部または全部を格納する単一のメモリ回路を包含する。グループメモリ回路との用語は、追加のメモリと組み合わせて、１つまたは複数のモジュールからのコードの一部または全部を格納するメモリ回路を包含する。
【００９１】
メモリ回路との用語は、コンピュータ可読媒体との用語のサブセットである。本明細書で使用されるコンピュータ可読媒体との用語は、（搬送波上などの）媒体を通って伝播する一時的な電気信号または電磁信号を含まない。したがって、コンピュータ可読媒体との用語は、有形の非一時的なものと見なすことができる。非一時的で有形のコンピュータ可読媒体の非限定的な例は、（フラッシュメモリ回路、消去可能プログラマブル読み出し専用メモリ回路、またはマスク読み出し専用メモリ回路などの）不揮発性メモリ回路、（ＳＲＡＭ回路やＤＲＡＭ回路などの）揮発性メモリ回路、（アナログまたはデジタル磁気テープまたはハードディスクドライブなどの）磁気記憶媒体、および（ＣＤ、ＤＶＤ、またはブルーレイディスクなどの）光記憶媒体である。
【００９２】
本出願に記載されている装置および方法は、コンピュータプログラムで具現化された１つまたは複数の特定の機能を実行するように汎用コンピュータを構成することによって作成された専用コンピュータによって部分的または完全に実施され得る。上記の機能ブロックおよびフローチャート要素は、ソフトウェアの仕様として役立ち、熟練した技術者またはプログラマーの日常業務によってコンピュータプログラムに変換することができる。
【００９３】
コンピュータプログラムは、少なくとも１つの非一時的な有形のコンピュータ可読媒体に格納されるプロセッサ実行可能命令を含む。コンピュータプログラムはまた、格納されたデータを含むかまたはそれに依存することができる。コンピュータプログラムは、専用コンピュータのハードウェアと相互作用する基本入出力システム（ＢＩＯＳ）、専用コンピュータの特定のデバイスと相互作用するデバイスドライバ、１つ以上のオペレーティングシステム、ユーザアプリケーション、バックグラウンドサービス、バックグラウンドアプリケーションなどを含んでも良い。
【００９４】
コンピュータプログラムは、（ｉ）ＨＴＭＬ（ハイパーテキストマークアップ言語）またはＸＭＬ（拡張マークアップ言語）のような解析される記述テキスト、（ｉｉ）アセンブリコード、（ｉｉｉ）コンパイラによってソースコードから生成されるオブジェクトコード、（ｉｖ）インタプリタによる実行のためのソースコード、（ｖ）ジャストインタイムコンパイラによるコンパイルおよび実行のためのソースコードなどを含むことができる。単なる例として、ソースコードは、C、C++、C＃、Objective-C、Swift、Haskell、Go、SQL、R、Lisp、Java（登録商標）、Fortran、Perl、Pascal、Curl、OCaml、Javascript（登録商標）、HTML5（ハイパーテキストマークアップ言語第５改訂版）、Ada、ASP（Active Server Pages）、PHP（ハイパーテキストプリプロセッサ）、Scala、Eiffel、Smalltalk、Erlang、Ruby、Flash（登録商標）、VisualBasic（登録商標）、Lua、MATLAB、SIMULINK、およびPython（登録商標）を含む言語の構文法を使って書くことができる。
【００９５】
請求項に記載された要素はいずれも、要素が、「〜するための手段」とのフレーズを使用して、または方法クレームの場合、「〜するための操作」または「〜するためのステップ」とのフレーズを使用して明示的に記載されていない限り、ミーンズプラスファンクション要素であることを意図していない。
【００９６】
上述した実施形態の説明は、例示および説明の目的のために提供されている。それは、網羅的であることも、開示を限定することも意図するものではない。特定の実施形態の個々の要素や特徴は、一般に、その特定の実施形態に限定されることなく、具体的に図示または説明されなくとも、適用可能である場合、交換可能であり、選択された実施形態で使用することが可能である。同上のものはまた、多くのやり方で変更されてもよい。そのような変更は、本開示からの逸脱として見なすべきではなく、全てのそのような修正は、本開示の範囲内に含まれることが意図される。
【図１】
2021509786.tif 000003
【図２】
2021509786.tif 000004
【図３】
2021509786.tif 000005
【図４】
2021509786.tif 000006
【図５】
2021509786.tif 000007
【図６】
2021509786.tif 000008
【図７Ａ】
2021509786.tif 000009
【図７Ｂ】
2021509786.tif 000010
【図７Ｃ】
2021509786.tif 000011
【図７Ｄ】
2021509786.tif 000012
【図７Ｅ】
2021509786.tif 000013
【図７Ｆ】
2021509786.tif 000014
【図７Ｇ】
2021509786.tif 000015
【図８】
2021509786.tif 000016
【図９】
2021509786.tif 000017
【図１０】
2021509786.tif 000018
【国際調査報告】
2021509786.tif 000019
2021509786.tif 000020
2021509786.tif 000021