JP2009525556A - 外部のコード・イメージをチップ上のプライベート・キーに一致させるための方法および装置 - Google Patents

外部のコード・イメージをチップ上のプライベート・キーに一致させるための方法および装置 Download PDF

Info

Publication number
JP2009525556A
JP2009525556A JP2008553557A JP2008553557A JP2009525556A JP 2009525556 A JP2009525556 A JP 2009525556A JP 2008553557 A JP2008553557 A JP 2008553557A JP 2008553557 A JP2008553557 A JP 2008553557A JP 2009525556 A JP2009525556 A JP 2009525556A
Authority
JP
Japan
Prior art keywords
key
code
code image
encrypted
image
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
JP2008553557A
Other languages
English (en)
Inventor
ムングイア,ピーター
バット,ディラジ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2009525556A publication Critical patent/JP2009525556A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key

Abstract

外部のコード・イメージをチップ上のプライベート・キーと一致させるための装置、システム、および方法が示され、その方法は、コード・イメージおよびコード・キーを受け取り、コード・イメージおよびコード・キーが非保護ストレージ内に収容される場合は、コード・イメージおよびコード・キーを暗号化する方法を含む。他の実施例も示される。

Description

本発明は、外部のコード・イメージをチップ上のプライベート・キーに一致させるための方法および装置に関する。
典型的なコンピューティング・プラットフォームは、システムを始動させるためにブート・コードを使用する。このようなコードは、悪意のあるエンティティがこのようなシステムにアクセスするために、とりわけ魅力的な手法であることから、ブート・コードまたはそのイメージへの無許可のアクセスを防止するための保護メカニズムおよび/またはスキームが必要とされる。ブート・コードを保護するために現在行われている方法は、ブート装置(例えば、ブート・コードまたはブート・コード・イメージを格納するメモリ装置)への信号層またはブート装置からの信号層の埋め込み、物理的なアクセスを防止するためにブート装置に接着剤のような材料の塗布、装置間のトレース長の最小限化等のような物理的な制約に依存している。典型的には、追加のプロテクションが、ブート・コード自体の中に根ざした信頼できるソフトウェア・チェーンという形で提供される。しかしながら、ブート・コード自体が悪意のブート・コードによってアクセスされるか、あるいは置き換えられる場合には、ブート・コード内に根ざす信頼できるソフトウェア・チェーンが危険に晒される。
本明細書の一部に組み込まれ、かつ、本明細書の一部を構成する添付図面は、本発明の原理と矛盾しない1またはそれ以上の実施例を示し、本発明についての記述と相俟って、かかる実施例を説明する。図面は、本発明を図示する特定の実施例に限定するために示されたものではなく、また、必ずしも同じ縮尺で描かれておらず、さらに、全てを網羅したものであると考えるべきではなく、本発明の原理を示す上で強調される場合もある。
以下の記述は、添付図面に関連するものである。様々な図面において、同一の参照番号は、同一または類似の要素を識別するために使用される。以下の記述は、特定の構造、アーキテクチャ、インターフェイス、技術等の特定の詳細事項を示すことにより、請求項に記載された発明の多様な側面についての完全な理解を提供するが、かかる詳細事項は説明目的のために提供されるものであり、本発明を制限するものであると考えるべきではない。さらに、当業者は、本開示に照らして、請求項に記載された発明の多様な側面が、これらの特定の詳細事項以外の他の実施例において実行し得ることを理解するであろう。下記の説明中、一定の箇所では、周知の装置、回路、および方法は、これらを必要以上に詳細に説明することによって本発明の記述が不明確になることを避けるために省略された。
図1は、本発明のいくつかの実施例に従ったシステム例100を示す。システム100は、ディスプレイ・コントローラ104、暗号(cryptographic)モジュール106、ストレージ・メディア107、および通信経路108に結合されたメディア・プロセッサ102を含む。システム100は、さらに、経路108に結合されたメモリ110(例えば、ダイナミック・ランダム・アクセス・メモリ(DRAM)、スタティック・ランダム・アクセス・メモリ(SRAM)、フラッシュ・メモリのような不揮発性メモリ等)、コントローラ104に結合されたディスプレイ112、および、経路108に結合された入力/出力(I/O)コントローラ114を含む。さらに、システム100は、I/Oコントローラ114に結合されたワイヤレス送信機回路およびワイヤレス受信機回路116、および、回路116に結合されたアンテナ118(例えば、ダイポール・アンテナ、狭帯域ミアンダ・ライン・アンテナ(MLA)、広帯域MLA、逆「F」アンテナ、平面逆「F」アンテナ、Goubauアンテナ、パッチ・アンテナ等)を含む。
システム100は、本発明の実施例によれば、暗号(cryptographic)キー、データ、あるいは、ブート・コードまたはブート・コード・イメージのようなソフトウェア命令の暗号処理に適した任意のシステムであるが、それについては以下で詳述する。さらに、システム100は、様々な物理的機器を想定している。例えば、システム100は、パーソナル・コンピュータ(PC)、ネットワーク化されたPC、サーバ・コンピューティング・システム、携帯型コンピューティング・プラットフォーム(例えば携帯情報端末(PDA))、ゲーム・システム(携帯型またはそれ以外)、3D可能な携帯電話送受話器等が実装されてもよい。さらに、システム100の全てのコンポーネントは、システム−オン−チップ(SOC: system-on-a-chip)集積回路(IC)のような単一の装置内に実装されてもよく、あるいは、システム100のコンポーネントは、複数のICまたは装置にわたって配置されてもよい。例えば、メディア・プロセッサ102、モジュール106、ストレージ107、経路108、メモリ110、コントローラ114、回路116、およびアンテナ118は、例えばパーソナル・コンピュータ(PC)またはセット・トップ・ボックス(STB)のような単一のコンピューティング・プラットフォーム内に存在する複数のICの一部分として実装されてもよく、あるいは、ディスプレイ・コントローラ104は、メディア・プロセッサ102に結合されたディスプレイ112のような個別の装置内に実装されてもよい。明らかに、ここで記述されるようなシステム100の機能性と一致するような多様な変更が可能である。
メディア・プロセッサ102は、オーディオおよび/またはイメージおよび/またはビデオ・データを処理することができ、かつ、ディスプレイ・コントローラ104にイメージおよび/またはビデオ・データを供給することができるような、あらゆる制御および/または処理ロジック、ハードウェア、ソフトウェア、および/またはファームウェアを含む特定用途または一般用途のプロセッサ・コアを含む。プロセッサ102は、さらに、暗号モジュール106を使用して、暗号(cipher)キー、データ、および/またはブート・コードのようなソフトウェア命令を暗号化(encrypt)または復号化(decrypt)し、そして、暗号化または復号化されたキー、データ、および/またはブート・コードのようなソフトウェア命令をメモリ110および/またはストレージ107に提供するが、それについては以下で詳述する。当業者であれば、プロセッサ102は、ストレージ107および/またはメモリ110へのアクセスを制御するための制御ロジックを含むことができることを理解するであろう。さらに、図1には、別個の装置として暗号モジュール106が示されているが、本発明はこの点に制限されず、例えば、暗号モジュール106は、メディア・プロセッサ102内に実装されてもよい。
プロセッサ102は、さらに、外部のコード・イメージとチップ上のプライベート・キーとを一致させることを支援するような、多くの追加タスクのいくつかを実行することができる。これらのタスクには、例えば、システム100の外部にある装置から、外部のコード・イメージを、例えば、アンテナ118、送信機および受信機回路116、およびI/Oコントローラ114を経由してダウンロードすることによって獲得することが含まれるが、本発明はこの点に制限されない。当業者であれば、プロセッサ102は、モジュール106またはコントローラ104内のレジスタの初期化および/または形成、インターラプト・サービス等のような他の支援タスクを引き受けることが分かるであろう。さらに、プロセッサ102は、2またはそれ以上のプロセッサ・コアを含むが、本発明はこの点に制限されない。図1は、別個の装置としてメディア・プロセッサ102およびディスプレイ・コントローラ104を示すが、本発明はこの点に制限されず、また、当業者であれば、メディア・プロセッサ102およびディスプレイ・コントローラ104、ならびにシステム100に追加可能なコンポーネントは、単一のIC内に実装されてもよいことが分かるであろう。
ディスプレイ・コントローラ104は、メディア・プロセッサ102によって提供されたグラフィックスまたはイメージ・データを、ディスプレイ112を駆動させるために適したフォーマット(すなわち、ディスプレイに特有のデータ)に変換することができるような、任意の処理ロジック、ハードウェア、ソフトウェア、および/またはファームウェアを含む。例えば、プロセッサ104は、特定のカラー・フォーマット、例えば圧縮した赤−緑−青(RGB)ピクセル・フォーマットで、コントローラ104にグラフィックスおよび/またはイメージおよび/またはビデオ・データを提供し、また、コントローラ104は、例えば対応する液晶ディスプレイ(LCD)データ・レベル等を生成することによって、そのRGBデータを処理するが、本発明はこの点に制限されない。さらに、本発明は、特定のタイプのディスプレイ112に制限されない。したがって、ディスプレイ112は、例えば、LCDディスプレイ、または電界発光(EL)ディスプレイのような任意のタイプのディスプレイでもよい。
バスまたは通信経路108は、システム100の要素間で情報(例えば、暗号化されたコード・イメージ、キー等)を伝達するためのあらゆるメカニズムを含む。例えば、通信経路108は、例えばコード・イメージおよびコード・キーをプロセッサ102に伝達することができる多目的バスを含むが、本発明はこの点に制限されない。あるいは、経路108は、ワイヤレス通信経路を含んでもよい。
図2は、本発明のいくつかの実施例に従って、システム100の部分に類似するシステム200を示す。システム200は、暗号化ロジック(EL)204および復号化ロジック(DL)206を含む暗号モジュール(CM)202、少なくとも1つのプライベート・キー209を格納するワンタイム・プログラマブル(OTP)メモリ208、OTPメモリ208およびCM202の両方に結合されたキー導出ロジック(KDL)210、CM202に結合された非保護ストレージ212、CM202に結合された保護ストレージ214、および、保護ストレージ214およびCM202に結合されたプロセッサ・コア216を含む。システム200は、本発明の実施例に従って、キー、データ、あるいは、ブート・コードまたはブート・コード・イメージのようなソフトウェア命令を処理するために適切な任意のシステムであるが、それについては以下で詳述する。
システム100と同様に、システム200もまた様々な物理的機器を想定している。システム200のすべてのコンポーネントは、システム−オン−チップ(SOC)集積回路(IC)のような単一の装置内に実装されてもよく、あるいは、システム200のコンポーネントは、複数のICあるいは装置にわたって配置されてもよい。さらに、プロセッサ・コア216は、本発明の実施例に従って、外部のコード・イメージとチップ上のプライベート・キーとを一致させることを支援するような、任意の制御および/または処理ロジック、ハードウェア、ソフトウェアおよび/またはファームウェアを含む任意の特別目的あるいは汎用目的のプロセッサ・コアを含むが、それについては以下で詳述する。
CM202は、本発明の実施例に従って、外部のコード・イメージとプライベート・キーとを一致することができるような、任意の処理ロジック、ハードウェア、ソフトウェアおよび/またはファームウェアを含むが、それについては以下で詳述する。CM202は、システム200の外部にある装置から1またはそれ以上のコード・イメージ(例えばCodeA、CodeBなど)および関連する暗号化(encryption)キー(例えばK,Kなど)を受け取る。CM202は、さらに、OTPメモリ208からプライベート・キー209を受け取る。加えて、CM202は、1またはそれ以上のキーを導出ロジック210から受け取るが、これらのキーは、プライベート・キー209から導出されたものである。
その後、CM202は、EL204を使用して各コード・イメージを関連するコード・キーで暗号化し、結果として暗号化されたコード・イメージを非保護ストレージ212に格納する。CM202は、さらに、EL204、および、プライベート・キー209のような暗号化キー、または、導出ロジック210によって提供された導出キーを使用して、各コード・キーを暗号化し、その後、暗号化されたコード・キーを、関連する暗号化されたコード・イメージと共に非保護ストレージ212に格納する。CM202は、さらに、DL206を使用して、非保護ストレージ212から取り出された暗号化されたコード・キーを復号化し、その復号化されたコード・キーを使用して関連する暗号化されたコード・イメージを復号化し、結果として復号化された、またはクリアなコード・キーおよびコード・イメージを保護ストレージ214内に格納する。CM202は、プロセッサ・コア216によって送出されたコマンドに応答して、これらの暗号化タスクおよび復号化タスクを引き受ける。CM202の機能は、図1のCM106の機能に類似する。
本発明は、EL204およびDL206によって実行される特定タイプのコード・キーおよび/または特定タイプの暗号化プロセスに限定されない。したがって、例えば、当業者であれば、コード・イメージに関連し、かつ、システム200に供給されるコード・キーは、EL204によって使用される暗号化プロセスのタイプに依存し、コード・キーを用いてコード・イメージを暗号化できることを理解するであろう。従って、例えば、コード・キーは、RSA(Rivest,Shamir,and Adelman)デジタル署名アルゴリズム(DSA)のような周知の公開鍵インフラストラクチャ(PKI)技術と一致してもよい。あるいは、コード・キーは、例えば、対称キーあるいはランダム・ユニーク・キーのような他の暗号化スキームと一致するキーであってもよい。
非保護ストレージ212は、例えば、ユーザ・アクセス可能な(user-accessible)あらゆる格納手段である。換言すれば、ストレージ212のコンテンツは、従来の方法でシステム200のユーザによってアクセスされ得る。例えば、ストレージ212は、固定の不揮発性メモリ装置(例えば、フラッシュ・メモリ、ハードディスク・ドライブなど)、あるいは、取外し可能な不揮発性メモリ装置(例えばフラッシュ・メモリ等を含むメモリ・カード)などである。したがって、例えば、ストレージ212は、CM202および/またはプロセッサ・コア216を組み込んだ半導体基板以外の半導体基板に形成されたオフチップ・メモリであってもよい。
これとは対照的に、保護ストレージ214は、ユーザ・アクセス不可能な(user-inaccessible)あらゆる格納手段である。換言すれば、ストレージ214のコンテンツは、従来の方式でシステム200のユーザによってアクセスされ得ない。例えば、ストレージ214は、CM202および/またはプロセッサ・コア216と同一の半導体基板内に形成されたオンチップまたはキャッシュ・メモリである。あるいは、他の例では、ストレージ214は、個別の半導体基板上に形成され、かつ、高速システム・バスによってプロセッサ・コア216に結合された、ダブル・データ・レート(DDR)ランダム・アクセス・メモリ(RAM)のようなシステム・メモリを含む。さらに、図2は、OTP208内に保持されたプライベート・キー209を示すが、本発明はこの点に制限されることはなく、当業者であれば、ポリシリコン・ヒューズ、リード・オンリ・メモリ(ROM)、またはロジック・ゲート等のような他の手段の中にプライベート・キー209を安全に保持できることが分かるであろう。
図3は、本発明のいくつかの実施例に従って、外部のコード・イメージとチップ上のプライベート・キーとを一致させるためのプロセス300を示すフローチャートである。説明を簡素化するために、プロセス300は、図1のシステム100および/または図2のシステム200に関して記述されるが、本発明はこの点に制限されず、また、請求項に記載された発明に従って適切な装置によってサポートされる他のプロセスあるいはスキームも可能である。プロセス300および関連するプロセスについては、コード・イメージの例を用いて以下で説明されるが、本発明はこの点に制限されることはなく、用語「コード・イメージ」は、実行可能なコードであるか実行可能でないデータであるかを問わず、秘密またはそうでないあらゆる情報を包含するものであると考えられる。したがって、用語「コード・イメージ」は、例えば、一般には、コード・イメージ、ブート・コード・イメージ、1またはそれ以上のキー、あるいはデータであって、秘密またはそうでないものを包含する。
プロセス300は、コード・イメージを提供することから始まる(段階302)。本発明のいくつかの実施例において、段階302は、アンテナ118を経由してワイヤレス受信機116がブート・コード・イメージ(例えばCodeA)を受信し、さらに、I/Oコントローラ114がそのブート・コード・イメージを、メディア・プロセッサ102内に設けられたCM202のEL204に送ることによって実行される。しかしながら、段階302は、コード・イメージをブートすること、またはコード・イメージをワイヤレスで獲得することに制限されず、したがって、段階302は、システム100に結合された他の装置(図示せず)を通って、例えばI/Oコントローラ114によって、コード・イメージを提供することを含む。プロセス300は、続いてコード・キーを提供する(段階304)。段階304は、段階302に関して上述したラインと同じラインに沿って実行される。
プロセス300は、続いてコード・イメージを暗号化する(段階306)。本発明のいくつかの実施例では、EL204は、段階304で提供されたコード・キー(例えば、K)を使用してコード・イメージを暗号化する。例えば、EL204は、アドバンスト・エンクリプション・スタンダード(AES)アルゴリズムのような周知の暗号化技術を使用して段階306を実行する。しかしながら、上述したように、本発明は、段階306の実行においてEL204によって使用されたいかなる特定の暗号化技術、または、ここに記述されたいかなる暗号化および/または復号化行為にも制限されない。その後、プロセス300は、非保護ストレージ内に暗号化されたコード・イメージを格納する(段階308)。段階308を実行する1つの方法は、CM202を用いて、ストレージ212内に暗号化されたコード・イメージ(例えば、eCodeA(K))を格納する方法である。
プロセス300は、続いて暗号化キーを提供する(段階310)。本発明のいくつかの実施例において、段階308は、CM202によってOTP208からプライベート・キー209を獲得し、暗号化キーとしてそのキーを使用する。あるいは、KDL210およびEL204がOTP208からプライベート・キー209を獲得し、かつ、暗号化キーを導出するためのルート・キーとしてプライベート・キー209を使用することにより、段階310を実行する。
図4は、プロセス300における段階310のいくつかの実施例に従って、暗号化キーを提供するためのプロセス400を示すフローチャートである。説明を容易にするために、プロセス400は、図1のシステム100および/または図2のシステム200に関して記述されるが、本発明はこの点に制限されず、また、請求項に記載された発明に従った適切な装置によってサポートされる他のプロセスあるいはスキームも可能である。
プロセス400は、マスター・キーの提供から始まる(段階402)。本発明のいくつかの実施例では、KDL210は、周知のPKI技術を使用してマスター・キーを導出し、そのマスター・キーをCM202に提供することによって段階402を実行する。当業者であれば、本発明は、KDL210のようなキーを導出するハードウェア・インプリメンテーションに制限されず、さらに、例えば、段階402あるいは同様の段階においてマスター・キーのようなキーを導出するために、外部ソフトウェア・アプリケーションを使用してキーを導出することも考慮されていることがわかるであろう。その後、プロセス400は、続いてプライベート・キーを提供する(段階404)。本発明のいくつかの実施例において、段階404は、CM202によって、OTP208からプライベート・キー209を獲得することにより実行される。
プロセス400は、続いてマスター・キーを暗号化し(段階406)、さらに、結果として生じた暗号化されたマスター・キーを格納する(段階407)。本発明のいくつかの実施例では、段階406は、周知の暗号化技術および段階404で提供されたプライベート・キーを使用してEL204によって実行され、一方、段階407は、暗号化されたマスター・キーを非保護ストレージ212に提供するCM202によって実行される。その後、プロセス400は、続いてプラットフォーム・キーを提供し(段階408)、さらに、マスター・キーを使用してプラットフォーム・キーを暗号化する(段階410)。上述のように、段階408,410は、段階404,406と同様の方法でそれぞれ実行される。段階410で生成された暗号化されたプラットフォーム・キーは、例えば非保護ストレージ212内に格納される(段階412)。段階408で提供されたプラットフォーム・キーは、プロセス300の段階310で提供された暗号化キーのように使用される。
プロセス400は、マスター・キーおよびプラットフォーム・キーの2つのキーを使用する場合を示すが、本発明は、プロセス400で使用されるような特定のタイプのキーに制限されず、また、本発明は、プロセス400のように2つのキーを使用することに制限されない。したがって、例えば、プロセス400に類似するプロセスにおいて、追加のキーを使用してもよい。
ここで図3に戻り、プロセス300は、続いて、段階310で提供された暗号化キーを用いてコード・キーを暗号化する(段階312)。今一度繰り返すが、本発明のいくつかの実施例では、段階312は、段階310で提供される暗号化キーを用いてコード・キーを暗号化するために、周知の暗号化技術を使用してEL204によって実行される。その後、プロセス300は、非保護ストレージ内に暗号化されたコード・キー(例えば、eK)を収容することで終了する(段階314)。段階314を実行するための1つの方法は、段階306においてコード・キーを用いて暗号化された対応するコード・イメージに関連するストレージ212内に、CM202が暗号化されたコード・キーを収容することである。
本発明のいくつかの実施例によれば、プロセス300は2回以上実行され、その結果、2またはそれ以上の暗号化されたコード・イメージ(例えば、eCodeA(K),eCodeB(K)など)および関連する暗号化されたコード・キー(例えば、eK,eKなど)が非保護ストレージ(例えば、ストレージ212)内に収容される。さらに、各コード・キーの暗号化は、各コード・キーに対して特有の異なるプラットフォーム・キーを使用して実行されてもよい。
図5は、本発明のいくつかの実施例に従って、外部のコード・イメージとチップ上のプライベート・キーとを一致させるためのプロセス500を示すフローチャートである。説明を容易にするために、プロセス500は、図1のシステム100および/または図2のシステム200に関して述べられるが、本発明はこの点に制限されず、請求項に記載された発明に従った適切な装置によってサポートされる他のプロセスまたはスキームも可能である。
プロセス500は、暗号化されたコード・キーを提供することから始まる(段階502)。本発明のいくつかの実施例では、段階502は、例えば、プロセッサ・コア216からの1またはそれ以上のコマンドに応答して、例えば、CM202が段階314においてストレージ212内にその暗号化されたコード・キーを収容した非保護ストレージ212から、CM202によって暗号化されたコード・キー(例えば、eK)を獲得することによって実行される。その後、プロセス500は、続いて復号化(decryption)キーを提供する(段階504)。本発明のいくつかの実施例では、段階504は、CM202によって、OTP208からプライベート・キー209を獲得し、かつ、復号化キーとしてプライベート・キー209を使用することにより実行される。あるいは、KDL210およびEL204によって、OTP208からプライベート・キー209を獲得し、かつプライベート・キー209を、復号化キーを導出するルート・キーとして使用することにより、段階504が実行される。
図6は、プロセス500における段階504のいくつかの実施例に従って、復号化キーを提供するプロセス600を示すフローチャートである。説明を容易にするために、プロセス600は図1のシステム100および/または図2のシステム200に関して述べられるが、本発明はこの点に制限されず、また、請求項に記載された発明に従った適切な装置にサポートされた他のプロセスあるいはスキームも可能である。
プロセス600は、暗号化されたマスター・キーを提供することから始まる(段階602)。本発明のいくつかの実施例では、CM202は、非保護ストレージ212から暗号化されたマスター・キーを獲得することによって段階602を実行する。その後、プロセス600は、続いてプライベート・キーを提供する(段階604)。本発明のいくつかの実施例では、段階604は、CM202によって、OTP208からプライベート・キー209を獲得することにより実行される。
プロセス600は、続いて暗号化されたマスター・キーを復号化する(段階606)。本発明のいくつかの実施例では、段階606は、DL206によって、周知の復号化技術、および段階604で提供されるプライベート・キーを使用して実行される。その後、プロセス600は、続いて、暗号化されたプラットフォーム・キーを提供し(段階608)、さらに、段階606で生じた復号化されたマスター・キーを使用して、暗号化されたプラットフォーム・キーを復号化する(段階610)。上述のように、段階608,610は、段階604,606と同様の方法でそれぞれ実行される。その後、段階610で生成された復号化されたプラットフォーム・キーは、プロセス500の段階504で提供された復号化キーとして使用される。
図5に戻り、その後プロセス500は、続いて、段階504で提供された復号化キーを使用して暗号化されたコード・キーを復号化する(段階506)。本発明のいくつかの実施例によれば、段階506は、周知の復号化技術を用いてDL206によって行なわれ、暗号化されたコード・キーを段階504で提供された復号化キーで復号化する。その後、プロセス500は、続いて、保護ストレージ内に復号化されたコード・キーを収容する(段階510)。段階510を実行する1つの方法は、CM202によって、ストレージ214内に復号化された、またはクリアなコード・キー(例えば、K)を収容する方法である。
その後、プロセス500は、続いて、暗号化されたコード・イメージを提供する(段階508)。本発明のいくつかの実施例では、段階508は、CM202が暗号化されたコード・イメージ(例えば、eCodeA(K))を非保護ストレージ212から獲得することによって実行されるが、その暗号化されたコード・イメージは、段階502で獲得された暗号化されたコード・キー(例えば、eK)と関係づけられている。その後、暗号化されたコード・イメージは、段階506に起因する関連する復号化されたコード・キーを使用して復号化される(段階512)。本発明のいくつかの実施例では、段階512は、関連する復号化されたコード・キー(例えばK)を使用して、暗号化されたコード・イメージ(例えばeCodeA(K))を復号化するために周知の復号化技術を使用して、DL206によって実行される。その後、プロセス500は、保護ストレージ内に復号化されたコード・イメージを収容することで終了する(段階514)。段階514を実行する1つの方法は、CM202によって、ストレージ214内に復号化された、またはクリアなコード・イメージ(例えばCodeA)を収容する方法である。
本発明のいくつかの実施例によれば、プロセス500は、2回以上実行され、その結果、2またはそれ以上の復号化されたまたはクリアなコード・イメージ(例えば、CodeA,CodeBなど)および関連する復号化されたコード・キー(例えばK,Kなど)が保護ストレージ(例えば、ストレージ214)内に収容される。
本発明のいくつかの実施例に従って、システム100/200および/またはプロセス300−600は、特定の宛先(すなわち、その宛先は非保護ストレージ対保護ストレージ)であるハードウェアの暗号化および復号化機能をサポートするが、これらの暗号化および復号化ハードウェア機能によって、外部装置(つまり、コード・イメージを提供する外部装置)のコンテンツをプライベート・キーを含むICチップに一致させることが可能となる。特に、これらの暗号化および復号化ハードウェア機能によって、安全なブート・アプリケーション内またはチップ外に格納する他のプライベート・キー内のブート・コード・イメージを一致させることが可能となる。このように、本発明のいくつかの実施例によれば、プライベート・キーを用いてチップにアクセスするホスト・アプリケーションは、ハードウェア機能にコマンドを送出して既知のコード・キーを暗号化するが、そのコード・キーは、コード・イメージを保護(すなわち、暗号化または署名)し、その暗号化されたコード・イメージと共に非保護ストレージ内にその暗号化されたコード・キーを収容するために用いられる。その後、ホスト・アプリケーションは、第2コマンドをハードウェア機能に送出してその暗号化されたコード・キーを復号化し、コード・イメージにアクセス(すなわち、復号化)するためにその回復されたコード・キーを使用する。このように、暗号化されたコード・キーを生成するために使用されるプライベート・キーを備えた装置またはシステムだけが、コード・キーを回復し、コード・イメージにアクセスすることができる。
加えて、本発明のいくつかの実施例によれば、コード・イメージは外部的に提供されるコード・キーによって保護されるので、任意の数の独立して保護されるコード・イメージが、別個独立したコード・キーを使用して作成される。このように、異なる外部ソースからのアプリケーション・コードは、同様に、プライベート・キーを保持する装置またはシステムに合致する。さらに、プライベート・キーが共有秘密であるとき、その共有秘密の所有者は、実際の装置またはシステム(つまり、システム100あるいは200)を必要とすることなく等価の暗号化機能を使用して暗号化コード・キーを作成することができる。したがって、本発明のいくつかの実施例によれば、コード・イメージの更新はフィールド内で適用することができ、また、最初のブート・コード・プログラミングは、プライベート・キーを装置またはシステムの顧客に明かす必要なしに、また、そのイメージをプログラムするに先立って装置またはシステム上で特別なアプリケーションを実行する必要なしに、製造時に行うことができる。
図3−図6において示される段階は、示され順序で実行される必要はなく、また、必ずしも段階のすべてが実行される必要もない。さらに、他の段階に依存しない段階は、他の段階と平行して実行されてもよい。例えば、複数のコード・イメージのそれぞれが唯一のマスターおよび/またはプラットフォーム・キーを有する場合、プロセス300,400,500および/または600における段階は、平行して実行されてもよい。さらに、いくつかの段階は、他の段階の前に実行されてもよい。例えば、プロセス300の段階310は、段階302−308に先立って実行されてもよい。さらに、図中の少なくともいくつかの段階は、機械読取り可能な媒体内で実行される命令または命令のグループとして実行されてもよい。
請求項に記載された発明と一致する1またはそれ以上の実例についての上記の記述は、本発明の実施例および説明を提供するものであるが、それは、本発明の範囲を網羅するものではなく、また開示された特定の実施例に制限することを意図するものではない。明らかに、修正およびバリエーションが上記の教示に照らして可能であり、また、それらは、本発明の様々な実施例の実行から取得することができる。例えば、プロセス300,500において処理されたコード・イメージは、1セットの暗号化キーのような任意の恣意的な「秘密」データ、またはアルゴリズム・パラメータのような他のデータでもよい。明らかに、請求項に記載された発明と矛盾することなく、本発明と他の多くの実施例によって、外部のコード・イメージとチップ上のプライベート・キーとの一致を可能にするために使用することができる。
本発明の記述において示された装置、要素、段階、データのタイプ、命令等は、明記されない限り、本発明にとって重大かつ不可欠なものではないと解されるべきである。さらに、ここで用いられるように、冠詞「a」は、1またはそれ以上の物を含むことを意図している。さらに、この明細書または請求項において、「結合された」または「反応する」または「〜と通信する」という用語または語句が使用される場合は、これらの用語は広義に解釈されるものであることを意味する。例えば、「結合された」という語句は、その語句が使用される文脈に適するように、通信的、電気的、および/または機能的に結合されることを意味する。請求項に記載された発明に関して上述された実施例については、本発明の精神および原理から逸脱することなく、多くのバリエーションおよび修正が可能である。このような修正およびバリエーションの全てが、ここに開示された範囲内に含まれ、かつ、請求項によって保護されることを意図している。
本発明のいくつかの実施例に従ったシステムを示すブロック図である。 本発明のいくつかの実施例に従って、図1のシステムの部分に類似するシステムを示すブロック図である。 本発明のいくつかの実施例に従ったプロセスを示すフローチャートである。 本発明のいくつかの実施例に従ったプロセスを示すフローチャートである。 本発明のいくつかの実施例に従ったプロセスを示すフローチャートである。 本発明のいくつかの実施例に従ったプロセスを示すフローチャートである。

