(57)【要約】【課題】コンピュータシステムのセキュリティ及び／又はコンピュータシステムによりアクセスされるデータのセキュリティを改善するセキュリティメカニズムを提供する。【解決手段】セキュアな信頼チェーンを実施するための方法、集積回路及びシステムが開示される。セキュアなブートモードでセキュアなブートコードを実行する間に、シークレットキーを使用して、低セキュアのブートコードが認証される。セキュアなブートモードの間に、セキュアなキーも計算又は発生される。認証された低セキュアのブートコードに制御が引き継がれた後に、セキュアなキーを使用して少なくとも１つのアプリケーションが認証される。低セキュアのブートモードで認証されると、プログラム可能な集積回路によりアプリケーションを実行することができる。このように、プログラム可能な集積回路に対してセキュアな信頼チェーンを実施することができる。【選択図】図１
2009252244.tif 000002
【特許請求の範囲】
【請求項１】
プログラム可能な集積回路のためのセキュアな信頼チェーンを実施する方法において、
セキュアなブートモードで第１のブートコードを実行する間に、
シークレットキーを使用して第２のブートコードを認証し、且つ
前記シークレットキーと、前記プログラム可能な集積回路に関連した独特の識別子とに基づいてセキュアなキーを発生する、
というステップと、
前記セキュアなブートモードを退出する前に前記シークレットキーへのアクセスを制限するステップと、
ブートモードで前記第２のブートコードを実行する間に、前記プログラム可能な集積回路で実行するためのアプリケーションを認証するステップであって、前記認証は、更に、前記セキュアなキーを使用して前記アプリケーションを認証することを含むようなステップと、
前記ブートモードを退出し且つ前記アプリケーションを実行するステップと、
を備える方法。
【請求項２】
前記アプリケーションは、前記プログラム可能な集積回路のプロセッサにより実行するためのオペレーティングシステムを含む、請求項１に記載の方法。
【請求項３】
前記セキュアなキーを使用して、前記プログラム可能な集積回路にアクセスできるデータに対してオペレーションを遂行するステップを更に備え、前記オペレーションは、前記データの暗号化及び前記データの解読より成るグループから選択される、請求項１に記載の方法。
【請求項４】
セキュアなブートモードで第１のブートコードを実行する間に、前記シークレットキーを使用して前記第２のブートコードを解読するステップと、
前記ブートモードで前記第２のブートコードを実行する間に、前記セキュアなキーを使用して前記アプリケーションを解読するステップと、
を更に備える請求項１に記載の方法。
【請求項５】
前記独特の識別子は、第１の当事者により与えられ、前記シークレットキーは、第２の当事者により与えられる、請求項１に記載の方法。
【請求項６】
前記セキュアなブートモードでの前記第１のブートコードの前記実行は、ウォームブートプロセス及びコールドブートプロセスより成るグループから選択されたブートプロセスを遂行することを含む、請求項１に記載の方法。
【請求項７】
前記プログラム可能な集積回路のモードを決定するステップと、
前記プログラム可能な集積回路がオペレーションモードに入れられた場合に、前記第１のブートコードの前記実行を遂行するステップと、
を更に備える請求項１に記載の方法。
【請求項８】
前記プログラム可能な集積回路と通信するように動作できる周辺機器に関する情報にアクセスするステップであって、前記周辺機器は、前記プログラム可能な集積回路の外部に配置されるものであるステップと、
前記第１のブートコードを実行する間に、前記周辺機器の性能を改善するように前記プログラム可能な集積回路の少なくとも１つのコンポーネントを構成するステップであって、この構成が、更に、前記周辺機器に関する前記情報に基づいて前記少なくとも１つのコンポーネントを構成することを含むようなステップと、
を更に備える請求項１に記載の方法。
【請求項９】
ポータブル電子装置に使用するための集積回路において、
第１のブートコードを記憶するためのメモリと、
前記メモリに結合されて、前記集積回路のセキュアなブートモードで前記第１のブートコードを実行するためのプロセッサであって、前記集積回路のブートモードで第２のブートコードを実行するように更に動作でき、且つアプリケーションを実行するように更に動作できるプロセッサと、
前記プロセッサに結合されたセキュアな暗号化エンジンであって、
前記セキュアなブートモードでシークレットキーを使用して前記第２のブートコードを認証し、
前記シークレットキーと、前記集積回路に関連した独特の識別子とに基づいてセキュアなキーを発生し、
前記プロセッサによる前記アプリケーションの実行の前に、前記ブートモードで前記セキュアなキーを使用して前記アプリケーションを認証する、
ことによりセキュアな信頼チェーンを実施するためのセキュアな暗号化エンジンと、
を備える集積回路。
【請求項１０】
前記プロセッサは、更に、前記セキュアなブートモードを退出する前に、前記シークレットキーへのアクセスを制限するように動作できる、請求項９に記載の集積回路。
【請求項１１】
前記プロセッサは、更に、前記ブートモードを退出する前に、前記セキュアなキーへのアクセスを制限するように動作できる、請求項９に記載の集積回路。
【請求項１２】
前記アプリケーションは、前記集積回路のプロセッサにより実行するためのオペレーティングシステムを含む、請求項９に記載の集積回路。
【請求項１３】
前記プロセッサによる前記第１のブートコードの実行は、ウォームブートプロセス及びコールドブートプロセスより成るグループから選択されたブートプロセスを実施する、請求項９に記載の集積回路。
【請求項１４】
前記プロセッサに結合された周辺機器の性能を調整するよう動作できる少なくとも１つのコンポーネントを更に備え、前記周辺機器は、前記集積回路の外部に配置され、
前記プロセッサは、前記セキュアなブートモードにある間に、前記周辺機器の性能を改善するために前記少なくとも１つのコンポーネントを構成するよう更に動作できる、請求項９に記載の集積回路。
【請求項１５】
集積回路を備え、該集積回路は、
第１のブートコードを記憶するためのメモリと、
前記メモリに結合され、前記集積回路のセキュアなブートモードで前記第１のブートコードを実行するためのプロセッサであって、前記集積回路の別のブートモードで他のブートコードを実行するように更に動作でき、且つアプリケーションを実行するように更に動作できるプロセッサと、
前記プロセッサに結合されたセキュアな暗号化エンジンであって、
前記セキュアなブートモードでシークレットキーを使用して前記他のブートコードを認証し、
前記シークレットキーと、前記集積回路に関連した独特の識別子とに基づいてセキュアなキーを発生し、
前記プロセッサによる前記アプリケーションの実行の前に、前記他のブートモードで前記セキュアなキーを使用して前記アプリケーションを認証する、
ことによりセキュアな信頼チェーンを実施するためのセキュアな暗号化エンジンと、
を含み、更に、
前記集積回路に結合された周辺機器を備え、該周辺機器は、前記プロセッサ及び前記セキュアな暗号化エンジンより成るグループから選択されたコンポーネントにアクセスできる情報を記憶するためのものである、システム。
【請求項１６】
前記プロセッサは、更に、前記セキュアなブートモードを退出する前に、前記シークレットキーへのアクセスを制限するように動作できる、請求項１５に記載のシステム。
【請求項１７】
前記プロセッサは、更に、前記他のブートモードを退出する前に、前記セキュアなキーへのアクセスを制限するように動作できる、請求項１５に記載のシステム。
【請求項１８】
前記アプリケーションは、前記集積回路のプロセッサにより実行するためのオペレーティングシステムを含む、請求項１５に記載のシステム。
【請求項１９】
前記プロセッサによる前記第１のブートコードの実行は、ウォームブートプロセス及びコールドブートプロセスより成るグループから選択されたブートプロセスを実施する、請求項１５に記載のシステム。
【請求項２０】
前記集積回路は、更に、前記周辺機器の性能を調整するよう動作できる少なくとも１つのコンポーネントを備え、
前記プロセッサは、前記セキュアなブートモードにある間に、前記周辺機器の性能を改善するために前記少なくとも１つのコンポーネントを構成するように更に動作できる、請求項１５に記載のシステム。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、ミシェル・コックス、フィリップ・スミス及びステファン・リューを発明者名とし、本発明の譲受人に譲渡され、代理人管理番号ＮＶＩＤ−Ｐ−ＳＣ−０８−００７１−ＵＳ１を有し、２００８年２月１１日に出願された“METHOD AND SYSTEM FOR GENERATING A SECURE KEY”と題する米国特許出願第１２／０２９，４３２号に係る。この出願は、全ての目的で参考としてここにそのまま援用する。
【０００２】
本出願は、ゴードン・グリガー及びフィリップ・スミスを発明者名とし、本発明の譲受人に譲渡され、代理人管理番号ＮＶＩＤ−Ｐ−ＳＣ−０８−００７２−ＵＳ１を有し、２００８年２月１１日に出願された“SECURE UPDATE OF BOOT IMAGE WITHOUT KNOWLEDGE OF SECURE KEY”と題する米国特許出願第１２／０２９，４６７号に係る。この出願は、全ての目的で参考としてここにそのまま援用する。
【０００３】
本出願は、フィリップ・スミス、ジョーン・サシノウスキー及びゴードン・グリガーを発明者名とし、本発明の譲受人に譲渡され、代理人管理番号ＮＶＩＤ−Ｐ−ＳＣ−０８−００７３−ＵＳ１を有し、２００８年２月１１日に出願された“MECHANISM FOR SECURE DOUNLOAD OF CODE TO A LOCKED SYSTEM”と題する米国特許出願第１２／０２９，４６４号に係る。この出願は、全ての目的で参考としてここにそのまま援用する。
【０００４】
本出願は、ミシェル・コックス、ゴードン・グリガー、フィリップ・スミス及びパーササラシー・スリラムを発明者名とし、本発明の譲受人に譲渡され、代理人管理番号ＮＶＩＤ−Ｐ−ＳＣ−０８−００７４−ＵＳ１を有し、２００８年２月１１日に出願された“HANDLING OF SECURE STORAGE KEY IN ALWAYS ON DOMAIN”と題する米国特許出願第１２／０２９，４６３号に係る。この出願は、全ての目的で参考としてここにそのまま援用する。
【背景技術】
【０００５】
コンピュータシステムに記憶されたデータをセキュアなものにし及び／又はシステムそれ自体のオペレーションをセキュアなものにするためにコンピュータシステムによりセキュリティメカニズムが通常使用されている。例えば、データへの無断アクセスを防止し又は制限するためにデータを暗号化することができる。更に、コンピュータシステムは、ブート映像を、中央処理ユニット（ＣＰＵ）によりそれが実行される前に認証し、システムそれ自体及びシステムに記憶されたデータのセキュリティを改善することができる。
【０００６】
従来のコンピュータシステムは、信頼性のあるプラットホームモジュール（ＴＰＭ）を使用して、認証オペレーションを遂行する。例えば、ＣＰＵは、ブート映像にアクセスしてブート映像を認証のためにＴＰＭに送信するマイクロコードを実行することができる。ＴＰＭは、ソフトウェア、又はＣＰＵとは個別のハードウェア装置でしばしば実施される。認証されると、従来のコンピュータシステムは、システムをブートするための認証されたブートコードを実行する。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＴＰＭは、通常、デスクトップ（例えば、非ポータブル）コンピュータシステムに使用されるが、種々のアタック手段の影響を受け易い。例えば、許可のないユーザが、ＴＰＭ又は他のシステムコンポーネントにおいてコードベースのアタック、ハードウェアベースのアタック、等を実行することにより、システム及び／又はデータのセキュリティを駄目にすることがある。従って、ＴＰＭは、あるシステム及び／又はデータについては充分なセキュリティ手段をなさない。
【０００８】
従って、コンピュータシステムのセキュリティ、及び／又はコンピュータシステムによってアクセスされるデータのセキュリティを改善するセキュリティメカニズムのニーズが存在する。又、コンピュータシステムによりアクセスされるブートコード、アプリケーション、データ、等に対して、よりセキュアな信頼チェーンを実施するセキュリティメカニズムのニーズも存在する。更に、ポータブル電子装置と共に使用するか又はポータブル電子装置に使用するための改善されたセキュリティメカニズムのニーズも存在する。本発明の実施形態は、以下に述べるように、これらのニーズ及び他のニーズに対して新規な解決策を提供する。
【課題を解決するための手段】
【０００９】
本発明の実施形態は、セキュアな信頼チェーンを実施するための方法、集積回路及びシステムに関する。より詳細には、セキュアなブートコードをセキュアなブートモードで実行する間に、シークレットキー（例えば、セキュアなブートコードを実行する集積回路又はプログラム可能な集積回路内に閉じ込められてそれにより排他的に使用されるセキュアなブートキー）を使用して、低セキュアのブートコードを認証することができる。セキュアなブートモード中にはセキュアなキー（例えば、集積回路によりアクセスされるデータ及び／又はアプリケーションに関連したセキュリティオペレーションを遂行するためのセキュアな記憶キー）を計算し又は生成することもできる。認証された低セキュアのブートコードへ制御が引き継がれた後、少なくとも１つのアプリケーション（例えば、オペレーティングシステム、デジタル著作権管理（ＤＲＭ）を使用するアプリケーション、又は他のセキュリティメカニズム、等）を、セキュアなキー（例えば、これも集積回路内に閉じ込められてそれにより排他的に使用される）を使用して認証することができる。低セキュアのブートモードで認証されると、アプリケーションを（例えば、更に低セキュアのモード又は非セキュアのモードで）集積回路により実行することができる。このように、セキュアな信頼チェーン（例えば、セキュアなブートコードから、低セキュアのブートコードまで、及び更に低セキュアの又は非セキュアのアプリケーションまで）を集積回路について実施することができる。
【００１０】
一実施形態では、集積回路のためのセキュアな信頼チェーンを実施する方法は、セキュアなブートモードで第１のブートコードを実行する間に、シークレットキーを使用して第２のブートコードを認証することを含む。又、セキュアなブートモードで第１のブートコードを実行する間に、シークレットキーと、プログラム可能な集積回路に関連した独特の識別子とに基づき、セキュアなキーが発生される。第２のブートモードを退出する前に、シークレットキーへのアクセスが制限される。ブートモードで第２のブートコードを実行する間に、プログラム可能な集積回路での実行のためにアプリケーションが認証され、この認証は、更に、セキュアなキーを使用してアプリケーションを認証することを含む。ブートモードを退出し、アプリケーションが実行される。又、セキュアなキーを使用して、プログラム可能な集積回路にアクセス可能なデータに対してオペレーション（例えば、暗号化オペレーション、解読オペレーション、等）を遂行することもできる。更に、一実施形態では、第１のブートコードの実行は、ウォームブートプロセス又はコールドブートプロセスを実施することができる。更に、プログラム可能な集積回路と通信するよう動作できる（例えば、プログラム可能な集積回路の外部に位置された）周辺機器に関する情報にアクセスすることができる。第１のブートコードを実行する間に、プログラム可能な集積回路の少なくとも１つのコンポーネントは、周辺機器の性能を改善するように構成することができ、この構成は、更に、周辺機器に関する情報に基づいて少なくとも１つのコンポーネントを構成することを含む。
【００１１】
別の実施形態では、ポータブル電子装置に使用するための集積回路は、第１のブートコードを記憶するためのメモリを備えている。このメモリにはプロセッサが結合され、このプロセッサは、集積回路のセキュアなブートモードで第１のブートコードを実行するように動作でき、プロセッサは、更に、集積回路のブートモードで第２のブートコードを実行するように動作でき、且つプロセッサは、更に、アプリケーションを実行するように動作できる。プロセッサには、セキュアな暗号化エンジンが結合され、この暗号化エンジンは、セキュアなブートモードにおいてシークレットキーを使用して第２のブートコードを認証し、そのシークレットキーと、集積回路に関連した独特な識別子とに基づいてセキュアなキーを発生し、そしてプロセッサによるアプリケーションの実行の前にブートモードにおいてセキュアなキーを使用してアプリケーションを認証することにより、セキュアな信頼チェーンを実施するように動作することができる。
【００１２】
更に別の実施形態では、システムが集積回路を備えている。この集積回路は、第１のブートコードを記憶するためのメモリと、このメモリに結合され、集積回路のセキュアなブートモードで第１のブートコードを実行するためのプロセッサとを備え、このプロセッサは、更に、集積回路の別のブートモードで他のブートコードを実行するように動作でき、且つこのプロセッサは、更に、アプリケーションを実行するように動作できる。又、集積回路は、プロセッサに結合されたセキュアな暗号化エンジンも備え、この暗号化エンジンは、セキュアなブートモードにおいてシークレットキーを使用して他のブートコードを認証し、そのシークレットキーと、集積回路に関連した独特な識別子とに基づいてセキュアなキーを発生し、そしてプロセッサによるアプリケーションの実行の前に他のブートモードにおいてセキュアなキーを使用してアプリケーションを認証することにより、セキュアな信頼チェーンを実施するためのものである。又、このシステムは、集積回路に結合された周辺機器も備え、この周辺機器は、プロセッサ及びセキュアな暗号化エンジンより成るグループから選択されたコンポーネントにアクセス可能な情報を記憶するためのものである。
【００１３】
以下、同様の要素が同じ参照番号で示された添付図面を参照して、本発明を一例として説明するが、本発明は、これに限定されるものではない。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に基づきセキュアな信頼チェーンを実施するためのシステムを例示するブロック図である。
【図２】本発明の一実施形態に基づきセキュアな暗号化エンジンを例示するブロック図である。
【図３】本発明の一実施形態に基づきヒューズを例示するブロック図である。
【図４Ａ】本発明の一実施形態に基づきプログラム可能な集積回路に対するセキュアな信頼チェーンを実施するためのコンピュータ実施プロセスの第１部分を例示するフローチャートである。
【図４Ｂ】本発明の一実施形態に基づきプログラム可能な集積回路に対するセキュアな信頼チェーンを実施するためのコンピュータ実施プロセスの第２部分を例示するフローチャートである。
【図４Ｃ】本発明の一実施形態に基づきプログラム可能な集積回路に対するセキュアな信頼チェーンを実施するためのコンピュータ実施プロセスの第３部分を例示するフローチャートである。
【図４Ｄ】本発明の一実施形態に基づきプログラム可能な集積回路に対するセキュアな信頼チェーンを実施するためのコンピュータ実施プロセスの第４部分を例示するフローチャートである。
【図５】本発明の一実施形態に基づき前生産オペレーションを遂行するためのコンピュータ実施プロセスを例示するフローチャートである。
【図６】本発明の一実施形態に基づき故障分析オペレーションを遂行するためのコンピュータ実施プロセスを例示するフローチャートである。
【図７】本発明の一実施形態に基づき回復オペレーションを遂行するためのコンピュータ実施プロセスを例示するフローチャートである。
【図８】本発明の一実施形態に基づきウォームブートを遂行するためのコンピュータ実施プロセスを例示するフローチャートである。
【図９】本発明の一実施形態に基づきコールドブートを遂行するためのコンピュータ実施プロセスを例示するフローチャートである。
【発明を実施するための形態】
【００１５】
添付図面に示された本発明の実施形態を以下に詳細に説明する。これら実施形態を参照して本発明を説明するが、本発明は、これらの実施形態のみに限定されるものでないことを理解されたい。逆に、本発明は、特許請求の範囲により規定される本発明の精神及び範囲内に包含される代替え、変更及び等効物を網羅することが意図される。更に、本発明の以下の詳細な説明において、本発明を完全に理解するために、多数の特定の細部について述べる。しかしながら、本発明の実施形態は、これら特定の細部を伴わずに実施されてもよい。他の点について、良く知られた方法、手順、コンポーネント及び回路は、本発明の態様を不必要に不明瞭にしないために詳細に説明しない。
［表記及び専門用語］
【００１６】
以下の詳細な説明のある部分は、コンピュータメモリ内のデータビットに対するオペレーションの手順、論理的ブロック、処理及び他の記号表示に関して表現される。これらの説明及び表現は、データ処理分野の当業者が彼等の仕事の実体を他の当業者に最も効率的に伝えるための手段である。本出願において、手順、論理的ブロック、プロセス、等は、望ましい結果へと導くステップ又はインストラクションの自己一貫性シーケンスであると考えられる。ステップは、物理量の物理的な操作を要求するものである。通常、必ずしもそうでないが、これらの量は、コンピュータシステムにおいて記憶、転送、合成、比較、及びその他、操作することのできる電気信号又は磁気信号の形態をとる。
【００１７】
しかしながら、これら及び同様の用語は、全て、適切な物理量に関連付けられるべきであり、これらの量に適用される便宜的な表示に過ぎないことを銘記されたい。特に指示のない限り、以下の説明から明らかなように、本発明全体にわたり、「受け容れ」、「アクセス」、「追加」、「調整」、「分析」、「適用」、「アッセンブル」、「指定」、「認証」、「計算」、「捕獲」、「合成」、「比較」、「収集」、「構成」、「生成」、「減少」、「解読」、「定義」、「描写」、「検出」、「決定」、「表示」、「暗号化」、「確立」、「実行」、「退出」、「発生」、「グループ化」、「識別」、「増加」、「開始」、「対話」、「制限」、「変更」、「監視」、「移動」、「出力」、「パッディング」、「遂行」、「配置」、「提示」、「処理」、「プログラミング」、「問合せ」、「除去」、「「繰り返し」、「サンプリング」、「分類」、「記憶」、「減算」、「追跡」、「変換」、「使用」、「確認」、等の用語を使用する説明は、コンピュータシステムのレジスタ及びメモリ内の物理（電子）量として表わされたデータを、コンピュータシステムのメモリ又はレジスタ或いは他のそのような情報記憶、伝達又は表示装置内の物理量として同様に表わされた他のデータへと操作及び変換するコンピュータシステム又は同様の電子計算装置のアクション及びプロセスを参照することが明らかであろう。
［発明の実施形態］
【００１８】
図１は、本発明の一実施形態に基づいてセキュアな信頼チェーンを実施するためのシステム１００を例示するブロック図である。図１に示すように、システム１００は、チップ上の装置又はシステム（ＳｏＣ）１１０と、少なくとも１つの周辺機器１２０−１５０とを備えている。一実施形態において、システム１００は、汎用のコンピュータシステム、埋め込まれたコンピュータシステム、ラップトップコンピュータシステム、ハンドヘルドコンピュータシステム、ポータブルコンピュータシステム、ポータブル電子装置、スタンドアローンコンピュータシステム、ゲームコンソール、その幾つかの組合せ、等を実施することができる。更に、周辺機器１２０−１５０は、内部及び／又は外部周辺装置、例えば、キーパッド、カーソルコントローラ、通信ポート、記憶装置（例えば、ハードディスクドライブ、フラッシュメモリ、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、等）、等である。別の実施形態において、周辺機器は、システム１００の外部の装置又はシステムと（例えば、ＵＳＢ、ＵＳＢ２．０、ファイアワイヤ、ＰＣＩ−Ｅｘｐｒｅｓｓ、ＳＡＴＡ、ｅＳＡＴＡ、等の規格に基づいて）通信するための通信インターフェイス、１つ以上のインターフェイスを経てシステム１００に結合された装置又はシステム、等である。周辺機器１２０−１５０の１つ以上は、一実施形態において、図３のヒューズ３００を含むことができる。
【００１９】
一実施形態において、周辺機器１２０−１５０の少なくとも１つ及び／又は装置１１０の少なくとも１つのコンポーネント（例えば、メモリ１１３）は、（例えば、図４Ａないし９に示すプロセスの１つ以上に基づいて）システム１００に対するセキュアな信頼チェーンを実施するために（例えば、汎用処理ユニット１１５、特殊な処理ユニット１１６、等により実行される）コンピュータ読み取り可能なコードを記憶することができる。例えば、システム１００のセキュアなブートモードの間に、プロセッサ１１５は、（例えば、メモリ１１３に記憶された）セキュアなブートコード１１４を実行し、（例えば、周辺機器１５０に記憶された）低セキュアのブートコード１５５を認証することができる。低セキュアのブートコード１５５は、認証されると、低安定性のブートモードの間に（例えば、プロセッサ１１５により）実行することができる。アプリケーション１４５（例えば、装置１１０及び／又はシステム１００に対するオペレーティングシステム）は、低セキュアのブートモードの間に認証することができる。アプリケーション１４５が認証されると、そのアプリケーションを（例えば、プロセッサ１１５によりその後の低セキュアの又は非セキュアなモードにおいて）実行することができる。このように、システム１００に対するセキュアな信頼チェーンは、システム１００のブート及び／又はオペレーション中に、制御の移行（例えば、セキュアなブートコード１１４から低セキュアのブートコード１５５へ、低セキュアのブートコード１５５からアプリケーション１４５へ、等々）により、認証されたコード又は信頼のあるコード（例えば、他の認証されたコード又は信頼のあるコードの実行中に認証された）に対して実施することができる。
【００２０】
プロセッサ１１６は、一実施形態では、グラフィック処理ユニット即ちＧＰＵであり、一方、プロセッサ１１５は、一実施形態では、中央処理ユニット即ちＣＰＵである。或いは又、プロセッサ１１５は、（例えば、グラフィックデータの処理及び表示に関連した）グラフィック処理オペレーションと、他の処理オペレーション（例えば、より一般的な中央処理オペレーション）とを遂行できる複合ＧＰＵ／ＣＰＵでもよい。
【００２１】
セキュアな暗号化エンジン１１８は、一実施形態においてセキュアな信頼チェーンを実施するために認証オペレーションを遂行することができる。例えば、セキュアなブートモードにある間に（例えば、セキュアなブートコード１１４の実行中に）、エンジン１１８は、シークレットキー（例えば、セキュアなブートキー（ＳＢＫ））を使用して（例えば、周辺機器１５０からアクセスされる）低セキュアのブートコード１５５を認証することができる。シークレットキー（例えば、ＳＢＫ３３０）は、一実施形態では、ヒューズ３００（例えば、図３）のセキュアな部分（例えば、３１０）からアクセスすることができ、ヒューズ３００は、装置１１０（例えば、オンチップ）の少なくとも１つのコンポーネント、周辺機器１２０−１５０の少なくとも１つ、その何らかの組合せ、等に配置することができる。或いは又、シークレットキーは、エンジン１１８のキースロット２１０からアクセスすることができ、キースロット２１０は、ヒューズ３００からアクセスされるＳＢＫ３３０、システム１００の別の部分に記憶される（例えば、常時オン(always-on)（Ａ／Ｏ）ドメイン１１１のＡ／Ｏレジスタ１１２内に記憶されて、システム１００のリセットに応答してアクセスされる）キー、等を記憶することができる。
【００２２】
エンジン１１８は、低セキュアのブートモードの間に（例えば、低セキュアのブートコード１５５の実行中に）セキュアなキーを使用して（例えば、周辺機器１４０からアクセスされた）アプリケーション１４５を認証することができる。セキュアなキーは、セキュアなブートモードの間（例えば、セキュアなブートコード１１４の実行中）、低セキュアのブートモードの間（例えば、低セキュアのブートコード１５５の実行中）、その何らかの組合せ、等の間に、（例えば、エンジン１１８により）計算又は発生することができる。或いは又、セキュアなキーは、ユーザ（例えば、システム１００を出荷する前にシステム製造者、等）によって供給されてもよい。一実施形態では、セキュアなキーは、エンジン１１８のキースロット２２０からアクセスすることができ、このキースロット２２０は、（例えば、セキュアなブートモードの間に）別の位置からアクセスされ、（例えば、セキュアなブートモードの間に）計算され又は発生され、等々、のセキュアなキーを記憶することができる。
【００２３】
一実施形態では、セキュアなキーは、（例えば、セキュアなキーの発生以外の目的に使用される）再目的化データ及び／又は付加的なデータを使用して計算又は発生することができる。この再目的化データは、シークレットキー（例えば、ＳＢＫ３３０）、独特の装置識別子（例えば、ヒューズ３００の非セキュアな部分３２０からアクセスされた３５０）、又は他のデータを含むことができる。ＵＤＩ３５０は、（例えば、装置１１０、システム１００、等の）シリアルナンバー、（例えば、装置１１０、システム１００、等の）ＭＡＣ識別子、等を含むことができる。付加的なデータは、セキュアな装置データ（例えば、ヒューズ３００のセキュアな部分３１０からアクセスされた３４０）、例えば、装置キー（例えば、装置１１０に対して独特で、システム１００に対して独特で、装置１１０及び少なくとも１つの他の同様の装置により共有され、システム１００及び少なくとも１つの他の同様のシステムにより共有され、等）、等を含むことができ、セキュアな装置データは、装置１１０が動作モードに入れられた後は（例えば、システム１００に組み込まれた後、システム１００が販売のために店舗に搬入されるか又は使用のためにエンドユーザへ出荷された後、等）、装置１１０の外部及び／又はシステム１００の外部からアクセスすることができない。
【００２４】
更に、一実施形態では、セキュアなキーは、次の間形式に基づいて（例えば、エンジン１１８により）計算又は発生することができる。
【００２５】
ＳＳＫ＝ＡＥＳ［ＳＢＫ；ＵＩＤ＾ＡＥＳ（ＳＢＫ；ＤＫ）］
但し、“ＤＫ”は、セキュアな装置データ（例えば、３４０）であり、“ＳＢＫ”は、セキュアなブートキー（例えば、３３０）であり、そして“ＵＩＤ”は、独特な装置識別子（例えば、３５０）である。従って、ＳＢＫは、ＤＫを暗号キーとして使用して暗号化することができ、この暗号化は、一実施形態では進歩型暗号規格（ＡＥＳ）に基づく対称的キー暗号法を使用することができる。次いで、第１の暗号化の結果及びＵＩＤに対して論理演算（例えば、ビットごとのＸＯＲ演算、別の論理演算、等）を行うことができる。その後に、論理演算の結果を暗号キーとして使用してＳＢＫを暗号化することができ、この暗号化は、一実施形態では進歩型暗号規格（ＡＥＳ）に基づく対称的キー暗号法を使用することができる。１つ以上の中間演算の結果を、（例えば、０、１及び０のパターン、結果の少なくとも一部分の重複、等々で）より大きなサイズへとパッディングできることが明らかである。例えば、装置キー（ＤＫ）は、ビットごとのＸＯＲ演算を可能にするようにＵＩＤのサイズへと（例えば、暗号化の前、暗号化の後、等々に）パッディングすることができ、他のデータをパッディングすることができ、等々である。
【００２６】
従って、このようなセキュアなキーを使用すると、（例えば、装置１１０の、システム１００の、システム１００のコンポーネントに記憶されたデータの、又はそこにアクセス可能なデータ、等の）コンピュータシステムセキュリティを高めることができる。というのは、セキュアなモード（例えば、セキュアなブートコード１１４の実行中のセキュアなブートモード）の間にセキュアなコンポーネント（例えば、セキュアな暗号化エンジン１１８）によりセキュアなキーが発生されるからである。このように、セキュアなキーは、アクセス可能であると共に、装置１１０のコンポーネントのみが知っている（例えば、外部コンポーネント、システム、エンティティ、人間のユーザ、等は知らない）。更に別の実施例として、（例えば、装置１１０の）装置製造者が、独特の装置識別子（例えば、３５０）を機密裡にプログラムするか又は与え、そして（例えば、装置１１０をシステム１００内に組み込んだシステム１００の）システム製造者が、シークレットキー（例えば、ＳＢＫ３３０）を機密裡にプログラムするか又は与える場合には、いずれの当事者も、独特の識別子及びシークレットキーの両方を知らない。従って、この実施例では、（各当事者を含めて）誰も、セキュアなキーを計算も発生もできないことになる。
【００２７】
このようなセキュアなキーを使用することで、コンピュータシステムのセキュリティを更に向上させることができる。というのは、セキュアなキーを発見しても、シークレットキー（例えば、ＳＢＫ３３０）も、そのキーを発生するのに使用される他のデータも、自動的に露呈させることにならないからである。更に、少なくとも１つの暗号化オペレーションを使用してセキュアなキーを発生するとすれば、セキュアなキーを逆にエンジニアリングして、キーの発生に使用されたデータを発見することは困難である。
【００２８】
図１に示すように、装置１１０は、常時オン（Ａ／Ｏ）ドメイン１１１及び制御可能な供給ポテンシャルドメイン１６０（例えば、メモリ１１３、プロセッサ１１５、プロセッサ１１６、エンジン１１８、及びシステムコントローラ１１９ａ−１１９ｃを含む）のような複数のドメインを備えることができる。制御可能な供給ポテンシャルドメイン（例えば、１６０）のコンポーネントへの電力は、一実施形態では、調整され、減少され、ターンオフされ、等々であり、一方、Ａ／Ｏドメイン（例えば、１１１）のコンポーネントへの電力は、一般的に維持される。従って、情報は、（例えば、Ａ／Ｏレジスタ１１２内に記憶された）Ａ／Ｏドメイン１１１へ一時的又は永久的に移動され、ドメイン１６０の少なくとも１つのコンポーネントへの電力の減少又は終了中に（例えば、装置１１０、システム１００、等のリセット又はパワーダウン中に）それが失われないようにする。Ａ／Ｏレジスタ１１２は、一実施形態において、セキュアな情報（例えば、エンジン１１８によって発生されるセキュアなキー又はＳＳＫ、シークレットキー又はＳＢＫ３３０、等）を記憶することができる。更に、Ａ／Ｏレジスタ１１２への読み取りアクセス及び／又は書き込みアクセスは、「スティッキー(sticky)」又は持続性ビットをセットすることにより、（例えば、個々に又はグループで）制限され、スティッキービットは、Ａ／Ｏドメイン（例えば、１１１）内にも存在し得る。
【００２９】
又、装置１１０は、（例えば、ユニット１１７を含む）制御可能な周波数ドメイン１７０も備えることができる。ユニット１１７は、異なる周波数を発生するのに使用できるか又は異なる周波数を使用して構成できるハードウェア、ソフトウェア、又はその何らかの組合せ（例えば、ファームウェア、等）を含むことができる。一実施形態では、ユニット１１７は、ある周波数の信号（例えば、クロック信号）を発生するようにハードウェア及び／又はソフトウェアを使用して構成される少なくとも１つの位相固定ループ（ＰＬＬ）を含むことができる。例えば、ユニット１１７の少なくとも１つのＰＬＬにより発生されるクロック信号は、対応するシステムコントローラ（例えば、１１９ａ−１１９ｃ）を経て周辺機器（例えば、１２０−１５０）へ送信され、周辺機器の性能を調整することができる。従って、周辺機器は、最初（例えば、セキュアなブートコード１１４の実行中に）初期の即ち低い性能レベルで動作するように構成され、次いで、ある程度将来の時点で（例えば、セキュアなブートコード１１４のその後の実行中に）（例えば、クロック信号の周波数を高めることにより）高い性能に構成される。従って、これら実施形態では、装置１１０を種々の周辺機器（例えば、高性能の周辺機器、低性能の周辺機器、異なる形式の周辺機器、等）に関連して使用することができ、これにより、（例えば、システム１００の）システム製造者に対して設計及び／又は価格の融通性を与えることができる。他の実施形態では、ユニット１１７は、システム１００の異なるコンポーネント（例えば、システムコントローラ１１９ａ−１１９ｃ、等）を構成し、及び／又はそれとは別に（例えば、周波数に加えて又は周波数以外のパラメータを変更する、等により）システム１００のコンポーネントを構成することができる。
【００３０】
図１、２及び３は、特定の特徴を伴うシステム１００のコンポーネントを示しているが、図１から３に示されたシステム１００の特徴は、例示に過ぎず、それ故、他の実施形態では、それとは別に構成できることが明らかであろう。更に、システム１００及び／又は装置１１０は、他の実施形態では、異なる数及び／又は構成のコンポーネントを含んでもよいことが明らかであろう。更に、システム１００及び／又は装置１１０のコンポーネントは、任意の数のセキュアな及び／又は非セキュアなアプリケーション及び／又はデータを伴うセキュアな信頼チェーンを実施できることが明らかであろう。例えば、ある実施形態では、より多数又はより少数の低セキュア又は非セキュアなアプリケーションへ制御を渡す前に、より多数又はより少数のセキュアなブートコードへ制御を渡すことができる。
【００３１】
図４Ａ−４Ｄは、本発明の一実施形態に基づきプログラム可能な集積回路に対するセキュアな信頼チェーンを実施するためのコンピュータ実施プロセス４００を例示するフローチャートである。図４Ａに示すように、ステップ４１０は、少なくとも１つの周辺機器と通信するための少なくとも１つのＰＬＬ動作周波数にアクセスすることを含む。アクセスされる動作周波数は、少なくとも１つの周辺機器（例えば、１２０−１５０）が装置１１０と通信できるようにするために（例えば、ユニット１１７の）ＰＬＬから少なくとも１つのコンポーネント（例えば、システムコントローラ１１９ａ−１１９ｃ、周辺機器１２０−１５０、等）へ供給されるクロック信号に対応する。一実施形態では、ステップ４０５でアクセスされる動作周波数は、ある形式の種々の装置、種々の形式の装置、等を動作する初期又は基本的動作周波数である。
【００３２】
ステップ４１０は、装置（例えば、１１０）及び／又はシステム（例えば、１００）が前生産モードであるかどうか決定することを含む。前生産モード状態は、前生産モードを指示する状態に入れられた少なくとも１つのコンポーネント（例えば、ビット、ストラップピン、ヒューズ、等）により指示される。前生産モード状態を指示するコンポーネントは、Ａ／Ｏレジスタ１１２、１つ以上の周辺機器１２０−１５０、ヒューズ３００、システム１００の、又はシステム１００へアクセスできる別のコンポーネント、その何らかの組合せ、等に配置される。装置１１０及び／又はシステム１００が前生産モードにあると決定された場合には、ステップ４１２を遂行することができる。
【００３３】
（例えば、装置１１０、システム１００、等の）製造者は、前生産モードにあるときに、ステップ４１２において、少なくとも１つのコンポーネントをプログラムし（例えば、ＳＢＫ３３０、セキュアな装置データ３４０、ＵＩＤ３５０、等を指定し）、即ち製品（例えば、装置１１０、システム１００、等）を別のエンティティへ出荷する前に初期構成又はデバッグを遂行する。或いは又、前生産モードにあるときに、ステップ４１２は、回復モード（例えば、周辺機器１２０−１５０のうちのＵＡＲＴ周辺機器に記憶された回復コードの実行を含むＵＡＲＴ回復モード）に入り、そして回復オペレーションを遂行する（例えば、新たなセキュアなブートコード１１４、新たな低セキュアのブートコード１５５、新たなアプリケーション１４５、等をダウンロードし、解読し、認証し、等々）ことを含んでもよい。ステップ４１２は、一実施形態において、図５のプロセス５００に基づいて行うことができる。ステップ４１２を遂行した後、一実施形態では、装置１１０及び／又はシステム１００のリセットを行ってから、ステップ４０５及び４１０を繰り返すことができる。
【００３４】
或いは又、装置１１０及び／又はシステム１００がステップ４１０において前生産モードにないと決定された場合には、ステップ４１５において、装置１１０及び／又はシステム１００が故障分析モードにあるかどうか決定される。故障分析モード状態は、故障分析モードを指示する状態に入れられた少なくとも１つのコンポーネント（例えば、ビット、ストラップピン、ヒューズ、等）により指示される。故障分析モード状態を指示するコンポーネントは、Ａ／Ｏレジスタ１１２、１つ以上の周辺機器１２０−１５０、ヒューズ３００、システム１００の、又はシステム１００へアクセスできる別のコンポーネント、その何らかの組合せ、等に配置される。装置１１０及び／又はシステム１００が故障分析モードにあると決定された場合には、ステップ４３５を遂行することができる。
【００３５】
（例えば、装置１１０、システム１００、等の）製造者、及び／又はサービス代表者は、故障分析モードにあるときに、ステップ４３５において、少なくとも１つのコンポーネントをプログラムし、即ち少なくとも１つのコンポーネントにおいてデバッグオペレーション、等を遂行することができる。（例えば、装置１１０、システム１００、等にある）セキュアな情報へのアクセスは、故障分析モードにあるときは、制限され又はディスエイブルされる。一実施形態において、故障分析モードにあるときは、ステップ４３５は、回復モード（例えば、周辺機器１２０−１５０のうちのＵＡＲＴ周辺機器に記憶された回復コードの実行を含むＵＡＲＴ回復モード）に入り、そして回復オペレーションを遂行する（例えば、新たなセキュアなブートコード１１４、新たな低セキュアのブートコード１５５、新たなアプリケーション１４５、等をダウンロードし、解読し、認証し、等々）ことを含んでもよい。ステップ４３５において、（例えば、ＳＢＫ３３０、セキュアな装置データ３４０、ＵＩＤ３５０、等を指定する）データの所定断片が与えられて他のデータ（例えば、ＵＩＤ３５０、等）に一致する場合にのみ、１つ以上のオペレーション（例えば、回復オペレーション）を遂行することができ、これにより、無断アクセスを減少し及び／又はエンドユーザが装置１１０及び／又はシステム１００を故障分析モードに入れてデータを装置（例えば、１１０）にダウンロードするのを困難にする。ステップ４３５は、一実施形態では、図６のプロセス６００に基づいて遂行される。ステップ４３５を遂行した後、一実施形態では、装置１１０及び／又はシステム１００のリセットを行ってから、ステップ４０５−４１５を繰り返すことができる。
【００３６】
或いは又、装置１１０及び／又はシステム１００がステップ４１５において故障分析モードにないと決定された場合には、ステップ４２０において、セキュアなブートコード（例えば、１１４）を（例えば、プロセッサ１１５により）実行することができる。従って、一実施形態では、ステップ４２０においてセキュアなブートコード（例えば、１１４）の実行を開始することは、セキュアなブートモードに入ることを意味する。
【００３７】
図４Ａに示すように、ステップ４２５は、ステップ４０５でアクセスされた動作周波数でクロック信号を発生するように（例えば、ユニット１１７の）少なくとも１つのＰＬＬをプログラムすることを含む。このクロック信号は、少なくとも１つの周辺機器（例えば、１２０−１５０）が装置１１０と通信できるようにするために（例えば、ユニット１１７の）ＰＬＬから少なくとも１つのコンポーネント（例えば、システムコントローラ１１９ａ−１１９ｃ、周辺機器１２０−１５０、等）へ供給することができる。一実施形態では、ステップ４２５のＰＬＬのプログラミングは、ある形式の種々の装置、種々の形式の装置、等を動作する初期又は基本的動作周波数をもつクロック信号を発生することができる。
【００３８】
図４Ｂに示すように、ステップ４３０は、ウォームブート状態がセットされたかどうか決定することを含む。ウォームブート状態は、装置１１０及び／又はシステム１００の少なくとも１つのコンポーネント（例えば、ビット、ストラップピン、ヒューズ、等）により指示される。ウォームブート状態を指示するコンポーネントは、Ａ／Ｏレジスタ１１２、１つ以上の周辺機器１２０−１５０、ヒューズ３００、システム１００の又はシステム１００へアクセスできる別のコンポーネント、その何らかの組合せ、等に配置される。装置１１０及び／又はシステム１００は、装置１１０及び／又はシステム１００の再ブートに応答して（例えば、回復オペレーションを遂行すること、新たなセキュアなブートコードをロードするか又はセキュアなブートコードを更新すること、新たな低セキュアのブートコードをロードするか又は低セキュアのブートコードを更新すること、制御可能な供給ポテンシャルドメイン１６０内の１つ以上のコンポーネントの供給ポテンシャルを変化させること、等に応答して）ウォームブート状態となる。ウォームブート状態がセットされたと決定される場合には、ステップ４３１において、ウォームブートオペレーションを遂行することができる。
【００３９】
ステップ４３１は、一実施形態では、図７のプロセス７００に基づいて遂行することができる。ウォームブートオペレーションが首尾良く行われたことがステップ４３２で決定された場合には、ここに述べるように、ステップ４５０を遂行することができる。ウォームブートオペレーションが首尾良く行われなかった場合には、ウォームブート状態がクリアされ（例えば、新たなビット、ストラップピン、ヒューズ、等をセットするか、ウォームブートビット、ストラップピン、ヒューズ、等をリセットすることにより）、そして装置１１０及び／又はシステム１００のリセットが開始される（例えば、ステップ４０５−４３０を繰り返す前に）。一実施形態では、ステップ４３３においてウォームブート状態をクリアすると、装置１１０及び／又はシステム１００のリセットの際に、少なくとも１つの回復オペレーション（例えば、ステップ４３７における）及び／又は少なくとも１つのコールドブートオペレーション（例えば、ステップ４４０における）の遂行が誘起される。
【００４０】
或いは又、ステップ４３０においてウォームブート状態がセットされないと決定された場合には、ステップ４３５において、強制回復モード状態がセットされるかどうか決定することができる。強制回復状態は、装置１１０及び／又はシステム１００の少なくとも１つのコンポーネント（例えば、ビット、ストラップピン、ヒューズ、等）により指示される。強制回復状態を指示するコンポーネントは、Ａ／Ｏレジスタ１１２、１つ以上の周辺機器１２０−１５０、ヒューズ３００、システム１００の、又はシステム１００へアクセスできる別のコンポーネント、その何らかの組合せ、等に配置される。強制回復モード状態がセットされたことがステップ４３５で決定された場合は、ステップ４３７において、回復モードオペレーションを遂行することができる。
【００４１】
一実施形態では、強制回復モード状態をセットし、そしてステップ４３７において回復モードオペレーションを遂行することは、ブートコード（例えば、低セキュアのブートコード１５５）を（例えば、エンジン１１８を使用して）読み取り、解読し又は認証し損なうに応答して行うことができる。このように、ステップ４３７で遂行される回復オペレーションを使用して、装置１１０及び／又はシステム１００をロック又は「ブリック(bricked)」（例えば、不作動）状態から「デブリック(de-brick)」又は復帰させることができる。或いは又、ステップ４３７で遂行される回復オペレーションを製造段階で使用して、データ（例えば、ＳＢＫ３３０、セキュアな装置データ３４０、ＵＩＤ３５０、等）を装置１１０及び／又はシステム１００に（例えば、初めて）ロードすることができる。一実施形態では、ステップ４３７は、図７のプロセス７００に基づいて遂行される。
【００４２】
図７を参照すると、ステップ７１０は、装置１１０をホストシステム又は装置へ直接的に又はネットワークを通して結合することを含む。周辺機器１２０−１５０の少なくとも１つは、ホストとの通信チャンネルを実施することができ、ここで、通信チャンネルは、一実施形態では、ＵＳＢ規格、ＵＳＢ２．０規格、ファイアウオール規格、ＰＣＩ−Ｅｘｐｒｅｓｓ規格、ＳＡＴＡ規格、ｅＳＡＴＡ規格、等に基づいて動作することができる。装置１１０は、ステップ７２０において、装置１１０のＵＩＤ（例えば、３５０）を、通信チャンネルを経てホストへブロードキャストすることができる。ＵＩＤ（例えば、３５０）は、ステップ７３０において、ホストにより所与のＳＢＫ（例えば、３３０）へマップされる。次いで、ホストは、ステップ７４０において、自己確認メッセージを発生して装置１１０へ送信することができる。
【００４３】
ホストから装置（例えば、１１０）へ送信されるメッセージは、非セキュアな長さ、ハッシュ、ランダムＡＥＳブロック、セキュアな長さ、コマンド（例えば、ヘッダデータ）及びデータ（例えば、他のデータ）、ペイロード、及びパッディング（例えば、０Ｘ８０に続いて必要に応じて付加的な０Ｘ００バイトがあるもの）を含むことができる。ランダムＡＥＳブロック、セキュアな長さ、コマンド及びデータ、ペイロード、パッディング、又はその何らかの組合せは、ＵＩＤ（例えば、３５０）へマップされるＳＢＫを使用してエンコード又は暗号化することができる。
【００４４】
図７に示すように、装置１１０及び／又はシステム１００によりメッセージが受け取られると、ステップ７５０においてそれを確認することができる（例えば、ＳＢＫ３３０を使用して）。一実施形態では、非セキュアな長さがセキュアな長さに一致し、ハッシュが正しく、又、コマンドの少なくとも１つが有効（例えば、所与のメッセージに対して有効なコマンド形式）である場合、メッセージのサイズが正しい（例えば、コマンド及びデータにより指定された通りである）場合、ペイロードのサイズが正しい場合、パッディングパターンが正しい場合、コマンド及びデータのセキュアなブートコードのバージョン番号が装置１１０のセキュアなブートコード（例えば、１１４）のバージョン番号に一致する場合、コマンド及びデータのセキュアなブートコードのバージョン番号が装置１１０の低セキュアのブートコード（例えば、１５５）のバージョン番号に一致する場合、その何らかの組合せ、等々の場合に、メッセージが有効であると決定することができる。
【００４５】
メッセージが確認された（例えば、有効であると決定された）場合には、装置（例えば、１１０）は、ステップ７６０において、メッセージを周辺機器（例えば、１２０−１５０）にロードしそして付加的な回復モードオペレーションを遂行することができる。付加的な回復モードオペレーションは、メッセージ内の１つ以上のコマンドを実行すること、メッセージに含まれたコードを実行すること、メッセージからの低セキュアのブートコード（例えば、１５５）を所与の周辺機器（例えば、１２０−１５０）に記憶すること、又はその何らかの組合せを含む。例えば、低セキュアのブートコード（例えば、１５５）がメッセージにおいて受け取られる場合には、低セキュアのブートコードは、ＳＢＫ（例えば、３３０）を使用してエンコードされて周辺機器（例えば、１２０−１５０）に記憶される。或いは又、装置（例えば、１１０）は、ホストから付加的なデータをダウンロードし且つ認証することができる。付加的なデータは、それを周辺機器（例えば、１２０−１５０）へ書き込む前に、ＳＢＫ（例えば、３３０）を使用して暗号化されサインされる。このように、プロセス７００の回復モードは、複数のメッセージ送信及び応答シーケンスを与えることができる。或いは又、メッセージが確認されない（例えば、ステップ７５０において有効でないと決定された）場合には、装置（例えば、１１０）は、ステップ７７０においてリセットされる（例えば、システムリセットを要求する無限ループに入って、システム又は装置のリセット等を自動的に開始するように進むことにより）。
【００４６】
或いは又、ステップ４３５において、強制回復モード状態がセットされないと決定された場合には、ステップ４４０において、コールドブートオペレーションを遂行することができる。例えば、ステップ４４０において、低セキュアのブートコード（例えば、１５５）を読み取り、解読し、認証し、その何らかの組合せ、等を行って、装置１１０及び／又はシステム１００に対してセキュアな信頼チェーン（セキュアなブートモードにおけるセキュアなブートコード１１４の実行から、低セキュアのブートモードにおける低セキュアのブートコード１５５の実行まで）を実施することができる。更に、セキュアなキー（例えば、ＳＳＫ）は、ステップ４４０におけるコールドブートオペレーションとして計算され及び／又は発生される。コールドブートオペレーションは、一実施形態では、装置１１０及び／又はシステム１００の電源オンに応答して遂行することができる。更に、ステップ４４０は、一実施形態では、図９のプロセス９００に基づいて遂行されてもよい。コールドブートオペレーションが首尾良く行われなかったことがステップ４４２で決定された場合には、ここに述べるように、ステップ４３７を遂行することができる。或いは又、コールドブートオペレーションが首尾良く行われた場合には、ここに述べるように、ステップ４５０を遂行することができる。
【００４７】
図４Ｃに示すように、ステップ４５０は、セキュアな情報（例えば、シークレットキー（例えば、ＳＢＫ３３０）、セキュアなキー（ＳＳＫ）、セキュアなキーを発生するのに使用される情報、等）へのアクセスを制限することを含む。このようなアクセスは、レジスタ（例えば、Ａ／Ｏレジスタ１１２）、キースロット（例えば、２１０及び／又は２２０）、又はセキュアな情報を記憶する他の記憶媒体に対応する「スティッキー」又は持続性ビットをセットすることにより制限される。このように、セキュアな情報への読み取り及び／又は書き込みアクセスを制限することができる。或いは又、セキュアな情報は、レジスタ（例えば、Ａ／Ｏレジスタ１１２）、キースロット（例えば、２１０及び／又は２２０）、又はセキュアな情報を記憶する他の記憶媒体からフラッシュされてもよい（例えば、ゼロでオーバーライトし、他の情報でオーバーライトし、クリアし、等々）。
【００４８】
ステップ４６０は、セキュアなブートモードを退出することを含む。ステップ４６０において、セキュアなブートコード（例えば、１１４）の実行を終了させ、及び／又は制御を低セキュアのブートコード（例えば、１５５）へ移行することができる。
【００４９】
図４Ｃに示すように、ステップ４７０は、低セキュアのブートモードに入り、そして低セキュアのブートコード（例えば、１５５）の実行を開始することを含む。低セキュアのブートコード（例えば、１５５）は、装置（例えば、１１０）及び／又はシステム（例えば、１００）のプロセッサ（例えば、１１５）により実行することができる。更に、低セキュアのブートコード（例えば、１５５）は、装置（例えば、１１０）及び／又はシステム（例えば、１００）のメモリ（例えば、１６０）にローカルに記憶することができる。
【００５０】
ステップ４７２は、セキュアな暗号化エンジン（例えば、１１８）を使用して、ＳＢＫ（例えば、３３０）及び／又はセキュアなキーでオペレーションを遂行することを含む。例えば、セキュアな暗号化エンジンを使用して、暗号化オペレーション及び／又は解読オペレーションを遂行することができ（例えば、ＳＢＫ３３０又はセキュアなキーが暗号化キーとして使用され）、暗号化及び／又は解読されるべきデータは、セキュアな暗号化エンジンへ通され（例えば、セキュアな暗号化エンジン１１８で暗号化及び／又は解読されるように）、そしてセキュアな暗号化エンジン（例えば、１１８）は、その後、処理された（例えば、暗号化、解読、等々された）データを出力する。このように、ＳＢＫ３３０及び／又はセキュアなキーは、低セキュアのブートモードで暗号化及び又は解読オペレーションを遂行できるようにしながら、セキュアな状態に保たれる（例えば、各々、セキュアな暗号化エンジン１１８のキースロット２１０及び２２０内で）。同様に、セキュアな暗号化エンジン（例えば、１１８）を使用して、認証オペレーション（例えば、デジタル署名がＳＢＫ３３０及び／又はセキュアなキーに関連付けられ、さもなければ、データの認証は、ＳＢＫ３３０及び／又はセキュアなキーの知識を必要とし、等々）、及び／又はＤＲＭオペレーションを遂行することができる。この場合も、セキュアな暗号化エンジン（例えば、１１８）を使用して、認証及び／又はＤＲＭオペレーションの間にＳＢＫ３３０及び／又はセキュアなキーへのアクセスを制限し、さもなければ、それを制御することができる。
【００５１】
図４Ｃに示すように、ステップ４７４は、セキュアな暗号化エンジン（例えば、１１８）のキースロット（例えば、２２０）にＳＳＫをオーバーライトすることを含む。一実施形態では、オーバーライトに使用される新たなＳＳＫを（例えば、ＳＢＫ３３０及び／又はセキュアな装置データ３４０、等も指定するシステム製造者によって）指定することができる。或いは又、ＳＳＫを再生してもよい。例えば、新たなセキュアな装置データ３４０を（例えば、異なるセキュアな装置データにアクセスし、そしてその新たなセキュアな装置データをＳＳＫの計算に使用し、セキュアな装置データ３４０に関連したヒューズをプログラミングし直して、セキュアな装置データ３４０の内容を変化させる、等々により）指定してもよい。
【００５２】
図４Ｄに示すように、ステップ４８０は、ＳＳＫ（例えば、セキュアなキー）へのアクセスを制限することを含む。例えば、セキュアな暗号化エンジン（例えば、１１８）は、セキュアなキーを記憶するキースロット（例えば、２２０）へのアクセスを制限することができる（例えば、読み取り専用として指定し、書き込み専用として指定し、等々）。別の実施形態では、セキュアなキーに関連した情報を記憶するレジスタ（例えば、１１２）、キャッシュ又は他のメモリをフラッシュすることができる。又、一実施形態では、（例えば、Ａ／Ｏドメイン１１１に配置され、装置１１０の別の部分に配置され、等々の）「スティッキー」又は持続性ビットをセットすることにより、レジスタ（例えば、１つ以上のＡ／Ｏレジスタ１１２）へのアクセスを制限することができる。
【００５３】
ステップ４８５は、セキュアな暗号化エンジン（例えば、１１８）のキースロット（例えば、２１０）からＳＢＫ（例えば、シークレットキー３３０）をフラッシュすることを含む。一実施形態では、ＳＢＫをフラッシュするのは、キースロット２１０に全てゼロを書き込むことによって行うことができる。或いは又、キースロット２１０に他のデータを書き込むこともできる。又、他の実施形態では、シークレットキー（例えば、キースロット２１０に記憶される３３０、等）を変更し、隠し、除去し、等々とすることができる。従って、一実施形態では、ＳＢＫ（例えば、３３０）へのアクセスを（ステップ４５０の制限に加えて）更に制限し、ＳＢＫ（例えば、３３０）のセキュリティ、及び／又はＳＢＫ（例えば、３３０)を使用するか、さもなければ、それにアクセスする（例えば、装置１１０、システム１００、等の）コンポーネントのセキュリティを改善することができる。
【００５４】
図４Ｄに示すように、ステップ４９０は、低セキュアのブートモードを退出することを含む。ステップ４９１は、非ブートモードに入って、非ブートコードの実行を開始することを含む。一実施形態では、低セキュアのブートコード（例えば、１５５）が実行を終了して、制御を他のコード（例えば、アプリケーション１４５のような非ブートコード、等）に引き継ぐことができる。非ブートコード（例えば、１４５）は、装置（例えば、１１０）の周辺機器（例えば、１４０）に存在し、そして装置（例えば、１１０）及び／又はシステム（例えば、１００）で実行されるオペレーティングシステム又は他のアプリケーションである。
【００５５】
ステップ４９２は、ＳＳＫ（例えば、セキュアなキー）に関連したオペレーションを遂行することを含む。例えば、システム（例えば、１００）及び／又は装置（例えば、１１０）で実行されるオペレーティングシステム又は他のアプリケーションは、ＳＳＫにアクセスし、そしてＳＳＫを使用して、データの各部分（例えば、ビデオコンテンツ、オーディオコンテンツ、オーディオ／ビデオコンテンツ、他のデータ、等）を暗号化し、解読し、認証し、サインし、等々とすることができる。このように、ＳＳＫは、システム（例えば、１００）及び／又は装置（例えば、１１０）に記憶されるか、さもなければ、それによりアクセスされるデータ（例えば、ビデオコンテンツ、オーディオコンテンツ、オーディオ／ビデオコンテンツ、他のデータ、等）をセキュアなものにする一方、ＳＳＫ（例えば、ＳＢＫ３３０、セキュアな装置データ３４０、等）を発生するのに使用される情報へのアクセスを制限するために設けられ且つ使用される。別の実施形態では、データ（例えば、ビデオコンテンツ、オーディオコンテンツ、オーディオ／ビデオコンテンツ、他のデータ、等）は、暗号化、解読、認証、サイン、等を行うためにセキュアな暗号化エンジン（例えば、１１８）へ通され、これにより、必要に応じて実施の融通性及び／又は高いセキュリティを与えることができる。
【００５６】
図４Ｄに示すように、ステップ４９４は、非ＳＳＫオペレーションを遂行することを含む。例えば、システム（例えば、１００）及び／又は装置（例えば、１１０）で実行されるオペレーティングシステム又は他のアプリケーションにより遂行されるタスクは、ＳＳＫに直接的及び／又は間接的に依存せずにデータにアクセスし及び／又はデータを処理することができる。一実施形態では、これらのオペレーションは、セキュアなキーを使用しないシステム（例えば、１００）及び／又は装置（例えば、１１０）の通常のオペレーションと考えることができる。
【００５７】
図５は、本発明の一実施形態に基づき前生産オペレーションを遂行するためのコンピュータ実施プロセス５００を例示するフローチャートである。プロセス５００は、一実施形態では、図４のステップ４１２を実施するのに使用できる。
【００５８】
図５に示すように、ステップ５１０は、前生産オペレーションを開始することを含む。一実施形態では、ステップ５１０は、回復コードの実行を開始することを含む。回復コードは、一実施形態では、周辺機器（例えば、１２０−１５０）からアクセスすることができる。周辺機器は、一実施形態では、ＵＡＲＴ周辺機器でよい。
【００５９】
ステップ５２０は、（例えば、装置１１０へ）ダウンロードされるべきデータを記憶する少なくとも１つのコンポーネントとの通信を実施するために（例えば、ユニット１１７の）少なくとも１つのＰＬＬをプログラミングすることを含む。このプログラミングは、周辺機器（例えば、１２０−１５０）が通信チャンネルを確立できるようにする動作周波数でクロック信号を発生するようにＰＬＬを構成することを含む。１つ以上のコンポーネントは、プログラム可能な集積回路（例えば、装置１１０）に結合されたシステム（例えば、１００）の周辺機器（例えば、１２０−１５０）である。或いは又、１つ以上のコンポーネントは、システム（例えば、１００）に対して外部に配置されて、装置（例えば、１１０）に通信結合されてもよい。
【００６０】
図５に示すように、ステップ５３０は、少なくとも１つのコンポーネントとの通信チャンネルを確立することを含む。例えば、システム（例えば、１００）及び／又は装置（例えば、１１０）のコンポーネント（例えば、システムコントローラ１１９ａ−１１９ｃ、等）は、一実施形態では、ＰＬＬにより発生されたクロック信号にアクセスすることができる。（例えば、「ハンドシェーク」等を実施する）１つ以上のメッセージを、装置（例えば、１１０）のコンポーネント（例えば、システムコントローラ１１９ａ−１１９ｃ、プロセッサ１１５、等）と、少なくとも１つのコンポーネント（例えば、周辺機器１２０−１５０、システム１００の外部のコンポーネント、等）との間で送信して、通信チャンネルを確立することができる。
【００６１】
ステップ５４０は、１つ以上のコンポーネントからデータをダウンロードすることを含む。データは、新たな又は更新されたブートコード（例えば、セキュアなブートコード１１４、低セキュアのブートコード１５５、等）を含む。別の実施形態では、データは、装置（例えば、１１０）及び／又はシステム（例えば、１００）のコンポーネントによってアクセスするためのアプリケーション（例えば、１４５）及び／又はデータを含む。
【００６２】
図５に示すように、ステップ５５０は、ダウンロードされたデータを認証することを含む。データは、シークレットキー（例えば、ＳＢＫ３３０）、セキュアなキー、等を使用して認証することができる。更に、データは、セキュアな環境において（例えば、セキュアな暗号化エンジン１１８内で）認証し及び／又はその他処理（例えば、解読、暗号化、等）することができる。
【００６３】
図６は、本発明の一実施形態に基づいて故障分析オペレーションを遂行するためのコンピュータ実施プロセス６００を例示するフローチャートである。このプロセス６００は、一実施形態において、図４のステップ４１７を実施するのに使用できる。
【００６４】
図６に示すように、ステップ６１０は、故障分析オペレーションを開始することを含む。一実施形態では、ステップ６１０は、プロセス５００のステップ５１０と同様に遂行することができる。更に、プロセス６００のステップ６２０及び６３０は、一実施形態では、プロセス５００のステップ５２０及び５３０と同様に遂行することができる。
【００６５】
図６に示すように、ステップ６４０は、１つ以上のコンポーネント（例えば、周辺機器１２０−１５０の１つ以上）から装置識別子にアクセスすることを含む。例えば、少なくとも１つのコンポーネントへのこのような装置識別子の要求がなされ、及び／又は少なくとも１つのコンポーネントは、装置（例えば、１１０）から正式な要求がなくても、このような装置識別子をブロードキャストすることができる。
【００６６】
ステップ６５０は、少なくとも１つのコンポーネント（例えば、周辺機器１２０−１５０の１つ以上）からアクセスされた装置識別子が装置（例えば、１１０）のＵＩＤ（例えば、３５０）に一致するかどうか決定することを含む。ステップ６４０及び６５０は、無断アクセスを減少し、及び／又はエンドユーザが装置１１０及び／又はシステム１００を故障分析モードに入れてデータを装置（例えば、１１０）へダウンロードするのを困難にするために行うことができる。装置識別子がＵＩＤ（例えば、３５０）に一致しない場合には、プロセス６００が終了となる。或いは又、装置識別子がＵＩＤ（例えば、３５０）に一致する場合には、ステップ６６０を行うことができる。プロセス６００のステップ６６０及び６７０は、一実施形態では、プロセス５００のステップ５４０及び５５０と同様に行うことができる。
【００６７】
図８は、本発明の一実施形態に基づいてウォームブートを遂行するためのコンピュータ実施プロセス８００を例示するフローチャートである。プロセス８００は、一実施形態では、プロセス４００のステップ４３１を実施することができる。更に、プロセス８００は、一実施形態では、装置（例えば、１１０）及び／又はシステム（例えば、１００）をリセットした後に行うことができる。
【００６８】
図８に示すように、ステップ８１０は、常時オン（Ａ／Ｏ）レジスタ（例えば、１１２）からデータを読み取ることを含む。このデータは、周辺機器構成情報（例えば、ＳＤＲＡＭ構成情報、ＰＬＬ構成情報、例えば、ＰＬＬにより発生されるクロック信号にアクセスするコンポーネントのための動作周波数、装置１１０の設定、システム１００の設定、等）を含む。又、データは、（例えば、ステップ８５０で実行される）再スタートコードのアドレスも含むことができる。更に、一実施形態では、データは、指紋（例えば、再スタートコードのための非セキュアなハッシュ値、再スタートコードのためのセキュアなハッシュ値、等）、又は再スタートコードに関する他の情報を含むこともできる。
【００６９】
ステップ８２０は、再スタートコードを記憶する少なくとも１つの周辺機器（例えば、１２０−１５０）を構成することを含む。例えば、ＳＤＲＡＭ周辺機器（例えば、装置１１０に結合された周辺機器１２０−１５０の１つ）が再スタートコードを記憶する場合には、ＳＤＲＡＭを自己リフレッシュモードから取り出すことができる。加えて、周辺機器は、更に構成することができる（例えば、動作周波数を調整し、周辺機器に結合されたシステムコントローラを、周辺機器の通信チャンネルを設定するように準備し、等々）。
【００７０】
図８に示すように、ステップ８３０は、再スタートコードを記憶する少なくとも１つの周辺機器との通信チャンネルを確立することを含む。ステップ８３０は、一実施形態では、プロセス５００のステップ５３０と同様に行うことができる。
【００７１】
ステップ８４０は、再スタートコードを認証することを含む。再スタートコードは、周辺機器に記憶された再スタートコードの非セキュアなハッシュ又はダイジェストを計算することにより確認又は認証することができる。ハッシュ又はダイジェストが、ステップ８１０においてＡ／Ｏレジスタ（例えば、１１２）からアクセスされた指紋に一致する場合には、ステップ８５０において再スタートコードを実行して、システム状態を回復することができる。一実施形態では、再スタートコードは、ベクトルを含み、それ故、ステップ８５０は、（例えば、ＳＤＲＡＭ又は他の周辺機器における）再スタートベクトルにジャンプして、システム状態を回復することができる。
【００７２】
図９は、本発明の一実施形態に基づいてコールドブートを遂行するためのコンピュータ実施プロセス９００を例示するフローチャートである。このプロセス９００は、一実施形態において、プロセス４００のステップ４４０を実施することができる。更に、プロセス９００は、一実施形態では、装置（例えば、１１０）及び／又はシステム（例えば、１００）の電源オンの後に行うことができる。
【００７３】
ステップ９１０は、少なくとも１つの周辺機器の形式に関する情報にアクセスすることを含む。例えば、装置（例えば、１１０）に結合された１つ以上の周辺機器（例えば、１２０−１５０）の形式を識別することができる。周辺機器の形式は、ＮＯＲ、ＮＡＮＤ、ＳＰＩ、ＭＭＣ、他の周辺機器形式、等を含むことができる。周辺機器形式に関する情報は、一実施形態では、装置（例えば、１１０）のヒューズ（例えば、３００）に記憶することができる。又、周辺機器に関する情報は、一実施形態では、装置１１０の他の部分（例えば、ストラップピン、等）に記憶することもできる。
【００７４】
図９に示すように、ステップ９２０は、少なくとも１つの周辺機器との通信を可能にする情報にアクセスすることを含む。一実施形態では、この情報は、ステップ９１０において形式が識別された周辺機器の特性を含むことができる。例えば、この情報は、周辺機器と通信するときに使用されるべきＥＣＣの形式、通信のためのアドレスフォーマット、周辺機器との通信チャンネルを実施するための基本的又は初期の動作周波数、等を含むことができる。周辺機器に関する情報は、一実施形態では、装置（例えば、１１０）のヒューズ（例えば、３００）に記憶することができる。
【００７５】
ステップ９３０は、１つ以上の周辺機器の性能を改善するための情報にアクセスすることを含む。例えば、周辺機器のための向上された動作周波数にアクセスすることができ、この向上された動作周波数は、ステップ９２０でアクセスされるものより高い。この情報は、周辺機器と通信チャンネル（例えば、基本的又は初期動作周波数で動作する）を確立した後に周辺機器のブート構成テーブル（ＢＣＴ）からアクセスすることができる。このように、ステップ９１０及び９２０においてアクセスされた情報を使用して、基本的又は低い性能レベルで動作する周辺機器との通信チャンネルを確立することができ、周辺機器及び／又は通信チャンネルの性能を改善する（例えば、速度、帯域巾、等を増加する）ための情報は、低い性能レベルで動作する（例えば、ステップ９３０で）実施された通信チャンネルを経て通信することができる。
【００７６】
図９に示すように、ステップ９４０は、（例えば、ステップ９３０でアクセスされた）少なくとも１つの周辺機器の製造を改善するための情報を使用してシステム（例えば、１００）を構成することを含む。例えば、（例えば、ユニット１１７の）１つ以上のＰＬＬは、少なくとも１つの周辺機器の性能を改善するための情報に基づいて、より高い周波数のクロック信号を発生することができる。更に、ステップ９４０において、より高い性能のためにシステムコントローラ（例えば、１１９ａ−１１９ｃ）を再初期化することができる。
【００７７】
ステップ９５０は、低セキュアのブートコード（例えば、１５５）に関する情報にアクセスすることを含む。例えば、低セキュアのブートコード（例えば、１５５）の位置（例えば、ロードアドレス、エントリーアドレス、等）にアクセスすることができる。更に、低セキュアのブートコード（例えば、１５５）のための冗長性情報にアクセスすることもでき、この冗長性情報は、低セキュアのブートコードの異なるバージョン又は世代に対するポインタ（例えば、以前の世代に戻るか又は更新するための）、低セキュアのブートコードの同じ世代の付加的なコピーに対するポインタ（例えば、低セキュアのブートコードの読み取り、更新、等の間にエラー又は他の例外により同じ世代を再ロードするための）、等々を含むことができる。
【００７８】
図９に示すように、ステップ９６０は、低セキュアのブートコード（例えば、１５５）を記憶する周辺機器（例えば、１５０）を初期化しそしてその周辺機器（例えば、１５０）から低セキュアのブートコードを読み取ることを含む。この初期化は、（例えば、ステップ９２０でアクセスされた情報に基づく低い動作周波数の、ステップ９３０でアクセスされた情報に基づく高い周波数の、等々の）クロック信号を、周辺機器（例えば、１５０）、周辺機器に結合されたシステムコントローラ（例えば、１１９ｃ）、等々へ供給することを含む。更に、周辺機器の初期化は、周辺機器（例えば、１５０）と装置（例えば、１１０）との間に通信チャンネルを設定するのに使用される「ハンドシェーク」又は他の情報を通信することも含む。
【００７９】
ステップ９７０は、低セキュアのブートコードを解読し及び／又はＳＢＫ（例えば、３３０）を使用して低セキュアのブートコードを認証することを含む。ＳＢＫは、ヒューズ３００のセキュアな部分３１０、セキュアな暗号化エンジン１１８のキースロット２１０、装置１１０のＡ／Ｏレジスタ（例えば、１１２）、等からアクセスすることができる。一実施形態では、低セキュアのブートコード（例えば、１５５）が（例えば、セキュアな暗号化エンジン１１８により）解読されると、（例えば、エンジン１１８又はシステム１００の別のコンポーネントにより計算された）計算されたハッシュ又はダイジェストを、ステップ９５０でアクセスされた低セキュアのブートコードと比較することによりそれを認証又は確認することができる。
【００８０】
以上、実施から実施へと変化し得る多数の特定の細部を参照して、本発明の実施形態を説明した。従って、本発明が何であって本出願人が何を意図するかの唯一の独占的な表現が、以後の修正も含めて、特許請求の範囲に特定の形態で網羅されている。ここでは、特許請求の範囲に明確に記されていない要素、特性、特徴、効果又は属性によって特許請求の範囲が何ら制限を受けるものではない。従って、明細書及び図面は、限定の意味ではなく、例示と考えるべきである。
【符号の説明】
【００８１】
１００・・・システム、１１０・・・装置（ＳｏＣ）、１１１・・・常時オン（Ａ／Ｏ）ドメイン、１１２・・・Ａ／Ｏレジスタ、１１３・・・メモリ、１１４・・・セキュアなブートコード、１１５・・・汎用処理ユニット（ＣＰＵ）、１１６・・・特殊な処理ユニット（ＧＰＵ）、１１７・・・ユニット、１１８・・・セキュアな暗号化エンジン、１１９ａ−ｃ・・・システムコントローラ、１２０・・・周辺機器（ＵＳＢ）、１３０・・・周辺機器、１４０・・・周辺機器（ＨＤＤ）、１４５・・・アプリケーション、１５０・・・周辺機器（ＲＡＭ）、１５５・・・低セキュアのブートコード、１６０・・・制御可能な供給ポテンシャルドメイン、１７０・・・制御可能な周波数ドメイン、２１０・・・セキュアなブートキー（ＳＢＫ）のキースロット、２２０・・・セキュアなキー（ＳＳＫ）のキースロット、３００・・・ヒューズ、３１０・・・セキュアな部分、３２０・・・非セキュアな部分、３３０・・・セキュアなブートキー（ＳＢＫ）、３４０・・・セキュアな装置データ、３５０・・・独特な装置識別子（ＵＩＤ）
【図１】
2009252244.tif 000003
【図２】
2009252244.tif 000004
【図３】
2009252244.tif 000005
【図４Ａ】
2009252244.tif 000006
【図４Ｂ】
2009252244.tif 000007
【図４Ｃ】
2009252244.tif 000008
【図４Ｄ】
2009252244.tif 000009
【図５】
2009252244.tif 000010
【図６】
2009252244.tif 000011
【図７】
2009252244.tif 000012
【図８】
2009252244.tif 000013
【図９】
2009252244.tif 000014
【外国語明細書】
2009252244000001.pdf