(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-25
(45)【発行日】2022-08-02
(54)【発明の名称】モバイルの非白色化
(51)【国際特許分類】
H04L 9/36 20060101AFI20220726BHJP
H04L 9/32 20060101ALI20220726BHJP
H04W 4/40 20180101ALI20220726BHJP
H04W 12/06 20210101ALI20220726BHJP
【FI】
H04L9/36
H04L9/32 200A
H04W4/40
H04W12/06
(21)【出願番号】P 2020535665
(86)(22)【出願日】2018-12-24
(86)【国際出願番号】 JP2018047413
(87)【国際公開番号】W WO2019135373
(87)【国際公開日】2019-07-11
【審査請求日】2020-06-25
(32)【優先日】2018-01-05
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-12-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500164385
【氏名又は名称】デンソー インターナショナル アメリカ インコーポレーテッド
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】100106149
【氏名又は名称】矢作 和行
(74)【代理人】
【識別番号】100121991
【氏名又は名称】野々部 泰平
(74)【代理人】
【識別番号】100145595
【氏名又は名称】久保 貴則
(72)【発明者】
【氏名】スティット レイモンド
(72)【発明者】
【氏名】ピーターソン トーマス
(72)【発明者】
【氏名】ジャガー カール
(72)【発明者】
【氏名】ゴルシュ カイル
【審査官】青木 重徳
(56)【参考文献】
【文献】特表2017-517770(JP,A)
【文献】特開2006-246166(JP,A)
【文献】特開2017-163250(JP,A)
【文献】特表2016-534375(JP,A)
【文献】米国特許出願公開第2014/0270163(US,A1)
【文献】米国特許出願公開第2004/0247130(US,A1)
【文献】米国特許第08392910(US,B1)
【文献】米国特許出願公開第2010/0058071(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/36
H04L 9/32
H04W 4/40
H04W 12/06
(57)【特許請求の範囲】
【請求項1】
(i)非一時的なコンピュータ可読媒体に格納された命令を実行するように構成されたプロセッサを含む携帯デバイス(10)と(ii)周辺デバイスとの間に通信リンク(50)を確立する方法であって、
携帯デバイス(10)のプロセッサが、共有秘密鍵(102)に基づく第1のメッセージ認証コード(MAC)バイト(111-1)、第1のMACバイト(111-1)と
周辺デバイスから受信した第1のノンスバイト(109-1)とメッセージバイト(104)に基づく認証パケット(110)、共有秘密鍵(102)に基づく非白色化トーンバイト(113)、および、認証パケット(110)と非白色化トーンバイト(113)を含むメッセージパケット(140)を生成すること、を備え、
メッセージパケット(140)を生成することは、認証パケット(110)の第1の場所を擬似ランダムに特定すること、非白色化トーンバイト(113)を第1の場所に挿入すること、携帯デバイス(10)のプロセッサが、メッセージパケット(140)を周辺デバイスに送信すること、そして、携帯デバイス(10)のプロセッサが、周辺デバイスがメッセージパケット(140)を検証することに応じて、携帯デバイス(10)と周辺デバイスとの間に通信リンク(50)を確立することを含む、方法。
【請求項2】
周辺デバイスのプロセッサは、非一時的なコンピュータ可読媒体に格納された命令を実行するように構成され、
周辺デバイスのプロセッサ
が、共有秘密鍵(102)に基づく第2のMACバイト(111-2)を生成すること、および
周辺デバイスのプロセッサ
が、第2のノンスバイト(109-2)を生成すること、をさらに備える請求項1に記載の方法。
【請求項3】
メッセージパケット(140)を検証することは、
周辺デバイスのプロセッサ
が、非白色化トーンバイト(113)をメッセージパケット(140)から削除すること、および
第1のMACバイト(111-1)が第2のMACバイト(111-2)と一致すると周辺デバイスのプロセッサが判定することに応じて、
周辺デバイスのプロセッサは、メッセージパケット(140)が正当なものと認められることを決定すること、を含む請求項2に記載の方法。
【請求項4】
メッセージパケット(140)を検証することは、
第1のノンスバイト(109-1)が第2のノンスバイト(109-2)と一致すると周辺デバイスのプロセッサが判定することに応じて、
周辺デバイスのプロセッサは、メッセージパケット(140)が正当なものと認められることを決定すること、を含む請求項3に記載の方法。
【請求項5】
周辺デバイスのプロセッサ
が、第1のMACバイト(111-1)が第2のMACバイト(111-2)と一致しないと判定すること、周辺デバイスのプロセッサ
が、第1のノンスバイト(109-1)が第2のノンスバイト(109-2)と一致しないと判定することの1つに応じて、
周辺デバイスのプロセッサは、メッセージパケット(104)が無効であると決定することをさらに含む請求項2乃至4のいずれか1項に記載の方法。
【請求項6】
第1のノンスバイト(109-1)は乱数生成器(108)を使用して生成される、請求項1乃至5のいずれか1項に記載の方法。
【請求項7】
第1の場所は、第1のMACバイト(111-1)の第1のMACビットと、第1のMACバイト(111-1)の第2のMACビットとの間である、請求項1乃至6のいずれか1項に記載の方法。
【請求項8】
第1の場所は、第1のノンスバイト(109-1)の第1のノンスビットと、第1のノンスバイト(109-1)の第2のノンスビットとの間である、請求項1乃至6のいずれか1項に記載の方法。
【請求項9】
第1の場所は、第1のノンスバイト(109-1)と第1のMACバイト(111-1)の一方の場所の前にある、請求項1乃至6のいずれか1項に記載の方法。
【請求項10】
第1のノンスバイト(109-1)の場所と第1のMACバイト(111-1)の場所は、第1の場所の前にある、請求項1乃至6のいずれか1項に記載の方法。
【請求項11】
非一時的コンピュータ可読媒体に格納された命令を実行するように構成されたプロセッサを含む携帯デバイス(10)を備えるシステムであって、
命令は、
共有秘密鍵(102)に基づいて第1のメッセージ認証コード(MAC)バイト(111-1)を生成すること、
周辺デバイスから第1のノンスバイト(109-1)を
受信すること、
第1のMACバイト(111-1)と第1のノンスバイト(109-1)とメッセージバイト(104)に基づいて認証パケット(110)を生成すること、
共有秘密鍵(102)に基づいて非白色化トーンバイト(103)を生成すること、および、
認証パケット(110)と非白色化トーンバイト(113)を含むメッセージパケット(140)を生成することを含み、
メッセージパケット(140)を生成することは、
認証パケット(110)の第1の場所を擬似ランダムに特定すること、
非白色化トーンバイト(113)を第1の場所に挿入すること、
携帯デバイス(10)のプロセッサを使用して、メッセージパケット(140)を周辺デバイスに送信すること、そして、
携帯デバイス(10)のプロセッサを使用して、周辺デバイスがメッセージパケット(140)を検証することに応じて、携帯デバイス(10)と周辺デバイスとの間に通信リンク(50)を確立することを含む、システム。
【請求項12】
周辺デバイスは、第2の非一時的なコンピュータ可読媒体に格納された第2の命令を実行するように構成されたプロセッサを含み、
第2の命令は、
周辺デバイスのプロセッサを使用して、共有秘密鍵(102)に基づく第2のMACバイト(111-2)を生成すること、および、
周辺デバイスのプロセッサを使用して、第2のノンスバイト(109-2)を生成することを含む、請求項11に記載のシステム。
【請求項13】
メッセージパケット(140)を検証することは、
周辺デバイスのプロセッサを使用して、非白色化トーンバイト(113)をメッセージパケット(140)から削除すること、および、
周辺デバイスのプロセッサを使用して、第1のMACバイト(111-1)が第2のMACバイト(111-2)と一致すると周辺デバイスのプロセッサが判定することに応じて、メッセージパケット(140)が正当なものと認められることを決定することを含む、請求項12に記載のシステム。
【請求項14】
メッセージパケット(140)を検証することは、
周辺デバイスのプロセッサを使用して、第1のノンスバイト(109-1)が第2のノンスバイト(109-2)と一致すると周辺デバイスのプロセッサが判定することに応じて、メッセージパケット(140)が正当なものと認められることを決定することを含む、請求項13に記載のシステム。
【請求項15】
命令は、周辺デバイスのプロセッサを使用して、第1のMACバイト(111-1)が第2のMACバイト(111-2)と一致しないと判定すること、および、周辺デバイスのプロセッサを使用して、第1のノンスバイト(109-1)が第2のノンスバイト(109-2と一致しないと判定することの1つに応じて、メッセージパケット(140)が無効であると決定することを含む、請求項12乃至14のいずれか1項に記載のシステム。
【請求項16】
第1のノンスバイト(109-1)は乱数生成器(108)を使用して生成される、請求項11乃至15のいずれか1項に記載のシステム。
【請求項17】
第1の場所は、第1のMACバイト(111-1)の第1のMACビットと、第1のMACバイト(111-1)の第2のMACビットとの間である、請求項11乃至16のいずれか1項に記載のシステム。
【請求項18】
第1の場所は、第1のノンスバイト(109-1)の第1のノンスビットと、第1のノンスバイト(109-1)の第2のノンスビットとの間である、請求項11乃至16のいずれか1項に記載のシステム。
【請求項19】
第1の場所は、第1のノンスバイト(109-1)と第1のMACバイト(111-1)の一方の場所の前にある、請求項11乃至16のいずれか1項に記載のシステム。
【請求項20】
第1のノンスバイト(109-1)の場所と第1のMACバイト(111-1)の場所は、第1の場所の前にある、請求項11乃至16のいずれか1項に記載のシステム。
【発明の詳細な説明】
【相互参照】
【0001】
この出願は、2018年1月5日に出願された米国仮出願第62/613934号、および、2018年12月6日に出願された米国特許出願第16/211330の利益を主張する。上記出願の全開示が、参照により本明細書に組み込まれる。
【技術分野】
【0002】
本開示は、携帯デバイスと周辺デバイスとの間に安全な通信リンクを確立するためのシステムおよび方法に関する。
【背景技術】
【0003】
この欄は、必ずしも公知技術に該当しない、本開示に関連する背景情報を提供する。
【0004】
伝統的に、キーレスエントリシステムを含む車両システムである、パッシブエントリ/パッシブスタート(PEPS)システムは、事前に車両の中央PEPS電子制御装置(ECU)とペアリングされたキーフォブの所有者が、単にドアハンドルを掴むことによって車両へアクセスすること、および、ボタンをプッシュすることで車両を始動することを可能とする。ボタンプッシュに応答して、中央PEPS ECUは、キーフォブが車両にアクセスする権限を与えられているかどうかを判定してキーフォブを認証し、複数の車両アンテナによって示される信号強度を使用して、キーフォブの位置を推定する。キーフォブが認証され、認可しているゾーン内に位置する場合、車両の機能はユーザに利用可能にされる(すなわち、ドアがアンロックされ、または、車両が始動される)。
【0005】
伝統的に、PEPSシステムは、約125kHzの低周波(LF)信号を使う独自グレードの無線プロトコルを使用する。PEPSシステムはまた、LFシステムの物理的性質によって拘束される。電波伝播が、2メートルの典型的な目標起動範囲内の信号強度を使用することによって、範囲および位置の比較的正確な推定を可能にするため、LFは、初期のPEPSシステムにおいて選択された。しかしながら、実用的な車両アンテナおよびキーフォブ受信機のサイズに比べて、LF信号の非常に長い波長のために、妥当な電力消費および安全な送信電力レベル内では、LFを使うキーフォブと、数メートルを超えて確実に通信することは困難である。したがって、キーフォブが車両から数メートル以上離れている場合、いずれの車両機能も、ユーザに利用できるようにすることは困難である。
【0006】
そのため、キーフォブは、スマートフォンやウェアラブルデバイスなどのスマートデバイスによって実現されるようになってきており、スマートデバイスはLFシステムの起動範囲よりも広い範囲内で通信することができる。このように、スマートデバイスは、パッシブウェルカムライティング、リモートパーキングアプリケーションの距離限度など、さまざまな車両機能や長距離の距離機能の利用を可能にする。
【0007】
ただし、従前のPEPSシステム、およびスマートデバイスによって実現されるキーフォブを備えるPEPSシステムは、それぞれのPEPSシステムを悪意のある攻撃にさらすかもしれない無線の脆弱性を包含している。一例として、ユーザは受動的な盗聴、中間者(MITM)攻撃、リプレイ攻撃、およびPEPSシステムのさまざまなテレメトリックリンクのID追跡によってPEPSシステムを攻撃される可能性がある。
【発明の概要】
【0008】
この欄は、開示の概要を提供するが、その全範囲またはその全特徴の包括的な開示ではない。
【0009】
本開示は、(i)非一時的なコンピュータ可読媒体に格納された命令を実行するように構成されたプロセッサを含む携帯デバイスと(ii)周辺デバイスとの間に通信リンクを確立する方法を提供する。この方法は、携帯デバイスのプロセッサが、共有秘密鍵に基づく第1のメッセージ認証コード(MAC)バイト、第1のMACバイトと周辺デバイスから受信した第1のノンスバイトとメッセージバイトに基づく認証パケット、共有秘密鍵に基づく非白色化トーンバイト、および、認証パケットと非白色化トーンバイトを含むメッセージパケットを生成する。メッセージパケットを生成することは、認証パケットの第1の場所を擬似ランダムに特定すること、非白色化トーンバイトを第1の場所に挿入すること、携帯デバイスのプロセッサが、メッセージパケットを周辺デバイスに送信すること、そして、携帯デバイスのプロセッサが、周辺デバイスがメッセージパケットを検証することに応じて、携帯デバイスと周辺デバイスとの間に通信リンクを確立することを含む。
【0010】
いくつかの構成では、方法は、周辺デバイスのプロセッサを使用して、共有秘密鍵に基づく第2のMACバイトを生成することを含み、周辺機器のプロセッサは、非一時的なコンピュータ可読媒体に格納された命令を実行するように構成される。この方法はまた、周辺デバイスのプロセッサを使用して、第2のノンスバイトを生成することを含む。
【0011】
いくつかの構成では、メッセージパケットを検証することは、周辺デバイスのプロセッサを使用して、非白色化トーンバイトをメッセージパケットから削除することを含む。メッセージパケットを検証することはまた、周辺デバイスのプロセッサを使用して、第1のMACバイトが第2のMACバイトと一致すると周辺デバイスのプロセッサが判定することに応じて、メッセージパケットが正当なものと認められることを決定することを含む。
【0012】
いくつかの構成では、メッセージパケットを検証することは、周辺デバイスのプロセッサを使用して、第1のノンスバイトが第2のノンスバイトと一致すると周辺デバイスのプロセッサが判定することに応じて、メッセージパケットが正当なものと認められることを決定することを含む。
【0013】
いくつかの構成では、方法は、(i)周辺デバイスのプロセッサを使用して、第1のMACバイトが第2のMACバイトと一致しないと判定すること、(ii)周辺デバイスのプロセッサを使用して、第1のノンスバイトが第2のノンスバイトと一致しないと判定することの1つに応じて、メッセージパケットが無効であると決定することをさらに含む。
【0014】
いくつかの構成では、第1のノンスバイトは乱数生成器を使用して生成される。
【0015】
いくつかの構成では、第1の場所は、第1のMACバイトの第1のMACビットと、第1のMACバイトの第2のMACビットとの間である。
【0016】
いくつかの構成では、第1の場所は、第1のノンスバイトの第1のノンスビットと、第1のノンスバイトの第2のノンスビットとの間である。
【0017】
いくつかの構成では、第1の場所は、第1のノンスバイトと第1のMACバイトの一方の場所の前にある。
【0018】
いくつかの構成では、第1のノンスバイトの場所と第1のMACバイトの場所は、第1の場所の前にある。
【0019】
本開示はまた、非一時的コンピュータ可読媒体に格納された命令を実行するように構成されたプロセッサを含む携帯デバイスを備えるシステムを提供する。命令は、共有秘密鍵に基づいて第1のメッセージ認証コード(MAC)バイトを生成すること、周辺デバイスから第1のノンスバイトを受信すること、第1のMACバイトと第1のノンスバイトとメッセージバイトに基づいて認証パケットを生成すること、共有秘密鍵に基づいて非白色化トーンバイトを生成すること、および、認証パケットと非白色化トーンバイトを含むメッセージパケットを生成することを含む。メッセージパケットを生成することは、認証パケットの第1の場所を擬似ランダムに特定すること、非白色化トーンバイトを第1の場所に挿入すること、携帯デバイスのプロセッサを使用して、メッセージパケットを周辺デバイスに送信すること、そして、携帯デバイスのプロセッサを使用して、周辺デバイスがメッセージパケットを検証することに応じて、携帯デバイスと周辺デバイスとの間に通信リンクを確立することを含む。
【0020】
いくつかの構成では、周辺デバイスは、第2の非一時的なコンピュータ可読媒体に格納された第2の命令を実行するように構成されたプロセッサを含む。第2の命令は、周辺デバイスのプロセッサを使用して、共有秘密鍵に基づく第2のMACバイトを生成することを含む。第2の命令はまた、周辺デバイスのプロセッサを使用して、第2のノンスバイトを生成することを含む。
【0021】
いくつかの構成では、メッセージパケットを検証することは、周辺デバイスのプロセッサを使用して、非白色化トーンバイトをメッセージパケットから削除することを含む。メッセージパケットを検証することはまた、周辺デバイスのプロセッサを使用して、第1のMACバイトが第2のMACバイトと一致すると周辺デバイスのプロセッサが判定することに応じて、メッセージパケットが正当なものと認められることを決定することを含む。
【0022】
いくつかの構成では、メッセージパケットを検証することは、周辺デバイスのプロセッサを使用して、第1のノンスバイトが第2のノンスバイトと一致すると周辺デバイスのプロセッサが判定することに応じて、メッセージパケットが正当なものと認められることを決定することを含む。
【0023】
いくつかの構成では、命令は、(i)周辺デバイスのプロセッサを使用して、第1のMACバイトが第2のMACバイトと一致しないと判定すること、(ii)周辺デバイスのプロセッサを使用して、第1のノンスバイトが第2のノンスバイトと一致しないと判定することの1つに応じて、メッセージパケットが無効であると決定することを含む。
【0024】
いくつかの構成では、第1のノンスバイトは乱数生成器を使用して生成される。
【0025】
いくつかの構成では、第1の場所は、第1のMACバイトの第1のMACビットと、第1のMACバイトの第2のMACビットとの間である。
【0026】
いくつかの構成では、第1の場所は、第1のノンスバイトの第1のノンスビットと、第1のノンスバイトの第2のノンスビットとの間である。
【0027】
いくつかの構成では、第1の場所は、第1のノンスバイトと第1のMACバイトの一方の場所の前にある。
【0028】
いくつかの構成では、第1のノンスバイトの場所と第1のMACバイトの場所は、第1の場所の前にある。
【0029】
さらなる適用可能範囲は、本明細書の説明から明らかとなろう。本概要の説明および具体例は例示の目的だけを意図しており、本開示の範囲を限定することを意図していない。
【図面の簡単な説明】
【0030】
本明細書で説明される図面は、全ての可能な実施例ではなく、選択された実施形態だけを図示する目的のためのものであり、また、本開示の範囲を限定することを意図するものでもない。
【0031】
【
図1】
図1は、本開示による車両および携帯デバイスの図である。
【
図2】
図2は、本開示による車両および携帯デバイスの機能ブロック図である。
【
図3】
図3は、本開示による車両のセンサの機能ブロック図である。
【
図4】
図4は、本開示による車両の通信ゲートウェイの機能ブロック図である。
【
図5】
図5は、本開示による、携帯デバイスと車両との間の通信リンクを攻撃する未承認デバイスを示す。
【
図6】
図6は、本開示による暗号検証モジュールおよびフォン・アズ・ア・キー(PaaK)モジュールの機能ブロック図を示す。
【
図7A】
図7Aは、本開示による例示的なメッセージパケットを示す。
【
図7B】
図7Bは、本開示による例示的なメッセージパケットを示す。
【
図7C】
図7Cは、本開示による例示的なメッセージパケットを示す。
【
図7D】
図7Dは、本開示による例示的なメッセージパケットを示す。
【
図7E】
図7Eは、本開示による例示的なメッセージパケットを示す。
【
図7F】
図7Fは、本開示による例示的なメッセージパケットを示す。
【
図7G】
図7Gは、本開示による例示的なメッセージパケットを示す。
【
図8】
図8は、本開示による例示的な制御アルゴリズムのフローチャートを示す。
【
図9】
図9は、本開示による例示的な制御アルゴリズムのフローチャートを示す。
【
図10】
図10は、本開示による例示的な制御アルゴリズムのフローチャートを示す。
【0032】
複数の図面にわたって、対応する参照番号は、対応する部分を示している。
【発明を実施するための形態】
【0033】
例示的な実施形態が、添付の図面を参照してより詳細に説明される。
【0034】
本開示は、コンシューマーグレードのワイヤレスプロトコルを使用する、PEPSシステムのような、位置特定システムを実現するためのシステム、方法、およびアーキテクチャに関する。具体的には、本開示は、車両と、スマートフォンまたはウェアラブルデバイスなどの携帯デバイスとの間の通信のため、ブルートゥースローエナジー(BLE)通信プロトコルなどの、無線通信プロトコルを使用するPEPSシステムに関する。PEPSシステムは、携帯デバイスと車両との間の現存する接続を見つけ出し、携帯デバイスと車両との間の通信のタイミングおよび信号特性を測定するように構成されたセンサネットワークを含む。中央モジュールは、タイミングと信号特性に基づいて、携帯デバイスと車両の間の距離を決定する。PEPSシステムはまた、未承認のデバイスが車両と携帯デバイスとの間の通信リンクに対してリプレイ攻撃を実行することを防止するための暗号化処理を実行するように構成される。
【0035】
図1および
図2を参照すると、PEPSシステム1は、車両30内に設けられ、通信ゲートウェイ29、複数のセンサ31A-31J(まとめてセンサ31と呼ばれる)、および制御モジュール20を含んでいる。
図1および
図2は、10個のセンサ31A-31Jを示しているが、任意の数のセンサを使用することができる。さらに、
図2は、1つの制御モジュール20を示しているが、PEPSシステム1は、車両30全体に分散された1つ以上の制御モジュール20を含んでもよい。
【0036】
1つ以上の制御モジュール20およびセンサ31は、車両インターフェース45を使用して互いに通信することができる。一例として、車両インターフェース45は、メインモジュール間の通信のためのコントローラエリアネットワーク(CAN)バスを含むことができる。別の例として、車両インターフェース45は、より低いデータレート通信のためのローカル相互接続ネットワーク(LIN)を含んでもよい。他の実施形態では、車両インターフェース45は、クロック拡張周辺インターフェース(CXPI)バスを含むことができる。追加的または代替的に、車両インターフェース45は、CANバス、LIN、およびCXPIバス通信インターフェースの任意の組み合わせを含むことができる。
【0037】
制御モジュール20は、アンテナ19に接続された無線通信チップセット21を含む通信ゲートウェイ29を含む。たとえば、無線通信チップセット21は、BLE通信プロトコルを利用するブルートゥースローエナジー(BLE)通信チップセットであってもよい。あるいは、Wi-FiまたはWi-Fiダイレクトなどの、他の無線通信プロトコルが使用されてもよい。
図2に示すように、アンテナ19は、車両30内に配置されてもよい。あるいは、アンテナ19は、車両30の外部または制御モジュール20内に配置されてもよい。制御モジュール20はまた、通信リンク50を介した通信のために携帯デバイス10を認証するリンク認証モジュール22を含んでもよい。一例として、リンク認証モジュール22は、携帯デバイス10を認証するために、チャレンジレスポンス認証または他の暗号検証アルゴリズムを実行するように構成されてもよい。
【0038】
制御モジュール20はまた、プッシュデータのためのデータ管理層23を含むことができる。一例として、データ管理層23は、任意のモジュールによって取得された車両情報(例えば、テレマティクスモジュール26によって取得された位置情報)を取得し、その車両情報を携帯デバイス10に送信するように構成される。
【0039】
制御モジュール20はまた、通信リンク50の通信チャネルおよびチャネル切り替えパラメータに対応する情報を取得し、その情報をセンサ31に送信するように構成された、接続情報配信モジュール24を含むことができる。センサ31が、車両インターフェース45を介して接続情報配信モジュール24から情報を受信し、センサ31が通信ゲートウェイ29と同期されたことに応じて、センサ31は、通信リンク50を探し出して、追跡、または傍受することができる。
【0040】
制御モジュール20はまた、リンク認証モジュール22がチャレンジ-レスポンス認証を実行するときの通信リンク50に対応するタイミング情報を取得する、タイミング制御モジュール25を含むことができる。さらに、タイミング制御モジュール25は、車両インターフェース45を介してセンサ31にタイミング情報を提供するように構成される。
【0041】
制御モジュール20はまた、車両30に関連する位置情報および/または位置情報の誤差を生成するように構成された、テレマティクスモジュール26を含むことができる。テレマティクスモジュール26は、全地球的衛星航法システム(例えば、GPS)、慣性航法システム、移動体通信用全地球的システム(GSM)、または他の位置特定システムによって実現され得る。
【0042】
制御モジュール20はまた、物理層およびプロトコルの違反を検出し、センサ処理および位置特定モジュール32に情報を提供する前にデータをフィルタリングするように構成されたセキュリティフィルタリングモジュール33を含むことができる。セキュリティフィルタリングモジュール33はまた、注入されたデータにフラグを立てるように構成されることができ、その結果、センサ処理および位置特定モジュール32は、フラグが立てられたデータを破棄し、PEPSシステム1に警告することができる。センサ処理および位置特定モジュール32からのデータは、PEPSモジュール27に提供され、PEPSモジュール27は、車両機能にアクセスするユーザの意図を検出し、携帯デバイス10の位置と、車両30のドアのロック解除および/または車両30の始動などの特定の機能を許可する場所のセットとを比較するために、センサ31から車両状態情報を読み取るように構成される。
【0043】
上述した様々なモジュールの上記の機能を実行するために、制御モジュール20は、リードオンリーメモリ(ROM)および/またはランダムアクセスメモリ(RAM)などの非一時的なコンピュータ可読媒体に格納された命令を実行するように構成される1つ以上のプロセッサも含むことができる。
【0044】
図1および
図2に示すように、携帯デバイス10は、通信リンク50を介して車両30の通信ゲートウェイ29と通信することができる。限定するものではないが、携帯デバイス10は、たとえば、車両30の所有者、運転者、乗員、および/または、車両30の整備士などの、車両30のユーザと関連付けられる、スマートフォン、スマートウォッチ、ウェアラブル電子デバイス、キーフォブ、タブレットデバイス、ブルートゥース送信機デバイス、または、他のデバイスなどの任意のブルートゥース対応通信デバイスであってもよい。追加的または代替的に、携帯デバイス10は、Wi-Fiおよび/またはWi-Fiダイレクトなどの別の無線通信プロトコルを介して無線通信するように構成されてもよい。通信リンク50は、ブルートゥース仕様に規定され、定義されているようなブルートゥース通信リンクであってもよい。一例として、通信リンク50は、BLE通信リンクであってよい。あるいは、通信リンク50は、Wi-FiまたはWi-Fiダイレクト通信リンクであってもよい。
【0045】
携帯デバイス10は、アンテナ13に接続された無線通信チップセット11を含むことができる。無線通信チップセット11は、BLE通信チップセットであってもよい。あるいは、無線通信チップセット11は、Wi-FiまたはWi-Fiダイレクト通信チップセットであってもよい。携帯デバイス10はまた、携帯デバイス10のプロセッサによって実行可能であり、リードオンリーメモリ(ROM)またはランダムアクセスメモリ(RAM)などの非一時的なコンピュータ可読媒体に格納されるアプリケーションコード12を含むことができる。携帯デバイス10は、アプリケーションコード12に基づき、無線通信チップセット11およびアンテナ13を使用して、たとえば、通信リンク50の認証、携帯デバイス10の全地球的衛星航法システム(例えば、GPS)のセンサまたは加速度計によって取得される位置および/または速度情報の送信、および、車両機能の手動起動に対応する様々な命令を実行するように構成されることができる。
【0046】
携帯デバイス10はまた、暗号検証モジュール(CVM)14を含むことができ、CVM14は、携帯デバイス10のプロセッサによって実行可能であり、リードオンリーメモリ(ROM)またはランダムアクセスメモリ(RAM)などの非一時的なコンピュータ可読媒体に記憶されるアプリケーションコードによって実現されることができる。CVM14は、
図6から
図8を参照して以下でさらに詳細に説明される。
【0047】
図3を参照すると、各々のセンサ31は、アンテナシステム43に接続された無線通信チップセット41を含む。無線通信チップセット41は、BLE通信チップセットであってもよい。あるいは、無線通信チップセット41は、WiFiまたはWiFiダイレクト通信チップセットであってもよい。
図3に示すように、アンテナシステム43は、センサ31の内部に配置されてもよい。あるいは、アンテナシステム43は、センサ31の外部に配置されてもよい。
【0048】
制御モジュール20、より具体的には通信ゲートウェイ29は、携帯デバイス10とともに、通信リンク50などの安全な通信接続を確立することができる。たとえば、制御モジュール20は、BLE通信プロトコルを使用して、安全な通信接続を確立することができる。そして、制御モジュール20は、タイミングおよび同期情報などの安全な通信接続に関する情報を各々のセンサ31に通信することができる。たとえば、制御モジュール20は、次の通信接続イベントのタイミング、通信接続イベント間のタイミング間隔、次の通信接続イベントの通信チャネル、チャネルマップ、後続の通信接続イベントのチャネルを計算するためのチャネルホップ間隔またはオフセット、通信遅延情報、通信ジッタ情報などのような、安全な通信接続に関する情報を通信することができる。そして、センサ31は、携帯デバイス10によって制御モジュール20へ送信された通信パケットを傍受し、携帯デバイス10から受信した信号の信号情報を測定することができる。たとえば、センサ31は受信信号強度を測定し、受信信号強度インジケータ(RSSI)値を決定することができる。追加的または代替的に、センサ31は、到来角、到来時間、到来時間差などのような、携帯デバイス10から受信した信号の他の測定値を決定することができる。
【0049】
次いで、センサ31は測定情報を制御モジュール20に通信することができ、制御モジュール20は、各々のセンサ31から受信した測定情報に基づいて、携帯デバイス10の位置または携帯デバイス10までの距離を決定することができる。たとえば、制御モジュール20は、たとえば、様々なセンサ31によって受信された携帯デバイス10からの様々な信号のRSSI値のパターンに基づいて、携帯デバイス10の位置を決定することができる。たとえば、相対的に強いRSSIは一般的に携帯デバイス10がより近いことを示し、相対的に弱いRSSIは一般的に携帯デバイス10が遠く離れていることを示す。各々のセンサ31を用いて、携帯デバイス10によって送信された通信信号のRSSIを分析することにより、制御モジュール20は、車両30に対する携帯デバイス10の位置または携帯デバイス10までの距離を決定することができる。追加的または代替的に、携帯デバイス10によって送信され、センサ31によって受信された信号の到来角または到来時間差の測定値も、携帯デバイス10の位置を決定するために制御モジュール20によって使用されることができる。追加的または代替的に、センサ31自体が、測定情報に基づいて携帯デバイス10の位置または携帯デバイス10までの距離を決定し、その位置または距離を制御モジュール20に通信することができる。
【0050】
次いで、車両30に対する携帯デバイス10の決定された位置または距離に基づいて、PEPSシステム1は、車両30のドアのロック解除、車両30のトランクのロック解除、車両30の始動、および/または車両30の始動許可のような、車両機能を許可または実行することができる。たとえば、携帯デバイス10が車両30まで第1の距離閾値よりも近い場合、PEPSシステム1は車両の室内灯または室外灯を作動させることができる。携帯デバイス10が車両まで第2の距離閾値よりも近い場合、PEPSシステム1は車両30のドアまたはトランクのロックを解除することができる。携帯デバイス10が車両30の内部にある場合、PEPSシステム1は車両30の始動を許可することができる
【0051】
引き続き
図3を参照すると、BLE通信プロトコルが使用される場合、センサ31は、アンテナシステム43を使用してBLE信号を受信し、具体的には、BLE物理層(PHY)コントローラ46を使用してBLE物理層メッセージを受信する。センサ31は、BLE物理層メッセージを観察し、チャネルマップ再構成モジュール42によって生成されるチャネルマップを使用して、たとえば、受信信号強度インジケータ(RSSI)を含む、関連信号の物理的特性の測定値を取得するように構成されることができる。追加的または代替的に、センサ31は、複数のセンサ31によって受信された信号の、到来時間差、到来時間、または到来角データを決定するために、相互に通信可能であり、および/または、車両インターフェース45を介して通信ゲートウェイ29と通信可能である。
【0052】
タイミング同期モジュール44は、車両インターフェース45でのメッセージの受信時間を正確に測定し、そのタイミング情報を無線通信チップセット41に渡すように構成される。無線通信チップセット41は、チャネルマップ情報およびタイミング信号に基づいて、特定の時間にPHYコントローラ46を特定のチャネルに同調させるように構成される。さらに、BLE通信プロトコルが使用される場合、無線通信チップセット41は、たとえば、ブルートゥース仕様バージョン5.0において提案または採用された標準データレートを含む、ブルートゥース物理層仕様に準拠するすべての物理層メッセージおよびデータを観察するように構成される。データ、タイムスタンプ、および、測定信号強度が、無線通信チップセット41によって、車両インターフェース45を介して制御モジュール20の様々なモジュールに報告されてもよい。
【0053】
図4を参照すると、通信ゲートウェイ29は、BLE信号を受信するためにアンテナ19に接続された無線通信チップセット41を含んでいる。BLE通信プロトコルが使用されるとき、無線通信チップセット41は、たとえば、BLE仕様(すなわち、ブルートゥース仕様バージョン5.0)に準拠するブルートゥースプロトコルスタック48を実装する。無線通信チップセット41はまた、無線通信チップセット41のプロセッサによって実行可能なアプリケーションコードによって実現されるアプリケーション47を含むことができる。追加的または代替的に、アプリケーション47は、制御モジュール20のプロセッサによって実行可能であってもよく、制御モジュール20の非一時的なコンピュータ可読媒体に格納されてもよい。
【0054】
アプリケーション47は、データの有効性に係わらず、無線通信チップセット41によって送受信されるタイムスタンプ付きデータを無線通信チップセット41が検査できるようにするために、ブルートゥース仕様外の修正に相当するコードを含んでもよい。たとえば、アプリケーション47は、無線通信チップセット41が期待値に対して送受信データを比較することを可能にする。通信ゲートウェイ29は、実際の送受信データを、車両インターフェース45を介して制御モジュール20の様々なモジュールに送信するように構成される。あるいは、通信ゲートウェイ29は、車両インターフェース45を介して各々のセンサ31からデータを受信するように構成されてもよい。アプリケーション47はさらに、無線通信チップセット41が、各々のセンサ31が正しい時間に正しいデータを受信したことを確認できるように構成されてもよい。
【0055】
ブルートゥースプロトコルスタック48は、チャネルマップ、アクセス識別子、次のチャネル、および次のチャネルまでの時間をアプリケーション47に提供するように構成される。ブルートゥースプロトコルスタック48は、アプリケーション47に対する送信および受信イベントのタイムスタンプのためのタイミング信号および/または無線通信チップセット41のデジタルPIN出力を出力するように構成される。通信ゲートウェイ29はまた、タイミング信号を受け入れるように構成され、車両インターフェース45と連携して機能して、接続情報メッセージおよび他の通信の正確なタイムスタンプを作成するように構成されたタイミング同期モジュール44を含む。
【0056】
引き続き
図4を参照すると、通信ゲートウェイ29は、タイミング情報およびチャネルマップ情報をそれぞれタイミング制御モジュール25に提供することができる。通信ゲートウェイ29は、接続情報配信モジュール24への進行中の接続に対応する情報およびタイミング信号をタイミング制御モジュール25に提供するように構成されることができ、その結果、センサ31は、通信リンク50を見つけて、追跡または傍受することができる。
【0057】
さらに、無線通信チップセット41は、フォン-アズ-ア-キー(PaaK)モジュール49を含み、PaaKモジュール49は、制御モジュール20のプロセッサによって実行可能であり、リードオンリーメモリ(ROM)またはランダムアクセスメモリ(RAM)などの非一時的なコンピュータ可読媒体に格納されるアプリケーションコードによって実現される。PaaKモジュール49は、
図6から
図8を参照して以下でさらに詳細に説明される。
【0058】
図5を参照すると、車両30、通信ゲートウェイ29、およびセンサ31を含むPEPSシステム2が提供される。上述したように、センサ31は、通信リンク50を介して携帯デバイス10によって通信ゲートウェイ29に送信される無線信号の物理的特性の測定を行うように構成されている。センサ31は、例えば、通信リンク50を介して送信される無線信号の到来角(AoA)を測定することができる。制御モジュール20がセンサ31からAoA測定値を受信することに応じて、制御モジュール20は、センサ31から受信したAoA測定値に基づいて、携帯デバイス10の位置、携帯デバイス10と車両30との間の距離、および/または携帯デバイス10の軌跡を決定することができる。
【0059】
携帯デバイス10の位置、携帯デバイス10と車両30との間の距離、および/または携帯デバイス10の軌跡に基づいて、制御モジュール20は、ミラー位置の設定、ステアリングホイール位置の調整、運転者のシート位置の調整、空調制御設定の変更、オーディオ/メディア設定の調整、車両のドアのロック解除、車両のトランクのロック解除、車両の照明システムの起動、車両の始動などのような、特定の車両機能を作動させることができる。
【0060】
一実施形態では、未承認デバイス60は、PEPSシステム1の無線脆弱性に基づいて、通信リンク50を介して車両インターフェース45の信号を操作および/または信号を車両インターフェース45に直接注入するように構成される可能性がある。一例として、未承認デバイス60は、制御モジュール20からメッセージを送信および/または受信するために、通信リンク50上で破線の矢印70、80によって示されるように、リプレイ攻撃を実行するように構成され得る。したがって、未承認デバイス60のユーザは、特定の車両機能を不正におよび/または悪意を持って作動させ、または、それへのアクセスを取得する可能性がある。
【0061】
図6を参照すると、CVM14およびPaaKモジュール49の機能ブロック図が示されている。CVM14は、メッセージ認証コード(MAC)生成器106およびトーン位置モジュール112を含むことができる。PaaKモジュール49は、ノンス生成器108、MAC生成器118、トーン除去モジュール128、MAC比較モジュール130、および検証モジュール132を含むことができる。
【0062】
通信リンク50を確立し、その後、PaaKモジュール49を介してメッセージバイト104を通信ゲートウェイ29に送信するために、CVM14は、メッセージパケット140のペイロード114のランダムなまたは疑似ランダムな位置に、トーンバイト113(例えば、非白色化トーンバイト)を挿入するように構成される。続いて、以下でさらに詳しく説明するように、たとえば、PaaKモジュール49がペイロード114からトーンバイト113を除去し、ペイロード114の他の部分の真正性および完全性を確認することができる場合、PaaKモジュール49は、通信ゲートウェイ29にメッセージバイト104を提供する。
【0063】
例示的な一実施形態では、CVM14は、メッセージバイト104、MAC生成器106によって生成された第1のMACバイト111-1、およびノンス生成器108(つまり、乱数生成器)によって生成された第1のノンスバイト109-1を含む認証パケット110を生成するように構成される。MAC生成器106は、メッセージバイト104内のデータの完全性または真正性を保護および/または保証するように構成される。いくつかの実施形態では、MAC生成器106は、たとえば、高度暗号化標準(AES)またはハッシュベースのメッセージ認証アルゴリズム(MMAC)などの対称暗号化または復号アルゴリズムを使用して、第1のMACバイト111-1を生成するように構成される。特定の例として、MAC生成器106は、共有秘密鍵102の第1の部分およびメッセージバイト104に基づいて第1のMACバイト111-1を生成してもよい。
【0064】
ノンス生成器108は、乱数または疑似乱数(たとえば32バイトの値)である、第1のノンスバイト109-1および第2のノンスバイト109-2を生成するように構成される。特に、第1のノンスバイト109-1が第1のMACバイト111-1およびメッセージバイト104と組み合わされると、通信リンク50は、リプレイ攻撃を受けることを回避することができる。
【0065】
トーン位置モジュール112は、ペイロード114を生成するために、共有秘密鍵102の第2の部分、認証パケット110、および/または通信チャネルに基づいて、トーンバイト113(例えば、非白色化トーンバイト)を生成して、擬似ランダムに認証パケット110へ挿入するように構成される。トーン位置モジュール112は、
図7A~7Gを参照して以下でさらに詳細に説明するように、たとえば、第1のノンスバイト109-1、第1のMACバイト111-1、またはメッセージバイトの1つの後を含む、認証パケット110内の任意の場所にトーンバイト113を挿入することができる。あるいは、トーン位置モジュール112は、
図7A~7Gを参照して以下でさらに詳細に説明するように、第1のノンスバイト109-1の第1の部分(すなわち、第1のノンスビット)と第2の部分(すなわち、第2のノンスビット)との間、第1のMACバイト111-1の第1の部分(すなわち、第1のMACビット)と第2の部分(すなわち、第2のMACビット)との間、または、メッセージバイト104の第1の部分と第2の部分との間にトーンバイト113を挿入してもよい。
図6に示すように、トーン位置モジュール112は、第1のMACバイト111-1の第1の部分と第2の部分との間にトーンバイト113を擬似ランダムに挿入し、そこでは、第1のMACバイト111-1の第1の部分は、MAC_1バイト(バイツ)として表され、MACバイト111-1の第2の部分は、MAC_2バイト(バイツ)として表されている。あるいは、トーン位置モジュール112は、サービスおよび/またはBLE通信プロトコルの特徴的属性に基づいて選択される固定されたまたはランダムな場所にトーンバイト113を挿入することができる。
【0066】
いくつかの実施形態では、トーンバイト113は、任意の8ビットの値であってもよい。他の実施形態では、トーンバイト113は、特定の8ビット値に限定されてもよい。一例として、トーンバイト113は、例えば、ペイロード114へのDCバイアスの導入を回避するために、トーンバイト113内に同じ値の連続するビットがいくつ存在するかに関する制限を有することができる(たとえば、トーンバイト113は、5つよりも多い1および/または0の連続した値を有することができない)。
【0067】
その後、CVM14は、ペイロード114、プリアンブルバイト(図示せず)、アクセスアドレスバイト(図示せず)、ヘッダバイト(図示せず)、および巡回冗長検査バイト(図示せず)を含むメッセージパケット140を、PaaKモジュール49のトーン除去モジュール128へ送信することができる。トーン除去モジュール128は、メッセージパケット140からトーンバイト113を除去するように構成される(すなわち、トーンバイト113を除去するためにペイロード114に対して白色化アルゴリズムを実行する)。
【0068】
MAC比較モジュール130は、トーンバイト113の除去に応じて、MAC生成器106によって生成された第1のMACバイト111-1が、PaaKモジュール49のMAC生成器118によって生成された第2のMACバイト111-2と一致するかどうかを判定するように構成される。さらに、検証モジュール132は、第1のノンスバイト109-1がノンス生成器108によって生成された第2のノンスバイト109-2と一致するかどうかを判定することができる。検証モジュール132が、第1のノンスバイト109-1と第2のノンスバイト109-2とが一致すると判定し、MAC比較モジュール130から、第1のMACバイト111-1と第2のMACバイト111-2が一致するとの指標を受信した場合、通信リンク50が承認される。
【0069】
さらに、検証モジュール132が、第1のノンスバイト109-1と第2のノンスバイト109-2が一致すると判定し、MAC比較モジュール130が、第1のMACバイト111-1と第2のMACバイト111-2が一致すると判定した場合、検証モジュール132は、トーンバイト113を除くメッセージパケット140のコンテンツのすべてを含む、再構成されたメッセージパケット141を生成するように構成されてもよい。そして、検証モジュール132は、その後、再構成されたメッセージパケット141を通信ゲートウェイ29に提供することができる。他の実施形態では、検証モジュール132が第1のノンスバイト109-1と第2のノンスバイト109-2が一致すると判定し、MAC比較モジュールが、第1のMACバイト111-1と第2のMACバイト111-2が一致すると判定した場合、検証モジュール132は、単にメッセージバイト104を通信ゲートウェイ29に送信してもよい。
【0070】
図7A~7Gを参照すると、メッセージパケット140の例示的な図が示されている。メッセージパケット140は、アドバタイジングBLEパケットまたはデータBLEパケットのいずれかであってもよく、メッセージパケット140が送信または受信される通信チャネルは、メッセージパケットのタイプに基づいて変化してもよい(たとえば、アドバタイジングBLEパケットは、BLE通信プロトコルのチャネル37-39でのみ送信される)。
【0071】
いくつかの実施形態では、メッセージパケット140は、プリアンブル部142(8ビット)、アクセスアドレス部144(32ビット)、プロトコルデータユニット部146(536ビット)、および巡回冗長検査部148(24ビット)を含むことができる。メッセージパケット140がアドバタイジングBLEパケットである場合、アクセスアドレス部144は、BLE対応デバイスの発見を可能にするために、すべてのBLE対応デバイス間で不変(すなわち、共通アクセスアドレス)であるビット値を有することができる。プロトコルデータユニット部146は、論理リンク識別子(LLID)ビット、次の予期されるシーケンス番号(NESN)ビット、シーケンス番号(SN)ビット、さらなるデータ(MD)ビット、長さビット、および、将来の使用のために確保されているビット(RFU)を含む、ヘッダ部150(16ビット)を含むことができる。LLIDビットは、メッセージパケット140がデータを含むか、または制御メッセージを含むかを示すことができる。NENSビットとSNビットは、通知とフロー制御のためのシーケンス番号を表すことができる。MDビットは、携帯デバイス10と通信ゲートウェイ29が通信リンク50を介して通信している間に、携帯デバイス10が追加のメッセージパケット140を送信することを意図しているかどうかを示すことができる。長さビットは、ペイロード114の長さを表すことができる。
【0072】
上述のように、トーン位置モジュール112は、ペイロード114を生成するために、共有秘密鍵102の第2の部分と認証パケット110に基づいて、トーンバイト113(例えば、非白色化トーンバイト)を生成し、疑似ランダムに認証パケット110に挿入するように構成される。一例として、
図6および
図7Aに示すように、トーン位置モジュール112は、ペイロード114-1を生成するために、第1のMACバイト111-1の第1の部分と第2の部分との間にトーンバイト113を挿入することができ、ここで、MACバイト111-1の第1の部分は、MAC_1 Byte(s)として表され、MACバイト111-1の第2の部分はMAC_2 Byte(s)として表されている。
【0073】
別の例として、
図7Bに示すように、トーン位置モジュール112は、ペイロード114-2を生成するために、第1のMACバイト111-1とメッセージバイト104との間にトーンバイト113を挿入することができる。
図7Cに示すように、トーン位置モジュール112は、ペイロード114-3を生成するために、第1のノンスバイト109-1と第1のMACバイト111-1との間にトーンバイト113を挿入することができる。
【0074】
別の例として、
図7Dに示すように、トーン位置モジュール112は、ペイロード114-4を生成するために、第1のノンスバイト109-1の前にトーンバイト113を挿入することができる。
図7Eに示すように、トーン位置モジュール112は、ペイロード114-5を生成するために、第1のノンスバイト109-1の第1の部分と第2の部分との間にトーンバイト113を挿入することができ、ここで、第1のノンスバイト109-1の第1の部分は、Nonce_1 Byte(s)として表され、第1のノンスバイト109-1の第2の部分は、Nonce_2 Byte(s)として表されている。
【0075】
別の例として、
図7Fに示すように、トーン位置モジュール112は、ペイロード114-6を生成するために、メッセージバイト104の第1の部分と第2の部分との間にトーンバイト113を挿入することができ、ここで、メッセージバイト104の第1の部分は、Message_1Bitsとして表され、メッセージバイト104の第2の部分は、Message_2Bitsとして表される。
図7Gに示すように、トーン位置モジュール112は、ペイロード114-7を生成するために、メッセージバイト104の後にトーンバイト113を挿入することができる。
【0076】
図8を参照すると、携帯デバイス10と通信ゲートウェイ29との間の通信リンク50を確立するための制御アルゴリズム800を示すフローチャートが示されている。制御アルゴリズム800は、例えば、携帯デバイス10がオンされ、通信ゲートウェイ29との通信範囲内にあるとき、804で始まる。806で、制御アルゴリズム800は、共有秘密鍵102を生成する。808で、制御アルゴリズム800は、MAC生成器106、118を使用して、共有秘密鍵102に基づいて第1のMACバイト111-1、第2のMACバイト111-2を生成する。812で、制御アルゴリズム800は、ノンス生成器108を使用して、第1のノンスバイト109-1および第2のノンスバイト109-2を生成する。816では、制御アルゴリズム800は、CVM14を使用して、第1のノンスバイト109-1、第1のMACバイト111-1、およびメッセージバイト104を使用し、認証パケット110を生成する。
【0077】
820で、制御アルゴリズム800は、トーン位置モジュール112を使用して、共有秘密鍵102に基づいてトーンバイト113を生成する。824で、制御アルゴリズム800は、トーン位置モジュール112を使用して、トーンバイト113を挿入するための、認証パケット110の位置(すなわち、第1の位置)を擬似ランダムに決定する。828で、制御アルゴリズム800は、CVM14を使用し、決定された位置に基づいて、メッセージパケット140のペイロード114を生成する。832で、制御アルゴリズム800は、メッセージパケット140をPaaKモジュール49に送信する。836で、制御アルゴリズム800は、PaaKモジュール49を使用して、メッセージパケット140からトーンバイト113を除去し、メッセージパケット140を分解する(すなわち、PaaKモジュール49は、第1のMACバイト111-1をMAC比較モジュール130に提供し、第1のノンスバイト109-1を検証モジュール132に提供する)。
【0078】
840で、制御アルゴリズム800は、MAC比較モジュール130を使用して、MAC生成器106によって生成された第1のMACバイト111-1が、MAC生成器118によって生成された第2のMACバイト111-2と一致するかどうかを判定する。一致する場合、制御アルゴリズム800は844に進む。そうでない場合、制御アルゴリズム800は856に進む。844で、制御アルゴリズム800は、検証モジュール132を使用して、たとえば、PEPSシステム1がリプレイ攻撃の対象となっていないことを確認するために、第1のノンスバイト109-1が第2のノンスバイト109-2に一致するかどうかを判定する。一致する場合、制御アルゴリズム800は848に進む。そうでない場合、制御アルゴリズム800は856に進む。848で、制御アルゴリズム800は、検証モジュール132を使用して、メッセージパケット140が承認されたことを決定し、その後、852に進む。852で、制御アルゴリズム800は、検証モジュール132を使用して、トーンバイト113の無いメッセージパケット140を再構成する(すなわち、再構成メッセージパケット141を生成する)。854で、制御アルゴリズム800は、PaaKモジュール49を使用して、再構成メッセージパケット141を通信ゲートウェイ29に提供し、通信リンク50を確立し、その後、864に進む。
【0079】
856で、制御アルゴリズム800は、検証モジュール132を使用して、メッセージパケット140が承認されないことを決定し、次に860で、携帯デバイス10と通信ゲートウェイ29との間の通信を無効にする。864で、制御アルゴリズム800は終了する。
【0080】
図9を参照すると、携帯デバイス10と車両30との間の制御ループを示す例示的な制御アルゴリズム900のフローチャートが示されている。制御アルゴリズム900は、たとえばで、携帯デバイス10がオンされ、通信ゲートウェイ29の通信範囲内にあるとき904で始まる。908で、制御アルゴリズム900は、CVM14を使用して、PaaKモジュール49から第1のパケットペアの第1のメッセージパケットを受信する。912で、制御アルゴリズム900は、CVM14を使用して、第1のパケットペアの第2のメッセージパケットを、第1の通信チャネル(例えば、BLEチャネル1-39のうちの1つ)を介してPaaKモジュール49に送信する。メッセージパケットをPaaKモジュール49に送信することは、
図10を参照して以下でさらに詳細に説明される。
【0081】
916で、制御アルゴリズム900は、CVM14を使用して、第2のパケットペアの第1のメッセージパケットを受信し、第2のペアの第1のパケットは、空のプロトコルデータユニット(PDU)部146を含む。920で、制御アルゴリズム900は、CVM14を使用して、第1のパケットペアの第1のメッセージパケットがメッセージ送信失敗を示すかどうかを判定する。一例として、第1のパケットペアの第1のメッセージパケットが、それが少なくとも1つのチャネルによって遅れていることを示す場合、CVM14は、それがメッセージ送信失敗を示すと決定することができる。CVM14がメッセージ送信失敗を示す場合、制御アルゴリズム900は924に進み、CVM14を使用して、第2のパケットペアの第2のメッセージパケットを第2の通信チャネルを介してPaaKモジュール49に送信し、次いで、932に進む。そうでない場合、制御アルゴリズム900は928に進み、CVM14を使用して、第2のパケットペアの第2のメッセージパケットを第1の通信チャネルを介してPaaKモジュール49に送信し、次いで、932に進む。
【0082】
932で、制御アルゴリズム900は、無線通信チップセット11を使用して、送信用の追加のメッセージパケットが、現在の接続間隔内で必要かどうかを判定する。必要である場合、制御アルゴリズム900は936に進む。そうでない場合、制御アルゴリズム900は944に進む。936で、制御アルゴリズム900は、CVM14を使用して、追加のパケットペアの第1のメッセージパケットを受信し、追加のパケットペアの第1のパケットは、空のPDU部146を含む。940で、制御アルゴリズム900は、CVM14を使用して、追加のパケットペアの第2のメッセージパケットを次の通信チャネルを介してPaaKモジュール49に送信し、次いで、932に進む。944で、制御アルゴリズム900は、CVM14をPaaKモジュール49から切断する。948で、制御アルゴリズム900は、接続間隔の間の期間が経過したかどうか(例えば、50ms)を判定する。経過した場合、制御アルゴリズム900は908に進む。そうでなければ、制御アルゴリズム900は、期間が経過するまで948に留まる。
【0083】
図10を参照すると、PaaKモジュール49へのメッセージパケットの送信を示す制御アルゴリズム1000のフローチャートが示されている。制御アルゴリズム1000は、たとえば、制御アルゴリズム900がステップ912、928、936、または940のうちの1つを実行するとき、1004で始まる。1008で、制御アルゴリズム1000は、CVM14を使用して、接続間隔の現在の通信チャネル(例えば、BLEプロトコルのチャネル16)を決定する。1012で、制御アルゴリズム1000は、無線通信チップセット11を使用して、接続間隔の現在の通信チャネルに基づいて一連のビットを生成する。1016で、制御アルゴリズム1000は、無線通信チップセット11を使用し、一連のビットに基づいて、白色化アルゴリズムを使用してトーンバイト113を生成する。
【0084】
一例として、無線通信チップセット11は、x’+x4+iの多項式を有する7ビット線形フィードバックシフトレジスタ(LFSR)回路を含むことができる。次に、LFSR回路は、トーンバイト113を生成するために、一連のビットおよびメッセージパケット140にXOR関数を適用することができる。このようにして、トーンバイト113を決定するために使用される関数と、メッセージパケット140を白色化するために使用される一続きのビットを出力するためにLFSR回路によって使用される関数の両方は、現在の通信チャネルに基づく。出力された一連のビットがメッセージパケット140とXORされたときに、結果として生じる白色化されたメッセージパケットが一連のゼロまたは1を含むように、関数は調整される。1020で、制御アルゴリズム1000は、無線通信チップセット11を使用して、白色化されたメッセージパケットをPaaKモジュール49に送信し、その後、1024で終了する。
【0085】
前述の説明は、本質的に単なる例示にすぎず、本開示、その適用、または使用を限定することを決して意図するものではない。本開示の広範な教示は様々な形態で実施することができる。したがって、本開示は特定の例を含むが、図面、明細書、および添付の特許請求の範囲を検討すれば他の変更態様が明らかになるので、本開示の真の範囲はそのように限定されるべきではない。本開示の原理を変更することなく、方法内の1つまたは複数のステップが異なる順序で(または同時に)実行されてもよいことを理解されたい。さらに、各実施形態は特定の特徴を有するものとして上記に説明されているが、本開示の任意の実施形態に関して説明されたこれらの特徴のうちのいずれか1つまたは複数は、任意の他の実施形態で実施されること、および/または、組み合わせが明示的に説明されていなくとも、任意の他の実施形態の特徴と組み合わせることが可能である。言い換えれば、説明された実施形態は相互に排他的ではなく、1つまたは複数の実施形態の相互の入れ替えは、本開示の範囲内に留まる。
【0086】
要素間(例えば、モジュール間、回路要素間、半導体層間など)の空間的および機能的関係は、「接続され」、「係合され」、「結合され」、「隣接して」、「の隣に」、「の上に」、「上」、「下」、および「配置され」を含む、様々な用語を用いて説明される。第1および第2要素間の関係が、上記開示において説明されているとき、「直接」であると明示的に記載されていない限り、その関係は第1および第2要素間に他の介在要素が存在しない直接的な関係であり得るが、第1および第2要素間に1つまたは複数の介在要素が(空間的または機能的に)存在する間接的な関係でもあり得る。本明細書で使用されるように、A、B、およびCのうちの少なくとも1つとのフレーズは、非排他的論理和を使用する論理(AまたはBまたはC)を意味すると解釈されるべきであり、「Aの少なくとも1つ、Bの少なくとも1つ、およびCの少なくとも1つ」を意味すると解釈されるべきではない。
【0087】
図面において、矢じりで示される矢印の方向は、概して、図にとって重要な情報(データまたは命令など)の流れを示す。たとえば、要素Aと要素Bが様々な情報を交換するが、要素Aから要素Bに送信される情報が図に関連する場合、矢印は要素Aから要素Bを指すことがある。この一方向の矢印は、他の情報が要素Bから要素Aに送信されないことを意味しない。さらに、要素Aから要素Bに送信された情報について、要素Bは、要素Aに、情報の要求または情報の受信確認を送信するかもしれない。
【0088】
以下の定義を含む本出願では、用語「モジュール」または用語「コントローラ」は、用語「回路」と置き換えられてもよい。「モジュール」という用語は、特定用途向け集積回路(ASIC)、デジタル,アナログ,またはアナログ/デジタル混合ディスクリート回路、デジタル,アナログ,またはアナログ/デジタル混合集積回路、組み合わせ論理回路、フィールドプログラマブルゲートアレイ(FPGA)、コードを実行するプロセッサ回路(共有、専用、またはグループ)、プロセッサ回路によって実行されるコードを記憶するメモリ回路(共有、専用、またはグループ)、説明された機能を提供する他の適切なハードウェアコンポーネント、あるいは、システムオンチップなどにおける上記のいくつかまたはすべての組み合わせ、を指すか、一部であるか、または含むことができる。
【0089】
モジュールは、1つ以上のインターフェース回路を有することができる。いくつかの例では、インターフェース回路は、ローカルエリアネットワーク(LAN)、インターネット、ワイドエリアネットワーク(WAN)、またはそれらの組み合わせに接続される有線または無線インターフェースを含むことができる。本開示の任意の所与のモジュールの機能は、インターフェース回路を介して接続される複数のモジュール間で分散されてもよい。たとえば、複数のモジュールが負荷分散を可能にし得る。さらなる例では、サーバ(リモート、またはクラウドとしても知られる)モジュールは、クライアントモジュールに代わっていくつかの機能を達成してもよい。
【0090】
上記で使用される、コードという用語は、ソフトウェア、ファームウェア、および/またはマイクロコードを含むことができ、プログラム、ルーチン、機能、クラス、データ構造、および/またはオブジェクトを指すことがある。共有プロセッサ回路との用語は、複数のモジュールからのコードの一部または全部を実行する単一のプロセッサ回路を包含する。グループプロセッサ回路との用語は、追加のプロセッサ回路と組み合わせて、1つまたは複数のモジュールからのコードの一部または全部を実行するプロセッサ回路を包含する。複数のプロセッサ回路への言及は、個別のダイ上の複数のプロセッサ回路、単一のダイ上の複数のプロセッサ回路、単一のプロセッサ回路の複数のコア、単一のプロセッサ回路の複数のスレッド、またはこれらの組み合わせを包含する。共有メモリ回路との用語は、複数のモジュールからのコードの一部または全部を格納する単一のメモリ回路を包含する。グループメモリ回路との用語は、追加のメモリと組み合わせて、1つまたは複数のモジュールからのコードの一部または全部を格納するメモリ回路を包含する。
【0091】
メモリ回路との用語は、コンピュータ可読媒体との用語のサブセットである。本明細書で使用されるコンピュータ可読媒体との用語は、(搬送波上などの)媒体を通って伝播する一時的な電気信号または電磁信号を含まない。したがって、コンピュータ可読媒体との用語は、有形の非一時的なものと見なすことができる。非一時的で有形のコンピュータ可読媒体の非限定的な例は、(フラッシュメモリ回路、消去可能プログラマブル読み出し専用メモリ回路、またはマスク読み出し専用メモリ回路などの)不揮発性メモリ回路、(SRAM回路やDRAM回路などの)揮発性メモリ回路、(アナログまたはデジタル磁気テープまたはハードディスクドライブなどの)磁気記憶媒体、および(CD、DVD、またはブルーレイディスクなどの)光記憶媒体である。
【0092】
本出願に記載されている装置および方法は、コンピュータプログラムで具現化された1つまたは複数の特定の機能を実行するように汎用コンピュータを構成することによって作成された専用コンピュータによって部分的または完全に実施され得る。上記の機能ブロックおよびフローチャート要素は、ソフトウェアの仕様として役立ち、熟練した技術者またはプログラマーの日常業務によってコンピュータプログラムに変換することができる。
【0093】
コンピュータプログラムは、少なくとも1つの非一時的な有形のコンピュータ可読媒体に格納されるプロセッサ実行可能命令を含む。コンピュータプログラムはまた、格納されたデータを含むかまたはそれに依存することができる。コンピュータプログラムは、専用コンピュータのハードウェアと相互作用する基本入出力システム(BIOS)、専用コンピュータの特定のデバイスと相互作用するデバイスドライバ、1つ以上のオペレーティングシステム、ユーザアプリケーション、バックグラウンドサービス、バックグラウンドアプリケーションなどを含んでも良い。
【0094】
コンピュータプログラムは、(i)HTML(ハイパーテキストマークアップ言語)またはXML(拡張マークアップ言語)のような解析される記述テキスト、(ii)アセンブリコード、(iii)コンパイラによってソースコードから生成されるオブジェクトコード、(iv)インタプリタによる実行のためのソースコード、(v)ジャストインタイムコンパイラによるコンパイルおよび実行のためのソースコードなどを含むことができる。単なる例として、ソースコードは、C、C++、C#、Objective-C、Swift、Haskell、Go、SQL、R、Lisp、Java(登録商標)、Fortran、Perl、Pascal、Curl、OCaml、Javascript(登録商標)、HTML5(ハイパーテキストマークアップ言語第5改訂版)、Ada、ASP(Active Server Pages)、PHP(ハイパーテキストプリプロセッサ)、Scala、Eiffel、Smalltalk、Erlang、Ruby、Flash(登録商標)、VisualBasic(登録商標)、Lua、MATLAB、SIMULINK、およびPython(登録商標)を含む言語の構文法を使って書くことができる。
【0095】
請求項に記載された要素はいずれも、要素が、「~するための手段」とのフレーズを使用して、または方法クレームの場合、「~するための操作」または「~するためのステップ」とのフレーズを使用して明示的に記載されていない限り、ミーンズプラスファンクション要素であることを意図していない。
【0096】
上述した実施形態の説明は、例示および説明の目的のために提供されている。それは、網羅的であることも、開示を限定することも意図するものではない。特定の実施形態の個々の要素や特徴は、一般に、その特定の実施形態に限定されることなく、具体的に図示または説明されなくとも、適用可能である場合、交換可能であり、選択された実施形態で使用することが可能である。同上のものはまた、多くのやり方で変更されてもよい。そのような変更は、本開示からの逸脱として見なすべきではなく、全てのそのような修正は、本開示の範囲内に含まれることが意図される。