JP2020532910A - 非セキュアな共有通信媒体を使用する前方秘匿性を備えた線形鍵合意のための方法及びシステム - Google Patents

非セキュアな共有通信媒体を使用する前方秘匿性を備えた線形鍵合意のための方法及びシステム Download PDF

Info

Publication number
JP2020532910A
JP2020532910A JP2020512502A JP2020512502A JP2020532910A JP 2020532910 A JP2020532910 A JP 2020532910A JP 2020512502 A JP2020512502 A JP 2020512502A JP 2020512502 A JP2020512502 A JP 2020512502A JP 2020532910 A JP2020532910 A JP 2020532910A
Authority
JP
Japan
Prior art keywords
node
shared
seed value
controller
data bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020512502A
Other languages
English (en)
Other versions
JP6903223B2 (ja
Inventor
ガジャード マーチャン ジョージ
ガジャード マーチャン ジョージ
ジェイン シャラブ
ジェイン シャラブ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of JP2020532910A publication Critical patent/JP2020532910A/ja
Application granted granted Critical
Publication of JP6903223B2 publication Critical patent/JP6903223B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Lock And Its Accessories (AREA)
  • Storage Device Security (AREA)

Abstract

前方秘匿性を備えた共有秘密合意のための方法は、ノードシード値及び少なくとも1つのインデックス値に適用される暗号学的にセキュアな疑似乱数発生器を使用して、第1の複数のデータビットを生成することと、共有通信媒体を介して第1の複数のデータビットを、第2のノードからの第2の複数のデータビットの送信と同時に送信することと、第2の複数のデータビットの論理的補数である第1の複数のデータビットの一部分を使用して、第2のノードによる共有秘密データを同定することと、共有秘密データに適用される暗号学的にセキュアな一方向性関数を使用して、共有シード値を生成することと、ノードシード値に適用される暗号学的にセキュアな一方向性関数を使用して、更新されたノードシード値を生成し、ノードシード値を置き換えることと、を含む。

Description

優先権の主張
本願は、2017年8月29日に提出された米国特許仮出願第62/551,609号、発明の名称「Method and System for Share Key and Message Authentication Over an Insecure Shared Communication Medium」、の利益を主張するものであり、ここでこの文献を参照したことにより、その開示内容全体は、本明細書に明示的に取り込まれたものとする。
分野
本開示は、全般的には、ネットワーク通信の分野に関するものであり、より具体的には、共有通信媒体を使用した前方秘匿性を含むセキュアな通信のためのシステム及び方法に関する。
背景
コントロールエリアネットワーク(CAN)バス通信標準によって、幅広い用途において使用されるロバストな通信インタフェースが提供され、それらの用途には、以下に限定されるものではないが、自動車及び他の輸送用乗物、ビルディングオートメーション、産業システム、ロボット工学、並びに、共有通信媒体を使用した組み込み型ディジタルデバイス間の通信を必要とする他の分野が含まれる。多くのCANバスの実施形態は、標準化されたデータフレームフォーマットを用いてデータを送信及び受信するために、CANハイ(CANH)及びCANロー(CANL)と呼ばれる2本の導電性ワイヤと、共有通信媒体としてCANHワイヤ及びCANLワイヤを使用する「ノード」と呼ばれる電子デバイスとを用いる。CANバスは、一般的には、信号伝送のための物理的媒体として、シールドあり又はシールドなしのツイストペアケーブルから成るペアを利用する。
通常のオペレーション中、ノードは、1つ又は複数のノードがデータフレームの送信を要求するときに、バスアービトレーションプロセスを実施する。これによって保証されるのは、2つ以上のノードが同時に送信するときに発生する「コリジョン」を伴わない信頼性のある通信がもたらされるように、ある1つの時点でただ1つのノードだけが実際にCANハイライン及びCANローライン上にデータを送信する、ということである。CANバス標準の場合、バス上にドミナントビット「0」を送信するときに、出力ピンCANH及びCANLがそれぞれ異なる電圧レベルとなるように駆動され、CANHとCANLとの差分がCANバスの出力である。同様に、リセッシブビット「1」の伝送が行われるのは、CANH及びCANLが駆動されず、同等の電圧レベルを有することになるときである。CANバスは共有通信媒体であるので、CANバスに接続されたすべてのノードは、バスを介して伝送されるデータのビット各々を読み取ることができる。CANバスのこのような特性が問題となるのは、2つのノードが、バスに接続された他のノードにはわからないデータを内密に通信したいときである。
CANバスの実装に対する最近の発展に含まれるコンフィギュレーションによれば、CANバスに接続されている2つのノードが(意図的にコリジョンを発生させるために)同時にデータビットを送信し、2つの送信側ノードのいずれが実際に暗号化鍵の一部を成す情報を送信しているのかを第三者のノードが特定できないようにする手法により、暗号化鍵データを交換する。これらの鍵合意技術の一部において、2つのノードが同時に論理値1及び論理値0の信号を送信し、これに続いて元のビットの論理的補数が両方のノードから同時に送信され、これによって、CANHワイヤとCANLワイヤとの間で合算された電圧差が発生し、取り付けられたノード各々によってこの電圧差を検出することができる。しかしながら、CANバスに取り付けられたデバイスすべては、CANバスを介したドミナントビット(論理値0)の送信を検出することはできるけれども、2つのノードはCANバスに接続されている他のノードに同時に送信することから、0/1ビット及びそれに続く論理的補数の送信シーケンス中のどの時点においても、2つのノードのいずれがドミナント0又は非ドミナント1を送信しているのかを特定することはできず、いずれのビットが送信されているのかは、2つの送信ノードだけにしかわからない。2つのノードは論理値0及び1のビット及びそれらの論理的補数をランダム化された手法により送信し(両方のノードが論理値00/11のシーケンス又は論理値11/00のシーケンスを送信するならば、これらの信号によって第三者は各ノードから送信されたデータを特定することができてしまうので、このような送信は無視される)、これによって、CANバスに接続された他のノードが、各ビットを送信するノードの身元を検出できないようにしている。このオペレーションは、2つのノードが、そして間接的にはもっと大きなノードグループであっても、共有暗号化鍵のベースとなるデータを交換できるようにするための基礎を成している。ノードが暗号化鍵を交換してしまった後、それらの共有鍵を使用してデータ暗号化及び認証/照合のオペレーションが実施され、その際に他の点では当該分野に周知の技術が用いられ、これによって、CANバスに接続された他のノードによっても検出できない手法では復号又は変更が不可能なデータを、バス上のノードの種々のサブセットが交換できるようになる。
上述のプロセスによれば、非セキュアな共有通信媒体を使用するCANバスなどのシステムにおいて共有暗号化鍵を生成するために、秘密のデータをセキュアに交換できるようになるけれども、既存のプロセスは、前方秘匿性を実装して以前に使用された暗号化鍵の秘匿性を保護する新たな暗号化鍵を生成するための効果的なプロセスをもたらすものではない。当該分野において周知のように、前方秘匿性は、過去のセッションのときに暗号化されたデータを秘密鍵の将来の漏洩から保護する暗号化システムの1つの特性である。過去の秘密鍵の前方秘匿性をもたらす新たな暗号化鍵を生成するために、ランダムに生成されたデータから成る新たなセットを用いて、上述のプロセスを繰り返すことはできるけれども、上述の鍵合意プロセスを高い頻度で実施することによって、共有通信媒体を使用するシステム内で大量の時間及びネットワークキャパシティを浪費する可能性があり、これは非効率なプロセスである。従って、前方秘匿性と効率的なオペレーションの双方をもたらすように、非セキュアな共有通信媒体を使用するシステム内で共有暗号化鍵を生成する方法及びシステムを改善するのが有利であろう。
概要
1つの実施形態によれば、前方秘匿性を備えた共有秘密合意のための方法が開発された。この方法は、第1のノードにおけるコントローラにより、メモリ内に格納されている第1のノードシード値及び少なくとも1つのインデックス値に適用される暗号学的にセキュアな疑似乱数発生器(PRNG)を使用して、第1の複数のデータビットを生成することと、第1のノードにおけるコントローラ及びトランシーバにより、共有通信媒体を介して第1の複数のデータビットにおける各ビットを、共有通信媒体に接続された第2のノードからの第2の複数のデータビットの送信と同時に送信し、この第2の複数のデータビットを、第1のノードにおけるトランシーバにより受信することと、第1のノードにおけるコントローラにより、第1のノード及び第2のノードにより同時に送信される第2の複数のデータビットの論理的補数である第1の複数のデータビットの一部分を使用して、第2のノードによる共有秘密データを同定することと、第1のノードにおけるコントローラにより、共有秘密データに適用される暗号学的にセキュアな一方向性関数を使用して、共有シード値を生成し、この共有シード値をメモリ内に格納することと、第1のノードにおけるコントローラにより、第1のノードシード値に適用される暗号学的にセキュアな一方向性関数を使用して、更新されたノードシード値を生成し、この更新されたノードシード値をメモリ内に格納して、第1のノードシード値を置き換えることと、を含む。
さらなる実施形態において、この方法は、第1のノードにおけるコンローラにより、共有秘密データに適用される鍵生成関数を使用して、第1の共有秘密暗号化鍵を生成し、この第1の共有秘密暗号化鍵をメモリ内に格納することを含む。
さらなる実施形態において、この方法は、第1のノードにおけるコントローラにより、共有シード値に適用される鍵生成関数を使用して、第2の共有秘密暗号化鍵を生成し、この第2の共有秘密暗号化鍵をメモリ内に格納して、第1の共有秘密暗号化鍵を置き換えることと、第1のノードにおけるコントローラにより、共有シード値に適用される暗号学的にセキュアな一方向性関数を使用して、更新された共有シード値を生成し、この更新された共有シード値をメモリ内に格納して、共有シード値を置き換えることと、を含む。
さらなる実施形態において、この方法は、第1のノードにおけるトランシーバにより、第1の複数のデータビットにおける各ビットを、2つの送信から成る1つのシーケンスとして送信することを含み、第1の送信は、第1の複数のデータビットにおけるビットから成り、第2の送信は、第1の複数のデータビットにおけるビットの論理的補数から成る。
さらなる実施形態において、この方法の暗号学的にセキュアな一方向性関数は、暗号学的ハッシュ関数である。
さらなる実施形態において、この方法の鍵生成関数は、暗号学的にセキュアなPRNGである。
この方法のさらなる実施形態において、第1のノードにおけるトランシーバは、第1の複数のデータビットにおける各ビットを、CANバスの共有通信媒体を介して送信する。
他の実施形態によれば、前方秘匿性を備えた共有秘密合意のための方法が開発された。この方法は、第2のノードにおけるコントローラにより、第2のノードのメモリ内に格納されている第1の共有シード値及び少なくとも1つのインデックス値に適用される暗号学的にセキュアな疑似乱数発生器(PRNG)を使用して、第1の複数のデータビットを生成し、第1の共有シード値を、共有通信媒体に接続された第2のノードと第1のノードとの間で共有することと、第2のノードにおけるコントローラ及びトランシーバにより、共有通信媒体を介して第1の複数のデータビットにおける各ビットを、共有通信媒体に接続された第3のノードからの第2の複数のデータビットの送信と同時に送信し、この第2の複数のデータビットを、第2のノードにおけるトランシーバにより受信することと、第2のノードにおけるコントローラにより、第2のノード及び第3のノードにより同時に送信される第2の複数のデータビットの論理的補数である第1の複数のデータビットの一部分を使用して、第3のノードによる第1の共有秘密データを同定することと、第2のノードにおけるコントローラにより、第1の共有秘密データに適用される暗号学的にセキュアな一方向性関数を使用して、第2の共有シード値を生成し、この第2の共有シード値をメモリ内に格納することと、第2のノードにおけるコントローラにより、第1の共有シード値に適用される暗号学的にセキュアな一方向性関数を使用して、更新された第1の共有シード値を生成し、この更新された第1の共有シード値をメモリ内に格納して、第1の共有シード値を置き換えることと、を含む。
さらなる実施形態において、この方法は、第1のノードにおけるコントローラにより、第1のノードのメモリ内に格納された第1の共有シード値及び少なくとも1つのインデックス値に適用される暗号学的にセキュアなPRNGを使用して、第1の複数のデータビットを生成することと、第1のノードにおけるコントローラにより、第1の複数のデータビットに基づき、さらに第1のノードにおけるトランシーバを使用して第2のノード及び第3のノードの送信を受信することにより、第1の共有秘密データを同定して、第2の複数のデータビットの論理的補数である第1の複数のデータビットの一部分を同定することと、第1のノードにおけるコントローラにより、第1の共有秘密データに適用される暗号学的にセキュアな一方向性関数を使用して、第2の共有シード値を生成し、この第2の共有シード値をメモリ内に格納することと、第1のノードにおけるコントローラにより、第1の共有シード値に適用される暗号学的にセキュアな一方向性関数を使用して、更新された第1の共有シード値を生成し、この更新された第1の共有シード値を第1のノードのメモリ内に格納して、第1の共有シード値を置き換えることと、を含む。
さらなる実施形態において、この方法は、第1のノードにおけるコントローラにより、第1の共有秘密データに適用される鍵生成関数を使用して、第1のノードのメモリ内に第1の共有秘密暗号化鍵を生成することと、第2のノードにおけるコントローラにより、第1の共有秘密データに適用される鍵生成関数を使用して、第2のノードのメモリ内に第1の共有秘密暗号化鍵を生成することと、を含む。
さらなる実施形態において、この方法は、第2のノードにおけるコントローラにより、第2の共有シード値に適用される鍵生成関数を使用して、第2の共有秘密暗号化鍵を生成し、この第2の共有秘密暗号化鍵をメモリ内に格納して、第1の共有秘密暗号化鍵を置き換えることと、第2のノードにおけるコントローラにより、第2の共有シード値に適用される暗号学的にセキュアな一方向性関数を使用して、更新された第2の共有シード値を生成し、この更新された第2の共有シード値を第2のノードのメモリ内に格納して、第2の共有シード値を置き換えることと、を含む。
さらなる実施形態において、この方法は、第2のノードにおけるコントローラにより、第2の共有シード値及び少なくとも1つのインデックス値に適用される暗号学的にセキュアなPRNGを使用して、第3の複数のデータビットを生成することと、第2のノードにおけるコントローラ及びトランシーバにより、共有通信媒体を介して第3の複数のデータビットにおける各ビットを、共有通信媒体に接続された第3のノードからの第4の複数のデータビットの送信と同時に送信し、この第4の複数のデータビットを、第2のノードにおけるトランシーバにより受信することと、第2のノードにおけるコントローラにより、第2のノード及び第3のノードにより同時に送信される第4の複数のデータビットの論理的補数である第3の複数のデータビットの一部分を使用して、第3のノードによる第2の共有秘密データを同定することと、第2のノードにおけるコントローラにより、第2の共有秘密データに適用される鍵生成関数を使用して、第2のノードのメモリ内に第2の共有秘密暗号化鍵を生成し、この第2の共有秘密暗号化鍵により、第2のノードのメモリ内の第1の共有秘密暗号化鍵を置き換えることと、第2のノードにおけるコントローラにより、第2の共有秘密データに適用される暗号学的にセキュアな一方向性関数を使用して、更新された第2の共有シード値を生成し、この更新された第2の共有シード値を第2のノードのメモリ内に格納することと、を含む。
さらなる実施形態において、この方法は、第3のノードにおけるコントローラにより、第3のノードのメモリ内に格納されたノードシード値及び少なくとも1つのインデックス値に適用される暗号学的にセキュアなPRNGを使用して、第4の複数のデータビットを生成することと、第3のノードにおけるコントローラにより、第2のノード及び第3のノードにより同時に送信される第4の複数のデータビットの論理的補数である第3の複数のデータビットの一部分を使用して、第2の共有秘密データを同定することと、第3のノードにおけるコントローラにより、第2の共有秘密データに適用される鍵生成関数を使用して、第3のノードのメモリ内に第2の共有秘密暗号化鍵を生成し、この第2の共有秘密暗号化鍵により、第3のノードのメモリ内の第1の共有秘密暗号化鍵を置き換えることと、第3ノードにおけるコントローラにより、ノードシード値に適用される暗号学的にセキュアな一方向性関数を使用して、更新されたノードシード値を生成し、この更新されたノードシード値を第3のノードのメモリ内に格納して、ノードシード値を置き換えることと、を含む。
さらなる実施形態において、この方法は、第1のノードにおけるコントローラにより、第2の共有シード値及び少なくとも1つのインデックス値に適用される暗号学的にセキュアなPRNGを使用して、第3の複数のデータビットを生成することと、第1のノードにおけるコントローラにより、第3の複数のデータビットに基づき、さらに第1のノードにおけるトランシーバを使用して第2のノード及び第3のノードの送信を受信することにより、第2の共有秘密データを同定して、第4の複数のデータビットの論理的補数である第3の複数のデータビットの一部分を同定することと、第1のノードにおけるコントローラにより、第2の共有秘密データに適用される鍵生成関数を使用して、第1のノードのメモリ内に第2の共有秘密暗号化鍵を生成し、この第2の共有秘密暗号化鍵により、第1のノードのメモリ内の第1の共有秘密暗号化鍵を置き換えることと、第1のノードにおけるコントローラにより、第2の共有秘密データに適用される暗号学的にセキュアな一方向性関数を使用して、更新された第2の共有シード値を生成し、この更新された第2の共有シード値を第1のノードのメモリ内に格納して、第2の共有シード値を置き換えることと、を含む。
さらなる実施形態において、この方法は、第3のノードにおけるコントローラにより、第3のノードのメモリ内に格納された第2の共有シード値及び少なくとも1つのインデックス値に適用される暗号学的にセキュアなPRNGを使用して、第3の複数のデータビットを生成することと、第3のノードにおけるコントローラ及びトランシーバにより、共有通信媒体を介して第3の複数のデータビットにおける各ビットを、共有通信媒体に接続された第4のノードからの第4の複数のデータビットの送信と同時に送信し、この第4の複数のデータビットを、第3のノードにおけるトランシーバにより受信することと、第3のノードにおけるコントローラにより、第3のノード及び第4のノードにより同時に送信される第4の複数のデータビットの論理的補数である第3の複数のデータビットの一部分を使用して、第4のノードによる第2の共有秘密データを同定することと、第3のノードにおけるコントローラにより、第2の共有秘密データに適用される暗号学的にセキュアな一方向性関数を使用して、第3のノードのメモリ内に第3の共有シード値を生成し、この第3の共有シード値を第3のノードのメモリ内に格納することと、第3のノードにおけるコントローラにより、第2の共有秘密データに適用される鍵生成関数を使用して、第3のノードのメモリ内に第2の共有秘密暗号化鍵を生成し、この第2の共有秘密暗号化鍵により、第3のノードのメモリ内の第1の共有秘密暗号化鍵を置き換えることと、を含む。
さらなる実施形態において、この方法は、第1のノード、第2のノード、第3のノード及び第4のノードを含むグループを第3のノードが離れたことに応答し、第2のノードにおけるコントローラにより、更新された第1の共有シード値及び少なくとも1つのインデックス値に適用される暗号学的にセキュアなPRNGを使用して、第5の複数のデータビットを生成することと、第1のノード、第2のノード、第3のノード及び第4のノードを含むグループを第3のノードが離れたことに応答し、第2のノードにおけるコントローラ及びトランシーバにより、共有通信媒体を介して第5の複数のデータビットにおける各ビットを、共有通信媒体に接続された第4のノードからの第6の複数のデータビットの送信と同時に送信し、この第6の複数のデータビットを、第2のノードにおけるトランシーバにより受信することと、第2のノードにおけるコントローラにより、第2のノード及び第4のノードにより同時に送信される第6の複数のデータビットの論理的補数である第5の複数のデータビットの一部分を使用して、第4のノードによる第3の共有秘密データを同定することと、第2のノードにおけるコントローラにより、第3の共有秘密データに適用される暗号学的にセキュアな一方向性関数を使用して、更新された第2の共有シード値を生成し、この更新された第2の共有シード値を第2のノードのメモリ内に格納することと、第2のノードにおけるコントローラにより、第3の共有秘密データに適用される鍵生成関数を使用して、第2のノードのメモリ内に第3の共有秘密暗号化鍵を生成し、第3のノードとではなく、第1のノードと第2のノードと第4のノードとの間で、共有通信媒体を介して暗号化通信を可能にすることと、を含む。
さらなる実施形態において、この方法は、第1のノード、第2のノード、第3のノード及び第4のノードを含むグループを第3のノードが離れたことに応答し、第1のノードにおけるコントローラにより、更新された第1の共有シード値及び少なくとも1つのインデックス値に基づき、暗号学的にセキュアなPRNGを使用して、第5の複数のデータビットを生成することと、第1のノードにおけるコントローラにより、第5の複数のデータビットに基づき、さらに第1のノードにおけるトランシーバを使用して第2のノード及び第4のノードの送信を受信することにより、第3の共有秘密データを同定して、第6の複数のデータビットの論理的補数である第5の複数のデータビットの一部分を同定することと、第1のノードにおけるコントローラにより、第3の共有秘密データに適用される暗号学的にセキュアな一方向性関数を使用して、更新された第2の共有シード値を生成し、この更新された第2の共有シード値を第1のノードのメモリ内に格納することと、第1のノードにおけるコントローラにより、第3の共有秘密データに適用される鍵生成関数を使用して、第1のノードのメモリ内に第3の共有秘密暗号化鍵を生成し、第3のノードとではなく、第1のノードと第2のノードと第4のノードとの間で、共有通信媒体を介して暗号化通信を可能にすることと、を含む。
さらなる実施形態において、この方法の暗号学的にセキュアな一方向性関数は、暗号学的ハッシュ関数である。
さらなる実施形態において、この方法の鍵生成関数は、暗号学的にセキュアなPRNGである。
この方法のさらなる実施形態において、第2のノードにおけるトランシーバは、第1の複数のデータビットにおける各ビットを、CANバスの共有通信媒体を介して送信する。
非セキュアな共有通信媒体を使用する通信システムを示す概略図である。 図1のシステムにおける2つのノードのために、前方秘匿性を伴ってセキュアな共有秘密暗号化鍵を生成するための1つのラウンドの1つのプロセスを示すブロック図である。 図1のシステムにおける3つ以上のノードのために、前方秘匿性を伴ってセキュアな共有秘密暗号化鍵を生成するための1つのプロセスを示すブロック図である。 図1のシステムにおいて新たな共有秘密暗号化鍵を生成するインタラクティブな鍵再生成プロセスのための1つのプロセスを示すブロック図である。 図1のシステムにおいて秘密暗号化鍵を共有するノードのグループから1つのノードを取り除くプロセスを示すブロック図である。 図1のシステムにおいて新たな共有秘密暗号化鍵を生成する非インタラクティブな鍵再生成プロセスのための1つのプロセスを示すブロック図である。
詳細な説明
次に、本明細書において開示する実施形態の原理を理解し易くする目的で、図面及び以下に記載された明細書中の説明について言及する。この参照によっても、保護対象の範囲に対する限定を意図するものではない。本開示には、例示した実施形態に対するあらゆる代案や変更も含まれ、また、本開示が属する分野の当業者であれば通常想定するであろう開示された実施形態の原理のさらなる応用も含まれる。
本明細書においては、用語「ビット」とは、一般的に文中では「0」又は「1」として表現される2つの離散値のうちの1つを有することができるバイナリ値のことである。通信システムは、種々の電圧レベル、位相又は他の信号特性を有する信号を生成し、それらによってデータの伝送中、1つのバイナリビットの2つの値が表現される。当該分野においてよく知られているように、ディジタルデータは、数字、文字又は他のデータ形態を表現可能な一連の1つ又は複数のビットを含み、特に複数のビットから成るセットによって、暗号化鍵を形成することができる。本明細書においては、バイナリ値に適用される「論理的補数」又は「反転」という用語は置き換え可能であり、バイナリデータの各ビットの値を変化させるデータセット又は演算のことである(例えば、バイナリシーケンス「101」は「010」の論理的補数である)。あとで詳しく説明するように、セキュアな鍵合意のためのプロトコルは、互いに論理的補数である共有鍵のための対応するビットから成るセットを、それぞれ異なるノードに託す。選択されたノードのセットは、それらのノードすべてが同一の共有鍵を有するように反転演算を実施する。
本明細書においては、用語「鍵」又は「暗号化鍵」とは、データの暗号化及び復号を含む暗号化のオペレーションを実施するために、及び、送信されたデータの認証のために、通信ネットワーク内の2つ以上のノードが使用するビットシーケンスのことである。「共有鍵」とは、互いに通信する2つ以上のノードに既知である鍵のことであるが、共有鍵は、それ以外は攻撃者を含め第三者には既知でない。本明細書において説明する方法及びシステムによって、通信ネットワーク内の2つ以上のノードが共有鍵を生成及び更新して、前方秘匿性をもたらすことができ、これによって、攻撃者が以降の通信ラウンドのときの共有鍵を手に入れる事態が発生したときに、その攻撃者が以前の通信ラウンドのときの過去の共有鍵へのアクセスを得ることができないようにする。
本明細書においては、用語「共有通信媒体」とは、以下のような物理的なネットワークコネクション及びネットワーク通信プロトコルのことであり、即ち、これによれば、単一のノードからのどのような送信も共有通信媒体に接続された他のすべてのノードにより受信される、というようにして、複数のノードがデータを送信及び受信する。共有通信媒体の場合、2つ以上のノードがデータを同時に送信することができる。共有通信媒体は、「非セキュアな」又は「信頼できない」通信チャネルであるとみなされる。その理由は、攻撃者は、共有通信媒体を介して発生するありとあらゆる通信をモニタリングする能力を備えているものとされるからである。
共有通信媒体の2つの非限定的な例には、コントローラエリアネットワークバス(CANバス)のネットワーク通信バス及びプロトコル並びにICバスが含まれる。これらの実施形態の双方において、共有通信媒体に通信可能に接続されたすべてのノードは、特定のノードによる受け取りが意図されていない信号を含め、通信媒体を介して送信されるすべての信号を観察することができる。あとでさらに詳しく説明するように、各ノードはコンピューティングデバイスであって、このデバイスは、1つ又は複数の付加的なノードへの共有通信媒体を介した信号の送信及び受信の双方のために構成されたトランシーバを含む。
CANバスシステムは信号のために差分電圧を使用し、これによれば、2つのノードは、論理値0(ハイレベル電圧)及び論理値1(ローレベル電圧)を同時に送信し、これらのノードのうち一方だけが、CANH導体及びCANL導体上において電圧差の変化を生じさせる。大部分のCANの実施形態の場合、CANH導体及びCANL導体の双方は、デフォルトで予め定められた電圧レベル(例えば、2.5V)となるように駆動され、CANH及びCANL上の電圧間の差がゼロであるならば、又は、ゼロから予め定められた動作閾値内であるならば、送信は「リセッシブ」であると言われ、これは論理値1に対応し、CANバスに接続されたノードは、ゼロ又はローレベルの電圧差に基づき論理値1を検出する。しかしながら、あるノードが論理値0を送信するならば、そのノードはCANH導体を、2.5Vを上回るより高い電圧レベルとなるように駆動し、CANLワイヤを2.5Vを下回るより低い電圧レベルとなるように駆動する。CANH導体とCANL導体との間の電圧差は、CANバスに接続された他のノードによって容易に検出され、これによって、論理値1の信号と論理値0の信号とが検出される。
本明細書においては、用語「暗号学的にセキュアな一方向性関数」又はもっと簡単には「一方向性関数」とは、コンピューティングデバイスにより実行される計算上の関数の1つのタイプのことであり、この関数によって、所定の入力値に対し出力値を生成する計算上効率的なプロセスがもたらされるが、この場合、入力値が十分に広い範囲の可能な入力からランダムに選択されたものとするならば、出力値が与えられたときに元の入力値を導出する逆の演算は計算上、実行不可能である。暗号学的にセキュアな一方向性関数によれば、多項式で束縛された攻撃者は、元の入力を同定するために、より広い範囲の可能な入力にわたり計算上不可能な個数の「総当たり」による一方向性関数の演算を実施しなければならない。本明細書において説明する一方向性関数は、y=g(γ)の記法を使用し、ここで、yは一方向性関数gの出力であり、γは一方向性関数gの入力である。暗号学的にセキュアな一方向性関数は決定論的であるので、各々一方向性関数gを単一の入力γに適用する1つ又は複数のノードによって、首尾一貫した出力値yを再生成することができる。暗号学的にセキュアな一方向性関数gの例には、SHA−256及びSHA−3の暗号学的ハッシュ関数などの暗号学的ハッシュ関数が含まれる。
本明細書においては、用語「暗号学的にセキュアな疑似乱数関数」又はもっと簡単には「疑似乱数関数」(PRNG)とは、コンピューティングデバイスにより実行される計算上の関数の1つのタイプのことであり、この関数は、暗号学的にセキュアなPRNGに2つの入力値k及びindが供給されたときに、多項式で束縛された攻撃者には乱数値とは区別がつかない出力を生成し、ここで、kはそれ自体、攻撃者には事前に既知でないランダムに又は一見ランダムに選択された値であり、indを、あとでさらに詳しく説明するランダムではないインデックス値を含む何らかの任意の値とすることができる。暗号学的にセキュアなPRNG関数fは、数学的にはy=f(k,ind)として記述される。kの値を、事前に生成された暗号化鍵値、ランダムに生成されたデータセット、又は、上述の記載で説明した暗号学的にセキュアな一方向性関数の出力とすることができる。暗号学的にセキュアなPRNGによって、以下のような複数の出力の生成が可能となる。即ち、それらの出力は、それぞれ異なるインデックス値indを用いることによって、単一のシード値kに対する真にランダムな出力値とは区別がつかず、この場合、たとえindの値が攻撃者に既知であるとしても、攻撃者にkの値が明らかになることはない。暗号学的にセキュアなPRNGは決定論的であるので、シード値kとインデックス値indとを用いることによって、同様のランダムな出力を再生成することができる。本明細書において説明する暗号学的にセキュアなPRNGは、暗号学的にセキュアな一方向性関数のタイプでもあるが、暗号学的にセキュアな一方向性関数がすべて、暗号学的にセキュアなPRNGというわけではない。疑似乱数関数の例は、鍵付ハッシュによるメッセージ認証コード(HMAC)関数であり、これには、HMAC−SHA256、又は、先進暗号化システム(AES)のブロック暗号実装などのブロック暗号が含まれる。HMAC関数は、秘密鍵kを共有する関与者によるメッセージ認証の分野において一般的に知られているが(ここではインデックスindはメッセージ)、本明細書において説明する実施形態の場合、HMAC関数は、そうではなくPRNGの実施形態であり、データの認証のためには使用されない。
本明細書においては、用語「鍵生成関数」Kとは、入力値が与えられたときに共有暗号化鍵を生成可能な関数のことである。鍵生成関数Kは、他のタイプの一方向性関数であって、この関数は、攻撃者に共有暗号化鍵の出力値が与えられても元の入力を明らかにはしない。本明細書において説明する一部の実施形態においては、暗号学的にセキュアなPRNG関数fが鍵生成関数Kとしても用いられるけれども、他の鍵生成関数も同様に使用される。
図1には、複数のコンピューティングデバイスを含むシステム100が示されており、これらのコンピューティングデバイスは「ノード」と称され、非セキュアな共有通信媒体を使用して互いに通信を行う。システム100は、複数のノード104A、104B、104C及び104Dまでを含み、これらのノードは共有通信媒体102に各々通信可能に接続されている。図1には、4つのノード104A乃至104Dが例示目的において示されているけれども、システム100の他の実施形態は、少なくとも2つのノード又は5つ以上のより多い個数のノードを含む。図1の例示的な実施形態の場合、システム100はCANバスを使用し、共有通信媒体102によってCANH電気導体及びCANL電気導体が実装されているけれども、選択的な実施形態は、接続されたすべてのノードが共有通信媒体を介して送信される信号を観察できるようにする、共有通信媒体の他の実施形態を用いることができる。図1には攻撃者150も示されている。攻撃者150はシステム100の一部ではないけれども、攻撃者150は、共有通信媒体102を介して発生するすべての通信を観察することができるものとする。これに加えて、一部の例においては、攻撃者150は、現時点の暗号化鍵及びその他のデータを、ノード104A乃至104Dのうちの1つのメモリから抽出することができる。あとでさらに詳しく説明するように、システム100は共有鍵合意を実装し、システムを更新して前方秘匿性をもたらし、それによって、たとえ攻撃者150が以降に生成された暗号化鍵をリカバリしたとしても、攻撃者150が過去の暗号化鍵を使用して暗号化された過去のメッセージを復号できないようにする。
図1には、システム100のノード104Aがより詳しく示されており、他のノード104B乃至104Dは、ノード104Aと同様のコンフィギュレーションを含む。ノード104Aはコントローラ108を含み、このコントローラ108は、CANトランシーバ112及びメモリ120と作動的に接続されている。CANトランシーバ112は、共有通信媒体102におけるCANH導体及びCANL導体に対する接続を含み、これによって、ノード104Aは、他のノード104B乃至104Dに対してデータを送信及び受信することができる。
ノード104Aにおいて、コントローラ108はディジタルロジックデバイスであり、このデバイスは、マイクロプロセッサ、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPAG)、特定用途向け集積回路(ASIC)及び同類のものなど、1つ又は複数の要素を含む。一部の実施形態によれば、コントローラ108は、ハードウェア乱数発生器を含み、あるいは外部のハードウェア乱数発生器又は乱数データを生成するためのエントロピーソースと作動的に接続されている。コントローラ108は格納されている命令データ124を実行し、この命令データ124は、本明細書において説明するオペレーションを実装するためにメモリ120に格納されている。特にコントローラ108は、共有通信媒体102を介してデータを受信及び送信するように、CANトランシーバ112を制御する。コントローラ108は、システム100内の他のノードとのセキュアデータ交換プロセスを実装して、本明細書において説明する前方秘匿性を伴って暗号化鍵を生成するようにも、CANトランシーバ112を制御する。
ノード104Aにおいて、メモリ120はディジタルデータストレージデバイスであって、これには、ランダムアクセスメモリ(RAM)などの揮発性メモリデバイスと、磁気ハードディスク又はソリッドステートデータストレージドライブなどの不揮発性メモリデバイスの双方が含まれる。メモリ120は、命令データ124、ノードシード値130、インデックス値132、1つ又は複数の共有シード値134、3つ以上のノード間のグループ鍵を共有する実施形態のためのラウンドカウンタ136、共有秘密暗号化鍵140、及び、疑似乱数データ144を格納する。ノードシード値130は、真の乱数発生器又は疑似乱数発生器を使用して各ノードにより個別に生成される値であり、ノードシード値130は、システム100内の他のノードと共有されない。共有シード値134は、攻撃者150が共有シード134にアクセスできないようにする通信プロセスを用いて、システム100内の少なくとも2つのノード間で共有される、1つ又は複数のシード値を含む。あとでさらに詳しく説明するように、オペレーション中、コントローラ108は、暗号学的にセキュアな一方向性関数gを適用して、ノードシード値130及び共有シード134の値を、1つのプロセスの一部として更新し、共有秘密暗号化鍵140に対する前方秘匿性を維持する。疑似乱数データ144は、ノードシード値130又は共有シード値134のいずれか及びインデックス値132に基づき、暗号学的にセキュアなPRNGを使用して生成される。図1の実施形態の場合、格納された命令データ124は、プログラミングされた命令を含み、コントローラ108は、この命令を実行して、暗号学的にセキュアな一方向性関数及び暗号学的にセキュアなPRNGを含め、本明細書において説明する関数を実装する。
ノード104Aにおいて、CANトランシーバ112は市販の送信機及び受信機であり、これによって、共有通信媒体102におけるCANHラインとCANLラインの双方への電気的な接続が提供される。CANトランシーバ112は、ノード104Aのオペレーション中、非ドミナントビット(論理値1)及びドミナントビット(論理値0)に対する信号を送出する。CANトランシーバ112は、CANHライン及びCANLラインを介して送信される信号の受信も行い、CANトランシーバ112がアイドル状態のとき(送信していないとき)、又は、アクティブにデータを送信しているときの双方で、他のノードから送信された信号を検出することができる。一部の実施形態において、CANトランシーバ112はコントローラ108と共に、システム・オン・チップ(SoC)コンフィギュレーションにおける単一のソリッドステートデバイスに集積されている。CANトランシーバ112は、ノード104Aが共有通信媒体102を介してデータを送信及び受信できるようにする、より一般的なネットワークインタフェースデバイスの1つの実施形態である。他の実施形態によれば、ネットワークインタフェースデバイスは、ICバス用のトランシーバであり、又は、共有通信媒体を介した通信をもたらす他のトランシーバである。
図1の場合、攻撃者150は、共有通信媒体102におけるCANHライン及びCANLラインと接続されたさらに他のコンピューティングデバイスである。攻撃者150は、共有通信媒体102を介して行われるすべての送信をモニタリングすることができるものとされ、このことが、共有通信媒体102が本明細書においては「非セキュア」であると呼ばれる理由である。一部の例の場合、攻撃者150は、オンボード診断II(OBD−II)コネクタ又は何らかの他の電気的接続といった外部のインタフェースポートを介して、CANバスシステムと接続されている。他の例の場合、攻撃者150は、ある攻撃者により不正侵入されたシステム100内の他のノードである。本明細書において説明する実施形態は前方秘匿性をもたらすものであり、これによって、たとえ攻撃者150がシステム100におけるより新しい暗号化鍵に不正にアクセスできたとしても、過去の鍵及びノード104A乃至104Dからの対応する暗号化された送信を攻撃者150から保護する。
図2には、共有通信媒体に接続されたノードペアのオペレーションのために、前方秘匿性を備えた秘密データ交換プロセスの1つのラウンドを実施するプロセス200が示されている。プロセス200を、2つのノード間で共有暗号化鍵を生成するために、ただ1つのノードペアによって実施することができ、又は、あとで図3においてさらに詳しく説明するように、3つ以上のノードから成るもっと大きなグループにおけるノードペアによって、もっと大きなノードグループ間で共有秘密データを交換し、共有秘密暗号化鍵を生成するためのプロセスの一部として、実施することができる。以下の説明において、1つの機能又はアクションを実施するプロセス200の説明は、1つの通信システム内の他のコンポーネントと共働してその機能又はアクションを実施するために、格納されたプログラム命令を実行する1つ又は複数のコントローラのオペレーションのことを指している。プロセス200を、例示目的において図1のシステム100と関連させて説明する。
プロセス200が始まると、図1のノード104A及び104Bのような2つのノード各々は、シード値及び初期インデックス値を生成して、n個の共有秘密データビットを交換するためのプロセスを開始する(ブロック204)。一例としてノード104Aを用いると、コントローラ108は、ハードウェア又はソフトウェアの乱数発生器を使用してランダムなノードシード値130を生成し、乱数発生器を暗号学的にセキュアなPRNGとすることができ、又は、攻撃者150によっても予測できない値を生成する他の任意の乱数発生器とすることができる。ノード104A乃至104D各々のメモリ120内のノードシード値130は、システム100内の他のノードによっても決して直接的には共有されない。あとでさらに詳しく説明するように、これに続く通信ラウンドにおいて、1つのノードは、以前に生成された共有シード値134を、少なくとも2つのノードから成る1つのグループが共有秘密データを確立した後の初期値として使用するけれども、1つのグループ内の第1のノードペアにおける各ノードは、共有秘密データの第1のセットを確立するための第1のラウンドについて、固有のノードシード値130を使用する。コントローラ108は初期インデックス値132も生成し、この値をゼロ、他の予め定められた値、又は、ランダムに生成された他のインデックス値とすることができる。n個のビットは、攻撃者150が実際的な手法により秘密鍵を推測できてしまうことなく、ノード104A及び104Bが1つの共有秘密暗号化鍵を生成できるようにするために、十分な数値空間をもたらす共有秘密データの量に対応する。nの非限定的な例は、64ビット、80ビット又は128ビットである。
プロセス200が次に進むと、各ノードは暗号学的にセキュアなPRNGを使用して、ノードシード値130及びインデックス値132に基づき、l個の疑似乱数データ144のビットから成るセットを生成する(ブロック208)。上述のように、暗号学的にセキュアなPRNG fは、出力y=f(k,ind)を生成し、ここで、kは、1つのノードが最初に1つのグループに追加されたときであれば、ノードシード値130であり、又は、1つのノードが既に1つのグループ内にあり、そのグループに追加された他のノードと通信しているときであれば、複数の共有シード値134のうちの1つである。項indは、インデックス値132である。コントローラ108は、PRNGによって1つ又は複数の演算を実施し、lビットの長さの疑似乱数データ144を有する出力yを生成する。一部の実施形態によれば、PRNGの各演算は、l=2n個のデータビットを有する疑似乱数出力yを生成する。その理由は、セキュアな手法によりn個のデータビットを首尾よく交換するためには、ノードは平均的に2n個のユニークな相補ビットペアの送信を実施しなければならないからであり、ただし、このことはプロセス200のオペレーションに対する必須要件ではない。上述のように疑似乱数データ144の生成によって、たとえ攻撃者が、疑似乱数データ144におけるすべてのl個のビットを観察できるものとし、かつ、インデックス値132を知っていたとしても、元のシード値130又は134に関するいかなる有用な情報も、攻撃者150にもたらされない。
プロセス200が次に進むと、2つのノードは、疑似乱数データのl個のビットを同時に送信することで、非セキュアな共有通信媒体102を使用してセキュアなデータ交換を実施する(ブロック212)。さらに詳しくは、ノード104A及び104B各々におけるコントローラ108は、疑似乱数データ144の1つのビットを送信し、このビットは、CANトランシーバ112を使用し共有通信媒体102を介した予め定められたビット送信時間にわたり、同時に論理値0又は論理値1である。次いで各ノードは、このビット値の論理的補数を予め定められたビット送信時間にわたり送信する。従って、各ノードは疑似乱数データ144の各ビットを、ビット及びこのビットの論理的補数の2つの送信から成るシーケンスとして送信する。各ノードは2つの論理値のうちの一方を送信することができるので、複数のビットから成るセット各々について、4つの可能な同時送信シーケンスが存在する。即ち、1.ノード104Aは0,1シーケンスを送信する一方、ノード104Bも0,1シーケンスを送信する。2.ノード104Aは0,1シーケンスを送信する一方、ノード104Bは1,0シーケンスを送信する。3.ノード104Aは1,0シーケンスを送信する一方、ノード104Bは0,1シーケンスを送信する。さらに4.ノード104Aは1,0シーケンスを送信する一方、ノード104Bも1,0シーケンスを送信する。
上述のようにCANバスシステムの場合、共有通信媒体102において、論理値0の送信は、CANLラインとCANHラインとの間にドミナント電圧を生成する一方、論理値1の送信は、CANLラインとCANHラインとの間にリセッシブ電圧を生成する。このため、両方のノードが同一のビット(論理値0又は論理値1)を同時に送信したならば、攻撃者150は、CANHライン及びCANLラインにおける電圧レベルを測定することによって、両方のノードが同一のビットを送信していることを特定することができる。従って、両方のノードが0,1/0,1シーケンス又は1,0/1,0シーケンスを送信する上述の状況1及び4の場合、2つのノード104A及び104Bはこれらの送信ビットを破棄し、これらは共有秘密データの一部にはならない。しかしながら、状況2及び3において、2つのノード104A及び104Bがビットの論理的補数のシーケンス0,1/1,0又は1,0/0,1を送信する場合であれば、攻撃者150は、論理値0又は論理値1を送信したノード104A又は104Bの身元を特定することはできない。しかしながら、送信ノード104A及び104B各々におけるコントローラ108は、このシーケンスを特定することができる。その理由は、コントローラ108は、CANトランシーバ112により送信されるビットに関する先験的な情報を有しているからであり、CANトランシーバ112は、CANHライン及びCANLラインにおける全体の電圧レベルもセンシングし、これによって、コントローラ108は、同時送信シーケンス中に第2のノードにより送信されているビットを検出できるようになる。
プロセス200中、2つのノード104A及び104Bは、G個のデータビットをセキュアに交換するために、ブロック212の送信を実施し、その際にビットの総数は、平均的に送信の半分が上述のように破棄されることから、送信のランダムな特性ゆえに変化する。G<nであるときに、2つのノードが疑似乱数データ144のG個のビットを首尾よく交換し、現在の疑似乱数データセットを使い果たしたならば、即ち、2つのノードが、n個の秘密データビットをセキュアな手法によりまだ交換していなかったならば(例えば、n=80ビットに対しG=48ビット)(ブロック216)、プロセス200はデータ交換を続け、このとき各ノードはインデックス値132を変更し(ブロック220)、各ノードは、変更されたインデックス値132及び同一のシード値134を用いて、疑似乱数データ144から成る新たなセットを再生成し(ブロック208)、2つのノードは、新たに生成された疑似乱数データを用いて、同時送信プロセスを再び実施する(ブロック212)。1つの実施形態によれば、各ノードは、インデックス値132を1だけ又は他の予め定められた値だけインクリメントして、変更されたインデックスを生成し、これによって、暗号学的にセキュアなPRNGは新たな疑似乱数データ144を生成することができる。
プロセス200は上述のように、2つのノード104A及び104Bが、n個の共有秘密データビットを交換してしまうまで、継続する(ブロック216)。上述のプロセスは、両方のノードが、互いに論理的補数である疑似ランダムに生成されたビットから成るセットを送信したときのみ(例えば、ノード104Aが1つの0を送信する一方、ノード104Bが1つの1を送信したときのみ、また、その逆に送信したときのみ)、データビットを首尾よく交換するので、取り決めに従い第2のノード104Bは、第1のノード104Aと首尾一貫した共有秘密データセットを生成するために、論理ビットの反転を実施する(例えば、ビット「0110」が「1001」に反転され)、ただし、他の実施形態においては、第1のノード104Aが論理ビットの反転を実施する。
プロセス200の1つの実施形態によれば、ノード104A及び104Bの双方は、暗号学的にセキュアな一方向性関数を使用して共有シード値134の新たな値を生成するためのベースとして、n個の共有データビットを使用し、疑似乱数データ144を生成するためのベースとしてノードシード値130を使用したノードのうちのいずれか一方又は両方が、暗号学的にセキュアな一方向性関数をノードシード値130に適用して、更新されたノードシード値を生成する(ブロック224)。ノード104Aも104Bもセキュアなデータ交換の以前のラウンドには関与していなかった場合に、2つのノード104Aと104Bとの間で秘密データを交換する第1のラウンドにおいて、ノード104A及び104Bの双方におけるコントローラ108は、暗号学的にセキュアな一方向性関数をn個の共有ビットに適用して、メモリ120内に共有シード値134と共に格納される新たなシード値sを生成する。即ち、n個の共有データビットについてs=g(shared bits)。プロセス200において、少なくとも一方のノードが、場合によっては両方のノードが、疑似乱数データ144の生成に対する元のベースとしてノードシード値130を使用し、コントローラ108は、暗号学的にセキュアな一方向性関数をノードシード値130に適用して、更新されたノードシード値130を生成し、このノードシード値130によってメモリ120内の元のノードシード値130が置き換えられる。即ち、Snode=g(Snode)。疑似乱数データ144の生成のために以前に生成された共有シード値134をノードが使用しない状況において、各ノードは、プロセス200の付加的な反復のために更新されたノードシード値130を使用する。さらなる通信ラウンドにおいて、ノードは、疑似乱数データ144又は新たな共有秘密暗号化鍵140を生成するためのベースとして、共有シード値134を使用し、このシード値134を共有する各ノードにおけるコントローラ108は、疑似乱数データ144の他の交換が完了した後、暗号学的にセキュアな一方向性関数gを共有シード値134に適用して、共有シード値134を更新し、これによって、古い共有シード値134がメモリ120内に格納されない、ということが保証される。本明細書においては、ノードシード値130又は共有シード値134について「更新する」又は「更新された値」を生成するということに対する言及は、過去のノードシード値130又は共有シード値134を削除し、古い値をそれよりも新しい更新された値で置き換えるプロセスのことであり、この更新された値は、システム100において使用される一方向性関数の特性ゆえに、過去の値を導出するために使用することはできない。過去のノードシード値130又は共有シード値134をノード104A又はシステム100内の他のノードのメモリ120から削除することによって、過去の暗号化メッセージを保護するための前方秘匿性がもたらされる。それというのも、攻撃者150は、メモリ120から削除されてしまっている過去の共有秘密暗号化鍵を生成するために使用された、削除済みのシード値セットをリカバリすることができないからである。
プロセス200中、2つのノードだけが最終グループ内にあるならば、単一の共有シードだけしか存在しないが、3つ以上のノードを含む実施形態の場合には、あとでさらに詳しく説明するように、n個のデータビットを交換するノードペアと、以前にグループ内にいた他の何らかのノードとの間において、各シードが共有される。ノードペア間の秘密データ交換の付加的なラウンド中に付加的なノードが追加されたならば、各ラウンドのための共有シード値134が、新たなラウンドカウンタ値136に関連づけられて個別に格納され、これによって、シード値を受信したノードにおいて一連のラウンドを介して生成される共有シード値134の記録が維持される。
プロセス200中、このプロセス200における2つのノードが、グループ内の最終ノードペアであるならば(ブロック228)、それらのノード各々が、n個の共有秘密データビットに鍵生成関数を適用することによって、共有秘密暗号化鍵140も生成する(ブロック232)。上述の例の場合、ノード104A及び104Bが、2つのノードのグループ内の最終のただ1つのノードペアであり、各ノードにおけるコントローラ108は、暗号学的にセキュアなPRNGなどの鍵生成関数をn個の共有秘密データビットに適用して、共有秘密暗号化鍵140を生成する。新たに生成された共有秘密暗号化鍵140によって、もし存在するならば、以前の暗号化通信セッションのときのメモリ120内の過去の共有秘密暗号化鍵140が置き換えられ、これによって、共有秘密暗号化鍵140を共有する2つ以上のノード間の過去の暗号化通信セッションのときの暗号化データに対する前方秘匿性がもたらされる。共有秘密シード値134の生成、ノードシード値130の更新、及び、もし生成されるならば共有秘密暗号化鍵140の生成を、ペアにおける2つのノードがn個の共有秘密データビットを交換した時点で、任意の順序で又は同時に生じさせることができる。これに加えて、ペアにおけるノード各々におけるコントローラ108は、もし生成されるならば共有秘密シード値134及び共有秘密暗号化鍵140の生成に応じて、メモリ120からn個の共有秘密データビットを削除する。
上述のように、1つの通信ラウンドに対する共有シード値134は、n個の共有秘密ビットに適用される暗号学的にセキュアな一方向性関数を使用して生成され(s=g(shared bits))、他方、共有秘密暗号化鍵140は、n個の共有秘密ビットに適用される暗号学的にセキュアなPRNGを使用して生成される(k=f(shared bits、0))。従って、共有シード値134及び共有秘密暗号化鍵140が双方共に、同様のn個の共有秘密データビットに基づき生成される一方、シード値と共有秘密暗号化鍵とは互いに異なっており、攻撃者150は、共有シード値134が与えられても共有秘密暗号化鍵140を再生成できないし、又は、その逆も不可能である。さらに、ノード各々におけるコントローラ108はn個の共有秘密データビットを削除し、疑似乱数データ144の生成のためにノードシード値130を使用するいずれのノードも、暗号学的にセキュアな一方向性関数を使用してノードシード値130を更新する。よって、秘密暗号化鍵140がプロセス200の後続の反復中にメモリ120内でそれよりも新しい鍵によって置き換えられた時点で、各ノードのメモリ120には、秘密暗号化鍵140を計算するために攻撃者が使用できるいかなる情報も含まれず、これによって、システム100に対する前方秘匿性がもたらされる。
プロセス200の完了後、2つ以上のノードが共有秘密暗号化鍵140を使用し、他の点においては、当該分野に周知の1つ又は複数の対称鍵暗号化方式を用いて、暗号化通信セッションを実施する。例えば、共有秘密暗号化鍵140を様々なブロック暗号又はストリーム暗号による暗号化方式と共に使用することができ、これらの暗号化方式には、限定するわけではないがAESが含まれ、これによって、各ノードは、共有通信媒体102を介して送信するためにメッセージを暗号化することができ、かつ、共有通信媒体102から受信した他のノードからのメッセージを復号することができる一方、攻撃者150は暗号化されたデータを観察することしかできず、元のメッセージの平文の内容を事実上、リカバリすることはできない。共有秘密鍵140は、単一の暗号化通信セッションのために使用され、この場合、ノード104A乃至104Bと、暗号化通信セッション中に共有秘密暗号化鍵140を使用する他の何らかのノードとの間で交換されるデータの量を、システム100のセキュリティの制約と、暗号化鍵140を使用する暗号化方式の暗号化特性とに、依存させることができる。一部の実施形態の場合、システム100内のノードは、予め定められた個数の暗号化送信又は予め定められた期間後、存在する暗号化通信セッションが満了すると、新たな共有暗号化鍵を生成する。暗号化通信セッション後、2つのノード104A及び104Bが暗号化鍵を更新して前方秘匿性を維持し、これによって、あとでさらに詳しく説明するように、過去の共有鍵と暗号化データとが保護される。
図2のプロセス200は、共有秘密データを生成する単一の通信ラウンドを実施するためのシステム100内の2つのノードから成るペアと、1つの共有秘密暗号化鍵を生成するためにプロセス200をやはり実施することができる2つのノードを含むグループのオペレーションを説明している。一部の例の場合、3つ以上のノードから成るグループが、前方秘匿性を伴って1つの共有秘密暗号化鍵を用いて通信する必要がある。これらの実施形態の場合、前方秘匿性をもたらしながら、3つ以上のノード間で共有秘密暗号化鍵を確立するために、複数の通信ラウンド(グループ内のN個のノードについてN−1回のラウンド)が発生する。図3には、1つの共有通信媒体に接続された3つ以上のノードから成るグループによる、前方秘匿性を備えたセキュアな共有秘密暗号化鍵合意手順のためのプロセス300が示されている。以下の説明において、1つの機能又はアクションを実施するプロセス300の説明は、1つの通信システム内の他のコンポーネントと共働してその機能又はアクションを実施するために、格納されたプログラム命令を実行する1つ又は複数のコントローラのオペレーションのことを指している。プロセス300は、上述の図2のプロセス200の要素を使用し、3つ以上のノードから成るグループのために、前方秘匿性を伴って効率的な暗号化鍵生成プロセスを可能にする付加的なオペレーションを含む。プロセス300を、例示目的において図1のシステム100と関連させて説明する。以下で説明する例の場合、ノード104A、104B及び104Cが、攻撃者150又はシステム100内の他のノードには利用できない1つの共通の共有暗号化鍵を生成する。
プロセス300が始まると、1つの暗号化鍵を共有するグループ内のN個のノード各々(例えば、ノード104A、104B、104C)が、初期ノードシード値130、インデックス値132、及び、ラウンドカウンタ136を生成する(ブロック304)。一例としてノード104Aを用いると、コントローラ108は、ハードウェア又はソフトウェアの乱数発生器を使用してランダムなノードシード値130を生成し、乱数発生器を暗号学的にセキュアなPRNGとすることができ、又は、攻撃者150によっても予測できない値を生成する他の任意の乱数発生器とすることができる。コントローラ108は初期インデックス値132も生成し、この値を、ゼロ、他の予め定められた値、又は、ランダムに生成された他のインデックス値とすることができる。n個のビットは、攻撃者が実際的な手法により秘密鍵を推測できてしまうことなく、ノード104A、104B及び104Cが1つの共有秘密暗号化鍵を生成できるようにするために、十分な数値空間をもたらす共有秘密データの量に対応する。プロセス200と同様に、nの非限定的な例は64ビット、80ビット又は128ビットである。ラウンドカウンタ136は、ゼロ又は他の予め定められた数値に初期化され、プロセス300において、発生したノード間のペアごとのデータ交換のラウンドの経過を追うために、また、シーケンスにおける以前のノードペアが、以前のラウンドのときの1つ又は複数のシード値134をメモリ120内に格納していることから、ラウンドごとに発生する共有シード値134を追跡するために、用いられる。ラウンドカウンタ136は、グループの共有秘密暗号化鍵を生成するために、プロセス300中にノードのグループが交換する1つ又は複数のシード値を追跡する。
プロセス300が次に進むと、第1のノードペア(この例ではノード104A及び104B)が、セキュアな手法により共有秘密データを確立する(ブロック308)。ノード104A及び104Bは、図2のブロック208乃至224の処理を参照しながら上述の記載で説明した同様の手法により、疑似乱数秘密データを交換し、これには疑似乱数ビット及びこれに続くそれらのビットの論理的補数の同時送信が含まれ、これによって、非セキュアな共有通信媒体102を介したノード104Aと104Bとの間のセキュアなデータ交換が可能となる。1つの実施形態によれば、第1のノードペアは第1のラウンドの共有シード値134を確立し、これは暗号学的にセキュアな一方向性関数をn個の共有データビットに適用することによって、プロセス300の第1のラウンドに関連づけられる(ブロック312)。例えば、ノード104Aにおいて、コントローラ108はシード値
Figure 2020532910
を生成する。同様にノード104Bは、
Figure 2020532910
を生成し、ノード104A及び104Bの双方は同一の共有シード値134を生成し、このシード値134は、メモリ120内でラウンドカウンタ値136と関連づけられる(
Figure 2020532910
)。
Figure 2020532910
の表記は、もっと一般的には
Figure 2020532910
として表現され、この場合、各シード値は、シード値を生成したノードのnode idと、ラウンドカウンタ136に対応する数値roundの双方に関連づけられる。ブロック312の処理において一方向性関数を使用することによって、両方のノード104Aと104Bとに首尾一貫した共有シード値がもたらされ、これによって、後続の秘密データ交換オペレーションにおいて第1のノードになる第2のノード104Bが、ノード104Aとの以前のデータ交換のときのn個の共有データビットを再送信しない、ということが保証される。他の実施形態において、ノード104A及び104B、並びに、グループ内の最終ノードペアを除く他のノードペアは、共有シード値134のために直接、n個の共有秘密データビットを使用し、他のノードを追加するための今後のラウンドにおいて必要とされる場合にだけ、又は、以前に生成された共有シード値134をPRNGへの入力として使用して、付加的な疑似乱数データ144を生成した後、共有シード値134を更新する他の今後のオペレーションにおいて必要とされる場合にだけ、暗号学的にセキュアな一方向性関数を適用する。この実施形態の場合、n個の共有秘密データビットを、付加的な通信のベースとして使用することができる。それというのも、ノード104A及び104Bは、n個の共有秘密データビットを明らかにはしない他の一方向性関数である暗号学的にセキュアなPRNGを使用して、疑似乱数データ144を生成するからである。しかしながら、最終共有シード値の生成を観察するグループ内のノードすべてと共有される、グループ内の少なくとも最終ノードペアのための共有シード値134は、一方向性関数(
Figure 2020532910
)を使用し、ここで、N−lは、最終ラウンドを表す。それというのも、最終ラウンドのときの共有ビットは、共有シード134と共有秘密暗号化鍵140の双方に対するベースとして用いられるからである。これに加えて、上述のように、ノード104A及び104Bの各々は、暗号学的にセキュアな一方向性関数をノードシード値130に適用し、これはシステム100内の他のノードとは決して共有されず、これによって、プロセス300の後続の反復に対し前方秘匿性がもたらされる。
プロセス300が次に進むと、ノード各々はラウンドカウンタ136を更新し、以前のラウンドのときの第2のノードが、次のラウンドにおいては第1のノードになる(ブロック316)。図1の例の場合、第1のラウンドのときの第2のノード104Bが、次のラウンドにおいては第1のノードになり、このノードはノード104Cを第2のラウンドにおける第2のノードとして受け入れる。以前のラウンドのときの「第2の」ノードを次のラウンドにおいて第1のノードとして使用するという説明は、例示目的のために約束事として用いられる。もっと広く言えば、次のラウンドにおいて「第1の」ノードになる「第2の」ノードを、最新のラウンドに関与した2つのノードのうちのいずれかとすることができ、例えば、図1の例であればノード104Aと104Bのうちのいずれかである。
プロセス300が次に進むと、次のノードペア(例えば、ノード104B及び104C)は、プロセス300の次のラウンドのための他の共有秘密シードを確立し、この場合、第1のノード(この例においてはノード104B)は、以前のラウンドのときの共有シードを、暗号学的にセキュアなPRNG関数への入力のベースとして用いる(ブロック320)。第1のノード104Bは、予め定められた値(例えば、0)からスタートする、又は、システム100内のノードすべてに送信される他の数値からスタートするインデックス値132(ind)も使用し、その結果、以前のラウンドのときのすべてのノードは、第1のノード104Bにより使用されるl個の疑似乱数データのビット、即ち、
Figure 2020532910
から成る同様のセットを計算することができる。グループに追加された第2のノード(例えば、ノード104Aと104Bのグループに追加されたノード104C)におけるコントローラ108は、ランダムに生成されたノードシード値130を使用して、他のl個の疑似乱数データ144のビットを生成し、グループに追加された新たなノードにおける疑似乱数データ144は、ノード104B及び104Cが、上述の記載で説明した同時送信プロセスを実施するまで、グループ内に存在するノードにはわからない。かくして、秘密データセットを以前に共有していたノードすべて(例えば、ノード104A)は、CANトランシーバ112を使用して、次のノードペア104Bと104Cとの間のn個のビットの次の交換を観察することができ、その理由は、以前のグループのときのノードにおけるコントローラ108は、第1のノード104Bにより送信されるデータについて先験的な知識を有しているからであり、共有通信媒体102を介したノード104B及び104Cの同時送信を観察することによって、次のノードペアによりどのビットが破棄され、どのビットが保持されるのかを含め、n個の交換されるビットから成る次のセットを特定することができる。
プロセス300が次に進むと、次のノードペア及び以前のラウンドに関与したグループ内のノードすべては、暗号学的にセキュアな一方向性関数を使用して、次のラウンドのための共有シード値134を確立する(ブロック324)。特に、ノード104Bと104Cとの間の最新のラウンドのためのn個のビットから成るセットが、ノード104A乃至104Cの各々によって共有され、各ノードにおけるコントローラ108は、一方向性関数gへの入力としてこのn個のビットを用いて、次のラウンドのための共有シード値134を生成する。上述のように、次のラウンドにおける第2のノード(例えば、ノード104C)も、暗号学的にセキュアな一方向性関数をノードシード値130に適用して、ノードシード値130を更新する。他のノードをグループに追加するための付加的なラウンドのたびに、1つ又は複数の以前のラウンドに関与したノードすべては、次のラウンドのシード値134をラウンドカウンタ136に関連づけてメモリ120内に格納し、付加的なノード各々がグループに追加されたときに各ラウンドのために使用されたシード値の記録を維持する。上述のように、初期ラウンドのときのノード104A及び104Bは、メモリ120内に第1のラウンドのためのラウンドインデックス136に関連づけて別個の共有シード値134も格納しており、この場合、ラウンドごとのシード値は、個々のラウンドのための共有秘密データに適用される一方向性暗号化関数の出力である(例えば、第1のラウンドにおけるノード104A及び104Bにより共有されたn個の共有秘密データビットについて
Figure 2020532910
である)。しかしながら、新たに追加されたノード104Cのコントローラ108は、ノード104Cのメモリ120内の最新のラウンドインデックス136のときの共有シード値134だけしか格納せず(例えば、
Figure 2020532910
)、ノード104Aと104Bとの間のデータ交換のときに生成された以前の共有シード値を受信しない。あとでさらに詳しく説明するように、ノードのメモリ120は、ラウンドカウンタ136に関連づけて共有シード値134のヒストリを格納しており、これによって、以降の時点でグループからあるノードを取り除くための効率的なプロセスがもたらされる。疑似乱数データ144を生成するために第1のノードのためのベースとして用いられた以前のラウンドのときの共有シード値134(例えば、ノード104Bにおける共有シード
Figure 2020532910
)について、前のラウンドの共有シード値134へのアクセスを有するすべてのノード(例えば、ノード104A及び104B)におけるコントローラ108は、疑似乱数データ144の他の交換が完了した後、暗号学的にセキュアな一方向性関数gを前のラウンドの共有シード値134に適用して、前のラウンドの共有シード値134を更新し、いかなるノードのメモリ120にも古い共有シード値134が格納されていない、ということを保証する(ノード104Aにおける
Figure 2020532910
及びノード104Bにおける
Figure 2020532910
)。
プロセス300は、グループに加わるどのような付加的なノードについても、ブロック316乃至324において上述のように付加的なノードの追加を続ける(ブロック328)。付加的なノードが存在しなくなった時点で(ブロック328)、グループ内のノード各々は、グループ内のノードすべてにより観察されるグループ内の最終ノードペア間の最終ラウンドのときの共有秘密データセットに基づき、共有秘密鍵を生成する(ブロック332)。各ノードは、プロセス200において上述の記載で説明したブロック232の処理と同様の手法により、ブロック332の処理を実施する。1つの実施形態の場合、ノード各々のコントローラ108は、N−1の番号が振られた最終ラウンドにおいて最終ノードペア(例えば、ノード104B及び104C)間で交換される共有秘密データshared bitsroundN−1に、鍵生成関数を適用する。1つの実施形態の場合、鍵生成関数は暗号学的にセキュアなPRNGであって、これが共有秘密データshared bitsroundN−1及び予め定められたインデックス値(例えば、0又はノードすべてにより使用される他の値)に適用されて、最終共有秘密暗号化鍵140が生成される。グループの各ノードにおけるコントローラ108は、出力、即ち、k=f(shared bitsroundN−1,0)のすべて又は一部分を、ノード104A乃至104C各々の間の第1の暗号化通信セッションのための初期秘密鍵140として使用して、第1の共有暗号化鍵140を生成する。
グループ内のノードが上述のプロセス300を実施した後、グループに新たなノードを追加することには、ブロック316乃至328を参照しながら上述の記載において説明した同様のプロセスを使用して、グループに最も新たに追加されたノード(例えば、ノード104C)を付加的なペアにおける第1のノードとして用いること、及び、ブロック332を参照しながら説明したプロセスを使用して、ノードすべてのために新たな共有暗号化鍵を生成すること、が含まれる。例えば、システム100の場合であれば、ノード104A乃至104Cが共有秘密鍵を生成した後、ノード104A乃至104Cのグループにノード104Dを追加することができる。ノード104A乃至104Cすべてによりメモリ内に格納されているラウンドカウンタ136に関連づけられたノード104Cにおける最新ラウンドのシード値134が、新たなノード104Dを追加するセキュアなデータ交換プロセスに対し付加的なPRNGデータを生成するための初期シード値として用いられる。ノード104A乃至104Bはこのとき、第1のラウンド(ノード104A乃至104B)、第2のラウンド(ノード104B乃至104C)及び第3のラウンド(ノード104C乃至104D)について、ラウンドカウンタ136に関連づけてシード値134の複数ラウンドのヒストリを格納している。ノード104Cは、第2のラウンド(ノード104B乃至104C)及び第3のラウンド(ノード104C乃至104D)のみについて、ラウンドカウンタ136に関連づけてシード値134を格納している。ノード104Dは、第3のラウンド(第3のラウンドのノード104C乃至104D)のみについて、ラウンドカウンタ136に関連づけてシード値134を格納している。ノード104A乃至104Dすべては、ノード104C乃至104D間で交換されるn個のデータビットに適用される暗号学的にセキュアなPRNGを使用して、新たな共有秘密暗号化鍵140を生成し、これによって、ノード104A乃至104Cすべてのための共有暗号化鍵が生成される。
3つ以上のノードから成るグループが、図2及び図3のプロセスを実施した後、一部の状況の場合には、グループ内のノードがインタラクティブな鍵再生成プロセスを実施し、このプロセスによって、グループ内のノードすべてのための新たな共有秘密暗号化鍵140が生成される。このプロセスはプロセス300とは異なっており、その理由は、インタラクティブなプロセスにおいて、グループ内のノードの一部は共有通信媒体102を介してビットを送信するけれども、3つ以上のノードから成るグループの場合にインタラクティブな鍵再生成プロセスによれば、本来のプロセス300の場合のように、グループ内のノードすべてがデータを送信しなくてもよいからである。図4には、インタラクティブな鍵再生成プロセス400が示されている。プロセス400によれば、グループ内のノードすべてがプロセス300を反復する必要なく、グループ内のノードすべてが新たな最終ラウンドの共有シードと共有暗号化鍵とを再生成できるようになる。以下の説明において、1つの機能又はアクションを実施するプロセス400の説明は、1つの通信システム内の他のコンポーネントと共働してその機能又はアクションを実施するために、格納されたプログラム命令を実行する1つ又は複数のコントローラのオペレーションのことを指している。プロセス400を、例示目的において図1のシステム100と関連させて説明する。
プロセス400が始まると、プロセス300の間にグループに追加された最終ノードペアの第1のノード、及び、最終ノード以外のグループ内の他のノードすべてが、疑似乱数データ144から成る新たなセットを生成するためのベースとして、プロセス300の最終ラウンドのための共有シード値134を使用する一方、最終ペアにおける第2のノードは、共有秘密データの他の交換について疑似乱数データ144から成る新たなセットを生成するためのベースとして、以前に更新されたノードシード値130を使用する(ブロック404)。例えば、図1のシステム100の場合、あるグループが、104A乃至104B、104B乃至104C、104C乃至104Dの順序で、ペアとして追加されたノード104A乃至104D各々を含むならば、このときノード104Cは最終ペアの第1のノードであり、ノード104Dは最終ペアの第2のノードである。ノード104A乃至104C各々におけるコントローラ108は、最終ラウンドのシード値
Figure 2020532910
を、暗号学的にセキュアなPRNGへの入力として、予め定められたカウンタ値と共に使用する一方、ノード104Dにおけるコントローラ108は、上述の記載で説明したプロセス300の最終ラウンドのときに暗号学的にセキュアな一方向性関数を使用して以前に更新されたノードシード値130を使用する。かくしてプロセス400は、インタラクティブな鍵再生成のために暗号学的にセキュアなPRNGへの入力を使用し、これによって、前方秘匿性がもたらされる。なぜならば、以前のラウンド中に使用された疑似乱数データとは無関係な疑似乱数データをノードが生成するからであり、このことにより以前のラウンドのときの共有秘密暗号化鍵が攻撃者150から保護される。
プロセス400が次に進むと、ノード104C及び104Dは、プロセス300において上述の記載で説明したセキュアなデータ交換を実施し、暗号学的にセキュアなPRNGの出力を入力のシード値及びインデックス値と共に使用して各ノードにおけるコントローラ108が生成する疑似乱数データ144に基づき、n個のビットを交換する(ブロック408)。図3において上述したように、第1のノード104Cは、他のノード104A乃至104Bに既知の最終ラウンドのシード値134を使用し、さらに他のノード104A乃至104Bに事前に既知であるか又はプロセス400中に他のノード104A乃至104Bに送信されたインデックス値132を使用する。ノード104A乃至104B各々におけるコントローラ108は、ノード104Cのコントローラ108と同様の疑似乱数データを生成し、すべての3つのノードは、最終ノード104Dとの交換プロセス中、n個のビットから成る同様のセットを受信する。ノード104Dは、疑似乱数データを生成するためのPRNGへの入力として以前に使用されていなかったノードシード値130を使用するので、新たに交換されるn個のビットは、過去のシード値及び暗号化鍵とは関係ない、ノード104A乃至104Dすべてにおける新たな最終ラウンドの共有シード値134及び共有秘密暗号化鍵140のためのベースを成す。
プロセス400が次に進むと、グループ内のノード104A乃至104D各々は、n個の共有ビットに基づき新たな共有秘密暗号化鍵140を生成し、さらに更新されたシード値を生成して、付加的な通信ラウンド中の前方秘匿性をもたらす(ブロック412)。グループの各ノードにおけるコントローラ108は、1つの実施形態において暗号学的にセキュアなPRNGからの出力、即ち、k=f(shared bits,0)のすべて又は一部分である鍵生成関数を使用して、次の共有暗号化鍵140を生成し、これによって、ノード104A乃至104D各々の間の暗号化通信の次のラウンドのために更新された秘密暗号化鍵140を生成する。共有秘密暗号化鍵140に対する更新プロセスの一部分として、ノード104A乃至104D各々におけるコントローラ108は、プロセス400の実施よりも前に使用された過去の共有暗号化鍵140の削除も行い、これによって、ノード104A乃至104D間の以前の暗号化された通信セッションに対する前方秘匿性がもたらされる。ノード各々におけるコントローラ108は、付加的な通信ラウンドに対する前方秘匿性を維持するために、n個の共有ビットから成るセットに適用される暗号学的にセキュアな一方向性関数、即ち、
Figure 2020532910
を使用し、最終ラウンドのカウンタ136に関連づけて最終ラウンドのシード値134の更新も行い、これによって、過去の最終ラウンドの共有シード値134が削除されて、以前の暗号化通信セッションに対する前方秘匿性がもたらされる。最終ペアにおける第2のノード(例えば、ノード104D)も、ノードシード値130を更新し、即ち、Snode=g(Snode)である。上述のように、プロセス400によってグループ内のノードすべてが、今後の暗号化通信セッションにおける前方秘匿性のために、新たな共有秘密暗号化鍵及びシードを生成できるようになる一方、ただ1つのノードペアだけが共有通信媒体102を介してデータを送信するだけでよい。プロセス400を、2つのノードしか含まないグループによって実施することもでき、これには、暗号学的にセキュアな一方向性関数を使用して共有シード値134を更新する2つのノードについて、前方秘匿性のさらなる利点が伴う。
3つ以上のノードから成るグループがプロセス300を実施した後、秘密暗号化鍵を共有していた複数のノードから成るグループを1つのノードが離れる可能性がある。図5には、グループ内の残留ノードのためのプロセス500が示されている。このプロセスは、前方秘匿性をもたらすように、また、メモリ120内に共有シード値134と共有秘密暗号化鍵140とを保持しているものとされている離脱したノードが、グループ内の残留ノード間の今後の暗号化通信を復号できないように、新たな共有暗号化鍵を再生成する。以下の説明において、1つの機能又はアクションを実施するプロセス500の説明は、1つの通信システム内の他のコンポーネントと共働してその機能又はアクションを実施するために、格納されたプログラム命令を実行する1つ又は複数のコントローラのオペレーションのことを指している。プロセス500を、例示目的において図1のシステム100と関連させて説明する。
プロセス500が始まると、以前に1つの秘密暗号化鍵を共有していた複数のノードから成るグループを1つのノードが離れる(ブロック504)。図1の例示的な実施形態の場合、ノード104A乃至104Dから成るグループが1つの秘密暗号化鍵140を共有しており、1つのノード104Cがこのグループを離れる。図1の例の場合、グループは、104A乃至104B、104B乃至104C、104C乃至104Dの順序で、ペアとして追加されたノード104A乃至104D各々を含む。従って、上述の記載で説明したプロセス300において、ノード104A乃至104Bの後でありノード104Dの前に、ノード104Cがグループに追加される。1つのノードがグループを離れると、残留ノードすべて(例えば、ノード104A、104B及び104D)が、共有秘密暗号化鍵140を削除する。なぜならば、古い共有秘密暗号化鍵は、ノード104Cがグループを離れた後には、付加的な暗号化オペレーションのためには使用されないからである。これに加えて、以前のノード(例えば、ノード104A及び104B)は、グループを離れたノード及びプロセス300によるすべての以降のノードを含むラウンドカウンタ値136に対応する共有シード値134のすべてを削除する。この例においては、ノード104Aと104Bの双方が、ノード104Cを追加した第2のラウンドのための共有シード値
Figure 2020532910
と、ノード104Dを追加した第3のラウンドのための共有シード値
Figure 2020532910
とを削除する。これに加えて、グループを離れたノードの後に追加されたノード(例えば、ノード104D)は、共有シード値134のすべてを削除する。なぜならば、プロセス500はそれらの値を、グループを離れたノードには既知でない新たな共有シード値と置き換えるからである。
プロセス500が次に進むと、残留ノードは、残留ノードグループ内における最終ノード(例えば、ノード104B)からスタートして、無効化されたがまだグループのメンバであるグループ内のノードをグループに追加して戻す(ブロック508)。前述の例の場合であれば、ノード104Bが、無効化されたノード104Dを含むがグループを離れたノード104Cを除く新たなペアにおいて、第1のノードとなる。ノード104Bは、ノード104Cがグループに追加された後、プロセス300中に更新された共有シード値134(シード
Figure 2020532910
)を使用するので、更新された共有シード値134は、ノード104Cとの通信用に疑似乱数データ144を生成するために使用されたことはなかった。従って、ノード104Bは、ノード104Dとのデータ交換プロセスのために疑似乱数データを生成し、この疑似乱数データは、ノード104C又は攻撃者150によっても観察できないが、グループ内に残留しているノード104Aによって観察できる。ノード104Dは第2のノードとして振る舞い、以前に生成されたいかなる疑似乱数データとも関係ない疑似乱数データ144を生成するためのベースとして、ノード104Dがプロセス300においてグループに追加されたときと同様にして、以前に更新されたノードシード値130を使用する。残留ノードすべてが更新された共有シード値134を確立すると、グループ内の残留ノード104A乃至104B及び104Dは、図3におけるブロック332の処理に戻り、グループを離れてしまったノード104Cには暗号化されたデータが明かされることなく、データを暗号化及び復号する、新たな共有秘密暗号化鍵140を生成する。
プロセス500においてシステム100は、第1のノードペアにおける1つのノードがグループを離れた状況、又は、グループに加えられるべき最終ノードがグループを離れた状況に対処するために、それぞれ異なるオペレーションを実施する。グループ内の第1のノードペアにおけるノードのうちの一方(例えば、ノード104A又は104Bのいずれか)がグループを離れた状況においては、グループ全体が無効化され、システム100はその代わりに、グループ内の第1のペアからのノードの離脱に対処するために、上述の記載で説明したプロセス300を残留ノードだけを使用して実施する。グループに追加すべき最終ノードがグループを離れた状況においては(例えば、ノード104Cではなくノード104Dがグループを離れたならば)、グループ内の残留ノードは、最終ラウンドよりも前にラウンドカウンタ136に対応する共有シード値134(例えば、ノード104A乃至104Cについてそれぞれシード値
Figure 2020532910
)を使用して、新たな共有秘密暗号化鍵140を生成することができ、最終シード値の値(シード値
Figure 2020532910
)を無効にすることができる。残留ノードは、更新された共有シード値134を使用して、あとでさらに詳しく説明する非インタラクティブな鍵再生成オペレーションを実施することができる。上述のように、グループに追加された第1のノードペア内にはないグループをあるノードが離れた状況において、プロセス500は、グループの残留ノードにおいて新たな共有秘密暗号化鍵140を確立するためのより効率的なプロセスをもたらす。それというのも、離れたノードよりも前にグループに加わったいかなるノードも(例えば、ノード104A及び104B)、取り除かれたノード104Cの追加よりも前のラウンドのときのシード値134を更新することができるからであり、前方秘匿性を伴って新たな共有暗号化鍵を生成するために、付加的なデータを交換し合う必要がないからである。
一部の実施形態の場合、1つのグループ内の複数のノードから成るセットが、非インタラクティブな鍵再生成オペレーションにおいて、新たな共有暗号化鍵140を生成する。このオペレーションによれば、ノードすべてが図2及び図3のプロセスを使用して既に共有シードを確立しているならば、1つ又は複数のノードペアが新たな共有秘密データを交換する必要がない。図6には、非インタラクティブな鍵再生成プロセス600がさらに詳しく示されている。以下の説明において、1つの機能又はアクションを実施するプロセス600の説明は、1つの通信システム内の他のコンポーネントと共働してその機能又はアクションを実施するために、格納されたプログラム命令を実行する1つ又は複数のコントローラのオペレーションのことを指している。プロセス600を、例示目的において図1のシステム100と関連させて説明する。
プロセス600が始まると、グループ内の各ノードは、最終ラウンドの共有シード値134に適用される鍵生成関数を使用して、新たな共有秘密暗号化鍵140を生成し、各ノードは、古い共有秘密暗号化鍵140を削除する(ブロック604)。例えば、システム100の場合、ノード104A、104B及び104Cがグループ内にあるならば、各ノードにおけるコントローラ108は、新たな共有秘密暗号化鍵140を生成し、予め定められたインデックス値と共に暗号学的にセキュアなPRNGを最終ラウンドの共有シード値134、即ち、
Figure 2020532910
に適用することにより、古い鍵を置き換える。選択的な実施形態によれば、新たな共有秘密暗号化鍵を生成するために、異なる鍵生成関数を使用することができる。同様のオペレーションを、2つ以上のノードを含む任意のグループについて生じさせることができる。図2及び図3において上述の記載で説明したように、最終ラウンドの共有シード値134は、共有秘密データの最終ラウンドに適用される暗号学的にセキュアな一方向性関数を使用して生成され、暗号学的にセキュアな一方向性関数の特性ゆえに、新たに生成された共有秘密暗号化鍵140を、過去の共有秘密暗号化鍵140を再生成するために使用することはできず、このことによって、新たに生成された共有秘密暗号化鍵140が攻撃者150に明らかにされたときに、過去の共有秘密暗号化鍵に対する前方秘匿性がもたらされる。
プロセス600が次に進むと、グループ内の各ノードは、最終ラウンドのシード値に適用される暗号学的にセキュアな一方向性関数を使用して、最終ラウンドのシード値を更新し、これにより共有シード値を用いた付加的なオペレーションに対し前方秘匿性がもたらされる(ブロック608)。上述の例の場合、ノード104A乃至104C各々におけるコントローラ108は、最終ラウンドのために更新された共有シード値134を生成し、この共有シード値134は、暗号学的にセキュアな一方向性関数g、即ち、
Figure 2020532910
を使用して、以前の共有シード値を置き換える。このオペレーションによっても前方秘匿性がもたらされ、それというのも、攻撃者150は、新たな共有秘密暗号化鍵140又は過去の共有秘密暗号化鍵の値を導出するために、更新された共有シード値134を使用することができないからである。
自明であるように、これまで開示してきた特徴及び機能並びにその他の特徴及び機能の変形又はそれらの代替案を所望のように組み合わせて、さらに他の多くの種々のシステム、アプリケーション又は方法を実現することができる。現時点においては予見できない又は予期されない様々な代替案、修正、変形又は改善を、後から当業者が行うことができ、これらも以下の特許請求の範囲に含まれるものとする。

