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

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

▶ アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドの特許一覧

特表2024-545040リンク暗号化のための自動鍵ローリング
<>
  • 特表-リンク暗号化のための自動鍵ローリング 図1
  • 特表-リンク暗号化のための自動鍵ローリング 図2
  • 特表-リンク暗号化のための自動鍵ローリング 図3
  • 特表-リンク暗号化のための自動鍵ローリング 図4
  • 特表-リンク暗号化のための自動鍵ローリング 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-05
(54)【発明の名称】リンク暗号化のための自動鍵ローリング
(51)【国際特許分類】
   H04L 9/08 20060101AFI20241128BHJP
【FI】
H04L9/08 C
H04L9/08 E
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024532441
(86)(22)【出願日】2022-11-22
(85)【翻訳文提出日】2024-06-17
(86)【国際出願番号】 US2022050708
(87)【国際公開番号】W WO2023107278
(87)【国際公開日】2023-06-15
(31)【優先権主張番号】17/547,866
(32)【優先日】2021-12-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ドナルド プレストン マシューズ
(57)【要約】
リンク暗号化のための自動鍵ローリングが記載される。記載される技術によれば、データパケットは、第1のデータ暗号化鍵を使用して、通信リンクの第1のエンドポイントにおいて暗号化される。暗号化データパケットは、通信リンクを介して第2のエンドポイントに通信される。第1のエンドポイントにおいて、第1のエンドポイント及び第2のエンドポイントの両方で既知である鍵ローリングイベントが検出される。鍵ローリングイベントの検出に応じて、第1のデータ暗号化鍵は、通信リンクを介して通信されるデータパケットを暗号化するための第2のデータ暗号化鍵にローリングされる。1つ以上の実施形態では、第2のエンドポイントは、第1のエンドポイントから受信した第2のデータ暗号化鍵で暗号化されたデータパケットを暗号化解除するために、鍵ローリングイベントに応じて第1のデータ暗号化鍵から第2のデータ暗号化鍵にローリングするように構成されている。
【選択図】図1
【特許請求の範囲】
【請求項1】
方法であって、
通信リンクの第1のエンドポイントにおいて、第1のデータ暗号化鍵を使用してデータパケットを暗号化することと、
暗号化されたデータパケットを、前記通信リンクを介して第2のエンドポイントに通信することと、
前記第1のエンドポイントにおいて、前記第1のエンドポイント及び前記第2のエンドポイントの両方において既知である鍵ローリングイベントを検出することと、
前記鍵ローリングイベントを検出したことに応じて、前記第1のデータ暗号化鍵から第2のデータ暗号化鍵にローリングすることと、を含む、
方法。
【請求項2】
前記第1のエンドポイントにおいて、第1の鍵導出鍵を受信することと、
前記第1のエンドポイントにおいて、鍵導出関数を前記第1の鍵導出鍵に適用することによって、前記第1のデータ暗号化鍵及び第2の鍵導出鍵を生成することと、を含む、
請求項1の方法。
【請求項3】
前記第2のエンドポイントは、前記第1の鍵導出鍵を受信し、前記鍵導出関数を前記第1の鍵導出鍵に適用することによって、前記第1のデータ暗号化鍵及び前記第2の鍵導出鍵を生成する、
請求項2の方法。
【請求項4】
前記第1のエンドポイントにおいて、前記鍵導出関数を前記第2の鍵導出鍵に適用することによって、前記第2のデータ暗号化鍵及び第3の鍵導出鍵を生成することを含む、
請求項2の方法。
【請求項5】
前記第2のエンドポイントは、前記鍵導出関数を前記第2の鍵導出鍵に適用することによって、前記第2のデータ暗号化鍵及び前記第3の鍵導出鍵を生成するように構成されている、
請求項4の方法。
【請求項6】
前記第2のデータ暗号化鍵及び第3の鍵導出鍵は、前記鍵ローリングイベントを検出することに応じて、前記第1のエンドポイント及び前記第2のエンドポイントにおいて生成される、
請求項3の方法。
【請求項7】
前記第2のデータ暗号化鍵及び第3の鍵導出鍵は、前記鍵ローリングイベントを検出する前に、前記第1のエンドポイント及び前記第2のエンドポイントにおいて生成される、
請求項3の方法。
【請求項8】
前記第2のエンドポイントは、前記鍵ローリングイベントに応じて、前記第1のデータ暗号化鍵から前記第2のデータ暗号化鍵にローリングするように構成されている、
請求項3の方法。
【請求項9】
前記第1のエンドポイントにおいて、前記第2のデータ暗号化鍵を使用してデータパケットを暗号化することと、
前記第2のデータ暗号化鍵を使用して暗号化された暗号化データパケットを、前記通信リンクを介して前記第2のエンドポイントに通信することと、を含む、
請求項1の方法。
【請求項10】
前記鍵ローリングイベントを検出することは、前記第1のエンドポイントから前記第2のエンドポイントに通信されるデータパケットの数が閾値を満たすのを検出することを含む、
請求項1の方法。
【請求項11】
前記鍵ローリングイベントを検出することは、前記第1のエンドポイントから前記第2のエンドポイントに通信される暗号化データパケットのフロー制御ユニットの数が閾値を満たすのを検出することを含む、
請求項1の方法。
【請求項12】
システムであって、
通信リンクを介して第1のエンドポイントと第2のエンドポイントとの間で通信するためにデータパケットを暗号化及び暗号化解除するためのデータ暗号化鍵を生成する鍵生成器と、
鍵ローリングイベントを検出する鍵ローリングイベント検出器と、
前記鍵ローリングイベント検出器によって前記鍵ローリングイベントが検出されたことに応じて、前記鍵生成器によって生成された現在のデータ暗号化鍵から前記鍵生成器によって生成された次のデータ暗号化鍵にローリングする暗号化エンジンと、を備える、
システム。
【請求項13】
前記鍵生成器、前記鍵ローリングイベント検出器、及び、前記暗号化エンジンのインスタンスは、前記第1のエンドポイント及び前記第2のエンドポイントの各々に実装されている、
請求項12のシステム。
【請求項14】
前記鍵ローリングイベントは、前記第1のエンドポイント及び前記第2のエンドポイントの両方において、前記鍵ローリングイベント検出器において既知である、
請求項13のシステム。
【請求項15】
前記鍵ローリングイベント検出器が前記鍵ローリングイベントを検出したことに応じて、
前記第1のエンドポイントにおける暗号化エンジンは、前記通信リンクを介して前記第2のエンドポイントに通信するためのデータパケットを、前記次のデータ暗号化鍵を使用して暗号化し、
前記第2のエンドポイントにおける暗号化エンジンは、前記第1のエンドポイントから受信した前記暗号化データパケットを、前記次のデータ暗号化鍵を使用して暗号化解除する、
請求項12のシステム。
【請求項16】
方法であって、
通信リンクの第1のエンドポイント及び第2のエンドポイントにおいて、第1の鍵導出鍵を受信することと、
前記第1のエンドポイント及び前記第2のエンドポイントにおいて、鍵導出関数を前記第1の鍵導出鍵に適用することによって、第1のデータ暗号化鍵及び第2の鍵導出鍵を生成することと、
前記第1のエンドポイント及び前記第2のエンドポイントにおいて、前記鍵導出関数を前記第2の鍵導出鍵に適用することによって、第2のデータ暗号化鍵及び第3の鍵導出鍵を生成することであって、前記第1のエンドポイント及び前記第2のエンドポイントは、前記第1のエンドポイント及び前記第2のエンドポイントの両方において既知である鍵ローリングイベントを検出したことに応じて、前記第1のデータ暗号化鍵から前記第2のデータ暗号化鍵にローリングするように構成されている、ことと、を含む、
方法。
【請求項17】
前記第1のエンドポイント及び前記第2のエンドポイントの両方において既知である前記鍵ローリングイベントは、前記通信リンクを介して通信されるデータパケットの数を含む、
請求項16の方法。
【請求項18】
前記第1のエンドポイント及び前記第2のエンドポイントにおいて、前記鍵導出関数を前記第3の鍵導出鍵に適用することによって、少なくとも第3のデータ暗号化鍵を生成することであって、前記第1のエンドポイント及び前記第2のエンドポイントは、前記第1のエンドポイント及び前記第2のエンドポイントの両方において既知である後続の鍵ローリングイベントを検出したことに応じて、前記第2のデータ暗号化鍵から前記第3のデータ暗号化鍵にローリングするように構成されている、ことを含む、
請求項16の方法。
【請求項19】
前記第2のデータ暗号化鍵及び前記第3の鍵導出鍵は、前記鍵ローリングイベントに応じて、前記第1のエンドポイント及び前記第2のエンドポイントによって生成される、
請求項16の方法。
【請求項20】
前記第2のデータ暗号化鍵及び前記第3の鍵導出鍵は、前記鍵ローリングイベントの前に、前記第1のエンドポイント及び前記第2のエンドポイントによって生成される、
請求項16の方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願)
本願は、2021年12月10日に出願された「Automatic Key Rolling for Link Encryption」と題する米国特許出願第17/547,866号の優先権を主張し、当該特許出願の開示全体は、参照により本明細書に組み込まれる。
【背景技術】
【0002】
エンドポイント間のリンクを通して通信される暗号化データは、エンドポイント間で通信されるデータを暗号化及び暗号化解除するのに使用される鍵を決定するように設計された暗号化エンジンに対する「サイドチャネル攻撃」の影響を受けやすい。一般に、そのようなサイドチャネル攻撃は、何れかのエンドポイントにおける電力使用量を観測し、数学的ソフトウェアを使用して、電力使用量と入力値及び出力値との間の相関を決定する。攻撃者が十分なデータサンプルを観察することができる場合、この相関を使用して暗号化鍵を暗号化解除することができる。
【0003】
詳細な説明は、添付の図面を参照して説明される。
【図面の簡単な説明】
【0004】
図1】データ暗号化のための鍵を生成し、両方のエンドポイントで既知である鍵ローリングイベントに応じて次の鍵にローリングするエンドポイント間の通信リンクを有する非限定的な例示的なシステムのブロック図である。
図2】インターフェースにわたる第1のエンドポイント及び第2のエンドポイントの両方において、鍵導出関数(key derivation function)が、同じ鍵導出鍵を受信し、一致するデータ暗号化鍵及び一致する鍵導出鍵を生成する非限定的な例を示す図である。
図3】インターフェースにわたる第1のエンドポイント及び第2のエンドポイントの両方において、鍵ローリングイベント検出器(key rolling event detector)が、イベントを検出し、暗号化エンジンによる新しい一致するデータ暗号化鍵の使用を開始する非限定的な例を示す図である。
図4】鍵ローリングイベントに応じて第1のデータ暗号化鍵から第2のデータ暗号化鍵にローリングする例示的な実施形態における手順を示す図である。
図5】第1の鍵導出鍵に基づいてデータ暗号化鍵を決定論的に生成する例示的な実施形態における手順を示す図である。
【発明を実施するための形態】
【0005】
(概要)
いくつかの従来のシステムは、暗号化エンジンによって使用される入力データ及び出力データにランダムマスクを適用することによってサイドチャネル攻撃を防止しようと試みる。一般に、そのようなマスクは、暗号化動作の前にデータに追加され、暗号化動作の後に除去される。しかしながら、このようにしてデータをマスクすることは、マスキングゲートの形態の追加のハードウェアと、デバイスのサイズを増大させる追加の論理ゲートと、を必要とする。例えば、サイドチャネル攻撃に耐性があるいくつかのAESコアは、「保護されていない」AESコアのサイズの3~4倍になる場合がある。更に、マスキングゲート等の対策の有効性を知ることは、そのような対策を経験豊富な試験チームが実際のハードウェア上で試験及び測定することができるまで困難になる場合がある。
【0006】
これらの問題を解決するために、リンク暗号化のための自動鍵ローリングが記載される。記載される技術は、通信リンクの両方のエンドポイントが、鍵をローリングしながら同期暗号化動作を保持することができるように、規定された方法で鍵ローリングを自動的に実行する。記載される技術によれば、第1のエンドポイントにおける暗号化エンジン及び第2のエンドポイントにおける暗号化エンジンは、一致するデータ暗号化鍵を使用して通信リンクを通して通信されるデータを暗号化及び暗号化解除し、例えば、データパケットを暗号化し、通信リンクを通した通信のための暗号化されたデータパケットを形成するために第1のエンドポイントにおける暗号化エンジンによって使用される鍵は、暗号化されたデータパケットを暗号化解除するために第2のエンドポイントにおける暗号化エンジンによって使用される鍵と同じである。
【0007】
従来のシステムとは異なり、第1のエンドポイント及び第2のエンドポイントで暗号化エンジンによって使用される鍵(例えば、一致する鍵)は、第1のエンドポイント及び第2のエンドポイントによって処理され、通信リンクにわたる通信されるデータのセキュリティを向上させるために「ローリング」される。「鍵ローリング」という用語は、使用中の鍵を異なる鍵と置換する(例えば、暗号化及び暗号化解除動作を実行するために)行為を指す。鍵ローリングシステムは、データ暗号化のための鍵を決定論的に生成し、第1のエンドポイント及び第2のエンドポイントの両方において鍵ローリングシステムで既知である鍵ローリングイベントに応じて、次の鍵に自動的にローリングする。「既知である」とは、イベントの発生に応じて、第1のエンドポイントにおける鍵ローリングシステム及び第2のエンドポイントにおける鍵ローリングシステムの両方がイベントを検出し、第1のデータ暗号化鍵(例えば、使用中の鍵)を第2のデータ暗号化鍵(例えば、未だ使用されていない鍵)で自動的に置換するように、イベントが相互に事前構成されている(例えば、プログラムで設定されている)ことを意味する。1つ以上の実施形態では、例えば、相互に事前構成されたイベントは、通信リンクを通して通信される暗号化されたデータパケットの数等の使用イベントに対応する。そのようなシナリオでは、第1のエンドポイントにおける鍵ローリングイベント検出器及び第2のエンドポイントにおける鍵ローリングイベント検出器の両方が、通信されるデータパケットの数が閾値数を満たすときを検出し、それに応じて鍵ローリングを開始するようにプログラム的に構成される。
【0008】
これにより、従来のシステムと比較して、本明細書に記載される自動鍵ローリング技術は、第1のエンドポイントと第2のエンドポイントとの間で通信されるデータを暗号化及び暗号化解除するために使用されている鍵を決定するように設計された攻撃(例えば、「サイドチャネル攻撃」)を防止するか、又は、さもなければその有効性を低減することによって、セキュリティを改善する。記載の技術に従って鍵をローリングすることによって、攻撃が鍵を決定するための好適な数のサンプルを収集することができる前に、記載の鍵ローリングが鍵を置換するので、そのような攻撃が防止されるか、又は、それらの有効性が低減される。従来の鍵ローリング技術とは対照的に、記載の鍵ローリングは、処理リソースに対する負担が著しく少なく、また、場合によっては、通信並びにデータ暗号化及び/又は暗号化解除のために使用される第1のエンドポイント及び第2のエンドポイントの構成要素の物理的サイズを大幅に増加させるハードウェア変更を必要としない。
【0009】
いくつかの態様では、本明細書に記載される技術は、方法であって、第1のデータ暗号化鍵を使用して通信リンクの第1のエンドポイントにおいてデータパケットを暗号化することと、暗号化されたデータパケットを、通信リンクを通して第2のエンドポイントに通信することと、第1のエンドポイントにおいて、第1のエンドポイント及び第2のエンドポイントの両方で既知である鍵ローリングイベントを検出することと、鍵ローリングイベントの検出に応じて、第1のデータ暗号化鍵から第2のデータ暗号化鍵にローリングすることと、を含む方法に関する。
【0010】
いくつかの態様では、本明細書に記載される技術は、方法であって、第1のエンドポイントにおいて、第1の鍵導出鍵を受信することと、第1のエンドポイントにおいて、鍵導出関数を第1の鍵導出鍵に適用することによって、第1のデータ暗号化鍵及び第2の鍵導出鍵を生成することと、を更に含む方法に関する。
【0011】
いくつかの態様では、本明細書に記載される技術は、方法であって、第2のエンドポイントが、第1の鍵導出鍵を受信し、第1の鍵導出鍵に鍵導出関数を適用することによって第1のデータ暗号化鍵及び第2の鍵導出鍵を生成する、方法に関する。
【0012】
いくつかの態様では、本明細書に記載される技術は、方法であって、第1のエンドポイントにおいて、第2の鍵導出鍵に鍵導出関数を適用することによって、第2のデータ暗号化鍵及び第3の鍵導出鍵を生成することを更に含む方法に関する。
【0013】
いくつかの態様では、本明細書に記載される技術は、方法であって、第2のエンドポイントが、第2の鍵導出鍵に鍵導出関数を適用することによって、第2のデータ暗号化鍵及び第3の鍵導出鍵を生成するように構成されている、方法に関する。
【0014】
いくつかの態様では、本明細書に記載される技術は、方法であって、第2のデータ暗号化鍵及び第3の鍵導出鍵は、鍵ローリングイベントを検出することに応じて、第1のエンドポイント及び第2のエンドポイントにおいて生成される、方法に関する。
【0015】
いくつかの態様では、本明細書に記載される技術は、方法であって、第2のデータ暗号化鍵及び第3の鍵導出鍵は、鍵ローリングイベントを検出することの前に、第1のエンドポイント及び第2のエンドポイントにおいて生成される、方法に関する。
【0016】
いくつかの態様では、本明細書に記載される技術は、方法であって、第2のエンドポイントは、鍵ローリングイベントに応じて、第1のデータ暗号化鍵から第2のデータ暗号化鍵にローリングするように構成されている、方法に関する。
【0017】
いくつかの態様では、本明細書に記載される技術は、方法であって、第1のエンドポイントにおいて、第2のデータ暗号化鍵を使用してデータパケットを暗号化することと、第2のデータ暗号化鍵を使用して暗号化された暗号化データパケットを、通信リンクを通して第2のエンドポイントに通信することと、を更に含む方法に関する。
【0018】
いくつかの態様では、本明細書に記載される技術は、方法であって、鍵ローリングイベントを検出することは、第1のエンドポイントから第2のエンドポイントに通信されるデータパケットの数が閾値数を満たすのを検出することを含む方法に関する。
【0019】
いくつかの態様では、本明細書に記載される技術は、方法であって、鍵ローリングイベントを検出することは、第1のエンドポイントから第2のエンドポイントに通信される暗号化データパケットのフロー制御ユニットの数が閾値数を満たすのを検出することを含む方法に関する。
【0020】
いくつかの態様では、本明細書に記載される技術は、システムであって、通信リンクを介した第1のエンドポイントと第2のエンドポイントとの間の通信のためにデータパケットを暗号化及び暗号化解除するためのデータ暗号化鍵を生成する鍵生成器と、鍵ローリングイベントを検出する鍵ローリングイベント検出器と、鍵ローリングイベント検出器によって鍵ローリングイベントを検出することに応じて、鍵生成器によって生成される現在のデータ暗号化鍵から鍵生成器によって生成される次のデータ暗号化鍵にローリングする暗号化エンジンと、を含むシステムに関する。
【0021】
いくつかの態様では、本明細書に記載される技術は、システムであって、鍵生成器、鍵ローリングイベント検出器及び暗号化エンジンのインスタンスは、第1のエンドポイント及び第2のエンドポイントの各々において実装されている、システムに関する。
【0022】
いくつかの態様では、本明細書に記載される技術は、システムであって、鍵ローリングイベントは、第1のエンドポイント及び第2のエンドポイントの両方において鍵ローリングイベント検出器で既知である、システムに関する。
【0023】
いくつかの態様では、本明細書に記載される技術は、システムであって、鍵ローリングイベント検出器が鍵ローリングイベントを検出することに応じて、第1のエンドポイントにおける暗号化エンジンが、通信リンクを通して第2のエンドポイントに通信するためのデータパケットを、次のデータ暗号化鍵を使用して暗号化し、第2のエンドポイントにおける暗号化エンジンは、第1のエンドポイントから受信される暗号化されたデータパケットを、次のデータ暗号化鍵を使用して暗号化解除する、システムに関する。
【0024】
いくつかの態様では、本明細書に記載される技術は、方法であって、通信リンクの第1のエンドポイント及び第2のエンドポイントにおいて、第1の鍵導出鍵を受信することと、第1のエンドポイント及び第2のエンドポイントにおいて、第1の鍵導出鍵に鍵導出関数を適用することによって、第1のデータ暗号化鍵及び第2の鍵導出鍵を生成することと、第1のエンドポイント及び第2のエンドポイントにおいて、第2の鍵導出鍵に鍵導出関数を適用することによって、第2のデータ暗号化鍵及び第3の鍵導出鍵を生成することであって、第1のエンドポイント及び第2のエンドポイントは、第1のエンドポイント及び第2のエンドポイントの両方で既知である鍵ローリングイベントを検出するのに応じて、第1のデータ暗号化鍵から第2のデータ暗号化鍵にローリングするように構成されている、ことと、を含む方法に関する。
【0025】
いくつかの態様では、本明細書に記載される技術は、方法であって、第1のエンドポイント及び第2のエンドポイントの両方で既知である鍵ローリングイベントは、通信リンクを通して通信されるデータパケットの数を含む、方法に関する。
【0026】
いくつかの態様では、本明細書に記載される技術は、方法であって、第1のエンドポイント及び第2のエンドポイントにおいて、第3の鍵導出鍵に鍵導出関数を適用することによって、少なくとも第3のデータ暗号化鍵を生成することであって、第1のエンドポイント及び第2のエンドポイントは、第1のエンドポイント及び第2のエンドポイントの両方で既知である後続の鍵ローリングイベントを検出したことに応じて、第2のデータ暗号化鍵から第3のデータ暗号化鍵にローリングするように構成されている、ことを更に含む方法に関する。
【0027】
いくつかの態様では、本明細書に記載される技術は、方法であって、第2のデータ暗号化鍵及び第3の鍵導出鍵は、鍵ローリングイベントに応じて第1のエンドポイント及び第2のエンドポイントによって生成される、方法に関する。
【0028】
いくつかの態様では、本明細書に記載される技術は、方法であって、第2のデータ暗号化鍵及び第3の鍵導出鍵は、鍵ローリングイベントの前に第1のエンドポイント及び第2のエンドポイントによって生成される、方法に関する。
【0029】
図1は、データ暗号化のための鍵を生成し、両方のエンドポイントで既知である鍵ローリングイベントに応じて次の鍵にローリングするエンドポイント間の通信リンクを有する非限定的な例示的なシステム100のブロック図である。具体的には、システム100は、第1のエンドポイント102及び第2のエンドポイント104を含む。また、システム100は、第1のエンドポイント102と第2のエンドポイント104との間に確立される通信リンク106を含む。
【0030】
第1のエンドポイント102及び第2のエンドポイント104は、例えば通信リンク106を使用して、互いにインターフェース接続するように構成されたデバイスに対応する。これらのデバイスの例は、限定ではなく例として、プロセッサ(例えば、グラフィックス処理ユニット及び中央処理ユニット)、ディスクアレイコントローラ、ハードディスクドライブホストアダプタ、メモリカード、ソリッドステートドライブ、ワイヤレス通信ハードウェア接続、Ethernet(登録商標)ハードウェア接続、スイッチ、ブリッジ、及び、ネットワークインターフェースコントローラを含む。様々な実施形態では、第1のエンドポイント102及び第2のエンドポイント104は、記載の技術の趣旨又は範囲から逸脱することなく、すぐ上に列挙されたデバイス及び/又は様々な他のデバイスのうち何れか1つ以上として構成されることを理解されたい。
【0031】
記載の技術によれば、第1のエンドポイント102及び第2のエンドポイント104は、通信リンク106を通して通信する。1つ以上の実施形態では、通信リンク106は、第1のエンドポイント102が、第2のエンドポイント104によって受信されるデータを、通信リンク106を通して送信し、第2のエンドポイント104は、第1のエンドポイント102によって受信されるデータを、通信リンク106を通して送信するように、双方向である。
【0032】
代替的に、通信リンク106は、単一方向のデータ送信、例えば、第2のエンドポイント104による受信のための通信リンク106を通した第1のエンドポイント102によるデータの送信、又は、第1のエンドポイント102による受信のための通信リンク106を通した第2のエンドポイント104によるデータの送信を容易にする。通信リンク106が単一方向のデータ送信を容易にするいくつかの変形形態では、システム100は、第1のエンドポイント102と第2のエンドポイント104との間に1つ以上の追加の通信リンク(図示せず)を更に含む。通信リンク106が、第2のエンドポイント104による受信のための第1のエンドポイント102からのデータの送信を容易にする少なくとも1つのシナリオでは、例えば、追加の通信リンクが、第1のエンドポイント102による受信のための第2のエンドポイント104からのデータの送信を容易にする。
【0033】
代替的に又は追加的に、通信リンク106は、複数の異なるタイプのデータパケットのサブセット(例えば、1つのみ)の単一方向のデータ送信、例えば、第2のエンドポイント104による受信のための通信リンク106を通した第1のエンドポイント102による第1のタイプのデータの送信、第2のエンドポイント104による受信のための通信リンク106を通した第1のエンドポイント102による第2のタイプのデータの送信、第2のエンドポイント104による受信のための通信リンク106を通した第1のエンドポイント102による第3のタイプのデータの送信等を容易にする。
【0034】
例として、1つ以上の実施形態では、一般にPCIeと略されるPeripheral Component Interconnect Expressが、第1のエンドポイント102と第2のエンドポイント104とをインターフェース接続するために使用される。第1のエンドポイント102及び第2のエンドポイント104が、それらのデバイス間で確立されたPCIeセッションを使用して通信するいくつかの変形形態では、少なくとも1つのPCIeセッションは、3つのサブセッション、例えば、各サブセッションは、異なるタイプのデータを通信するためのサブセッションを有する。更に、これらのサブセッションの各々は、送信リンク及び受信リンクを有する。次いで、単一のPCIeセッションの3つのサブセッションのうち第1のサブセッションは、第1のエンドポイント102が第2のエンドポイント104による受信のためのデータを送信する送信リンク(例えば、通信リンク106)を有し、第1のサブセッションは、第1のエンドポイント102が第2のエンドポイント104によって送信されたデータを受信する受信リンク(例えば、追加の通信リンク、図示せず)を有することになる。通信リンク106を通した通信のために第1のエンドポイント102及び第2のエンドポイント104を接続するように使用されるインターフェースの他の例は、限定ではなく例として、Compute Express Link(CXL)、チップ間Global Memory Interconnect(xGMI)、及び、NVLinkを含む。1つ以上の実施形態では、第1のエンドポイント102及び第2のエンドポイント104は、記載の技術の趣旨又は範囲から逸脱することなく、すぐ上で言及したインターフェースとは異なるインターフェースを使用して通信することを理解されたい。
【0035】
記載の技術によれば、第1のエンドポイント102及び第2のエンドポイント104は、暗号化エンジン110を含む。概して、暗号化エンジン110は、1つ以上の鍵を使用して、通信リンク106を通した通信のためのデータを暗号化及び暗号化解除する。1つ以上の実施形態では、暗号化エンジン110は、暗号化されたデータを認証し、暗号化解除されたデータの認証を検査する。1つ以上の実施形態では、暗号化エンジン110は、暗号化動作及び暗号化解除動作のため高度暗号化規格(advanced encryption standard、AES)に従って構成されるか、又は、そうでなければそれを利用する1つ以上の構成要素を含む。
【0036】
第1のエンドポイント102が送信デバイスに対応し、第2のエンドポイント104が受信デバイスに対応するシナリオでは、第1のエンドポイント102は、第2のエンドポイント104への通信のためのデータ108を受信する。第1のエンドポイント102における暗号化エンジン110は、データ108を暗号化し、それを認証する。第1のエンドポイント102(例えば、第1のエンドポイント102の送信機)は、暗号化エンジン110によって出力される暗号化され認証されたデータ108に基づいて形成されている、暗号化されたデータパケット(暗号化データパケット)112を送信する。第2のエンドポイント104は、暗号化されたデータパケット112を受信する。第2のエンドポイント104における暗号化エンジン110は、暗号化されたデータパケット112を暗号化解除し、暗号化解除されたデータ114を形成するために認証を検査する。なお、暗号化解除されたデータ114は、データ108と同じである。
【0037】
第2のエンドポイント104が送信デバイスに対応し、第1のエンドポイント102が受信デバイスに対応するシナリオでは、データは、上述したシナリオと反対方向に流れ、例えば、第2のエンドポイント104は、データ108を受信し、第2のエンドポイント104の暗号化エンジン110は、データ108を暗号化して認証し、第2のエンドポイントは、暗号化されたデータパケット112を、通信リンク106を通して第1のエンドポイント102に送信し、第1のエンドポイント102の暗号化エンジン110は、暗号化されたデータパケット112を暗号化解除して認証を検査し、暗号化解除されたデータ114を出力する。
【0038】
上述したように、暗号化エンジン110は、データを暗号化及び暗号化解除するために、1つ以上のデータ鍵、例えば、データ暗号化鍵を使用する。記載の技術によれば、第1のエンドポイント102における暗号化エンジン110及び第2のエンドポイント104における暗号化エンジン110は、一致するデータ暗号化鍵を使用して、通信リンク106を通して通信されるデータを暗号化及び暗号化解除し、例えば、通信リンク106を通した通信のためのデータ108を暗号化し、暗号化されたデータパケット112を形成するために第1のエンドポイント102における暗号化エンジン110によって使用される鍵は、暗号化されたデータパケット112を暗号化解除するために第2のエンドポイント104における暗号化エンジン110によって使用される鍵と同じである。
【0039】
以上及び以下で説明するように、第1のエンドポイント102及び第2のエンドポイント104において暗号化エンジン110によって使用される鍵(例えば、一致する鍵)は、第1のエンドポイント102及び第2のエンドポイント104によって処理され、通信リンク106にわたる通信されるデータのセキュリティを改善するために「ローリング」される。「鍵ローリング」という用語は、使用中の鍵を異なる鍵と置換する(例えば、暗号化及び暗号化解除動作を実行するために)行為を指す。鍵ローリングは、第1のエンドポイント102と第2のエンドポイント104との間で通信されるデータを暗号化及び暗号化解除するために使用されている鍵を決定するように設計された攻撃を防止するか、又は、その有効性を低減することによって、セキュリティを改善する。記載の技術に従って鍵をローリングすることによって、攻撃が鍵を決定するための好適な数のサンプルを収集することができる前に、記載の鍵ローリングが鍵を置換するので、そのような攻撃が防止されるか、又は、それらの有効性が低減される。従来の鍵ローリング技術とは対照的に、記載の鍵ローリングは、処理リソース(プロセッサ等の、鍵ローリングシステム116の外部にある処理リソースを含む)に対する負担が著しく少なく、また、場合によっては、通信並びにデータ暗号化及び/又は暗号化解除のために使用される第1のエンドポイント102及び第2のエンドポイント104の構成要素の物理的サイズを大幅に増加させるハードウェア変更を必要としない。
【0040】
記載の技術によれば、第1のエンドポイント102及び第2のエンドポイント104は、鍵ローリングシステム116を含む。1つ以上の実施形態では、鍵ローリングシステム116は、鍵ローリングイベント検出器118と、鍵生成器120と、記憶装置122と、を含む。更に、鍵生成器120は、鍵導出関数124を含み、記憶装置122は、1つ以上のデータ暗号化鍵126及び1つ以上の鍵導出鍵128を含む。鍵ローリングシステム116は、図示されたシステム100において暗号化エンジン110とは別に示されているが、1つ以上の実施形態では、鍵ローリングシステム116又は鍵ローリングシステム116の1つ以上の構成要素は、暗号化エンジン110の一部として含まれる。追加的に又は代替的に、鍵ローリングシステム116は、記載の技術の趣旨又は範囲から逸脱することなく、1つ以上の実施形態において、より多くの、より少ない、又は、異なる構成要素を含む。
【0041】
概して、鍵ローリングシステム116は、データ暗号化のための鍵を決定論的に生成し、第1のエンドポイント102及び第2のエンドポイント104の両方において鍵ローリングシステム116において既知である鍵ローリングイベントに応じて、次の鍵に自動的にローリングする。「既知である」とは、鍵ローリングイベントの発生に応じて、第1のエンドポイント102における鍵ローリングシステム116及び第2のエンドポイント104における鍵ローリングシステム116の両方が、鍵ローリングイベントを検出し、第1のデータ暗号化鍵126(例えば、使用中の現在のデータ暗号化鍵)を第2のデータ暗号化鍵126(例えば、未だ使用されていない次のデータ暗号化鍵)と自動的に置換するように、鍵ローリングイベントが相互に事前構成されている(例えば、プログラム的に設定されている)ことを意味する。記載の技術によれば、データ暗号化鍵126は、暗号化アルゴリズム、例えば暗号化エンジン110又はエンジンの構成要素によって秘密パラメータとして使用されるバイナリ文字列等の暗号化鍵である。暗号化鍵の非限定的な例は、暗号化アルゴリズムによって指定された長さのランダムバイナリ文字列と、指定された長さの擬似ランダムバイナリ文字列と、を含む。1つ以上の実施形態では、暗号化エンジン110は、データ108を暗号化するために、データ暗号化鍵126及び追加データを使用する。暗号化に使用される追加のデータの例は、例えば、初期化ベクトル及び/又は初期カウント値を含む。
【0042】
鍵ローリングイベント検出器118は、鍵ローリングを開始するそのような鍵ローリングイベントを検出する。鍵ローリングイベント検出器118は、様々な実施形態において、鍵ローリングを開始する異なるイベントを検出することを理解されたい。1つ以上の実施形態では、例えば、相互に事前構成されたイベントは、通信リンク106を通して通信される暗号化されたデータパケット112の数等の使用イベントに対応する。例えば、鍵ローリングイベント検出器118は、通信される暗号化されたデータパケットの数が閾値数を満たすときを検出し、鍵ローリングを開始する。そのようなシナリオでは、第1のエンドポイント102における鍵ローリングイベント検出器118及び第2のエンドポイント104における鍵ローリングイベント検出器118の両方は、通信されるデータパケットの数が閾値数を満たすときを検出し、それに応じて鍵ローリングを開始するようにプログラム的に構成されている。例えば、第1のエンドポイント102が送信デバイスであり、第2のエンドポイント104が受信デバイスである場合、第1のエンドポイント102におけるパケットのカウンタは、データパケット112の暗号化において増分され、第2のエンドポイント104におけるパケットのカウンタは、データパケット112の暗号化解除において増分される。更に、第1のエンドポイント102における鍵ローリングイベント検出器118は、第1のエンドポイント102におけるパケットのカウンタによって示される送信されたパケットの数が閾値を満たすときを検出し、第2のエンドポイント104における鍵ローリングイベント検出器118は、第2のエンドポイント104におけるパケットのカウンタによって示される受信されたパケットの数が閾値を満たすときを検出する。
【0043】
追加的に又は代替的に、鍵ローリングイベント検出器118によって検出可能な鍵ローリングイベントの例は、通信される暗号化されたデータのフロー制御ユニット(flow control unit、FLIT)の数(例えば、128)、セクタの数、メッセージ認証コード(message authentication code、MAC)タグの数、MACアグリゲーション境界、暗号化されたデータのビットの値(例えば、鍵変更又は鍵ローリングビット)、インターフェース固有イベント(例えば、PCIe特有のイベント)、又は、データ暗号化鍵で暗号化されたブロックの数(例えば、データパケットのサイズが全て均一でない場合)を含むが、これらに限定されない。
【0044】
鍵ローリングイベント検出器118による鍵ローリングイベントの検出に応じて、暗号化エンジン110によって使用されるデータ暗号化鍵126は、異なるデータ暗号化鍵126と置換される。1つ以上の実施形態では、暗号化エンジン110は、データ暗号化鍵126を再使用しない。代わりに、暗号化エンジン110は、例えば、鍵生成器120によって生成される、新しいデータ暗号化鍵126を記憶装置122から取得する。
【0045】
記載の技術によれば、データ暗号化鍵126を生成するために、鍵生成器120は、鍵導出関数124を使用する。1つ以上の実施形態では、データ暗号化鍵126を生成するために、鍵導出関数124は、鍵導出鍵128のうち1つ以上を使用する。データ暗号化鍵126を生成することに加えて、鍵導出関数124は、鍵導出鍵128を生成する。一例として、鍵導出関数124は、入力として鍵導出鍵128を受信する。鍵生成器120は、データ暗号化鍵126及び新しい鍵導出鍵128を決定論的に生成するために、鍵導出関数124を鍵導出鍵128に適用し、鍵導出関数124は、後続のデータ暗号化鍵126及び鍵導出鍵128を生成するために、次の鍵生成反復において使用される。鍵導出関数124が決定論的に鍵を生成するので、同じ入力が与えられると、第1のエンドポイント102における鍵導出関数124及び第2のエンドポイント104における鍵導出関数124は、一致するデータ暗号化鍵126及び一致する鍵導出鍵128を生成する。1つ以上の実施形態では、鍵導出鍵128は、データ暗号化鍵126ほど頻繁に更新されない。例えば、鍵導出鍵126は、いくつかの実施形態では、初期鍵導出鍵をセットアップする外部機構によってのみ更新される。
【0046】
この目的のために、第1のエンドポイント102における鍵導出関数124によって生成される第1のデータ暗号化鍵126及び第2の鍵導出鍵128は、例えば、関数が最初に同じ入力(例えば、第1の鍵導出鍵)を受信する場合に、第2のエンドポイント104における鍵導出関数124によって生成される第1のデータ暗号化鍵126及び第2の鍵導出鍵128と一致する。記載の技術によれば、第1のエンドポイント102及び第2のエンドポイント104における鍵導出関数124は、例えば、通信リンク106を確立することに基づいて、第1の鍵導出鍵を取得する。いくつかの従来の技術では、暗号化エンジン110は、データ暗号化鍵を生成し、次いで、データ暗号化鍵は、通信リンク106を通した通信のためのデータを暗号化するために暗号化エンジン110によって使用される。これらの技術とは対照的に、鍵導出関数124は、代わりに従来のデータ暗号化鍵を鍵導出鍵として使用する。
【0047】
1つ以上の実施形態では、鍵導出関数124は、擬似ランダム関数を使用して実装され、(例えば、通信リンク106を確立することに基づいて)少なくとも第1の鍵導出鍵、又は、(例えば、鍵導出関数124によって生成される)鍵導出鍵128の順序付けられたシーケンスの次の鍵導出鍵128が入力として与えられる。以下で言及されるように、鍵導出関数124には、様々な実施形態において追加の及び/又は異なる入力が与えられる。鍵導出関数124によって使用される1つの例示的な擬似ランダム関数は、米国国立標準技術研究所(National Institute of Standards and Technology、NIST)special publication 800-38Bにおいて指定された暗号ベースメッセージ認証コード(cipher-based message authentication code、CMAC)アルゴリズムである。CMACは、認証に使用可能であり、暗号化されたデータパケット112の真正性及び完全性の保証を提供する。別の例示的な擬似ランダム関数は、連邦情報処理規格(Federal Information Processing Standards、FIPS)publication 198-1において指定されている鍵付きハッシュメッセージ認証コード(hash message authentication code、HMAC)アルゴリズムである。様々な実施形態では、鍵導出関数124は、記載の技術の趣旨又は範囲から逸脱することなく、鍵を決定論的に生成する1つ以上の異なる関数を使用することを理解されたい。
【0048】
1つ以上の実施形態では、鍵導出関数124は、データ暗号化鍵126を生成するために、擬似ランダム関数を複数回呼び出す。様々な実施形態では、鍵導出関数124は、異なるモードに基づいて擬似ランダム関数を複数回呼び出し、そのモードの例には、カウンタモード、フィードバックモード、及び、ダブルパイプライン反復モードがある。一例では、NIST800-108において規定されているように、擬似ランダム関数は、入力として、例えば鍵生成器120から、カウンタ値(例えば、新しいデータ暗号化鍵126を生成するための入力として働く鍵導出鍵128に対応する4ビット値)、ラベル(例えば、他の規格と区別するために規格本体によって定義される)、セパレータ(例えば、0×00値を有する単一バイト)、コンテキスト(例えば、ストリーム識別子、サブ鍵タイプ及び追加的情報)、及び、124からの導出された鍵生成情報の長さを記述する長さ(例えば、12ビット値)のうち1つ以上を受信する。鍵導出関数124及び鍵導出関数124によって使用される擬似ランダム関数は、様々な実施形態において異なる入力を受信することを理解されたい。
【0049】
少なくとも1つの実施形態では、鍵導出関数124は、複数の鍵、例えば、データ暗号化鍵126及び鍵導出鍵128にセグメント化可能な、導出された鍵生成情報を出力する。例えば、鍵生成器120は、鍵導出関数124によって出力される鍵生成情報を、少なくとも一対の暗号化鍵、例えば、データ暗号化鍵126及び鍵導出鍵128に変換する。代替的に又は追加的に、鍵導出関数124は、これらに限定されないが、新しいデータ暗号化鍵126、新しい鍵導出鍵128、初期化ベクトル、及び、鍵導出鍵ノンス(key-derivation-key nonce)を含むデータを出力する。1つ以上の実施形態では、初期化ベクトルは、通信される暗号化されたデータパケット112の数を追跡するため、又は、暗号化されたデータパケットの数を追跡するためのカウンタとして使用される。これらのうち1つ以上は、鍵導出関数124からの導出された鍵生成情報から生成される。第1のエンドポイント102及び第2のエンドポイント104における暗号化エンジン110が、鍵ローリングイベントの検出に応じて、一致するデータ暗号化鍵126にローリングし、第1のエンドポイント102及び第2のエンドポイント104における鍵導出関数124が、新しい鍵を生成するために一致する鍵導出鍵128を使用するように、順序付けられたデータ暗号化鍵126及び鍵導出鍵128のチェーンを生成するコンテキストにおいて、図2の以下の説明を検討する。
【0050】
図2は、非限定的な例200を示しており、例200では、鍵導出関数は、インターフェースにわたる第1のエンドポイント及び第2のエンドポイントの両方において、同じ鍵導出鍵を受信し、一致するデータ暗号化鍵及び一致する鍵導出鍵を生成する。
【0051】
例200は、図1から、破線として図示される第1のエンドポイント102及び第2のエンドポイント104を含む。また、例200は、第1のエンドポイント102及び第2のエンドポイント104において鍵導出関数124を含む。例200は、鍵を生成することの複数の繰り返しを表すために、第1のエンドポイント102及び第2のエンドポイント104の各々において鍵導出関数124を複数回示している、例200では、鍵を生成することの3回の繰り返しを示している。
【0052】
第1のエンドポイント102における鍵導出関数124及び第2のエンドポイント104における鍵導出関数124は、第1の鍵導出鍵202を受信するものとして示されている。1つ以上の実施形態では、第1の鍵導出鍵202は、通信リンク106を確立することに基づいて暗号化エンジン110によって提供される鍵、例えば、通信リンク106を通して通信されるデータを暗号化するための従来の技術において使用される鍵に対応する。代替的に、第1の鍵導出鍵202は、例200より前の時点において鍵導出関数124によって生成された鍵導出鍵128のうち何れかに対応する。
【0053】
記載の技術によれば、第1のエンドポイント102における鍵導出関数124は、第1のデータ暗号化鍵204と、関数が第1の鍵導出鍵202に基づいて導出する第2の鍵導出鍵206と、を生成して出力する。同様に、第2のエンドポイント104における鍵導出関数124は、第1のデータ暗号化鍵204と、関数が第1の鍵導出鍵202に基づいて第2の鍵導出鍵206に基づいて導出する第2の鍵導出鍵206と、を生成して出力する。記載の技術によれば、第1のエンドポイント102及び第2のエンドポイント104において鍵導出関数124によって生成される第1のデータ暗号化鍵204は、互いに一致する。第1のエンドポイント102及び第2のエンドポイント104において鍵導出関数124によって生成される第2の鍵導出鍵206も、互いに一致する。
【0054】
続いて、第1のエンドポイント102及び第2のエンドポイント104における鍵導出関数124は、第2のデータ暗号化鍵208と、関数が第2の鍵導出鍵206に基づいて導出する第3の鍵導出鍵210と、を生成し出力する。記載の技術によれば、第1のエンドポイント102及び第2のエンドポイント104において鍵導出関数124によって生成される第2のデータ暗号化鍵208は、互いに一致する。第1のエンドポイント102及び第2のエンドポイント104において鍵導出関数124によって生成される第3の鍵導出鍵210も、互いに一致する。第2のデータ暗号化鍵208及び第3の鍵導出鍵210の生成に続いて、第1のエンドポイント102及び第2のエンドポイント104における鍵導出関数124は、第3のデータ暗号化鍵212と、関数が第3の鍵導出鍵210に基づいて導出する第4の鍵導出鍵(図示せず)と、を生成し、出力する。記載の技術によれば、第1のエンドポイント102及び第2のエンドポイント104において鍵導出関数124によって生成される第3のデータ暗号化鍵212は、互いに一致する。第1のエンドポイント102及び第2のエンドポイント104において鍵導出関数124によって生成される第4の鍵導出鍵(図示せず)も、互いに一致する。動作中、鍵導出関数124は、記載の技術に従って、確立された通信リンク(例えば、通信リンク106)のためのデータ暗号化鍵及び鍵導出鍵を生成するために、図示されているよりも多い又は少ない回数を繰り返すことを理解されたい。
【0055】
1つ以上の実施形態では、鍵導出関数124は、各々がデータ暗号化鍵126及び鍵導出鍵128を含む複数の鍵セットを、それらの鍵セットのうち1つ以上の鍵が暗号化エンジン110によって使用される前に導出するように構成されている。図2のコンテキストでは、例えば、鍵導出関数124は、データ108を暗号化して暗号化されたデータパケット112を形成し、その暗号化されたデータパケット112を受信デバイスによって暗号化解除する等のように、第1のデータ暗号化鍵204が暗号化エンジン110によって使用される前に、第1のエンドポイント102及び第2のエンドポイント104において第1のデータ暗号化鍵204、第2の鍵導出鍵206、第2のデータ暗号化鍵208、第3の鍵導出鍵210、第3のデータ暗号化鍵212、及び、第4の鍵導出鍵(図示せず)のうち少なくとも全てを生成する。代替的又は追加的に、第1のデータ暗号化鍵204が暗号化エンジン110によって使用される間、鍵導出関数124は、少なくとも第2のデータ暗号化鍵208、第3の鍵導出鍵210、第3のデータ暗号化鍵212、及び、第4の鍵導出鍵(図示せず)を第1のエンドポイント102及び第2のエンドポイント104において生成するために使用され、生成された鍵は、鍵ローリングイベントが検出されるとき等の将来の使用のために(例えば記憶装置122内に)維持される。1つ以上の実施形態では、エンドポイント102は、異なる時間に、エンドポイント104とは異なる方法を使用して鍵を生成する。
【0056】
例として、鍵生成器120は、鍵導出関数124を使用して、利用可能なコンピューティングリソース、例えば、暗号化されたデータパケット112の通信の間、データ108が暗号化エンジン110によって暗号化されていない間、暗号化されたデータパケット112が暗号化エンジン110によって暗号化解除されたデータ114に暗号化解除されていない間等の利用可能な処理サイクルに基づいて、データ暗号化鍵126及び鍵導出鍵128を含む鍵セットを生成する。このようにして、鍵生成器120は、鍵導出関数124を使用して、それぞれの鍵ローリングイベントの前に、データ暗号化鍵126が暗号化エンジン110によって必要とされる前に鍵を生成する。それらの鍵セットの何れかの使用に先立って生成される鍵セットの数は、記載の技術の趣旨又は範囲から逸脱することなく、コンピューティングリソース使用量及びシステム上の通信負荷を含む様々な要因に基づいて変動することを理解されたい。1つ以上の実施形態では、鍵生成器120は、鍵導出関数124を使用して、必要に応じて、例えば、鍵ローリングイベント検出器118が鍵ローリングイベントを検出したことに応じて、データ暗号化鍵126及び鍵導出鍵128を生成することも理解されたい。
【0057】
記載の技術によれば、鍵セットは、それらのセットが生成される順序で暗号化エンジン110及び鍵導出関数124によって使用される。図2のコンテキストでは、例えば、暗号化エンジン110は、第1のデータ暗号化鍵204、第2のデータ暗号化鍵208及び第3のデータ暗号化鍵212を、それらの鍵が生成される順序で使用するために取得する。具体的には、暗号化エンジン110は、第2のデータ暗号化鍵208の前に使用するために第1のデータ暗号化鍵204を取得し、第3のデータ暗号化鍵212の前に使用するために第2のデータ暗号化鍵208を取得し、以下同様である。このようにして、第1のエンドポイント102及び第2のエンドポイント104における暗号化エンジン110は、各鍵ローリングイベントに応じて、一致する鍵を使用するようにローリングする。同様に、鍵生成器120は、第2の鍵導出鍵206、第3の鍵導出鍵210及び第4の鍵導出鍵(図示せず)を、それらの鍵が生成される順序で鍵導出関数124に提供する。このようにして、第1のエンドポイント102及び第2のエンドポイント104における鍵導出関数124は、一致する鍵を使用して、次の鍵セットを生成する。鍵の順序付けられたシーケンスにおける次の鍵にローリングするコンテキストにおいて、図3の以下の説明を考慮されたい。
【0058】
図3は、非限定的な例300を図示しており、例300では、鍵ローリングイベント検出器は、インターフェースにわたる第1のエンドポイント及び第2のエンドポイントの両方において、イベントを検出し、暗号化エンジンによる新しい一致するデータ暗号化鍵の使用を開始する。
【0059】
例300は、図1から、破線として図示される第1のエンドポイント102及び第2のエンドポイント104を含む。また、例300は、第1のエンドポイント102及び第2のエンドポイント104に暗号化エンジン110及び鍵ローリングイベント検出器118を含む。例300は、鍵ローリングイベントを検出すること、及び、新しいデータ暗号化鍵126を取得することの複数の繰り返し(すなわち、次の鍵にローリングすること)を表すために、第1のエンドポイント102及び第2のエンドポイント104の各々において暗号化エンジン110及び鍵ローリングイベント検出器118を複数回示している。例300では、鍵ローリングイベントを検出すること、及び、新しいデータ暗号化鍵126を取得することの3回の繰り返しを示している。
【0060】
記載の技術によれば、第1のエンドポイント102における鍵ローリングイベント検出器118及び第2のエンドポイント104における鍵ローリングイベント検出器118は、第1のイベント302(第1の鍵ローリングイベント)を検出する。鍵ローリングイベントの例は、上述されており、例えば、通信されたパケットの数である。第1のイベント302の検出に応じて、暗号化エンジン110が使用のために第1のデータ暗号化鍵204を取得するように、鍵ローリングが行われる。暗号化エンジン110が以前のデータ暗号化鍵を既に使用しているシナリオでは、以前の鍵は、第1のデータ暗号化鍵204によって置換される。置換に続いて、暗号化エンジン110は、第1のデータ暗号化鍵204を、データを暗号化又は暗号化解除するために使用する。図1のコンテキストでは、例えば、第1のエンドポイント102における暗号化エンジン110は、第1のデータ暗号化鍵204を、通信リンク106を通した通信のためのデータを暗号化するために使用し、第2のエンドポイント104における暗号化エンジン110は、第1のデータ暗号化鍵204を、通信リンク106を通して受信されたデータを暗号化解除し、その暗号化解除されたデータ114を出力するために使用する。
【0061】
第1のイベント302の検出に続いて、第1のエンドポイント102における鍵ローリングイベント検出器118及び第2のエンドポイント104における鍵ローリングイベント検出器118は、第2のイベント304(第2の鍵ローリングイベント)を検出する。第2のイベント304の検出に応じて、暗号化エンジン110が使用のために第2のデータ暗号化鍵208を取得するように、鍵ローリングが行われる。暗号化エンジン110は、第1のデータ暗号化鍵204を第2のデータ暗号化鍵208で置換する。この置換に続いて、暗号化エンジン110は、第2のデータ暗号化鍵208を、データを暗号化又は暗号化解除するために使用する。図1のコンテキストでは、例えば、第1のエンドポイント102における暗号化エンジン110は、第2のデータ暗号化鍵208を、通信リンク106を通した通信のためのデータを暗号化するために使用し、第2のエンドポイント104における暗号化エンジン110は、第2のデータ暗号化鍵208を、通信リンク106を通して受信されたデータを暗号化解除し、その暗号化解除されたデータ114を出力するために使用する。
【0062】
第2のイベント304の検出に続いて、第1のエンドポイント102における鍵ローリングイベント検出器118及び第2のエンドポイント104における鍵ローリングイベント検出器118は、第3のイベント306(第3の鍵ローリングイベント)を検出する。第3のイベント306の検出に応じて、暗号化エンジン110が使用のために第3のデータ暗号化鍵212を取得するように、鍵ローリングが行われる。暗号化エンジン110は、第2のデータ暗号化鍵208を第3のデータ暗号化鍵212で置換する。この置換に続いて、暗号化エンジン110は、第3のデータ暗号化鍵212を、データを暗号化又は暗号化解除するために使用する。図1のコンテキストでは、例えば、第1のエンドポイント102における暗号化エンジン110は、第3のデータ暗号化鍵212を、通信リンク106を通した通信のためのデータを暗号化するために使用し、第2のエンドポイント104における暗号化エンジン110は、第3のデータ暗号化鍵212を、通信リンク106を通して受信されたデータを暗号化解除し、暗号化解除されたデータ114を出力するために使用する。
【0063】
図4は、鍵ローリングイベントに応じて第1のデータ暗号化鍵から第2のデータ暗号化鍵にローリングする例示的な実施形態における手順400を示している。
【0064】
データパケットは、第1のデータ暗号化鍵を使用して通信リンクの第1のエンドポイントにおいて暗号化される(ブロック402)。例として、第1のエンドポイント102は、第2のエンドポイント104への通信のためのデータ108を受信する。第1のエンドポイント102における暗号化エンジン110は、データ108を暗号化し、それを認証する。
【0065】
暗号化されたデータパケットは、通信リンクを通して第2のエンドポイントに通信される(ブロック404)。例として、第1のエンドポイント102(例えば、第1のエンドポイント102の送信機)は、暗号化されたデータパケット112を、通信リンク106を通して第2のエンドポイント104に送信する。
【0066】
第1のエンドポイント及び第2のエンドポイントの両方で既知である鍵ローリングイベントが、第1のエンドポイントにおいて検出される(ブロック406)。例として、鍵ローリングイベント検出器118は、そのような鍵ローリングイベントを検出して、鍵ローリングを開始する。鍵ローリングイベント検出器118は、様々な実施形態において、鍵ローリングを開始する異なるイベントを検出することを理解されたい。1つ以上の実施形態では、例えば、相互に事前構成されたイベントは、通信リンク106を通して通信される暗号化されたデータパケット112の数等の使用イベントに対応する。例えば、鍵ローリングイベント検出器118は、通信される暗号化されたデータパケットの数が閾値数を満たす(例えば、閾値数以上である)ときを検出し、鍵ローリングを開始する。そのようなシナリオでは、第1のエンドポイント102における鍵ローリングイベント検出器118及び第2のエンドポイント104における鍵ローリングイベント検出器118の両方は、通信されるデータパケットの数が閾値数を満たすときを検出し、それに応じて鍵ローリングを開始するようにプログラム的に構成されている。例えば、第1のエンドポイント102が送信デバイスであり、第2のエンドポイント104が受信デバイスである場合、第1のエンドポイント102におけるパケットのカウンタは、暗号化されたデータパケット112の送信時に増分され、第2のエンドポイント104におけるパケットのカウンタは、暗号化されたデータパケット112の受信時に増分される。更に、第1のエンドポイント102における鍵ローリングイベント検出器118は、第1のエンドポイント102におけるパケットのカウンタによって示される送信されたパケットの数が閾値を満たすときを検出し、第2のエンドポイント104における鍵ローリングイベント検出器118は、第2のエンドポイント104におけるパケットのカウンタによって示される受信されたパケットの数が閾値を満たすときを検出する。
【0067】
鍵ローリングイベントに応じて、第1のデータ暗号化鍵は、通信リンクを通して通信されるデータパケットを暗号化するための第2のデータ暗号化鍵に自動的にローリングされる(ブロック408)。例として、鍵ローリングイベント検出器118による鍵ローリングイベントの検出に応じて、暗号化エンジン110によって使用されるデータ暗号化鍵126は、異なるデータ暗号化鍵126と置換される。1つ以上の実施形態では、暗号化エンジン110は、データ暗号化鍵126を再使用しない。代わりに、暗号化エンジン110は、例えば、鍵生成器120によって生成される、新しいデータ暗号化鍵126を記憶装置122から取得する。
【0068】
図5は、第1の鍵導出鍵に基づいてデータ暗号化鍵を決定論的に生成する例示的な実施形態における手順500を示している。
【0069】
第1の鍵導出鍵が、通信リンクの第1のエンドポイント及び第2のエンドポイントにおいて受信される(ブロック502)。例として、第1のエンドポイント102における鍵導出関数124及び第2のエンドポイント104における鍵導出関数124は、第1の鍵導出鍵202を受信する。1つ以上の実施形態では、第1の鍵導出鍵202は、通信リンク106を確立することに基づいて暗号化エンジン110によって提供される鍵、例えば、通信リンク106を通して通信されるデータを暗号化するための従来の技術において使用される鍵に対応する。
【0070】
鍵導出関数を第1の鍵導出鍵に適用することによって、第1のデータ暗号化鍵及び第2の鍵導出鍵が、第1のエンドポイント及び第2のエンドポイントにおいて生成される(ブロック504)。例として、第1のエンドポイント102における鍵導出関数124は、第1のデータ暗号化鍵204と、関数が第1の鍵導出鍵202に基づいて導出する第2の鍵導出鍵206と、を生成し、出力する。同様に、第2のエンドポイント104における鍵導出関数124は、第1のデータ暗号化鍵204と、関数が第1の鍵導出鍵202に基づいて導出する第2の鍵導出鍵206と、を生成し、出力する。記載の技術によれば、第1のエンドポイント102及び第2のエンドポイント104において鍵導出関数124によって生成される第1のデータ暗号化鍵204は、互いに一致する。第1のエンドポイント102及び第2のエンドポイント104において鍵導出関数124によって生成される第2の鍵導出鍵206も、互いに一致する。
【0071】
鍵導出関数を第2の鍵導出鍵に適用することによって、第2のデータ暗号化鍵及び第3の鍵導出鍵が、第1のエンドポイント及び第2のエンドポイントにおいて生成される(ブロック506)。本明細書で説明される原理によれば、第1のエンドポイント及び第2のエンドポイントは、第1のエンドポイント及び第2のエンドポイントの両方で既知である鍵ローリングイベントを検出することに応じて、第1のデータ暗号化鍵から第2のデータ暗号化鍵にローリングするように構成されている。例として、第1のエンドポイント102及び第2のエンドポイント104における鍵導出関数124は、第2のデータ暗号化鍵208と、関数が第2の鍵導出鍵206に基づいて導出する第3の鍵導出鍵210と、を生成し、出力する。記載の技術によれば、第1のエンドポイント102及び第2のエンドポイント104において鍵導出関数124によって生成される第2のデータ暗号化鍵208は、互いに一致する。第1のエンドポイント102及び第2のエンドポイント104において鍵導出関数124によって生成される第3の鍵導出鍵210も、互いに一致する。
【0072】
本明細書の開示に基づいて、多くの変形が可能であることを理解されたい。特徴及び要素が特定の組み合わせで上述されているが、各特徴又は要素は、他の特徴及び要素を用いずに単独で、又は、他の特徴及び要素を用いて若しくは用いずに他の特徴及び要素との様々な組み合わせで使用可能である。
【0073】
図に示され及び/又は本明細書に記載される様々な機能ユニット(必要に応じて、第1のエンドポイント102、第2のエンドポイント104、通信リンク106、暗号化エンジン110、及び、鍵ローリングシステム116を含む)は、ハードウェア回路、プログラマブルプロセッサ上で実行されるソフトウェア若しくはファームウェア、又は、ハードウェア、ソフトウェア及びファームウェアのうち2つ以上の任意の組み合わせ等の様々な異なる方式の何れかで実装される。提供される方法は、汎用コンピュータ、プロセッサ又はプロセッサコア等の様々なデバイスの何れかにおいて実装される。好適なプロセッサとしては、例として、汎用プロセッサ、専用プロセッサ、従来型プロセッサ、デジタルシグナルプロセッサ(digital signal processor、DSP)、グラフィックス処理ユニット(graphics processing unit、GPU)、並列加速プロセッサ、複数のマイクロプロセッサ、DSPコアに関連する1つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA)回路、任意の他のタイプの集積回路(integrated circuit、IC)、及び/又は、状態マシンが挙げられる。
【0074】
1つ以上の実施形態では、本明細書に提供される方法及び手順は、汎用コンピュータ又はプロセッサによる実行のために非一時的なコンピュータ可読記憶媒体に組み込まれるコンピュータプログラム、ソフトウェア又はファームウェアにおいて実装することができる。非一時的なコンピュータ可読記憶媒体の例としては、読み取り専用メモリ(read only memory、ROM)、ランダムアクセスメモリ(random access memory、RAM)、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスク及びリムーバブルディスク等の磁気媒体、磁気光学媒体、並びに、CD-ROMディスク及びデジタル多用途ディスク(digital versatile disk、DVD)等の光学媒体が挙げられる。
【0075】
(結論)
システム及び技術は、構造的特徴及び/又は方法論的行為に特有の言語で説明されてきたが、添付の特許請求の範囲において定義されるシステム及び技術は、説明される特定の特徴又は行為に必ずしも限定されないことを理解されたい。むしろ、特定の特徴及び行為は、特許請求される発明を実施する例示的な形態として開示される。
図1
図2
図3
図4
図5
【国際調査報告】