Claims (24)

  1. コード・イメージおよびコード・キーを受け取る段階と、
    非保護ストレージ内に前記コード・イメージおよび前記コードを収容する前に前記コード・イメージおよび前記コード・キーを暗号化する段階と、
    から構成されることを特徴とする方法。
  2. 前記非保護ストレージは、ユーザ・アクセス可能なストレージを含むことを特徴とする請求項1記載の方法。
  3. 前記コード・イメージおよび前記コード・キーが非保護ストレージ内に収容される場合に、前記コード・イメージおよび前記コード・キーを暗号化する段階は、
    前記コード・キーを用いて前記コード・イメージを暗号化する段階、および、
    第1キーを用いて前記コード・キーを暗号化する段階、
    を含むことを特徴とする請求項1記載の方法。
  4. 前記第1キーを用いて前記コード・キーを暗号化する段階は、
    プライベート・キーを用いて第2キーを暗号化する段階、
    前記第2キーを用いて前記第1キーを暗号化する段階、および、
    前記第1キーを用いて前記コード・キーを暗号化する段階、
    を含むことを特徴とする請求項3記載の方法。
  5. 保護ストレージ内に前記コード・イメージおよび前記コード・キーを収容する前に、前記暗号化されたコード・イメージおよび前記暗号化されたコード・キーを復号化する段階をさらに含むことを特徴とする請求項1記載の方法。
  6. 前記保護ストレージは、ユーザ・アクセス不可能なストレージを含むことを特徴とする請求項5記載の方法。
  7. 前記コード・イメージおよび前記コード・キーが前記保護ストレージ内に収容される場合に、前記コード・イメージおよび前記コード・キーを復号化する段階は、
    第1キーを用いて前記コード・キーを復号化する段階、および、
    前記コード・キーを用いて前記コード・イメージを復号化する段階、
    を含むことを特徴とする請求項5記載の方法。
  8. 前記第1キーを用いて前記コード・キーを復号化する段階は、
    プライベート・キーを用いて第2キーを復号化する段階、
    前記第2キーを用いて前記第1キーを復号化する段階、および、
    前記第1キーを用いて前記コード・キーを復号化する段階、
    を含むことを特徴とする請求項7記載の方法。
  9. 前記コード・イメージは、コード・イメージ、ブート・コード・イメージ、キー、またはデータのいずれか1つを含むことを特徴とする請求項1記載の方法。
  10. 別のコード・イメージおよび別のコード・キーを受け取る段階と、
    前記別のコード・イメージおよび前記別のコード・キーが非保護ストレージ内に収容される場合に、前記別のコード・イメージおよび前記別のコード・キーを暗号化する段階と、
    をさらに含むことを特徴とする請求項1記載の方法。
  11. ユーザ・アクセス可能なストレージと、
    ユーザ・アクセス不可能なストレージと、
    第1コード・イメージおよび第1コード・キーが前記ユーザ・アクセス可能なストレージ内に収容される場合に、前記第1コード・イメージおよび前記第1コード・キーを暗号化し、かつ、暗号化された第1コード・イメージおよび暗号化された第1コード・キーを提供するための暗号化ロジックと、
    前記第1コード・イメージおよび前記第1コード・キーが前記ユーザ・アクセス不可能なストレージ内に収容される場合に、前記暗号化された第1コード・イメージおよび前記暗号化された第1コード・キーを復号化するための復号化ロジックと、
    から構成されることを特徴とする装置。
  12. プライベート・キーを保持するためのメモリをさらに含み、前記暗号化ロジックは、前記プライベート・キーを用いて前記第1コード・キーを暗号化することが少なくとも可能であることを特徴とする請求項11記載の装置。
  13. プライベート・キーを保持するためのメモリと、
    前記プライベート・キーから暗号化キーを導出することができるキー導出ロジックであって、前記暗号化ロジックは、前記暗号化キーを用いて前記第1コード・キーを暗号化することが少なくとも可能である、キー導出ロジックと、
    をさらに含むことを特徴とする請求項11記載の装置。
  14. 前記ユーザ・アクセス不可能なストレージは、前記暗号化ロジックと同一の半導体基板内に形成されたメモリ、または、システム・バスによって前記暗号化ロジックに結合されたメモリのいずれか1つを含むことを特徴とする請求項11記載の装置。
  15. 前記暗号化ロジックは、さらに、第2コード・イメージおよび第2コード・キーが前記ユーザ・アクセス可能なストレージ内に収容される場合に、前記第2コード・イメージおよび前記第2コード・キーを暗号化し、暗号化された第2コード・イメージおよび暗号化された第2コード・キーを提供することが少なくとも可能であり、前記復号化ロジックは、さらに、前記第2コード・イメージおよび前記第2コード・キーが前記ユーザ・アクセス不可能なストレージ内に収容される場合に、前記暗号化された第2コード・イメージおよび前記暗号化された第2コード・キーを復号化することが少なくとも可能であることを特徴とする請求項11記載の装置。
  16. 前記ユーザ・アクセス可能なストレージは、固定された不揮発性メモリ装置または取外し可能な不揮発性メモリ装置のいずれか1つを含むことを特徴とする請求項11記載の装置。
  17. 前記コード・イメージは、コード・イメージ、ブート・コード・イメージ、キー、またはデータのいずれか1つを含むことを特徴とする請求項11記載の装置。
  18. ユーザ・アクセス可能なストレージと、
    ユーザ・アクセス不可能なストレージと、
    暗号化ロジックであって、第1コード・イメージおよび第1コード・キーが前記ユーザ・アクセス可能なストレージ内に収容される場合に、前記第1コード・イメージおよび前記第1コード・キーを暗号化し、暗号化された第1コード・イメージおよび暗号化された第1コード・キーを提供することが少なくとも可能である、暗号化ロジックと、
    復号化ロジックであって、前記第1コード・イメージおよび前記第1コード・キーが前記ユーザ・アクセス不可能なストレージ内に収容される場合に、前記暗号化された第1コード・イメージおよび前記暗号化された第1コード・キーを復号化することが少なくとも可能である、復号化ロジックと、
    前記暗号化ロジックに結合されたワイヤレス受信機回路であって、前記受信機回路は、前記第1コード・イメージおよび前記第1コード・キーを受け取ることが少なくとも可能である、受信機回路と、
    から構成されることを特徴とするシステム。
  19. プライベート・キーを保持するメモリをさらに含み、
    前記暗号化ロジックは、前記プライベート・キーを用いて前記第1コード・キーを暗号化することが少なくとも可能であることを特徴とする請求項18記載のシステム。
  20. プライベート・キーを保持するメモリと、
    前記プライベート・キーから暗号化キーを導出することが少なくとも可能であるキー導出ロジックであって、前記暗号化ロジックは、前記暗号化キーを用いて前記第1コード・キーを暗号化することが少なくとも可能である、キー導出ロジックと、
    をさらに含むことを特徴とする請求項18記載のシステム。
  21. 前記ユーザ・アクセス不可能なストレージは、前記暗号化ロジックと同一の半導体基板内で形成されたメモリ、または、システム・バスによって前記暗号化ロジックに結合されたメモリのいずれか1つを含むことを特徴とする請求項18記載のシステム。
  22. 前記暗号化ロジックは、さらに、第2コード・イメージおよび第2コード・キーが前記ユーザ・アクセス可能なストレージ内に収容される場合に、前記第2コード・イメージおよび前記第2コード・キーを暗号化し、暗号化された第2コード・イメージおよび暗号化された第2コード・キーを提供することが少なくとも可能であり、前記復号化ロジックは、さらに、前記第2コード・イメージおよび前記第2コード・キーが前記ユーザ・アクセス不可能なストレージ内に収容される場合に、前記暗号化されたコード・イメージおよび前記暗号化されたコード・キーを復号化することが少なくとも可能であることを特徴とする請求項18記載のシステム。
  23. 前記ユーザ・アクセス可能なストレージは、固定された不揮発性メモリ装置、または取外し可能な不揮発性メモリ装置のいずれか1つを含むことを特徴とする請求項18記載のシステム。
  24. 前記コード・イメージは、コード・イメージ、ブート・コード・イメージ、キー、またはデータのいずれか1つを含むことを特徴とする請求項18記載のシステム。
