IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ナグラヴィジョン エス.アー.の特許一覧

<>
  • 特開-メッセージの送受信 図1
  • 特開-メッセージの送受信 図2
  • 特開-メッセージの送受信 図3
  • 特開-メッセージの送受信 図4
  • 特開-メッセージの送受信 図5
  • 特開-メッセージの送受信 図6
  • 特開-メッセージの送受信 図7
  • 特開-メッセージの送受信 図8
  • 特開-メッセージの送受信 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024105607
(43)【公開日】2024-08-06
(54)【発明の名称】メッセージの送受信
(51)【国際特許分類】
   H04L 9/16 20060101AFI20240730BHJP
   H04L 9/32 20060101ALI20240730BHJP
   G06F 21/64 20130101ALI20240730BHJP
【FI】
H04L9/16
H04L9/32 200A
G06F21/64
H04L9/32 200E
【審査請求】有
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2024080191
(22)【出願日】2024-05-16
(62)【分割の表示】P 2021511633の分割
【原出願日】2019-08-14
(31)【優先権主張番号】18190859.1
(32)【優先日】2018-08-24
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】521080358
【氏名又は名称】ナグラヴィジョン エスアーエールエル
【住所又は居所原語表記】Route de Geneve 22-24, 1033 Cheseaux-sur-Lausanne (CH)
(74)【代理人】
【識別番号】110001461
【氏名又は名称】弁理士法人きさ特許商標事務所
(72)【発明者】
【氏名】ワイサー,ブレヒト
(57)【要約】      (修正有)
【課題】安全な信頼制御を可能にする制御ネットワークにおける安全かつ効率的なメッセージの交換を行うための方法及びシステムを提供する。
【解決手段】メッセージ認証を伴うメッセージ送信装置とメッセージ受信装置との間の情報交換において、通信装置100は、メッセージ認証コード(MAC)などのメッセージタグを事前計算し、その後、タグを検証する際か又は実際に送信時にMACの計算を、テーブル索引に置き換えることで、メッセージ認証に必要な時間を低減する。当該アプローチは、メッセージの集合を必要とするが、例えば、2~3個程度のメッセージ、又は5個以下若しくは10個以下のメッセージなど、小さなメッセージの集合に特に有効に作用する。当該アプローチは、例えば、自律走行車などの車両の制御、又はスマート電力網の制御といった、制御上の決定を迅速かつ安全に行う必要がある制御ネットワークに特に用途が見出される。
【選択図】図1
【特許請求の範囲】
【請求項1】
複数のメッセージと、複数のメッセージタグとを格納するメモリと、
メッセージ送信装置から、対応するメッセージを伴わずメッセージタグを受信する通信インタフェースと、
前記複数のメッセージの各々のメッセージを認証鍵と組み合わせて、前記複数のメッセージの各々のメッセージに対して、各々の計算上のメッセージタグを生成し、
各々の前記計算上のメッセージタグを前記メモリに格納し、
受信した前記メッセージタグを、格納された前記計算上のメッセージタグと比較して、一致するメッセージタグを識別することにより、受信した前記メッセージタグを検証し、
トリガーイベントに応答して、前記認証鍵を更新し、
前記複数のメッセージの各々のメッセージを更新された前記認証鍵と組み合わせて、前記計算上のメッセージタグを更新し、
更新された前記計算上のメッセージタグを前記メモリに格納する
プロセッサと
を備え、
前記トリガーイベントは、前記認証鍵の最後の更新からの一定時間の経過、タイムスタンプ、前記メッセージの受信の少なくとも1つを含んでいる装置。
【請求項2】
前記プロセッサは、各々の計算上のメッセージタグと対応するメッセージとを関連づけて一組として前記メモリに格納し、前記一致するメッセージタグの識別に応答して、前記対応するメッセージを識別することにより、前記送信装置によって通信された、通信を目的とする前記メッセージを、当該メッセージを受信することなく識別する
請求項1に記載の装置。
【請求項3】
前記トリガーイベントは、前記メッセージタグの検証を含む
請求項1又は2に記載の装置。
【請求項4】
前記通信インタフェースは、前記メッセージ送信装置にメッセージを送信するものであり、
前記プロセッサは、前記メッセージタグの検証に応答して、前記通信インタフェースに、前記メッセージ送信装置への応答メッセージを送信させる
請求項1~4のいずれか一項に記載の装置。
【請求項5】
前記応答メッセージは、前記メッセージ送信装置による前記応答メッセージの認証を可能にする情報を含む
請求項4に記載の装置。
【請求項6】
各々のメッセージは、前記メッセージ受信装置と関連づけられたアクチュエータ装置のための対応する制御命令を含み、
前記プロセッサは、前記制御命令を前記アクチュエータ装置によって実行させるか、
あるいは、
各々のメッセージが、前記メッセージ送信装置に関連づけられたセンサのセンサ信号を含み、
前記プロセッサは、前記センサ信号を処理して、前記アクチュエータ装置のための制御命令を決定し、前記制御命令を前記アクチュエータ装置によって実行させる
請求項1~6のいずれか一項に記載の装置。
【請求項7】
前記プロセッサは、前記アクチュエータ装置に前記制御命令を実行させるのに続いて、前記組み合わせ、前記更新、及び前記送信を実行する
請求項4を引用する請求項6又は請求項5を引用する請求項6に記載の装置。
【請求項8】
複数のメッセージタグの組を格納するメモリであって、前記複数のメッセージタグの組は、複数のメッセージの各々のメッセージと複数のメッセージタグの各々のメッセージタグとを含んでいるメモリと、
メッセージタグを送信する通信インタフェースと、
前記複数のメッセージの各々のメッセージを認証鍵と組み合わせて、前記複数のメッセージの各々のメッセージに対して、それぞれの計算上のメッセージタグを生成し、
各々の計算上のメッセージタグと対応するメッセージとを関連づけて、それぞれのメッセージタグの組として前記メモリに格納し、
メッセージを選択して、メッセージ受信装置に通信し、
前記メッセージに対応する前記メッセージタグを前記メモリから検索し、
選択された前記メッセージに対応する検索された前記メッセージタグを、前記選択されたメッセージなしで前記通信インタフェースに送信させ、
トリガーイベントに応答して、前記認証鍵を更新し、
各々のメッセージを更新された前記認証鍵と組み合わせて、前記計算上のメッセージタグを更新し、
各々の更新された前記計算上のメッセージタグを、それぞれのメッセージに関連づけて前記メモリに格納する
プロセッサと
を備え、
前記トリガーイベントは、前記認証鍵の最後の更新からの一定時間の経過、タイムスタンプ、前記メッセージの送信の少なくとも1つを含んでいる装置。
【請求項9】
前記プロセッサは、前記通信インタフェースに、前記選択されたメッセージを送信することなく前記選択されたメッセージに対応するメッセージタグを送信させる
請求項8に記載の装置。
【請求項10】
前記通信インタフェースは、前記メッセージ受信装置からの応答メッセージを受信するものであり、
前記トリガーイベントは、前記メッセージ受信装置による前記メッセージタグの受信を確認するメッセージの前記通信インタフェースによる受信を含む
請求項8又は9に記載の装置。
【請求項11】
メッセージを受信する方法であって、
複数のメッセージの各々を認証鍵と組み合わせて、前記複数のメッセージの各々に対して、計算上のメッセージタグを生成する工程と、
前記複数のメッセージと、複数の前記計算上のメッセージタグとを格納する工程と、
メッセージ送信装置から、対応するメッセージを伴わずメッセージタグを受信する工程と、
受信した前記メッセージタグを、格納された前記計算上のメッセージタグと比較して、一致するメッセージタグを識別することにより、前記メッセージタグを検証する工程と、
トリガーイベントに応答して、前記認証鍵を更新する工程と、
各々のメッセージを更新された前記認証鍵と組み合わせて、各々の前記計算上のメッセージタグを更新する工程と、
更新された前記計算上のメッセージタグをメモリに格納する工程と
を含み、
前記トリガーイベントは、前記認証鍵の最後の更新からの一定時間の経過、タイムスタンプ、前記メッセージの受信の少なくとも1つを含んでいる
方法。
【請求項12】
各々の計算上のメッセージタグと対応するメッセージとを関連づけて一組として前記メモリに格納し、前記一致するメッセージタグの識別に応答して、前記対応するメッセージを識別することにより、前記送信装置によって通信された、通信を目的とするメッセージを、前記メッセージを受信することなく識別する工程
を含む請求項11に記載の方法。
【請求項13】
前記トリガーイベントは、前記メッセージタグの検証を含む
請求項11又は12に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、メッセージの受信及び送信に関し、特に、限定しないが、安全な信頼制御を可能にする制御ネットワークにおける安全かつ効率的なメッセージの交換に関する。
【背景技術】
【0002】
通信ネットワークに実装される多数のディジタル動作において、迅速な意思決定は最も重要である。例えば、自律運転においては、道路上の障害物の検知、又はブレーキペダルの踏み込みへの対応などのイベントに基づく、即時動作が必要となる。スマートグリッドの用途においては、変電所が自動化されており、停電を回避するイベントを行う必要がある。決定は可能な限り迅速に行い、安全な運転を確保する必要がある。正確な意思決定を保証するためには、意思決定の情報源が認証される必要がある。そうでない場合、相手方は、偽のデータを送り、不適切な意思決定をさせ、危険な動作をさせることができる。これは、インターネットなどであろうと、侵入されうる閉じた専用ネットワークなどであろうと、通信ネットワークへの外部からのアクセスが可能な場合の例である。しかしながら、データの認証や真偽の検証は、別の計算が必要となるため、更に時間がかかる。したがって、通信のセキュリティに対する要求は、一部の状況下においては、情報及び/又は情報に応答して行われる動作の瞬時性に対する要求と競合する可能性がある。
【0003】
メッセージ認証は、非対称暗号化を用いたディジタル署名、又はメッサージタグを計算するのに用いられる、メッセージ認証コード(MAC:Message Authentication Code)として既知の共通共有の対称鍵に基づくことができる。後者の場合、MACはメッセージと一緒に交換され、メッセージの受信側は、共有鍵と、MACの計算に用いられる、ブロック暗号に基づくメッセージ認証コード(CMAC:Cipher-based MAC)、ハッシュ関数に基づくメッセージ認証コード(HMAC:Hash-based MAC)、SipHashなどの共有アルゴリズムを用いて、MACを計算できる。受信したMACと計算上のMACとを比較することによって、受信したMAC及び計算上のMACが一致した場合に、メッセージは信頼性があると検証できる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
概要において、本開示は、MACなどのメッセージタグを事前計算し、その後、タグを検証する際(又は認証及び送信時)にMACの計算を、MACの計算よりも計算量がはるかに少ないテーブル索引により置き換えることで、メッセージの認証及び検証に必要な時間を低減している。当該アプローチは、既知のメッセージの集合を必要とし、例えば2~3個程度のメッセージ、又は5個以下若しくは10個以下のメッセージなど、小さなメッセージの集合に特に有効に作用する。
【課題を解決するための手段】
【0005】
第1態様においては、メッセージ受信装置は、複数のメッセージと複数のメッセージタグとを格納するメモリと、メッセージ送信装置から、対応するメッセージを伴わずメッセージタグを受信する通信インタフェースと、プロセッサとを備える。プロセッサは、各々のメッセージを認証鍵と組み合わせて、複数のメッセージの各々のメッセージに対して、各々の計算上のメッセージタグを生成するものである。メッセージタグの生成は、認証鍵でのメッセージの暗号化、認証鍵でのメッセージのハッシュ化、又は、シード若しくはパラメータなどとして、メッセージと組み合わせた認証鍵を用いた任意の好適なMACアルゴリズムの適用を含めることができる。MACアルゴリズムは、例えば、CMAC、HMAC、又はSipHashにできる。プロセッサは、各々の計算上のメッセージタグをメモリに更に格納する。次いで、プロセッサは、受信したメッセージタグを格納された計算上のメッセージタグと比較して、一致するメッセージタグを識別することによって、受信したメッセージタグを該集合のうちの1つとして検証できる。
【0006】
メッセージの集合は、例えば、送信される制御推定値又はセンサ推定値の固定集合など、固定的に定義されたものにできる。当然ではあるが、固定集合は、時々刻々と変化しうる。メッセージの集合は、代替的には動的に定義できる。すなわち、メッセージの集合は、例えば、送信側及び発信側に共通の基準値を照会することによって通信が発生した場合に、推定値の小さな集合を予測できるようにすべく、予め定義された方法で経時的に変化させることができる。予測の精度についての十分条件は、送信側及び発信側の複数の値が共通の発信値を少なくとも有し、発信値のタグを識別できることである。当該値の例は、日付、時刻、時刻(clock ticks)、及び相互に近似した座標などにできる。
【0007】
認証鍵は、鍵導出関数(KDF:Key Derivation Function)を用いて計算できる。鍵導出関数は、メッセージ送信装置と受信装置との間で共有される秘密状態と、メッセージ送信装置と受信装置との間で利用可能である公開情報、又はメッセージ送信装置と受信装置との間で交換される公開情報、例えば、時間データ、又は送信装置によって通信されるメッセージ若しくは受信装置によって応答される応答メッセージなどの交換されたメッセージの全部若しくは一部とに対して動作しうる。秘密状態は、秘密が共有された固定鍵、カウンタ、固定鍵とカウンタの組み合わせ、若しくはその他のインクリメントキー、最後の認証鍵、又はメッセージ送信装置と受信装置の間で同期を維持できるその他の秘密状態にできる。KDFは、KDF1、HKDF、パスワードハッシュ関数、線形フィードバックシフトレジスタ、NIST SP 800-108(NIST Special Publication 800-108)で推奨されているKDF、又はその他の好適なKDFにできる。
【0008】
メモリは、汎用のランダムアクセスメモリ又は専用のメモリアドレスにメッセージ/タグを格納する専用のダイレクトアクセスメモリであってもよいし、メッセージ及びタグを格納する専用の1以上のレジスタで構成し、アクセス速度を得られるものとしてもよい。後のタグを比較する処理速度は、各々のメッセージタグを対応するレジスタに格納し、受信したタグとの後の比較が、それぞれのスレッド、回路、又はプロセッサを用いて並列化された実施形態において向上できる。
【0009】
通常、各々のタグは、対応するメッセージと関連づけて一組としてメモリに格納されており、受信したメッセージを検証することも、受信したタグをメモリで検索することによりメッセージを識別することもできる。前者の場合においては、受信装置は、メモリ内のテーブル索引に基づいて、受信したメッセージ及びタグが一致することを点検でき、後者の場合、受信したタグを用いて、送信側が通信したメッセージを、メッセージ自体を受信することなく識別できる。しかしながら、一部の実施形態においては、メッセージはタグと一緒に受信されるが、タグは、当該一組の同一性を確認するのではなく、メモリ内に存在することを点検するためにのみ用いられる。これらの実施形態においては、メッセージ及びタグは、一組として格納される必要はなく、実際には、タグをリストとして格納することで十分である。
【0010】
メッセージタグは、メッセージタグ自体を、メッセージを伴わずに受信する。後者の場合、メッセージは暗号化された形で受信してもよいし、使用のために復号化してもよい。適用可能な場合、メモリ内のメッセージとの比較は、暗号化又は復号化された形態のメッセージを用いて実装され、それに応じて格納されたメッセージを構成できる。メッセージは、使い捨て乱数データ(nonce)とともに暗号化でき、その場合、各々のメッセージタグは、使い捨て乱数データとメッセージとの組み合わせについて計算される。当然ながら、メッセージは平文で受信できる。メッセージ自体が送信されない実施形態においては、暗号化/復号化が省略されることは理解されるであろう。
【0011】
プロセッサは、更に、トリガーイベント、例えばタグの検証に応答して、認証鍵を更新し、各々のメッセージを更新された認証鍵と組み合わせて対応するメッセージタグを更新し、更新されたメッセージタグを、例えば対応するメッセージと関連づけて、又は場合によっては関連づけずにメモリに格納する。鍵の更新は、攻撃の可能性を低減すべく通信ごとに行われてもよいし、低頻度で行ってもよい。更新が、通信、例えば通信ごと、又は検証の成功に基づいてトリガされる場合、処理は、タグの検証に応答しても、より一般的にタグの受信に応答しても、鍵を更新する際に送信装置に応答(認証)メッセージを発信して、認証鍵の同期を確実に維持するように構成できる。セキュリティの向上のために、応答メッセージには、メッセージ送信装置での検証により、送信装置と受信装置との間の鍵の同期時の攻撃を更に困難にする認証情報を含めることができる。他の実施形態においては、トリガーイベントは、特定の時間データ又は最後の更新からの時間間隔の経過とすることができ、この場合、受信装置と送信装置は、タイムサーバ又は精密時計といった、共通の時間情報又は同期された各々の時間情報源にアクセスできる。
【0012】
メッセージ受信装置は、例えば、自律走行車などの車両におけるペダルの動作若しくは障害物の検知に応答したブレーキ動作の始動、又は複数の家庭で測定された消費量に応答したスマート電力網における変電所及び/又は家庭内のローカル負荷の制御といった、メッセージの交換によりメッセージ送信装置又はメッセージ受信装置で制御の実行の始動が可能な制御システムの一部とすることができる。他の用途例としては、モノのインターネット(IoT:Internet of Things)の制御用途を含み、公共ネットワークを介して通信する構成要素を特に有する産業用制御システム、化学プラントの制御システムなどの産業用プラント制御システム、ロボット工場、及び原子炉などを含む。例えば、一部の実施形態においては、応答メッセージは、メッセージ送信装置に関連づけられたアクチュエータ装置の制御命令を含むことができ、かつ/あるいは、送信装置を起点とする各々のメッセージは、メッセージ受信装置に関連づけられた対応するアクチュエータ装置の制御命令を含んでいる。一部の実施形態においては、メッセージ送信装置から発信される各メッセージは、メッセージ送信装置に関連づけられた、定量化されたセンサ値又はバイナリ値などの対応するセンサからのセンサ情報を含んでいる。受信装置の制御の実行は、更に又は代替的に、受信したセンサ値に基づくことができる。
【0013】
第2態様においては、メッセージ送信装置は、複数のメッセージタグの組を格納するメモリであって、複数のメッセージタグの組は、複数のメッセージの各々のメッセージと複数のメッセージタグの各々のメッセージタグとを含んでいるメモリと、メッセージタグを送信する通信インタフェースと、プロセッサとを備える。プロセッサは、複数のメッセージの各々のメッセージを認証鍵と組み合わせて、複数のメッセージの各々のメッセージに対して、それぞれの対応するメッセージタグを生成し、各々の計算上のメッセージタグと対応するメッセージとを関連づけてそれぞれのメッセージタグの組としてメモリに格納するものである。プロセッサは、更に、例えば、特定のメッセージを送信する命令の受信に応答して、センサ信号又は割込みに応答して、あるいはセンサ信号などの入力信号に基づく計算に応答して、メッセージ受信装置に通信するメッセージを選択し、メッセージに対応するメッセージタグをメモリから検索する。次いで、プロセッサは、選択されたメッセージに対応する検索されたメッセージタグを、選択されたメッセージなしで通信インタフェースに送信させる。
【0014】
攻撃への脆弱性を低減するために、プロセッサは、トリガーイベントに応答して、認証鍵を更新し、各々のメッセージを更新された認証鍵と組み合わせて、対応するメッセージタグを更新し、各々の更新された対応するメッセージタグを、それぞれのメッセージに関連づけてメモリに格納する。一部の実施形態においては、通信インタフェースは、メッセージ受信装置から応答メッセージを受信し、トリガーイベントは、メッセージ受信装置によるメッセージタグの受信を確認するメッセージの通信インタフェースによる送信を含む。メッセージは、受信を確認するメッセージを検証するための認証情報を含むことができ、トリガーイベントは、応答メッセージの検証の成功を含むことができる。
【0015】
メッセージ受信装置は、更に、メッセージ送信装置の構成要素又は機能を含んでいてもよいし、その逆であってもよく、ひいては、メッセージ送受信装置は、メッセージを受信する機能がある場合はメッセージ受信装置と称してもよく、メッセージを送信する機能がある場合はメッセージ送信装置と称してもよいことは理解されよう。
【0016】
第3態様においては、制御システムは、上述に開示したメッセージ受信装置とメッセージ送信装置とを備え、メッセージ送信装置及びメッセージ受信装置の一方又は両方は、制御すべきアクチュエータ装置と関連づけられる。一部の実施形態においては、制御システムは、複数の組のメッセージ送信装置と受信装置とを含むことができ、各々の組は、各々の位置に配置されるか、あるいは各々の機能を供給する。このような実施形態においては、各々の組の装置は、例えば、プロセッサ、通信インタフェース、又はメモリのうちの1以上といった構成要素を共有することができ、実際には、メッセージ送信装置及びメッセージ受信装置の両方の機能を備えた単一の装置として提供できる。更に一般的には、開示された任意の態様においては、通信インタフェースは、例えば、別々の装置といった、別個の発信機と送信機の構成要素を含むものでもよいし、装置の単一又は複数のモジュールとして、任意の好適な形態で提供してもよい。記載の構成要素及び構成要素の機能は、モジュールの任意の組み合わせにおいて実装でき、本開示は、記載の構成要素及び機能のモジュールの任意の特定の組み合わせ又は分配に限定されず、当該モジュールは、ソフトウェア、ハードウェア、又はその組み合わせにおいて実装できることは理解されるであろう。
【0017】
第4態様においては、メッセージを受信する方法は、複数のメッセージの各々を認証鍵と組み合わせて、複数のメッセージの各々に対して、計算上のメッセージタグを生成する工程と、複数のメッセージと、対応するメッセージタグとを格納する工程とを含む。本方法は、次いで、メッセージ送信装置から対応するメッセージを伴わずメッセージタグを受信する工程と、受信したメッセージタグを、格納された計算上のメッセージタグと比較して、一致するメッセージタグを識別することにより、受信したメッセージタグを検証する工程とを含む。本方法は、更に、トリガーイベントに応答して、認証鍵を更新する工程と、各々のメッセージを更新された認証鍵と組み合わせて、対応するメッセージタグを更新する工程と、更新されたメッセージタグをメモリに格納する工程とを含む。一部の実施形態においては、各々の計算上のメッセージは、対応するメッセージと関連づけて一組としてメモリに格納される。その結果、本方法は、一致するメッセージタグの識別に応答して、対応するメッセージを識別することにより、送信装置によって通信されたメッセージを、メッセージを受信することなく識別する工程を含むことができる。同様に、一部の実施形態においては、メッセージを更に受信し、受信した一組のメッセージ及びメッセージタグを、格納された一組と比較することにより、メッセージの信頼度を検証できる。
【0018】
第4態様の実施形態は、更に、上述に開示されたようなメッセージ受信装置によって実装される方法に拡張され、本開示の第5態様は、上述に開示されたようなメッセージ送信装置によって実装される方法に拡張され、第5態様の実施形態は、開示されたメッセージ送信装置の実施形態によって実装される方法に対応する。第6態様は、上述に開示されたように、第3態様の制御システムによって実装される方法に拡張し、対応する実施形態は、制御システムの実施形態によって実装される方法に対応する。
【0019】
全ての態様は、攻撃に対する脆弱性を低減するために、メッセージタグを検証するテーブル索引を、更新された鍵を用いた格納されたメッセージタグの定期的な更新を組み合わせていることに留意すべきである。開示された態様の一部の実施形態においては、鍵及び格納されたメッセージタグの更新は非同期的に、すなわち、メッセージタグの検証及び任意の決定又は受信したメッセージに基づく制御の実行と異なる時間に行われる。このようにして、システムの反応時間は、検証のためのメッセージタグの(高速な)検索によってのみ制限され、(潜在的に低速な)鍵の更新及び格納されたタグの更新によっては制限されない。
【図面の簡単な説明】
【0020】
図1図1は、通信装置を示している。
図2図2は、データ構造を示している。
図3図3は、データ構造のハードウェア実装を示している。
図4図4は、分散型制御システムを示している。
図5図5は、メッセージを認証するモジュールを示している。
図6図6は、認証を検証するモジュールを示している。
図7図7は、メッセージを認証するメッセージタグを送信する方法を示している。
図8図8は、メッセージタグを受信及び検証し、実行する方法を示している。
図9図9は、コンピューティング装置を示している。
【発明を実施するための形態】
【0021】
[図面の詳細な説明]
例として、一部の具体的な実施形態を添付の図面を参照して説明し、本開示の態様を説明する。図1によると、メッセージ送受信装置100は、ソリッドステートメモリ、フラッシュメモリ、ハードドライブ、揮発性メモリ、RAM、又は他の様式のデータ格納に好適なメモリといったメモリと、コプロセッサ及びハードウェアアクセラレータ回路を有する、あるいは有しない、CPU、マイクロプロセッサ、複数のマイクロプロセッサ一式といったプロセッサ120と、メッセージ及びメッセージタグといったデータを送受信可能な通信インタフェース130と、プロセッサ120によって処理される受信データ又はメッセージに応答して制御されるシステム構成要素のインタフェースとなるシステムインタフェース140とを備える。装置100が制御機能のない一部の実施形態においては、システムインタフェース140は存在しない。一部の実施形態においては、システムインタフェース140は、他のシステム構成要素からセンサデータを受信し、プロセッサ120は、センサデータに基づいて送信すべきメッセージを生成又は選択する。一部の実施形態においては、システムインタフェースは、制御データの送信とセンサデータの受信の両方を行う。記載の構成要素は、データバス150を介して相互に通信している。
【0022】
一部の実施形態においては、装置100はメッセージの送信のみ、又は受信のみである場合、通信インタフェース130は、受信側のみ、又は送信側のみとすることができるが、該実施形態であっても、認証メッセージが送受信されることがあり、双方向の通信インタフェースは更に必要である。通信インタフェースは、受信時には受信側と称され、送信時には送信側と称されることがあり、受信側は、1つの、かつ同一の構成要素であってもよいし、送信側及び受信側を、別の各々の構成要素に実装して、通信インタフェースを形成してもよい。
【0023】
図2によると、データ構造200は、メモリ110に格納されており、一組210のメッセージ220と、各々のメッセージ220に対して計算されたMACなどの各々のメッセージに対応するメッセージタグ230とを備える。メッセージ220及びメッセージタグ230は、一組として格納されており、メッセージ220に対する鍵としてメッセージタグ230をテーブル索引することにより、データ構造からメッセージを再実行可能であり、その逆も可能である。メッセージ220は、装置100が送受信しうる推定メッセージの集合であり、データ構造200は固定サイズにできる。
【0024】
メッセージの集合は固定でき、例えば、発信される制御コマンド又はセンサ値の集合に対応させることができる。代替的には、メッセージの集合は、予測可能な方法で経時的に変化させることができ、送信側及び受信側の双方は、メッセージ220及びメッセージタグ230の集合を共有させることができ、例えば、共通の時間基準などの共通の基準を用いて集合を導出できる。特定例は、GPS信号がメッセージ220及びメッセージタグ230を用いて発信されるGPSシステムにおけるクロック信号に関する。
【0025】
特定の一実施形態においては、メモリ構造200は、汎用メモリではなく、例えば、各々のメッセージタグ230に対する1つのレジスタ310と、受信したメッセージタグに対する各々のレジスタ320との配列といった特定のハードウェアで実装されている。レジスタ310、320の各々の一組は、受信したメッセージタグと格納したメッセージタグ230との間に一致があるレジスタの組に対し論理的なTRUE値の出力を生成するように、ANDゲート330によって連結される。各々のレジスタ310に対応するレジスタは、対応するメッセージとともに格納することによって、ANDゲート330の出力340に基づいて、対応するメッセージの並列化した識別が可能にとなる。同様に、回路は、格納されたメッセージ220及び受信されたメッセージの組、又は格納された組210と受信されたメッセージ及びメッセージタグの各々の組に対して、AND演算を実行するように配置されてもよい。
【0026】
図4によると、分散制御システムは、例えば、アクチュエータ410といった、他の各々のシステム構成要素に接続された複数の通信装置100を含み、センサ420で受信したメッセージに応答して制御され、センサデータ又はセンサデータに基づく制御コマンドを送信することによってリモートアクチュエータ410を制御するために、送信するメッセージに基づくデータを生成する。一部の例においては、通信装置は、単一の装置で、あるいはローカル接続を介して、アクチュエータ415及びセンサ425の両方に接続され、センサデータを送信し、リモートコントローラ430から制御コマンドを受信することができる。リモートコントローラ430は、装置100に結合され、センサデータを受信し、制御コマンドを返信する。アクチュエータ410、415、センサ420、425及びコントローラ430は、それぞれの装置100を介して、インターネットなどの通信ネットワーク440上で通信を行う。図4は、1つの各々の形式の装置410、415、425、430で制御システムを示しているが、本開示は、特定の数の装置に限定されるものでも、実際に、すべての形式の装置があるものでもないことは理解されるであろう。
【0027】
図5により、特にメッセージタグの生成及び使用に関する、送信装置としての装置100の動作を、機能モジュールの点から記載する。当該機能モジュールは、任意の好適な方法において、装置100の複数の構成要素の間に分散できることは理解されるであろう。上述したように、データ構造200は、一組210のメッセージ220及びメッセージタグ230を格納する。メッセージの集合{xi}のメッセージ220、すなわちxiに対するメッセージタグ230は、各々のxiを現在の認証鍵Kjと組み合わせることにより事前計算されて、メッセージタグ230として、例えば、上述したMACアルゴリズムのいずれかを用いてMAC_Kj(xi)を生成する。メッセージタグ230は、xiとKjとを組み合わせた任意の好適なアルゴリズムを用いて計算し、xiを認証及び/又は識別するために使用可能なタグを提供できることは理解されるであろう。現在のKjは、内部が秘密状態であり、公開されている推定更新データから導出されるKDF510、又は該更新データと組み合わされたKDF510によって計算され、トリガーイベントに応答して更新されたKj+1を生成する。トリガーイベントは、Kjの最後の更新からの一定時間が経過、タイムスタンプ若しくはデータ、メッセージの送信、受信側によって受信されたメッセージの認証の受信、又は認証メッセージの認証のうちの1つ以上を含むことができる。例えば、上述したような任意の好適なKDFが用いられうる。
【0028】
事前計算モジュール520は、{xi}及びKjを受信し、複数の組{xi,Mac_Kj(xi)}を計算し、データ構造200に従って、例えばメモリ110内のデータベース530に格納される。メッセージ220とメッセージタグ230との間の関連づけが必要とされない任意の実施形態においては、例えば、タグと、タグの集合のいずれか1つとの検証が十分であるため、タグ及びメッセージは、複数の組としてではなく、相互の関連づけをせずに別個に格納できることは理解されるであろう。認証モジュール540は、送信されるべきメッセージx(又は該メッセージの指標又は索引)を受信し、データベース530にアクセスしてMAC_Kj(x)を検索し、x、MAC_Kj(x)の一組を送信用の通信インタフェースに渡す。一部の実施形態においては、MAC_Kj(x)のみを送信用の通信インタフェースに渡してもよい。一部の実施形態においては、MAC_Kj(x)は、更新データとしてKDF510に渡されて、Kjがトリガーイベントに応答して更新可能にできる。xなどのメッセージ220と、例えば上述のようなKjとから、MAC_Kjなどのメッセージタグ230を計算するための任意の好適なMACアルゴリズム又は他のアルゴリズムを用いることができる。
【0029】
図6により、特にメッセージタグの検証に関する、受信装置としての装置100の動作を、機能モジュールの点から記載する。モジュール510、520、及び530は、上述の図5により記載したように、トリガーイベントがKiの更新を始動するのに安全な同一のモジュールの同一又は別個のインスタンスとすることができ、Kjの最後の更新から一定時間が経過したこと、タイムスタンプ若しくはデータ、メッセージの受信、受信されたメッセージの認証の送信、受信したMAC_Kj(x)の検証、又は受信したx、MAC_Kj(x)の組の検証のうちの1以上を含むことができる。当該始動の一部は重複しており、すなわち、x、MAC_Kj(x)の認証の検証は、少なくとも暗黙のうちに、MAX_Kj(x)の検証を必然的に含み、また、少なくとも暗黙のうちに、双方が、x、MAC_Kj(x)を受信することをそもそも含むことは理解されるであろう。換言すると、トリガーイベント「x、MAC_Kj(x)の検証」は、トリガーイベント「MAC_Kj(x)の検証」を含んでいるが、トリガーイベント「x、MAC_Kj(x)の受信」は、これらの検証を必ずしも含んでいない。
【0030】
次に、図5によって上述した送信装置(又は送信モードの装置100)とは対照的に、受信装置(又は受信モードの装置100)は図6により記載され、認証モジュール540の代わりに検証モジュール610を備える。検証モジュール610は、x、MAC_Kj(x)を受信し、以下の機能a)~d)のいずれかを実行する:a)データベース530においてMAC_Kj(x)を索引し、存在する場合はxを検索して受信したxと比較することにより、一致する場合にxを認証する;b)データベース530においてxを索引し、存在する場合はMAC_Kj(x)を検索して受信したMAC_Kj(x)と比較することにより、一致する場合にxの認証を検証する;c)受信したx、MAC_Kj(x)をデータベース530において索引して一致するものを見つけることによって、xの認証を検証する;d)MAC_Kj(x)をデータベースにおいて索引して、受信したMAC_Kj(x)を有効なMAC_Kj(x)の1つとして検証することによって、より少ない形式の認証を提供する。4つの動作はすべて、MAC_Kj(x)を、ある程度まで検証することに留意されたい。後者の場合、MAC_Kj(x)のみが送受信され、xは送受信されない実施形態において有用である。当該実施形態においては、MAC_Kj(x)の一致を用いて、データベース530からxを検索する。いずれの事象においても、MAC_Kj(x)が検証され、ひいては、xが少なくともある程度、検証、又は識別及び検索された場合、xは、システムインタフェース140などの装置100における他の構成要素に渡され、車両のブレーキ動作、又は家庭における電力消費の抑制若しくは停止などの装置100に関連するシステムにおける制御の実行を始動する。
【0031】
2以上の装置100(又は1以上の送信装置及び1以上の受信装置)の接続されたシステムにおいては、Kjは複数の装置の間で共有されるが、複数の装置の間で秘密を維持しなければならず、結果として得られる組の集合{xi,Mac_Kj(xi)}(データ構造200におけるメッセージ220及びメッセージタグ230の組210)は、メッセージの交換が必要な時点でKjが同期状態となる程度に複数の装置の間で同期が維持されていなければならず、それ以外の時点においては、複数の装置の間でKjが同期されない余地もある。これによれば、受信したメッセージタグ230の検証及び後の実行と別のタイミングで、複数の組の計算及び格納が非同期に実行でき、複数の組の同期及び更新により、受信したメッセージの迅速な実行が干渉されない。
【0032】
図7によると、例えば上述の装置及び/又はモジュールを用いて、送信側がメッセージを送信する方法は、例えばデータ構造200を有するデータベース530に、メッセージ220の集合に対するメッセージタグ230を計算及び格納する工程710を含む。一部の実施形態においては、メッセージ220及びタグ230は、一組210として相互に関連づけて格納される。メッセージタグ230は、各々のメッセージ220をKjなどの認証鍵と組み合わせて、対応するタグ230を生成することによって計算される。一般的には、認証鍵は、各メッセージ220と組み合わされる単一鍵の数値である。一部の実施形態においては、認証鍵は、例えば、各々のメッセージ220に対して1つの鍵の値の集合を含み、メッセージ220を認証鍵と組み合わせる工程は、各々のメッセージ220を認証鍵の各々の鍵の数値と組み合わせる工程を含む。鍵及びメッセージ220は、例えば、暗号操作などの任意の好適な方法において、又は更に具体的には上述のようなMACアルゴリズムを用いて、組み合わせることができる。工程710は、メッセージを送信する装置が通信している他の1以上の装置と協働する実施形態においては、例えば装置のセットアップ又はブートのルーチンにおいて事前に実行される。任意の事象において、通信している装置は、認証鍵を秘密として共有し、複数の装置の間の通信が必要とされる時までに、対応するメッセージ220及びメッセージタグ230の組210が格納されるように設定される。
【0033】
工程720においては、メッセージ220が送信される場合、メッセージは、例えば、それぞれがセンサ出力値又は値の集合に関連づけられた離散メッセージの対応する集合に連関したセンサ入力に基づいて、又は、他の実施形態においては、操作側の入力に基づいて選択される。対応するメッセージタグ230は、メモリから検索され、送信の準備がされる。工程730においては、メッセージタグ230は、受信側の受信装置に送信される。一部の実施形態においては、メッセージ220は、信頼度を受信側で検証できるようにメッセージタグとともに送信され、他の実施形態においては、メッセージ220は送信されず、受信側は、受信したメッセージタグ230と、メッセージ220とメッセージタグ230とを関連づける記憶された組210からメッセージを回復できる。
【0034】
次いで、工程740においては、送信されたメッセージタグ230が受信され、一部の実施形態においては検証されたことを確認する認証メッセージが受信される。認証メッセージは、一部の実施形態においては、ディジタル署名又はMACなどの認証メッセージを認証することを可能にする情報を含むことができる。認証(又は他の応答)メッセージの認証は、時間的に重要な送信/検証及び実行工程に影響を与えることなく非同期で行うことができるので、当該認証が特に高速であることは重要ではなく、従来の認証方法の使用を可能にする。しかしながら、一部の実施形態においては、認証メッセージは、メッセージのデータ構造200の一部であり、メッセージを迅速に処理するために開示された技術を用い、事実上、上記で開示されたように受信側として機能し、後述の受信方法を実施する送信側によって処理され、一般的には認証の認証応答工程を省略する。
【0035】
図8によると、例えば、上述の装置及び/又はモジュールを用いてメッセージを受信する方法は、例えば、データ構造200を有するデータベース530に、メッセージ220の集合に対するメッセージタグ230を計算及び格納する工程810を含む。工程810は、工程710と同一であるが、工程710を実装する送信側と通信している受信装置で実行され、送信側からメッセージタグ230を受信する。工程820においては、上述した工程730で送信されたメッセージタグ230は、一部の実施形態においては対応するメッセージ220とともに受信される。工程830においては、メッセージタグ230は、例えば上述のようなテーブル索引によって検証される。メッセージタグが正常に検証された場合、対応するメッセージ230は、受信された場合には、検証された信頼度であるとみなされ、メッセージ230が受信されない場合、工程840で、上述したように、データ構造220で識別される。工程830及び840は、組み合わせることができ、例えば、受信したメッセージ220はテーブル索引で用いてもよいし、受信したタグ230と検索及び比較されたタグ230、又はメッセージ220及びタグ230の組210は、索引してもよい。
【0036】
送信側による通信を目的としたメッセージ220が識別された場合、又は受信したメッセージ220が検証された場合、工程850において、メッセージ220に基づいて実行がなされる。一部の実施形態においては、メッセージ220は、受信側に関連するアクチュエータのための制御命令を含み、工程840に応答して制御命令が処理され、例えば、システムインタフェース140を介してアクチュエータコマンドを送信することによって、アクチュエータに命令を実行させる。一部の実施形態においては、メッセージ220は、送信側におけるセンサ読取を示すセンサ信号を含み、センサ読取が処理されて、センサ読取に応答して取るべき実行命令を決定し、次いで、例えば上述のように、アクチュエータに命令を実行させる。
【0037】
工程860において、一部の実施形態においては、命令がアクチュエータに送信された後、又は命令が実行された後、認証メッセージなどの応答メッセージがメッセージタグ230の送信側に返信される。これによると、対応する実行を遅延なく行うことができるという利点がある。一部の実施形態においては、応答メッセージは、受信したメッセージタグ230が検証された後に直接送信される。更に、例えば図7に示された工程750によって、上述したように工程860においてで認証鍵が更新される。鍵の更新は、例えば、命令の実行の完了と応答メッセージの送信との間、又は応答メッセージの送信後に行うことができる。
【0038】
工程750及び工程860の両方が完了し、ひいては、受信側及び送信側が両方とも新しい共有及び秘密の認証鍵を持った後、各々の工程は、メッセージを送受信する新しいサイクルのために、例えばデータベース530内のデータ構造200のメッセージ220及びメッセージタグ230の組210の更新に戻る(それぞれ、工程710及び810)。よって、当該工程は、テーブル索引に基づいた交換されたメッセージの迅速な信頼度の検証及び/又は識別を組み合わせ、一部の実施形態においては、メッセージの迅速な検証又は識別、及び実行を害することなく、低速な鍵の更新工程、データ構造の更新及び認証工程証、又は他の同期工程が使用可能となる。
【0039】
装置100の特定のハードウェア実装を上に開示してきたが、別の実施形態によると、別の専用のコンピューティング装置及び回路、並びに汎用コンピューティング装置を含む、多くの他の実装が可能であることが理解されるであろう。図9は、コンピューティング装置900の1つの実装のブロック図を示しており、本明細書に記載の方法論のうちのいずれか1以上をコンピューティング装置に実行させるために、一連の命令を実行できる。代替的な実装においては、コンピューティング装置は、ローカルエリアネットワーク(LAN)、イントラネット、エクストラネット、又はインターネットにおいて他の機器に接続(例えば、ネットワーク接続)できる。コンピューティング装置は、クライアントサーバネットワーク環境において、サーバ機器又はクライアント機器の役割で動作させてもよいし、ピアツウピア(又は分散)ネットワーク環境における同位の機器の役割で動作させてもよい。コンピューティング装置は、パーソナルコンピューター(PC)、タブレットコンピューター、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、Webアプライアンス、サーバ、ネットワークルータ、スイッチ若しくはブリッジ、又は機器によりなされる実行を特定する(例えば、逐次的な)命令の集合を実行することができる任意の機器にできる。更に、単一のコンピューティング装置のみを示しているが、「コンピューティング装置(computing device)」という用語は、本明細書に記載の方法論のいずれか1以上を実行するための命令の集合(又は複数の命令)命令を個別に又は共同で実行する機械の集合体(コンピュータなど)も含むと捉えるべきである。
【0040】
例示のコンピューティング装置900は、処理装置902、主記憶装置904(読取専用記憶装置(ROM)、フラッシュメモリ、同期型DRAM(SDRAM)又はラムバスDRAM(RDRAM)などの動的ランダムアクセス記憶装置(DRAM)など)、スタティックメモリ906(フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)、及び二次記憶装置(例えば、データ記憶装置918)を含み、バス930を介して相互に通信する。
【0041】
処理装置902は、マイクロプロセッサ、中央処理装置(CPU)などの1以上の複数の汎用プロセッサである。更に具体的には、処理装置902は、複雑命令セット演算(CISC:Complex Instruction Set Computing)、マイクロプロセッサ、縮小命令セット演算(RISC:Reduced Instruction Set Computing)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、他の命令の集合を実装するプロセッサ、又は命令の集合の組み合わせを実装するプロセッサにできる。また、処理装置902は、特定用途向け集積回路(ASIC)、書替え可能ゲートアレイ(FPGA)、ディジタル信号プロセッサ(DSP)、ネットワークプロセッサなどの1以上の特定目的の処理装置にできる。処理装置902は、本明細書に記載の動作又は工程を実行するための処理ロジック(命令922)を実行する。
【0042】
コンピューティング装置900は、更に、ネットワークインタフェース装置908を含むことができる。また、コンピューティング装置900は、映像表示装置910(液晶ディスプレイ(LCD)又は陰極線管(CRT)など)、英数字入力装置912(例えば、キーボード又はタッチスクリーン)、カーソル制御装置914(例えば、マウス又はタッチスクリーン)、及びオーディオ装置916(例えば、スピーカ)を含むことができる。
【0043】
データ記憶装置918は、本明細書に記載の方法論又は機能のいずれか1以上を具現化する1以上の命令922の集合が格納された1以上の機械で読み取り可能な記憶媒体(より具体的には、1以上のコンピュータで読取可能な非一時的な記憶媒体)928を含むことができる。また、命令922は、コンピュータシステム900による実行中に、完全に又は少なくとも部分的に、主記憶装置904及び/又は処理装置902の内部に常駐でき、主記憶装置904及び処理装置902は更にコンピュータ可読記憶媒体を構成する。
【0044】
上述の様々な方法は、コンピュータプログラムによって実装できる。コンピュータプログラムは、コンピュータに指示するように配置され、上述の様々な方法のうちの1つ以上の機能を実行するコンピュータコードを含むことができる。当該方法を実行するためのコンピュータプログラム及び/又はコードは、1以上のコンピュータ可読媒体、又はより一般的にはコンピュータプログラム製品で、コンピュータなどの装置に提供できる。コンピュータ可読媒体は、一時的なものであっても、非一時的なものであってもよい。1以上のコンピュータ可読媒体は、例えば、電子的、磁気的、光学的、電磁的、赤外線的、又は半導体のシステムであっても、例えば、インターネットを介してコードをダウンロードするための、データ伝送のための伝搬媒体であってもよい。代替的には、1以上のコンピュータ可読媒体は、半導体メモリ又はソリッドステートメモリ、磁気テープ、リムーバブルコンピュータディスク、ランダムアクセスメモリ(RAM)、読取専用記憶装置(ROM)、硬質磁気ディスク、及びCD-ROM、CD-R/W、DVDなどの光ディスクといった1以上の物理的コンピュータ可読媒体の形態を取ることができる。
【0045】
本明細書に記載のモジュール、構成要素、及びその他の機能は、個別の構成要素として実装しても、ASICS、FPGA、DSP又はその他の装置といったハードウェア構成要素の機能に統合してもよい。
【0046】
「ハードウェア構成要素(hardware component)」とは、特定の動作を行うことができる有形の(例えば、非一時的な)物理的構成要素(例えば、1以上のプロセッサの集合)であり、特定の物理的な方法で構成又は配置できる。ハードウェア構成要素は、特定の動作を永久的に実行する専用の回路又は論理を含んでもよい。ハードウェア構成要素は、書替え可能ゲートアレイ(FPGA)又はASICといった特定目的のプロセッサであっても、それを含んでいてもよい。更に、ハードウェア構成要素は、ソフトウェアによって一時的に構成され、特定の動作を行うプログラマブルな論理又は回路を含むことができる。
【0047】
したがって、「ハードウェア構成要素」という言葉は、物理的に構築され、永久的に構成(例えば、配線)されるか、一時的に構成(例えば、プログラム)されて、本明細書に記載の特定の方法で動作し、特定の動作を実行する有形の実体を包含すると理解すべきである。
【0048】
更に、モジュール及び構成要素は、ハードウェア装置の内部に、ファームウェア又は機能回路として実装できる。更に、モジュール及び構成要素は、ハードウェア装置とソフトウェア構成要素との任意の組み合わせで実装してもよいし、ソフトウェア(例えば、機械で読取可能な媒体又は伝送媒体に格納又は具現化されたコード)のみで実装してもよい。
【0049】
特に明記しない限り、以下の説明から明らかなように、本明細書においては、「受信(receiving)」、「送信(sending)」、「決定(determining)」、「比較(comparing)」、「可能(enabling)」、「維持(maintaining)」、「識別(identifying)」、「組み合わせ(combining)」、「格納(storing)」、「発信(transmitting)」、「検証(validating)」、「更新(updating)」、「認証(authenticating)」、「惹起(causing)」、「実行(actioning)」、「検索(retrieving)」などの用語を用いた議論は、コンピュータシステムのレジスタ又はメモリの内部に物理的(電子的)数量として表現されたデータを、コンピュータシステムのメモリ若しくはレジスタ、又は他の情報記憶装置、送信装置、表示装置の内部に物理的数量として同様に表現された他のデータに操作及び変換する、コンピュータシステム、あるいは同様の電子計算機の動作及び工程を指すことは理解されよう
【0050】
上述の記載は、例示を目的としたものであり、制限的なものではないことを理解されるべきである。多くの他の実装は、上記の記載を読み、理解すると当該技術分野の当業者には明らかになるだろう。本開示は、特定の実装例により記載したが、本開示は、記載の実装例に限定されるものではなく、添付の請求項の精神及び範囲において修正及び変更をして実施できることは、認識されるであろう。したがって、本明細書及び図面は、制限的な意味ではなく、例示的な意味で捉えられるべきである。したがって、本開示の範囲は、特許請求の範囲が権利を付与する均等物の全範囲に沿って、添付の特許請求の範囲により決定されるべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9