Claims (20)

  1. 前方秘匿性を備えた共有秘密合意のための方法であって、
    第1のノードにおけるコントローラにより、メモリ内に格納されている第1のノードシード値及び少なくとも1つのインデックス値に適用される暗号学的にセキュアな疑似乱数発生器(PRNG)を使用して、第1の複数のデータビットを生成することと、
    前記第1のノードにおける前記コントローラ及びトランシーバにより、共有通信媒体を介して前記第1の複数のデータビットにおける各ビットを、前記共有通信媒体に接続された第2のノードからの第2の複数のデータビットの送信と同時に送信し、前記第2の複数のデータビットを、前記第1のノードにおける前記トランシーバにより受信することと、
    前記第1のノードにおける前記コントローラにより、前記第1のノード及び前記第2のノードにより同時に送信される前記第2の複数のデータビットの論理的補数である前記第1の複数のデータビットの一部分を使用して、前記第2のノードによる共有秘密データを同定することと、
    前記第1のノードにおける前記コントローラにより、前記共有秘密データに適用される暗号学的にセキュアな一方向性関数を使用して、共有シード値を生成し、前記共有シード値を前記メモリ内に格納することと、
    前記第1のノードにおける前記コントローラにより、前記第1のノードシード値に適用される前記暗号学的にセキュアな一方向性関数を使用して、更新されたノードシード値を生成し、前記更新されたノードシード値を前記メモリ内に格納して、前記第1のノードシード値を置き換えることと、
    を含む、
    前方秘匿性を備えた共有秘密合意のための方法。
  2. 前記第1のノードにおける前記コンローラにより、前記共有秘密データに適用される鍵生成関数を使用して、第1の共有秘密暗号化鍵を生成し、前記第1の共有秘密暗号化鍵を前記メモリ内に格納すること、
    をさらに含む、
    請求項1に記載の方法。
  3. 前記第1のノードにおける前記コントローラにより、前記共有シード値に適用される前記鍵生成関数を使用して、第2の共有秘密暗号化鍵を生成し、前記第2の共有秘密暗号化鍵を前記メモリ内に格納して、前記第1の共有秘密暗号化鍵を置き換えることと、
    前記第1のノードにおける前記コントローラにより、前記共有シード値に適用される前記暗号学的にセキュアな一方向性関数を使用して、更新された共有シード値を生成し、前記更新された共有シード値を前記メモリ内に格納して、前記共有シード値を置き換えることと、
    をさらに含む、
    請求項2に記載の方法。
  4. 前記第1の複数のデータビットを送信することは、
    前記第1のノードにおける前記トランシーバにより、前記第1の複数のデータビットにおける各ビットを、2つの送信から成る1つのシーケンスとして送信すること
    をさらに含み、
    第1の送信は、前記第1の複数のデータビットにおけるビットから成り、第2の送信は、前記第1の複数のデータビットにおけるビットの論理的補数から成る、
    請求項1に記載の方法。
  5. 前記暗号学的にセキュアな一方向性関数は、暗号学的ハッシュ関数である、
    請求項1に記載の方法。
  6. 前記鍵生成関数は、前記暗号学的にセキュアなPRNGである、
    請求項2に記載の方法。
  7. 前記第1のノードにおける前記トランシーバは、前記第1の複数のデータビットにおける各ビットを、CANバスの共有通信媒体を介して送信する、
    請求項1に記載の方法。
  8. 前方秘匿性を備えた共有秘密合意のための方法であって、
    第2のノードにおけるコントローラにより、前記第2のノードのメモリ内に格納されている第1の共有シード値及び少なくとも1つのインデックス値に適用される暗号学的にセキュアな疑似乱数発生器(PRNG)を使用して、第1の複数のデータビットを生成し、前記第1の共有シード値を、共有通信媒体に接続された前記第2のノードと第1のノードとの間で共有することと、
    前記第2のノードにおける前記コントローラ及びトランシーバにより、前記共有通信媒体を介して前記第1の複数のデータビットにおける各ビットを、前記共有通信媒体に接続された第3のノードからの第2の複数のデータビットの送信と同時に送信し、前記第2の複数のデータビットを、前記第2のノードにおける前記トランシーバにより受信することと、
    前記第2のノードにおける前記コントローラにより、前記第2のノード及び前記第3のノードにより同時に送信される前記第2の複数のデータビットの論理的補数である前記第1の複数のデータビットの一部分を使用して、前記第3のノードによる第1の共有秘密データを同定することと、
    前記第2のノードにおける前記コントローラにより、前記第1の共有秘密データに適用される暗号学的にセキュアな一方向性関数を使用して、第2の共有シード値を生成し、前記第2の共有シード値を前記メモリ内に格納することと、
    前記第2のノードにおける前記コントローラにより、前記第1の共有シード値に適用される前記暗号学的にセキュアな一方向性関数を使用して、更新された第1の共有シード値を生成し、前記更新された第1の共有シード値を前記メモリ内に格納して、前記第1の共有シード値を置き換えることと、
    を含む、
    前方秘匿性を備えた共有秘密合意のための方法。
  9. 前記第1のノードにおけるコントローラにより、前記第1のノードのメモリ内に格納された前記第1の共有シード値及び前記少なくとも1つのインデックス値に適用される前記暗号学的にセキュアなPRNGを使用して、前記第1の複数のデータビットを生成することと、
    前記第1のノードにおける前記コントローラにより、前記第1の複数のデータビットに基づき、さらに前記第1のノードにおける前記トランシーバを使用して前記第2のノード及び前記第3のノードの送信を受信することにより、前記第1の共有秘密データを同定して、前記第2の複数のデータビットの論理的補数である前記第1の複数のデータビットの一部分を同定すること、
    前記第1のノードにおける前記コントローラにより、前記第1の共有秘密データに適用される前記暗号学的にセキュアな一方向性関数を使用して、前記第2の共有シード値を生成し、前記第2の共有シード値を前記メモリ内に格納することと、
    前記第1のノードにおける前記コントローラにより、前記第1の共有シード値に適用される前記暗号学的にセキュアな一方向性関数を使用して、前記更新された第1の共有シード値を生成し、前記更新された第1の共有シード値を前記第1のノードの前記メモリ内に格納して、前記第1の共有シード値を置き換えることと、
    をさらに含む、
    請求項8に記載の方法。
  10. 前記第1のノードにおける前記コントローラにより、前記第1の共有秘密データに適用される鍵生成関数を使用して、前記第1のノードの前記メモリ内に第1の共有秘密暗号化鍵を生成することと、
    前記第2のノードにおける前記コントローラにより、前記第1の共有秘密データに適用される前記鍵生成関数を使用して、前記第2のノードの前記メモリ内に前記第1の共有秘密暗号化鍵を生成することと、
    をさらに含む、
    請求項9に記載の方法。
  11. 前記第2のノードにおける前記コントローラにより、前記第2の共有シード値に適用される前記鍵生成関数を使用して、第2の共有秘密暗号化鍵を生成し、前記第2の共有秘密暗号化鍵を前記メモリ内に格納して、前記第1の共有秘密暗号化鍵を置き換えることと、
    前記第2のノードにおける前記コントローラにより、前記第2の共有シード値に適用される前記暗号学的にセキュアな一方向性関数を使用して、更新された第2の共有シード値を生成し、前記更新された第2の共有シード値を前記第2のノードの前記メモリ内に格納して、前記第2の共有シード値を置き換えることと、
    をさらに含む、
    請求項10に記載の方法。
  12. 前記第2のノードにおける前記コントローラにより、前記第2の共有シード値及び前記少なくとも1つのインデックス値に適用される前記暗号学的にセキュアなPRNGを使用して、第3の複数のデータビットを生成することと、
    前記第2のノードにおける前記コントローラ及び前記トランシーバにより、前記共有通信媒体を介して前記第3の複数のデータビットにおける各ビットを、前記共有通信媒体に接続された第3のノードからの第4の複数のデータビットの送信と同時に送信し、前記第4の複数のデータビットを、前記第2のノードにおける前記トランシーバにより受信することと、
    前記第2のノードにおける前記コントローラにより、前記第2のノード及び前記第3のノードにより同時に送信される前記第4の複数のデータビットの論理的補数である前記第3の複数のデータビットの一部分を使用して、前記第3のノードによる第2の共有秘密データを同定することと、
    前記第2のノードにおける前記コントローラにより、前記第2の共有秘密データに適用される前記鍵生成関数を使用して、前記第2のノードの前記メモリ内に第2の共有秘密暗号化鍵を生成し、該第2の共有秘密暗号化鍵により、前記第2のノードの前記メモリ内の前記第1の共有秘密暗号化鍵を置き換えることと、
    前記第2のノードにおける前記コントローラにより、前記第2の共有秘密データに適用される前記暗号学的にセキュアな一方向性関数を使用して、更新された第2の共有シード値を生成し、前記更新された第2の共有シード値を前記第2のノードの前記メモリ内に格納することと、
    をさらに含む、
    請求項10に記載の方法。
  13. 前記第3のノードにおけるコントローラにより、前記第3のノードのメモリ内に格納されたノードシード値及び前記少なくとも1つのインデックス値に適用される前記暗号学的にセキュアなPRNGを使用して、前記第4の複数のデータビットを生成することと、
    前記第3のノードにおける前記コントローラにより、前記第2のノード及び前記第3のノードにより同時に送信される前記第4の複数のデータビットの論理的補数である前記第3の複数のデータビットの一部分を使用して、前記第2の共有秘密データを同定することと、
    前記第3のノードにおける前記コントローラにより、前記第2の共有秘密データに適用される前記鍵生成関数を使用して、前記第3のノードの前記メモリ内に前記第2の共有秘密暗号化鍵を生成し、前記第2の共有秘密暗号化鍵により、前記第3のノードの前記メモリ内の前記第1の共有秘密暗号化鍵を置き換えることと、
    前記第3ノードにおける前記コントローラにより、前記ノードシード値に適用される前記暗号学的にセキュアな一方向性関数を使用して、更新されたノードシード値を生成し、前記更新されたノードシード値を前記第3のノードの前記メモリ内に格納して、前記ノードシード値を置き換えることと、
    をさらに含む、
    請求項12に記載の方法。
  14. 前記第1のノードにおけるコントローラにより、前記第2の共有シード値及び前記少なくとも1つのインデックス値に適用される前記暗号学的にセキュアなPRNGを使用して、前記第3の複数のデータビットを生成することと、
    前記第1のノードにおける前記コントローラにより、前記第3の複数のデータビットに基づき、さらに前記第1のノードにおける前記トランシーバを使用して前記第2のノード及び前記第3のノードの送信を受信することにより、前記第2の共有秘密データを同定して、前記第4の複数のデータビットの論理的補数である前記第3の複数のデータビットの一部分を同定することと、
    前記第1のノードにおける前記コントローラにより、前記第2の共有秘密データに適用される前記鍵生成関数を使用して、前記第1のノードの前記メモリ内に前記第2の共有秘密暗号化鍵を生成し、前記第2の共有秘密暗号化鍵により、前記第1のノードの前記メモリ内の前記第1の共有秘密暗号化鍵を置き換えることと、
    前記第1のノードにおける前記コントローラにより、前記第2の共有秘密データに適用される前記暗号学的にセキュアな一方向性関数を使用して、前記更新された第2の共有シード値を生成し、前記更新された第2の共有シード値を前記第1のノードの前記メモリ内に格納して、前記第2の共有シード値を置き換えることと、
    をさらに含む、
    請求項12に記載の方法。
  15. 前記第3のノードにおけるコントローラにより、前記第3のノードのメモリ内に格納された前記第2の共有シード値及び前記少なくとも1つのインデックス値に適用される前記暗号学的にセキュアなPRNGを使用して、第3の複数のデータビットを生成することと、
    前記第3のノードにおける前記コントローラ及びトランシーバにより、前記共有通信媒体を介して前記第3の複数のデータビットにおける各ビットを、前記共有通信媒体に接続された第4のノードからの第4の複数のデータビットの送信と同時に送信し、前記第4の複数のデータビットを、前記第3のノードにおける前記トランシーバにより受信することと、
    前記第3のノードにおける前記コントローラにより、前記第3のノード及び前記第4のノードにより同時に送信される前記第4の複数のデータビットの論理的補数である前記第3の複数のデータビットの一部分を使用して、前記第4のノードによる第2の共有秘密データを同定することと、
    前記第3のノードにおける前記コントローラにより、前記第2の共有秘密データに適用される前記暗号学的にセキュアな一方向性関数を使用して、前記第3のノードの前記メモリ内に第3の共有シード値を生成し、前記第3の共有シード値を前記第3のノードの前記メモリ内に格納することと、
    前記第3のノードにおける前記コントローラにより、前記第2の共有秘密データに適用される前記鍵生成関数を使用して、前記第3のノードの前記メモリ内に第2の共有秘密暗号化鍵を生成し、前記第2の共有秘密暗号化鍵により、前記第3のノードの前記メモリ内の前記第1の共有秘密暗号化鍵を置き換えることと、
    をさらに含む、
    請求項10に記載の方法。
  16. 前記第1のノード、前記第2のノード、前記第3のノード及び前記第4のノードを含むグループを前記第3のノードが離れたことに応答し、前記第2のノードにおける前記コントローラにより、前記更新された第1の共有シード値及び前記少なくとも1つのインデックス値に適用される前記暗号学的にセキュアなPRNGを使用して、第5の複数のデータビットを生成することと、
    前記第1のノード、前記第2のノード、前記第3のノード及び前記第4のノードを含む前記グループを前記第3のノードが離れたことに応答し、前記第2のノードにおける前記コントローラ及び前記トランシーバにより、前記共有通信媒体を介して前記第5の複数のデータビットにおける各ビットを、前記共有通信媒体に接続された前記第4のノードからの第6の複数のデータビットの送信と同時に送信し、前記第6の複数のデータビットを、前記第2のノードにおける前記トランシーバにより受信することと、
    前記第2のノードにおける前記コントローラにより、前記第2のノード及び前記第4のノードにより同時に送信される前記第6の複数のデータビットの論理的補数である前記第5の複数のデータビットの一部分を使用して、前記第4のノードによる第3の共有秘密データを同定することと、
    前記第2のノードにおける前記コントローラにより、前記第3の共有秘密データに適用される前記暗号学的にセキュアな一方向性関数を使用して、更新された第2の共有シード値を生成し、前記更新された第2の共有シード値を前記第2のノードの前記メモリ内に格納することと、
    前記第2のノードにおける前記コントローラにより、前記第3の共有秘密データに適用される前記鍵生成関数を使用して、前記第2のノードの前記メモリ内に第3の共有秘密暗号化鍵を生成し、前記第3のノードとではなく、前記第1のノードと前記第2のノードと前記第4のノードとの間で、前記共有通信媒体を介して暗号化通信を可能にすることと、
    をさらに含む、
    請求項15に記載の方法。
  17. 前記第1のノード、前記第2のノード、前記第3のノード及び前記第4のノードを含む前記グループを前記第3のノードが離れたことに応答し、前記第1のノードにおける前記コントローラにより、前記更新された第1の共有シード値及び前記少なくとも1つのインデックス値に基づき、前記暗号学的にセキュアなPRNGを使用して、前記第5の複数のデータビットを生成することと、
    前記第1のノードにおける前記コントローラにより、前記第5の複数のデータビットに基づき、さらに前記第1のノードにおける前記トランシーバを使用して前記第2のノード及び前記第4のノードの送信を受信することにより、前記第3の共有秘密データを同定して、前記第6の複数のデータビットの論理的補数である前記第5の複数のデータビットの一部分を同定することと、
    前記第1のノードにおける前記コントローラにより、前記第3の共有秘密データに適用される前記暗号学的にセキュアな一方向性関数を使用して、前記更新された第2の共有シード値を生成し、前記更新された第2の共有シード値を前記第1のノードの前記メモリ内に格納することと、
    前記第1のノードにおける前記コントローラにより、前記第3の共有秘密データに適用される前記鍵生成関数を使用して、前記第1のノードの前記メモリ内に前記第3の共有秘密暗号化鍵を生成し、前記第3のノードとではなく、前記第1のノードと前記第2のノードと前記第4のノードとの間で、前記共有通信媒体を介して暗号化通信を可能にすることと、
    をさらに含む、
    請求項16に記載の方法。
  18. 前記暗号学的にセキュアな一方向性関数は、暗号学的ハッシュ関数である、
    請求項8に記載の方法。
  19. 前記鍵生成関数は、前記暗号学的にセキュアなPRNGである、
    請求項9に記載の方法。
  20. 前記第2のノードにおける前記トランシーバは、前記第1の複数のデータビットの各ビットを、CANバスの共有通信媒体を介して送信する、
    請求項8に記載の方法。