JP2008553557A 2006-04-07 2007-03-19 外部のコード・イメージをチップ上のプライベート・キーに一致させるための方法および装置 Pending JP2009525556A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US40076606A 2006-04-07 2006-04-07
PCT/US2007/064321 WO2007117879A1 (en) 2006-04-07 2007-03-19 Method and apparatus to mate an external code image with an on-chip private key

Publications (1)

Publication Number Publication Date
JP2009525556A true JP2009525556A (ja) 2009-07-09

Family

ID=38581433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008553557A Pending JP2009525556A (ja) 2006-04-07 2007-03-19 外部のコード・イメージをチップ上のプライベート・キーに一致させるための方法および装置

Country Status (4)

Country Link
EP (1) EP2005642A4 (ja)
JP (1) JP2009525556A (ja)
CN (1) CN101433013A (ja)
WO (1) WO2007117879A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090285390A1 (en) * 2008-05-16 2009-11-19 Ati Technologies Ulc Integrated circuit with secured software image and method therefor
WO2016088273A1 (ja) * 2014-12-05 2016-06-09 富士通株式会社 セキュリティ装置および制御方法
CN105046138A (zh) * 2015-07-13 2015-11-11 山东超越数控电子有限公司 一种基于飞腾处理器的可信管理系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004070587A1 (en) * 2003-02-03 2004-08-19 Nokia Corporation Architecture for encrypted application installation
JP2005100378A (ja) * 2003-08-26 2005-04-14 Matsushita Electric Ind Co Ltd プログラム実行装置、認証局装置
JP2005227995A (ja) * 2004-02-12 2005-08-25 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040097717A (ko) * 2003-05-13 2004-11-18 펜타시큐리티시스템 주식회사 세션키 전송 방법 및 시스템
US7734932B2 (en) * 2003-11-10 2010-06-08 Broadcom Corporation System and method for securing executable code
EP2267624B1 (en) * 2004-04-19 2017-07-12 Lumension Security S.A. A generic framework for runtime interception and execution control of interpreted languages
KR100617456B1 (ko) * 2004-04-28 2006-08-31 주식회사 니츠 비밀키 관리 기능을 가지는 비밀키 단말장치 및 비밀키관리방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004070587A1 (en) * 2003-02-03 2004-08-19 Nokia Corporation Architecture for encrypted application installation
JP2005100378A (ja) * 2003-08-26 2005-04-14 Matsushita Electric Ind Co Ltd プログラム実行装置、認証局装置
JP2005227995A (ja) * 2004-02-12 2005-08-25 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
EP2005642A4 (en) 2011-12-21
CN101433013A (zh) 2009-05-13
WO2007117879A1 (en) 2007-10-18
EP2005642A1 (en) 2008-12-24

