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

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

▶ マイクロン テクノロジー, インク.の特許一覧

特表2022-554288メモリサブシステムへの暗号鍵の委任
<>
  • 特表-メモリサブシステムへの暗号鍵の委任 図1
  • 特表-メモリサブシステムへの暗号鍵の委任 図2
  • 特表-メモリサブシステムへの暗号鍵の委任 図3
  • 特表-メモリサブシステムへの暗号鍵の委任 図4
  • 特表-メモリサブシステムへの暗号鍵の委任 図5
  • 特表-メモリサブシステムへの暗号鍵の委任 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-28
(54)【発明の名称】メモリサブシステムへの暗号鍵の委任
(51)【国際特許分類】
   H04L 9/16 20060101AFI20221221BHJP
   H04L 9/32 20060101ALI20221221BHJP
【FI】
H04L9/16
H04L9/32 200B
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022525347
(86)(22)【出願日】2020-11-06
(85)【翻訳文提出日】2022-06-27
(86)【国際出願番号】 US2020059489
(87)【国際公開番号】W WO2021092445
(87)【国際公開日】2021-05-14
(31)【優先権主張番号】16/677,306
(32)【優先日】2019-11-07
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】595168543
【氏名又は名称】マイクロン テクノロジー,インク.
(74)【代理人】
【識別番号】100121083
【弁理士】
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【弁理士】
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【弁理士】
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】ルアン ジェームズ
(72)【発明者】
【氏名】ストロング ロバート ダブリュー.
(57)【要約】
鍵委任要求は、ホストシステムから受信される。鍵委任要求は、新しい公開鍵を含む。チャレンジは、新しい公開鍵及びルート公開鍵に基づいて生成され、チャレンジは、要求に応えてホストシステムに提供される。第1の及び第2のデジタル署名は、ホストシステムから受信される。第1のデジタル署名は、新しい公開鍵に対応する新しい秘密鍵を使用してチャレンジに暗号で署名することによって生成され、第2のデジタル署名は、ルート公開鍵に対応するルート秘密鍵を使用してチャレンジに暗号で署名することによって生成される。第1のデジタル署名は、新しい公開鍵を使用して確認され、第2のデジタル署名はルート公開鍵を使用して確認される。両方の署名の確認の成功に基づいて、新しい公開鍵は、1つまたは複数の暗号操作で利用される。
【特許請求の範囲】
【請求項1】
システムであって、
メモリコンポーネントと、
ホストシステムから、新しい公開鍵を含む鍵委任要求を受信することと、
前記要求を受信することに基づいて、前記新しい公開鍵及びルート公開鍵に基づいたチャレンジを生成することと、
前記鍵委任要求に応えて、前記ホストシステムに前記チャレンジを提供することと、
前記ホストシステムから、前記新しい公開鍵に対応する新しい秘密鍵で前記チャレンジに暗号で署名することによって生成された第1のデジタル署名を受信することと、
前記ホストシステムから、前記ルート公開鍵に対応するルート秘密鍵で前記チャレンジに暗号で署名することによって生成された第2のデジタル署名を受信することと、
前記新しい公開鍵を使用して前記第1のデジタル署名を確認することと、
前記ルート公開鍵を使用して前記第2のデジタル署名を確認することと、
前記第1の及び前記第2のデジタル署名を確認することに基づいて、1つまたは複数の暗号操作で前記新しい公開鍵を利用することと
を含む操作を実行するために、前記メモリコンポーネントと動作可能に結合されたメモリサブシステムコントローラと
を備える、前記システム。
【請求項2】
揮発性メモリコンポーネントをさらに含み、
前記操作が、
前記第1の及び前記第2のデジタル署名を確認することに基づいて、前記揮発性メモリコンポーネントに前記新しい公開鍵をコピーすること
をさらに含む、請求項1に記載のシステム。
【請求項3】
前記ルート公開鍵を格納するために不揮発性メモリコンポーネントをさらに含み、
前記操作が、
前記ホストシステムから、前記新しい公開鍵を永続的にするコマンドを受信することと、
前記コマンドに基づいて、前記不揮発性メモリコンポーネントに前記新しい公開鍵を格納することと
をさらに含む、請求項2に記載のシステム。
【請求項4】
前記チャレンジが、ノンス、前記新しい公開鍵、及び前記ルート公開鍵を含む、請求項1に記載のシステム。
【請求項5】
前記チャレンジの前記生成が、
前記ノンスを生成することであって、前記ノンスが乱数を含む、前記生成することと、
前記ノンス、前記新しい公開鍵、及び前記ルート公開鍵を結合することと
を含む、請求項4に記載のシステム。
【請求項6】
セキュアサーバが前記ルート秘密鍵を格納し、
安全実行環境が、前記新しい秘密鍵を格納する、
請求項1に記載のシステム。
【請求項7】
前記セキュアサーバが、ハードウェアセキュリティモジュール(HSM)を備え、
前記安全実行環境が、ポータブルHSM、スマートカード、または第2のセキュアサーバの1つを備える、
請求項6に記載のシステム。
【請求項8】
前記新しい公開鍵を使用する前記第1のデジタル署名の前記確認が、
前記新しい公開鍵を使用して、前記チャレンジに基づいた第1のハッシュデータを生成することと、
前記新しい公開鍵を使用して前記第1のデジタル署名を復号することであって、前記第1のデジタル署名の前記復号が、第1の復号されたデータを生じさせる、前記復号することと、
前記第1のハッシュデータを前記第1の復号されたデータと比較することと
を含み、
前記ルート公開鍵を使用する前記第2のデジタル署名の前記確認が、
前記ルート公開鍵を使用して、前記チャレンジに基づいた第2のハッシュデータを生成することと、
前記ルート公開鍵を使用して前記第2のデジタル署名を復号することであって、前記第2のデジタル署名の前記復号が、第2の復号されたデータを生じさせる、前記復号することと、
前記第2のハッシュデータを前記第2の復号されたデータと比較することと
を含む、
請求項1に記載のシステム。
【請求項9】
前記ルート公開鍵を格納するためにメモリを備える鍵ストアをさらに備える、請求項1に記載のシステム。
【請求項10】
ホストインタフェースをさらに備え、前記鍵委任要求、前記第1のデジタル署名、及び前記第2のデジタル署名が、前記ホストインタフェースを介して受信される、請求項1に記載のシステム。
【請求項11】
方法であって、
ホストシステムから、新しい公開鍵を含む鍵委任要求を受信することと、
前記要求を受信することに基づいて、1つまたは複数のハードウェアプロセッサによって、前記新しい公開鍵及びルート公開鍵に基づいたチャレンジを生成することと、
前記鍵委任要求に応えて、前記ホストシステムに前記チャレンジを提供することと、
前記ホストシステムから、前記新しい公開鍵に対応する新しい秘密鍵で前記チャレンジに暗号で署名することによって生成された第1のデジタル署名を受信することと、
前記ホストシステムから、前記ルート公開鍵に対応するルート秘密鍵で前記チャレンジに暗号で署名することによって生成された第2のデジタル署名を受信することと、
前記1つまたは複数のハードウェアプロセッサによって、前記新しい公開鍵を使用して前記第1のデジタル署名を確認することと、
前記1つまたは複数のハードウェアプロセッサによって、前記ルート公開鍵を使用して前記第2のデジタル署名を確認することと、
前記第1の及び前記第2のデジタル署名を確認することに基づいて、1つまたは複数の暗号操作で前記新しい公開鍵を利用することと
を含む、前記方法。
【請求項12】
前記第1の及び前記第2のデジタル署名を確認することに基づいて、揮発性メモリコンポーネントに前記新しい公開鍵をコピーすることをさらに含む、請求項11に記載の方法。
【請求項13】
前記ホストシステムから、前記新しい公開鍵を永続的にするコマンドを受信することと、
前記コマンドに基づいて、前記不揮発性メモリコンポーネントに前記新しい公開鍵を格納することと
をさらに含む、請求項12に記載の方法。
【請求項14】
前記チャレンジが、ノンス、前記新しい公開鍵、及び前記ルート公開鍵を含む、請求項11に記載の方法。
【請求項15】
前記チャレンジの前記生成が、
前記ノンスを生成することであって、前記ノンスが乱数を含む、前記生成することと、
前記ノンス、前記新しい公開鍵、及び前記ルート公開鍵を結合することと
を含む、請求項14に記載の方法。
【請求項16】
セキュアサーバが、前記ルート秘密鍵を格納し、
安全実行環境が、前記新しい秘密鍵を格納する、
請求項13に記載の方法。
【請求項17】
前記セキュアサーバが、ハードウェアセキュリティモジュール(HSM)を備え、
前記安全実行環境が、ポータブルHSM、スマートカード、または第2のセキュアサーバの1つを備える、
請求項16に記載の方法。
【請求項18】
前記新しい公開鍵を使用する前記第1のデジタル署名の前記確認が、
前記新しい公開鍵を使用して、前記チャレンジに基づいた第1のハッシュデータを生成することと、
前記新しい公開鍵を使用して前記第1のデジタル署名を復号することであって、前記第1のデジタル署名の前記復号が、第1の復号されたデータを生じさせる、前記復号することと、
前記第1のハッシュデータを前記第1の復号されたデータと比較することと
を含み、
前記ルート公開鍵を使用する前記第2のデジタル署名の前記確認が、
前記ルート公開鍵を使用して、前記チャレンジに基づいた第2のハッシュデータを生成することと、
前記ルート公開鍵を使用して前記第2のデジタル署名を復号することであって、前記第2のデジタル署名の前記復号が、第2の復号されたデータを生じさせる、前記復号することと、
前記第2のハッシュデータを前記第2の復号されたデータと比較することと
を含む、
請求項17に記載の方法。
【請求項19】
前記1つまたは複数のハードウェアプロセッサが、メモリサブシステムコントローラに相当する、請求項11に記載の方法。
【請求項20】
非一時的なコンピュータ可読記憶媒体であって、処理デバイスによって実行されるときに、
ホストシステムから、新しい公開鍵を含む鍵委任要求を受信することと、
前記要求を受信することに基づいて、前記新しい公開鍵及びルート公開鍵に基づいたチャレンジを生成することと、
前記鍵委任要求に応えて、前記ホストシステムに前記チャレンジを提供することと、
前記ホストシステムから、前記新しい公開鍵に対応する新しい秘密鍵で前記チャレンジに暗号で署名することによって生成された第1のデジタル署名を受信することと、
前記ホストシステムから、前記ルート公開鍵に対応するルート秘密鍵で前記チャレンジに暗号で署名することによって生成された第2のデジタル署名を受信することと、
前記新しい公開鍵を使用して前記第1のデジタル署名を確認することと、
前記ルート公開鍵を使用して前記第2のデジタル署名を確認することと、
前記第1の及び前記第2のデジタル署名を確認することに基づいて、1つまたは複数の暗号操作で前記新しい公開鍵を利用することとを
含む操作を実行するように、前記処理デバイスを構成する命令を含む、
前記非一時的なコンピュータ可読記憶媒体。