JP2020512502A 2017-08-29 2018-08-29 非セキュアな共有通信媒体を使用する前方秘匿性を備えた線形鍵合意のための方法及びシステム Active JP6903223B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762551609P 2017-08-29 2017-08-29
US62/551,609 2017-08-29
PCT/US2018/048535 WO2019046420A1 (en) 2017-08-29 2018-08-29 METHODS AND SYSTEMS FOR TRANSFER SECRET LINEAR KEY AGREEMENT USING UNSECURED SHARED COMMUNICATION MEDIUM

Publications (2)

Publication Number Publication Date
JP2020532910A true JP2020532910A (ja) 2020-11-12
JP6903223B2 JP6903223B2 (ja) 2021-07-14

Family

ID=65438084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020512502A Active JP6903223B2 (ja) 2017-08-29 2018-08-29 非セキュアな共有通信媒体を使用する前方秘匿性を備えた線形鍵合意のための方法及びシステム

Country Status (6)

Country Link
US (1) US10833851B2 (ja)
JP (1) JP6903223B2 (ja)
CN (1) CN111247769B (ja)
DE (1) DE112018003506T5 (ja)
GB (1) GB2578408B (ja)
WO (1) WO2019046420A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019210418A1 (en) * 2018-05-04 2019-11-07 Crypto4A Technologies Inc. Digital data comparison filter, system and method, and applications therefor
US11032271B2 (en) * 2019-02-01 2021-06-08 Rsa Security Llc Authentication based on shared secret seed updates for one-time passcode generation
US11223473B2 (en) 2019-02-01 2022-01-11 EMC IP Holding Company LLC Client-driven shared secret updates for client authentication
KR102372682B1 (ko) * 2019-10-23 2022-03-10 한국과학기술원 주기적 시더 계승을 이용한 p2p 네트워크 기반 검증 가능한 난수 생성 방법 및 시스템
EP3917087B1 (en) * 2020-05-26 2023-04-19 Nxp B.V. Controller and transceiver
US12003635B2 (en) * 2021-12-02 2024-06-04 Salesforce, Inc. Centrally rotating private/public encryption keys in a large scale system

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440524A (en) 1994-02-01 1995-08-08 Integrated Device Technology, Inc. Method and apparatus for simuilataneous long writes of multiple cells of a row in a static ram
US6021203A (en) * 1996-12-11 2000-02-01 Microsoft Corporation Coercion resistant one-time-pad cryptosystem that facilitates transmission of messages having different levels of security
GB2365153A (en) 2000-01-28 2002-02-13 Simon William Moore Microprocessor resistant to power analysis with an alarm state
DE10128573A1 (de) 2001-06-13 2003-01-02 Infineon Technologies Ag Verhindern der unerwünschten externen Erfassung von Operationen in integrierten Digitalschaltungen
US7424615B1 (en) 2001-07-30 2008-09-09 Apple Inc. Mutually authenticated secure key exchange (MASKE)
US7113759B2 (en) 2002-08-28 2006-09-26 Texas Instruments Incorporated Controller area network transceiver having capacitive balancing circuit for improved receiver common-mode rejection
CA2413690A1 (en) 2002-12-06 2004-06-06 Ibm Canada Limited-Ibm Canada Limitee Zero knowledge document comparison between mutually distrustful parties
US7532104B2 (en) 2003-05-06 2009-05-12 Rsa Security, Inc. Low-complexity cryptographic techniques for use with radio frequency identification devices
EP1673898A1 (en) * 2003-09-22 2006-06-28 Impsys Digital Security AB Data communication security arrangement and method
CN100493247C (zh) * 2004-02-27 2009-05-27 北京三星通信技术研究有限公司 高速分组数据网中接入认证方法
US7444380B1 (en) * 2004-07-13 2008-10-28 Marc Diamond Method and system for dispensing and verification of permissions for delivery of electronic messages
DE102005009491A1 (de) 2005-02-24 2006-08-31 Volkswagen Ag Transceiver für ein Steuergerät
US8670564B1 (en) * 2006-08-14 2014-03-11 Key Holdings, LLC Data encryption system and method
WO2009090675A1 (en) 2008-01-14 2009-07-23 Power-One Italy S.P.A. A method for assigning addresses to a plurality of electronic devices connected to a communication channel
KR20090126166A (ko) 2008-06-03 2009-12-08 엘지전자 주식회사 트래픽 암호화 키 생성 방법 및 갱신 방법
NZ589294A (en) * 2008-06-06 2012-07-27 Ericsson Telefon Ab L M Cryptographic key generation using parameters based on a set of generated keys, an incrementing sequence number and an anonymity key
US20100042841A1 (en) * 2008-08-15 2010-02-18 Neal King Updating and Distributing Encryption Keys
US8072284B2 (en) 2009-03-30 2011-12-06 Ricoh Co., Ltd. Split delay-line oscillator for secure data transmission
CN102142961B (zh) 2010-06-30 2014-10-08 华为技术有限公司 一种网关、节点和服务器进行鉴权的方法、装置及系统
EP2541427A1 (en) 2011-07-01 2013-01-02 Siemens Aktiengesellschaft Broadcast serial bus termination
JP5435513B2 (ja) * 2012-01-27 2014-03-05 トヨタ自動車株式会社 暗号通信システム、鍵配布装置、暗号通信方法
EP2634956B1 (en) * 2012-02-29 2016-11-02 BlackBerry Limited Communicating an identity to a server
US8955157B2 (en) 2012-07-03 2015-02-10 Honeywell International Inc. Method and apparatus for differential power analysis protection
EP2712123A1 (en) 2012-09-20 2014-03-26 Robert Bosch Gmbh Standard CAN implementation tolerating CAN FD frames
US8983069B2 (en) 2013-03-14 2015-03-17 Robert Bosch Gmbh System and method for counter mode encrypted communication with reduced bandwidth
US9141823B2 (en) * 2013-03-15 2015-09-22 Veridicom, Sa De Cv Abstraction layer for default encryption with orthogonal encryption logic session object; and automated authentication, with a method for online litigation
US9502889B2 (en) 2013-07-29 2016-11-22 Myson Century, Inc. Controller area network node transceiver
US9288048B2 (en) 2013-09-24 2016-03-15 The Regents Of The University Of Michigan Real-time frame authentication using ID anonymization in automotive networks
US10452504B2 (en) 2013-10-02 2019-10-22 Nxp B.V. Controller area network (CAN) device and method for emulating classic CAN error management
JP2015138456A (ja) * 2014-01-23 2015-07-30 アプリックスIpホールディングス株式会社 通信システム、ビーコン装置、および、通信方法
DE102015207220A1 (de) 2014-04-28 2015-10-29 Robert Bosch Gmbh Verfahren zur Erzeugung eines Geheimnisses oder eines Schlüssels in einem Netzwerk
DE102014212228A1 (de) 2014-06-25 2015-12-31 Robert Bosch Gmbh Verfahren und Vorrichtung zum Erzeugen eines geheimen Schlüssels
US10211990B2 (en) * 2014-07-25 2019-02-19 GM Global Technology Operations LLC Authenticating messages sent over a vehicle bus that include message authentication codes
EP3220572B1 (en) 2014-11-13 2019-12-18 Panasonic Intellectual Property Corporation of America Key management method, vehicle-mounted network system and key management device
US9621160B2 (en) 2015-03-05 2017-04-11 Micron Technology, Inc. Circuits for impedance adjustment having multiple termination devices with switchable resistances and methods of adjusting impedance
DE102015209496A1 (de) * 2015-05-22 2016-11-24 Robert Bosch Gmbh Verfahren zur Erzeugung eines Geheimnisses oder Schlüssels in einem Netzwerk
DE102015220038A1 (de) 2015-05-22 2016-11-24 Robert Bosch Gmbh Verfahren zur Erzeugung eines Geheimnisses oder Schlüssels in einem Netzwerk
US10095634B2 (en) 2015-05-22 2018-10-09 Nxp B.V. In-vehicle network (IVN) device and method for operating an IVN device
US9807618B2 (en) * 2015-06-03 2017-10-31 Qualcomm Incorporated Performance enhancements for frequency reuse and time division multiplexing in a licensed assisted access system
EP3326322B1 (en) * 2015-07-17 2019-12-18 Robert Bosch GmbH Method and system for secure key generation over an insecure shared communication medium
KR101989950B1 (ko) * 2017-04-28 2019-06-17 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법

