JP2017504267A - セキュアブート中のキー抽出 - Google Patents

セキュアブート中のキー抽出 Download PDF

Info

Publication number
JP2017504267A
JP2017504267A JP2016546025A JP2016546025A JP2017504267A JP 2017504267 A JP2017504267 A JP 2017504267A JP 2016546025 A JP2016546025 A JP 2016546025A JP 2016546025 A JP2016546025 A JP 2016546025A JP 2017504267 A JP2017504267 A JP 2017504267A
Authority
JP
Japan
Prior art keywords
volatile memory
secure
memory circuit
circuit
logic state
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.)
Pending
Application number
JP2016546025A
Other languages
English (en)
Other versions
JP2017504267A5 (ja
Inventor
スティーヴン・ダグラス・レイヴァ—
スティーヴン・ダグラス・レイヴァ―
シュウ・グオ
ブライアン・マーク・ローゼンバーグ
デイヴィッド・メリル・ジェイコブソン
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2017504267A publication Critical patent/JP2017504267A/ja
Publication of JP2017504267A5 publication Critical patent/JP2017504267A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

1つの特徴は、集積回路のセキュアブートフロー中に秘密鍵を抽出するための方法に関する。詳細には、セキュアブートフローは、複数の初期論理状態値を生成するために第1の揮発性メモリ回路を電源投入することと、複数の初期論理状態値に基づいて秘密データを導出することと、セキュア実行環境(SEE)によってセキュアにされるセキュア揮発性メモリ回路中に秘密データを記憶することと、第1の揮発性メモリ回路中の複数の初期論理状態値をクリアすることと、秘密データに基づいて秘密鍵を抽出するためにSEEにおいて暗号アルゴリズムを実行することと、セキュア揮発性メモリ回路中に秘密鍵を記憶することとを含む。セキュアブートフローは、非セキュアアプリケーションから秘密データと複数の初期論理状態値とをセキュアにするために第1の揮発性メモリ回路へのアクセスを制御する。

Description

関連出願の相互参照
本出願は、内容全体が参照によって本明細書に組み込まれる、2014年1月22日に米国特許商標庁に出願された、米国非仮特許出願第14/161,185号の優先権および利益を主張する。
様々な特徴は、概して、セキュア暗号鍵抽出および記憶に関し、より詳細には、揮発性メモリの物理的クローン不能特徴に基づいてセキュアブートプロセス中に秘密暗号鍵を抽出し、記憶することに関する。
モバイルフォン、タブレット、およびコンピュータなど多くの電子通信デバイスは、電子通信デバイスにおいて暗号セキュリティプロセスのために使用され得るデバイス固有の暗号鍵(またはそのような鍵から導出された鍵)を含む。たとえば、デバイスと、場合によっては、別の信頼できるエンティティ(たとえば、デバイスに通信サービスを提供するセルラーネットワーク認証サーバ)とにのみ知られているデバイス固有鍵が、デバイスによって送信された通信メッセージを暗号化するためにその後使用される鍵(たとえば、公開鍵と秘密鍵とのペア)を導出するために使用される。他の当事者および/またはアプリケーションによる無許可のアクセスからデバイス固有鍵をセキュアにすることは、デバイスおよび/または通信ネットワークによって採用される暗号化セキュリティプロトコルの完全性をより良く保証するために最も重要である。
図1に、電子通信デバイスにおいて見つけられ得る従来技術の集積回路(IC)100の概略ブロック図を示す。IC100は、ブートローダ102と、ユーザアプリケーション104と、不揮発性メモリ回路106とを含み、次に、不揮発性メモリ回路106は、IC100を有するデバイスに一意であり得る暗号鍵108を記憶する。IC100が電源投入されると、IC100は、IC100の様々な態様を初期化するブートローダを取り出し、実行する。IC100がそれ自体のブートアッププロセスを完了した後、ユーザアプリケーション104(たとえば、高レベルオペレーティングシステム(HLOS)、そのようなHLOS上で実行されるアプリケーションなど)が実行され得る。ブートローダ102およびユーザアプリケーション104は、鍵108への直接アクセスを有し得る。たとえば、ユーザアプリケーションは、不揮発性メモリ106から鍵108を取り出し、鍵108を暗号化プロセスのために使用される追加の鍵を導出するために使用し得る。
さらに、鍵108を記憶するメモリ回路106が不揮発性メモリであるので、鍵108は、IC100が電源切断または電源投入されたかどうかにかかわらずIC100中に記憶される(したがって、理論的にはアクセス可能である)。これは、鍵108をより大きいセキュリティ脆弱性にさらす。たとえば、集積回路100パッケージの上部は、物理的に開かれ得、電子顕微鏡が、鍵108を記憶するために使用される回路(たとえば、ヒューズ)を分析するために使用され得る。そうすることは、鍵108を明らかにし、デバイスのセキュリティを損ない得る。
そのような鍵への無許可のアクセスを防ぐのを助ける鍵の抽出/生成および記憶におけるセキュリティを増大する方法および装置が必要である。キー抽出/生成および記憶におけるセキュリティの改善は、そのような鍵に依拠する暗号アルゴリズムおよびプロセスに対する信頼度および信頼性を増加させるのを助ける。
1つの特徴は、集積回路において動作可能な方法であって、複数の初期論理状態値を生成するために第1の揮発性メモリ回路を電源投入するステップであって、第1の揮発性メモリ回路が集積回路上にある、ステップと、複数の初期論理状態値に基づいて秘密データを導出するステップと、セキュア揮発性メモリ回路中に秘密データを記憶するステップであって、セキュア揮発性メモリ回路が、セキュア実行環境(SEE)によってセキュアにされる、ステップと、第1の揮発性メモリ回路中の複数の初期論理状態値をクリアするステップと、秘密データに基づいて秘密鍵を抽出するためにSEEにおいて暗号アルゴリズムを実行するステップと、セキュア揮発性メモリ回路中に秘密鍵を記憶するステップとを含む方法を提供する。一態様によれば、本方法は、1つまたは複数の非セキュアアプリケーションから秘密データと複数の初期論理状態値とをセキュアにするために、第1の揮発性メモリ回路へのアクセスを制御する集積回路のセキュアブートフローである。別の態様によれば、セキュアブートフローは、少なくとも複数の初期論理状態値が第1の揮発性メモリ回路中でクリアされるまで第1の揮発性メモリ回路を1つまたは複数の非セキュアアプリケーションからアクセス不可能にすることによって、1つまたは複数の非セキュアアプリケーションから秘密データと複数の初期論理状態値とをセキュアにする。
一態様によれば、セキュアブートフローは、1次ブートローダと、第1の2次ブートローダと、第2の2次ブートローダとを含み、セキュアブートフローは、第1の2次ブートローダが実行する前に1次ブートローダに第1の2次ブートローダを認証させることによって信用チェーンを確立し、第1の2次ブートローダは、第2の2次ブートローダが実行する前に第2の2次ブートローダを認証し、第2の2次ブートローダがSEEを認証し、秘密鍵は、セキュアブートフロー中に、および1つまたは複数の非セキュアアプリケーションの実行より前に、抽出され、セキュア揮発性メモリ回路中に記憶される。別の態様によれば、第1の揮発性メモリ回路がリセットされると、セキュアブートフローが実行される。さらに別の態様によれば、秘密データは、複数の初期論理状態値である。
一態様によれば、第1の揮発性メモリ回路をクリアした後に、第1の揮発性メモリ回路は、1つまたは複数の非セキュアアプリケーションのためのデータストレージのために利用可能になる。別の態様によれば、第1の揮発性メモリ回路は、スタティックランダムアクセスメモリ(SRAM)である。さらに別の態様によれば、SEEは、非セキュアアプリケーションがセキュア揮発性メモリ回路にアクセスするのを防ぐ。
一態様によれば、複数の初期論理状態値は、第1の揮発性メモリ回路が電源投入されるたびに実質的に同じになる。別の態様によれば、暗号アルゴリズムは、ブロックコードアルゴリズム、拡散コードアルゴリズム、および/またはリピートコードアルゴリズムのうちの少なくとも1つに基づく。さらに別の態様によれば、本方法は、セキュア揮発性メモリ回路中に秘密データを記憶するより前に第2の揮発性メモリ回路中に秘密データを記憶するステップと、セキュア揮発性メモリ回路中に秘密データを記憶した後に第2の揮発性メモリ回路中に記憶された秘密データをクリアするステップとをさらに含む。
一態様によれば、第2の揮発性メモリ回路中に記憶された秘密データをクリアした後に、第2の揮発性メモリ回路が、1つまたは複数の非セキュアアプリケーションのためのデータストレージのために利用可能になる。別の態様によれば、SEEは、秘密鍵を非セキュアアプリケーションからアクセス不可能にすることによって秘密鍵へのアクセスを制御し、本方法は、副鍵および/または公開データのうちの少なくとも1つについてSEEにおいて非セキュアアプリケーションから要求を受信するステップと、秘密鍵に基づいてSEEにおいて副鍵および/または公開データを生成するステップと、副鍵および/または公開データを要求する非セキュアアプリケーションに副鍵および/または公開データを与えるステップとをさらに含む。さらに別の態様によれば、副鍵および/または公開データは、秘密鍵と、非セキュアアプリケーションによって与えられる他のデータとに基づいて生成される。別の態様によれば、秘密データに基づいて秘密鍵を抽出するためにSEEにおいて実行される暗号アルゴリズムは、不揮発性メモリ回路中に記憶された補助データにさらに基づく。
別の特徴は、集積回路であって、電源投入時に複数の初期論理状態値を生成するように構成された第1の揮発性メモリ回路と、セキュア実行環境(SEE)によってセキュアにされるセキュア揮発性メモリ回路と、第1の揮発性メモリ回路とセキュア揮発性メモリ回路とに通信可能に結合された処理回路であって、複数の初期論理状態値に基づいて秘密データを導出することと、セキュア揮発性メモリ回路中に秘密データを記憶することと、第1の揮発性メモリ回路中の複数の初期論理状態値をクリアすることと、秘密データに基づいて秘密鍵を抽出するためにSEEにおいて暗号アルゴリズムを実行することと、セキュア揮発性メモリ回路中に秘密鍵を記憶することとを行うように構成された処理回路とを含む集積回路を提供する。一態様によれば、処理回路は、(i)秘密データを導出することと、(ii)秘密データを記憶することと、(iii)複数の初期論理状態値をクリアすることと、(iv)暗号アルゴリズムを実行することと、(v)秘密鍵を記憶することとを行うことによってセキュアブートフローを実行し、セキュアブートフローは、1つまたは複数の非セキュアアプリケーションから秘密データと複数の初期論理状態値とをセキュアにするために、第1の揮発性メモリ回路へのアクセスを制御する。
一態様によれば、本処理回路は、セキュア揮発性メモリ回路中に秘密データを記憶するより前に第2の揮発性メモリ回路中に秘密データを記憶することと、セキュア揮発性メモリ回路中に秘密データを記憶した後に第2の揮発性メモリ回路中に記憶された秘密データをクリアすることとを行うようにさらに構成される。別の態様によれば、SEEは、秘密鍵を非セキュアアプリケーションからアクセス不可能にすることによって秘密鍵へのアクセスを制御し、本処理回路は、副鍵および/または公開データのうちの少なくとも1つについてSEEにおいて非セキュアアプリケーションから要求を受信することと、秘密鍵に基づいてSEEにおいて副鍵および/または公開データを生成することと、副鍵および/または公開データを要求する非セキュアアプリケーションに副鍵および/または公開データを与えることとを行うようにさらに構成される。
別の特徴は、集積回路であって、複数の初期論理状態値を生成するために第1の揮発性メモリ回路を電源投入するための手段であって、第1の揮発性メモリ回路が集積回路上にある、手段と、複数の初期論理状態値に基づいて秘密データを導出するための手段と、セキュア揮発性メモリ回路中に秘密データを記憶するための手段であって、セキュア揮発性メモリ回路が、セキュア実行環境(SEE)によってセキュアにされる、手段と、第1の揮発性メモリ回路中の複数の初期論理状態値をクリアするための手段と、秘密データに基づいて秘密鍵を抽出するためにSEEにおいて暗号アルゴリズムを実行するための手段と、セキュア揮発性メモリ回路中に秘密鍵を記憶するための手段とを含む集積回路を提供する。
別の特徴は、1つまたは複数の命令を記憶したコンピュータ可読記憶媒体であって、命令は、少なくとも1つの集積回路によって実行されたとき、集積回路に、複数の初期論理状態値を生成するために第1の揮発性メモリ回路を電源投入することであって、第1の揮発性メモリ回路が集積回路上にある、電源投入することと、複数の初期論理状態値に基づいて秘密データを導出することと、セキュア揮発性メモリ回路中に秘密データを記憶することであって、セキュア揮発性メモリ回路が、セキュア実行環境(SEE)によってセキュアにされる、記憶することと、第1の揮発性メモリ回路中の複数の初期論理状態値をクリアすることと、秘密データに基づいて秘密鍵を抽出するためにSEEにおいて暗号アルゴリズムを実行することと、セキュア揮発性メモリ回路中に秘密鍵を記憶することとを行わせるコンピュータ可読記憶媒体を提供する。一態様によれば、1つまたは複数の命令は、集積回路のセキュアブートフローのためのものであり、命令は、集積回路によって実行されたとき、少なくとも複数の初期論理状態値が第1の揮発性メモリ回路中でクリアされるまで第1の揮発性メモリ回路を1つまたは複数の非セキュアアプリケーションからアクセス不可能にすることによって、1つまたは複数の非セキュアアプリケーションから秘密データと複数の初期論理状態値とをセキュアにするように第1の揮発性メモリ回路へのアクセスを制御する。
電子通信デバイスにおいて見つけられ得る従来技術の集積回路(IC)の概略ブロック図である。 ICの高レベルの概略ブロック図である。 揮発性メモリ回路の概略ブロック図である。 セキュア実行環境の概略ブロックである。 セキュアブートフロー階層を示す図である。 秘密鍵を抽出し、記憶するセキュアブートフローを採用するICを示す図である。 集積回路に秘密鍵を抽出し、記憶することを行わせるセキュアブートフローを示すフローチャートである。 集積回路に秘密鍵を抽出し、記憶することを行わせるセキュアブートフローを示すフローチャートである。 集積回路において動作可能な方法を示す図である。 本明細書で説明するICの処理回路の概略ブロック図である。
以下の説明では、本開示の様々な態様を完全に理解することが可能なように具体的な詳細を示す。しかしながら、それらの態様が、これらの具体的な詳細なしに実施できることが、当業者には理解されよう。たとえば、態様を不必要に詳しく説明して曖昧にすることを避けるために、回路がブロック図で示される場合がある。他の例では、本開示の態様を曖昧にしないように、周知の回路、構造、および技術は詳細には示されていない場合がある。
「例示的」という言葉は、「例、事例、または例示として役立つ」ことを意味するように本明細書において使用される。「例示的な」として本明細書において説明するいかなる実装形態または態様も、必ずしも本開示の他の態様よりも好ましいか、または有利であると解釈されるべきではない。同様に、「態様」という用語は、本開示のすべての態様が、説明された特徴、利点、または動作モードを含むことを必要としない。
概要
本明細書では、集積回路のセキュアブートフロー中に秘密鍵を抽出する方法および装置について説明する。詳細には、セキュアブートフローは、複数の初期論理状態値を生成するために第1の揮発性メモリ回路を電源投入することと、複数の初期論理状態値に基づいて秘密データを導出することと、セキュア実行環境(SEE)によってセキュアにされるセキュア揮発性メモリ回路中に秘密データを記憶することと、第1の揮発性メモリ回路中の複数の初期論理状態値をクリアすることと、秘密データに基づいて秘密鍵を抽出するためにSEEにおいて暗号アルゴリズムを実行することと、セキュア揮発性メモリ回路中に秘密鍵を記憶することとを含む。セキュアブートフローは、少なくとも複数の初期論理状態値が第1の揮発性メモリ回路中でクリアされるまで第1の揮発性メモリ回路を非セキュアアプリケーションからアクセス不可能にすることによって、非セキュアアプリケーションから秘密データと複数の初期論理状態値とをセキュアにするように第1の揮発性メモリ回路へのアクセスを制御する。さらに、第1の揮発性メモリ回路がリセットされる場合、セキュアブートフローが再び開始され、したがって、第1の揮発性メモリ回路の初期論理状態値は、非セキュアアプリケーションにとって利用不可能になる。
ICセキュアブートアップ中の例示的なキー抽出
図2に、本開示の一態様による集積回路(IC)200の高レベルの概略ブロック図を示す。IC200は、たとえば、処理回路、メモリ回路などを含むプロセッサであり得、限定はしないが、モバイルフォン、コンピュータ、タブレット、時計などの電子通信デバイスにおいて見つけられ得る。IC200は、リソース電力管理(RPM)回路201と、セキュアブートローダ回路202と、処理回路203と、非セキュアアプリケーション204と、揮発性メモリ回路206と、セキュア実行環境(SEE)208とを含み得る。揮発性メモリ回路206は、物理的クローン不能関数(PUF)210を含み、SEE208は、セキュア揮発性メモリ回路212を含む。
特に、RPM回路201は、IC200の様々な回路および構成要素に電力を供給する。たとえば、RPM回路201は、処理回路203、揮発性メモリ回路206、および/またはセキュア揮発性メモリ回路212に供給される電力を制御し得る。RPM回路201は、複数の初期論理状態値を生成するために第1の揮発性メモリ回路を電源投入するための手段の一例を表す。
IC200の電源投入時に、IC200は、処理回路203にセキュアブートローダ(たとえば、セキュアブートコード)202を取得させ、実行させることによって、セキュアブートアッププロセス(本明細書では「セキュアブートフロー」とも呼ばれる)を行う/実行する。セキュアブートローダ202は、限定はしないが、読取り専用メモリ(ROM)および/または他の不揮発性メモリなどのメモリ回路中に記憶され得る。セキュアブートローダ202は、通常動作に向けてIC200を準備するために、IC200の様々なモジュールを初期化し、他の基本動作を実行する。
本開示の一態様によれば、揮発性メモリ回路206は、各々が複数のSRAM回路セルを含む1つまたは複数のスタティックランダムアクセスメモリ(SRAM)回路を含む。他の態様によれば、揮発性メモリ回路206は、SRAMに限定されず、埋込みダイナミックランダムアクセスメモリ(eDRAM)などの他のタイプの揮発性メモリに基づき得る。揮発性メモリ回路206の一部分(すなわち、いくつかの揮発性メモリセル)は、物理的クローン不能関数(PUF)の基礎を形成し得る。
オンチップPUFは、集積回路(IC)の製造プロセスばらつきを活用するチップ固有のチャレンジレスポンス機構である。物理的刺激(すなわち、チャレンジ)がPUFに適用されると、PUFは、PUFを採用するデバイスの物理的微細構造との刺激の複雑な対話により予測不可能であるが繰り返し可能な方法でレスポンスを生成する。この厳密な微細構造は、PUFを採用するデバイスの製造中にもたらされる物理的要因に依存し、これは、予測不可能である。PUFの「クローン不能」は、1つのデバイスが別の、一見すると同一のデバイスと同じプロセスで製造される場合でも、PUFを採用する各デバイスが、チャレンジをレスポンスにマッピングする一意の予測不可能な方法を有することを意味する。したがって、製造プロセスの厳密な制御は実現不可能であるので、別のデバイスのPUFと同じチャレンジレスポンス挙動をもつPUFを構築することは実際に実現不可能である。
本開示では、揮発性メモリ回路206は、揮発性メモリ(たとえば、SRAM)の一種であり、ここで、揮発性メモリ回路206を含む各回路セルは、起動時に(すなわち、電源投入されたときに)初期の好適な論理状態値(たとえば、「0」または「1」)に自然に初期化する。たとえば、SRAMは、電源投入されたときに、そのような特性を有する。各揮発性メモリセルが、高確率で起動時に毎回同じ値に初期化するので、回路セルの初期論理状態値は繰り返し可能である。しかしながら、回路セルの初期論理状態値は、同じになるように製造された場合でも、ICごとにランダムになる。したがって、製造プロセスばらつきにより、各集積回路の揮発性メモリ回路206は、同じになるように製造された場合でも、異なる繰り返し可能な初期値を示すことになり、したがって、ICごとに、初期揮発性メモリ回路開始値が、異なるICにわたる同じメモリアドレスロケーションにおいて異なる。したがって、各IC200は、その揮発性メモリ回路のセルの初期電力オン状態に基づいて一意だが繰り返し可能な識別子を有する揮発性メモリ回路206(たとえば、SRAM回路)を有する。
PUF210のための基礎として使用される揮発性メモリ回路206の揮発性メモリセルの部分/数は、アプリケーションに応じて変動し得る。一例によれば、揮発性メモリ回路206の8キロバイト部分がPUF210を含み得る。ただし、実際には、PUF210のために使用されるメモリの量は、限定はしないが、512バイト、1キロバイト、2キロバイト、4キロバイト、8キロバイト、16キロバイトなどの任意の値であり得る。揮発性メモリ回路206全体のサイズは、一般に、PUF210のために使用される部分よりも大きくなる。ただ1つの例として、揮発性メモリ回路206は、384キロバイトであり得る。ただし、揮発性メモリ回路206は、限定はしないが、64キロバイト、128キロバイト、256キロバイト、384キロバイト、512キロバイト、768キロバイト、1024キロバイト、2048キロバイトなどの任意のサイズであり得る。
上記で説明したように、揮発性メモリ回路206が電源投入されると、揮発性メモリ回路206のメモリ回路セルはそれぞれ、セル間の微小な製造ばらつきに基づいて初期の好適な論理状態値に落ち着く。PUF210として使用されるメモリの部分に違いはなく、そのメモリセルも、最初に好適な初期論理状態値に落ち着くことになる。この意味で、PUFのチャレンジは、PUF210の揮発性メモリ回路セルを電源投入することと見なされ得、レスポンスは、そのメモリ回路セルの初期論理状態値である。
PUF210のメモリ回路セルがそれらの初期論理状態値に落ち着くと、セキュアブートローダ202は、初期論理状態値に基づいて秘密データを導出し得る。一態様によれば、秘密データは、初期論理状態値に等しくなり得る。別の態様によれば、秘密データは、初期論理状態値の何らかの関数に基づいて導出され得る。秘密データが基づく関数のいくつかの非限定的な例には、限定はしないが、初期論理状態値の1ビットおきの(または何らかの他の倍数の)ビットに等しい秘密データ、初期論理状態値に対して実行される1つまたは複数の数学演算(加算、減算、連結など)に基づく値に等しい秘密データなどがある。セキュアブートローダ202は、次いで、SEE208によって制御されるセキュア揮発性メモリ回路212中に秘密データを記憶する。次に、セキュアブートローダ202は、それらの初期論理状態値のPUF210のメモリ回路セルをクリア/削除する。これは、すべてのPUF210のメモリ回路セルに論理状態「0」または「1」を書き込むことによって、またはそれらの論理状態値(ランダム「0」または「1」)をランダムに変更することによって達成され得る。同様の方法で、セキュアブートローダ202はまた、セキュア揮発性メモリ回路212の外部の他の場所に一時的に記憶されていることがある秘密データのいずれかをクリア/削除する。クリアされると、初期論理状態値を最初に記憶したメモリ回路セルは、必要に応じて一般データストレージのために自由に使用できる。たとえば、高レベルオペレーティングシステム(HLOS)およびユーザアプリケーションは、ロードされ、実行されると、これらのクリアされたメモリ回路セルを使用し得る。
したがって、セキュアブートローダ202は、複数の初期論理状態値に基づいて秘密データを導出するための手段の一例を表す。セキュアブートローダ202はまた、セキュア揮発性メモリ回路212中に秘密データを記憶するための手段の一例を表す。さらに、セキュアブートローダ202は、第1の揮発性メモリ回路206中の複数の初期論理状態値をクリアするための手段の一例を表す。
SEE208は、IC200のセキュアな動作モードである。たとえば、SEE208は、IC200の非セキュアな動作モードで動作する他のアプリケーションにとって利用不可能である制御論理、バス、およびメモリ回路などの特定のハードウェアモジュールおよび回路を含み、それらへのアクセスを有する。SEE208は、そのセキュア揮発性メモリ回路212の完全な制御およびアクセスを有し得、したがって、他のアプリケーション(たとえば、ユーザアプリケーション、HLOS、さらにはブートローダの一部または全部のタイプ)は、セキュア揮発性メモリ回路212にアクセスすること(たとえば、読取りおよび/または書込みを行うこと)ができない。
SEE208は(たとえば、それ自体の制御論理を使用して)、次いで、そのセキュア揮発性メモリ回路212中に記憶された秘密データに基づいて秘密鍵を抽出し得る(たとえば、秘密鍵を生成し得る)。SEE208は、これを達成するために暗号セキュリティアルゴリズムを使用する。使用されるアルゴリズムは、いかなる1つの特定のタイプのアルゴリズムまたはアルゴリズムのファミリーにも限定されない。いくつかの非限定的な例には、ブロックコードアルゴリズム、拡散コードアルゴリズム、および/またはリピートコードアルゴリズムがある。一例では、秘密データに加えて、補助データが秘密鍵を抽出するためにアルゴリズムによって使用され得る。補助データは、非セキュアアプリケーションによってアクセス可能である非セキュアメモリ中に記憶され得る。すなわち、補助データ自体による補助データの露出は、第1の揮発性メモリ回路206の秘密鍵および/または初期論理状態値のセキュリティを危うくしないので、補助データをセキュアに記憶するという要件がない。
揮発性メモリ(たとえば、SRAM)ベースのPUF210は、電源投入時に実質的に同じ初期論理状態値を与えるので、SEEの暗号アルゴリズムは、毎回同じ秘密鍵を抽出することが可能である。暗号アルゴリズムは、異なる電源投入サイクル間で初期論理状態値のうちのいくつかが異なる場合でも同じ秘密鍵を抽出するために誤り訂正技法を使用し得る。PUF210の初期論理状態値は、同じになるように製造された場合でも、異なるIC200にわたって異なるので、抽出される秘密鍵は特定のIC200に一意である。
SEE208は、図2に示すセキュア揮発性メモリ回路212などのセキュア揮発性メモリ中に抽出された秘密鍵を記憶し、したがって、非セキュアアプリケーション(たとえば、HLOS、ユーザアプリケーション、および/またはいくつかの2次ブートローダなど)204は、SEE208によって記憶され、セキュアにされた秘密鍵にアクセスすることができない。代わりに、非セキュアアプリケーション204は、秘密鍵に基づいて暗号化データおよび/または公開データ(たとえば、公的に明らかにされ得るデータ)を与えるようにSEE208に要求し得る。たとえば、SEE208は、秘密鍵に基づいて、限定はしないが、1つまたは複数の副鍵または鍵ペアなどの暗号化データを生成し、非セキュアアプリケーション204にそれらの副鍵を与え得る。SEEはまた、秘密鍵に基づいて、限定はしないが、デバイス通し番号などの公開データを生成し、非セキュアアプリケーション204にその公開データを与え得る。暗号化データと公開データとの両方を、本明細書では「SEE出力データ」と呼ぶことがある。
さらに、秘密鍵がセキュア揮発性メモリ212中にのみ記憶されるので、秘密鍵は、IC200が電源切断されると失われる。それは、上記で説明したようにPUF210の初期論理状態値に基づいて電源投入時に再び再抽出されなければならない。秘密鍵が不揮発性メモリ中に記憶されないので、IC200を物理的に開き、メモリ回路を検査することによって秘密鍵への無許可のアクセスを獲得しようと試みる不正な当事者は鍵を取得することができないことになる。
一態様によれば、IC200および/または揮発性メモリ回路206は、リセット時に(すなわち、電源切断されて、電源投入されると、および/またはその最初の状態に戻されると)セキュアブートフローが直ちに実行される(たとえば、IC200もリセットされる)ように設計される。一態様によれば、RPM回路201は、揮発性メモリ回路206をリセットすることを単独で管理していることがある。したがって、非セキュアアプリケーション204は、PUF210および/または揮発性メモリ回路206をリセットできないし、PUF210の初期論理状態値へのアクセスを獲得することができない。IC200をリセットすることは、動作する非セキュアアプリケーション204を終了し、セキュアブートフローを再び開始させることになる。
一態様によれば、PUF210を構成する特定の揮発性メモリ回路セルは、様々な方法で選択され得る。一例によれば、PUF210メモリセルは、信頼性のために(すなわち、電源投入時に一貫した論理状態値を生成する可能性を増加するために)選定されたメモリ回路セルの連続するブロックであり得る。別の例によれば、PUF210メモリセルは、互いに不連続であり、さらには、揮発性メモリ回路206の様々な部位からランダムに選定され得る。ただし、PUF210を構成する特定の揮発性メモリ回路セルが選定されると、同じ特定の揮発性メモリ回路セルが、PUF210の基礎となるように電源投入時に毎回再び選定される。
揮発性メモリ回路206とセキュア揮発性メモリ回路212とは、図2では独立した回路ブロックとして示されているが、一態様によれば、1つの物理的揮発性メモリ回路の一部であり得る。たとえば、セキュア揮発性メモリ回路212は、SEE208によって割り当てられ、セキュアにされる揮発性メモリ回路206の一部分であり得る。ただし、別の態様によれば、2つのメモリ回路206、212は、共に同じIC200上にある異なるメモリ回路であり得る。
図3に、本開示の一態様による、揮発性メモリ回路206の概略ブロック図を示す。揮発性メモリ回路206は、各々が複数の揮発性メモリ回路セルを含む複数のメモリモジュール/回路210、302、304、306を含み得る。一例によれば、揮発性メモリモジュール/回路206、302、304、306は、各々が複数のSRAM回路セルを含むSRAMモジュール/回路である。揮発性メモリ回路206は、(本明細書では、「第1の揮発性メモリ回路」とも呼ばれる)PUFメモリ回路210を含む。メモリ回路210、302、304、306のすべては、(たとえば、ユーザアプリケーション、2次ブートローダコード、および/またはHLOSに関するコードを記憶する)一般データおよびコード記憶するために使用され得る。ただし、一態様によれば、PUFメモリ回路210の初期論理状態値は、そのメモリ回路210が一般データストレージのために使用される前に最初にクリアされなければならない。図6および図7に関して以下でより詳細に説明するように、PUFメモリ回路210の初期論理状態値および/またはそのような初期論理状態値から導出された秘密データは、PUFメモリ回路210がクリアされる前に、最初に、第2の揮発性メモリ回路302(本明細書では、「予備の揮発性メモリ回路」と呼ばれることもある)中に記憶され得る。
図4に、本開示の一態様による、SEE208の概略ブロック図を示す。SEE208は、セキュア揮発性メモリ回路212と制御回路402となどのSEE208の構成要素の間の通信を可能にするセキュア揮発性メモリ回路212と、制御回路402と、セキュアバスライン404とを含み得る。制御回路402は、ユーザアプリケーション、HLOS、および/またはいくつかの2次ブートローダなどの非セキュアアプリケーションではなく、SEE208によってのみアクセスおよび利用され得る制御論理である。制御回路402は、データがどのようにセキュア揮発性メモリ回路212に記憶され、コピーされ、それから読み取られるかを制御し得る。制御回路402はまた、PUF210(図2参照)の初期論理状態値から導出された秘密データと、場合によっては、追加の補助データとに基づいて秘密鍵を抽出する本明細書で説明する暗号アルゴリズムを実行し得る。制御回路402は、さらに、秘密鍵に基づいて追加の副鍵および/または公開データを生成し得る。したがって、SEE制御回路402は、秘密データに基づいて秘密鍵を抽出するためにSEEにおいて暗号アルゴリズムを実行するための手段の一例を表す。
セキュア揮発性メモリ回路212は、各々が複数のメモリセルを含む1つまたは複数のセキュア揮発性メモリ回路を含む。セキュア揮発性メモリ回路212は、限定はしないが、eDRAM、SRAMなどの任意のタイプの揮発性メモリであり得る。セキュア揮発性メモリ回路212は、秘密データを記憶し、さらに、秘密データに部分的に基づいて制御論理402によって抽出される秘密鍵を記憶する。SEE208は、セキュア揮発性メモリ回路212の完全な制御を行い、したがって、他のアプリケーション(たとえば、非セキュアアプリケーション)は、セキュア揮発性メモリ回路212にアクセスすることができない。たとえば、SEE208は、IC200の他の非セキュア回路にセキュア揮発性メモリ回路212を結合するあらゆるバス408の線を物理的にロックダウンし得る(無効化バス論理406として示されている)。
図5に、本開示の一態様による、セキュアブートフロー500の階層を示す。IC200(たとえば、その処理回路203)によって実行され得るセキュアブートフロー500は、セキュアブートローダ501によって部分的に含まれ、非セキュアアプリケーションローダ503によって部分的に含まれ得る。セキュアブートローダ501は、1次ブートローダ(PBL)502と、第1の2次ブートローダ(SBL1)504と、第2の2次ブートローダ(SBL2)506とを含み得る。ブートアッププロセスのこの部分中に無認可のユーザコード(たとえば、HLOS、ユーザアプリケーションなど)は実行および/または注入され得ないので、セキュアブートローダ501によって実行されるコードは「セキュアである」と見なされる。したがって、PUF210(図2参照)の初期論理状態値、そのような初期論理状態値から導出された秘密データ、および/または秘密データに基づいて抽出された秘密鍵に関する情報は、セキュアブートフロー500のこの部分中に損なわれる/無認可のアプリケーションに漏洩されることになるという危険はほとんどない。
非セキュアアプリケーションローダ503は、第3の2次ブートローダ(SBL3)508と、アプリケーション2次ブートローダ510と、HLOS512と、ユーザアプリケーション514とを含み得る。非セキュアアプリケーションローダ503は、これらのローダ508、510、512、514のうちの1つまたは複数の実行および/または認証中に無認可のユーザコードが実行および/または注入され得るので、「非セキュアである」と見なされる。
図2および図5を参照すると、IC200の電源投入時に、セキュアブートフロー500は、IC200の様々な回路およびモジュールの初期化を含む、IC200の大部分の初期および基本タスクのうちのいくつかを実行する1次ブートローダ502の実行で開始する。PBL502は、ハードワイヤードされ得(たとえば、ROM中に記憶され得)、したがって、事実上改変され得ないので、非常にセキュアである。PBL502はまた、SBL1504が実行する前にSBL1504をロードし、認証する。SBL1504の認証の後に、SBL1504は、実行し、特に、揮発性メモリ回路206の初期論理状態値に基づいて秘密データを導出し、IC200内の他のメモリ回路に秘密データを記憶し得る。SBL1504はまた、RPM回路201を初期化することと、IC200のシステムクロックを構成し、リセットをリリースすることと、SBL2506が実行する前にSBL2506をロードし、認証することとを行い得る。
SBL2506が認証された後、SBL2506は実行し、特に、非セキュアメモリ回路からセキュア揮発性メモリ回路212に秘密データをコピーし得る。SBL2506はまた、IC200の1つまたは複数の処理回路(たとえば、処理回路203)を初期化することと、IC200の外部のメモリ回路(たとえば、外部DRAMおよび/またはSRAM)を構成することと、SEE208、他のファームウェア、および/またはSBL3508をロードし、認証することとを行い得る。SBL3508の認証の後に、SBL3508は、実行し、特に、ソフトウェアフラッシングのためのストレージモードを検査し得る。SBL3508はまた、HLOS512および/またはアプリケーション2次ブートローダ510をロードし、認証し得る。同様の方法で、後続のブートアッププロセスは、アプリケーション2次ブートローダ510、HLOS512、およびユーザアプリケーション514などの連続する順序でロードされ、認証され、実行される。これらのプロセス502、504、506、508、510、512がロードされて、実行される順序は、図5に示すものと異なり得る。さらに、図5に示した2次ブートローダの数およびタイプならびに他のアプリケーションコードは、例/例示にすぎない。たとえば、本開示の他の態様では、より多いまたはより少ない2次ブートローダがセキュアブートフロー500を含み得る。
図6に、本開示の一態様による、秘密鍵を抽出し、記憶する、本明細書で説明するセキュアブートフローを採用するIC600を示す。IC600は、RPM回路201、処理回路(たとえば、アプリケーションプロセッサ)203、セキュアブートローダ501、非セキュアアプリケーションブートローダ503、揮発性メモリ回路206、SEE208、および/または不揮発性メモリ回路604を含み得る。セキュアブートローダ501は、PBL502、SBL1504、および/またはSBL2を含み得る。非セキュアアプリケーションブートローダ503は、SBL2506(図5参照)の後に実行するセキュアブートフロー500の一部分のためのブートローダを含み得る。たとえば、非セキュアアプリケーションブートローダ503は、SBL3508、アプリケーション2次ブートローダ510、HLOSコード512、および/またはユーザアプリケーション514を含み得る。揮発性メモリ回路206は、第1の揮発性メモリ回路210(すなわち、PUF)と第2の/予備の揮発性メモリ回路302とを含む。SEE208は、SEE制御回路402と、セキュア揮発性メモリ回路212とを含む。セキュア揮発性メモリ回路212は、PUFの初期論理状態値から導出された秘密データを記憶するように構成された第1のセキュア揮発性メモリ回路608と、秘密鍵を記憶するように構成された第2のセキュア揮発性メモリ回路610とを含む。
不揮発性メモリ回路604は、補助データ606を含む。一例によれば、不揮発性メモリ回路604は、IC600の一部である(すなわち、「オンチップ」である)。別の例によれば、不揮発性メモリ回路604は、IC600の一部ではなく、IC600と通信している別個の回路である(すなわち、「オフチップ」である)。補助データ606の一部または全部は、非セキュアアプリケーションによってアクセスされ得るので、非セキュアであり得る。第1のセキュア揮発性メモリ回路608は、セキュア揮発性メモリ回路中に秘密データを記憶するための手段の一例を表し、第2のセキュア揮発性メモリ回路610は、セキュア揮発性メモリ回路中に秘密鍵を記憶するための手段の一例を表す。
図7Aおよび図7Bを含む図7に、一態様による、集積回路600に秘密鍵を抽出し、記憶することを行わせるセキュアブートフローを示すフローチャート700を示す。図6および図7を参照すると、IC600の電源投入時に、電力は、第1の揮発性メモリ回路210(すなわち、PUFのために使用されるメモリの一部分)を含む揮発性メモリ回路206に供給される。図2に関して上記で説明したように、揮発性メモリ回路206は、SRAMなどの揮発性メモリの一種であり、そのメモリ回路セルは、一般にそれぞれ最初に、各セルに固有の製造詳細により、電源投入時に好適な論理状態に落ち着くことになる。初期論理値は、実質的に繰り返し可能であり、したがって、起動(すなわち、電源投入)時に、セルの大部分が毎回同じ値に落ち着くことになる。したがって、電源投入時に、PUFのために使用される第1の揮発性メモリ回路210を含む揮発性メモリ回路206は、初期論理状態値に落ち着く702。
次に、第1の2次ブートローダ(SBL1)504は、初期論理状態値が使用されることになる揮発性メモリ回路206のメモリ回路セル(すなわち、第1の揮発性メモリ回路210によって指定されるメモリの一部分)の位置を特定し、それらの初期論理状態値に基づいて秘密データを導出する704。上記で説明したように、秘密データは、初期論理状態値に等しくなり得るか、または秘密データは、初期論理状態値の何らかの関数に基づいて導出され得る。秘密データが導出された後、SBL1504は、揮発性メモリ回路の第2の(すなわち、予備の)メモリ部分302中に秘密データを記憶する706。次いで、SBL1504は、第1の揮発性メモリ回路210の初期論理状態値をクリアし、したがって、初期論理状態値の痕跡が後続のプロセス/アプリケーション(たとえば、非セキュアアプリケーション)によってそれらのメモリアドレスロケーションにおいて発見され得ない。クリアされると、第1の揮発性メモリ回路210は、一般データストレージのために利用可能になる(すなわち、あらゆる後続のプロセス/アプリケーションがその第1の揮発性メモリ回路210を使用し得る)708。
次に、第2の2次ブートローダ(SBL2)506は、SEE208のセキュア揮発性メモリ回路212に第2のメモリ部分302中に記憶された秘密データをコピー/転送する。たとえば、秘密データは、第1のセキュア揮発性メモリ回路608に記憶され得る。SBL2506は、次いで、揮発性メモリ回路206中の秘密データのあらゆる痕跡を除去するために、揮発性メモリ回路206の第2のメモリ部分302をクリアする、および/または、揮発性メモリ回路206全体をクリアする。クリアされると、予備のメモリ部分302は、一般データストレージのために利用可能になる(すなわち、あらゆる後続のプロセス/アプリケーションがその予備のメモリ部分302を使用し得る)712。
さらに、SEE208は、次いで、秘密データに基づいて秘密鍵を抽出する。たとえば、SEE208における制御論理回路402は、第1のセキュア揮発性メモリ回路608に記憶された秘密データと不揮発性メモリ回路604に記憶された補助データ606とを取得する。このデータを取得した後に、制御回路402は、秘密鍵を抽出するための入力として補助データ606と秘密データとを使用して暗号アルゴリズム(たとえば、ブロックコードアルゴリズム、拡散コードアルゴリズム、リピートコードアルゴリズムなどのうちの少なくとも1つ)を実行する。暗号アルゴリズムは、ブートごとに秘密データおよび/または初期論理状態値の間のいくつかの違いにもかかわらず同じ秘密鍵を抽出するために誤り訂正技法を含み得る。秘密鍵はまた、セキュア揮発性メモリ212(たとえば、第2のセキュア揮発性メモリ回路610)中に記憶される714。
秘密鍵が、SEE208の制御の範囲内で、セキュア揮発性メモリ回路212にセキュアに記憶されるので、秘密鍵は、他の非セキュアアプリケーションによってアクセスされ得ない。そのような非セキュアアプリケーションは、秘密鍵に基づいて(たとえば、上記で説明したように、暗号化データおよび/または公開データを含む)SEE出力データについての要求をSEE208に送り得る716。SEE208における制御論理回路402は、次いで、秘密鍵に基づいてSEE出力データを生成し、要求元の非セキュアアプリケーションにSEE出力データを与え得る718。
秘密鍵がセキュア揮発性メモリ212中にのみ記憶されるので、秘密鍵は、IC600が電源切断されると失われる。秘密鍵は、上記で説明したようにPUF210の初期論理状態値に基づいてセキュアブートフロー700を通して電源投入時に再び再抽出されなければならない。秘密鍵が不揮発性メモリ中に記憶されないので、IC600を物理的に開き、メモリ回路を検査することによって秘密鍵への無許可のアクセスを獲得しようと試みる不正な当事者は鍵を取得することができないことになる。
一態様によれば、IC600および/または揮発性メモリ回路206は、リセット時にセキュアブートフロー700が直ちに実行される(たとえば、IC600もリセットされる)ように設計される。一態様によれば、RPM回路201は、揮発性メモリ回路206をリセットすることを単独で管理していることがある。したがって、非セキュアアプリケーションは、PUF210および/または揮発性メモリ回路206をリセットできないし、PUF210の初期論理状態値へのアクセスを獲得することができない。IC600をリセットすることは、動作する非セキュアアプリケーションを終了し、セキュアブートフロー700を再び開始させることになる。
一態様によれば、PUF210を構成する特定の揮発性メモリ回路セルは、様々な方法で選択され得る。一例によれば、PUF210メモリセルは、信頼性のために(すなわち、電源投入時に一貫した論理状態値を生成する可能性を増加するために)選定されたメモリ回路セルの連続するブロックであり得る。別の例によれば、PUF210メモリセルは、互いに不連続であり、さらには、揮発性メモリ回路206の様々な部位からランダムに選定され得る。ただし、PUF210を構成する特定の揮発性メモリ回路セルが選定されると、同じ特定の揮発性メモリ回路セルが、PUF210の基礎となるように電源投入時に毎回再び選定される。
図8に、本開示の一態様による、集積回路において動作可能な方法800を示す。最初に、第1の揮発性メモリ回路が、複数の初期論理状態値を生成するために電源投入され、ここで、第1の揮発性メモリ回路は集積回路上にある802。次に、秘密データが、複数の初期論理状態値に基づいて導出される804。次いで、秘密データが、セキュア揮発性メモリ回路中に記憶され、ここで、セキュア揮発性メモリ回路は、セキュア実行環境(SEE)によってセキュアにされる806。次に、複数の初期論理状態値が、第1の揮発性メモリ回路中でクリアされる808。次いで、暗号アルゴリズムが、秘密データに基づいて秘密鍵を抽出するためにSEEにおいて実行される810。秘密鍵はまた、セキュア揮発性メモリ回路中に記憶される812。一態様によれば、秘密鍵は、複数の初期論理状態値が第1の揮発性メモリ回路中でクリアされる(ステップ808)前に抽出され、記憶され得る(すなわち、ステップ810、812)。
図9に、本開示の一態様による、IC200、600の処理回路203の概略ブロック図を示す。処理回路203は、秘密データ導出回路902、クリア回路904、および/または暗号アルゴリズム回路906を含み得る。
図2、図6、図8、および図9を参照すると、秘密データ導出回路902は、複数の初期論理状態値に基づいて秘密データを導出するための手段の一例である。クリア回路904は、第1の揮発性メモリ回路206中の複数の初期論理状態値をクリアするための手段の一例である。暗号アルゴリズム回路906は、秘密データに基づいて秘密鍵を抽出するためにSEE208において暗号アルゴリズムを実行するための手段の一例である。
図2、図3、図4、図5、図6、図7A、図7B、図8、および図9に示された構成要素、ステップ、特徴、および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴、もしくは機能へと再構成され、かつ/もしくは組み合わされ、または、いくつかの構成要素、ステップ、もしくは機能で具現化され得る。さらなる要素、構成要素、ステップ、および/または機能も、本発明から逸脱することなく追加され得る。図2、図3、図4、図6、および/または図9に示す装置、デバイス、および/または構成要素は、図5、図7A、図7B、および/または図8で説明する方法、特徴、またはステップのうちの1つまたは複数を実行するように構成され得る。本明細書で説明するアルゴリズムは、ソフトウェアでも効率的に実装され得、および/またはハードウェアにも組み込まれ得る。
その上、本開示の一態様では、図2、図6、および/または図9に示す処理回路203は、図5、図7A、図7B、および/または図8で説明したアルゴリズム、方法、および/またはステップを実行するように特別に設計かつ/または配線接続される専用プロセッサ(たとえば、特定用途向け集積回路(たとえば、ASIC))であり得る。したがって、そのような専用プロセッサ(たとえば、ASIC)は、図5、図7A、図7B、および/または図8で説明したアルゴリズム、方法、および/またはステップを実行するための手段の一例であり得る。
また、本開示の態様は、フローチャート、流れ図、構造図またはブロック図として示されるプロセスとして説明され得ることに留意されたい。フローチャートは動作を逐次プロセスとして説明し得るが、動作の多くは並行してまたは同時に実行され得る。さらに、動作の順序は並び替えられ得る。プロセスは、その動作が完了したとき、終了する。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応するとき、その終了は、呼出し関数またはmain関数への関数のリターンに対応する。
その上、記憶媒体は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイスおよび/もしくは他の機械可読媒体、およびプロセッサ可読媒体、ならびに/または情報を記憶するためのコンピュータ可読媒体を含む、データを記憶するための1つもしくは複数のデバイスを表し得る。「機械可読媒体」、「コンピュータ可読媒体」、および/または「プロセッサ可読媒体」という用語は、限定はしないが、ポータブルもしくは固定ストレージデバイス、光ストレージデバイス、ならびに、命令および/またはデータを記憶または格納することが可能な様々な他の媒体のような非一時的媒体を含み得る。したがって、本明細書で説明される様々な方法は、「機械可読媒体」、「コンピュータ可読媒体」および/または「プロセッサ可読媒体」に記憶され、1つもしくは複数のプロセッサ、機械および/またはデバイスによって実行され得る命令および/またはデータによって、完全にまたは部分的に実装され得る。
さらに、本開示の態様は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実装されるとき、必要なタスクを実行するプログラムコードまたはコードセグメントは、記憶媒体または他のストレージのような機械可読媒体に記憶され得る。プロセッサは、必要なタスクを実行し得る。コードセグメントは、手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造もしくはプログラムステートメントの任意の組合せを表し得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡すことおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を介して渡されてもよく、転送されてもよく、または送信され得る。
本明細書で開示する例に関して説明する様々な例示的な論理ブロック、モジュール、回路、要素、および/または構成要素は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実施するように設計されたそれらの任意の組合せで実装または実施され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替形態では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティング構成要素の組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連係した1つもしくは複数のマイクロプロセッサ、または他の任意のそのような構成として実装され得る。
本明細書で開示する例に関して説明する方法またはアルゴリズムは、直接ハードウェアにおいて、プロセッサによって実行可能なソフトウェアモジュールにおいて、または両方の組合せにおいて、処理ユニット、プログラミング命令、または他の指示の形態で実施されてもよく、かつ、単一のデバイスに含まれてもよく、または複数のデバイスにわたって分散され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態の記憶媒体に常駐し得る。プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、記憶媒体はプロセッサに結合され得る。代替として、記憶媒体はプロセッサに一体化され得る。
さらに、本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、上記では概してそれらの機能に関して説明した。そのような機能性が、ハードウェアまたはソフトウェアのどちらとして実施されるのかは、具体的な適用例と、システム全体に課せられる設計制約とによって決まる。
本明細書で説明する本発明の様々な特徴は、本発明から逸脱することなく、異なるシステムにおいて実施され得る。本開示の前述の態様は、単に例であり、本発明を限定するものとして解釈されるべきではないことに留意されたい。本開示の態様の説明は、例示であることを意図しており、特許請求の範囲を限定することを意図していない。したがって、本教示は、他のタイプの装置に容易に適用されることが可能であり、多くの代替形態、変更形態、および変形形態が当業者には明らかであろう。
100 集積回路(IC)、IC、集積回路
102 ブートローダ
104 ユーザアプリケーション
106 メモリ回路、不揮発性メモリ回路
108 暗号鍵、鍵
200 集積回路(IC)、IC
201 リソース電力管理(RPM)回路、RPM回路
202 セキュアブートローダ、セキュアブートローダ回路
203 処理回路
204 非セキュアアプリケーション
206 メモリ回路、揮発性メモリモジュール/回路、揮発性メモリ回路
208 セキュア実行環境(SEE)、SEE
210 PUFメモリ回路、PUF、メモリモジュール/回路、メモリ回路、第1の揮発性メモリ回路、物理的クローン不能関数(PUF)
212 セキュア揮発性メモリ、セキュア揮発性メモリ回路、メモリ回路
302 メモリモジュール/回路、メモリ回路、揮発性メモリモジュール/回路、第2の/予備の揮発性メモリ回路、第2の揮発性メモリ回路、第2のメモリ部分、予備のメモリ部分
304 メモリモジュール/回路、メモリ回路、揮発性メモリモジュール/回路
306 メモリモジュール/回路、メモリ回路、揮発性メモリモジュール/回路
402 SEE制御回路、制御回路、制御論理、制御論理回路
404 セキュアバスライン
406 無効化バス論理
408 バス
500 セキュアブートフロー
501 セキュアブートローダ
502 1次ブートローダ(PBL)、PBL、プロセス
503 非セキュアアプリケーションブートローダ、非セキュアアプリケーションローダ
504 第1の2次ブートローダ(SBL1)、SBL1、プロセス
506 第2の2次ブートローダ(SBL2)、SBL2、プロセス
508 第3の2次ブートローダ(SBL3)、SBL3、プロセス、ローダ
510 アプリケーション2次ブートローダ、プロセス、ローダ
512 HLOS、HLOSコード、プロセス、ローダ
514 ユーザアプリケーション、ローダ
600 集積回路、IC
604 不揮発性メモリ回路
606 補助データ
608 第1のセキュア揮発性メモリ回路
610 第2のセキュア揮発性メモリ回路
902 秘密データ導出回路
904 クリア回路
906 暗号アルゴリズム回路

Claims (30)

  1. 集積回路において動作可能な方法であって、
    複数の初期論理状態値を生成するために第1の揮発性メモリ回路を電源投入するステップであって、前記第1の揮発性メモリ回路が前記集積回路上にある、ステップと、
    前記複数の初期論理状態値に基づいて秘密データを導出するステップと、
    セキュア揮発性メモリ回路中に前記秘密データを記憶するステップであって、前記セキュア揮発性メモリ回路が、セキュア実行環境(SEE)によってセキュアにされる、ステップと、
    前記第1の揮発性メモリ回路中の前記複数の初期論理状態値をクリアするステップと、
    前記秘密データに基づいて秘密鍵を抽出するために前記SEEにおいて暗号アルゴリズムを実行するステップと、
    前記セキュア揮発性メモリ回路中に前記秘密鍵を記憶するステップと
    を含む方法。
  2. 前記方法が、1つまたは複数の非セキュアアプリケーションから前記秘密データと前記複数の初期論理状態値とをセキュアにするために、前記第1の揮発性メモリ回路へのアクセスを制御する前記集積回路のセキュアブートフローである、請求項1に記載の方法。
  3. 前記セキュアブートフローが、少なくとも前記複数の初期論理状態値が前記第1の揮発性メモリ回路中でクリアされるまで前記第1の揮発性メモリ回路を前記1つまたは複数の非セキュアアプリケーションからアクセス不可能にすることによって、前記1つまたは複数の非セキュアアプリケーションから前記秘密データと前記複数の初期論理状態値とをセキュアにする、請求項2に記載の方法。
  4. 前記セキュアブートフローが、1次ブートローダと、第1の2次ブートローダと、第2の2次ブートローダとを含み、前記セキュアブートフローは、前記第1の2次ブートローダが実行する前に前記1次ブートローダに前記第1の2次ブートローダを認証させることによって信用チェーンを確立し、前記第1の2次ブートローダは、前記第2の2次ブートローダが実行する前に前記第2の2次ブートローダを認証し、前記第2の2次ブートローダが前記SEEを認証し、
    前記秘密鍵が、前記セキュアブートフロー中に、および前記1つまたは複数の非セキュアアプリケーションの実行より前に、抽出され、前記セキュア揮発性メモリ回路中に記憶される、請求項3に記載の方法。
  5. 前記第1の揮発性メモリ回路がリセットされると、前記セキュアブートフローが実行される、請求項2に記載の方法。
  6. 前記秘密データが、前記複数の初期論理状態値である、請求項1に記載の方法。
  7. 前記第1の揮発性メモリ回路をクリアした後に、前記第1の揮発性メモリ回路が、1つまたは複数の非セキュアアプリケーションのためのデータストレージのために利用可能になる、請求項1に記載の方法。
  8. 前記第1の揮発性メモリ回路が、スタティックランダムアクセスメモリ(SRAM)である、請求項1に記載の方法。
  9. 前記SEEは、非セキュアアプリケーションが前記セキュア揮発性メモリ回路にアクセスするのを防ぐ、請求項1に記載の方法。
  10. 前記複数の初期論理状態値は、前記第1の揮発性メモリ回路が電源投入されるたびに実質的に同じになる、請求項1に記載の方法。
  11. 前記暗号アルゴリズムが、ブロックコードアルゴリズム、拡散コードアルゴリズム、および/またはリピートコードアルゴリズムのうちの少なくとも1つに基づく、請求項1に記載の方法。
  12. 前記セキュア揮発性メモリ回路中に前記秘密データを記憶するより前に第2の揮発性メモリ回路中に前記秘密データを記憶するステップと、
    前記セキュア揮発性メモリ回路中に前記秘密データを記憶した後に前記第2の揮発性メモリ回路中に記憶された前記秘密データをクリアするステップと
    をさらに含む、請求項1に記載の方法。
  13. 前記第2の揮発性メモリ回路中に記憶された前記秘密データをクリアした後に、前記第2の揮発性メモリ回路が、1つまたは複数の非セキュアアプリケーションのためのデータストレージのために利用可能になる、請求項12に記載の方法。
  14. 前記SEEが、前記秘密鍵を非セキュアアプリケーションからアクセス不可能にすることによって前記秘密鍵へのアクセスを制御し、前記方法が、
    副鍵および/または公開データのうちの少なくとも1つについて前記SEEにおいて前記非セキュアアプリケーションから要求を受信するステップと、
    前記秘密鍵に基づいて前記SEEにおいて前記副鍵および/または前記公開データを生成するステップと、
    前記副鍵および/または前記公開データを要求する前記非セキュアアプリケーションに前記副鍵および/または前記公開データを与えるステップと
    をさらに含む、請求項1に記載の方法。
  15. 前記副鍵および/または前記公開データが、前記秘密鍵と、前記非セキュアアプリケーションによって与えられる他のデータとに基づいて生成される、請求項14に記載の方法。
  16. 前記秘密データに基づいて前記秘密鍵を抽出するために前記SEEにおいて実行される前記暗号アルゴリズムが、不揮発性メモリ回路中に記憶された補助データにさらに基づく、請求項1に記載の方法。
  17. 集積回路であって、
    電源投入時に複数の初期論理状態値を生成するように構成された第1の揮発性メモリ回路と、
    セキュア実行環境(SEE)によってセキュアにされるセキュア揮発性メモリ回路と、
    前記第1の揮発性メモリ回路と前記セキュア揮発性メモリ回路とに通信可能に結合された処理回路であって、
    前記複数の初期論理状態値に基づいて秘密データを導出することと、
    前記セキュア揮発性メモリ回路中に前記秘密データを記憶することと、
    前記第1の揮発性メモリ回路中の前記複数の初期論理状態値をクリアすることと、
    前記秘密データに基づいて秘密鍵を抽出するために前記SEEにおいて暗号アルゴリズムを実行することと、
    前記セキュア揮発性メモリ回路中に前記秘密鍵を記憶することと
    を行うように構成された処理回路と
    を含む集積回路。
  18. 前記処理回路が、(i)前記秘密データを導出することと、(ii)前記秘密データを記憶することと、(iii)前記複数の初期論理状態値をクリアすることと、(iv)前記暗号アルゴリズムを実行することと、(v)前記秘密鍵を記憶することとを行うことによってセキュアブートフローを実行し、前記セキュアブートフローが、1つまたは複数の非セキュアアプリケーションから前記秘密データと前記複数の初期論理状態値とをセキュアにするために、前記第1の揮発性メモリ回路へのアクセスを制御する、請求項17に記載の集積回路。
  19. 前記セキュアブートフローが、少なくとも前記複数の初期論理状態値が前記第1の揮発性メモリ回路中でクリアされるまで前記第1の揮発性メモリ回路を前記1つまたは複数の非セキュアアプリケーションからアクセス不可能にすることによって、前記1つまたは複数の非セキュアアプリケーションから前記秘密データと前記複数の初期論理状態値とをセキュアにする、請求項18に記載の集積回路。
  20. 前記セキュアブートフローが、1次ブートローダと、第1の2次ブートローダと、第2の2次ブートローダとを含み、前記セキュアブートフローは、前記第1の2次ブートローダが実行する前に前記1次ブートローダに前記第1の2次ブートローダを認証させることによって信用チェーンを確立し、前記第1の2次ブートローダは、前記第2の2次ブートローダが実行する前に前記第2の2次ブートローダを認証し、前記第2の2次ブートローダが前記SEEを認証し、
    前記秘密鍵が、前記セキュアブートフロー中に、および前記1つまたは複数の非セキュアアプリケーションの実行より前に、抽出され、前記セキュア揮発性メモリ回路中に記憶される、請求項19に記載の集積回路。
  21. 前記第1の揮発性メモリ回路がリセットされると、前記セキュアブートフローが実行される、請求項18に記載の集積回路。
  22. 前記第1の揮発性メモリ回路をクリアした後に、前記第1の揮発性メモリ回路が、1つまたは複数の非セキュアアプリケーションのためのデータストレージのために利用可能になる、請求項17に記載の集積回路。
  23. 前記処理回路が、
    前記セキュア揮発性メモリ回路中に前記秘密データを記憶するより前に第2の揮発性メモリ回路中に前記秘密データを記憶することと、
    前記セキュア揮発性メモリ回路中に前記秘密データを記憶した後に前記第2の揮発性メモリ回路中に記憶された前記秘密データをクリアすることと
    を行うようにさらに構成された、請求項17に記載の集積回路。
  24. 前記SEEが、前記秘密鍵を非セキュアアプリケーションからアクセス不可能にすることによって前記秘密鍵へのアクセスを制御し、前記処理回路が、
    副鍵および/または公開データのうちの少なくとも1つについて前記SEEにおいて前記非セキュアアプリケーションから要求を受信することと、
    前記秘密鍵に基づいて前記SEEにおいて前記副鍵および/または前記公開データを生成することと、
    前記副鍵および/または前記公開データを要求する前記非セキュアアプリケーションに前記副鍵および/または前記公開データを与えることと
    を行うようにさらに構成された、請求項17に記載の集積回路。
  25. 前記秘密データに基づいて前記秘密鍵を抽出するために前記SEEにおいて実行される前記暗号アルゴリズムが、不揮発性メモリ回路中に記憶された補助データにさらに基づく、請求項17に記載の集積回路。
  26. 集積回路であって、
    複数の初期論理状態値を生成するために第1の揮発性メモリ回路を電源投入するための手段であって、前記第1の揮発性メモリ回路が前記集積回路上にある、手段と、
    前記複数の初期論理状態値に基づいて秘密データを導出するための手段と、
    セキュア揮発性メモリ回路中に前記秘密データを記憶するための手段であって、前記セキュア揮発性メモリ回路が、セキュア実行環境(SEE)によってセキュアにされる、手段と、
    前記第1の揮発性メモリ回路中の前記複数の初期論理状態値をクリアするための手段と、
    前記秘密データに基づいて秘密鍵を抽出するために前記SEEにおいて暗号アルゴリズムを実行するための手段と、
    前記セキュア揮発性メモリ回路中に前記秘密鍵を記憶するための手段と
    を含む集積回路。
  27. 前記第1の揮発性メモリ回路へのアクセスが、少なくとも前記複数の初期論理状態値が前記第1の揮発性メモリ回路中でクリアされるまで前記第1の揮発性メモリ回路を1つまたは複数の非セキュアアプリケーションからアクセス不可能にすることによって、前記1つまたは複数の非セキュアアプリケーションから前記秘密データと前記複数の初期論理状態値とをセキュアにするように制御される、請求項26に記載の集積回路。
  28. 前記第1の揮発性メモリ回路をリセットされると、前記集積回路がリセットされ、セキュアブートフローが行われる、請求項27に記載の集積回路。
  29. 1つまたは複数の命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、少なくとも1つの集積回路によって実行されたとき、前記集積回路に、
    複数の初期論理状態値を生成するために第1の揮発性メモリ回路を電源投入することであって、前記第1の揮発性メモリ回路が前記集積回路上にある、電源投入することと、
    前記複数の初期論理状態値に基づいて秘密データを導出することと、
    セキュア揮発性メモリ回路中に前記秘密データを記憶することであって、前記セキュア揮発性メモリ回路が、セキュア実行環境(SEE)によってセキュアにされる、記憶することと、
    前記第1の揮発性メモリ回路中の前記複数の初期論理状態値をクリアすることと、
    前記秘密データに基づいて秘密鍵を抽出するために前記SEEにおいて暗号アルゴリズムを実行することと、
    前記セキュア揮発性メモリ回路中に前記秘密鍵を記憶することと
    を行わせるコンピュータ可読記憶媒体。
  30. 前記1つまたは複数の命令が、前記集積回路のセキュアブートフローのためのものであり、前記命令は、前記集積回路によって実行されたとき、少なくとも前記複数の初期論理状態値が前記第1の揮発性メモリ回路中でクリアされるまで前記第1の揮発性メモリ回路を1つまたは複数の非セキュアアプリケーションからアクセス不可能にすることによって、前記1つまたは複数の非セキュアアプリケーションから前記秘密データと前記複数の初期論理状態値とをセキュアにするように前記第1の揮発性メモリ回路へのアクセスが制御されるようにさせる、請求項29に記載のコンピュータ可読記憶媒体。
JP2016546025A 2014-01-22 2015-01-20 セキュアブート中のキー抽出 Pending JP2017504267A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/161,185 2014-01-22
US14/161,185 US9755831B2 (en) 2014-01-22 2014-01-22 Key extraction during secure boot
PCT/US2015/011991 WO2015112479A1 (en) 2014-01-22 2015-01-20 Key extraction during secure boot

Publications (2)

Publication Number Publication Date
JP2017504267A true JP2017504267A (ja) 2017-02-02
JP2017504267A5 JP2017504267A5 (ja) 2018-02-15

Family

ID=52469304

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016546025A Pending JP2017504267A (ja) 2014-01-22 2015-01-20 セキュアブート中のキー抽出

Country Status (7)

Country Link
US (1) US9755831B2 (ja)
EP (1) EP3097507A1 (ja)
JP (1) JP2017504267A (ja)
KR (1) KR20160111455A (ja)
CN (1) CN106415585A (ja)
BR (1) BR112016016861A2 (ja)
WO (1) WO2015112479A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3040896A1 (en) * 2014-12-30 2016-07-06 Gemalto Sa Secure element
US10496811B2 (en) * 2016-08-04 2019-12-03 Data I/O Corporation Counterfeit prevention
US11012246B2 (en) * 2016-09-08 2021-05-18 Taiwan Semiconductor Manufacturing Co., Ltd. SRAM-based authentication circuit
WO2018054537A1 (en) * 2016-09-24 2018-03-29 Giesecke+Devrient Mobile Security Gmbh Method and system for downloading operating systems on smart cards having low random access memory
US10984136B2 (en) * 2017-04-21 2021-04-20 Micron Technology, Inc. Secure memory device with unique identifier for authentication
US10812269B2 (en) * 2017-11-07 2020-10-20 Arris Enterprises Llc Advanced crypto token authentication
US10742406B2 (en) * 2018-05-03 2020-08-11 Micron Technology, Inc. Key generation and secure storage in a noisy environment
US11010309B2 (en) * 2018-05-18 2021-05-18 Intel Corporation Computer system and method for executing one or more software applications, host computer device and method for a host computer device, memory device and method for a memory device and non-transitory computer readable medium
US11244078B2 (en) 2018-12-07 2022-02-08 Nxp Usa, Inc. Side channel attack protection
US11625459B2 (en) * 2019-02-08 2023-04-11 Raytheon Technologies Corporation Embedded processing system with multi-stage authentication
US11323275B2 (en) 2019-03-25 2022-05-03 Micron Technology, Inc. Verification of identity using a secret key
US11218330B2 (en) * 2019-03-25 2022-01-04 Micron Technology, Inc. Generating an identity for a computing device using a physical unclonable function
US11361660B2 (en) 2019-03-25 2022-06-14 Micron Technology, Inc. Verifying identity of an emergency vehicle during operation
TWI804703B (zh) * 2019-12-31 2023-06-11 新唐科技股份有限公司 電腦裝置及基於信任鏈的權限管理方法
US11768611B2 (en) 2020-04-02 2023-09-26 Axiado Corporation Secure boot of a processing chip
TWI905163B (zh) * 2020-04-06 2025-11-21 美商橫杆股份有限公司 利用晶片上電阻式記憶體的不可複製特性之特殊晶片識別碼序列
US12039090B2 (en) * 2021-01-19 2024-07-16 Cirrus Logic Inc. Integrated circuit with asymmetric access privileges
US11809334B2 (en) * 2021-01-19 2023-11-07 Cirrus Logic Inc. Integrated circuit with asymmetric access privileges
US12278830B2 (en) 2021-08-31 2025-04-15 Axiado Corporation Systems and methods using network artificial intelligence to manage control plane security in real-time
US12609914B2 (en) 2022-02-22 2026-04-21 Axiado Corporation Network access proxy for zero-day attack protection in control and management plane applications
US12119058B2 (en) * 2022-03-30 2024-10-15 Crossbar, Inc. Error correction for identifier data generated from unclonable characteristics of resistive memory
US12189829B2 (en) * 2022-05-17 2025-01-07 Avago Technologies International Sales Pte. Limited Management of root key for semiconductor product
FR3137988B1 (fr) * 2022-07-12 2024-06-21 Commissariat Energie Atomique Procédé et circuit pour la vérification de l’intégrité d’un logiciel
FR3142577B1 (fr) * 2022-11-28 2025-02-28 Commissariat Energie Atomique Procédé de fourniture d’un aléa pour un algorithme cryptographique, procédé de traitement d’une donnée et programme d’ordinateur associés

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120210115A1 (en) * 2011-02-11 2012-08-16 Park Dong-Jin Secure Boot Method and Method for Generating a Secure Boot Image
JP2013126221A (ja) * 2011-12-16 2013-06-24 Toshiba Corp 暗号化鍵生成装置およびプログラム
JP2013545340A (ja) * 2010-10-04 2013-12-19 イントリンシツク・イー・デー・ベー・ベー 開始挙動が改善された物理的複製不可能関数

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5363447A (en) * 1993-03-26 1994-11-08 Motorola, Inc. Method for loading encryption keys into secure transmission devices
US6675303B1 (en) * 1999-09-29 2004-01-06 2Micro International Limited PC card controller with advanced power management reset capabilities
KR101727130B1 (ko) 2010-01-20 2017-04-14 인트린직 아이디 비브이 암호화 키를 획득하기 위한 디바이스 및 방법
CN103202045B (zh) 2010-11-05 2016-06-01 交互数字专利控股公司 设备检验、遇险指示和补救

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013545340A (ja) * 2010-10-04 2013-12-19 イントリンシツク・イー・デー・ベー・ベー 開始挙動が改善された物理的複製不可能関数
US20120210115A1 (en) * 2011-02-11 2012-08-16 Park Dong-Jin Secure Boot Method and Method for Generating a Secure Boot Image
JP2013126221A (ja) * 2011-12-16 2013-06-24 Toshiba Corp 暗号化鍵生成装置およびプログラム

Also Published As

Publication number Publication date
EP3097507A1 (en) 2016-11-30
US9755831B2 (en) 2017-09-05
BR112016016861A2 (pt) 2017-08-08
WO2015112479A1 (en) 2015-07-30
KR20160111455A (ko) 2016-09-26
US20150207624A1 (en) 2015-07-23
CN106415585A (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
US9755831B2 (en) Key extraction during secure boot
US9842212B2 (en) System and method for a renewable secure boot
US8719585B2 (en) Secure update of boot image without knowledge of secure key
EP3284000B1 (en) Secure software authentication and verification
CN104252881B (zh) 半导体集成电路及系统
US9830456B2 (en) Trust transference from a trusted processor to an untrusted processor
Mohammad et al. Required policies and properties of the security engine of an SoC
US10567362B2 (en) Method and system for an efficient shared-derived secret provisioning mechanism
US8478973B2 (en) System and method for providing a secure application fragmentation environment
Eisenbarth et al. Reconfigurable trusted computing in hardware
US10735190B1 (en) Persistent TPM-based identifier and key pair
US20090204803A1 (en) Handling of secure storage key in always on domain
US10057224B2 (en) System and method for initializing a shared secret system
US20130254906A1 (en) Hardware and Software Association and Authentication
US20140270177A1 (en) Hardening inter-device secure communication using physically unclonable functions
US10936722B2 (en) Binding of TPM and root device
US11874928B2 (en) Security device, electronic device, secure boot management system, method for generating boot image, and method for executing boot chain
CN112384922B (zh) 加密密钥分布
US12333055B2 (en) Security component and method of operation
WO2017112104A1 (en) Derived keys for execution environments in a boot chain
US20210406378A1 (en) Data protection in a pre-operation system environment based on an embedded key of an embedded controller
US20200235917A1 (en) Shared secret generation
CN109586898B (zh) 双系统通信密钥生成方法及计算机可读存储介质
US20090204801A1 (en) Mechanism for secure download of code to a locked system
US10461926B2 (en) Cryptographic evidence of persisted capabilities

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171226

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181015

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190527