【発明の詳細な説明】
【技術分野】
【0001】
優先権出願
本出願は、2019年11月7日に出願された米国出願第16/677,306号に対する優先権を主張するものであり、参照によりその全体が本明細書に組み込まれる。
【0002】
本開示の実施形態は、一般に、メモリサブシステムに関し、より具体的には、メモリサブシステムへの暗号鍵の委任に関する。
【背景技術】
【0003】
メモリサブシステムは、データを格納する1つまたは複数のメモリコンポーネントを含むことができる。メモリコンポーネントは、例えば、不揮発性メモリコンポーネント及び揮発性メモリコンポーネントであり得る。一般に、ホストシステムは、メモリコンポーネントにデータを格納し、メモリコンポーネントからデータを取り出すために、メモリサブシステムを利用することができる。
【0004】
本開示は、以下に示す詳細な説明及び本開示のさまざまな実施形態の添付図面から、より十分に理解される。
【図面の簡単な説明】
【0005】
図1】本開示のいくつかの実施形態による、メモリサブシステムを含む例示的なコンピューティング環境を示す。
図2】本開示のいくつかの実施形態による、暗号鍵の委任のための例示的な方法を実行する際の安全な通信環境におけるコンポーネント間のインタラクションを示すデータフロー図である。
図3】本開示のいくつかの実施形態による、暗号鍵の委任のための例示的な方法を実行する際の安全な通信環境におけるコンポーネント間のインタラクションを示すスイムレーン図である。
図4】本開示のいくつかの実施形態による、メモリサブシステムにおける暗号鍵の委任のための例示的な方法を示す流れ図である。
図5】本開示のいくつかの実施形態による、メモリサブシステムにおける暗号鍵の委任のための例示的な方法を示す流れ図である。
図6】本開示の実施形態が作用することができる例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0006】
本開示の態様は、メモリサブシステムへの暗号鍵の委任を対象とする。メモリサブシステムは、ストレージデバイス、メモリモジュール、またはストレージデバイスとメモリモジュールのハイブリッドであり得る。ストレージデバイス及びメモリモジュールの例は、図1に関連して以下に説明される。一般に、ホストシステムは、データを格納する1つまたは複数のメモリデバイスを含むメモリサブシステムを利用することができる。ホストシステムは、メモリサブシステムに格納されるデータを提供することができ、メモリサブシステムから取り出されるデータを要求することができる。
【0007】
メモリサブシステムは、フィールドエンジニアなどの特別に許可されたユーザーのみがアクセスすべきである極秘情報、専有情報、または他の機密情報を格納することができる。メモリサブシステムによって格納される機密情報を保護するために、多くの場合、公開鍵インフラストラクチャ(PKI)が使用されて、機密情報に暗号で署名し、検証する。このようにして、出所の信頼及び許可されていない修正を検出する能力を引き出すことができる。PKIの例示的な使用は、ファームウェアの署名及び検証だけでなく、メモリサブシステムのセキュリティを危殆化する可能性のあるコマンドの許可を含む。
【0008】
特定の実施態様では、非対称鍵ペア(本明細書で「暗号鍵」とも呼ばれる)の公開鍵は、カスタマへの出荷前に、相手先商標製品製造供給企業(OEM)によってメモリサブシステムにプロビジョニングされ、一方、秘密鍵は、メモリサブシステムにとって外部であり、メモリサブシステムから独立しているセキュアシステム(例えば、OEMによって運用される)のハードウェアセキュリティモジュール(HSM)によって保護される。メモリサブシステムに最初にプロビジョニングされる公開鍵は、「ルート」公開鍵と呼ばれる場合があり、一方、セキュアサーバのHSMによって格納された対応する秘密鍵は、「ルート」秘密鍵と呼ばれる場合がある。Rivest‐Shamir‐Adleman(RSA)PKI操作により、暗号化操作と復号操作、及び署名生成操作と署名検証操作が可能になる。公開鍵で暗号化されたデータは、対応する秘密鍵でのみ復号することができる。
【0009】
いくつかの状況では、メモリサブシステムによって使用される公開鍵を変更することが所望される場合がある。すなわち、機密情報を暗号化及び/または検証するために、メモリサブシステムにルート公開鍵ではなく、新しい公開鍵を使用させることが所望される場合がある。例えば、メモリサブシステムに、セキュアサーバのHSMではなく、ポータブルHSM(例えば、ラップトップに含まれる)によって格納された新しい秘密鍵に対応する新しい公開鍵を利用させることが望ましい場合がある。別の例では、メモリサブシステムに、暗号ライブラリを含むスマートカードによって格納された新しい秘密鍵に対応する新しい公開鍵を利用させることが望ましい場合がある。さらに別の例では、メモリサブシステムに、セキュアサーバの同じHSMによって格納された新しい秘密鍵に対応する新しい公開鍵を利用させることが望ましい場合がある。いずれにせよ、新しい公開鍵は、メモリサブシステムによって格納された機密情報の不正アクセスを取得するために悪用される場合があるセキュリティの脆弱性の作成を回避するために、ウェブオブトラストを維持する安全な方法でメモリサブシステムに委任されなければならない。
【0010】
本開示の態様は、メモリサブシステムへの新しい暗号鍵の委託のために安全なプロトコルを実装することによって上述の問題及び他の問題に対処する。上述のように、ルート公開鍵及びルート秘密鍵を含む非対称鍵ペアが生成され、メモリサブシステムコントローラは、最初にルート公開鍵でプロビジョニングされ、一方、セキュアサーバはルート秘密鍵を格納する。メモリサブシステムに新しい公開鍵を委任するために、ホストシステムのユーザー(例えば、フィールドアプリケーションエンジニア(FAE))は、ホストシステムに、メモリサブシステムコントローラに対する新しい鍵委任要求を発行させ得る。新しい鍵委任要求は、メモリサブシステムコントローラに委任される新しい公開鍵を含む。要求を受け取ったことに応えて、メモリサブシステムコントローラは、新しい公開鍵、ルート公開鍵、及び特異データ(例えば、乱数及び/またはデバイスの特異データ)を含むチャレンジを生成し、ホストシステムに返す。特異データは、例えば、デバイスの特異データ、及び/または一意であり、後に生成されるチャレンジとは異なる乱数を含み得る。チャレンジに含まれる特異データは、チャレンジが、メモリサブシステムコントローラによってのみ生成できることを保証し、チャレンジが他のデバイスによって再現されるのを防ぐ。特異データはまた、チャレンジ応答が、後にデバイスに再生されることを防ぐ。
【0011】
メモリサブシステムコントローラに、暗号操作で新しい公開鍵を受け入れさせ、使用させるために、ホストシステムのユーザーは、ルート秘密鍵と、新しい公開鍵に対応する新しい秘密鍵の両方によって署名されたチャレンジを有し、メモリサブシステムに2つのデジタル署名を提供しなければならない。これらの2つのデジタル署名は、OEMがメモリサブシステムへの新しい鍵の委任を承認すること、及びユーザーが新しい秘密鍵を所有していることを証明する。これらの署名を得るために、ホストシステムのユーザーは、ルート秘密鍵を格納するセキュアサーバに第1の署名要求を提出し得、鍵委任安全実行環境(例えば、ポータブルHSM、スマートカード、またはセキュアサーバ)に第2の署名要求を提出し得る。
【0012】
第1の署名要求に応えて、セキュアサーバは、ルート秘密鍵でチャレンジに暗号で署名することによって生成された第1のデジタル署名を返し、第2の署名要求に基づいて、鍵委任安全実行環境は、新しい秘密鍵でチャレンジに暗号で署名することによって生成された第2のデジタル署名を返す。ホストシステムのユーザーは、ホストシステムを介してメモリサブシステムコントローラに2つのデジタル署名を提供し、メモリサブシステムコントローラは次に、それぞれルート公開鍵及び新しい公開鍵を使用して、2つのデジタル署名を確認する。2つの署名の確認の成功に基づいて、メモリサブシステムコントローラは、新しい公開鍵をメモリにコピーし、その後、1つまたは複数の暗号操作で新しい公開鍵を使用し得る。
【0013】
上述のセキュリティプロトコルを利用すると、許可されていない関係者による機密情報のアクセスを防ぐことにより、メモリサブシステムの脆弱性が低下する。さらに、セキュリティプロトコルは、メモリサブシステムに最初にプロビジョニングされたルート鍵以外の暗号鍵の使用を可能にしながら、許可された担当者が、メモリサブシステムからの機密情報に安全にアクセスするための安全なメカニズムを提供する。
【0014】
図1は、本開示のいくつかの実施形態による、メモリサブシステム110を含む例示的なコンピューティング環境100を示す。メモリサブシステム110は、メモリコンポーネント112-1~112-N(以降、「メモリデバイス」とも呼ばれる)などの媒体を含むことができる。メモリコンポーネント112-1~112-Nは、揮発性メモリコンポーネント、不揮発性メモリコンポーネント、またはそのようなものの組み合わせであり得る。メモリサブシステム110は、ストレージデバイス、メモリモジュール、またはストレージデバイスとメモリモジュールのハイブリッドであり得る。ストレージデバイスの例は、ソリッドステートドライブ(SSD)、フラッシュドライブ、ユニバーサルシリアルバス(USB)フラッシュドライブ、組み込みマルチメディアコントローラー(eMMC)ドライブ、ユニバーサルフラッシュストレージ(UFS)ドライブ、及びハードディスクドライブ(HDD)を含む。メモリモジュールの例は、デュアルインラインメモリモジュール(DIMM)、スモールアウトラインDIMM(SO-DIMM)、及び不揮発性デュアルインラインメモリモジュール(NVDIMM)を含む。
【0015】
コンピューティング環境100は、メモリシステムに結合されたホストシステム120を含むことができる。メモリシステムは、1つまたは複数のメモリサブシステム110を含むことができる。いくつかの実施態様では、ホストシステム120は、異なるタイプのメモリサブシステム110に結合されている。図1は、1つのメモリサブシステム110に結合されたホストシステム120の一例を示す。ホストシステム120は、例えばメモリサブシステム110にデータを書き込み、メモリサブシステム110からデータを読み取るためにメモリサブシステム110を使用する。本明細書で使用される場合、「~に結合される」は、一般に、電気、光、磁気などの接続を含む、有線または無線を問わず、間接通信接続または直接通信接続(例えば、介在するコンポーネントなし)であり得るコンポーネント間の接続を指す。
【0016】
ホストシステム120は、デスクトップコンピュータ、ラップトップコンピュータ、ネットワークサーバ、モバイルデバイス、組み込みコンピュータ(例えば、車両、産業機器、またはネットワーク化された商用デバイスに含まれるもの)などのコンピューティングデバイス、またはメモリ及び処理デバイスを含むそのようなコンピューティングデバイスであり得る。ホストシステム120がメモリサブシステム110からデータを読み取る、またはメモリサブシステム110にデータを書き込むことができるように、ホストシステム120はメモリサブシステム110を含むか、またはメモリサブシステムに結合される場合がある。ホストシステム120は、物理ホストインタフェースを介してメモリサブシステム110に結合される場合がある。物理ホストインタフェースの例は、シリアルアドバンスドテクノロジーアタッチメント(SATA)インタフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インタフェース、ユニバーサルシリアルバス(USB)インタフェース、ファイバチャネルインタフェース、シリアルアタッチドSCSI(SAS)などを含むが、これらに限定されない。物理ホストインタフェースを使用して、ホストシステム120とメモリサブシステム110との間でデータを伝送することができる。メモリサブシステム110がPCIeインタフェースによってホストシステム120と結合されているときに、ホストシステム120は、NVM Express(NVMe)インタフェースをさらに利用して、メモリコンポーネント112-1~112-Nにアクセスすることができる。物理ホストインタフェースは、メモリサブシステム110とホストシステム120との間で制御信号、アドレス信号、データ信号、及び他の信号を渡すためのインタフェースを提供することができる。
【0017】
メモリコンポーネント112-1~112-Nは、さまざまなタイプの不揮発性メモリコンポーネント及び/または揮発性メモリコンポーネントの任意の組み合わせを含むことができる。不揮発性メモリコンポーネントの一例は、否定論理積(NAND)型フラッシュメモリを含む。メモリコンポーネント112-1~112-Nのそれぞれは、シングルレベルセル(SLC)、マルチレベルセル(MLC)、トリプルレベルセル(TLC)、またはクアッドレベルセル(QLC)などのメモリセルの1つまたは複数のアレイを含むことができる。いくつかの実施形態では、特定のメモリコンポーネントは、メモリセルのSLC部分と、別のタイプ(例えば、MLC、TLC、QLC)の部分の両方を含むことができる。メモリセルのそれぞれは、ホストシステム120によって使用される1ビット以上のデータを格納することができる。NAND型フラッシュメモリなどの不揮発性メモリコンポーネントが説明されているが、メモリコンポーネント112-1~112-Nは、揮発性メモリなどの他の任意のタイプのメモリに基づく場合がある。いくつかの実施形態では、メモリコンポーネント112-1~112-Nは、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ダイナミックランダムアクセスメモリ(DRAM)、同期ダイナミックランダムアクセスメモリ(SDRAM)、相変化メモリ(PCM)、磁気ランダムアクセスメモリ(MRAM)、否定論理和(NOR)フラッシュメモリ、電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)、及び不揮発性メモリセルのクロスポイントアレイであることができるが、これらに限定されない。不揮発性メモリセルのクロスポイントアレイは、積層可能なクロスグリッドデータアクセスアレイと組み合わせて、バルク抵抗の変化に基づいてビットストレージを実行することができる。さらに、多くのフラッシュベースのメモリとは対照的に、クロスポイント不揮発性メモリは、不揮発性メモリセルを事前に消去せずに不揮発性メモリセルをプログラムできるインプレース書き込み操作を実行できる。さらに、上述のように、メモリコンポーネント112-1~112-Nのメモリセルは、データを格納するために使用されるメモリコンポーネントのユニットを参照できるページを形成するためにグループ化することができる。いくつかのタイプのメモリ(例えば、NAND)では、ブロックを形成するページをグループ化することができる。
【0018】
メモリサブシステムコントローラ115(以降本明細書では、「コントローラ」と呼ばれる)は、メモリコンポーネント112-1~112-Nでデータを読み取る、データを書き込む、またはデータを消去するなどの操作、及び他のそのような操作を実行するためにメモリコンポーネント112-1~112-Nと通信することができる。コントローラ115は、1つまたは複数の集積回路及び/または個別のコンポーネント、バッファメモリ、またはそれらの組み合わせなどのハードウェアを含むことができる。コントローラ115は、マイクロコントローラ、専用論理回路(例えば、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)など)、または別の適切なプロセッサであり得る。コントローラ115は、ローカルメモリ119に格納された命令を実行するように構成されたプロセッサ(処理デバイス)117を含むことができる。図示の例では、コントローラ115のローカルメモリ119は、さまざまなプロセス、操作、論理フロー、及びメモリサブシステム110とホストシステム120との間の通信の処理を含む、メモリサブシステム110の動作を制御するルーチンを実行するための命令を格納するように構成された埋め込みメモリを含む。いくつかの実施形態では、ローカルメモリ119は、メモリポインタ、フェッチされたデータなどを格納するメモリレジスタを含むことができる。ローカルメモリ119はまた、マイクロコードを格納するためのROMを含むことができる。図1の例示的なメモリサブシステム110は、コントローラ115を含むものとして示され、本開示の別の実施形態では、メモリサブシステム110は、コントローラ115を含まなくてもよく、代わりに、外部制御(例えば、外部ホストによって、またはメモリサブシステムとは別のプロセッサもしくはコントローラによって提供される)に依拠し得る。
【0019】
一般に、コントローラ115は、ホストシステム120からコマンドまたは操作を受信することができ、コマンドまたは操作を、メモリコンポーネント112-1~112-Nへの所望のアクセスを達成するための命令または適切なコマンドに変換することができる。コントローラ115は、ウェアレベリング操作、ガベージコレクション操作、エラー検出及びエラー訂正コード(ECC)操作、暗号化操作、キャッシング操作、及び論理ブロックアドレスと物理ブロックアドレスとの間のアドレス変換などの他の操作を担うことができ、これらは、メモリコンポーネント112-1~112-Nに関連付けられている。コントローラ115は、物理ホストインタフェースを介してホストシステム120と通信するためのホストインタフェース回路をさらに含むことができる。ホストインタフェース回路は、ホストシステム120から受信したコマンドをメモリコンポーネント112-1~112-Nにアクセスするコマンド命令に変換し、メモリコンポーネント112-1~112-Nに関連付けられた応答をホストシステム120のための情報に変換することができる。
【0020】
メモリサブシステム110はまた、図示されていない追加の回路またはコンポーネントを含むことができる。いくつかの実施形態では、メモリサブシステム110は、キャッシュまたはバッファ(例えば、DRAM)、及びコントローラ115からアドレスを受信し、アドレスをデコードしてメモリコンポーネント112-1~112-Nにアクセスできるアドレス回路(例えば、ロウデコーダとカラムデコーダ)を含むことができる。
【0021】
また、メモリサブシステム110は、メモリサブシステム110との安全な通信を容易にするセキュリティコンポーネント113を含む。セキュリティコンポーネント113は、コントローラ115、またはメモリコンポーネント112-1~112-Nのいずれか1つまたは複数に含まれる場合がある。いくつかの実施形態では、コントローラ115は、セキュリティコンポーネント113の少なくとも一部を含む。例えば、コントローラ115は、本明細書に記載の操作を実行するために、ローカルメモリ119に格納される命令を実行するように設定されるプロセッサ(処理デバイス)117を含むことができる。いくつかの実施形態では、セキュリティコンポーネント113は、ホストシステム120、アプリケーション、またはオペレーティングシステムの一部である。
【0022】
セキュリティコンポーネント113は、セキュリティコンポーネント113が情報を暗号化及び/または検証するために使用する1つまたは複数の暗号鍵を格納するために鍵ストア109をさらに含むことができる。例えば、鍵ストア109は、セキュリティコンポーネント113が情報を暗号化する、または対応するルート秘密鍵を使用して署名された情報を検証するために使用するルート公開鍵を格納することができる。いくつかの実施形態では、鍵ストア109は、メモリサブシステムコントローラ115のローカルメモリ(例えば、ローカルメモリ119)内に実装される。いくつかの実施形態では、鍵ストア109は、メモリコンポーネント112-1~112-Nの1つまたは複数内に実装される。鍵ストア109は、その中に格納された暗号鍵が、システム再起動時に失われないように、不揮発性メモリ内に実装することができる。
【0023】
セキュリティコンポーネント113は、ホストシステム120から、暗号操作で新しい公開鍵を使用する要求を受け取ることができる。要求に応えて、セキュリティコンポーネント113は、ホストシステム120に、ルート公開鍵、要求に含まれる新しい公開鍵、及び乱数を含むチャレンジを提供する。いくつかの実施形態では、チャレンジは、デバイス固有の情報をさらに含むことができる。セキュリティコンポーネント113によって生成される各チャレンジは、要求に固有である。新しい公開鍵を使用する前に、セキュリティコンポーネント113は、チャレンジに基づいた2つのデジタル署名を受信する。第1のデジタル署名は、ルート秘密鍵を使用してチャレンジに署名することによって生成され、第2のデジタル署名は、新しい公開鍵に対応する新しい秘密鍵を使用してチャレンジに署名することによって生成される。第1の署名は、新しい公開鍵が許可された鍵(例えば、OEMによって許可)であることを確認し、一方、第2の署名は、要求するユーザーが新しい秘密鍵を所有していることを確認する。2つの署名を受信し、確認すると、セキュリティコンポーネント113は、新しい公開鍵をメモリにコピーし、1つまたは複数の暗号操作で新しい公開鍵を使用することができる。
【0024】
セキュリティコンポーネント113は、物理ホストインタフェースを介して、または診断ポートもしくはメンテノンスポートとして特別に構成できるネイティブ側波帯通信ポート(例えば、ユニバーサル非同期送受信機(UART)ポート、または双方向通信をサポートする他のシリアル通信ポート)を介してホストシステム120と通信することができる。
【0025】
図2は、本開示のいくつかの実施形態による、暗号鍵の委任のための例示的な方法を実行する際の安全な通信環境におけるコンポーネント間のインタラクションを示すデータフロー図である。図2に照らして、初期の非対称暗号化鍵ペア(ルート公開鍵207及びルート秘密鍵211)は予め生成することができ、セキュリティコンポーネント113は、ルート公開鍵207でプロビジョニングすることができ、一方、セキュアサーバ200は、ルート秘密鍵211でプロビジョニングされる。セキュリティコンポーネント113は、鍵ストア109にルート公開鍵207を格納する。セキュアサーバ200は、ルート秘密鍵211を格納するためにHSMを含む。さらに、図2に照らして、新しい非対称鍵ペア(新しい公開鍵205及び新しい秘密鍵213)を生成することができる。新しい公開鍵205は、以下に説明される方法でセキュリティコンポーネント113に委任されるべきであり、新しい秘密鍵213は、鍵委任安全実行環境202によって格納される。
【0026】
いくつかの実施形態では、鍵委任安全実行環境202は、スマートカードであるか、またはそれを含む場合がある。スマートカードは、1つまたは複数の機能を実行するために組み込み回路を含み、少なくとも秘密鍵を格納するために内部メモリを含むデバイスである。スマートカードは、直接的な物理的接触により、または遠隔の非接触無線周波数インタフェースを使用してリーダーコンポーネント(図示せず)に接続することができる。リーダーコンポーネントは、スマートカードから情報を読み取り、インタフェースを介してホストシステム120と通信することができる。例えば、メモリサブシステム110は、リーダーコンポーネントがメモリサブシステム110と情報を交換することを可能にするAPIを含むことができる。いくつかの実施形態では、ユーザーは、秘密鍵などのスマートカードによって格納される情報にアクセスするために、スマートカードに個人識別番号(PIN)を提供する必要がある場合がある。スマートカードが秘密鍵を格納するために利用される実施形態では、多様素認証プロセスが、メモリサブシステム110を特定のユーザー(スマートカードが割り当てられているユーザー)に結び付ける。これらの実施形態に一致して、メモリサブシステム110は、スマートカードがリーダーコンポーネントによって読み取られるまでデータにアクセスできないロック状態にとどまる。
【0027】
いくつかの実施形態では、鍵委任安全実行環境202は、(例えば、ラップトップに組み込まれた)ポータブルHSMであるか、またはそれを含む場合がある。いくつかの実施形態では、鍵委任安全実行環境202は、第2のセキュアサーバ(例えば、OEMによって運用されるセキュアサーバ200またはサードパーティによって運用されるセキュアサーバ)であるか、またはそれを含む場合がある。
【0028】
示されるように、204で、ホストシステム120は、鍵委任要求をコントローラ115に送信する。鍵委任要求は、コントローラ115に委任されている新しい公開鍵205を含む。
【0029】
要求に応えて、コントローラ115のセキュリティコンポーネント113はチャレンジ206を生成する。チャレンジ206は、新しい公開鍵205、ルート公開鍵207、及び乱数を含む。チャレンジ206に含まれる乱数は一意であり、生成される後続のチャレンジとは異なる。このようにして、乱数は、チャレンジ206が、コントローラ115によってのみ生成できることを保証し、チャレンジ206が他のデバイスによって再現されるのを防ぐ。208で、コントローラ115は、チャレンジ206でホストシステム120からの要求に応える。
【0030】
210で、ホストシステム120のユーザー201(例えば、FAE)は、ルート秘密鍵211でチャレンジ206に暗号で署名することによって第1のデジタル署名を生成するために、鍵委任安全実行環境202に第1の署名要求を送信する。212で、ホストシステム120のユーザー201(例えば、FAE)は、新しい秘密鍵213でチャレンジ206に暗号で署名することによって第2のデジタル署名を生成するために、セキュアサーバ200に第2の署名要求を送信する。214で、鍵委任安全実行環境202は、新しい秘密鍵213でチャレンジ206に暗号で署名することによって生成された第1のデジタル署名215で第1の署名要求に応え、216で、セキュアサーバ200は、ルート秘密鍵211でチャレンジ206に暗号で署名することによって生成された第2のデジタル署名217で第2の署名要求に応える。
【0031】
218で、ホストシステム120は、コントローラ115に二重署名されたチャレンジ206を提供する。すなわち、ホストシステム120は、コントローラ115に第1のデジタル署名215及び第2のデジタル署名217を提供する。第1のデジタル署名215及び第2のデジタル署名217を受信すると、コントローラ115は、新しい公開鍵205を使用して第1のデジタル署名215を確認し、ルート公開鍵207を使用して第2のデジタル署名217を確認する。両方の署名の確認が成功すると、コントローラ115は、新しい公開鍵205をメモリにコピーし、以後、1つまたは複数の暗号操作で新しい公開鍵205を使用する。どちらかの署名の確認が成功しない場合、コントローラ115は新しい公開鍵205を破棄する。
【0032】
図3は、本開示のいくつかの実施形態による、暗号鍵の委任のための例示的な方法300を実行する際の安全な通信環境におけるコンポーネント間のインタラクションを示すスイムレーン図である。方法300の前に、初期の非対称暗号化鍵ペア(ルート公開鍵及びルート秘密鍵)は予め生成され、セキュリティコンポーネント113は、ルート公開鍵でプロビジョニングされ、一方、セキュアサーバ200は、ルート秘密鍵でプロビジョニングされる。セキュリティコンポーネント113は、鍵ストア109にルート公開鍵を格納する。さらに、新しい非対称鍵ペア(新しい公開鍵及び新しい秘密鍵)が生成される。新しい公開鍵は、以下に説明される方法でセキュリティコンポーネント113に委任されるべきであり、新しい秘密鍵は、鍵委任安全実行環境(例えば、202)によって格納される。
【0033】
図3に示されるように、方法300は、ホストシステム120がコントローラ115に鍵委任要求を送信する操作302で開始する。鍵委任要求は、コントローラ115に委任されている新しい公開鍵を含む。
【0034】
要求に応えて、コントローラ115のセキュリティコンポーネント113は、操作304で、新しい公開鍵、ルート公開鍵、及び一度のみ使用される番号(ノンス)を含むチャレンジを生成する。したがって、チャレンジを生成する際、セキュリティコンポーネント113はノンスを生成し、ノンスをルート公開鍵及び新しい公開鍵と結合する。いくつかの実施形態で、チャレンジは、デバイス固有の情報(例えば、メモリサブシステム110を説明する情報)などの追加のフィールドを含むことができる。チャレンジに含まれる乱数(及びデバイス固有の情報)は、チャレンジがコントローラ115によってのみ生成できることを保証し、チャレンジが他のデバイスによって再現されるのを防ぐ。
【0035】
コントローラ115は、操作306で、ホストシステム120からの要求にチャレンジで応える。チャレンジを受信すると、ホストシステム120は、操作308で、ルート秘密鍵211でチャレンジに暗号で署名することによって、鍵委任安全実行環境202に第1のデジタル署名を生成する第1の署名要求を送信する。鍵委任安全実行環境202は、(例えば、ラップトップに組み込まれた)ポータブルHSM、スマートカード、またはセキュアサーバ(例えば、OEMによって運用されるセキュアサーバ200、またはサードパーティによって運用されるセキュアサーバ)であるか、またはそれらを含む場合がある。
【0036】
第1の署名要求を送信するのと同時に、ホストシステム120は、操作310で、新しい秘密鍵でチャレンジに暗号で署名することによって、セキュアサーバ200に第2のデジタル署名を生成する第2の署名要求を送信する。第2の署名要求は、有線ネットワーク接続または無線ネットワーク接続を介して送信することができる。要求は、例えば、セキュアサーバ200によって提供されるアプリケーションプログラミングインタフェース(API)を介して受信することができる。
【0037】
操作312で、鍵委任安全実行環境202は、新しい秘密鍵を使用してチャレンジに暗号で署名することによって第1のデジタル署名を生成し、操作314で、鍵委任安全実行環境202は、第1のデジタル署名で第1の署名要求に応える。
【0038】
操作316で、セキュアサーバ200は、ルート秘密鍵を使用してチャレンジに暗号で署名することによって第2のデジタル署名を生成し、操作318で、セキュアサーバ200は、第2のデジタル署名で第2の署名要求に応える。
【0039】
ホストシステム120は、(操作320で)セキュリティコンポーネント113に第1のデジタル署名215及び第2のデジタル署名217を提供する。コントローラ115は、操作322で、第1のデジタル署名及び第2のデジタル署名を確認する。より具体的には、セキュリティコンポーネント113は、新しい公開鍵を使用して第1のデジタル署名を確認し、ルート公開鍵を使用して第2のデジタル署名を確認する。一例として、デジタル署名を確認する際に、セキュリティコンポーネント113は、チャレンジに基づいてハッシュデータを生成するために公開鍵を使用し、セキュリティコンポーネント113は、公開鍵を使用してデジタル署名を復号する。ハッシュデータ及び復号されたデータが一致する場合、鍵は有効と見なされる。それ以外の場合、デジタル署名を生成するために異なる鍵が使用されたか、またはデジタル署名で使用された基本的なデータ(例えば、チャレンジ)が改変されたかのどちらかなので、鍵は無効と見なされる。
【0040】
両方の署名の確認が成功すると、コントローラ115は、操作324で新しい公開鍵をメモリにコピーする。新しい公開鍵がメモリにコピーされると、セキュリティコンポーネント113は、以後、1つまたは複数の暗号操作で新しい公開鍵を使用することができる。いくつかの実施形態では、新しい公開鍵は、新しい公開鍵がシステム再起動時に破棄されるように、揮発性メモリに格納することができる。
【0041】
図4及び図5は、本開示のいくつかの実施形態による、メモリサブシステムにおける暗号鍵の委任のための例示的な方法400を示す流れ図である。方法400は、ハードウェア(例えば、処理デバイス、回路、専用論理、プログラム可能な論理、マイクロコード、デバイスのハードウェア、集積回路など)、ソフトウェア(例えば、処理デバイスで実行(run)または実行(executed)される命令)、またはそれらの組み合わせを含むことができる処理論理によって実行することができる。いくつかの実施形態では、方法400は、図1のセキュリティコンポーネント113によって実行される。プロセスが特定のシーケンスまたは順序で示されているが、特別の定めのない限り、プロセスの順序は修正することができる。したがって、図示された実施形態は例としてのみ理解されるべきであり、図示されたプロセスは異なる順序で実行することができ、いくつかのプロセスは並行して実行することができる。さらに、さまざまな実施形態では、1つまたは複数のプロセスを省略することができる。したがって、すべての実施形態ですべてのプロセスが必要とされるわけではない。他のプロセスフローも可能である。
【0042】
操作405で、処理デバイスは鍵委任要求を受信する。鍵委任要求は新しい公開鍵を含む。要求は、ホストシステム120から受信される場合がある。いくつかの実施形態では、要求を受信することは、ホストシステムインタフェースを介してホストシステムから1つまたは複数のコマンドを受信することを含む。いくつかの実施形態では、要求を受信することは、通信ポート(例えば、UARTポートまたは双方向通信をサポートする他のシリアル通信ポート)を介してホストシステムから要求を受信することを含む。
【0043】
処理デバイスは、動作410で、要求を受信したことに応えてチャレンジを生成する。チャレンジの生成は、ノンスを生成すること、及びノンスを新しい公開鍵及び処理デバイスによって格納されたルート公開鍵と結合することを含む。ルート公開鍵は、製造中に処理デバイスにプロビジョニングし、鍵ストア(例えば、鍵ストア109)に格納することができる。ノンスは乱数を含む。したがって、ノンスの生成は、乱数を生成することを含む。処理デバイスは、多くの既知の乱数生成器の1つを使用して乱数を生成することができる。いくつかの実施形態では、チャレンジは、特定のデバイス固有の情報を含む追加のフィールドを含むことができる。チャレンジに含まれる乱数は、チャレンジがコントローラ115によってのみ生成できることを保証し、チャレンジが他のデバイスによって再現されるのを防ぐ。乱数が一度のみ使用される一意の番号であることを所与として、乱数はまた、以前に署名されたチャレンジの再生からも保護する。
【0044】
操作415で、処理デバイスは、要求に応えてチャレンジを提供する。例えば、処理デバイスは、ホストシステム120から受信された要求に応えて、ホストシステム120にチャレンジを返すことができる。
【0045】
処理デバイスは、(操作420で)新しい公開鍵に関連付けられた新しい秘密鍵でチャレンジに暗号で署名することによって生成された第1のデジタル署名を受信する。すなわち、新しい秘密鍵及び新しい公開鍵は非対称鍵ペアを形成する。
【0046】
処理デバイスは、操作425で、ルート公開鍵に関連付けられたルート秘密鍵でチャレンジに暗号で署名することによって生成された第2のデジタル署名を受信する。すなわち、ルート秘密鍵及びルート公開鍵は非対称鍵ペアを形成する。
【0047】
操作430で、処理デバイスは、新しい公開鍵を使用して第1のデジタル署名を確認する。例えば、処理デバイスは、新しい公開鍵を使用してチャレンジの第1のハッシュを計算し、新しい公開鍵を使用して第1のデジタル署名を復号し、第1のハッシュを復号されたデータと比較することができる。2つの値が一致する(例えば、第1のハッシュ及び復号されたデータが同一である)場合、第1のデジタル署名の確認は成功した。値が一致する場合、署名は、有効と見なされる。値が一致しない場合、それは、第1の署名を生成するために異なる鍵が使用されたか、またはチャレンジが(意図的にまたは意図せずに)修正されたかのどちらかを意味する。したがって、2つの値に差がある場合、確認は失敗する。
【0048】
処理デバイスは、(操作435で)ルート公開鍵を使用して第2のデジタル署名を確認する。例えば、処理デバイスは、ルート公開鍵を使用してチャレンジの第2のハッシュを計算し、ルート公開鍵を使用して第2のデジタル署名を復号し、第2のハッシュを復号されたデータと比較することができる。第1のデジタル署名と同様に、2つの値が一致する場合、第1のデジタル署名の確認は成功した。それ以外の場合、確認は失敗する。
【0049】
処理デバイスは、操作440で、両方のデジタル署名の確認の成功に基づいて、新しい公開鍵をメモリにコピーする。一例では、処理デバイスは、処理デバイスの停電により新しい公開鍵が失われるように、揮発性メモリコンポーネントに新しい公開鍵を格納する。
【0050】
操作445で、処理デバイスは、第1のデジタル署名と第2のデジタル署名の両方の確認の成功に基づいて、暗号操作で新しい公開鍵を利用する。例えば、処理デバイスは、情報を暗号化するために新しい公開鍵を使用することができる。
【0051】
図5に示されるように、方法400は、いくつかの実施形態では、操作450及び455を含むことができる。これらの例と一致して、処理デバイスは、操作440で、揮発性メモリコンポーネントに新しい公開鍵を格納する。操作450で、処理デバイスは、新しい公開鍵を永続的にするコマンドを受信する。コマンドは、ホストシステムインタフェースを介してホストシステム120から受信することができる。コマンドを受信することに基づいて、処理デバイスは、操作455で、新しい公開鍵がシステム再起動時に維持されるように、不揮発性メモリコンポーネントに新しい公開鍵を格納する。一例として、処理デバイスは、鍵ストア109に新しい公開鍵を格納することができる。いくつかの例示的なシステムを以下に示す。
【0052】
例1は、メモリコンポーネントと、ホストシステムから、新しい公開鍵を含む鍵委任要求を受信することと、要求を受信することに基づいて、新しい公開鍵及びルート公開鍵に基づいたチャレンジを生成することと、鍵委任要求に応えて、ホストシステムにチャレンジを提供することと、ホストシステムから、新しい公開鍵に対応する新しい秘密鍵でチャレンジに暗号で署名することによって生成された第1のデジタル署名を受信することと、ホストシステムから、ルート公開鍵に対応するルート秘密鍵でチャレンジに暗号で署名することによって生成された第2のデジタル署名を受信することと、新しい公開鍵を使用して第1のデジタル署名を確認することと、ルート公開鍵を使用して第2のデジタル署名を確認することと、第1の及び第2のデジタル署名を確認することに基づいて、1つまたは複数の暗号操作で新しい公開鍵を利用することとを含む操作を実行するために、メモリコンポーネントと動作可能に結合されたメモリサブシステムコントローラとを含むシステムである。
【0053】
例2で、例1のシステムは、揮発性メモリコンポーネントを任意選択で含み、例1の操作は、第1の及び第2のデジタル署名を確認することに基づいて、揮発性メモリコンポーネントに新しい公開鍵をコピーすることを任意選択で含む。
【0054】
例3で、例1~2のいずれか1つに記載のシステムは、ルート公開鍵を格納するために不揮発性メモリコンポーネントを任意選択で含み、例1~2のいずれかの1つの操作は、ホストシステムから、新しい公開鍵を永続的にするコマンドを受信することと、コマンドに基づいて、不揮発性メモリコンポーネントに新しい公開鍵を格納することとを任意選択で含む。
【0055】
例4で、例1~3のいずれか1つに記載のチャレンジは、ノンス、新しい公開鍵、及びルート公開鍵を任意選択で含む。
【0056】
例5で、例1~4のいずれか1つに記載のチャレンジの生成は、ノンスを生成することであって、ノンスが乱数を含む、生成することと、ノンス、新しい公開鍵、及びルート公開鍵を結合することとを任意選択で含む。
【0057】
例6で、例1~5のいずれか1つの主題は、ルート秘密鍵を格納するためのセキュアサーバと、新しい秘密鍵を格納するための安全実行環境を任意選択で含む。
【0058】
例7で、例1~6のいずれか1つに記載の主題は、ハードウェアセキュリティモジュール(HSM)を含むセキュアサーバと、ポータブルHSM、スマートカード、または第2のセキュアサーバの1つを含む安全実行環境とを任意選択で含む。
【0059】
例8で、例1~7のいずれか1つに記載の操作は、新しい公開鍵を使用して、チャレンジに基づいた第1のハッシュデータを生成することと、新しい公開鍵を使用して第1のデジタル署名を復号することであって、第1のデジタル署名の復号が、第1の復号されたデータを生じさせる、復号することと、第1のハッシュデータを第1の復号されたデータと比較することと、ルート公開鍵を使用して、チャレンジに基づいた第2のハッシュデータを生成することと、ルート公開鍵を使用して第2のデジタル署名を復号することであって、第2のデジタル署名の復号が、第2の復号されたデータを生じさせる、復号することと、第2のハッシュデータを第2の復号されたデータと比較することとを任意選択で含む。
【0060】
例9で、例1~8のいずれか1つに記載のシステムは、ルート公開鍵を格納するためにメモリを含む鍵ストアを任意選択で含む。
【0061】
例10で、例1~9のいずれか1つに記載のシステムは、ホストインタフェースを任意選択で含み、鍵委任要求、第1のデジタル署名、及び第2のデジタル署名が、ホストインタフェースを介して受信される。
【0062】
例11は、ホストシステムから、新しい公開鍵を含む鍵委任要求を受信することと、要求を受信することに基づいて、1つまたは複数のハードウェアプロセッサによって、新しい公開鍵及びルート公開鍵に基づいたチャレンジを生成することと、鍵委任要求に応えて、ホストシステムにチャレンジを提供することと、ホストシステムから、新しい公開鍵に対応する新しい秘密鍵でチャレンジに暗号で署名することによって生成された第1のデジタル署名を受信することと、ホストシステムから、ルート公開鍵に対応するルート秘密鍵でチャレンジに暗号で署名することによって生成された第2のデジタル署名を受信することと、1つまたは複数のハードウェアプロセッサによって、新しい公開鍵を使用して第1のデジタル署名を確認することと、1つまたは複数のハードウェアプロセッサによって、ルート公開鍵を使用して第2のデジタル署名を確認することと、第1の及び第2のデジタル署名を確認することに基づいて、1つまたは複数の暗号操作で新しい公開鍵を利用することとを含む方法である。
【0063】
例12で、例11の方法は、第1の及び第2のデジタル署名を確認することに基づいて、揮発性メモリコンポーネントに新しい公開鍵をコピーすることを任意選択で含む。
【0064】
例13で、例11及び12のいずれか1つに記載の方法は、ホストシステムから、新しい公開鍵を永続的にするコマンドを受信することと、コマンドに基づいて、不揮発性メモリコンポーネントに新しい公開鍵を格納することとを任意選択で含む。
【0065】
例14で、例11~13のいずれか1つに記載のチャレンジは、ノンス、新しい公開鍵、及びルート公開鍵を任意選択で含む。
【0066】
例15で、例11~14のいずれか1つに記載のチャレンジの生成は、ノンスを生成することであって、ノンスが乱数を含む、生成することと、ノンス、新しい公開鍵、及びルート公開鍵を結合することとを任意選択で含む。
【0067】
例16で、例11~15のいずれか1つの主題は、ルート秘密鍵を格納するためのセキュアサーバと、新しい秘密鍵を格納するための安全実行環境を任意選択で含む。
【0068】
例17で、例11~16のいずれか1つに記載の主題は、ハードウェアセキュリティモジュール(HSM)を含むセキュアサーバと、ポータブルHSM、スマートカード、または第2のセキュアサーバの1つを含む安全実行環境とを任意選択で含む。
【0069】
例18で、例11~17のいずれか1つに記載の方法は、新しい公開鍵を使用して、チャレンジに基づいた第1のハッシュデータを生成することと、新しい公開鍵を使用して第1のデジタル署名を復号することであって、第1のデジタル署名の復号が、第1の復号されたデータを生じさせる、復号することと、第1のハッシュデータを第1の復号されたデータと比較することと、ルート公開鍵を使用して、チャレンジに基づいた第2のハッシュデータを生成することと、ルート公開鍵を使用して第2のデジタル署名を復号することであって、第2のデジタル署名の復号が、第2の復号されたデータを生じさせる、復号することと、第2のハッシュデータを記第2の復号されたデータと比較することとを任意選択で含む。
【0070】
例19で、例11~18のいずれか1つに記載の1つまたは複数のハードウェアプロセッサは、任意選択で、メモリサブシステムコントローラに相当する。
【0071】
例20は、処理デバイスによって実行されるときに、ホストシステムから、新しい公開鍵を含む鍵委任要求を受信することと、要求を受信することに基づいて、新しい公開鍵及びルート公開鍵に基づいたチャレンジを生成することと、鍵委任要求に応えて、ホストシステムにチャレンジを提供することと、ホストシステムから、新しい公開鍵に対応する新しい秘密鍵でチャレンジに暗号で署名することによって生成された第1のデジタル署名を受信することと、ホストシステムから、ルート公開鍵に対応するルート秘密鍵でチャレンジに暗号で署名することによって生成された第2のデジタル署名を受信することと、新しい公開鍵を使用して第1のデジタル署名を確認することと、ルート公開鍵を使用して第2のデジタル署名を確認することと、第1の及び第2のデジタル署名を確認することに基づいて、1つまたは複数の暗号操作で新しい公開鍵を利用することを含む操作を実行するように、処理デバイスを構成する命令を含む非一時的なコンピュータ可読記憶媒体である。
【0072】
図6は、コンピュータシステム600の形の例示的なマシンを示しており、その中で、命令のセットは、マシンに、本明細書で説明される方法のいずれか1つまたは複数を実行させるために実行することができる。いくつかの実施形態では、コンピュータシステム600は、メモリサブシステム(例えば、図1のメモリサブシステム110)を含む、それに結合される、もしくはそれを利用するホストシステム(例えば、図1のホストシステム120)に相当する場合があるか、またはコントローラの操作を実行するために(例えば、図1のセキュリティコンポーネント113に対応する操作を実行するようにオペレーティングシステムを実行するために)使用することができる。代替の実施形態では、マシンを、ローカルエリアネットワーク(LAN)、イントラネット、エクストラネット、及び/またはインターネット内の他のマシンに接続する(例えば、ネットワーク接続する)ことができる。マシンは、クライアントサーバネットワーク環境内のサーバまたはクライアントマシンの機能で、ピアツーピア(または分散)ネットワーク環境内のピアマシンとして、またはクラウドコンピューティングインフラストラクチャまたは環境内のサーバまたはクライアントマシンとして動作することができる。
【0073】
マシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチもしくはブリッジ、またはそのマシンによって講じられる処置を指定する命令のセットを(連続してまたは別の方法で)実行できる任意のマシンである場合がある。さらに、単一のマシンが示されているが、用語「マシン」はまた、本明細書で説明される方法の任意の1つまたは複数を実行するために、個々でまたは共同して命令の1つのセット(または複数のセット)を実行するマシンの任意の集まりを含むと解釈されるものとする。
【0074】
例示的なコンピュータシステム600は、バス630を介して互いに通信する、処理デバイス602、メインメモリ604(例えば、ROM、フラッシュメモリ、SDRAMまたはRambus DRAM(RDRAM)のようなDRAMなど)、スタティックメモリ606(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)、及びデータストレージシステム618を含む。
【0075】
処理デバイス602は、マイクロプロセッサ、中央処理装置など、1つまたは複数の汎用処理デバイスを表す。より具体的には、処理デバイス602は、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、他の命令セットを実装するプロセッサ、または命令セットの組み合わせを実装するプロセッサであることができる。また、処理デバイス602は、ASIC、FPGA、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサなど、1つまたは複数の特定用途処理デバイスであることができる。処理デバイス602は、本明細書で説明される操作及びステップを実行するための命令626を実行するように構成される。コンピュータシステム600は、ネットワーク620を介して通信するためのネットワークインタフェースデバイス608をさらに含むことができる。
【0076】
データストレージシステム618は、本明細書で説明される方法または機能のいずれか1つまたは複数を具体化する命令626またはソフトウェアの1つまたは複数のセットが記憶されるマシン可読記憶媒体624(コンピュータ可読媒体としても知られる)を含むことができる。命令626はまた、メインメモリ604内または処理デバイス602内に、コンピュータシステム600によるこの処理デバイスの実行中に完全にまたは少なくとも部分的に常駐することができ、メインメモリ604及び/または処理デバイス602はまた、機械可読記憶媒体を構成する。マシン可読記憶媒体624、データストレージシステム618、及び/またはメインメモリ604は、図1のメモリサブシステム110に相当する場合がある。
【0077】
一実施形態では、命令626は、セキュリティコンポーネント(例えば、図1のセキュリティコンポーネント113)に対応する機能を実装するための命令を含む。マシン可読記憶媒体624は、単一の媒体であるように、例の実施形態には示されているが、用語「マシン可読記憶媒体」は、命令の1つまたは複数のセットを格納する単一の媒体または複数の媒体を含むと解釈されるべきである。用語「マシン可読記憶媒体」はまた、マシンによって実行するための命令のセットを格納またはエンコードすることが可能であり、マシンに本開示の方法の任意の1つまたは複数を実行させる任意の媒体を含むと解釈されるものとする。したがって、用語「マシン可読記憶媒体」は、ソリッドステートメモリ、光媒体、及び磁気媒体を含むが、これらに限定されないと解釈されるものとする。
【0078】
先行する詳細な説明の一部は、アルゴリズム及びコンピュータメモリ内のデータビットに対する操作の記号表現の観点から提示されている。このようなアルゴリズムの説明及び表現は、その働きの趣旨を当業者に最も効果的に伝えるためにデータ処理技術において当業者が用いる方法である。アルゴリズムはここでは、及び全般的に、望ましい結果に至る自己矛盾のない動作順序であると考えられる。動作は、物理量の物理的な操作を必要とするものである。通常、必ずしもではないが、これらの量は格納し、組み合わせ、比較し、及び他の方法で操作することができる電気または磁気信号という形を取る。主に共通使用の理由により、これらの信号をビット、値、要素、シンボル、文字、用語、数などと称することが、時によって好都合であることが分かっている。
【0079】
しかし、これら及び同様の用語はすべて、適切な物理量に対応付けられるべきであり、これらの量に適用される好都合な標示にすぎないことを認識しておくべきである。本開示は、コンピュータシステムのレジスタ及びメモリ内で物理(電子的)量として表されるデータを操作し、コンピュータシステムのメモリまたはレジスタまたはそのような情報ストレージシステム内で同様に物理量として表される他のデータに変換する、コンピュータシステム、または類似した電子コンピューティングデバイスの動作及びプロセスを参照することができる。
【0080】
本開示はまた、本明細書の操作を実行するための装置に関する。この装置は、意図された目的のために専用に構築することができる、またはコンピュータに格納されたコンピュータプログラムによって選択的にアクティブにされる、または再構成される汎用コンピュータを含むことができる。そのようなコンピュータプログラムは、フロッピーディスク、光ディスク、CD-ROM、及び光磁気ディスク、ROM、RAM、消去可能でプログラム可能な読み出し専用メモリ(EPROM)、EEPROM、磁気もしくは光カードを含む任意のタイプのディスク、またはそれぞれがコンピュータシステムバスに結合される電子命令の格納に適した任意のタイプの媒体であるが、これらに限定されないコンピュータ可読記憶媒体に格納することができる。
【0081】
本明細書で示したアルゴリズム及び表示は、何らかの特定のコンピュータまたは他の装置に本来的に関するものではない。さまざまな汎用システムを、本明細書での教示に従ってプログラムによって用いることもできるし、または本方法を行うためにより専用の装置を構築することが好都合であることが分かる可能性もある。種々のこれらのシステムの構造は、上記の説明で述べるように現れる。加えて、本開示は何らかの特定のプログラミング言語に関して説明されていない。本明細書で説明したような本開示の教示を実施するために、種々のプログラミング言語を使用できることを理解されたい。
【0082】
本開示を、本開示に従ってプロセスを実行するようにコンピュータシステム(または他の電子装置)をプログラミングするために使用できる命令が格納されたマシン可読媒体を含むことができる、コンピュータプログラム製品またはソフトウェアとして示すことができる。マシン可読媒体は、マシン(例えば、コンピュータ)によって可読な形式で情報を格納するための任意のメカニズムを含む。いくつかの実施形態では、マシン可読(例えば、コンピュータ可読)媒体は、ROM、RAM、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリコンポーネントなどのマシン可読(例えば、コンピュータ可読)記憶媒体を含む。
【0083】
上述の明細書では、本開示の実施形態は、その特定の例示的な実施形態を参照して説明されてきた。以下の特許請求の範囲に述べる本開示の実施形態のより広い範囲から逸脱することなく、さまざまな変更を加えることができることが明らかである。したがって、明細書及び図面は限定的な意味ではなく例示的な意味で考慮されるべきである。

図1
図2
図3
図4
図5
図6
【国際調査報告】