Also Published As

Publication number Publication date
CN111247769B (zh) 2023-04-28
GB2578408B (en) 2022-04-20
JP6903223B2 (ja) 2021-07-14
GB202001958D0 (en) 2020-04-01
US10833851B2 (en) 2020-11-10
GB2578408A (en) 2020-05-06
US20190068366A1 (en) 2019-02-28
DE112018003506T5 (de) 2020-04-02
CN111247769A (zh) 2020-06-05
WO2019046420A1 (en) 2019-03-07

Similar Documents

Publication Publication Date Title
JP6903223B2 (ja) 非セキュアな共有通信媒体を使用する前方秘匿性を備えた線形鍵合意のための方法及びシステム
US10397195B2 (en) Method and system for shared key and message authentication over an insecure shared communication medium
KR102312565B1 (ko) 네트워크에서 비밀 또는 키 생성 방법
CN110622465B (zh) 用于使针对控域网的群组密钥协定的侧信道泄漏最小化的方法
CN113259329B (zh) 一种数据不经意传输方法、装置、电子设备及存储介质
CN109891423B (zh) 使用多个控制机构的数据加密控制
WO1990009009A1 (en) Data carrier and data communication apparatus using the same
IL202726A (en) A system and method for creating and sending scattered and multi-purpose information
KR101608815B1 (ko) 폐쇄형 네트워크에서 암복호화 서비스 제공 시스템 및 방법
CN112084525B (zh) 一种分布式密钥加密方法、装置、电子设备和存储介质
CN112740615A (zh) 多方计算的密钥管理
CN108075879A (zh) 一种数据加密和解密的方法、装置及系统
CN111837372A (zh) 用于连接的电动工具的隐私保持数据检索的系统和方法
JP2006506859A (ja) 量子暗号プロトコル
WO2021213631A1 (en) Improved cryptographic method and system
EP3213457A1 (en) Key splitting
CN114338005A (zh) 一种数据传输加密方法、装置、电子设备及存储介质
CN112398818B (zh) 一种软件激活方法及其相关装置
US10841085B2 (en) Method for generating a secret or a key in a network
JP2023157174A (ja) 暗号通信システム、暗号通信装置および暗号通信方法
US7327845B1 (en) Transmission of encrypted messages between a transmitter and a receiver utilizing a one-time cryptographic pad
CN114710359B (zh) 工业网络动态密钥管理方法及工业网络加密通信方法
CN113726507B (zh) 数据传输方法、系统、装置及存储介质
CN108141361B (zh) 用于建立共同机密的方法和设备
CN112804365B (zh) 一种用于安全多方计算的隐私数据分发方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200428

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210430

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210622

R150 Certificate of patent or registration of utility model

Ref document number: 6903223

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250