(57)【特許請求の範囲】
【請求項１】
集積回路のセキュリティマネージャーによって、ルート権限によって署名されたディジタル署名入り指令を受信することと、
前記セキュリティマネージャーによって、前記集積回路のセキュアメモリから前記ルート権限の公開鍵を得ることと、
前記セキュリティマネージャーによって、前記ルート権限の公開鍵を使用して前記指令に関連する署名を検証することと、
前記セキュリティマネージャーによって、前記集積回路の複数の機能のうちのある機能の状態を更新する前記指令を実行することと、
を含み、
前記機能の前記状態を更新することが、前記機能のロック、前記機能のロック解除、又は前記機能の構成のうち少なくとも１つを引き起こし、
前記機能がロック解除されると、前記機能は、前記指令をさらに実行することなくロック解除されたままとなる、方法。
【請求項２】
前記機能の前記状態の更新が、永続的又は非永続的である、請求項１に記載の方法。
【請求項３】
前記指令を実行することが、
１つ又は複数の鍵を前記集積回路の１つ又は複数のコンポーネントに配送することを含み、前記鍵が、前記コンポーネントの暗号化動作、前記コンポーネントのディジタル権利管理動作、前記コンポーネントのパスワード管理動作、又は前記コンポーネントの認証動作のうち少なくとも１つに関係する、請求項１に記載の方法。
【請求項４】
前記指令を実行することが、
１つ又は複数のハードウェア定数を識別することと、前記ハードウェア定数を指定された記憶装置に記憶することとを含み、前記ハードウェア定数が、製品チップ識別子、１つ又は複数のセキュリティ鍵、１つ又は複数のベース鍵、又は誤り訂正データのうち少なくとも１つを含む、請求項１に記載の方法。
【請求項５】
前記指令が、デレゲート権限によって署名され、
前記指令に関連する前記署名を検証することが、
前記ルート権限によって署名されたルート署名入りブロックから前記デレゲート権限のデレゲート許可及び公開鍵を得ることと、
前記デレゲート権限の前記公開鍵を使用して、前記指令に関連する前記署名が有効であることを判断することと、
前記デレゲート許可を使用して、前記指令が許可されることを判断することと、
を含む、請求項１に記載の方法。
【請求項６】
前記指令が暗号化したペイロードに関連し、さらに、
前記セキュリティマネージャーがアクセス可能なベース鍵を使用して、混合鍵を導出することと、
前記混合鍵を使用してトランスポート鍵を導出することと、
前記トランスポート鍵を使用して前記暗号化ペイロードを復号することと、
前記復号ペイロードを機能に配送することと、
を含む、請求項１に記載の方法。
【請求項７】
集積回路であって、
ルート権限の公開鍵を記憶するセキュアメモリと、
ディジタル署名入り指令を受信し、
前記ルート権限の公開鍵を使用して、前記指令に関連する署名を検証し、
前記集積回路の複数の機能のうちのある機能の状態を更新する前記指令を実行するために、
前記セキュアメモリに連結するセキュリティマネージャー（ＳＭ）コアと、
を含み、
前記機能の前記状態を更新することが、前記機能のロック、前記機能のロック解除、又は前記機能の構成のうち少なくとも１つを引き起こし、
前記機能がロック解除されると、前記機能は、前記指令をさらに実行することなくロック解除されたままとなる、集積回路。
【請求項８】
前記ＳＭコアに連結したエクストラクタと、
前記エクストラクタに連結した複数のサブエクストラクタとをさらに備え、前記複数のサブエクストラクタがそれぞれ、前記複数の機能のうち１つにも連結する、請求項７に記載の集積回路。
【請求項９】
前記ＳＭコアが、
前記指令の前記署名を検証する暗号モジュールと、
前記指令を実行する実行エンジンモジュールと、
前記ＳＭコアと前記集積回路のコンポーネントとの通信を促進する通信モジュールと、
前記ＳＭコアの内部記憶装置を管理し、前記セキュアメモリとインタフェースをとるデータ記憶モジュールと、
を備える、請求項７に記載の集積回路。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  現在、システムオンチップの供給業者は同じチップの多くの異なる種類を販売することができ、各種類は特定の用途に合わせて構成される。チップ構成は、１つ又は複数のヒューズを飛ばすか、又は他の方法でチップ上にワンタイムプログラマブルメモリをプログラムすることによって生成することが多い。このタイプのチップ構成は通常、一方向のプロセスであり、打ち消すことができない。構成プロセスの永続性を回避する１つの方法は、ワンタイムプログラマブルメモリ内に、組み合わせて以前の設定を（例えば複数のビットを一緒に非排他的論理和演算して、最終的な構成設定を作成することによって）変更することができる冗長ビット又は予備ビットを追加することである。しかしながら、このタイプの冗長性は融通性に制限があり、追加のヒューズを必要として、これはチップ上で追加の面積を専有する。また、設定に複数のヒューズがあっても、チップを構成するために複数のプログラミングステップを実行する必要性はなくならず、費用は増大する。同様に、構成は現在、チップの供給業者（又はその契約業者）が実行し続けており、業者は複数のヒューズ構成のチップの在庫をかかえることになる。
[0002]  異なる種類の同じチップを備蓄することは非効率的であることが多い。例えば、特定の用途向けに構成された備蓄チップは、過剰生産された場合、又は顧客のチップ構成により変更が必要な場合に無駄になる可能性がある。また、場合によっては、構成したチップの在庫が需要を満たすのに不十分な場合、実現が遅れることがある。さらに、チップ供給業者の現在の構成モデルが、チップ供給業者と下流の顧客との間で実際のビジネス関係及び事業利益の流れの範囲を制限することがある。例えば、現在のモデルが、最初の規模の後でチップを再構成することにより将来の事業利益を生成する能力を制限することがある。下流の顧客が、構成された機能設定を越えた機能を入手したいと考えた場合、現在のチップにはこの機能をロック解除する手段がないことが普通であり、したがって事業収益の流れとして下流で機能を使用可能にする手段を使用する機会がない。
[0003]  さらに、セキュアシステム及びアプリケーションに対する要望が増大している。現在、生産現場でセキュリティ鍵によりセキュアチップと言われるものをプログラムすることが多い。セキュア鍵は、例えば記憶したデータを保護する、ディジタル内容へのアクセスを制御するか、又はトランスクリプションに使用するデータを暗号化／認証するなどの様々な方法で使用することができる。今日、これらの鍵はワンタイムプログラマブルメモリに記憶することができ、これは鍵を直接保持するか、又は様々な機能の派生的鍵である暗号化機能で使用するベース鍵を保持することができる。通常、セキュリティは、安全保護した施設内で鍵装填プロセスを実行することによって提供される。
【図面の簡単な説明】
【０００２】
[0004]  次に、本出願の例示的実施形態を示す添付図面を参照する。
【図１Ａ】[0005]例示的エコシステムを示すブロック図である。
【図１Ｂ】[0006]エコシステム内のセキュリティマネージャー使用可能デバイスの例示的ライフサイクルを示すフローチャートである。
【図２Ａ】[0007]セキュリティマネージャー使用可能チップを有する１つ又は複数のデバイスを構成し管理する例示的オペレーショナルシステムをブロック図の形態で示す。
【図２Ｂ】[0008]セキュリティマネージャー使用可能ＩＣに関連する特徴空間の例示的実施形態のブロック図である。
【図３】[0009]本明細書で述べる方法を実行するためにセキュリティマネージャー使用可能ＩＣを含むシステムの例示的実施形態のブロック図である。
【図４】[0010]セキュリティマネージャーコアの例示的実施形態のブロック図である。
【図５】[0011]ルート権限システムによる署名入りの指令に対してルート署名入りブロックを生成する例示的方法のフローチャートである。
【図６】[0012]セキュリティマネージャーコアによって、図５で生成したルート署名入りブロックを処理する例示的方法のフローチャートである。
【図７】[0013]デレゲート署名入りブロックと関連づけることができるルート署名入りブロックを生成する例示的方法のフローチャートである。
【図８】[0014]デレゲート署名入りブロックを生成する例示的方法のフローチャートである。
【図９Ａ】[0015]セキュリティマネージャーコアによって、図８で生成したデレゲート署名入りブロック及び関連するルート署名入りブロックを処理する例示的方法のフローチャートである。
【図９Ｂ】[0016]セキュリティマネージャーコアによって、ルート署名入りブロックから受信した指令を処理する例示的方法のフローチャートである。
【図１０】[0017]セキュリティマネージャー使用可能ＩＣ内の機能管理の例示的方法のフローチャートである。
【図１１】[0018]ペイロード鍵を伝送するデレゲート署名入りブロックを生成する例示的方法のフローチャートである。
【図１２】[0019]セキュリティマネージャーコアによって、ペイロードを含む１つ又は複数の署名入りブロックを処理する例示的方法のフローチャートである。
【図１３Ａ】[0020]セキュリティマネージャー使用可能ＩＣの設計プロセス中にコンフィギュレータシステムを使用する例示的方法のフローチャートである。
【図１３Ｂ】[0021]チップ開発後にコンフィギュレータシステムを使用する例示的方法のフローチャートである。
【図１４】[0022]セキュリティマネージャー使用可能ＩＣを初期化する例示的方法のフローチャートである。
【図１５】[0023]例示的個別化プロセスをブロック図の形態で示す。
【図１６】[0024]デレゲート権限システムで実行する、セキュリティマネージャー使用可能ＩＣの機能更新の要求を権限付与する例示的方法のフローチャートである。
【図１７】[0025]ルート権限システムで実行する、セキュリティマネージャー使用可能ＩＣの機能更新の要求を権限付与する例示的方法のフローチャートである。
【発明を実施するための形態】
【０００３】
[0026]  次に、添付図面に図示された本発明の例示的実施形態を詳細に参照する。
１．概念
１．１．エコシステムの概要
[0027]  次に図１Ａを参照すると、これは例示的エコシステム１００をブロック図で示す。図１Ａに示すように、システム１００は、集積回路（「ＩＣ」）プロバイダ１０５と、第三者ＩＰプロバイダ１０７と、ＩＣ製造業者１１０と、ＩＰ及び／又はセキュリティ鍵プロバイダ１１５と、セキュリティサービス１２０と、課金及び報告サービス１２２と、製品ベンダ１２５と、デバイス管理者１２７と、エンドユーザ１３０とを含むことができる。簡単にするために、この例示的エコシステムでは、各エンティティを１つのみ示す。実際には、本明細書で述べる原理に一致するエコシステムは、各エンティティを１つ又は複数有することがある（すなわち、同一のＩＣを供給する複数のＩＣ製造業者、同じＩＣ設計を使用する製品を提供する複数の製品ベンダ、及び複数の顧客）。図１Ａに示す幾つかのステップは、幾つかの企業を伴うこともある（例えばＩＣ製造が、ウェーハの製造、初期検査の実行、ウェーハの切断、チップのパッケージングなどに異なる企業及び／又はステージを伴うことがある）。また、場合によっては、幾つかのエンティティ及びその機能を単一のエンティティに含めることができる。例えば、幾つかの企業がＩＣの設計及び製造の両方を実行し、その場合、ＩＣ製造業者１１０及びＩＣプロバイダ１０５は同じエンティティとすることができる。
[0028]  ＩＣプロバイダ１０５は、チップを精算するためにチップの設計をＩＣ製造業者１１０に提供するエンティティである。特に、ＩＣプロバイダ１０５は、製造後に（例えば特定のアプリケーションに合わせて、又は特定の機能を使用可能／使用不能にするために）チップの幾つかの態様を構成できるように、構成可能なＩＣのチップ設計を提供する。例えば、ＩＣプロバイダ１０５は、設計にセキュリティマネージャー（「ＳＭ」）コアを含めるか、又は製造したＩＣがＳＭコアを含むと指定することができる。ＳＭコアを含むＩＣをＳＭ使用可能ＩＣと呼ぶ。特に、ＳＭコアによって、所望の構成及びセキュリティの要望に応じて、ＩＣの１つ又は複数の構成可能な機能（「機能」）をロック又はロック解除する（又は例えばＣＰＵの性能を調節するためにＰＬＬを調整するか、又は機能が使用するために秘密鍵を配送するなどの違う構成にする）ことができる。ＳＭ使用可能ＩＣは、例えば１つ（又は場合によっては複数）のＳＭコア、及び１つ（又は複数の）セキュア永続メモリを含む。以下で詳細に説明するように、ＳＭ使用可能ＩＣは、任意選択で幾つかの他の要素（例えば１つ又は複数のエクストラクタ、１つ又は複数の機能など）、又はそれらの組み合わせを含むことができる。ＩＣプロバイダ１０５は、ＩＣ製造業者１１０に提供するマスクの一部として、ルート公開鍵を含むことができる。ＩＣプロバイダ１０５は、ルート権限として行動することができるセキュリティサービス１２０からルート公開鍵を入手することができる。
[0029]  ルート権限は、ＳＭプログラミング能力を管理するルート権限システムに関連するエンティティであり、１つ又は複数のデレゲート権限に関連する１つ又は複数のデレゲート権限システムに能力のサブセットを割り当てることができる。以下でさらに詳細に説明するように、ルート権限システムはＳＭ使用可能ＩＣの構成を制御することができる。ＳＭ使用可能ＩＣの構成は、例えばＳＭ使用可能ＩＣの機能管理を実行すること、ＳＭ使用可能ＩＣの鍵管理を実行すること、又はそれらの組み合わせを含むことができる。ルート権限システムは、システム１００の他のエンティティによって処理されるＳＭ使用可能ＩＣの機能管理を制御することができる。例えば、ルート権限システムは、暗号化により検証可能な（例えばディジタル署名入り）指令を直接生成して、ＳＭ使用可能ＩＣに関連する機能をロック、ロック解除、又は構成することができる。さらに、ルート権限システムは、ＩＣ製造業者１１０、製品ベンダ１２５、デバイス管理者１２７、エンドユーザ１３０、他のエンティティ、又はそれらの組み合わせによってＳＭ使用可能ＩＣが生成されるように、構成を変更可能にする限定的権限を生成することができる。
[0030]  ルート権限システムは、ＳＭ使用可能ＩＣの鍵管理も制御することができる。例えば、ルート権限システムは、ＳＭコアがペイロード（例えば秘密鍵、又は他の値）をＳＭ使用可能ＩＣの他の部分（ＳＭ使用可能ＩＣで実行されるソフトウェアを含む）に安全に配送することを権限付与することができる。ルート権限システムは、１つ又は複数のデレゲート権限システムがペイロードを安全に配送するのを権限付与することができる。
[0031]  上述したように、ルート権限は、ルート権限システムに関連するエンティティである。したがって、本明細書で述べる実施形態は、セキュリティサービス１２０をルート権限と呼ぶが、他のエンティティがルート権限として行動できることが想定される。例えば、ＩＣプロバイダ１０５、製品ベンダ１２５、又は何らかの他のエンティティである。
[0032]  以上のパラグラフでは、別のエンティティに許可を与えるルート権限について述べている。これらの許可の受容者をデレゲート権限と呼ぶ。場合によっては、デレゲート権限は、ルート権限システムのＳＭプログラミング能力のサブセットを与えられているデレゲート権限システムに関連する。ＳＭプログラミング能力のサブセットは、デレゲート権限システム間で異なることがある。デレゲート権限は、製品ベンダ１２５、ＩＣ製造業者１１０、デバイス管理者１２７、他の何らかのエンティティ、又はそれらの組み合わせでよい。
[0033]  以下で詳細に説明するように、ルート権限システム、１つ又は複数のデレゲート権限システム又はそれらの組み合わせは、システム１００のＳＭ使用可能ＩＣの修正（例えば機能及び鍵管理の操作）を一部（又は全部）制御することができる。
[0034]  ＩＣ製造業者１１０は、ＩＣを製造するエンティティである。以上で説明したように、ＩＣには構成可能なものがあり、したがってチップは、製造後に特定のアプリケーションに合わせて構成することができる。システムオンチップ（「ＳＯＣ」）、特定用途向け集積回路（ＡＳＩＣ）、ＦＰＧＡ、移動無線チップ、及びプロセッサ（例えばＣＰＵ）は、本明細書で述べる実施形態で使用するのに適したＩＣの例である。一般に、機能管理は、別個に使用できる複数の機能を統合するか、又は構成可能な機能を有するか、又はチップのライフサイクルの様々なステージ（例えばデバッグ／検査モードなど）で使用可能／使用不能でなければならない能力を有するチップに、最も適切である。さらに鍵管理用途では、暗号化鍵又は同様の秘密を使用するいかなるチップも、良好な候補となり得る。ＩＣ製造業者１１０は、ＳＭコアを含むＩＣを製造することができる。ＩＣ製造業者１１０は、１つ又は複数のセキュリティ鍵、デバイスＩＤ、機能の初期構成の設定、又はそれらの組み合わせを、製造プロセス、検査プロセス、又はその両方の一部としてＳＭコアに埋め込むことができる。そのために、ＩＣ製造業者１１０は、以下で詳細に説明する第一カスタマイゼーションステージを提供するように装備されている。特に、ＩＣ製造業者１１０は、ＳＭ使用可能ＩＣに対して特定の構成変更をできるように、デレゲート権限になり得る。例えば、複数のプロセッサを包含するＩＣでは、ＩＣ製造業者１１０は、ＳＭ使用可能ＩＣに使用可能なプロセッサの数を設定できるが、各プロセッサのクロック速度は設定できないようにすることができる。図示されていない幾つかの実施形態では、ＩＣ製造業者１１０とＩＣプロバイダ１０５は同じエンティティである。
[0035]  また、ＩＣ製造業者１１０は、製造したＩＣで検査を実行し、それが設計仕様内で作動していることを確認することができる。場合によっては、ウェーハのソートのような検査プロセスは、異なる施設で、及び／又はＩＣ製造とは異なる企業で実行することができ、その場合、「ＩＣ製造業者１１０」というラベルは、これらの役割／ステップの組み合わせを表す。ＩＣ製造業者１１０は、ＳＭ使用可能ＩＣを製品ベンダ１２５に提供する。
[0036]  製品ベンダ１２５は、ＳＭ使用可能ＩＣを１つ又は複数の製品（例えばＳＭ使用可能デバイス）に組み込み、次にこれをエンドユーザ１３０に対して入手可能にする。幾つかの実施形態では、製品ベンダ１２５は、デバイス又はサービス小売業者であり、ＳＭ使用可能デバイスをエンドユーザ１３０に対して直接入手可能にする。他の実施形態では、製品ベンダ１２５はＳＭ使用可能デバイスを、エンドユーザ１３０に分配するために１つ又は複数の第三者デバイス又はサービス小売業者（図示せず）に分配する。
[0037]  製品ベンダ１２５は、ＳＭ使用可能ＩＣの追加のカスタマイゼーションを追加することができる。そのために、製品ベンダ１２５は、ＳＭ使用可能ＩＣに対してある特定の構成変更をできるように、デレゲート権限になり得る。例えば、デレゲート権限として、製品ベンダ１２５のデレゲート権限システムは、ルート権限システムによってある種の能力を可能にすることができる。
[0038]  製品をエンドユーザ１３０に販売した後でも、ＳＭ使用可能ＩＣの機能をさらに構成又は使用可能にすることも可能である。例えば、エンドユーザ１３０及び／又は製品は、製品ベンダ１２５、デバイス管理者１２７、セキュリティサービス１２０、デレゲート権限、ルート権限、又はそれらの組み合わせと調整して、ＳＭ使用可能ＩＣの機能を使用可能にすることができる。例えば、このプロセスは、ネットワーク上で要求を（例えば製品中の無線を使用して、セルラデータネットワークを介して要求メッセージを送信することにより）送信し、要求された構成変化を権限付与するチップ固有のメッセージを（例えば製品中の無線を使用して、セルラデータネットワークからメッセージを受信することにより）受信することを含む。
[0039]  場合によっては、製品ベンダ１２５は、ＳＭ使用可能デバイスにインストールされた１つ又は複数のアプリケーションのアプリケーション作者として行動することもできる。また、製品ベンダ１２５は、アプリケーションに関連する機能を管理するアプリケーションオペレータとして行動することができる。同様に、製品ベンダ１２５は、ＳＭ使用可能デバイスと互換性があるオペレーティングシステムを分配するオペレーティングシステム供給業者として行動することもできる。製品ベンダ１２５は、（モバイルネットワークオペレータなどの）サービスオペレータとして行動することもでき、例えばＳＭ使用可能デバイスに入手可能な１つ又は複数のサービス又は能力を管理する。
[0040]  他の実施形態では、他のエンティティ、１つ又は複数の第三者（図示せず）、又はそれらの組み合わせは、アプリケーション作者、オペレーティングシステム供給業者、アプリケーションオペレータ、又はそれらの組み合わせになり得る。
[0041]  ＩＰ及び／又はセキュリティ鍵プロバイダ１１５は、ＳＭ使用可能ＩＣで使用するセキュリティ鍵を管理する。セキュリティ鍵値は、公開鍵及び秘密鍵を含み、ＩＣ製造業者１１０、セキュリティサービス１２０、製品ベンダ１２５、デバイス管理者１２７、又はそれらの組み合わせに提供することができる。図示されていない幾つかの実施形態では、ＩＰ及び／又はセキュリティ鍵プロバイダ１１５は、第三者ＩＰプロバイダ１０７、ＩＣプロバイダ１０５、又はそれらの組み合わせにもセキュリティ鍵を提供することができる。
[0042]  セキュリティサービス１２０は、エコシステム内でエンティティにより使用することができるセキュリティ鍵の中心分配器（central distributor）として行動することもできる。例えば、セキュリティサービス１２０は、ＩＰ及び／又はセキュリティ鍵プロバイダ１１５から（又は複数のセキュリティ鍵プロバイダから）セキュリティ鍵を入手し、それをシステム１００の他のエンティティに分配することができる。例えば、ＳＭ使用可能携帯電話アプリケーションプロセッサは、独立して動作する及び／又は特定のＩＣプロバイダ１０５に結びついていない多くを含め、複数のＩＰ及び／又はセキュリティ鍵プロバイダ１１５からの鍵でプログラムすることができる。このようなＩＰ及び／又はセキュリティ鍵プロバイダ１１５の例には、電子的支払いシステム、ＤＲＭ／著作権侵害対策システム、アイデンティティシステムなどが含まれるが、それらに限定されない。幾つかの実施形態では、セキュリティサービス１２０はルート権限システムを含むことができ、ＳＭ使用可能ＩＣに対してルート権限として行動する。他の実施形態では、集約とルート権限の役割は別個にすることができる。ルート権限として、セキュリティサービス１２０は、システム１００の１つ又は複数の他のエンティティがデレゲート権限になり、例えばＳＭ使用可能ＩＣに関連するある種の機能をロック又はロック解除する、ＳＭ使用可能ＩＤの一部に（又はＳＭ使用可能ＩＤ上で実行されるソフトウェアに）キーを安全に配送することなどを権限付与することができる。以下で詳細に説明するように、デレゲート権限は、ルート権限により暗号で認可された特権を条件として、ＳＭ使用可能ＩＣにある種の構成変更をすることが権限付与される。
[0043]  課金及び報告サービス１２２は、システム１００内の他のエンティティの幾つか又は全部と連結することができる。場合によっては、システム１００内の１つ又は複数のエンティティが、（例えば付加価値機能を使用可能にするために）ＳＭ使用可能ＩＣのある種の構成設定について料金を請求したいと考えることがある。課金及び報告サービス１２２は、エコシステム内の様々なエンティティによる様々な取引のタイプに関連する料金を追跡する。例えば、エンティティは、１つ又は複数のＳＭ使用可能ＩＣを使用可能又は使用不能にするか、又は１つ又は複数のＳＭ使用可能ＩＣに鍵を配送するために支払いを要求されることがある。課金及び報告サービス１２２は、例えばデレゲート権限システムから電子取引又は監査の記録を受信することによって、デレゲートが実行した取引の数に関する情報を収集する。課金及び報告サービス１２２は、収集した記録に基づき、複数のチップのタイプ及び取引のタイプ（例えば使用可能になった機能の種類）にわたって課金量を集約し、最終的に機能を使用可能にするか、他の取引を実行するエンティティが支払うべき量を計算することができる。同様に、以下で述べるように、課金及び報告サービス１２２は、第三者ＩＰプロバイダ１０７などの第三者が支払うべき量の計算を補助することができる。課金及び報告サービス１２２による課金計算への入力には、実行した取引の数、どの機能を使用可能にしたか、機能を使用可能にした時間の長さなどを含むことができるが、それらに限定されない。幾つかの実施形態では、ルート権限又はデレゲート権限は、ＳＭ使用可能ＩＣ上の機能を使用可能にするか、又は構成する前に支払いを受けるという方針を負わせることができるが、他の場合は、使用可能にした後に課金及び支払いを実行することができる。いずれの場合も、セキュリティサービス１２０は、ルート権限システム及び１つ又は複数のデレゲート権限システムとの通信を介して、実行される取引の数に関する制限を動的に調節することができる。幾つかの実施形態では、課金及び報告サービス１２２は、セキュリティサービス１２０の一部である。他の実施形態では、課金及び報告サービス１２２は、取引の追跡のみを実行することができ、課金及び会計プロセスは別個に実行することができる（又は手作業の場合さえある）。
[0044]  システム１００は、第三者ＩＰプロバイダ１０７（又は上述したように幾つかの第三者ＩＰプロバイダ１０７）を含むことができる。第三者ＩＰプロバイダ１０７は、ＳＭ使用可能ＩＣに統合するために、１つ又は複数の機能又は機能の一部をＩＣプロバイダ１０５に提供することができる。又は場合によっては、第三者ＩＰプロバイダ１０７は、単にＩＣプロバイダ１０５に１つ又は複数の既存の機能又は機能の一部を使用することを許諾することができる。統合した機能は、委譲された能力の範囲内で動作するデレゲート権限又はルート権限によって使用可能にすることができる。幾つかの実施形態では、ＩＰブロックを使用するために第三者ＩＰプロバイダ１０７が補正されるまで、機能は使用可能にならない（例えばロック解除されない）。例えば、課金及び報告サービス１２２の文脈で説明したように、課金及び報告サービス１２２及び／又は第三者ＩＰプロバイダ１０７が支払いを受け取るまで、デレゲート権限システムには機能の起動を権限付与する能力又は権限付与が提供されないことがある。
[0045]  エンドユーザ１３０は、製品（例えばＳＭ使用可能ＩＣを含むデバイス）を使用するエンティティである。エンドユーザ１３０は、例えばＩＣ製造業者１１０、製品ベンダ１２５、デバイス管理者１２７、又は何らかの第三者デバイス又はサービス小売業者からＳＭ使用可能デバイスを購入することができる。
[0046]  幾つかの実施形態では、システム１００はデバイス管理者１２７を含む。デバイス管理者１２７は、ＳＭ使用可能ＩＣに特定の構成変更を加えられるように、デレゲート権限でもよい。これで、エンドユーザ１３０は、デバイス管理者１２７（又はセキュリティサービス１２０など）と調整してＳＭ使用可能ＩＣの機能を使用可能にすることができる。このプロセスは、ユーザ及び／又はデバイスがネットワーク上で要求を送信し、権限付与応答を受信し、応答メッセージの少なくとも一部（この部分は、例えばデレゲート権限を権限付与するセキュリティサービス１２０のルート権限システムからのディジタル署名、及びデレゲート権限として行動するデバイス管理者１２７からのディジタル署名の両方を含む）をＳＭ使用可能ＩＣに提供して、要求した機能を実際に使用可能にすることを含むことができる。要求は、支払い、支払われたかの確認、又は将来支払うという約束を含むことができる。また、幾つかの実施形態では、デバイス管理者１２７は、システム１００内のＳＭ使用可能ＩＣの修正（例えば機能及び鍵管理動作）に対して何らかの直接的又は間接的制御権を有するデバイス又はサービス小売業者でよい。
[0047]  また、図示されていない幾つかの実施形態では、システム１００はデバイス機能管理者又はデバイス鍵管理者を含むことができる。デバイス機能管理者は、ＳＭ使用可能ＩＣを含む（例えば鍵管理動作、機能管理動作、又はそれらの組み合わせを介した）構成変更を権限付与するある種の限定的能力を有するデレゲート権限でよい。
[0048]  また、幾つかの実施形態では、ルート権限はシステム１００の他のエンティティが、検査するためにＳＭ使用可能ＩＣ又はＳＭ使用可能デバイスの１つ又は複数の機能を使用可能にするか、又は部分的に使用可能にすることを安全に許容することができる。例えば、ルート権限はルート権限システムを介して、設定された期間だけ、又は（例えば次にＳＭ使用可能ＩＣを電源投入又はリセットするまでのみ機能を使用可能にするように）電源投入回数だけ、ＳＭ使用可能ＩＣの機能を使用可能に（又は部分的に使用可能に）することができる。同様に、幾つかの実施形態では、デレゲートは、ルート権限によって許可された場合のみ、デレゲート権限システムを介して、検査のためにＳＭ使用可能ＩＣ又はデバイスの機能を使用可能に、又は部分的に使用可能にすることが許容されることもある。
[0049]  以上のエンティティのうち１つ又は複数は、１つ又は複数の通信ネットワークオペレータによって操作された１つ又は複数のネットワークを介して相互に連結することができる。これらのネットワークには、１つ又は複数のネットワーク管理者によって維持できるものもある。
[0050]  次に、図１Ｂを参照すると、これはエコシステム（例えばシステム１００）内のＳＭ使用可能デバイスの例示的ライフサイクル１４０を示す。このライフサイクルは、特定の順序で以下のステップを開示しているが、ステップの少なくとも幾つかは適宜移動、修正、又は削除できることが認識される。
[0051]  ステップ１４２では、ＳＭ使用可能ＩＣを設計する。以下で詳細に説明するように、設計プロセスは、例えばコンフィギュレータ、ＳＭ供給業者から受信したネットリスト、及びハードウェア構成鍵及び定数を生成する手段を使用することができる。例えば、この生成プロセスは、ルート権限システムを含むことができ、例えば幾つかの実施形態では、ルート権限システムは公開鍵暗号システムの鍵対を生成することができ、公開鍵はハードウェア構成としてエクスポートされ、公開鍵は（例えばデレゲートを権限付与するために）ルート権限システムに保持される。ＳＭ使用可能ＩＣの設計は、製造したＳＭ使用可能ＩＣ中に配線することができる１つ又は複数のセキュリティ鍵を含むことができる。ＳＭ使用可能ＩＣの設計は、（例えばステップ１５０、１５５、又はその両方で）製造されたＳＭ使用可能ＩＣ中にプログラムできる１つ又は複数のセキュリティ鍵について記憶できるように構成することができる。
[0052]  ステップ１４５で、ＳＭ使用可能ＩＣの設計に基づいてＳＭ使用可能ＩＣを製造し、検査する。各ＳＭ使用可能ＩＣは１つ又は複数のＳＭコアを有することができ、各ＳＭコアは１つ又は複数の機能を制御することができる。以下で詳細に説明するように、機能は、１つ又は複数のセキュリティ鍵によって権限付与された通りに、１つ又は複数のＳＭ指令、又はそれらの組み合わせを介して変更、使用可能、使用不能、又はそれらの組み合わせをすることができる。また、幾つかの実施形態では、第三者プロバイダ（例えば第三者ＩＰプロバイダ１０７）からの機能又は機能の一部をＳＭ使用可能ＩＣに組み込むことができる。例えば、第三者プロバイダは、大きい画像ファイルを高速で描画するために使用する機能を提供することができるが、最初は使用可能ではない。検査は、ＳＭ使用可能ＩＣの機能を適性に動作しているか確認するために実行することができる。例えば、デレゲート権限は、ルート権限（又はルート権限自体）によって許可された場合、一時的に（例えば固定された時間だけ、及び／又はチップがリセットされるまで）１つ又は複数の機能を使用可能にし、検査を促進することができる。実施形態に応じて、ステップ１４５はＩＣ製造業者１１０、ＩＣプロバイダ１０５、他の何らかのエンティティ（例えば専門の検査設備）、又はそれらの組み合わせによって実行することができる。
[0053]  ステップ１５０で、第一カスタマイゼーションステップを実行する。このステップでは、ＳＭ使用可能ＩＣにデバイス識別子（「ＩＤ」）を割り当て、ルート権限システム、デレゲート権限システム、１つ又は複数の鍵分割、又はベース鍵からの１つ又は複数の鍵で構成することができる。
[0054]  鍵分割は、異なる鍵分割と組み合わせた場合に完全な鍵（例えばベース鍵）を形成する鍵の一部である。鍵分割を使用し、例えばＳＭ使用可能ＩＣのＳＭコアを、いずれも異なる鍵分割のすべてに関する知識がない異なる関係者の異なる鍵分割でプログラムさせることによって、ベース鍵のセキュリティを向上させることができる。機能を組み合わせることによる鍵分割の組み合わせは、ＳＭコア内で実行され、ベース鍵を提供する。プログラムする関係者はいずれも、鍵分割のすべてを知っていないので、単一の施設が妥協しても、必ずしもベース鍵を妥協しない。
[0055]  例示的な構成プロセスを以下でさらに詳細に説明する。第一カスタマイゼーションスステージでは、他のパラメータも設定することができる。例えば、ＳＭ使用可能ＩＣが複数のプロセッサを含む場合、第一カスタマイゼーションステージは、製品ベンダ１２５が最初に使用できるプロセッサの数を設定することができる。又は、例えば第一カスタマイゼーションステージは、軽負荷で過熱を阻止するか、又は検査１４５中に決定された最高速度と一致するように各プロセッサの最高クロック速度を設定することができる。例えば、このような限界を記憶することで、不正直な分配器が低速部品を高速の等級と不正に述べることを安全に防止することができる。図示されていない代替実施形態では、ステップ１５０がなく、代わりに第一カスタマイゼーションステージをステップ１５５の一部として実行する。
[0056]  ステップ１５５で、第二カスタマイゼーションステージを実行する。例えば、同じ系列のＳＭ使用可能ＩＣを、異なる製品ベンダの要件に合うようにさらに構成することができる。多くの場合、ＳＭ使用可能ＩＣを特別に構成したいと考える製品ベンダもいる。このカスタマイゼーションステージ中に、ＳＭコアの機能の状態を更新して、各製品ベンダのニーズに合わせてＳＭ使用可能ＩＣをカスタマイズすることができる。機能の状態の更新は、ＳＭ使用可能ＩＣに関連する１つ又は複数の機能を使用不能、使用可能、又は変更すること、さらに追加の鍵を装填すること、又はそれらの組み合わせを含むことができる。この第二カスタマイゼーションステージは、例えばＩＣ製造業者１１０、ＩＣプロバイダ１０５、製品ベンダ１２５、他の何らかのエンティティ、又はそれらの組み合わせによって実行することができる。費用問題で、カスタマイゼーションステップの数は可能な限り少なく維持することが通常は好ましいが、３つ以上又は２つ未満のカスタマイゼーションステージを使用できるアプリケーションもある。２つのカスタマイゼーションステージ（１５０及び１６０）は、例えばＩＣのウェーハレベルの検査及びパッケージレベルの検査で個々に実行できることに留意されたい。
[0057]  ステップ１６０では、製品製造プロセス中にＳＭ使用可能ＩＣをデバイスに組み込み、ＳＭ使用可能デバイスを生成する。ＳＭ使用可能ＩＣの機能の状態は、この時点でも更新することができる。例えば、製品ベンダは、機能の組み合わせを使用可能にし、ＳＭ使用可能デバイスの異なる製品ラインを生成することができる。このプログラミングプロセスは、（例えば最終的に正確な記録が課金及び報告サービス１２２に提供されることを確実に行うために）セキュリティサービス１２０から発行されたハードウェアセキュリティモジュールを使用して安全保護することができる。この方法で、製品ベンダ１２５は、ＩＣプロバイダ１０５からの単一のチップタイプのこの在庫に調達して保持するだけでよく、次にこのチップは、製品の組立中に設定される異なる構成の複数の製品に使用することができる。課金及び報告サービス１２２は、（例えばＩＣプロバイダ１０５が、チップの構成に応じて各チップに対して適切な量を集金できるように）使用可能になっている能力に対して支払われることを確実に行う働きをする。鍵は、ステップ１６０の一部としてＳＭコア中にプログラムすることもできる。例えば、製品ベンダは、各ＳＭ使用可能デバイスの一意キー（製品ベンダ１２５は知られているがＩＣプロバイダ１０５には知られていないキーなど）をプログラムすることができる。
[0058]  ステップ１６５で、ＳＭ使用可能デバイスを分配する。ＳＭ使用可能デバイスは、例えば別の製品ベンダ、再販業者、エンドユーザ１３０、デバイス管理者１２７、又はエコシステムの他のエンティティに分配することができる。
[0059]  ステップ１７０で、ＳＭ使用可能デバイスのインフィールド管理を実行することができる。（製品ベンダを出たＳＭ使用可能デバイスは、インフィールドと言われる。これは必ずしもエンドユーザの手中にあることと同義ではなく、例えば携帯電話キャリアのオペレータは、エンドユーザ１３０に配送する前に電話のカスタマイゼーション又は準備作業を実行することができる。）インフィールド管理は、ＳＭ使用可能デバイスの機能状態を更新するために要求を受信することを含むことができる。例えば、要求を受信して、ＳＭ使用可能ＩＣの特殊な音響コンポーネントを使用可能にすることができる。このような要求は、例えばエンドユーザ１３０又はルート権限に要求を送信するデバイス自体、又は適切に権限付与されたデレゲート権限によって開始することができる。これで、インフィールド管理は１つ又は複数の権限付与及び／又はセキュアキーをＳＭ使用可能デバイスに送信することを含む。以下で詳細に説明するように、セキュア鍵配送及び機能管理は、ＳＭ使用可能デバイスと通信しているルート権限システムを介してルート権限によって、又は委譲したＳＭプログラミング能力内で行動し、ＳＭ使用可能デバイスと通信しているデレゲート権限システムを介してデレゲート権限によって実行することができる。応答を受信すると、ＳＭ使用可能デバイスのソフトウェアが、応答の一部（ルート権限及び／又はデレゲート権限からの暗号化権限付与を含む）をＳＭコアに提供し、これは要求された動作（例えば機能の構成、キーイングなど）を実行する前に権限付与が特定のデバイスに対して有効であることを検証する。
[0060]  単独又は他のエンティティと連携して行動する上述のエンティティのいずれも、上述した更新、管理、及び監査メッセージを要求、生成、キャッシュ、送信、又は修正して、ＳＭ使用可能デバイスの鍵及び機能を制御することができる。デバイスのライフサイクルの様々なポイントで役割を有するこれらのエンティティはそれぞれ独立して動作することができ、ＳＭ使用可能デバイス又はデバイスと相互動作するインフラストラクチャの様々な程度の所有権を有することができる。ある種の鍵又は機能の配備は、支払い、監査、又は他の取引の構成を含むことができ、ＳＭコア活動の促進、ある種の動作を実行する要求、ＳＭコアメッセージを公式化又は解釈するプロセス、前記メッセージの通信又は記憶、権限付与動作は、上記エンティティのうち１つ又は複数が実行することができる。
２．セキュリティマネージャーシステムのアーキテクチャ
[0061]  次に図２Ａを参照すると、これは１つ又は複数のＳＭ使用可能デバイスを構成し管理する例示的オペレーショナルシステム２００をブロック図で示す。システム２００は、ネットワーク２０５によって動作可能な公衆陸上移動網（ＰＬＭＮ）２１０、ルート権限２１５、ルート権限システム２１７、デレゲート権限２２０、デレゲート権限システム２２２、ＩＣプロバイダ１０５、ＳＭ使用可能デバイス２４０、２４５、２５０、２５５、及び２６０、ＳＭ使用可能ＩＣ２６５、無線アクセスポイント２７５、コンフィギュレータシステム２８０、及び追加のエンティティ２８７のうち幾つか又はすべてを含むことができる。
[0062]  ネットワーク２０５は例えばインターネット、イントラネット、ローカルエリアネットワーク、広域ネットワーク、キャンパスエリアネットワーク、メトロポリタンエリアネットワーク、エクストラネット、プライベートエクストラネット、２つ以上の連結した電子デバイスの任意のセット、又は以上又は他の適切なネットワークのいずれかの組み合わせとすることができる。ネットワーク２０５はＰＬＭＮ２１０と通信することもでき、これは無線広域ネットワーク（ＷＷＡＮ）、又は場合によってはセルラネットワークとも呼ばれる。簡単さを期して、ネットワーク２０５は単一のエンティティとして図示されているが、複数のネットワークが存在し得ることが可能である。例えば、プライベートエクストラネットは、図２Ａの他のエンティティがインターネットによって接続されている場合でも、ＩＣプロバイダ１０５及びルート権限２１５を接続することができる。
[0063]  ルート権限２１５は、ＳＭプログラミング能力を管理し、能力のサブセットを１つ又は複数のデレゲート権限２２０に割り当てることができるエンティティ（例えばセキュリティサービス１２０）である。ルート権限２１５は、ＳＭ使用可能ＩＣ２６５及びＳＭ使用可能デバイス２４０、２４５、２５０、２５５、及び２６０を管理する暗号化鍵を含む（又は他の方法でアクセス権を有する）ルート権限システム２１７を伴う。ルート権限システム２１７は、１つ又は複数のルート署名入りブロック（「ＲＳＢ」）を生成するように構成される。以下で詳細に説明するように、ＲＳＢは１つ又は複数のＳＭ指令、指令テンプレート、１つ又は複数のデレゲート許可、１つ又は複数の鍵（例えばデレゲート公開鍵）、又はそれらの組み合わせを含むことができる。ＲＳＢは、ＳＭコアの公開鍵に対応するルートプライベート鍵（例えばＲＳＡプライベート鍵）を使用して、ルート権限システム２１７によって署名された少なくとも１つのディジタル認定を含む。ルート権限システム２１７は、１つ又は複数のＲＳＢ又は他のデータをコンフィギュレータシステム２８０、ＳＭ使用可能ＩＣ２６５、デレゲート権限システム２２２、ＳＭ使用可能デバイス（例えば２４０、２４５、２５０、２５５、又は２６０）、１つ又は複数の他のエンティティ２８７、電子記憶媒体（図示せず）、又はそれらの組み合わせに提供するように構成することができる。また、ルート権限システム２１７は、ルート権限システム２１７のユーザによって命令された場合にＲＳＢを提供するように構成することができる。ルート権限システム２１７は単一のコンピュータに実現するか、場合によっては地理的に分散した複数のコンピュータ（例えば閾値署名システムの鍵共有を含み、ディジタル署名を計算するために複数の鍵共有からの協働が要求される）に分配することができ、
[0064]  以下で詳細に説明するように、ルート権限システム２１７は、１つ又は複数のデレゲート権限システム２２２に特権を委譲するように構成することができる。ルート権限システム２１７は、１つ又は複数のコンフィギュレータシステム２８０にシステム及びネットリスト鍵定数を生成するように構成することもできる。また、ルート権限システム２１７は、カスタマイゼーションプロセス（以下で説明）中に使用されるマスタ鍵を管理するように構成することができる。ルート権限システム２１７は、検査ベクタ及び他の値を生成して、ＳＭコアの統合及びＡＳＩＣ製造を補助するように構成することもできる。
[0065]  幾つかの実施形態では、ルート権限システム２１７は、能力を委譲して追加のデレゲートを生成するように構成することができる。この実施形態では、第一デレゲート権限システムは、１つ又は複数の第二デレゲート権限システムを生成するように構成することができ、これはそれぞれが第一デレゲート権限システムのＳＭプログラミング能力のサブセットを有する。（制限がある場合に）デレゲートのレベルの最大数は構成可能なオプションとすることができる。簡単化した実施形態は、デレゲート権限のＳＭコアのサポートを省略し、代わりにすべてのタスクのルート秘密鍵を使用することができる（例えばデレゲート権限として働くエンティティが、ルート署名用鍵を含む署名用デバイスを有する、及び／又はネットワーク上でこのようなデバイスと対話する）。
[0066]  ルート権限システム２１７は、１つ又は複数の耐タンパ署名モジュールを含み、追加のセキュリティ及び／又は性能を提供することができる。デレゲート権限システム２２２は、ルート権限システム２１７の権限のサブセットのみを実行するためにルート権限システム２１７によって通常認可される権限付与である。ルート及びデレゲート権限システム２１７及び２２２の特権ステージは、例えば暗号化鍵、署名ソフトウェアによって強制された制約、オペレータの方針、及び耐タンパ署名モジュール内の方針によって統制される。
[0067]  システム２００は、複数のデレゲート権限２２０を含むことができる。デレゲート権限２２０は、デレゲート権限システム２２２を伴うエンティティである。デレゲート権限システム２２２には、ルート権限システム２１７によってＳＭプログラミング能力のサブセットが与えられている。デレゲート権限２２０の例には、製品ベンダ１２５、ＩＣ製造業者１１０、デバイス管理者１２７、サービスオペレータ、小売業者、（例えば図１Ａに関して説明したような）他の何らかのエンティティ、又はそれらの組み合わせを含めることができる。
[0068]  デレゲート権限システム２２２は、ルート権限システム２１７から委譲されたある種の能力（例えば鍵管理動作、機能管理動作、又はその両方の一部）を有することができる。これらの能力は、積極的権限付与のセットとして、又は制約のセットとして伝達することができる。例えば特権は、ルート権限システム２１７、デレゲート権限システム２２２によって、権限システムによってどの署名入りメッセージ（例えば、署名入りブロック）が提供されるかに対する制御、権限システムによって使用される署名鍵の調整、権限システムの１つによって署名することができるペイロードの特定のタイプの調整、ＳＭコアに伝達することができるメッセージの通信路／宛先及びタイプの調整、又はそれらの組み合わせを介して伝達し、制限することができる。委譲することができる例示的特権には、ある種のハードウェア能力を使用可能又は使用不能にする、性能の設定又は他の値を調節する、ある種の外部インタフェースの使用を許容する、ある種の動作モードの使用を許容する、望ましい検査モード（例えば制御診断及びデバッグモード）を使用可能又は使用不能にする、特定のモード又は機能をいつアクティブにするか（例えば製造プロセス中にのみアクティブである）を制御する能力、ＳＭ使用可能ＩＣの機能のある種の構成設定の値を調節する、１つ又は複数の鍵暗号化鍵を導出及び／又は使用する、ある種のＳＭ使用可能ＩＣが使用する鍵を暗号化する、ＩＣサブコンポーネントに鍵を供給する、ＳＭ使用可能ＩＣの構成を全体的に調節する、ＳＭコアがアクセス可能な状態情報を監査する、鍵／鍵分割をプログラムする、インフィールドＳＭ使用可能ＩＣで診断活動を実行する、プロセスの変動を補償するためにアナログ回路を較正又は調整する、特定の製品の入力クロック及び所望の動作周波数に合わせてＰＬＬを構成する、無線の出力及び周波数を調節する、内部熱フェールセーフによって強制される限度を構成する（熱限度は、様々な製品で使用されるパッケージング及び冷却解に基づいて変動することがある）能力、電池充電回路を構成することなどが含まれる。
[0069]  ルート権限システム２１７によるデレゲート権限システム２２２への権限付与は、デレゲート権限システム２２２の権限付与に対する制限も含むことができ、それにはデレゲート権限システム２２２が構成を（例えばＳＭコアに機能の構成データを不揮発性／一回書き込みメモリを保存するように指示することによって）永続的に、又は揮発性で構成できるか、又は権限付与を単一のＩＣに、又は特定のクラスに、又はＩＣのグループに結合すべきか、又は権限付与を（権限付与が再使用されるのを防止するために）乱数発生器状態に結合すべきかが含まれるが、それらに限定されない。
[0070]  上述したように、機能設定は簡単なバイナリのオン／オフ設定に限定されない。例えば、構成の変更に権限付与を要求するためにデレゲート権限システム２２２又はルート権限システム２１７を使用することが望ましくなる課題（例えば、セキュリティ、信頼性、責任など）があることがある。例えば、ＰＬＬを誤って構成するか、不正確なアナログ較正を使用すると、ＳＭ使用可能ＩＣが誤動作することがあり、したがってＰＬＬの設定はＳＭコアによって安全保護することができる。
[0071]  以下で詳細に説明するように、デレゲート権限システム２２２は１つ又は複数のデレゲート署名入りブロック（「ＤＳＢ」）を生成するように構成される。デレゲート権限システム２２２は、ＤＳＢをコンフィギュレータシステム２８０、ＳＭ使用可能ＩＣ２６５、ルート権限システム２１７、ＩＣプロバイダ１０５、ＳＭ使用可能デバイス（例えば２４０、２４５、２５０、２５５、又は２６０）、電子記憶媒体（図示せず）、１つ又は複数のエンティティ２８７、又はそれらの組み合わせに提供するように構成することができる。また、デレゲート権限システム２２２は、デレゲート権限システム２２２のユーザによって命令された場合にＤＳＢを提供するように構成することができる。１つ又は複数のエンティティ２８７は、デレゲート権限又はルート権限ではないが、それでもＲＳＢ、デレゲート署名入りブロック（「ＤＳＢ」）、又はそれらの組み合わせを受信できるエンティティである。例えば、幾つかの実施形態では、デバイス管理者１２７、ＩＰ及び／又はセキュリティ鍵プロバイダ１１５、エスクロウサービスプロバイダなどは、デレゲート権限でなくてもよいが、それでもＲＳＢ、ＤＳＢ、又はそれらの組み合わせを受信することができる。
[0072]  デレゲート権限システム２２２は、セキュリティ鍵（例えばデレゲートプライベート鍵、ＡＥＳ鍵、又はその両方）のうち１つ又は複数を記憶するように構成された耐タンパ署名モジュール（図示せず）を含むことができる。例えば、耐タンパ署名モジュールは、スマートカード又はハードウェアセキュリティモジュール（「ＨＳＭ」）とすることができる。
[0073]  幾つかの実施形態では、デレゲート権限システム２２２は追加のデレゲートを生成する能力を有する。このような実施形態では、ＳＭプログラミング能力を提供するシステムに対して、現在保有しているより多くのＳＭプログラミング能力を委譲することを禁止することができる。例えば、ルート権限システム２１７が、ＳＭプログラミング能力を追加のデレゲート権限システム（図示せず）に割り当てる能力とともに、ＳＭプログラミング能力Ａ、Ｂ、及びＣのみをデレゲート権限システム２２２に提供する場合、デレゲート権限システム２２２はＳＭプログラミング能力Ｄをさらに提供することができないが、許可ＣがなくてもＡ及びＢを委譲することができる。デレゲート権限システム２２２は単一のコンピュータに実現することができるか、場合によっては複数のコンピュータに分散することができる。分散したデレゲートは、上述したように閾値署名を使用することができる。デレゲート権限システム２２２は、信頼性及び性能のために複数の冗長及び／又はクラスタ状コンポーネントも含むことができる。
[0074]  また、幾つかの実施形態では、ルート権限システム２１５、デレゲート権限システム２２２、又はその両方は、１つ又は複数の電子記憶媒体（図示せず）に署名入りブロック（例えばＲＳＢ、ＤＳＢ）を記憶するように構成することができる。電子記憶媒体は、例えば揮発性（例えばＳＲＡＭ、ＤＲＡＭ、又は他の半導体メモリ）又は不揮発性（例えばハードディスク、Ｒ／Ｗ光ディスク、フラッシュドライブ）、又はそれらの組み合わせとすることができる。ＲＳＢ及び／又はＤＳＢはＳＭデバイス内に記憶することもできる（例えばデバイスがリセットされるまでＲＳＢ／ＤＳＢ対のみが機能を構成する場合、製品のリセット毎に構成をロードする必要があることがある）。
[0075]  システム２００は、幾つかのＳＭ使用可能デバイス、例えばＳＭ使用可能デバイス２４０、２４５、２５０、２５５、及び２６０を含むことができる。ＳＭ使用可能デバイス２４０、２４５、２５０、２５５、及び２６０は、例えばスマートフォン、タブレット、ネットブック、デスクトップコンピュータ、セットトップボックス、モバイルデバイス、ラップトップコンピュータ、ディジタルビデオレコーダ、ペイＴＶセットトップボックス、自動車、製造機器、ディジタル及びビデオカメラ、バッテリ、周辺機器を確証するデバイス、ビデオゲームのユーザインタフェース及び他のユーザインタフェースなどとすることができる。図２Ａの例示的システムは複数のＳＭデバイスがある状態で図示されているが、システムには１つ又は任意の数のＳＭ使用可能デバイスを実現することができる。ＳＭ使用可能デバイス２４０、２４５、２５０、２５５、及び２６０は、ルート権限システム２１７からの署名又は他の権限付与を確認し、次にルート権限システムがデレゲート権限システム２２２に権限付与することができる。また、ＳＭ使用可能デバイス（例えばＳＭ使用可能デバイス２４０、２４５、２５０、２５５、及び２６０）とルート権限システム２１７、デレゲート権限システム２２２、又はその両方との連結は一時的でよい。例えば、連結はＳＭ使用可能ＩＣの動作を修正するために必要な時間だけ存在することができる。ＳＭ使用可能デバイス２６０及びＳＭ使用可能ＩＣ２６５の権限付与は、ルート権限システム２１７又はデレゲート権限システム２２２によって生成し、１つ又は複数のデバイステスタ（図示せず）、プログラミングフィクスチャ（図示せず）、又は他の中間体（図示せず）を介して配送することができる。
[0076]  デバイステスタは一般に、ＩＣの機能を検査するように構成される。特にＳＭ使用可能ＩＣの場合、デバイステスタは追加的にプログラム情報（例えば鍵、デバイスＩＤなど）を（例えばプログラミング指令をＳＭコアに供給することによって）ＳＭ使用可能ＩＣ中に構成することができる。デバイステスタ又はプログラミングフィクスチャは、デバイス識別情報及び構成情報を含むデバイス及びそのＳＭコアに関する情報をデータベースに記録することもできる。各デバイステスタは、１つ又は複数のＳＭ使用可能デバイスをルート権限システム、デレゲート権限システム、又はその両方に連結するように構成することができる。ある範囲の機能又は能力を有することがあるシステム又はデバイスは、ＳＭ使用可能ＩＣに使用するのに理想的に適している。
[0077]  ＳＭ使用可能デバイスは１つ又は複数のＳＭ使用可能ＩＣ（例えば２６５）を含むことができる。同様に、ＳＭ使用可能ＩＣ２６５は、例えば１つ又は複数のＳＭコア、及び１つ又は複数のセキュアメモリを含むことができる。以下で詳細に説明するように、ＳＭ使用可能ＩＣは任意選択で、他の何らかの要素（例えば１つ又は複数のエクストラクタ、１つ又は複数の機能を制御する出力など）、又はそれらの組み合わせを含むことができる。以下で説明するように、鍵管理又は機能管理動作を介してＳＭ使用可能ＩＣ２６５にある種の修正を加えることができる。
[0078]  ＳＭ使用可能デバイス２４０、２４５、２５０、２５５、及び２６０は、ＰＬＭＮ２１０を通してセルラ通信するように装備する、無線アクセスポイント２７５を使用してＷｉ−Ｆｉ通信するように装備するか、又はネットワーク２１０を使用してセルラ通信とＷｉ−Ｆｉ通信の両方を実行できるようにするか、又はその任意の組み合わせを実行することができる。無線アクセスポイント２７５は、ＩＥＥＥ８０２．１１仕様のうち１つに従って動作するＷＬＡＮに構成することができる。例えば、ＳＭ使用可能デバイス２５０は、無線アクセスポイント２７５を使用してネットワーク２０５に無線連結し、ＳＭ使用可能デバイス２４０はＰＬＭＮ２１０を介してネットワーク２０５に連結する。ＳＭ使用可能デバイス２４０、２４５、２５０、２５５、及び２６０が供給することができる他の通信インタフェースの例には、イーサネット、ＪＴＡＧ、シリアル／ＵＳＢ、Ｉ２Ｃなどが含まれる。
[0079]  ＳＭ使用可能デバイス２４０、２４５、２５０、２５５、及び２６０は、プログラミング前には同一であったＩＣを含む場合でも、異なるように構成することができる。消費者の電子機器では、（例えば同じマスクセットから製造される）同様のシリコン又はＩＣを広範囲の製品（例えば、ハイエンドの製品とローエンドの製品の両方）で使用することができ、性能の違いは少なくとも部分的に構成によって制御される。機能が豊富な製品は、例えば先進の音響能力（例えばサラウンドサウンド）、複数のＨＤビデオストリーム、多数及び多様な入力及び出力、ケーブル又は衛星又は無線特定モデム及び変換器、様々な同調器などを含む複数のケーブルプロバイダの支援、ピクチャインピクチャなどの表示機能、Ｗｉ−Ｆｉ支援などを有することができる。同様に、スマートフォンに使用するように意図されたＳＭ使用可能ＩＣは、ＧＰＳ、様々な無線ネットワークラジオプロトコル、Ｗｉ−Ｆｉ、近接場通信に基づく金融取引、ブルートゥース又は他の無線周辺インタフェース、無線ビデオサービス、ＨＤビデオ支援、無線ビデオインタフェース、追加の外部ビデオインタフェース、カメラ及びセンサの多数で様々な解像度、様々な画面サイズ及び解像度の支援、触覚、グラフィックス及びビデオ強調及び加速などの能力の機能で管理された支援を含むことができる。ＳＭ使用可能ＩＣのＳＭコアを使用して、例えば入手可能又は使用可能なメモリなどのシステム資源のサイズ及び性能、又は入手可能なプロセッサの速度及び数を管理することができる。図示されていない幾つかの実施形態では、ＳＭ使用可能デバイス（例えば２４０、２４５、２５０、２５５、及び２６０）は、動作可能な状態でコンフィギュレータシステム２８０に連結することもできる。使用していない機能のＩＰ認可費用を削減する、非可動又は未検査のシリコン区域を使用可能にする、ハイエンドの部品の部品再生修理品の販売を回避する、セキュリティのリスクを生じるようなモード／設定を使用不能にするなど、特定のチップ上で特定の機能を使用不能にしなければならない多くの理由があることがある。
[0080]  デレゲート権限２２０（例えばＩＣプロバイダ１０５又はＩＣ製造業者１１０）は、コンフィギュレータシステム２８０から構成データを受信することができる。コンフィギュレータシステム２８０によって生成されたデータは、特定の機能又は鍵のアドレス指定方法についてデレゲート権限２２０に通知することができる。
[0081]  例示的実施形態では、ＳＭコアの特徴空間は、ＳＭ使用可能ＩＣの特定の機能又は構成の態様を制御する値を含むメモリに記憶されたアドレス空間である。図２Ｂは、ＳＭ使用可能ＩＣに関連する特徴空間２８５の例示的実施形態のブロック図である。特徴空間２８５は１つ又は複数の値２９５を含み、それぞれ関連するアドレス２９０を有する。例えば「ＧＰＳラジオ使用可能」という値は、特徴空間のアドレス０に割り当てることができる。多ビットＰＬＬ構成値などの機能アドレス空間の他の値は、複数のビット（及び対応するアドレス）に広がることができる。
[0082]  幾つかの実施形態では、特徴空間２８５の値のうち１つ又は複数が、ＳＭ使用可能ＩＣの他の機能ではなくＳＭコア自体に関連することがある。このような特徴空間値は内部機能として知られる。例えば、内部機能は、ある種のベース鍵が使用するために入手可能であるか制御すること、デバイスに関する情報（製品製造業者のＩＤ、製品を販売した地理的地域など）を伝送することなどができる。これらの内部機能を使用して、（例えば１つの地理的地域のデバイスに意図された権限付与が、別のデバイスでは働かなくなるように）権限付与を制御することができる。
[0083]  内部機能はアドレス可能であり、デバイス要素の制御に使用される機能と同様の方法で制御される。内部機能を使用して、より高レベルの特権又は機能状態を提示することができ、これはデバイスの要素に指示するさらに特定のＳＭコア出力にマップされる。例えば、内部機能は１から７の数値の速度等級を表し、ＳＭコア出力は、速度等級にマップされる、より多数のＰＬＬクロック制御設定を設定する制御信号を含む。この方法で、後述するように、数値の速度等級設定は、特定の速度等級に制限された動作を有するＳＭコア指令を形成する条件として使用することができる。別の例では、内部機能をＳＭコア内で使用して、発行されたグループ識別子、デバイス識別子、又はデバイスがある種のアイデンティティによってパッケージング、製造、又は販売されている事実を追跡することができる。この例では、製造エンティティは、その製造ＩＤを内部機能内にプログラムする許可を得て、デレゲート権限２２０になることができる。ＳＭコア指令は、内部機能を解釈し、その結果を使用して、ＳＭコアが他の機能又は鍵を管理する方法を制御することができる。例えば、ＳＭコアは、特定のネットワークオペレータによって操作されるデバイス、又は小売前の状態にあるデバイスのみに、ある種の鍵を出力するか、ある種のデバッグ設定を許可することしかできない。
[0084]  図２Ａに戻ると、コンフィギュレータシステム２８０は、デバイスに特定の鍵をＳＭコア鍵インタフェースにマップするように構成することもできる。コンフィギュレータシステム２８０は、これらの設定及び構成を管理するために、チップ開発中及びその後の両方で使用することができる。
[0085]  コンフィギュレータシステム２８０は、１つ又は複数のコンフィギュレータ入力ファイル、ハードウェア（「ＨＷ」）定数、又はそれらの組み合わせを受信し、それを処理して１つ又は複数のエクストラクタハードウェア定義、１つ又は複数のサブエクストラクタハードウェア定義、及びＩＣ構成マップを生成するように構成することができる。生成された定義は、例えばＳＭ使用可能ＩＣのコンポーネントを記述するベリログモジュールである。１つ又は複数のコンフィギュレータ入力ファイルは、ＳＭ使用可能ＩＣの特定の構成を定義する、１つ又は複数のセキュリティ鍵及びそれに関連するＳＭ使用可能ＩＣ上の宛先、ＳＭコアが管理する機能の名称及びアドレスなどのリストアップすることなどを実行することができる。例えば、１つ又は複数のコンフィギュレータ入力ファイルは、名前を付けた機能の信号、構成ビット、構成ビットのグルーピング、セキュリティ鍵バス出力、セキュリティ鍵バス属性、セキュアメモリマッピング属性、又はそれらの組み合わせのようなことを指定するように構成することができる。コンフィギュレータシステム２８０が管理して、ハードウェアに埋め込むことができる（例えばシリコンに固定し、同じマスクで作成された全チップに共通である）ハードウェア定数の例には、例えばチップ製品ＩＤ、ルート権限からの１つ又は複数の鍵（例えばルート権限システムの公開鍵）、デレゲート権限からの１つ又は複数の鍵、１つ又は複数のベース鍵、１つ又は複数の追加のセキュリティ鍵、誤り訂正データ、機能制御のデフォルト値などが含まれる。
[0086]  生成されたエクストラクタハードウェア定義は、ＩＣ設計で使用して、ＳＭコアから様々なサブエクストラクタまでバス出力の経路指示をする。サブエクストラハードウェア定義は、ＩＣ設計で使用して、１つ又は複数のコンフィギュレータ入力ファイルで指定されているように、エクストラクタから名前付き機能及び鍵まで特徴空間ビットをマップする。エクストラクタハードウェア定義及び任意のサブエクストラハードウェア定義を使用して、エクストラクタ及びサブエクストラクタを含むＳＭ使用可能ＩＣの設計を生成する。
[0087]  コンフィギュレータシステム２８０は、構成の変化を追跡し、既存の回路設計レイアウトの修正を最小化するために使用することができる状態キャッシュを使用するように構成することもできる。状態キャッシュは、例えばマップファイル、ＩＣ構成マップなどとすることができる。幾つかの実施形態では、状態キャッシュの更新にマップファイルを使用する代わりに、以前の出力を再度読み取って状態キャッシュを実現するようにコンフィギュレータ２８０を構成する。
[0088]  幾つかの実施形態では、コンフィギュレータシステム２８０は、１つ又は複数の指令マッピングファイル、１つ又は複数のファームウェアマッピングファイル、及び１つ又は複数の文書化ファイルを追加で生成するように構成することができる。指令マッピングファイルは、例えばＳＭ使用可能ＩＣによって理解可能な形態に指令をマップするために使用するファイルである。ファームウェアマッピングファイルは、ソフトウェア開発に必要な定義及び構造を含むファイル（例えばヘッダ及びソースファイルなど）である。文書化ファイルは、ＳＭ使用可能ＩＣの設計の概観を提供する。また、文書化ファイルは、ソフトウェアコンポーネントの設計に使用する環境及び構造の原理を含むことができる。文書化ファイルは、以下のフォーマット、すなわち、ＸＭＬ、ＨＴＭＬ、テキスト、ＰＤＦ、マイクロソフトのＷＯＲＤなどのうち１つ又は複数とすることができる。
[0089]  コンフィギュレータシステム２８０は、１つ又は複数のＳＭ使用可能ＩＣ２６５の生産に使用することができる。図示されていない幾つかの実施形態では、コンフィギュレータシステム２８０は、ＳＭ使用可能デバイス２４０、２４５、２５０、２５５、及び２６０のうち１つ又は複数の生産に使用することができる。コンフィギュレータシステム２８０は１つ又は複数のプロセッサ（図示せず）、メモリ（図示せず）、及びデータインタフェース（図示せず）を含むことができる。コンフィギュレータシステム２８０は、単一のコンピュータ上に実現することができるか、又は場合によっては複数のコンピュータに分散させることができる。
[0090]  図３は、本明細書で述べる方法を実行するためにＳＭコアを含むシステム３００の例示的実施形態のブロック図である。システム３００はＳＭコア３０５、セキュアメモリ３１０、エクストラクタ３２０、バス３６０、プロセッサ３５５、エクストラクタインタフェース３７５、鍵インタフェース３７６、構成値インタフェース３７７、ホストメモリ３７０、機能３２５、３３０、及び３３５、サブエクストラクタ３４０、３４５、及び３５０、レジスタインタフェース３５８、テスタインタフェース３６５、又はそれらの組み合わせを含むことができる。ＳＭ使用可能ＩＣはＳＭコア３０５及びセキュアメモリ３１０を含み、任意選択でＳＭシステム３００に示した他の要素（例えばエクストラクタ３２０、バス３６０、プロセッサ３５５、エクストラクタインタフェース３７５、サブエクストラクタ３４０、３４５、及び３５０、鍵インタフェース３７６、構成値インタフェース３７７、ホストメモリ３７０、機能３２５、３３０、及び３３５など）のうち幾つか（又は全部）を含むことができる。図３には各コンポーネントが１つしか図示されていないが、システム３００は名前のあるコンポーネントのいずれも複数で備えられることを理解されたい。例えば、システム３００は複数のプロセッサ３５５を有することができる。同様に、図３の例示的システムは単一のＳＭコア３０５がある状態で図示されているが、ＳＭ使用可能ＩＣは複数のＳＭコア３０５を含むことができる。さらに、幾つかの実施形態では、システム３００は、テスタに動作可能な状態で連結（例えば光、電気、又は無線転送を使用して通信可能な状態で連結）することができるテスタインタフェース（「Ｉ／Ｆ」）３６５を含むことができる。図示されていない幾つかの実施形態では、１つ又は複数のサブエクストラクタ３４０、３４５、及び３５０をエクストラクタ３２０と組み合わせることができる。
[0091]  また、幾つかの実施形態（図示せず）では、ＳＭコア３０５を１つ又は複数の機能（図示せず）に直接接続することができ、このような接続のすべてを直接取り扱う場合は、エクストラクタ３２０及びサブエクストラクタが必要ないことがある。さらに幾つかの実施形態では、機能３２５、３３０、及び３３５は、エクストラクタ３２０、１つ又は複数のサブエクストラクタ（例えば３４０、３４５、及び３５０）、及びインタフェース（３７５、３７６、３７７）を使用して接続し続けることができる。
[0092]  また、ＳＭコア３０５は信号をシステム３００の他のコンポーネントに直接読み書きすることができる。幾つかの実施形態では、ＳＭコア３０５は、例えば専用のインタフェース（図示せず）又はバス３６０を介して、システム状態のサンプリング、データパラメータの読み取りなどを実行することができる。例えば、ＳＭコア３０５はバス３６０上で読み取り動作を発行し、所望の情報を得ることができる。
[0093]  システム３００はセキュアメモリ３１０を含む。セキュアメモリ３１０は単一のセキュアメモリ及び／又は複数の均質又は異質なセキュアメモリとすることができる。セキュアメモリ３１０は、各ビットの設定を不揮発性形態で固定することができるディジタルメモリの形態とすることができる。セキュアメモリ３１０は、例えばヒューズメモリ、抗ヒューズメモリ、１回書き込み（「ＯＴＰ」）メモリ、消去可能プログラム可能ＲＯＭ（「ＥＰＲＯＭ」）、電気的消去可能プログラム可能ＲＯＭ（「ＥＥＰＲＯＭ」）、ＲＡＭ（バッテリバックアップ式ＲＡＭを含む）、又はそれらの組み合わせを含むことができる。幾つかの実施形態では、セキュアメモリ３１０がヒューズ又は抗ヒューズメモリである場合、セキュアメモリ３１０は、セキュアメモリ３１０に以前に記憶された情報を（例えば以前に書いたデータを取り消すか再マップすることによって）改訂する能力を提供する冗長経路を含むことができる。テクノロジー及び存在するセキュリティ機能に応じて、セキュアメモリ３１０の内容は、暗号化及び／又は認証する、ＳＭコア３０５以外のブロックによって読み取られないよう保護する、１回書き込み可能であるように構成することができる。また、セキュアメモリ３１０は、ＳＭコア３０５のみがセキュアメモリ３１０に接続するか、又はＳＭ使用可能ＩＣの他のコンポーネントがセキュアメモリ３１０から読み取れるが、ＳＭコア３０５のみがセキュアメモリ３１０に書き込めるように、分離することができる。セキュアメモリ３１０は、ＳＭコア３０５以外のＳＭ使用可能ＩＣのコンポーネントによって読み取ることができる１つ又は複数の部分、及びＳＭコア３０５によってのみ読み取ることができる１つ又は複数の部分に区分化することもできる。ＳＭコア３０５は、セキュアメモリ３１０の製造検査及びプログラミング動作のすべてを実行するために直接担当することができる。また、幾つかの実施形態では、セキュアメモリ３１０は、例えばＩＣからある種の層を除去する、ＩＣのマイクログラフを捕捉するか、又は動作中にＩＣを電気的に探査することによって、その内容を学習しようとする努力に抵抗するよう設計される。また、幾つかの実施形態では、ＳＭコア３０５はラッパー３１５を含む。ラッパー３１５は、ＳＭコア３０５からの要求をセキュアメモリ３１０が理解する要求に、及びその逆に翻訳する。幾つかの実施形態では、セキュアメモリ３１０はＳＭコア３０５に統合することができる。
[0094]  システム３００は１つ又は複数の機能３２５、３３０、及び３３５を含む。サブエクストラクタ３４０、３４５、３５０を介して機能３２５、３３０、及び３３５に配送される入力は概ね構成可能であり、それにより機能３２５、３３０、及び３３５に関連する機能の構成可能性を（例えば鍵管理及び機能管理動作を介して）提供する。このような構成変化は、レジスタインタフェース３５８を介してＳＭコア３０５に配送されるＳＭ指令（以下で説明）によって実行することができる。
[0095]  機能３２５、３３０、及び３３５はハードウェア、ソフトウェア、及びそれらの組み合わせを含むことができる。例えば、機能３２５、３３０、及び３３５は、全世界測位サービス、１つ又は複数のプロセッサ（例えばＣＰＵ、グラフィックスプロセッサ、暗号コアなど）、追加メモリ、ＵＳＢポート、ビデオ入力又は出力ポート、音響入力又は出力ポート、先進のグラフィックス能力（例えばピクチャインピクチャ、複数のＨＤビデオストリーム、グラフィックス加速など）を提供する回路、１つ又は複数のネットワーク（例えばＷｉ−Ｆｉ、近接場、ブルートゥースなど）にアクセスするためのネットワークトランシーバ、カメラなどとすることができる。以上の機能のリストは限定的とは見なされない。というのは、機能は鍵管理又は機能管理動作を介して構成可能な任意のコンポーネント又は能力を含むことができるからである。機能の能力は、以上では例えば図２Ａに関して、以下では例えば機能管理のセクションで説明する。幾つかの実施形態では、機能又は機能の一部は、第三者ＩＰプロバイダによって提供される。機能３２５、３３０、及び３３５は、それぞれサブエクストラクタ３４０、３４５、及び３５０に関連する。図示されていない幾つかの実施形態では、複数の機能が単一のサブエクストラクタを共有することができる。サブエクストラクタ３４０、３４５、及び３５０は、ＳＭ使用可能ＩＣの設計をまたいだＳＭコアの出力（構成値及び鍵など）の配送を促進する。また、以上で説明したように、サブエクストラクタ３４０、３４５、及び３５０は任意選択であり、通常は複数の機能を含む大型又は複雑なＳＭ使用可能ＩＣ（最上位ＡＳＩＣフロアプラン作成及び／又は経路指示が難問であるものなど）に使用される。エクストラクタ３２０は、ＳＭコア３０５からの出力をサブエクストラクタ３４０、３４５、及び３５０に配送し、次に信号をそれぞれ機能３２５、３３０、及び３３５に配送するように構成される。
[0096]  例示的システム３００はエクストラクタ３２０を含む。エクストラクタ３２０は、ＳＭコア３０５からの情報（例えば鍵及び機能状態）を受信し、意図された宛先機能に関連する適切なサブエクストラクタに、機能に適切な形態で経路指示するように構成されたハードウェアのコンポーネントである。機能状態とは、宛先機能によって理解可能な形態であるように、ＳＭコア３０５によって、及び場合によってはエクストラクタ３２０によって処理されている情報を指す。機能状態は、特徴空間の１つ又は複数の関連するアドレスを有することができる。例示により、機能状態は使用可能信号、メタデータ、構成又は較正情報、又は機能に有用である他のデータを含むことができる。
[0097]  エクストラクタ３２０は、ＳＭコア３０５に、及び１つ又は複数の機能（例えば機能３２５、機能３３０、及び機能３３５）に動作可能な状態で連結する。幾つかの実施形態では、エクストラクタ３２０はエクストラクタインタフェース３７５を介してＳＭコア３０５に連結する。エクストラクタインタフェース３７５は、ＳＭコア３０５からエクストラクタ３２０への情報（機能データ、セキュリティ鍵など）の通信を提供する。機能データは秘密又は非秘密とすることができ、機能を構成するために使用される汎用データである。エクストラクタインタフェース３７５は、ＳＭコア３０５をエクストラクタ３２０に連結する配線を含むことができる。次に、エクストラクタ３２０は、鍵インタフェース３７６、構成値インタフェース３７７、又はそれらの組み合わせを介して、各宛先機能に関連するサブエクストラクタへと情報を転送する。鍵インタフェース３７６は、秘密情報（例えばＲＳＡ及びＥＣ−ＤＳＡなどの公開鍵システムへのプライベート鍵などの暗号化鍵、ＡＥＳ又はトリプルＤＥＳなどの暗号システムへの対称鍵、及びＨＤＣＰ又はＥＭＶなどのプロトコルの鍵）を渡すように構成された通信路である。例えば、エクストラクタ３２０は１２８ビットの鍵及び標的鍵アドレスを、鍵インタフェース３７６を介して１つ又は複数の機能（例えば３２５、３３０及び／又は３５０）に通信することができる。エクストラクタ３２０は、標的アドレスを復号して、宛先機能に関連する特定のサブエクストラクタを識別するように構成することができる。例えば、サブエクストラクタ３４０、サブエクストラクタ３４５、及びサブエクストラクタ３５０は、それぞれ機能３２５、３３０、及び３３５に関連する。構成値インタフェース３７７は、機能管理動作に関連する機能データを渡すように構成された通信路である。例えば、１つ又は複数の機能（例えば３２５、３３０、３３５、又はそれらの組み合わせ）が構成されているか、使用可能である場合、エクストラクタ３２０は、構成値インタフェース３７７を介して機能データを適切なサブエクストラクタに渡す。同様に、特定の機能が所与のアドレスに関連する値を必要としない（及び／又はセキュリティの理由で受信することが許可されない）場合、エクストラクタ及び／又はサブエクストラクタは宛先からのこれらの値を保留することができる。不必要な値を保留すると、それを必要としないサブエクストラクタ又は機能への値の不必要な経路指示及び配送を回避することによって、ＡＳＩＣの効率を改善することができる。幾つかの実施形態では、エクストラクタインタフェース３７５はＳＭコア３０５からエクストラクタ３２０への情報の双方向通信を提供する。他の実施形態では、エクストラクタインタフェース３７５はＳＭコア３０５からエクストラクタ３２０への情報の一方向通信を提供する。鍵インタフェース３７６及び構成値インタフェース３７７は、ＳＭエクストラクタ３２０を１つ又は複数のサブエクストラクタ２４０、２３４、及び３５０に連結する配線を含むことができる。
[0098]  エクストラクタインタフェース３７５、鍵インタフェース３７６、及び構成値インタフェース３７７、又はそれらの組み合わせは、ＳＭコア３０５をエクストラクタ３２０及びサブエクストラクタ３４０、３４５、及び３５０に連結する。インタフェースの組み合わせは、例えば連続的にデータ値を送信する、値変化事象が生じた（例えば機能を使用可能にする）、又は（例えば機能が電源投入されたので）要求を受信した、又はそれらの組み合わせの場合にデータを送信することによってＳＭコア３０５からのデータを特定の機能に送信することができる。
[0099]  ＳＭコアに関連する特徴空間の各要素の現在値を、例えばセキュアメモリ３１０、又はＳＭプライベートメモリ（以下で説明）に記憶することができる。幾つかの実施形態では、所与の動作（例えば以下で説明するＲＳＢ又はＤＳＢの処理）は、特徴空間の要素のサブセットしか更新することができない。値変化事象がＳＭコア３０５からエクストラクタ３２０へと通信される実施形態では、特定のペイロードの影響を受けた特徴空間の要素の値のみがそのペイロードの処理後にＳＭコア３０５からエクストラクタ３２０へと通信されることが予想される（但し、必須ではない）。特徴空間内の値がすべてＳＭコア３０５からエクストラクタ３２０へと連続的にドライブされる実施形態では、特定のペイロードの影響を受ける値を、例えばエクストラクタ３２０と通信するためにＳＭプライベートメモリなどからの無影響の特徴空間の以前の値と組み合わせることができる。
[00100]  システム３００はプロセッサ３５５を含むことができる。プロセッサ３５５は、例えば単一又は複数のマイクロプロセッサ、現場でプログラム可能なゲートアレイ（ＦＰＧＡ）要素、又はディジタル信号プロセッサ（ＤＳＰ）とすることができる。プロセッサ３５５の特定の例は、例えばｘ８６プロセッサ、ＡＲＭプロセッサ、ＭＩＰＳマイクロプロセッサ、８０５１マイクロコントローラなどである。プロセッサ３５５は、バス３６０を介してＳＭコア３０５、ホストメモリ３７０、テスタＩ／Ｆ３６５、又はそれらの組み合わせに連結することができる。幾つかの実施形態では、プロセッサ３５５は、ＳＭコア３０５と直接通信する、ＳＭコア３０５を介してセキュアメモリ３１０を読み取ってプログラムする、ＳＭコア３０５の状態及びシステム状態を検索する、指令をＳＭコア３０５に送信する、ＳＭコア３０５からソフトウェアの暗号化ハッシュ（ブートルーチン、オペレーティングシステムのコンポーネント、アプリケーションなど）を受信する、プロセッサ３５５による実行に権限付与する、又はそれらの組み合わせを実行するように構成することができる。また、これらのアクセスを実行する複数のプロセッサがあってもよい。また、幾つかの実施形態では、プロセッサ３５５は、例えばリング０内でＡＲＭ  ＴｒｕｓｔＺｏｎｅ（登録商標）を使用するか、又はセキュア仮想機械モニタ（ＳＶＭＭ）内で、より高い特権的コードを実行する能力を有する。下位特権的プロセッサ３５５又はプロセスは、ＳＭコア３０５の一部又は全部の能力を使用してブロックすることができる。レジスタインタフェース３５８を使用して、要求のＩＤ及び特権レベルを通信することができ、ＳＭコア３０５は、レジスタインタフェース３５８を介して受信したＳＭ指令を受け取り、処理する場合に、リクエスタの特権レベルを考慮に入れることができる。
[00101]  システム３００はホストメモリ３７０を含むことができる。ホストメモリ３７０は、揮発性（例えばＳＲＡＭ、ＤＲＡＭ、又は他の半導体メモリ）又は不揮発性（例えばハードディスク、Ｒ／Ｗ光ディスク、フラッシュドライブ）、又はそれらの組み合わせとすることができる。ホストメモリ３７０は、プロセッサ３５５、ＳＭコア３０５、テスタＩ／Ｆ３６５、又はそれらの組み合わせと動作可能な状態で連結する。この実施形態では、ホストメモリ３７０はバス３６０を介してシステム３００の１つ又は複数のコンポーネントと連結する。
[00102]  システム３００はテスタＩ／Ｆ３６５を含むことができる。テスタＩ／Ｆ３６５はテスタシステム（図示せず）のインタフェースである。テスタＩ／Ｆ３６５は、例えばＳＭコア３０５が製造状態にある場合、ＳＭ使用可能ＩＣがインフィールドである場合、プロセッサ３５５がまだ動作していない（又は誤動作している）場合、又はそれらの組み合わせの場合に通信路を提供するように構成することができる。テスタＩ／Ｆ３６５は走査インタフェース、検査インタフェース、合同検査作業グループ（「ＪＴＡＧ」）インタフェース、ＵＳＢインタフェース、先進の周辺バス（「ＡＰＢ」）インタフェースなどとすることができる。テスタシステムは、システム３００が適切に動作しているか検査できるように、システム３００に連結することができる。例えば、テスタシステムは、システム３００が適切に機能を使用可能にする、機能を使用不能にする、セキュアメモリ３１０をプログラムするなどのことを確実に行うように構成することができる。テスタシステムは１つ又は複数のプロセッサ及びメモリを含むことができ、ＳＭコア３０５における動作に権限付与するためにデレゲート権限システムと通信する（又はそれを含む）ことができる。
[00103]  システム３００はＳＭコア３０５を含む。ＳＭコア３０５は、セキュアメモリ３１０、エクストラクタ３２０、及びプロセッサ３５５、ホストメモリ３７０、及びテスタＩ／Ｆ３６５にレジスタインタフェース（「Ｉ／Ｆ」）３５８及びバス３６０を介して動作可能な状態で連結することができる。また、幾つかの実施形態（図示せず）では、ＳＭコア３０５はプロセッサ３５５、歩数とメモリ３７０、及びテスタＩ／Ｆ３６５のうち幾つか又は全部に直接接続することができる。ＳＭコア３０５は１つ又は複数のＳＭプライベートメモリ（図示せず）を含む。これらの１つ又は複数のプライベートメモリを使用して、１つ又は複数のセキュリティ鍵（例えばベース鍵、個別化鍵、トランスポート鍵、ネットリスト鍵、ルート又はデレゲート権限公開鍵など）、セキュアメモリ３１０内の位置に対する１つ又は複数のポインタ、ラッパー３１５への命令、機能アドレスに関連する現在の構成状態、指令処理中間体などのＳＭコアが使用するデータを記憶することができる。幾つかの実施形態では、１つ又は複数のセキュリティ鍵及び製品チップＩＤは、ＳＭコア３０５に配線することができる（例えばルート権限公開鍵、セキュアメモリ３１０が誤動作しているか、又は構成されていない場合に入手可能になるべきベース鍵など）。１つ又は複数のセキュリティ鍵は、対称鍵、公開非対称鍵、プライベート非対称鍵、又はそれらの組み合わせを含むことができる。幾つかの実施形態では、１つ又は複数のセキュリティ鍵は、ＳＭコアに特異的であり、ＳＭコアのシリーズ間で共有することができる鍵もある。ＳＭコアのシリーズとは、何らかの方法で関係することができる１組のＳＭコアを指す。例えば、任意のマスク設計から製造されたＳＭ使用可能ＩＣのすべてにあるＳＭコアをシリーズと見なすことができる。また、同様のＳＭ使用可能ＩＣのファミリのいずれかにあるＳＭコアはすべてシリーズと見なすことができる。
[00104]  例示的実施形態では、ＳＭコア３０５は１つ又は複数の署名入りブロックを受信するように構成され、それにはルート署名入りブロック（「ＲＳＢ」）、さらにゼロ個以上のデレゲート署名入りブロック（「ＤＳＢ」）が含まれ、それについては図４に関連してさらに説明する。ＳＭコア３０５は、署名入りブロックに関連する署名を検証し、制限／結合（以下参照）を指定する関連のペイロード、さらに１つ又は複数の機能（例えば３２５、３３０、３３５）に意図された値（例えば構成設定又は鍵）を抽出するように構成される。制限の例には、ＳＭコアがペイロードを受け入れるべき限界（特定のデバイスＩＤを指定する限界、又は機能アドレス空間に記憶される値に必要な状態、又は機能を操作できる限界など）が含まれる。ＳＭコア３０５は、ルート権限の公開鍵を使用してペイロードを確認し、及び例えばＳＭ使用可能ＩＣに組み込まれた、又はセキュアメモリ２１０に記憶された値から導出したプライベート鍵を使用して、署名入りブロックからペイロードを抽出する（例えば復号する）ように構成することができる。ＳＭコア３０５は、ペイロードの処理結果の幾つかを１つ又は複数の意図された機能（例えば３２５、３３０、３３５）へとエクストラクタ３２０を介して分散させるように構成される。
[00105]  幾つかの実施形態では、ＳＭコア３０５は、ＳＭ使用可能ＩＣの機能状態を更新する命令を実行する、機能への鍵配送を促進する、（セキュアメモリ３１０に書き込むために必要なパラメータがある場合は、それを構成するように）セキュアメモリ３１０の構成を使用可能にするなどのことを実行するように構成することができる。例えば、ＳＭコア３０５には、機能３２５を使用不能にし、機能３３０を使用可能にするように命令することができる。実施形態及び提供される命令に応じて、ＳＭコア３０５は、（例えばセキュアメモリ３１０を更新することによる）永続的変更、（例えばＳＭプライベートメモリを更新することによる）非永続的変更、又はその両方を実行することができる。永続的変更とは、ＩＣ使用可能チップの再ブート後に変更が持続するように、ＳＭ使用可能ＩＣの電源断後にも持続する変更である。非永続的変更とは、所定の期間又は事象だけ存続する変更である。例えば、非永続的変更は、ある特定の実行数だけ、デバイスの電力が失われるまでなどでのみ有効とすることができる。ＳＭコア３０５は、セキュアディジタル（「ＳＤ」）カードの暗号化、フラッシュメモリ／ハードディスクの暗号化、高帯域幅ディジタル内容保護（「ＨＤＣＰ」）、ディジタル権利管理（「ＤＲＭ」）システム、仮想プライベートネットワーク（「ＶＰＮ」）支払い命令（例えばＥＭＶ）、パスワードマネージャー、無線リンク暗号化、周辺認証、他のセキュアオペレーションなどのために鍵を管理し、配送するように構成することができる。
[00106]  また、ＳＭコア３０５はＩＣ構成プロセスで使用することができる１つ又は複数のハードウェア（「ＨＷ」）定数を受信するように構成することができる。ＨＷ定数は、例えば製品チップＩＤ、ルート権限システムの１つ又は複数の鍵（ＲＳＡ又はＥＣ−ＤＳＡ公開鍵など）、デレゲート権限システムからの１つ又は複数の鍵、１つ又は複数のベース鍵、１つ又は複数の追加のセキュリティ鍵、ＳＭコア３０５の動作（例えばメモリの使用、支援された指令など）のパラメータ、誤り訂正データなどを含むことができる。製品チップＩＤは、特定のＳＭ使用可能ＩＤ、又は特定のＳＭ使用可能ＩＤシリーズ、又はその両方を識別値で一意に識別することができる。セキュリティ鍵は対称又は非対称（及び非対称の場合は公開又はプライベート）とすることができる。幾つかの実施形態では、１つ又は複数のベース鍵は、マスタ鍵、ＳＭ使用可能ＩＤシリーズの識別コード、チップ固有の識別子、又はそれらの組み合わせから導出することができる。誤り訂正データは、例えばセキュリティ鍵のうち１つ又は複数の関連するチェックサムを含むことができる。
[00107]  ＳＭコア３０５は、プロセッサ３５５に対する割り込みを生成するように構成することができる。例えば、ＳＭコア３０５は、ＳＭ使用可能ＩＣの機能状態が更新された場合、追加のＩ／Ｏを受信する準備が整った場合、鍵が出力されている場合などに割り込みを生成するように構成することができる。
[00108]  ＳＭコア３０５は、１つ又は複数の組み込みセルフチェックを実行するように構成することができる。例えば、ＳＭコア３０５は、最初の電源投入時に、検査インタフェースなどの制御下でセルフチェックを実行するように構成することができる。
[00109]  幾つかの実施形態では、システム３００は図３に示すコンポーネントをすべて、又はコンポーネントの大部分（プロセッサ３５５及びホストメモリ３７０を除くすべてなど）を組み合わせる単一のＩＣ（システムオンチップなど）である。
[00110]  幾つかの実施形態では、システム３００の全部又は幾つかは、外部源に対してタンパ防止となるように構築することができる。例えば、ＳＭコア３０５はセキュリティメッシュ（図示せず）を含むか、セキュリティメッシュ下で製造することができる。セキュリティメッシュは、例えば集積回路上の最上金属層のうち１つ又は複数を使用して、１次論理回路の最上部に製造された配線ネットワークである。セキュリティメッシュは、メッシュを含む配線に対する損傷を検出するように意図されたアクティブセンサネットワークと対にすることができる。この実施形態では、ＳＭコア３０５は、アクティブセンサによってセキュリティメッシュ配線の一部が損傷していることが示された場合、繊細な動作の実行を拒否するように構成される。また、ＳＭコア３０５は、セキュアメモリ３１０の消去など、他の対策を実行するように構成することができる。
[00111]  図４は、例示的ＳＭコア３０５のブロック図を示す。例示的ＳＭコア３０５は、暗号モジュール４１０、実行エンジンモジュール４２０、通信モジュール４３０、及びデータ記憶モジュール４４０、又はそれらの組み合わせを含むことができる。これらのモジュールのうち１つ又は複数を削除、修正、又は他のモジュールと組み合わせることができることが認識される。
[00112]  暗号モジュール４１０は、認証、暗号化機能、復号機能、又はそれらの組み合わせを提供するように構成されたハードウェアコンポーネント、ソフトウェアコンポーネント、又はそれらの組み合わせとすることができる。例えば、暗号モジュール４１０は対称暗号化機能、対称復号機能、非対称暗号化機能、非対称復号機能、非対称署名用／署名検証、鍵合致、又はそれらの組み合わせを提供するように構成することができる。幾つかの実施形態では、暗号モジュール４１０は、ルート署名入りブロック（「ＲＳＢ」）に関連する１つ又は複数のディジタル署名を検証するように構成することができる。ＲＳＢは例えば１つ又は複数の命令、命令テンプレート、１つ又は複数のデレゲート許可、１つ又は複数の鍵（例えばデレゲート公開鍵）、又はそれらの組み合わせを含むことができる。ＲＳＢは、ルート権限のプライベート鍵（すなわち、ルート権限システム２１７のプライベート鍵）によって署名した少なくとも１つのディジタル署名を含む。暗号モジュール４１０は、対応するルート権限公開鍵を使用してＲＳＢのディジタル署名を認証するように構成することができる。幾つかの実施形態では、認証はＲＳＡ、ＤＳＡ、又はＥＣＤＳＡを使用して実行することができる。（ＳＭ使用可能ＩＤからの認証の秘密が問題ではないような）他の実施形態では、認証はＨＭＡＣなどの対称認証方式を使用して実行することができる。認証方式は、以上及び他のアルゴリズムの組み合わせを使用することができる。認証方式は、ＰＫＣＳ＃１又はＡＮＳＩ  Ｘ９などの規格を実現するか、又は所有権を有することができる。
[00113]  また、暗号モジュール４１０は、デレゲート署名入りブロック（「ＤＳＢ」）に関連する１つ又は複数のディジタル署名を検証するように構成することができる。ＤＳＢは、例えば１つ又は複数のＳＭ指令、ペイロード（暗号化又は非暗号化）、１つ又は複数の鍵、又はそれらの組み合わせを含むことができる。一実施形態では、各ＤＳＢは常に、デレゲート権限の公開鍵を規定し、権限付与するＲＳＢが先行する。ＤＳＢは、デレゲート権限システム（例えばデレゲート権限システム２２２）によって署名した少なくとも１つのディジタル署名を含むことができる。有効ＤＳＢの受信及び検証後、暗号モジュール４１０は、ＳＭ使用可能ＩＣの１つ又は複数のベース鍵を使用して、（ＤＳＢに対して適宜）１つ又は複数の混合鍵、１つ又は複数のトランスポート鍵、１つ又は複数のバリデータ（例えば鍵の検証に使用する値）、又はそれらの組み合わせを導出することができる。また、暗号モジュール４１０は、複数の鍵分割を組み合わせて１つ又は複数のベース鍵を形成するように構成することができる。
[00114]  また、幾つかの実施形態では、ＲＳＢ及び／又はＤＳＢは暗号化したペイロード部分を含むことができる。この実施形態では、暗号モジュール４１０は、例えばベース鍵又はベース鍵から導出した鍵を使用して、暗号化したペイロード部分を復号し、検証するように構成することができる。暗号モジュール４１０は、ＲＳＢ又はＤＳＢ、又はその両方が認証されると、検証された指令を実行モジュール４２０に提供するように構成される。暗号モジュール４１０は、実行エンジンモジュール４２０、通信モジュール４３０、及びデータ記憶モジュール４４０に連結することができる。
[00115]  また、ＤＳＢは、１セットの許容可能な許可を受けると、別の後続ＤＳＢを伴うことを示すことができ、さらに後続ＤＳＢを最初のＤＳＢとは異なる（例えばこれより狭い）セットの許容可能な許可に限定することができる。
[00116]  幾つかの実施形態では、暗号モジュール４１０は、レジスタＩ／Ｆ（例えばレジスタＩ／Ｆ３５８）を使用して、テスタ又はＣＰＵアプリケーションなどのＳＭコアの外部のデバイス又はコンポーネントとランダムセッション鍵を折衝するように構成することができる。折衝したセッション鍵は、例えばセキュアトンネルを開く、又はその後のＲＳＢ、ＤＳＢ、又はその両方で通信される秘密を保護するために使用することができる。
[00117]  また、例示的ＲＳＢ及びＤＳＢの態様について、図５〜図９Ｂに関連して以下で詳細に説明する。
[00118]  実行エンジンモジュール４２０は、ＳＭ指令を受信して実行するように構成されたハードウェアコンポーネント、ソフトウェアコンポーネント、又はそれらの組み合わせとすることができる。ＳＭ指令は、ＳＭコア３０５に（例えばブートプロセス中に）関連するルート権限システム（例えばルート権限システム２１７）、デレゲート権限システム（例えばデレゲート権限システム２２２）、セキュアメモリ（例えばセキュアメモリ３１０）、又はそれらの組み合わせから受信することができる。ＳＭ指令は、例えばロード指令、鍵導出指令、復号指令、セキュアメモリ書き込み指令、条件付き動作、方針構成動作などを含むことができる。ロード指令は、例えば機能に配送された構成出力及び／又はＳＭコアの内部で使用する状態に対する非永続的変更を使用可能にすることができる。鍵導出指令は、以下で詳細に説明するように、例えば鍵ツリーなどを使用してベース鍵から１つ又は複数のセキュリティ鍵を導出するために使用することができる。復号指令は、受信したペイロードを復号する際に、及び機能に出力された秘密鍵を復号／出力する際に使用することができる。セキュアメモリ書き込み指令は、セキュアメモリに特定の命令又は他の変更を書き込むために使用することができる。（例えば、書き込み指令は、ＳＭ使用可能ＩＣに対して永続的変更をするために使用することができる。）条件付き動作は、特定のＳＭコアで実行するために他の指令が適切か（又はどの指令が適切か）を判定するために使用することができる。方針構成動作は、他の指令が実行できることの限界を指定するために使用することができる（以下参照）。
[00119]  以上で説明したＳＭ指令に加えて、幾つかのＳＭ指令（例えば方針構成指令）は、例えばＲＳＢ又はＤＳＢの使用を、特定の製品チップＩＤに、ある範囲の製品チップＩＤに、特定の製品製造業者に、ＳＭコアが管理する任意の機能構成の値に基づいて、所与のチップシリーズに、ブロックを使用する場合にデレゲートがある種の機能を検査するという要求に、又はそれらの組み合わせに制限することができる。幾つかの実施形態では、ＳＭ指令は、ＲＳＢ、又はＤＳＢ、又はその両方を、（例えば乱数発生器に基づいて）ＳＭコアによって導出されたランダムなワンタイムチャレンジのＲＳＢ／ＤＳＢディジタル署名に組み込むことを要求することによって「単回使用」に制限することもできる。方針構成指令は、他のハードウェアからＳＭコアに接続された信号の状態、例えばタンパ検出回路からの出力、セキュアメモリ３１０のエラー状態などに基づいて限界を加えることもできる。実行エンジンモジュール４２０は、暗号モジュール４１０、通信モジュール４３０、及びデータ記憶モジュール４４０に連結することができる。
[00120]  通信モジュール４３０は、ＳＭコア３０５と外界とのインタフェースとして作用するように構成されたハードウェアコンポーネント、ソフトウェアコンポーネント、又はそれらの組み合わせとすることができる。例えば、通信モジュール４３０は、ＣＰＵ（例えばプロセッサ３５５）、ホストメモリ（例えばホストメモリ３７０）、セキュアメモリ（例えばセキュアメモリ３１０）、エクストラクタ（例えばエクストラクタ３２０）、テスタインタフェース（例えばテスタＩ／Ｆ３６５）、ＩＣ上の任意の他のコンポーネント、又はそれらの組み合わせとインタフェースをとるように構成することができる。通信モジュール４３０は、１つ又は複数のバス（例えばバス３６０を介する）、セキュアメモリなどからの指令を受信するように構成することができる。また、通信モジュール４３０は様々な機能への（例えば直接の、又はエクストラクタ３２０を介した、又はその両方の）情報送信を補助することができる。幾つかの実施形態では、通信モジュール４３０はセキュアメモリラッパー（例えばラッパー３１５）を含む。セキュアメモリラッパーは、ＳＭコア３０５からの指令を、ＳＭコア３０５に関連するセキュアメモリによって認識可能なフォーマットに翻訳するように構成される。通信モジュール４３０は、暗号モジュール４１０、実行エンジンモジュール４２０、及びデータ記憶モジュール４４０に連結することができる。
[00121]  データ記憶モジュール４４０は、１つ又は複数のＳＭプライベートメモリを含むことができる。データ記憶モジュール４４０は、１つ又は複数のセキュリティ鍵（例えばデバイス鍵又はデバイス鍵のグループ）、製品チップＩＤ、１つ又は複数のＳＭ指令、ブート命令、機能データ、構成データ、永続的機能情報などを記憶するように構成することができる。幾つかの実施形態では、データ記憶モジュールは、メモリのレイアウト及び使用に関する情報など、ＳＭコア３０５の動作を永続的に変更するために使用する情報を追加的に記憶することができる。データ記憶モジュール４４０は、ＳＭコア３０５の外部の１つ又は複数のメモリ構造（静的ＲＡＭなど）を含むか、又はそれにインタフェースをとるか、又は内部記憶装置（例えば、このような記憶装置が揮発性である場合はレジスタ、レジスタファイル、静的ＲＡＭなど、又は利用可能である場合は揮発性メモリを使用することができる）を組み込むことができる。データ記憶モジュール４４０は、デレゲート権限システムの公開鍵などの暗号値も記憶することができる。データ記憶モジュール４４０は、暗号モジュール４１０、実行エンジンモジュール４２０、及び通信モジュール４３０に連結することができる。
３．セキュリティマネージャーの機能
[00122]  ＳＭ使用可能ＩＣのＳＭコアが動作を実行する（例えば鍵又は機能状態を更新する）ようにルート権限が要求するには、ルート権限システムが１つ又は複数のＳＭ指令に関する動作を規定する。ＳＭ指令は、実行された場合に、（とりわけ）ＳＭ使用可能ＩＣのＳＭコアによって管理された機能状態を更新することができる。ルート権限システムは、ＳＭコアによって認識される２進フォーマットでＳＭ指令をコード化し、ディジタル署名を指令に含める。指令と署名の組み合わせは、署名入りブロックとして知られる。ルート権限システムからの署名入りブロックをルート署名入りブロック（「ＲＳＢ」）と予備、デレゲート権限システムからの署名入りブロックをデレゲート署名入りブロック（「ＤＳＢ」）と呼ぶ。
[00123]  デレゲート署名入りブロックが関与しない簡単なケースでは、ＳＭ使用可能ＩＣのＳＭコアが、ルート権限システムから指令を受信する。ルート権限システムの公開鍵をＳＭ使用可能ＩＣに組み込むことができる。図５は、ルート権限システムによって署名した指令を含むルート署名入りブロックを生成する例示的方法のフローチャートである。ステップ５００で、ルート権限システムは１つ又は複数のＳＭ指令を、例えば署名要求又は入力ファイルから受信する。次に、ＳＭ指令のブロックを、ルート権限システムがルート権限システムの公開鍵を使用してディジタル署名し（５１０）、ＲＳＢを生成する。ステップ５２０で、完成したＲＳＢがルート権限システムによって提供される。ＲＳＢを受信するのは、ルート権限が（例えばテスタＩ／Ｆ３６５を介して）通信できるＳＭコアでよく、ＲＳＢは、最終的にＳＭコアが受信する前に、幾つかのエンティティ（例えば中間体、サーバ、コンポーネント、アプリケーション、ネットワーク、記憶ロケーション／ファイルなど）を介して渡すことができる。
[00124]  図６は、ＳＭ使用可能ＩＣのＳＭコアが図５で生成されたＲＳＢを処理する例示的方法のフローチャートである。ステップ６００で、ＲＳＢをＳＭコアにて受信する。次に、ＳＭコアがルート権限システムの公開鍵を取得し（６１０）、これは例えばＳＭ使用可能ＩＣに記憶して、ハードウェア定数としてＳＭコアに供給するか、又はセキュアメモリ（例えばセキュアメモリ３１０）に記憶することができる。
[00125]  次に、ＳＭコアが、ルート権限システムの公開鍵を使用してＲＳＢのディジタル署名を検証する（６２０）。ディジタル署名の検証結果が、署名が有効でないことを示すと（６３０）、プロセスは終了する（６９０）。ディジタル署名が有効である場合、ＳＭコアはＲＳＢに含まれる１つ又は複数のＳＭ指令を処理する（６４０）。ＳＭ指令の処理中にエラーが発生すると（６５０）、例えばレジスタＩ／Ｆ３５８又は割り込みを使用してエラーを報告し（６６０）、プロセスが終了する（６９０）。エラーは、例えばＳＭ指令によって製品チップＩＤが特定の範囲に入っているかチェックされ、ＳＭコアに知られている製品チップＩＤがこの範囲外にある場合に生じることがある。処理中のエラーが発生しない場合、ＳＭコアは、処理すべき追加のＳＭ指令が残っているか判断する（６７０）。処理が必要である追加のＳＭ指令がある場合、フローはステップ６４０に戻り、すべてのＳＭ指令が処理されるまでプロセスが継続する。すべてのＳＭ指令が処理されると、ＳＭコアは、例えばレジスタＩ／Ｆ３５８又は割り込みを使用して、成功を報告し（６８０）、プロセスが終了する（６９０）。
[00126]  図７は、ＤＳＢと関連させることができるＲＳＢを生成する例示的方法のフローチャートである。ステップ７００で、ルート権限システムが１つ又は複数の入力パラメータを受信する。入力パラメータは１つ又は複数のＳＭ指令、どのデレゲートが署名しようとするかの指令テンプレート、デレゲートの許可、デレゲート権限システムの公開鍵、他のデータ、又はそれらの組み合わせを含むことができる。デレゲート権限システムの公開鍵は、対応するデレゲート権限システムのプライベート鍵を有し、これはデレゲート権限システムによって制御される。
[00127]  以上で説明したように、ＳＭ指令は、ＳＭコアに対してＳＭ使用可能ＩＣの状態に影響を与えるように指示する情報を含むことができる。また、ＲＳＢがＤＳＢに関連する（例えばデレゲート権限システムの公開鍵を含む）場合、ＳＭ指令は、（以上のＲＳＢのみの場合のように）ある種の条件に基づいて処理を停止する指令を含む。例えば、ＲＳＢは、ＲＳＢ処理を継続して関連するＤＳＢの実行を許可する前に、チップがある特定の製造段階にある、特定の製品チップＩＤの範囲内にあるか、又は特定のシリアル番号範囲内にあるか、又は特定のグループ又はサブセットに関連する設定を有するか、又は特定のエラー状態にある／ないことなどを確認する指令を含むことができる。条件文をＳＭコアによって維持される状態（デバイスのライフサイクル、製品ＯＥＭ識別子、ユーザのタイプ、地理的地域、グループ識別子、小売ＳＫＵ、日付など）に基づくものとする能力により、どのデバイスが所与のＲＳＢを受け入れられるか、及びＲＳＢがこれらのデバイスに対して実行することを制御する際に、大幅な融通性が得られることに留意されたい。したがって、ルート権限システムによって規定された基準に適合しないデバイスで、ＤＳＢを実行することを防止することができる。
[00128]  幾つかの実施形態では、ルート権限システムは、ＤＳＢの形態、又は内容、又はその両方を指定する指令テンプレートを受信し、署名することもできる。デレゲート権限システムは、意図された形態のＤＳＢのみに署名することを確実に行う一つの方法としてルート権限システムの署名を検証することができる。指令テンプレート内には、含まれるＳＭ指令の記述、さらに実行できる調節があってもよい。デレゲート権限システム内のハードウェアセキュリティモジュールは、テンプレート上のルート署名を検証し、許可された修正を実行し（又は許可された修正のみが実行されていることを検証し）、次に（成功した場合はデレゲート署名入りブロック（ＤＳＢ）に署名することができる。この方法により、ルート権限が（デレゲート権限システムによって）デレゲートに制限を加えられることに留意されたい。このようなデレゲート署名に対する制限は、ＳＭコアによって実施される制限を補償するものである（例えば、ＲＳＢが、所与の範囲に製品チップＩＤがあることを確認する検査を含む場合、範囲外のデバイスで実行すると、ＤＳＢを受け入れる前にエラーが発生する）。
[00129]  デレゲート許可は通常、ルート権限によってＳＭコアよりもデレゲートが有することが許可された能力を指す。例えば、デレゲート許可は、特定の機能の更新に権限付与すること、セキュアメモリ３１０内のある範囲の物理的アドレスへの書き込みに権限付与すること、ＤＳＢの処理中にＳＭコアがどのＳＭ指令を実行できるか権限付与すること、セキュリティ鍵の転送の宛先に権限付与すること、１つ又は複数の鍵バスへのアクセスに権限付与すること、１つ又は複数の周辺デバイスへのアクセスに権限付与すること、又はそれらの組み合わせを含むことができる。
[00130]  ＲＳＢ（又は権限付与された場合はＤＳＢ）は、ＳＭコア内に許可データフィールドを設定することができる。これを、例えば特徴空間のアドレスにマップすることができる。このような設定は、別のＲＳＢによって変更されない限り（又は変更されるまで）、又はチップがリセットされるまで継続することができる。例えば、例示的ＲＳＢは、ＳＭコアによって処理された場合、能力マスクのシリーズにあるビットを設定し、ある種の能力を行使できるか規定することができる。別の例では、ＲＳＢは、ＳＭコアによって処理された場合、セキュアメモリ３１０のレイアウト及び構成に関してＳＭコアが仮定することを制御するＳＭコア内のポインタを調節することができる。
[00131]  ＲＳＢは、ＳＭコアによって処理された場合、その後のＤＳＢが使用するためのデータを準備することもできる。例えば、ＲＳＢはデータをデータ記憶モジュール（例えばデータ記憶モジュール４４０）に記憶させることができ、ＤＳＢはデータをデータ記憶モジュールから検索させることができる。また、ＲＳＢの実行前に、プロセッサ（例えばプロセッサ３５５）は、例えばレジスタＩ／Ｆ３５８を使用して、データをデータ記憶モジュールに記憶させることができる。ＲＳＢは、そのデータがある種の基準に一致するか、ＳＭコアに検査させ、基準を満たした場合、その後のＤＳＢが使用するためにそのデータをデータ記憶モジュール４４０に残すことができる。この場合、データがルート権限システムではなくプロセッサによって提供された場合でも、データはなおルート権限システムの許可を受けることになる。例えば、これによってデバイスのファームウェアが、ルート又はデレゲート権限によって署名されていないパラメータを提供することが可能になる。
[00132]  ＲＳＢは、ＤＳＢ署名がＲＳＢによって規定された形態の「結合データ」をある特定の量だけ含むように要求することができる。これにより、ＤＳＢ署名プロセスは、結合データが変化する場合毎に強制的に別個に実行される。例えば、ＲＳＢは、乱数発生器によって生成された値をサンプリングするようにＳＭコアに指示し、ＤＳＢ署名がサンプリングされた値を含むように要求することができ、これによってＤＳＢ署名権限は、強制的にＳＭコアと「ライブで」接続状態になり、ＤＳＢの応答を防止する。別の例では、ＲＳＢは、デバイスＩＤ及びライフサイクル状態を含むように結合データを設定し、署名入りＤＳＢが他のデバイスで再現されるのを防止することができる。結合データはデレゲート権限システムによって署名に組み込まれ（したがってデレゲート権限システムに知られ、セキュリティサービス１２０に報告されるデレゲート権限システムのログに入れることができ）るので、ＲＳＢは、ルート権限が確認したいと考える結合データ及びパラメータが正確にログされていると規定することもできる。
[00133]  幾つかの実施形態では、ＲＳＢは、ＳＭコアによって処理された場合、ＳＭコアに関連するワンタイムプログラマブル（ＯＴＰ）メモリ（例えばセキュアメモリ３１０）に書き込むことができる。例えば、ＯＴＰメモリに含まれる命令は、起動プロセスの一部として、ＳＭ使用可能ＩＣの機能Ｘを使用可能にすることができる。ＲＳＢは、起動プロセス中に機能Ｘが使用可能になるか、又はもう使用可能ではないようにＳＭコアに指示、セキュアメモリ３１０を修正することができる。また、幾つかの実施形態では、ＤＳＢはプログラムされたＯＴＰメモリの内容に（通常は限定された）変更を加える許可を得ることもできる。
[00134]  ステップ７１０で、入力パラメータをルート署名入りブロック内に形成し、これはルート権限システムの公開鍵を使用するルート権限システムによってディジタル署名され、ＲＳＢを生成する。ステップ７２０で、ＲＳＢを例えばデレゲート権限システムに、又はデレゲート権限システムを監督するセキュリティサービス（例えばセキュリティサービス１２０）に配送する。
[00135]  図８は、ＤＳＢを生成する例示的方法のフローチャートである。ステップ８００で、デレゲート権限システムは１つ又は複数のデレゲート入力パラメータを受信する。デレゲート入力パラメータは、例えば図７で生成したＲＳＢ、ＤＳＭに含めるための１つ又は複数のＳＭ指令、他の（暗号化された、又は暗号化されていない）ペイロードデータ、１つ又は複数の鍵、又はそれらの組み合わせを含むことができる。ＳＭ指令は、実行されるとＳＭ使用可能ＩＣの機能状態を更新するＳＭ指令を含むことができる。ＳＭ指令は、上述したように、ルート権限システムによって署名された指令テンプレートの一部として受信することができる。ステップ８１０で、デレゲート入力パラメータは、（ＲＳＢに含まれるデレゲート権限の公開鍵に対応するプライベート鍵を使用して）デレゲート権限システムがディジタル署名し、ＤＳＢを生成することができる。ステップ８２０で、ＤＳＢを例えばＳＭ使用可能ＩＣに（直接、又は様々な中間体で）提供し、ＳＭコアで処理する。
[00136]  図示されていない幾つかの実施形態では、デレゲート権限システムは、デレゲート入力パラメータにディジタル署名する前に、ＲＳＢ内のデレゲート許可を検証する。これは、例えばＲＳＢが破損したという問題の、又はデレゲート権限システムが、ルート権限が権限付与した対象を上回るものに署名するよう求められているという問題の防止に役立つことができる。
[00137]  図９Ａは、図８で生成したＤＳＢ（さらに関連するＲＳＢ）をＳＭコアによって処理する例示的方法のフローチャートである。ステップ９００で、ＤＳＢに関連するＲＳＢをＳＭコアにて受信する。次に、ＳＭコアは、ルート権限の公開鍵を使用してＲＳＢのディジタル署名を検証する（９０５）。ディジタル署名が有効でない場合、ＲＳＢを拒否し、プロセスが終了する（９１５）。ディジタル署名が有効である場合、ＳＭコアはＲＳＢに含まれるＳＭ指令の処理を開始する（９１２）。
[00138]  １つ又は複数のＳＭ指令のうちいずれかが処理を失敗するか、又はそれ以外でエラーを生成した場合（９２０）、ＲＳＢを拒否し、プロセスが終了する（９１５）。例えば、限定されたＳＭプログラミング能力を有するようにデレゲート権限システムが構成された製品チップＩＤの範囲が、ＲＳＢのＳＭ指令によって指定され、ＳＭ使用可能ＩＣがその範囲外の製品チップＩＤを有している場合、ＳＭコアは失敗し、ＲＳＢを拒否しなければならない（９１５）。この実施形態では、プロセスがステップ９１５で終了し、関連するＤＳＢが到達すると、これを無視し、処理せずに破棄することができる。図示されていない他の実施形態では、ＳＭコアはＲＳＢ及びＤＳＢを同時に受信することができる。このような実施形態では、ＲＳＢの処理中にエラーによりプロセスが狩猟した場合、ＤＳＢを無視し、処理せずに破棄することができる。図示されていない他の実施形態では、ＳＭコアはＲＳＢの処理と同時に、又はＲＳＢを受信する前にＤＳＢを受信することができる。ＳＭコアの特定の実施形態がＲＳＢ及びＤＳＢを受信する方法に関係なく、ＲＳＢが拒否された場合、ＳＭコアは関連するいかなるＤＳＢの処理も拒否する（又は他の方法で拒否する）ことができる。
[00139]  ＲＳＢ内のＳＭ指令の処理に成功した場合、ＳＭコアはデレゲートの許可及びデレゲート権限の公開鍵をＲＳＢから抽出する（９２５）。ステップ９２６で、ＳＭコアはＲＳＢに関連するＤＳＢを受信する。上述したように、図示されていない幾つかの実施形態では、ＤＳＢ及びＲＳＢを同時に、又は異なる時に受信することができる。
[00140]  ＳＭコアは、ＲＳＢに含まれるデレゲート権限の公開鍵を使用して、ＤＳＢのディジタル署名を検証する（９３０）。ディジタル署名が有効ではない場合、ＤＳＢを拒否し、プロセスが終了する（９３５）。ディジタル署名が有効である場合、ＳＭコアはＤＳＢのデレゲートからＳＭ指令を抽出する（９４０）。次に、ＳＭコアは、抽出したＳＭ指令が許可されるか判断する（９４５）。ＳＭコアは、抽出したＳＭ指令をデレゲートの許可と比較し、ＲＳＢに含まれるデレゲートの許可とＳＭ指令が一致するかを検査することによって、この判断を実行する。抽出したＳＭ指令がデレゲートの許可によって許可されない場合、抽出したＳＭ指令を実行せず、エラーを報告し（９５０）、フローはステップ９６０に行く。エラーは、ＳＭ使用可能ＩＣ、テスタなどで実行されるソフトウェアに報告することができ、これは次に適宜、デレゲート権限、ルート権限、又は他のエンティティに通知することができる。
[00141]  抽出したＳＭ指令が許可された場合、ＳＭコアは抽出したＳＭ指令を実行する（９５５）。図示されていない幾つかの実施形態では、ＳＭ指令の実行中にエラーが発生することがあり、この場合、フローはステップ９５０に行くことができる。
[00142]  次に、ＳＭコアは、処理すべき抽出ＳＭ指令が残っているか判断する（９６０）。抽出したＳＭ指令がすべて処理されている場合、ＳＭコアはＤＳＢの実行成功を報告する（９６５）。報告は、ＳＭ使用可能ＩＣ、デレゲート権限、ルート権限、又はそれらの組み合わせのユーザに報告することができる。しかし、処理すべき追加のＳＭ指令が残っている場合、フローはステップ９４５に行く。
[00143]  図示されていない幾つか実施形態では、抽出したＳＭ指令が許可されず、エラーが報告された場合（９６０）、次にプロセスが終了し、ＤＳＢブロックが拒否される。
[00144]  図９Ｂは、ＲＳＢから検索したＳＭ指令をＳＭコアによって処理する例示的方法のフローチャートである。ステップ９００、９０５、及び９１５は、図９Ａに示した通りである。図９Ｂの残りは、ＳＭ指令を処理するステップ（９１２）、及び図９Ａの結果をチェックするステップ（９２０）の例示的実施形態を詳述する。図９Ｂの詳細は、ディジタル署名が有効と確認されると開始する。ＳＭコアは、ＲＳＢから１つ又は複数のＳＭ指令を抽出する（９７０）。ＳＭコアは、制限が抽出したＳＭ指令の実行を実際に許可したか判断する（９７５）。指令に権限付与されない場合、ステップ９７５はエラーを引き起こす。次に、ステップ９７５は指令を実行しようとし、これもエラーを引き起こすことがある。エラーが生じると、ＳＭコアはエラーを報告し（９８０）、ＲＳＢの残りを（及びその結果の関連するＤＳＢをすべて）拒否する（９１５）。抽出したＳＭ指令の実行に成功した場合は、ＳＭコアは処理すべき抽出ＳＭ指令が残っているか判断する（９８５）。さらなる指令が待機中である場合、プロセスは次の指令に進む。抽出したＳＭ指令をすべて処理した場合、方法は図９Ａのステップ９２５へと進む。
[00145]  （例えばＲＳＢ及び／又はＲＳＢ）の比較検査は、例えば２つの値が相手より大きいか小さい、相手と等しいなどを検査することができる。また、幾つかの実施形態では、比較検査はビットマスク又は任意の他の種類の検査を組み込むことができる。比較の結果は、即時のエラー、又は（例えば飛び越しなどの）フロー制御の変化、又はその後の動作の修正／スキップとなることがある。
[00146]  幾つかの実施形態では、デレゲート権限システムにある種の特徴空間の値を検査するように要求することができる。これは、特定の特徴空間の値がルート権限システムに入手可能でない場合に有用なことがある。例えば、ルート権限システムは、単一のＳＭ使用可能デバイスのある種の機能の構成を修正するＤＳＢを、例えばネットワーク中のすべてのＳＭ使用可能デバイスに対して生成するようデレゲート権限システムに権限付与するよう望むことができる。この実施形態では、ルート権限システムは、機能を修正すべき１つ又は複数のＳＭ使用可能デバイス毎に異なるＲＳＢを生成するのではなく、単独のＲＳＢを生成するのみである。ＤＳＢを単独のデバイスに強制的に結合すると、デレゲート権限システムの署名がデバイス毎に新しいＤＳＢを強制的に作成し、それによってデレゲート権限システムによって署名動作の数に加えられた制限が、デレゲート権限によって構成できるデバイスの数を効果的に制限することが確実に行われることに留意されたい。
[00147]  一例として、ＳＭ使用可能ＩＣは、ＲＳＢから抽出したＳＭ指令を処理する間に、中間記憶装置位置に値（例えば製品チップＩＤ、又はランダムなワンタイムチャレンジ）を書き込むことができる。ＳＭコアがＤＳＢの署名を検証する場合、ＳＭコアは、署名検証プロセスに関与する暗号ハッシュ動作に中間記憶装置の内容を組み込む。例えば、中間記憶装置の値は、暗号ハッシュを計算する場合にＤＳＢ指令と連結することができる。ＳＭ使用可能ＩＣがＤＳＢ署名を検証する場合に、中間記憶装置の値が、ＤＳＢ生成時にデレゲート権限システムによって使用される値と同じではない場合、計算されたハッシュは署名入りハッシュと一致せず、これでＳＭコアはＤＳＢを拒否することができる。
[00148]  また、幾つかの実施形態では、ＲＳＢによって、ＳＭコアは、１つ又は複数のＳＭ指令を保持するために中間記憶装置を使用してＤＳＢが実行できる活動を制限又は修正する。この実施形態では、ＲＳＢのＳＭ指令は、データを中間記憶装置に書き込ませることができる。これで、ＳＭコアはＤＳＢ署名を検証し、有効である場合は、ＳＭコアが中間記憶装置に書き込まれたデータを指令として処理し、データを実行する。例えば、中間記憶装置のデータは、「値６４を機能アドレスＸに書き込む」（例えばＸが無線周波を構成できる場合）という指令の表現であることがある。指令全体を公式化することにより、この例のＲＳＢはデレゲート権限システムのみに周波数を６４のみに設定し、他のいずれの値にも設定しないように権限付与する。この実施形態の延長では、ＲＳＢは、中間記憶装置の制限された部分を修正することをＤＳＢに許可し、したがって指令の制限された変形を作成するようＤＳＢに権限付与するデレゲート許可を含むことができる。例えば、デレゲートが、周波数に対応するパラメータの最下位４ビットの変更を許可されただけの場合、これによってデレゲート権限システムが周波数を６４〜７９の任意の値に設定することが許可される。
[00149]  ある実施形態では、ＳＭコアは、機能及び鍵の管理のために制御メッセージのフィルタリングに使用されるセキュア時間基準を管理する。時間基準は、ＳＭコア内に維持することができるか、又はＳＭコアに時間を提供する別個のブロック内にあってよい。この例では、署名入りブロック（例えばＲＳＢ、ＤＳＢ）は、鍵の出力又は機能の調節を指示することができるが、時間がある特定の時間ウィンドウ内にある場合にのみ使用することができる。署名入りブロックは、ＳＭコアに現在の時間値との指示された比較を実施させる指令を含む。例えば、これを使用して、試行鍵又は試行機能が試行期間外にロードされるのを防止することができる。セキュリティを追加するために、（時間がセキュアサーバ上のクロックで追跡可能であるように）ＳＭ機能信号によって時間基準を管理し、設定することができる。このケースでは、上記ＲＳＢ特定の結合データを使用して、その時間設定を、署名権限として作用するルート又はデレゲート権限システムとの生の対話で実行するよう要求することができる。あるいは、低信頼のソフトウェアによる基準の調節を許可するが、（ＳＭコアの内側又は外側の）追跡値により、デバイスの時間基準が調節されているか、電源を切られているか、又は高信頼の時間サーバとの生のＲＳＢ及び／又はＤＳＢの対話を介して時間基準が有効と標識されたのでリセットされているか監視することにより、高信頼の時間ソースを生成することができる。
３．１  機能管理
[00150]  機能管理を使用して、ＳＭ使用可能ＩＣの構成及び他の機能状態を更新するか、及びその方法を制御することができる。ＳＭ使用可能ＩＣの機能状態は、ＳＭ使用可能デバイスの能力、例えば機能の動作を使用可能にするか、使用不能にするか、又は他の方法で安全に構成する能力、製品チップＩＤに基づいてハードウェアの能力を構成する、ＳＭ使用可能ＩＣの地理的位置に基づいてハードウェアの能力を構成する、性能設定を構成する、ある種の外部インタフェースの使用を許可又は構成する、ある種の動作モードの使用を迂回する（例えば、使用可能／使用不能バグは、ある種の機能的動作モードを迂回する、ＲＯＭパッチする、マイクロコードを調節するなどのモードを固定する）、特定のモード又は機能がいつアクティブ化するか制御する（例えば製造プロセス中のみアクティブ）能力、機能が使用するパラメータを調節する、ＳＭ使用可能ＩＣの構成を調節する、構成又はＳＭコアがアクセス可能な他の情報を証明する監査動作を実行する、インフィールドデバイスで診断活動を安全に実行する、プロセスの変動を補償するためにアナログ回路を較正又は調整する、デバイス構成データを設定する（例えば特定の製品で入力クロック及び所望の動作周波数のＰＬＬを構成する）、特定の製品又は地域に適用可能な規制要求事項に基づいて無線の出力及び周波数を調節する、内部の熱フェールセーフによって加えられる限界を構成する（熱限界は、様々な製品で使用されるパッケージング及び冷却溶液に基づいて変動することがある）、バッテリの充電回路を構成する、ＳＭ使用可能ＩＣの潜在的能力又はアップグレードを使用可能にする、ＳＭ使用可能デバイスへの宣伝メッセージの表示を（例えばソフトウェアに構成状態を提供することによって）使用不能にする、ＳＭ使用可能ＩＣ上でＣＰＵをより高い動作性能までインフィールドのアップグレードを小可能にするなどの能力（又はそれらの組み合わせ）を制御することができる。例えば、診断及びデバッグモードの制御により、デバッグ機能を一時的に（例えば次のリセットまで）使用可能にすることができる。また、幾つかの実施形態では、機能状態を更新するか否かは、（課金及び報告サービス１２２によって管理されるように）料金が支払われたかによって決定される。
[00151]  ＳＭコア（及びＳＭ使用可能ＩＣ）の例示的アーキテクチャは、機能の構成設定は秘密ではないが、機能設定の変更には（例えばルート権限由来の）特権が必要であることを仮定している。秘密鍵の場合、値の秘密性を保護することが追加的に要求されることがあり、したがって秘密値は、次のセクションでさらに詳細に説明する鍵管理機能を使用することによって取り扱うことができる。ディジタル署名を使用して、機能の変更（さらに鍵関連の動作）が権限付与された関係者によってのみ実行できることを確実に行うことができる。
[00152]  機能管理は、機能の変化を不揮発性メモリ（例えばセキュアメモリ３１０）に記録すること、次のリセットまでしかアクティブでない機能の変化を使用可能にすること、（クロックサイクルカウンタ又は実時間クロックで測定した）固定期間だけ有効である機能の変化を使用可能にすること、選択された動作モードを使用可能にすること（例えば診断及びデバッグモード、ＰＬＬ構成などを制御すること）、又はそれらの組み合わせを含むことができる。
[00153]  図１０は、ＳＭ使用可能ＩＣの機能を管理する例示的方法のフローチャートである。ステップ１００５で、ＳＭ使用可能ＩＣが１つ又は複数の署名入りブロック（例えば１つ又は複数のＲＳＢ、ＤＳＢ、又はそれらの組み合わせ）を受信する。署名入りブロックは、ＳＭ使用可能ＩＣのＳＭコアによって処理されると、ＳＭコアがその管理する機能状態を更新できるようにする更新情報を含む。情報は、例えば１つ又は複数のＳＭ指令、１つ又は複数の鍵、又はそれらの組み合わせを含むことができる。ＳＭコアは、対応する公開鍵を使用して署名入りブロックのディジタル署名を確認する（１０１５）。例えば、署名入りブロックがＲＳＢである場合、ＳＭコアはルート権限公開鍵（例えばＳＭ使用可能ＩＣに記憶される）を使用して、ディジタル署名を確認する。同様に、署名入りブロックがＤＳＢである場合、ＳＭコアは（ＲＳＢからの）デレゲート権限公開鍵を使用して、ＤＳＢのディジタル署名を確認する。代替実施形態では、ＳＭ使用可能ＩＣ（又はＩＣを含むデバイス）は、ルート権限システム、デレゲート権限システム、第三者サーバ、又はそれらの組み合わせと接触して、適切な公開鍵又は他の必要な情報を検索することができる。
[00154]  ディジタル署名が有効ではない場合は、プロセスが終了する（１０２０）。ディジタル署名が有効である場合、ＳＭコアは、現在の許可が要求された機能更新を許容するか判断する（１０２５）。この実施形態では、許可は、ＳＭ指令、又はセキュアメモリ３１０、ＲＳＢ、ＤＳＢ、又はそれらの組み合わせの設定から設定することができる。許可が機能更新を許容しない場合は、プロセスが終了する（１０２０）。許可が機能更新を許容する場合、ＳＭコアは、ＳＭ指令を永続的な機能更新として実行するか判断する（１０３０）。（永続的機能更新は、例えば変更が不揮発性メモリに記録されるので、ＳＭ使用可能ＩＣがリセットされた後も継続する更新である。）はいの場合、ＳＭコアは、永続的機能更新を実行するために、適宜、ＳＭ指令、鍵値、機能構成値、又はそれらの組み合わせを不揮発性セキュアメモリ（例えばセキュアメモリ３１０）に保存し（１０３５）、任意選択で、ＳＭコアの対応する機能状態も更新する（１０４０）。ＳＭ指令が永続的機能更新として実行されない場合、プロセスはステップ１０４０へと移動し、ＳＭコアによって管理された機能状態を更新して、プロセスが完了する（１０４５）。
３．２  鍵管理
[00155]  鍵管理機能を使用して、ペイロード、例えば秘密鍵又は他の値を安全に配送することができる。宛先は、ＳＭ使用可能ＩＣで実行されるソフトウェア、ハードウェアブロック、又はＳＭ使用可能ＩＣを含むデバイスの他の部分の場合さえ含むことができる。ＳＭ使用可能ＩＣは、幾つかの永久的に記憶されたデバイス固有の対称鍵（ベース鍵）を含む。ベース鍵を使用して、追加の鍵の安全な配送をブートストラップすることができる。ペイロードを含む署名入りブロックを受信した後、ＳＭ使用可能ＩＣは、ペイロードを抽出する前にブロックの署名及び任意の関連する許可を確認する。鍵管理指令に遭遇すると、ＳＭ使用可能ＩＣは、ベース鍵から最初にトランスポート鍵を導出する鍵アンラッピングプロセスを実行し、稚児もトランスポート鍵を使用して、指令に含まれるか、又は指令が参照する鍵を復号し、最後に復号した鍵を別のハードウェアユニットに渡す。図３を参照しながら以上で説明したように、復号鍵は、例えば直接、又はエクストラクタ、鍵インタフェース、及びサブエクストラクタを介してハードウェアユニットに渡すことができる。鍵管理指令は、セキュア施設で実行する必要はなく、ペイロードは低信頼の通信チャネル上でＳＭ使用可能ＩＣを含む製品へとインフィールドで配送することができる。
[00156]  一実施形態では、鍵アンラッピングプロセスは、サイドチャネル及び障害誘導攻撃に対する保護を提供する鍵ツリー構造を使用する。鍵ツリー構造は、単一の開始鍵から複数の異なる鍵の生成を可能にし、次に生成された各鍵を連続的に使用して、複数の異なる追加鍵を生成することができる。鍵アンラッピングプロセスの代替実施形態は、ブロック暗号（ＡＥＳなど）、非対称アルゴリズム（ＲＳＡなど）などを使用することができる。
[00157]  図１１は、ペイロードを安全に伝送するためにＤＳＢを生成する例示的方法のフローチャートである。以上で説明したように、ペイロードは秘密鍵を含むことができる。ステップ１１００で、デレゲート権限システムが計算のためのベース鍵を受信する。ベース鍵は、例えばグローバルベース鍵又はチップ固有のベース鍵とすることができる。デレゲート権限システムは、例えばＩＣ製造業者１１０、製品ベンダ１２５、又はセキュリティサービス１２０からベース鍵を受信することができる。デレゲート権限システムは、製品に（例えばＳＭコアのセキュアメモリ３１０に）記憶された値を復号又は他の方法で処理することによって、ベース鍵も判断することができる。
[00158]  様々な実施形態では、グローバルベース鍵は複数のＳＭ使用可能ＩＣによって使用することができる。例えば、グローバルベース鍵は、ＨＷ定数としてＳＭ使用可能ＩＣに提供されるルート権限システム鍵でよい。他の実施形態では、ベース鍵はデバイス固有の鍵、例えばＳＭにプログラムされるベース鍵である。場合によっては、デバイス固有の鍵は一部が製品チップＩＤから導出される。別の実施形態では、デレゲート権限システムは、（ベース鍵ではなく）混合鍵又は混合鍵のプリカーサを取得する。例えば、各チップが一意のデバイス固有のデバイス鍵ＫＣＨＩＰを有する場合、ルート権限は各チップのＦ（ＫＣＨＩＰ、デレゲートＩＣ）のテーブル／データベースをデレゲート権限システムに（例えばセキュリティサービス１２０を介して）分配することができ、ここでＦは、ハッシュなどの暗号化動作であり、デレゲート装置がチップのテーブル項目をその混合鍵として使用する（又は混合鍵を形成する）ことを可能にし、ＲＳＢは特定のデレゲートのデレゲートＩＤが同じ値に到達するためにＳＭコアにＦ（ＫＣＨＩＰ、デレゲートＩＤ）を計算するように指示することができる。さらに一般的に、委譲されたベース鍵は、委譲した鍵データベースの一部として配送することができ、ＳＭコアに知られている１次ベース鍵、ＳＭコアに知られているか、（例えばＲＳＢ及び／又はＤＳＢ内の）ＳＭコアに配送することができるパラメータ値（デレゲートＩＤなど）、及び１つ又は複数の鍵生成機能を使用して導出される。例えば、混合鍵は、鍵ラダー、ＨＭＡＣ、ハッシュ機能、又は他の鍵導出方法を使用して導出することができる。データベースは、例えばチップ毎に１つ以上の委譲されたベース鍵を含むことができる。委譲されるベース鍵は、ルート権限システムによって生成することができる。例えば、ルート権限は、例えばＡＥＳ及び一方向機能のシリーズを使用してマスタ鍵からデバイス固有のベース鍵を導出することができる。この方法の導出及び鍵制御は、第三者が不適切に鍵を管理した場合、より高い値の鍵が損なわれるのを防止するのに役立つことができる。
[00159]  ステップ１１０５で（混合鍵が、例えば上記代替実施形態に従って以前に既に導出されていない限り）、デレゲート権限システムが混合鍵を導出する。デレゲート権限システムは、以前のステップで導出された鍵の１つ又は複数の一方向機能のシリーズを使用して、混合鍵を導出することができる。例えば、混合鍵は、鍵ツリー動作、ＨＭＡＣ計算、ハッシュ機能、又は他の鍵導出方法を使用して導出することができる。ベース鍵からの追加の抽象は、ベース鍵を直接的攻撃から保護するのに役立つことができる。
[00160]  ステップ１１１０で、デレゲート権限システムが、一方向機能のシリーズを使用して混合鍵から１つ又は複数のトランスポート鍵を導出する。ステップ１１１０は、対称暗号、非対称暗号、一方向暗号機能、又はそれらの組み合わせを含むことができる。次に、デレゲート権限システムは、例えばマスタ鍵からペイロード鍵を導出するか、又は事前計算したデータテーブルからペイロード鍵を検出するか、又はネットワーク上のペイロード鍵を取り出すことによってペイロード鍵を取得することができる。幾つかの実施形態では、事前計算したテーブルは、鍵を発行する第三者（ＨＤＣＰ、ＥＭＶなどの特定のシステム又はプロトコルの鍵を発行する責任があるエンティティなど）によって生成することができるか、又はデレゲート権限システムによって以前に生成されている。ペイロード鍵は、暗号化して記憶し、ペイロード鍵を得るプロセス（１１２０）の一部としてデレゲート権限システムで復号する。
[00161]  ステップ１１３０で、デレゲート権限システムは、１つ又は複数のトランスポート鍵を使用してペイロード鍵を暗号化する。
[00162]  ステップ１１３５で、デレゲート権限システムが、暗号化したペイロード鍵及び混合鍵（又は別の鍵）を使用してバリデータを導出する。特に、バリデータは、最終的出力がバリデータである１つ又は複数の一方向機能のシリーズの入力として、暗号化したペイロード鍵及び混合鍵を供給することによって生成することができる。バリデータによって、ＳＭコア（又は船体的に、暗号化したペイロード鍵の他の受信者）は、暗号化したペイロード鍵が有効で、未修正であることを検証することができる。
[00163]  ステップ１１４０で、デレゲート権限システムは１つ又は複数のデレゲート入力パラメータ（署名に関与する他の値に加えて、ＳＭコア及びエクストラクタ／サブエクストラクタが最終的にペイロードを配送すべきアドレスを含むことができる）を受信する。さらにステップ１１５０で、デレゲート入力パラメータ、暗号化したペイロード鍵、及びバリデータに、デレゲート権限システムのプライベート鍵を使用するデレゲート権限システムによってディジタル署名し、ＤＳＢを生成する。ステップ１１６０で、ＤＳＢを提供する。
[00164]  あるいは、図示されていない幾つかの実施形態では、ステップ１１３５を省略し、したがってステップ１１５０で、バリデータはディジタル署名せず、提供されるＤＳＢの一部ではない（１１６０）。
[00165]  図１２は、ペイロードを含む１つ又は複数の署名入りブロックをＳＭコアによって処理する例示的方法のフローチャートである。例えば、１つ又は複数の署名入りブロックは、ＲＳＢ及び関連するＤＳＢ（例えば図１１のプロセスにより生成される）でよい。別の実施形態では、ペイロードをＤＳＢなしでＲＳＢ内に含めることができる。
[00166]  ステップ１２００で、１つ又は複数の署名入りブロック（例えば１つ又は複数のＲＳＢ、ＤＳＢ、又はそれらの組み合わせ）をＳＭコアにて受信する。追加の署名なしデータ（バリデータで暗号化したペイロードなど）も受信することができる。これらの要素は同時に、又は異なる時に受信することができる。
[00167]  ステップ１２１０で、ＳＭコアが１つ又は複数の署名入りブロックのディジタル署名が有効であることを検証し、任意のＤＳＢのデレゲート許可が有効であることを検証する。検証プロセスは、図９Ａ及び図９Ｂに関連して上述したものと同様である。１つ又は複数の署名入りブロックのディジタル署名が有効ではない、又はデレゲート許可が有効ではない場合、ＳＭコアは１つ又は複数の署名入りブロックを拒否し（１２１５）、プロセスが終了する（１２５０）。しかし、ディジタル署名及び許可が有効である場合、ＳＭコアは、ＳＵコアに知られているベース鍵（例えばグローバル鍵又は委譲されたベース鍵）を使用して、例えば混合鍵の生成に使用するものと同じアルゴリズムを使用して、混合鍵を導出する（１２２０）（図１１に関連する記述参照）。これで、ＳＭコアは、ベース鍵及び図１１でトランスポート鍵を生成したものと同じアルゴリズムを使用して、トランスポート鍵を導出する（１２２５）。
[00168]  ＳＭコアは、暗号化したペイロード鍵をＤＳＢから（又はＲＳＢから、又は暗号化したペイロードが存在する場所である場合は、署名されていないデータから）抽出し（１２３０）、暗号化したペイロード鍵及び混合鍵を使用し、図１１でトランスポート鍵を生成したものと同じアルゴリズムを使用してバリデータを導出する（１２３５）。次に、ＳＭコアはバリデータが正しいか判断することができる（１２４０）。ＳＭコアは、ステップ１２３５で導出したバリデータを、（例えばＤＳＢ中の）ペイロード鍵で受信したバリデータと比較することによって、この判断を実行する。２つのバリデータが一致しない場合、これはエラーであり（１２１５）、プロセスが終了する（１２５０）。バリデータが一致した場合、ＳＭコアは、トランスポート鍵を使用して暗号化したペイロード鍵を復号し（１２４５）、プロセスが終了する（１２５０）。
[00169]  あるいは、図示されていない幾つかの実施形態では、ステップ１２３５及び１２４０を省略し、したがってバリデータを使用せずに、暗号化したペイロード鍵を復号することができる。ステップ１２３５及び１２４０は、例えば（ＲＳＡ、ＥＣ−ＤＳＡ、又はバリデータに含まれる他のディジタル署名を検証することなどによって）別個に計算せずにバリデータを検証することによってバリデータを検証する他の方法で置き換えることもできる。
[00170]  また、幾つかの実施形態（図示せず）では、暗号化したペイロード鍵をＤＳＢから抽出する（１２３０）のではなく、代わりに（例えば）ＲＳＢ（又は他の署名入りブロック）から、レジスタＩ／Ｆ（例えばレジスタＩ／Ｆ３５８）上で署名入りブロックから別個に提供されたセキュアメモリ（例えばセキュアメモリ３１０）から検索するか、又はＳＭコア内のプライベートメモリから検索することができる。
３．３  監査
[00171]  様々な時に、ＳＭ使用可能ＩＣの状態を検証することが望ましいことがある。監査能力は、例えば以前の機能管理指令がデバイスに適切に適用されていることを確認するか、又はデバイスの真正性を検証するために使用することができる。例えば、顧客が機能を使用可能にした取引の返金を要求した場合は、購入価格を返金する前に機能が使用不能にされていることを検証することが望ましいことがある。
[00172]  一般的監査プロセスは、監査エンティティからのチャレンジ受信を含むことができる。このチャレンジはランダムパラメータでよく、特定の要求に応答して応答を生成したことを確認できるように含まれる。チャレンジ受信後、ＳＭ使用可能ＩＣは、（１）秘密鍵（例えば監査指令で規定されたベース鍵）を知っていること、及び（２）適切な状態の値又は状態の特性（例えばチャレンジで規定された基準を満たしていること）を知っていることを実際に示す証明を生成することができる。例えば、監査指令に応答して、例示的ＳＭコアは、秘密鍵及び監査中の機能状態のビットの関数である監査証明値を計算することができる。秘密鍵を監査計算に含めることにより、秘密鍵を知らない相手が監査応答をねつ造することが防止される。監査エンティティが、最終的に応答を検証する。状態監査は、対称暗号（メッセージ認証コードなど）及び／又は公開鍵暗号（ディジタル署名など）を使用して、証明を確保することができる。
[00173]  例示的実施形態では、監査要求は任意選択で、指令署名者も選択された秘密鍵を知っていることを実際に示すバリデータを含むことができる。ＳＭコアは、例えばこのバリデータが内部計算した基準と一致した場合に、監査証明を生成するだけである。要求のバリデータは、権限付与されていない関係者が監査指令を呼び出すのを防止するのに役立つことができる。
[00174]  ＳＭコアの内部機能を含めて任意の機能状態の値は、潜在的に監査可能である。例えば、監査機能を使用して、以前の機能管理指令がＳＭ使用可能ＩＣに適切に適用されていることを検証するには、以前の指令が、その成功を示す内部ビットを設定することができ、それでこのビットをその後に監査することができる。監査エンティティの目的が、ＳＭコアを含む（しかし、その状態は含まない）デバイスの真正性を検証することのみである場合は、任意の機能状態を応答に組み込む必要がないことがある。
[00175]  監査は、グローバル鍵、デバイス特有の鍵、ＳＭ使用可能ＩＣのシリーズによって共有される鍵、又はそれらの組み合わせなど、ＳＭコアに入手可能な任意の鍵を使用して実行することができる。デバイスに特有の鍵を使用する実施形態では、鍵のデータベースを（例えばルート権限、ＩＣ製造業者、製品ベンダ、セキュリティサービスなどによって）オーディタにとって入手可能にして、監査応答の検証（さらに場合によっては監査要求の生成）を促進することができる。
４．コンフィギュレータ及びコンパイラの機能
[00176]  コンフィギュレータシステム（例えばコンフィギュレータシステム２８０）は、ＳＭ使用可能ＩＣの設計プロセス中に使用することができる。コンフィギュレータシステムは、ＡＳＩＣ設計プロセス中に動作して、ＳＭコアが管理した特徴空間及び鍵の、機能及びＩＣ内の他の宛先又は使用へのマッピングを追跡して、自動化する。図１３Ａは、ＳＭ使用可能ＩＣの設計プロセス中にコンフィギュレータシステムを使用する例示的方法のフローチャートである。ステップ１３１０で、コンフィギュレータシステムがコンフィギュレータ入力データを受信する。コンフィギュレータ入力データは、１つ又は複数のコンフィギュレータ入力ファイル、ハードウェア（「ＨＷ」）定数、又はそれらの組み合わせを含むことができる。
[00177]  １つ又は複数のコンフィギュレータ入力ファイルは、ＳＭ使用可能ＩＣの望ましい構成に関する情報を定義する。例えば、これらのファイルは、各機能に配送すべき構成値の名称及びサイズ（例えばビット数）、機能アドレス空間内の構成値のグループ分け又は位置、好悪性値のデフォルト（例えば電源投入）値、セキュリティ鍵のバス宛先の名称及び属性、セキュリティ鍵のバス属性（宛先の鍵サイズなど）、セキュアメモリマッピング属性（セキュアメモリ３１０のレイアウトに関する情報など）、又はそれらの組み合わせなどのことを規定することができる。
[00178]  ＨＷ定数をコンフィギュレータ入力ファイルに含めるか、又は別個に受信することができる。コンフィギュレータに入力されるＨＷ定数の例には、例えば製品チップＩＤ、ルート権限からの１つ又は複数の鍵（場合によってルート権限の公開鍵を含む）、デレゲート権限からの１つ又は複数の鍵、１つ又は複数のベース鍵、１つ又は複数の追加のセキュリティ鍵、誤り訂正データなどを含めることができる。
[00179]  ステップ１３２０で、コンフィギュレータシステムはＩＣ設計ファイルを生成する。これらのＩＳ設計ファイルには、エクストラクタハードウェア定義、サブエクストラクタハードウェア定義、及び状態キャッシュデータ（例えばＩＣ構成マップ情報）を含めることができる。幾つかの実施形態では、先行するＩＣ構成マップ情報に、ステップ１３１０でコンフィギュレータ入力データを含めて、ＳＭ使用可能ＩＣの設計に変更を組み込む場合に既存の回路設計のレイアウトの修正を最小化することができる。この場合、コンフィギュレータは、要求された変更を実行するのに最も影響が少ない方法を識別しようとする。例えば、機能アドレス空間に新しい値を挿入すべき場合、これは、以前のマップを使用して、（例えば既存の値の位置を再度生成するのとは対照的に）以前に使用されていない挿入位置を識別することを含むことができる。同様に、機能アドレス空間から値を除去する場合、コンフィギュレータは以前のマップ情報を使用して、残りの機能を再配置するのではなく、ギャップを残すことができる。
[00180]  チップ設計は、例えばチップ設計が大規模製造用に準備されているので、ロックダウンされる（ステップ１３３０）。この時点で、製造に使用するマスクセットに影響するコンフィギュレータ出力は、もはや変更することができない。図１３Ｂは、チップ設計を製造に委ねた後にコンフィギュレータを使用できる方法の例示的プロセスのフローチャートである。
[00181]  ステップ１３４０で、コンフィギュレータシステムはコンフィギュレータオペレーショナル入力データを受信する。コンフィギュレータオペレーショナル入力データは、図１３Ａで生成したＩＣ構成マップ、さらに（例えばオペレーショナルＳＭ構成ファイル中の）追加のデータを含むことができる。オペレーショナルＳＭ構成ファイルは、例えば特定のＳＭ使用可能ＩＣに関連する機能及び鍵を使用できる方法に関する方針、命名規則への変更、ＳＭコアがセキュアメモリ３１０を使用するためのレイアウト及び構成規則、及び内部機能の機能アドレスへのマッピングを記述することができる。
[00182]  ステップ１３５０で、コンフィギュレータシステムはオペレーショナル構成マップを内部で生成する。図１３Ｂのステップは図１３Ａのステップより後で実行することができるので、ステップ１３５０で生成されたマップは、図１３Ａの最中に準備できたものより包括的で、最新の機能アドレス範囲のマッピングとすることができるが、図１３Ｂのプロセスは通常、チップのハードウェアに実際に影響する図１３Ａからの出力を変更できないと仮定しなければならない。
[00183]  ステップ１３６０で、コンフィギュレータシステムはそのオペレーショナル構成マップからマッピングファイルを生成する。これらのマッピングファイルは、１つ又は複数の指令マッピングファイル及び１つ又は複数のファームウェアマッピングファイルを含む。指令マッピングファイルは、例えばＳＭコアが理解可能な形態に指令をマップするために使用するファイルである。例えば、ルート権限システムが特定の構成値を所与の機能に伝達したい場合、このファイルは、ルート権限システムが、その構成値及び機能に対応する特徴空間アドレスを識別するのに役立つことができる。ファームウェアマッピングファイルは、ソフトウェア開発に必要な定義及び構造を含むファイルである（例えばＣ又はＣ＋＋ヘッダ及びソースファイルなど）。幾つかの実施形態では、オペレーショナル構成マップに、ステップ１３４０でコンフィギュレータオペレーショナル入力データを含めて、オペレーショナル入力データに追加の変更を加える場合に既存のオペレーショナル設計の修正を最小化することができる。
[00184]  また、幾つかの実施形態では、コンフィギュレータシステムは文書化ファイルを生成する。文書化ファイルは、特徴空間に割り当てられた名称及び関連するアドレスのリスト、各機能に送信する構成値のリスト、支援される鍵の情報、機能アドレス空間の値のデフォルト値などのＳＭ使用可能ＩＣの設計の概要を提供する。また、文書化ファイルは、ソフトウェアコンポーネントの設計に使用される環境及び構造の原理を含むことができる。文書化ファイルは、ＸＭＬ、ＨＴＭＬ、テキスト、ＰＤＦ、ＷＯＲＤなどのフォーマットで出力することができる。
５．オペレーショナルエコシステム
５．１  セキュアメモリの指令セグメント及び電源投入プロセス
[00185]  例示的実施形態では、指令セグメント領域は、ＳＭ使用可能ＩＣの一部であるセキュアメモリ３１０に存在する。この領域は、各リセット時にＳＭ使用可能ＩＣが実行するＳＭ指令を保持する。記憶されたＳＭ指令はセグメントで編成され、特徴空間の値の永続的設定を実行するために、及びＳＭ使用可能ＩＣが各リセット時に（例えばファームウェア復号鍵などの鍵を配送するために）指令を実行し、及び／又はＳＭ使用可能ＩＣ内で構成動作を永続的に進めることが望ましい他のケースで使用することができる。
[00186]  セキュアメモリは通常は永続的であり、（ワンタイムプログラマブルメモリを使用するような）幾つかの実施形態では、容易に上書きすることができないことがあり、そのために頑強性を改善する措置が必要になることがある。生じ得る１つの障害は「引き裂き」であり、これは書き込みプロセス中の割り込みであり、例えば電源障害が原因である。指令セグメントの書き込み中に割り込んでも、その後のリセット時にＳＭ使用可能ＩＣが使用不可にならないことが望ましい。生じ得る別の障害は、セキュアメモリに記憶されたデータの破損であり、例えばシリコンの劣化又は外部状態が原因である。この場合も、影響は最小限で、単一の破損事象ではＳＭ使用可能ＩＣが使用不可になる可能性が低いことが望ましい。また、セキュアメモリの（例えば攻撃の一部としての）破損で、ＳＭコアによって強制されるＳＭ使用可能ＩＣの動作に対するいかなる制限の無効化も可能にならないことが望ましい。
[00187]  ＳＭ指令は、ＳＭコアがセキュアメモリに書き込む方法を制御する情報を含むことができる。例えば、引き裂き防止フラグ（引き裂き防止モード）、又はエラー時再開フラグ（エラー時再開モード）、又はそれらの組み合わせがあってよい。
[00188]  引き裂き防止モードがアクティブ状態にある場合、例示的ＳＭコアは、指令セグメントを書き込むプロセス（又は他の書き込み動作）の開始時に「スキップワード」をセキュアメモリに書き込む。書き込みが完了していない場合、スキップワードによりＳＭコアがその後のリセット時に（例えば部分的に書き込まれたデータを含む領域をスキップできるように）そのことを認識する。スキップワードを書き込んだ後、ＳＭコアはペイロード（例えば指令セグメントの主な内容）を書き込むことができ、次に最終的にスキップワードを（例えばワード中の全ビットを１の値に設定することにより）削除する。引き裂き防止モードを使用していない場合、ＳＭ使用可能ＩＣはスキップワードを書き込まず、これでセキュアメモリの１ワードが節約されるが、書き込みが完了していない場合、ＳＭコアがその後のリセット時に重大な障害を記録することがある。（重大な障害により、例えば正常な動作へと進行するとセキュリティを損なうことがあるので、ＳＭ使用可能ＩＣが入っている機能低下状態にＳＭコアが入ることがある。）スキップワードが削除されると、セグメントは必須になり、その後のリセット毎に使用される（すなわち、スキップワードが削除された後にセグメントを読み取るのに修正不能の問題に遭遇した場合、ＳＭ使用可能ＩＣは重大な障害を生じることになる）。引き裂き防止モードを使用するか否かの選択は、プログラミング環境によって決定されることがある。例えば、制御されたファクトリ環境では、引き裂き防止モードを使用不能にする効率改善が望ましいが、インフィールドの書き込みには引き裂き防止を必須とすることができる。
[00189]  エラーモードで再開する場合、ＳＭ使用可能ＩＣは、セキュアメモリからのセグメントの読み取りに問題がある場合、指令セグメントを無視することが許容可能であることを示すフラグを指令セグメントヘッダに設定する。例えば、エラーフラグでの再開は、ＳＭ使用可能ＩＣの能力を使用可能にするセグメントで設定することができる。ＳＭ使用可能ＩＣがそのセグメントをスキップすると、セキュアメモリから読み取ることができないので、セグメントを適切に読み取り、処理している場合よりもＳＭ使用可能ＩＣの能力が低くなることがあるが、セキュリティのリスクは発生しない。
[00190]  ＳＭ使用可能ＩＣにより、セキュアメモリに書き込まれた任意のセグメント（又は他のデータ値）に対して、引き裂き防止フラグ及びエラー時再開フラグのいずれも指定することができないか、あるいは一方又は両方を指定することができる。ＳＭ使用可能ＩＣは、セキュアメモリへの全書き込みについて、特定のモードの組み合わせを使用することを要求することもできる。
[00191]  リセット後、ＳＭコアは、セキュアメモリ（例えばセキュアメモリ３１０）に記憶された指令セグメントの指示通りに機能及び鍵状態を初期化する。図１４は、ＳＭ使用可能ＩＣを初期化する例示的方法のフローチャートである。
[00192]  ステップ１４０５で、ＳＭ使用可能ＩＣに電源投入するか、又はリセットする。ＳＭコアは、このステップの一部としてリセットすることができる。次に、ＳＭコアはＳＭ使用可能ＩＣ及びインテグリティチェック値に関連する製品チップＩＤを検索する（１４１０）。（インテグリティチェック値は、例えばパリティチェック、ハミングコードなどに関連する値とすることができる。）ＳＭ使用可能ＩＣは、インテグリティエラー（例えば製品チップＩＤ又はインテグリティチェック値が破損している）が発生しているか判断するためにインテグリティチェックを実行する（１４１５）。インテグリティエラーが発生している場合は、エラーを報告し（１４２０）、プロセスを停止して（１４４５）、ＳＭコアは「重大な障害」状態に入ることがある。インテグリティエラーが発生していない場合、ＳＭコアはセキュアメモリから指令セグメントを検索する（１４２５）。
[00193]  ＳＭコアは、セキュアメモリに含まれる指令セグメントを予測可能な順序で処理する。例えば、セグメントをセキュアメモリ内に連続的に位置付けるか、各セグメントが処理すべき次のセグメントのメモリアドレスを含むことができる。場合によっては、エラー（１４３０）によってＳＭ使用可能ＩＣが、処理すべき次の指令セグメントの位置を確実に判断できないことがあり、その場合、コアはフォールバックメカニズム（例えば既知のヘッダ値の探索）を使用して次のセグメントを突き止めるか、これを重大な障害として処理しようとすることができる。エラーが発生していない場合、ＳＭコアは指令セグメントの指令を実行する（１４３５）。次に、ＳＭコアは、実行すべき追加の指令セグメントが残っているか判断する（１４４０）。残っている場合、フローはステップ１４２５へと移動する。
[00194]  残りの指令セグメントがない場合、ＳＭコアは、外部システム（例えばプロセッサ３５５、ＳＭ使用可能ＩＣの機能又は他の部分、又はＳＭ使用可能ＩＣを組み込んだデバイス）に初期機能状態の準備が整ったことを通知する（１４５５）。この通知をＳＭ使用可能ＩＣが使用し、例えばＳＭコア以外のＳＭ使用可能ＩＣのすべての部分をリセット状態に保持し、他のコンポーネントに必要とされる前に、ＳＭコアからの必要な値の準備が整っていることを確認することによって、チップの他の部分の起動を順序付けることができる。これで、プロセスが終了する（ステップ１４６０）。
[00195]  ステップ１４３０に戻ると、エラーが発生した場合、ＳＭ使用可能ＩＣは、次の指令セグメントにスキップすることが許容可能か判断する（１４４５）。例えば、指令セグメントのヘッダは、スキップワード又はエラー時再開フラグを含むことができ、これはＳＭコアに対して問題がある指令セグメントをスキップするように命令する。問題がある指令セグメントをスキップすることが許容可能である場合、ＳＭ使用可能ＩＣは（例えばその後の分析のためにエラー情報を保存することによって）非致命的エラーを報告し（１４５０）、ステップ１４４０へと移動することができる。ＳＭ使用可能ＩＣにより、問題がある指令セグメントをスキップすることが許容可能ではないと判断された場合は、より重大なエラーを報告し（１４２０）、プロセスを中止する（１４４５）。
[00196]  ＳＭコアは、例えば図１４に述べた初期化プロセスの前、その間、又はその後に、ベース鍵を初期化することができる。性能及び柔軟性を最大にするために、ＳＭコアは、指令セグメントによって起動中に実行することを要求されているベース鍵のみを初期化し、次にＳＭ使用可能ＩＣの残りの部分が起動するよう解除された後に、残りのベース鍵を初期化することができる。
[00197]  幾つかの実施形態では、セキュアメモリ中のエラー（例えばメモリインテグリティエラー）は、ルート権限システムによって修復することができる。エラーは、例えば以前のＲＳＢ又はＤＳＢによって書き込まれたものがある。ルート権限システムは、ＳＭ使用可能ＩＣがエラーを引き起こした指令セグメントをスキップすることを許可する取り消し指令を含むＲＳＢを送信することができる。また、ＲＳＢは、障害がある指令セグメントを置き換えるか修正する追加のＳＭ指令を含むことができる。また、幾つかの実施形態では、セキュアメモリ中のエラーデータがデレゲート権限システムからのＤＳＢによって書き込まれた場合、異なるデレゲート権限システムが、ＳＭ使用可能ＩＣにエラーを引き起こした指令セグメントをスキップすることを許可する打ち消し指令を含むＤＳＢを送信することができる。また、ＤＳＢは、障害がある指令セグメントが以前に扱っていたタスクを実行する追加のＳＭ指令を含むことができる。
５．２  個別化
[00198]  個別化とは、製造中にＳＭ使用可能ＩＣに鍵（例えばデバイスに特有）及びデータ（例えば指令セグメント）をプログラムすることを指す。個別化された秘密鍵は、鍵管理及び監査機能に使用することができる。ＳＭ使用可能ＩＣにプログラムされる最初の値のうち１つは製品チップＩＤとすることができる。
[00199]  鍵情報は鍵分割として記憶することができる。初期化中に、ＳＭコアは例えば鍵分割、ネットリストに含まれる情報、又はその両方からのデバイス鍵を再構築する。例えば、Ｐ１鍵分割は、デバイスにプログラムされる第一鍵分割として、ウェーハ検査にてプログラムすることができる。Ｐ２鍵分割はパッケージングされたダイの検査時にプログラムすることができる。ＳＭコアがＰ１鍵分割とＰ２鍵分割を組み合わせて、ベース鍵を形成する。組み合わせる機能は、Ｐ１又はＰ２の鍵分割（しかし両方ではない）に関する知識が、ベース鍵を決定するには不十分であるように選択することができる。また、デバイスの組立又は検査中に１つ又は複数の追加の鍵分割を記憶し、ＳＭコアがそれを使用して、追加のベース鍵を決定することができる。例えば、製品製造業者は、製造プロセスの一部として、ＩＣプロバイダ又はＩＣ製造業者に知られていない鍵を記憶したいことがある。個別化データに加えて、ＳＭ使用可能ＩＣは、一意の製品チップＩＤ、製造追跡／日付の情報、ロットＩＤ、ウェーハＩＤ、製品のタイプ、デバイスの履歴データ、及び他の情報のすべての方法でプログラムすることができる。
[00200]  図１５は、例示的個別化プロセスをブロック図の形態で示す。ステップ１５１０で、デレゲート権限システムは、ＳＭ使用可能ＩＣにプログラムされる情報を取得する。情報は、例えば１つ又は複数のベース鍵、１つ又は複数の鍵分割（例えばＰ１、Ｐ２など）、製品チップＩＤ、又はそれらの組み合わせを含むことができる。プログラムされる情報は、デレゲート権限システムに連結されたセキュア記憶装置又はセキュリティデバイス（例えばスマートカード又はＨＳＭ）から取得することができる。
[00201]  ステップ１５２０で、デレゲート転送システムは、適切なメモリ書き込み指令を含むＤＳＢをデバイステスタに転送する。転送される情報は暗号化することができる。デバイステスタはＤＳＢを（付随するＲＳＢとともに）ＳＭ使用可能ＩＣに転送し、そこでＳＭコアがこれを受信、検証、及び（有効な場合は）実行して、メモリをプログラムする。
[00202]  ステップ１５３０で、デレゲート権限システムは、１つ又は複数のＳＭ使用可能ＩＣの個別化に成功したことを示す情報で監査ログを更新することができ、プロセスが終了する（１５４０）。上述したように、次にこれらの監査ログをセキュリティサービス１２０に転送する。
[00203]  また、ＳＭ使用可能ＩＣに入力されるいかなる鍵も、非暗号化又は暗号化した形態でよい。ＳＭ使用可能ＩＣ及び／又はＳＭコアは、個別化のために暗号化鍵を転送する１つ又は複数のメカニズムを支援することができる。例えば、ＳＭコアは、プログラムされるデータを復号するために以前にプログラムされた鍵（例えばルート権限からの１つ又は複数の鍵、デレゲート権限からの１つ又は複数の鍵、シリコンに埋め込まれた１つ又は複数のベース鍵、１つ又は複数の追加のセキュリティ鍵など）を使用することができる。また、ＳＭコアは、例えば共有鍵を使用して、ＳＭ使用可能ＩＣを転送する前に個別化鍵を暗号化することができるデレゲート権限システムとの共有鍵を生成するために、非対称暗号化を使用してセッション鍵を交換又は生成することを許可することができる。セッション鍵は、ＳＭコアが使用して、プログラムされる鍵を復号する。幾つかの実施形態では、例えばＳＭコアと個別化に関与する外部デバイス（例えばデレゲート権限システム）との間に相互認証を提供するために、ＳＭコアに入手可能な追加の対称鍵値とセッション鍵を組み合わせることによって、このプロトコルを拡張することができる。
[00204]  鍵転送メカニズムのいずれも、各個別化ステップで別個に選択することができる。また、ＳＭ使用可能ＩＣは、必ずしも鍵が個別化される順序に制限を加える必要がなく、元の同じマスクセットから生産されるチップが、異なるアプリケーション又は消費者に対して異なる順序で個別化されることを許可する。
[00205]  いかなる個別化を実行する前でも、デレゲート権限システムは、例えば検査のために機能状態を更新するＤＳＢを生成できることがある。一実施形態では、ＳＭコアはデレゲート権限システムに送信されるランダムチャレンジ値を生成する。デレゲート権限システムは、チャレンジ値に結合して、非永続的に所望に応じて機能管理、鍵管理、又はその両方を実行するＤＳＢを生成し、送信する。例えば、デレゲート権限システムは、次のリセットまでＳＭ使用可能ＩＣの１つ又は複数の機能を使用可能にすることができる。したがって、ＳＭ使用可能デバイスの動作を検査できるようにする。このように、チップのセキュアメモリが完全に破損しているか、プログラムされていない場合でも、なおセキュアオペレーションを実行することができる。
５．３  ＳＭ使用可能デバイスの機能状態のインフィールド更新
[00206]  ＳＭ使用可能デバイスのユーザに、機能状態の更新を要求できるようにすることができる。これらの変更の権限を付与するメッセージ（例えばＲＳＢ／ＤＳＢ）は、低信頼のチャネル（インターネットなど）で安全に送信できるように、チップに特有であるか、又は他の方法で限定することができる。売買業者、システムオペレータ、デバイベンダ、及びデバイス製造業者も、ＳＭ使用可能ＩＣの機能を更新する指令を要求することができる。状況によっては、機能更新をＳＭ使用可能デバイスに通信する方法とは別個に、要求を転送する。例えば、ある種の機能能力のロック解除を提供するメッセージのシリーズを事前計算することが可能であり、異なる特定の製品チップＩＣに対して各メッセージが公式化される。事前計算されたこのリストは、ルート権限システム又はデレゲート権限システムに直接接続していないサーバに記憶することができる。適宜（支払いを受け取った後などに）、事前計算リストの項目をＳＭ使用可能デバイスへとリリースすることができる。
[00207]  図１６は、ＳＭ使用可能ＩＣの機能更新の要求に権限付与する例示的方法のフローチャートであり、更新はデレゲート権限システム（例えばデレゲート権限システム２２２）によって権限付与される。
[00208]  ステップ１６００で、デレゲート権限システムが、ＳＭ使用可能ＩＣに関連する機能状態を更新する要求を受信する。要求は、ネットワーク上のメッセージ、ｅメール、ウェブのポータルを介して受信する指令、電話要求、ＳＭＳメッセージなどとすることができる。また、幾つかの実施形態では、要求は、要求を取り扱うデレゲート権限システムに従属するサブシステムからのものでよい。（例えば、従属は、ユーザデータベース又は支払いの証明書を確認することによって要求に権限付与し、次に承認した要求を主要なデレゲート権限システムに転送することができる。）
[00209]  ステップ１６１０で、デレゲート権限システムはこの要求が権限付与されているか判断する。例えば、デレゲート権限システムは、情報又は支援を求めて第三者（例えば課金及び報告サービス１２２、又はセキュリティサービス１２０）に接触することができる。要求が承認されない場合、次にデレゲート権限システムは権限付与の失敗をユーザに報告し（１６２０）、プロセスが終了する（１６６０）。例えば、デレゲート権限システムは、権限付与の失敗及び失敗の理由を示すｅメールをユーザに送信することができる。
[00210]  権限付与要求が承認されると、デレゲート権限システムはＲＳＢを取得する（１６３０）。ＲＳＢは、ルート権限システム又はセキュリティサービスから検索することができるか、又は以前に受信している場合、ＲＳＢはデレゲート権限システムの内部の（又は他の方法でそれと関連する）記憶装置から検索することができる。
[00211]  デレゲート権限システムは、次にＤＳＢを生成する（１６４０）。ＤＳＢは、例えば図８、図９Ａ、図９Ｂ、及び図１１に関連して上述したプロセス、又はプロセスの一部を使用して生成することができる。
[00212]  デレゲート権限システムは、ＤＳＢを提供し（１６５０）、プロセスが終了する（１６６０）。例えば、デレゲート権限システムは、ネットワーク（例えばセルラ又はインターネット）を介してＤＳＢをユーザのＳＭ使用可能デバイスに転送することができる。又は、幾つかの実施形態では、デレゲート権限システムは、（例えばセキュアウェブサイトに記入することによって）ユーザがダウンロードするためにＤＳＢを入手できるようにする。
[00213]  図１７は、ＳＭ使用可能ＩＣの機能更新の要求に権限付与する例示的方法のフローチャートであり、更新はルート権限システム（例えばルート権限システム２１７）によって権限付与される。
[00214]  ステップ１７１０で、ルート権限システムが、ＳＭ使用可能ＩＣに関連する機能状態を更新する要求を受信する。要求は、ネットワーク上のメッセージ、ｅメール、ウェブのポータルを介して受信する指令、電話要求、ＳＭＳメッセージなどとすることができる。また、幾つかの実施形態では、要求は、要求を取り扱うデレゲート権限システムに従属するサブシステムからのものでよい。（例えば、従属は、ユーザデータベース又は支払いの証明書を確認することによって要求に権限付与し、次に承認した要求を主要なデレゲート権限システムに転送することができる。）要求は、デレゲート権限システムからのものでよい。
[00215]  ステップ１７２０で、ルート権限システムはこの要求が権限付与されているか判断する（これは、情報又は支援を求めて第三者に接触することを含むことがある）。要求が承認されない場合、次にルート権限システムは権限付与の失敗を報告し（１７３０）、プロセスが終了する（１７６０）。
[00216]  権限付与要求が承認されると、ルート権限システムは次にＲＳＢを生成する（１７４０）。この実施形態では、ＲＳＢはＳＭコアにその機能状態の更新を指示する情報を含む。ＲＳＢは、例えば図５又は図７に関して上述したプロセスを使用して生成することができる。
[00217]  次に、ルート権限システムがＲＳＢを提供し（１７５０）、プロセスが終了する（１７６０）。
[00218]  次に、本開示の様々な実施形態の例を説明する。
[00219]  実施例＃１によれば、方法は、集積回路のセキュリティマネージャーによってルート署名入りブロックを受信することと、セキュリティマネージャーによって、秘密鍵を使用してルート署名入りブロックに関連する署名を検証することと、セキュリティマネージャーによって、ルート署名入りブロックから指令を抽出することと、セキュリティマネージャーによって、抽出した指令を実行することとを含むことができ、実行する指令は集積回路の動作に関係する。
[00220]  実施例＃２によれば、方法は、集積回路のセキュリティマネージャーによって、デレゲート署名入りブロックを受信することと、セキュリティマネージャーによって、デレゲート権限システムに関連するデレゲート許可及び鍵を識別することと、セキュリティマネージャーによって、デレゲート署名入りブロックに関連する署名をデレゲート権限システムに関連する鍵を使用して検証することと、セキュリティマネージャーによって、デレゲート署名入りブロックから指令を抽出することと、セキュリティマネージャーによって、抽出した指令がデレゲート許可を使用して許可されることを検証することと、セキュリティマネージャーによって、抽出した指令を実行することとを含むことができ、実行する指令は集積回路の動作に関係する。
[00221]  実施例＃３によれば、方法は、集積回路のセキュリティマネージャーによって、集積回路の複数の機能の機能状態を更新する指令を受信することと、セキュリティマネージャーによって、機能の状態の更新が永続的であるか判断することと、更新が永続的である場合、指令をメモリに保存することと、機能の状態を更新する指令を実行することとを含むことができる。一実施形態では、機能の状態は、時間に関連するファクタ、又は集積回路の特性、又はデバイスの特性を含む１つ又は複数のファクタに従って更新される。
[00222]  実施例＃４によれば、方法は、集積回路のセキュリティマネージャーによって、集積回路の機能の状態に関係するチャレンジを受信することを含むことができ、チャレンジは監査システムから受信され、さらに、チャレンジに応答して、セキュリティマネージャーによって、秘密鍵及び機能の状態の関数として監査証明を計算することと、監査証明値を監査システムに提供することとを含むことができる。
[00223]  実施例＃５によれば、方法は、今フィ牛レー他入力ファイル及びハードウェア定数を含むコンフィギュレータ入力データを受信することと、入力データを使用して集積回路の設計ファイルを生成することとを含むことができ、集積回路の設計ファイルは、エクストラクタのハードウェア定義、１つ又は複数のサブエクストラクタのハードウェア定義、及び状態キャッシュを含む。
[00224]  実施例＃６によれば、方法は、集積回路の機能及び鍵の方針を定義するコンフィギュレータオペレーショナル入力データを受信することと、コンフィギュレータオペレーショナル入力データを使用して、集積回路のオペレーショナル構成マップを生成することと、オペレーショナル構成マップからマッピングファイルを生成することとを含むことができる。
[00225]  実施例＃７によれば、方法は、集積回路を電源投入又はリセットすると、集積回路のセキュリティマネージャーによって、インテグリティチェック値を検索することと、セキュリティマネージャーによって、セキュアメモリの指令セグメントを処理することによりインテグリティチェックを実行することと、インテグリティチェック値に基づいて、指令セグメントのいずれかがインテグリティエラーを有しているかを判断することとを含むことができる。
[00226]  実施例＃８によれば、方法は、集積回路のセキュリティマネージャーによってエンティティから受信した指令を追跡することと、指令を対応するエンティティに関連させることと、個々のエンティティから受信した指令に基づいて、各エンティティに課金することとを含むことができる。
[00227]  本開示では、「コンピュータ」は、１つ又は複数のプロセッサ、メモリ、データインタフェース、ハードウェアのセキュリティモジュール、ディスプレイ、又はそれらの組み合わせを含むことができる。プロセッサは、特定の命令のセットを実行することができる単一又は複数のマイクロプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又はディジタル信号プロセッサ（ＤＳＰ）でよい。コンピュータによって実行される方法の一部は、コンピュータ可読命令を使用して埋め込むことができ、これはフレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ（コンパクトディスク読み出し専用メモリ）、及びＭＯ（光磁気）、ＤＶＤ−ＲＯＭ（読み出し専用ＤＶＤ）、ＤＶＤ−ＲＡＭ（書き込み読み出し可能なＤＶＤ）、又は半導体（例えばＲＯＭ又はフラッシュ）メモリなどの有形で一時的でないコンピュータ可読媒体に記憶することができる。また、方法の幾つかは、ハードウェアのコンポーネント又はハードウェアとソフトウェアの組み合わせ、例えばＡＳＩＣ、専用コンピュータ、又は汎用コンピュータに実現することができる。幾つかの実施形態は、集積回路内ばかりでなくコンピュータ可読媒体内にも実現することができる。例えば、これらの設計は、集積回路の設計に使用するソフトウェア設計ツールに関連するコンピュータ可読媒体に記憶する、及び／又はその中に埋め込むことができる。その例にはＶＨＳＩＣハードウェア記述言語（ＶＨＤＬ）ネットリスト、ベリログレジスタ転送レベル（ＲＴＬ）ネットリスト、及びトランジスタレベル（例えばＳＰＩＣＥ又はＳＰＩＣＥ関連ファイル）ネットリストが含まれる。このようなネットリストは、合成できるか、又は合成可能にできることに留意されたい。コンピュータ可読倍チアは、ＧＤＳ−ＩＩファイルなどのレイアウト情報を有する媒体も含む。さらに、ネットリストファイル又は集積回路設計の他のコンピュータ可読媒体は、上述した設計の方法を実行するシミュレーション環境で使用することができる。
[00228]  記載された実施形態にある種の適合及び修正を実行することができる。したがって、以上で説明した実施形態は例示的であり、限定的ではないと見なされる。本出願の実施形態は、特定のオペレーティングシステム、モバイルデバイスのアーキテクチャ、サーバのアーキテクチャ、又はコンピュータのプログラミング言語を制限するものではない。
【図１Ａ】
0006427099.tif 000002
【図１Ｂ】
0006427099.tif 000003
【図２Ａ】
0006427099.tif 000004
【図２Ｂ】
0006427099.tif 000005
【図３】
0006427099.tif 000006
【図４】
0006427099.tif 000007
【図５】
0006427099.tif 000008
【図６】
0006427099.tif 000009
【図７】
0006427099.tif 000010
【図８】
0006427099.tif 000011
【図９Ａ】
0006427099.tif 000012
【図９Ｂ】
0006427099.tif 000013
【図１０】
0006427099.tif 000014
【図１１】
0006427099.tif 000015
【図１２】
0006427099.tif 000016
【図１３Ａ】
0006427099.tif 000017
【図１３Ｂ】
0006427099.tif 000018
【図１４】
0006427099.tif 000019
【図１５】
0006427099.tif 000020
【図１６】
0006427099.tif 000021
【図１７】
0006427099.tif 000022