Similar Documents

Publication Publication Date Title
US8014530B2 (en) Method and apparatus for authenticated, recoverable key distribution with no database secrets
US20090323971A1 (en) Protecting independent vendor encryption keys with a common primary encryption key
US7984301B2 (en) Bi-processor architecture for secure systems
US9230109B2 (en) Trusted platform module security
US7058818B2 (en) Integrated circuit for digital rights management
US9397834B2 (en) Scrambling an address and encrypting write data for storing in a storage device
EP3264316B1 (en) Using secure key storage to bind a white-box implementation to one platform
US7571329B2 (en) Method of storing unique constant values
KR101546204B1 (ko) 호스트 디바이스, 반도체 메모리 디바이스, 및 인증 방법
US11483297B2 (en) Method and apparatus for protecting confidential data in an open software stack
US10027640B2 (en) Secure data re-encryption
US10248579B2 (en) Method, apparatus, and instructions for safely storing secrets in system memory
JP4964945B2 (ja) 共通プライベートキーセットを利用した複数のキーラダーのサポート
JPH076096A (ja) データ記憶装置
US20160182952A1 (en) Protected Media Decoding System Supporting Metadata
US20070226806A1 (en) Method and apparatus for enhancing cryptographic engines against security attacks
JP2009525556A (ja) 外部のコード・イメージをチップ上のプライベート・キーに一致させるための方法および装置
US20200356285A1 (en) Password protected data storage device and control method for non-volatile memory
US20130198528A1 (en) Modifying a Length of an Element to Form an Encryption Key
WO2018059303A1 (zh) 一种短信中信息加解密的方法和装置
JP2021190081A (ja) 機密データを保護することが可能な電子機器
US20190052610A1 (en) Apparatus and method for encapsulation of profile certificate private keys or other data
KR102218715B1 (ko) 채널별로 데이터를 보호할 수 있는 반도체 장치
CN102955916A (zh) 保护数字内容的方法与储存装置
CN116415270A (zh) 一种文件应用管理方法及装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110418

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110719

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110817

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110912