JP6427099B2 - 集積回路のセキュア機能及び鍵管理 - Google Patents

集積回路のセキュア機能及び鍵管理 Download PDF

Info

Publication number
JP6427099B2
JP6427099B2 JP2015526731A JP2015526731A JP6427099B2 JP 6427099 B2 JP6427099 B2 JP 6427099B2 JP 2015526731 A JP2015526731 A JP 2015526731A JP 2015526731 A JP2015526731 A JP 2015526731A JP 6427099 B2 JP6427099 B2 JP 6427099B2
Authority
JP
Japan
Prior art keywords
core
key
enabled
command
delegate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015526731A
Other languages
English (en)
Other versions
JP2015531924A (ja
Inventor
カール コッヘル,ポール
カール コッヘル,ポール
チェ−ミン ジュン,ベンジャミン
チェ−ミン ジュン,ベンジャミン
ジョン ライザーソン,アンドリュー
ジョン ライザーソン,アンドリュー
Original Assignee
クリプトグラフィ リサーチ, インコーポレイテッド
クリプトグラフィ リサーチ, インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クリプトグラフィ リサーチ, インコーポレイテッド, クリプトグラフィ リサーチ, インコーポレイテッド filed Critical クリプトグラフィ リサーチ, インコーポレイテッド
Publication of JP2015531924A publication Critical patent/JP2015531924A/ja
Application granted granted Critical
Publication of JP6427099B2 publication Critical patent/JP6427099B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

[0001] 現在、システムオンチップの供給業者は同じチップの多くの異なる種類を販売することができ、各種類は特定の用途に合わせて構成される。チップ構成は、1つ又は複数のヒューズを飛ばすか、又は他の方法でチップ上にワンタイムプログラマブルメモリをプログラムすることによって生成することが多い。このタイプのチップ構成は通常、一方向のプロセスであり、打ち消すことができない。構成プロセスの永続性を回避する1つの方法は、ワンタイムプログラマブルメモリ内に、組み合わせて以前の設定を(例えば複数のビットを一緒に非排他的論理和演算して、最終的な構成設定を作成することによって)変更することができる冗長ビット又は予備ビットを追加することである。しかしながら、このタイプの冗長性は融通性に制限があり、追加のヒューズを必要として、これはチップ上で追加の面積を専有する。また、設定に複数のヒューズがあっても、チップを構成するために複数のプログラミングステップを実行する必要性はなくならず、費用は増大する。同様に、構成は現在、チップの供給業者(又はその契約業者)が実行し続けており、業者は複数のヒューズ構成のチップの在庫をかかえることになる。
[0002] 異なる種類の同じチップを備蓄することは非効率的であることが多い。例えば、特定の用途向けに構成された備蓄チップは、過剰生産された場合、又は顧客のチップ構成により変更が必要な場合に無駄になる可能性がある。また、場合によっては、構成したチップの在庫が需要を満たすのに不十分な場合、実現が遅れることがある。さらに、チップ供給業者の現在の構成モデルが、チップ供給業者と下流の顧客との間で実際のビジネス関係及び事業利益の流れの範囲を制限することがある。例えば、現在のモデルが、最初の規模の後でチップを再構成することにより将来の事業利益を生成する能力を制限することがある。下流の顧客が、構成された機能設定を越えた機能を入手したいと考えた場合、現在のチップにはこの機能をロック解除する手段がないことが普通であり、したがって事業収益の流れとして下流で機能を使用可能にする手段を使用する機会がない。
[0003] さらに、セキュアシステム及びアプリケーションに対する要望が増大している。現在、生産現場でセキュリティ鍵によりセキュアチップと言われるものをプログラムすることが多い。セキュア鍵は、例えば記憶したデータを保護する、ディジタル内容へのアクセスを制御するか、又はトランスクリプションに使用するデータを暗号化/認証するなどの様々な方法で使用することができる。今日、これらの鍵はワンタイムプログラマブルメモリに記憶することができ、これは鍵を直接保持するか、又は様々な機能の派生的鍵である暗号化機能で使用するベース鍵を保持することができる。通常、セキュリティは、安全保護した施設内で鍵装填プロセスを実行することによって提供される。
[0004] 次に、本出願の例示的実施形態を示す添付図面を参照する。
[0005]例示的エコシステムを示すブロック図である。 [0006]エコシステム内のセキュリティマネージャー使用可能デバイスの例示的ライフサイクルを示すフローチャートである。 [0007]セキュリティマネージャー使用可能チップを有する1つ又は複数のデバイスを構成し管理する例示的オペレーショナルシステムをブロック図の形態で示す。 [0008]セキュリティマネージャー使用可能ICに関連する特徴空間の例示的実施形態のブロック図である。 [0009]本明細書で述べる方法を実行するためにセキュリティマネージャー使用可能ICを含むシステムの例示的実施形態のブロック図である。 [0010]セキュリティマネージャーコアの例示的実施形態のブロック図である。 [0011]ルート権限システムによる署名入りの指令に対してルート署名入りブロックを生成する例示的方法のフローチャートである。 [0012]セキュリティマネージャーコアによって、図5で生成したルート署名入りブロックを処理する例示的方法のフローチャートである。 [0013]デレゲート署名入りブロックと関連づけることができるルート署名入りブロックを生成する例示的方法のフローチャートである。 [0014]デレゲート署名入りブロックを生成する例示的方法のフローチャートである。 [0015]セキュリティマネージャーコアによって、図8で生成したデレゲート署名入りブロック及び関連するルート署名入りブロックを処理する例示的方法のフローチャートである。 [0016]セキュリティマネージャーコアによって、ルート署名入りブロックから受信した指令を処理する例示的方法のフローチャートである。 [0017]セキュリティマネージャー使用可能IC内の機能管理の例示的方法のフローチャートである。 [0018]ペイロード鍵を伝送するデレゲート署名入りブロックを生成する例示的方法のフローチャートである。 [0019]セキュリティマネージャーコアによって、ペイロードを含む1つ又は複数の署名入りブロックを処理する例示的方法のフローチャートである。 [0020]セキュリティマネージャー使用可能ICの設計プロセス中にコンフィギュレータシステムを使用する例示的方法のフローチャートである。 [0021]チップ開発後にコンフィギュレータシステムを使用する例示的方法のフローチャートである。 [0022]セキュリティマネージャー使用可能ICを初期化する例示的方法のフローチャートである。 [0023]例示的個別化プロセスをブロック図の形態で示す。 [0024]デレゲート権限システムで実行する、セキュリティマネージャー使用可能ICの機能更新の要求を権限付与する例示的方法のフローチャートである。 [0025]ルート権限システムで実行する、セキュリティマネージャー使用可能ICの機能更新の要求を権限付与する例示的方法のフローチャートである。
[0026] 次に、添付図面に図示された本発明の例示的実施形態を詳細に参照する。
1.概念
1.1.エコシステムの概要
[0027] 次に図1Aを参照すると、これは例示的エコシステム100をブロック図で示す。図1Aに示すように、システム100は、集積回路(「IC」)プロバイダ105と、第三者IPプロバイダ107と、IC製造業者110と、IP及び/又はセキュリティ鍵プロバイダ115と、セキュリティサービス120と、課金及び報告サービス122と、製品ベンダ125と、デバイス管理者127と、エンドユーザ130とを含むことができる。簡単にするために、この例示的エコシステムでは、各エンティティを1つのみ示す。実際には、本明細書で述べる原理に一致するエコシステムは、各エンティティを1つ又は複数有することがある(すなわち、同一のICを供給する複数のIC製造業者、同じIC設計を使用する製品を提供する複数の製品ベンダ、及び複数の顧客)。図1Aに示す幾つかのステップは、幾つかの企業を伴うこともある(例えばIC製造が、ウェーハの製造、初期検査の実行、ウェーハの切断、チップのパッケージングなどに異なる企業及び/又はステージを伴うことがある)。また、場合によっては、幾つかのエンティティ及びその機能を単一のエンティティに含めることができる。例えば、幾つかの企業がICの設計及び製造の両方を実行し、その場合、IC製造業者110及びICプロバイダ105は同じエンティティとすることができる。
[0028] ICプロバイダ105は、チップを精算するためにチップの設計をIC製造業者110に提供するエンティティである。特に、ICプロバイダ105は、製造後に(例えば特定のアプリケーションに合わせて、又は特定の機能を使用可能/使用不能にするために)チップの幾つかの態様を構成できるように、構成可能なICのチップ設計を提供する。例えば、ICプロバイダ105は、設計にセキュリティマネージャー(「SM」)コアを含めるか、又は製造したICがSMコアを含むと指定することができる。SMコアを含むICをSM使用可能ICと呼ぶ。特に、SMコアによって、所望の構成及びセキュリティの要望に応じて、ICの1つ又は複数の構成可能な機能(「機能」)をロック又はロック解除する(又は例えばCPUの性能を調節するためにPLLを調整するか、又は機能が使用するために秘密鍵を配送するなどの違う構成にする)ことができる。SM使用可能ICは、例えば1つ(又は場合によっては複数)のSMコア、及び1つ(又は複数の)セキュア永続メモリを含む。以下で詳細に説明するように、SM使用可能ICは、任意選択で幾つかの他の要素(例えば1つ又は複数のエクストラクタ、1つ又は複数の機能など)、又はそれらの組み合わせを含むことができる。ICプロバイダ105は、IC製造業者110に提供するマスクの一部として、ルート公開鍵を含むことができる。ICプロバイダ105は、ルート権限として行動することができるセキュリティサービス120からルート公開鍵を入手することができる。
[0029] ルート権限は、SMプログラミング能力を管理するルート権限システムに関連するエンティティであり、1つ又は複数のデレゲート権限に関連する1つ又は複数のデレゲート権限システムに能力のサブセットを割り当てることができる。以下でさらに詳細に説明するように、ルート権限システムはSM使用可能ICの構成を制御することができる。SM使用可能ICの構成は、例えばSM使用可能ICの機能管理を実行すること、SM使用可能ICの鍵管理を実行すること、又はそれらの組み合わせを含むことができる。ルート権限システムは、システム100の他のエンティティによって処理されるSM使用可能ICの機能管理を制御することができる。例えば、ルート権限システムは、暗号化により検証可能な(例えばディジタル署名入り)指令を直接生成して、SM使用可能ICに関連する機能をロック、ロック解除、又は構成することができる。さらに、ルート権限システムは、IC製造業者110、製品ベンダ125、デバイス管理者127、エンドユーザ130、他のエンティティ、又はそれらの組み合わせによってSM使用可能ICが生成されるように、構成を変更可能にする限定的権限を生成することができる。
[0030] ルート権限システムは、SM使用可能ICの鍵管理も制御することができる。例えば、ルート権限システムは、SMコアがペイロード(例えば秘密鍵、又は他の値)をSM使用可能ICの他の部分(SM使用可能ICで実行されるソフトウェアを含む)に安全に配送することを権限付与することができる。ルート権限システムは、1つ又は複数のデレゲート権限システムがペイロードを安全に配送するのを権限付与することができる。
[0031] 上述したように、ルート権限は、ルート権限システムに関連するエンティティである。したがって、本明細書で述べる実施形態は、セキュリティサービス120をルート権限と呼ぶが、他のエンティティがルート権限として行動できることが想定される。例えば、ICプロバイダ105、製品ベンダ125、又は何らかの他のエンティティである。
[0032] 以上のパラグラフでは、別のエンティティに許可を与えるルート権限について述べている。これらの許可の受容者をデレゲート権限と呼ぶ。場合によっては、デレゲート権限は、ルート権限システムのSMプログラミング能力のサブセットを与えられているデレゲート権限システムに関連する。SMプログラミング能力のサブセットは、デレゲート権限システム間で異なることがある。デレゲート権限は、製品ベンダ125、IC製造業者110、デバイス管理者127、他の何らかのエンティティ、又はそれらの組み合わせでよい。
[0033] 以下で詳細に説明するように、ルート権限システム、1つ又は複数のデレゲート権限システム又はそれらの組み合わせは、システム100のSM使用可能ICの修正(例えば機能及び鍵管理の操作)を一部(又は全部)制御することができる。
[0034] IC製造業者110は、ICを製造するエンティティである。以上で説明したように、ICには構成可能なものがあり、したがってチップは、製造後に特定のアプリケーションに合わせて構成することができる。システムオンチップ(「SOC」)、特定用途向け集積回路(ASIC)、FPGA、移動無線チップ、及びプロセッサ(例えばCPU)は、本明細書で述べる実施形態で使用するのに適したICの例である。一般に、機能管理は、別個に使用できる複数の機能を統合するか、又は構成可能な機能を有するか、又はチップのライフサイクルの様々なステージ(例えばデバッグ/検査モードなど)で使用可能/使用不能でなければならない能力を有するチップに、最も適切である。さらに鍵管理用途では、暗号化鍵又は同様の秘密を使用するいかなるチップも、良好な候補となり得る。IC製造業者110は、SMコアを含むICを製造することができる。IC製造業者110は、1つ又は複数のセキュリティ鍵、デバイスID、機能の初期構成の設定、又はそれらの組み合わせを、製造プロセス、検査プロセス、又はその両方の一部としてSMコアに埋め込むことができる。そのために、IC製造業者110は、以下で詳細に説明する第一カスタマイゼーションステージを提供するように装備されている。特に、IC製造業者110は、SM使用可能ICに対して特定の構成変更をできるように、デレゲート権限になり得る。例えば、複数のプロセッサを包含するICでは、IC製造業者110は、SM使用可能ICに使用可能なプロセッサの数を設定できるが、各プロセッサのクロック速度は設定できないようにすることができる。図示されていない幾つかの実施形態では、IC製造業者110とICプロバイダ105は同じエンティティである。
[0035] また、IC製造業者110は、製造したICで検査を実行し、それが設計仕様内で作動していることを確認することができる。場合によっては、ウェーハのソートのような検査プロセスは、異なる施設で、及び/又はIC製造とは異なる企業で実行することができ、その場合、「IC製造業者110」というラベルは、これらの役割/ステップの組み合わせを表す。IC製造業者110は、SM使用可能ICを製品ベンダ125に提供する。
[0036] 製品ベンダ125は、SM使用可能ICを1つ又は複数の製品(例えばSM使用可能デバイス)に組み込み、次にこれをエンドユーザ130に対して入手可能にする。幾つかの実施形態では、製品ベンダ125は、デバイス又はサービス小売業者であり、SM使用可能デバイスをエンドユーザ130に対して直接入手可能にする。他の実施形態では、製品ベンダ125はSM使用可能デバイスを、エンドユーザ130に分配するために1つ又は複数の第三者デバイス又はサービス小売業者(図示せず)に分配する。
[0037] 製品ベンダ125は、SM使用可能ICの追加のカスタマイゼーションを追加することができる。そのために、製品ベンダ125は、SM使用可能ICに対してある特定の構成変更をできるように、デレゲート権限になり得る。例えば、デレゲート権限として、製品ベンダ125のデレゲート権限システムは、ルート権限システムによってある種の能力を可能にすることができる。
[0038] 製品をエンドユーザ130に販売した後でも、SM使用可能ICの機能をさらに構成又は使用可能にすることも可能である。例えば、エンドユーザ130及び/又は製品は、製品ベンダ125、デバイス管理者127、セキュリティサービス120、デレゲート権限、ルート権限、又はそれらの組み合わせと調整して、SM使用可能ICの機能を使用可能にすることができる。例えば、このプロセスは、ネットワーク上で要求を(例えば製品中の無線を使用して、セルラデータネットワークを介して要求メッセージを送信することにより)送信し、要求された構成変化を権限付与するチップ固有のメッセージを(例えば製品中の無線を使用して、セルラデータネットワークからメッセージを受信することにより)受信することを含む。
[0039] 場合によっては、製品ベンダ125は、SM使用可能デバイスにインストールされた1つ又は複数のアプリケーションのアプリケーション作者として行動することもできる。また、製品ベンダ125は、アプリケーションに関連する機能を管理するアプリケーションオペレータとして行動することができる。同様に、製品ベンダ125は、SM使用可能デバイスと互換性があるオペレーティングシステムを分配するオペレーティングシステム供給業者として行動することもできる。製品ベンダ125は、(モバイルネットワークオペレータなどの)サービスオペレータとして行動することもでき、例えばSM使用可能デバイスに入手可能な1つ又は複数のサービス又は能力を管理する。
[0040] 他の実施形態では、他のエンティティ、1つ又は複数の第三者(図示せず)、又はそれらの組み合わせは、アプリケーション作者、オペレーティングシステム供給業者、アプリケーションオペレータ、又はそれらの組み合わせになり得る。
[0041] IP及び/又はセキュリティ鍵プロバイダ115は、SM使用可能ICで使用するセキュリティ鍵を管理する。セキュリティ鍵値は、公開鍵及び秘密鍵を含み、IC製造業者110、セキュリティサービス120、製品ベンダ125、デバイス管理者127、又はそれらの組み合わせに提供することができる。図示されていない幾つかの実施形態では、IP及び/又はセキュリティ鍵プロバイダ115は、第三者IPプロバイダ107、ICプロバイダ105、又はそれらの組み合わせにもセキュリティ鍵を提供することができる。
[0042] セキュリティサービス120は、エコシステム内でエンティティにより使用することができるセキュリティ鍵の中心分配器(central distributor)として行動することもできる。例えば、セキュリティサービス120は、IP及び/又はセキュリティ鍵プロバイダ115から(又は複数のセキュリティ鍵プロバイダから)セキュリティ鍵を入手し、それをシステム100の他のエンティティに分配することができる。例えば、SM使用可能携帯電話アプリケーションプロセッサは、独立して動作する及び/又は特定のICプロバイダ105に結びついていない多くを含め、複数のIP及び/又はセキュリティ鍵プロバイダ115からの鍵でプログラムすることができる。このようなIP及び/又はセキュリティ鍵プロバイダ115の例には、電子的支払いシステム、DRM/著作権侵害対策システム、アイデンティティシステムなどが含まれるが、それらに限定されない。幾つかの実施形態では、セキュリティサービス120はルート権限システムを含むことができ、SM使用可能ICに対してルート権限として行動する。他の実施形態では、集約とルート権限の役割は別個にすることができる。ルート権限として、セキュリティサービス120は、システム100の1つ又は複数の他のエンティティがデレゲート権限になり、例えばSM使用可能ICに関連するある種の機能をロック又はロック解除する、SM使用可能IDの一部に(又はSM使用可能ID上で実行されるソフトウェアに)キーを安全に配送することなどを権限付与することができる。以下で詳細に説明するように、デレゲート権限は、ルート権限により暗号で認可された特権を条件として、SM使用可能ICにある種の構成変更をすることが権限付与される。
[0043] 課金及び報告サービス122は、システム100内の他のエンティティの幾つか又は全部と連結することができる。場合によっては、システム100内の1つ又は複数のエンティティが、(例えば付加価値機能を使用可能にするために)SM使用可能ICのある種の構成設定について料金を請求したいと考えることがある。課金及び報告サービス122は、エコシステム内の様々なエンティティによる様々な取引のタイプに関連する料金を追跡する。例えば、エンティティは、1つ又は複数のSM使用可能ICを使用可能又は使用不能にするか、又は1つ又は複数のSM使用可能ICに鍵を配送するために支払いを要求されることがある。課金及び報告サービス122は、例えばデレゲート権限システムから電子取引又は監査の記録を受信することによって、デレゲートが実行した取引の数に関する情報を収集する。課金及び報告サービス122は、収集した記録に基づき、複数のチップのタイプ及び取引のタイプ(例えば使用可能になった機能の種類)にわたって課金量を集約し、最終的に機能を使用可能にするか、他の取引を実行するエンティティが支払うべき量を計算することができる。同様に、以下で述べるように、課金及び報告サービス122は、第三者IPプロバイダ107などの第三者が支払うべき量の計算を補助することができる。課金及び報告サービス122による課金計算への入力には、実行した取引の数、どの機能を使用可能にしたか、機能を使用可能にした時間の長さなどを含むことができるが、それらに限定されない。幾つかの実施形態では、ルート権限又はデレゲート権限は、SM使用可能IC上の機能を使用可能にするか、又は構成する前に支払いを受けるという方針を負わせることができるが、他の場合は、使用可能にした後に課金及び支払いを実行することができる。いずれの場合も、セキュリティサービス120は、ルート権限システム及び1つ又は複数のデレゲート権限システムとの通信を介して、実行される取引の数に関する制限を動的に調節することができる。幾つかの実施形態では、課金及び報告サービス122は、セキュリティサービス120の一部である。他の実施形態では、課金及び報告サービス122は、取引の追跡のみを実行することができ、課金及び会計プロセスは別個に実行することができる(又は手作業の場合さえある)。
[0044] システム100は、第三者IPプロバイダ107(又は上述したように幾つかの第三者IPプロバイダ107)を含むことができる。第三者IPプロバイダ107は、SM使用可能ICに統合するために、1つ又は複数の機能又は機能の一部をICプロバイダ105に提供することができる。又は場合によっては、第三者IPプロバイダ107は、単にICプロバイダ105に1つ又は複数の既存の機能又は機能の一部を使用することを許諾することができる。統合した機能は、委譲された能力の範囲内で動作するデレゲート権限又はルート権限によって使用可能にすることができる。幾つかの実施形態では、IPブロックを使用するために第三者IPプロバイダ107が補正されるまで、機能は使用可能にならない(例えばロック解除されない)。例えば、課金及び報告サービス122の文脈で説明したように、課金及び報告サービス122及び/又は第三者IPプロバイダ107が支払いを受け取るまで、デレゲート権限システムには機能の起動を権限付与する能力又は権限付与が提供されないことがある。
[0045] エンドユーザ130は、製品(例えばSM使用可能ICを含むデバイス)を使用するエンティティである。エンドユーザ130は、例えばIC製造業者110、製品ベンダ125、デバイス管理者127、又は何らかの第三者デバイス又はサービス小売業者からSM使用可能デバイスを購入することができる。
[0046] 幾つかの実施形態では、システム100はデバイス管理者127を含む。デバイス管理者127は、SM使用可能ICに特定の構成変更を加えられるように、デレゲート権限でもよい。これで、エンドユーザ130は、デバイス管理者127(又はセキュリティサービス120など)と調整してSM使用可能ICの機能を使用可能にすることができる。このプロセスは、ユーザ及び/又はデバイスがネットワーク上で要求を送信し、権限付与応答を受信し、応答メッセージの少なくとも一部(この部分は、例えばデレゲート権限を権限付与するセキュリティサービス120のルート権限システムからのディジタル署名、及びデレゲート権限として行動するデバイス管理者127からのディジタル署名の両方を含む)をSM使用可能ICに提供して、要求した機能を実際に使用可能にすることを含むことができる。要求は、支払い、支払われたかの確認、又は将来支払うという約束を含むことができる。また、幾つかの実施形態では、デバイス管理者127は、システム100内のSM使用可能ICの修正(例えば機能及び鍵管理動作)に対して何らかの直接的又は間接的制御権を有するデバイス又はサービス小売業者でよい。
[0047] また、図示されていない幾つかの実施形態では、システム100はデバイス機能管理者又はデバイス鍵管理者を含むことができる。デバイス機能管理者は、SM使用可能ICを含む(例えば鍵管理動作、機能管理動作、又はそれらの組み合わせを介した)構成変更を権限付与するある種の限定的能力を有するデレゲート権限でよい。
[0048] また、幾つかの実施形態では、ルート権限はシステム100の他のエンティティが、検査するためにSM使用可能IC又はSM使用可能デバイスの1つ又は複数の機能を使用可能にするか、又は部分的に使用可能にすることを安全に許容することができる。例えば、ルート権限はルート権限システムを介して、設定された期間だけ、又は(例えば次にSM使用可能ICを電源投入又はリセットするまでのみ機能を使用可能にするように)電源投入回数だけ、SM使用可能ICの機能を使用可能に(又は部分的に使用可能に)することができる。同様に、幾つかの実施形態では、デレゲートは、ルート権限によって許可された場合のみ、デレゲート権限システムを介して、検査のためにSM使用可能IC又はデバイスの機能を使用可能に、又は部分的に使用可能にすることが許容されることもある。
[0049] 以上のエンティティのうち1つ又は複数は、1つ又は複数の通信ネットワークオペレータによって操作された1つ又は複数のネットワークを介して相互に連結することができる。これらのネットワークには、1つ又は複数のネットワーク管理者によって維持できるものもある。
[0050] 次に、図1Bを参照すると、これはエコシステム(例えばシステム100)内のSM使用可能デバイスの例示的ライフサイクル140を示す。このライフサイクルは、特定の順序で以下のステップを開示しているが、ステップの少なくとも幾つかは適宜移動、修正、又は削除できることが認識される。
[0051] ステップ142では、SM使用可能ICを設計する。以下で詳細に説明するように、設計プロセスは、例えばコンフィギュレータ、SM供給業者から受信したネットリスト、及びハードウェア構成鍵及び定数を生成する手段を使用することができる。例えば、この生成プロセスは、ルート権限システムを含むことができ、例えば幾つかの実施形態では、ルート権限システムは公開鍵暗号システムの鍵対を生成することができ、公開鍵はハードウェア構成としてエクスポートされ、公開鍵は(例えばデレゲートを権限付与するために)ルート権限システムに保持される。SM使用可能ICの設計は、製造したSM使用可能IC中に配線することができる1つ又は複数のセキュリティ鍵を含むことができる。SM使用可能ICの設計は、(例えばステップ150、155、又はその両方で)製造されたSM使用可能IC中にプログラムできる1つ又は複数のセキュリティ鍵について記憶できるように構成することができる。
[0052] ステップ145で、SM使用可能ICの設計に基づいてSM使用可能ICを製造し、検査する。各SM使用可能ICは1つ又は複数のSMコアを有することができ、各SMコアは1つ又は複数の機能を制御することができる。以下で詳細に説明するように、機能は、1つ又は複数のセキュリティ鍵によって権限付与された通りに、1つ又は複数のSM指令、又はそれらの組み合わせを介して変更、使用可能、使用不能、又はそれらの組み合わせをすることができる。また、幾つかの実施形態では、第三者プロバイダ(例えば第三者IPプロバイダ107)からの機能又は機能の一部をSM使用可能ICに組み込むことができる。例えば、第三者プロバイダは、大きい画像ファイルを高速で描画するために使用する機能を提供することができるが、最初は使用可能ではない。検査は、SM使用可能ICの機能を適性に動作しているか確認するために実行することができる。例えば、デレゲート権限は、ルート権限(又はルート権限自体)によって許可された場合、一時的に(例えば固定された時間だけ、及び/又はチップがリセットされるまで)1つ又は複数の機能を使用可能にし、検査を促進することができる。実施形態に応じて、ステップ145はIC製造業者110、ICプロバイダ105、他の何らかのエンティティ(例えば専門の検査設備)、又はそれらの組み合わせによって実行することができる。
[0053] ステップ150で、第一カスタマイゼーションステップを実行する。このステップでは、SM使用可能ICにデバイス識別子(「ID」)を割り当て、ルート権限システム、デレゲート権限システム、1つ又は複数の鍵分割、又はベース鍵からの1つ又は複数の鍵で構成することができる。
[0054] 鍵分割は、異なる鍵分割と組み合わせた場合に完全な鍵(例えばベース鍵)を形成する鍵の一部である。鍵分割を使用し、例えばSM使用可能ICのSMコアを、いずれも異なる鍵分割のすべてに関する知識がない異なる関係者の異なる鍵分割でプログラムさせることによって、ベース鍵のセキュリティを向上させることができる。機能を組み合わせることによる鍵分割の組み合わせは、SMコア内で実行され、ベース鍵を提供する。プログラムする関係者はいずれも、鍵分割のすべてを知っていないので、単一の施設が妥協しても、必ずしもベース鍵を妥協しない。
[0055] 例示的な構成プロセスを以下でさらに詳細に説明する。第一カスタマイゼーションスステージでは、他のパラメータも設定することができる。例えば、SM使用可能ICが複数のプロセッサを含む場合、第一カスタマイゼーションステージは、製品ベンダ125が最初に使用できるプロセッサの数を設定することができる。又は、例えば第一カスタマイゼーションステージは、軽負荷で過熱を阻止するか、又は検査145中に決定された最高速度と一致するように各プロセッサの最高クロック速度を設定することができる。例えば、このような限界を記憶することで、不正直な分配器が低速部品を高速の等級と不正に述べることを安全に防止することができる。図示されていない代替実施形態では、ステップ150がなく、代わりに第一カスタマイゼーションステージをステップ155の一部として実行する。
[0056] ステップ155で、第二カスタマイゼーションステージを実行する。例えば、同じ系列のSM使用可能ICを、異なる製品ベンダの要件に合うようにさらに構成することができる。多くの場合、SM使用可能ICを特別に構成したいと考える製品ベンダもいる。このカスタマイゼーションステージ中に、SMコアの機能の状態を更新して、各製品ベンダのニーズに合わせてSM使用可能ICをカスタマイズすることができる。機能の状態の更新は、SM使用可能ICに関連する1つ又は複数の機能を使用不能、使用可能、又は変更すること、さらに追加の鍵を装填すること、又はそれらの組み合わせを含むことができる。この第二カスタマイゼーションステージは、例えばIC製造業者110、ICプロバイダ105、製品ベンダ125、他の何らかのエンティティ、又はそれらの組み合わせによって実行することができる。費用問題で、カスタマイゼーションステップの数は可能な限り少なく維持することが通常は好ましいが、3つ以上又は2つ未満のカスタマイゼーションステージを使用できるアプリケーションもある。2つのカスタマイゼーションステージ(150及び160)は、例えばICのウェーハレベルの検査及びパッケージレベルの検査で個々に実行できることに留意されたい。
[0057] ステップ160では、製品製造プロセス中にSM使用可能ICをデバイスに組み込み、SM使用可能デバイスを生成する。SM使用可能ICの機能の状態は、この時点でも更新することができる。例えば、製品ベンダは、機能の組み合わせを使用可能にし、SM使用可能デバイスの異なる製品ラインを生成することができる。このプログラミングプロセスは、(例えば最終的に正確な記録が課金及び報告サービス122に提供されることを確実に行うために)セキュリティサービス120から発行されたハードウェアセキュリティモジュールを使用して安全保護することができる。この方法で、製品ベンダ125は、ICプロバイダ105からの単一のチップタイプのこの在庫に調達して保持するだけでよく、次にこのチップは、製品の組立中に設定される異なる構成の複数の製品に使用することができる。課金及び報告サービス122は、(例えばICプロバイダ105が、チップの構成に応じて各チップに対して適切な量を集金できるように)使用可能になっている能力に対して支払われることを確実に行う働きをする。鍵は、ステップ160の一部としてSMコア中にプログラムすることもできる。例えば、製品ベンダは、各SM使用可能デバイスの一意キー(製品ベンダ125は知られているがICプロバイダ105には知られていないキーなど)をプログラムすることができる。
[0058] ステップ165で、SM使用可能デバイスを分配する。SM使用可能デバイスは、例えば別の製品ベンダ、再販業者、エンドユーザ130、デバイス管理者127、又はエコシステムの他のエンティティに分配することができる。
[0059] ステップ170で、SM使用可能デバイスのインフィールド管理を実行することができる。(製品ベンダを出たSM使用可能デバイスは、インフィールドと言われる。これは必ずしもエンドユーザの手中にあることと同義ではなく、例えば携帯電話キャリアのオペレータは、エンドユーザ130に配送する前に電話のカスタマイゼーション又は準備作業を実行することができる。)インフィールド管理は、SM使用可能デバイスの機能状態を更新するために要求を受信することを含むことができる。例えば、要求を受信して、SM使用可能ICの特殊な音響コンポーネントを使用可能にすることができる。このような要求は、例えばエンドユーザ130又はルート権限に要求を送信するデバイス自体、又は適切に権限付与されたデレゲート権限によって開始することができる。これで、インフィールド管理は1つ又は複数の権限付与及び/又はセキュアキーをSM使用可能デバイスに送信することを含む。以下で詳細に説明するように、セキュア鍵配送及び機能管理は、SM使用可能デバイスと通信しているルート権限システムを介してルート権限によって、又は委譲したSMプログラミング能力内で行動し、SM使用可能デバイスと通信しているデレゲート権限システムを介してデレゲート権限によって実行することができる。応答を受信すると、SM使用可能デバイスのソフトウェアが、応答の一部(ルート権限及び/又はデレゲート権限からの暗号化権限付与を含む)をSMコアに提供し、これは要求された動作(例えば機能の構成、キーイングなど)を実行する前に権限付与が特定のデバイスに対して有効であることを検証する。
[0060] 単独又は他のエンティティと連携して行動する上述のエンティティのいずれも、上述した更新、管理、及び監査メッセージを要求、生成、キャッシュ、送信、又は修正して、SM使用可能デバイスの鍵及び機能を制御することができる。デバイスのライフサイクルの様々なポイントで役割を有するこれらのエンティティはそれぞれ独立して動作することができ、SM使用可能デバイス又はデバイスと相互動作するインフラストラクチャの様々な程度の所有権を有することができる。ある種の鍵又は機能の配備は、支払い、監査、又は他の取引の構成を含むことができ、SMコア活動の促進、ある種の動作を実行する要求、SMコアメッセージを公式化又は解釈するプロセス、前記メッセージの通信又は記憶、権限付与動作は、上記エンティティのうち1つ又は複数が実行することができる。
2.セキュリティマネージャーシステムのアーキテクチャ
[0061] 次に図2Aを参照すると、これは1つ又は複数のSM使用可能デバイスを構成し管理する例示的オペレーショナルシステム200をブロック図で示す。システム200は、ネットワーク205によって動作可能な公衆陸上移動網(PLMN)210、ルート権限215、ルート権限システム217、デレゲート権限220、デレゲート権限システム222、ICプロバイダ105、SM使用可能デバイス240、245、250、255、及び260、SM使用可能IC265、無線アクセスポイント275、コンフィギュレータシステム280、及び追加のエンティティ287のうち幾つか又はすべてを含むことができる。
[0062] ネットワーク205は例えばインターネット、イントラネット、ローカルエリアネットワーク、広域ネットワーク、キャンパスエリアネットワーク、メトロポリタンエリアネットワーク、エクストラネット、プライベートエクストラネット、2つ以上の連結した電子デバイスの任意のセット、又は以上又は他の適切なネットワークのいずれかの組み合わせとすることができる。ネットワーク205はPLMN210と通信することもでき、これは無線広域ネットワーク(WWAN)、又は場合によってはセルラネットワークとも呼ばれる。簡単さを期して、ネットワーク205は単一のエンティティとして図示されているが、複数のネットワークが存在し得ることが可能である。例えば、プライベートエクストラネットは、図2Aの他のエンティティがインターネットによって接続されている場合でも、ICプロバイダ105及びルート権限215を接続することができる。
[0063] ルート権限215は、SMプログラミング能力を管理し、能力のサブセットを1つ又は複数のデレゲート権限220に割り当てることができるエンティティ(例えばセキュリティサービス120)である。ルート権限215は、SM使用可能IC265及びSM使用可能デバイス240、245、250、255、及び260を管理する暗号化鍵を含む(又は他の方法でアクセス権を有する)ルート権限システム217を伴う。ルート権限システム217は、1つ又は複数のルート署名入りブロック(「RSB」)を生成するように構成される。以下で詳細に説明するように、RSBは1つ又は複数のSM指令、指令テンプレート、1つ又は複数のデレゲート許可、1つ又は複数の鍵(例えばデレゲート公開鍵)、又はそれらの組み合わせを含むことができる。RSBは、SMコアの公開鍵に対応するルートプライベート鍵(例えばRSAプライベート鍵)を使用して、ルート権限システム217によって署名された少なくとも1つのディジタル認定を含む。ルート権限システム217は、1つ又は複数のRSB又は他のデータをコンフィギュレータシステム280、SM使用可能IC265、デレゲート権限システム222、SM使用可能デバイス(例えば240、245、250、255、又は260)、1つ又は複数の他のエンティティ287、電子記憶媒体(図示せず)、又はそれらの組み合わせに提供するように構成することができる。また、ルート権限システム217は、ルート権限システム217のユーザによって命令された場合にRSBを提供するように構成することができる。ルート権限システム217は単一のコンピュータに実現するか、場合によっては地理的に分散した複数のコンピュータ(例えば閾値署名システムの鍵共有を含み、ディジタル署名を計算するために複数の鍵共有からの協働が要求される)に分配することができ、
[0064] 以下で詳細に説明するように、ルート権限システム217は、1つ又は複数のデレゲート権限システム222に特権を委譲するように構成することができる。ルート権限システム217は、1つ又は複数のコンフィギュレータシステム280にシステム及びネットリスト鍵定数を生成するように構成することもできる。また、ルート権限システム217は、カスタマイゼーションプロセス(以下で説明)中に使用されるマスタ鍵を管理するように構成することができる。ルート権限システム217は、検査ベクタ及び他の値を生成して、SMコアの統合及びASIC製造を補助するように構成することもできる。
[0065] 幾つかの実施形態では、ルート権限システム217は、能力を委譲して追加のデレゲートを生成するように構成することができる。この実施形態では、第一デレゲート権限システムは、1つ又は複数の第二デレゲート権限システムを生成するように構成することができ、これはそれぞれが第一デレゲート権限システムのSMプログラミング能力のサブセットを有する。(制限がある場合に)デレゲートのレベルの最大数は構成可能なオプションとすることができる。簡単化した実施形態は、デレゲート権限のSMコアのサポートを省略し、代わりにすべてのタスクのルート秘密鍵を使用することができる(例えばデレゲート権限として働くエンティティが、ルート署名用鍵を含む署名用デバイスを有する、及び/又はネットワーク上でこのようなデバイスと対話する)。
[0066] ルート権限システム217は、1つ又は複数の耐タンパ署名モジュールを含み、追加のセキュリティ及び/又は性能を提供することができる。デレゲート権限システム222は、ルート権限システム217の権限のサブセットのみを実行するためにルート権限システム217によって通常認可される権限付与である。ルート及びデレゲート権限システム217及び222の特権ステージは、例えば暗号化鍵、署名ソフトウェアによって強制された制約、オペレータの方針、及び耐タンパ署名モジュール内の方針によって統制される。
[0067] システム200は、複数のデレゲート権限220を含むことができる。デレゲート権限220は、デレゲート権限システム222を伴うエンティティである。デレゲート権限システム222には、ルート権限システム217によってSMプログラミング能力のサブセットが与えられている。デレゲート権限220の例には、製品ベンダ125、IC製造業者110、デバイス管理者127、サービスオペレータ、小売業者、(例えば図1Aに関して説明したような)他の何らかのエンティティ、又はそれらの組み合わせを含めることができる。
[0068] デレゲート権限システム222は、ルート権限システム217から委譲されたある種の能力(例えば鍵管理動作、機能管理動作、又はその両方の一部)を有することができる。これらの能力は、積極的権限付与のセットとして、又は制約のセットとして伝達することができる。例えば特権は、ルート権限システム217、デレゲート権限システム222によって、権限システムによってどの署名入りメッセージ(例えば、署名入りブロック)が提供されるかに対する制御、権限システムによって使用される署名鍵の調整、権限システムの1つによって署名することができるペイロードの特定のタイプの調整、SMコアに伝達することができるメッセージの通信路/宛先及びタイプの調整、又はそれらの組み合わせを介して伝達し、制限することができる。委譲することができる例示的特権には、ある種のハードウェア能力を使用可能又は使用不能にする、性能の設定又は他の値を調節する、ある種の外部インタフェースの使用を許容する、ある種の動作モードの使用を許容する、望ましい検査モード(例えば制御診断及びデバッグモード)を使用可能又は使用不能にする、特定のモード又は機能をいつアクティブにするか(例えば製造プロセス中にのみアクティブである)を制御する能力、SM使用可能ICの機能のある種の構成設定の値を調節する、1つ又は複数の鍵暗号化鍵を導出及び/又は使用する、ある種のSM使用可能ICが使用する鍵を暗号化する、ICサブコンポーネントに鍵を供給する、SM使用可能ICの構成を全体的に調節する、SMコアがアクセス可能な状態情報を監査する、鍵/鍵分割をプログラムする、インフィールドSM使用可能ICで診断活動を実行する、プロセスの変動を補償するためにアナログ回路を較正又は調整する、特定の製品の入力クロック及び所望の動作周波数に合わせてPLLを構成する、無線の出力及び周波数を調節する、内部熱フェールセーフによって強制される限度を構成する(熱限度は、様々な製品で使用されるパッケージング及び冷却解に基づいて変動することがある)能力、電池充電回路を構成することなどが含まれる。
[0069] ルート権限システム217によるデレゲート権限システム222への権限付与は、デレゲート権限システム222の権限付与に対する制限も含むことができ、それにはデレゲート権限システム222が構成を(例えばSMコアに機能の構成データを不揮発性/一回書き込みメモリを保存するように指示することによって)永続的に、又は揮発性で構成できるか、又は権限付与を単一のICに、又は特定のクラスに、又はICのグループに結合すべきか、又は権限付与を(権限付与が再使用されるのを防止するために)乱数発生器状態に結合すべきかが含まれるが、それらに限定されない。
[0070] 上述したように、機能設定は簡単なバイナリのオン/オフ設定に限定されない。例えば、構成の変更に権限付与を要求するためにデレゲート権限システム222又はルート権限システム217を使用することが望ましくなる課題(例えば、セキュリティ、信頼性、責任など)があることがある。例えば、PLLを誤って構成するか、不正確なアナログ較正を使用すると、SM使用可能ICが誤動作することがあり、したがってPLLの設定はSMコアによって安全保護することができる。
[0071] 以下で詳細に説明するように、デレゲート権限システム222は1つ又は複数のデレゲート署名入りブロック(「DSB」)を生成するように構成される。デレゲート権限システム222は、DSBをコンフィギュレータシステム280、SM使用可能IC265、ルート権限システム217、ICプロバイダ105、SM使用可能デバイス(例えば240、245、250、255、又は260)、電子記憶媒体(図示せず)、1つ又は複数のエンティティ287、又はそれらの組み合わせに提供するように構成することができる。また、デレゲート権限システム222は、デレゲート権限システム222のユーザによって命令された場合にDSBを提供するように構成することができる。1つ又は複数のエンティティ287は、デレゲート権限又はルート権限ではないが、それでもRSB、デレゲート署名入りブロック(「DSB」)、又はそれらの組み合わせを受信できるエンティティである。例えば、幾つかの実施形態では、デバイス管理者127、IP及び/又はセキュリティ鍵プロバイダ115、エスクロウサービスプロバイダなどは、デレゲート権限でなくてもよいが、それでもRSB、DSB、又はそれらの組み合わせを受信することができる。
[0072] デレゲート権限システム222は、セキュリティ鍵(例えばデレゲートプライベート鍵、AES鍵、又はその両方)のうち1つ又は複数を記憶するように構成された耐タンパ署名モジュール(図示せず)を含むことができる。例えば、耐タンパ署名モジュールは、スマートカード又はハードウェアセキュリティモジュール(「HSM」)とすることができる。
[0073] 幾つかの実施形態では、デレゲート権限システム222は追加のデレゲートを生成する能力を有する。このような実施形態では、SMプログラミング能力を提供するシステムに対して、現在保有しているより多くのSMプログラミング能力を委譲することを禁止することができる。例えば、ルート権限システム217が、SMプログラミング能力を追加のデレゲート権限システム(図示せず)に割り当てる能力とともに、SMプログラミング能力A、B、及びCのみをデレゲート権限システム222に提供する場合、デレゲート権限システム222はSMプログラミング能力Dをさらに提供することができないが、許可CがなくてもA及びBを委譲することができる。デレゲート権限システム222は単一のコンピュータに実現することができるか、場合によっては複数のコンピュータに分散することができる。分散したデレゲートは、上述したように閾値署名を使用することができる。デレゲート権限システム222は、信頼性及び性能のために複数の冗長及び/又はクラスタ状コンポーネントも含むことができる。
[0074] また、幾つかの実施形態では、ルート権限システム215、デレゲート権限システム222、又はその両方は、1つ又は複数の電子記憶媒体(図示せず)に署名入りブロック(例えばRSB、DSB)を記憶するように構成することができる。電子記憶媒体は、例えば揮発性(例えばSRAM、DRAM、又は他の半導体メモリ)又は不揮発性(例えばハードディスク、R/W光ディスク、フラッシュドライブ)、又はそれらの組み合わせとすることができる。RSB及び/又はDSBはSMデバイス内に記憶することもできる(例えばデバイスがリセットされるまでRSB/DSB対のみが機能を構成する場合、製品のリセット毎に構成をロードする必要があることがある)。
[0075] システム200は、幾つかのSM使用可能デバイス、例えばSM使用可能デバイス240、245、250、255、及び260を含むことができる。SM使用可能デバイス240、245、250、255、及び260は、例えばスマートフォン、タブレット、ネットブック、デスクトップコンピュータ、セットトップボックス、モバイルデバイス、ラップトップコンピュータ、ディジタルビデオレコーダ、ペイTVセットトップボックス、自動車、製造機器、ディジタル及びビデオカメラ、バッテリ、周辺機器を確証するデバイス、ビデオゲームのユーザインタフェース及び他のユーザインタフェースなどとすることができる。図2Aの例示的システムは複数のSMデバイスがある状態で図示されているが、システムには1つ又は任意の数のSM使用可能デバイスを実現することができる。SM使用可能デバイス240、245、250、255、及び260は、ルート権限システム217からの署名又は他の権限付与を確認し、次にルート権限システムがデレゲート権限システム222に権限付与することができる。また、SM使用可能デバイス(例えばSM使用可能デバイス240、245、250、255、及び260)とルート権限システム217、デレゲート権限システム222、又はその両方との連結は一時的でよい。例えば、連結はSM使用可能ICの動作を修正するために必要な時間だけ存在することができる。SM使用可能デバイス260及びSM使用可能IC265の権限付与は、ルート権限システム217又はデレゲート権限システム222によって生成し、1つ又は複数のデバイステスタ(図示せず)、プログラミングフィクスチャ(図示せず)、又は他の中間体(図示せず)を介して配送することができる。
[0076] デバイステスタは一般に、ICの機能を検査するように構成される。特にSM使用可能ICの場合、デバイステスタは追加的にプログラム情報(例えば鍵、デバイスIDなど)を(例えばプログラミング指令をSMコアに供給することによって)SM使用可能IC中に構成することができる。デバイステスタ又はプログラミングフィクスチャは、デバイス識別情報及び構成情報を含むデバイス及びそのSMコアに関する情報をデータベースに記録することもできる。各デバイステスタは、1つ又は複数のSM使用可能デバイスをルート権限システム、デレゲート権限システム、又はその両方に連結するように構成することができる。ある範囲の機能又は能力を有することがあるシステム又はデバイスは、SM使用可能ICに使用するのに理想的に適している。
[0077] SM使用可能デバイスは1つ又は複数のSM使用可能IC(例えば265)を含むことができる。同様に、SM使用可能IC265は、例えば1つ又は複数のSMコア、及び1つ又は複数のセキュアメモリを含むことができる。以下で詳細に説明するように、SM使用可能ICは任意選択で、他の何らかの要素(例えば1つ又は複数のエクストラクタ、1つ又は複数の機能を制御する出力など)、又はそれらの組み合わせを含むことができる。以下で説明するように、鍵管理又は機能管理動作を介してSM使用可能IC265にある種の修正を加えることができる。
[0078] SM使用可能デバイス240、245、250、255、及び260は、PLMN210を通してセルラ通信するように装備する、無線アクセスポイント275を使用してWi−Fi通信するように装備するか、又はネットワーク210を使用してセルラ通信とWi−Fi通信の両方を実行できるようにするか、又はその任意の組み合わせを実行することができる。無線アクセスポイント275は、IEEE802.11仕様のうち1つに従って動作するWLANに構成することができる。例えば、SM使用可能デバイス250は、無線アクセスポイント275を使用してネットワーク205に無線連結し、SM使用可能デバイス240はPLMN210を介してネットワーク205に連結する。SM使用可能デバイス240、245、250、255、及び260が供給することができる他の通信インタフェースの例には、イーサネット、JTAG、シリアル/USB、I2Cなどが含まれる。
[0079] SM使用可能デバイス240、245、250、255、及び260は、プログラミング前には同一であったICを含む場合でも、異なるように構成することができる。消費者の電子機器では、(例えば同じマスクセットから製造される)同様のシリコン又はICを広範囲の製品(例えば、ハイエンドの製品とローエンドの製品の両方)で使用することができ、性能の違いは少なくとも部分的に構成によって制御される。機能が豊富な製品は、例えば先進の音響能力(例えばサラウンドサウンド)、複数のHDビデオストリーム、多数及び多様な入力及び出力、ケーブル又は衛星又は無線特定モデム及び変換器、様々な同調器などを含む複数のケーブルプロバイダの支援、ピクチャインピクチャなどの表示機能、Wi−Fi支援などを有することができる。同様に、スマートフォンに使用するように意図されたSM使用可能ICは、GPS、様々な無線ネットワークラジオプロトコル、Wi−Fi、近接場通信に基づく金融取引、ブルートゥース又は他の無線周辺インタフェース、無線ビデオサービス、HDビデオ支援、無線ビデオインタフェース、追加の外部ビデオインタフェース、カメラ及びセンサの多数で様々な解像度、様々な画面サイズ及び解像度の支援、触覚、グラフィックス及びビデオ強調及び加速などの能力の機能で管理された支援を含むことができる。SM使用可能ICのSMコアを使用して、例えば入手可能又は使用可能なメモリなどのシステム資源のサイズ及び性能、又は入手可能なプロセッサの速度及び数を管理することができる。図示されていない幾つかの実施形態では、SM使用可能デバイス(例えば240、245、250、255、及び260)は、動作可能な状態でコンフィギュレータシステム280に連結することもできる。使用していない機能のIP認可費用を削減する、非可動又は未検査のシリコン区域を使用可能にする、ハイエンドの部品の部品再生修理品の販売を回避する、セキュリティのリスクを生じるようなモード/設定を使用不能にするなど、特定のチップ上で特定の機能を使用不能にしなければならない多くの理由があることがある。
[0080] デレゲート権限220(例えばICプロバイダ105又はIC製造業者110)は、コンフィギュレータシステム280から構成データを受信することができる。コンフィギュレータシステム280によって生成されたデータは、特定の機能又は鍵のアドレス指定方法についてデレゲート権限220に通知することができる。
[0081] 例示的実施形態では、SMコアの特徴空間は、SM使用可能ICの特定の機能又は構成の態様を制御する値を含むメモリに記憶されたアドレス空間である。図2Bは、SM使用可能ICに関連する特徴空間285の例示的実施形態のブロック図である。特徴空間285は1つ又は複数の値295を含み、それぞれ関連するアドレス290を有する。例えば「GPSラジオ使用可能」という値は、特徴空間のアドレス0に割り当てることができる。多ビットPLL構成値などの機能アドレス空間の他の値は、複数のビット(及び対応するアドレス)に広がることができる。
[0082] 幾つかの実施形態では、特徴空間285の値のうち1つ又は複数が、SM使用可能ICの他の機能ではなくSMコア自体に関連することがある。このような特徴空間値は内部機能として知られる。例えば、内部機能は、ある種のベース鍵が使用するために入手可能であるか制御すること、デバイスに関する情報(製品製造業者のID、製品を販売した地理的地域など)を伝送することなどができる。これらの内部機能を使用して、(例えば1つの地理的地域のデバイスに意図された権限付与が、別のデバイスでは働かなくなるように)権限付与を制御することができる。
[0083] 内部機能はアドレス可能であり、デバイス要素の制御に使用される機能と同様の方法で制御される。内部機能を使用して、より高レベルの特権又は機能状態を提示することができ、これはデバイスの要素に指示するさらに特定のSMコア出力にマップされる。例えば、内部機能は1から7の数値の速度等級を表し、SMコア出力は、速度等級にマップされる、より多数のPLLクロック制御設定を設定する制御信号を含む。この方法で、後述するように、数値の速度等級設定は、特定の速度等級に制限された動作を有するSMコア指令を形成する条件として使用することができる。別の例では、内部機能をSMコア内で使用して、発行されたグループ識別子、デバイス識別子、又はデバイスがある種のアイデンティティによってパッケージング、製造、又は販売されている事実を追跡することができる。この例では、製造エンティティは、その製造IDを内部機能内にプログラムする許可を得て、デレゲート権限220になることができる。SMコア指令は、内部機能を解釈し、その結果を使用して、SMコアが他の機能又は鍵を管理する方法を制御することができる。例えば、SMコアは、特定のネットワークオペレータによって操作されるデバイス、又は小売前の状態にあるデバイスのみに、ある種の鍵を出力するか、ある種のデバッグ設定を許可することしかできない。
[0084] 図2Aに戻ると、コンフィギュレータシステム280は、デバイスに特定の鍵をSMコア鍵インタフェースにマップするように構成することもできる。コンフィギュレータシステム280は、これらの設定及び構成を管理するために、チップ開発中及びその後の両方で使用することができる。
[0085] コンフィギュレータシステム280は、1つ又は複数のコンフィギュレータ入力ファイル、ハードウェア(「HW」)定数、又はそれらの組み合わせを受信し、それを処理して1つ又は複数のエクストラクタハードウェア定義、1つ又は複数のサブエクストラクタハードウェア定義、及びIC構成マップを生成するように構成することができる。生成された定義は、例えばSM使用可能ICのコンポーネントを記述するベリログモジュールである。1つ又は複数のコンフィギュレータ入力ファイルは、SM使用可能ICの特定の構成を定義する、1つ又は複数のセキュリティ鍵及びそれに関連するSM使用可能IC上の宛先、SMコアが管理する機能の名称及びアドレスなどのリストアップすることなどを実行することができる。例えば、1つ又は複数のコンフィギュレータ入力ファイルは、名前を付けた機能の信号、構成ビット、構成ビットのグルーピング、セキュリティ鍵バス出力、セキュリティ鍵バス属性、セキュアメモリマッピング属性、又はそれらの組み合わせのようなことを指定するように構成することができる。コンフィギュレータシステム280が管理して、ハードウェアに埋め込むことができる(例えばシリコンに固定し、同じマスクで作成された全チップに共通である)ハードウェア定数の例には、例えばチップ製品ID、ルート権限からの1つ又は複数の鍵(例えばルート権限システムの公開鍵)、デレゲート権限からの1つ又は複数の鍵、1つ又は複数のベース鍵、1つ又は複数の追加のセキュリティ鍵、誤り訂正データ、機能制御のデフォルト値などが含まれる。
[0086] 生成されたエクストラクタハードウェア定義は、IC設計で使用して、SMコアから様々なサブエクストラクタまでバス出力の経路指示をする。サブエクストラハードウェア定義は、IC設計で使用して、1つ又は複数のコンフィギュレータ入力ファイルで指定されているように、エクストラクタから名前付き機能及び鍵まで特徴空間ビットをマップする。エクストラクタハードウェア定義及び任意のサブエクストラハードウェア定義を使用して、エクストラクタ及びサブエクストラクタを含むSM使用可能ICの設計を生成する。
[0087] コンフィギュレータシステム280は、構成の変化を追跡し、既存の回路設計レイアウトの修正を最小化するために使用することができる状態キャッシュを使用するように構成することもできる。状態キャッシュは、例えばマップファイル、IC構成マップなどとすることができる。幾つかの実施形態では、状態キャッシュの更新にマップファイルを使用する代わりに、以前の出力を再度読み取って状態キャッシュを実現するようにコンフィギュレータ280を構成する。
[0088] 幾つかの実施形態では、コンフィギュレータシステム280は、1つ又は複数の指令マッピングファイル、1つ又は複数のファームウェアマッピングファイル、及び1つ又は複数の文書化ファイルを追加で生成するように構成することができる。指令マッピングファイルは、例えばSM使用可能ICによって理解可能な形態に指令をマップするために使用するファイルである。ファームウェアマッピングファイルは、ソフトウェア開発に必要な定義及び構造を含むファイル(例えばヘッダ及びソースファイルなど)である。文書化ファイルは、SM使用可能ICの設計の概観を提供する。また、文書化ファイルは、ソフトウェアコンポーネントの設計に使用する環境及び構造の原理を含むことができる。文書化ファイルは、以下のフォーマット、すなわち、XML、HTML、テキスト、PDF、マイクロソフトのWORDなどのうち1つ又は複数とすることができる。
[0089] コンフィギュレータシステム280は、1つ又は複数のSM使用可能IC265の生産に使用することができる。図示されていない幾つかの実施形態では、コンフィギュレータシステム280は、SM使用可能デバイス240、245、250、255、及び260のうち1つ又は複数の生産に使用することができる。コンフィギュレータシステム280は1つ又は複数のプロセッサ(図示せず)、メモリ(図示せず)、及びデータインタフェース(図示せず)を含むことができる。コンフィギュレータシステム280は、単一のコンピュータ上に実現することができるか、又は場合によっては複数のコンピュータに分散させることができる。
[0090] 図3は、本明細書で述べる方法を実行するためにSMコアを含むシステム300の例示的実施形態のブロック図である。システム300はSMコア305、セキュアメモリ310、エクストラクタ320、バス360、プロセッサ355、エクストラクタインタフェース375、鍵インタフェース376、構成値インタフェース377、ホストメモリ370、機能325、330、及び335、サブエクストラクタ340、345、及び350、レジスタインタフェース358、テスタインタフェース365、又はそれらの組み合わせを含むことができる。SM使用可能ICはSMコア305及びセキュアメモリ310を含み、任意選択でSMシステム300に示した他の要素(例えばエクストラクタ320、バス360、プロセッサ355、エクストラクタインタフェース375、サブエクストラクタ340、345、及び350、鍵インタフェース376、構成値インタフェース377、ホストメモリ370、機能325、330、及び335など)のうち幾つか(又は全部)を含むことができる。図3には各コンポーネントが1つしか図示されていないが、システム300は名前のあるコンポーネントのいずれも複数で備えられることを理解されたい。例えば、システム300は複数のプロセッサ355を有することができる。同様に、図3の例示的システムは単一のSMコア305がある状態で図示されているが、SM使用可能ICは複数のSMコア305を含むことができる。さらに、幾つかの実施形態では、システム300は、テスタに動作可能な状態で連結(例えば光、電気、又は無線転送を使用して通信可能な状態で連結)することができるテスタインタフェース(「I/F」)365を含むことができる。図示されていない幾つかの実施形態では、1つ又は複数のサブエクストラクタ340、345、及び350をエクストラクタ320と組み合わせることができる。
[0091] また、幾つかの実施形態(図示せず)では、SMコア305を1つ又は複数の機能(図示せず)に直接接続することができ、このような接続のすべてを直接取り扱う場合は、エクストラクタ320及びサブエクストラクタが必要ないことがある。さらに幾つかの実施形態では、機能325、330、及び335は、エクストラクタ320、1つ又は複数のサブエクストラクタ(例えば340、345、及び350)、及びインタフェース(375、376、377)を使用して接続し続けることができる。
[0092] また、SMコア305は信号をシステム300の他のコンポーネントに直接読み書きすることができる。幾つかの実施形態では、SMコア305は、例えば専用のインタフェース(図示せず)又はバス360を介して、システム状態のサンプリング、データパラメータの読み取りなどを実行することができる。例えば、SMコア305はバス360上で読み取り動作を発行し、所望の情報を得ることができる。
[0093] システム300はセキュアメモリ310を含む。セキュアメモリ310は単一のセキュアメモリ及び/又は複数の均質又は異質なセキュアメモリとすることができる。セキュアメモリ310は、各ビットの設定を不揮発性形態で固定することができるディジタルメモリの形態とすることができる。セキュアメモリ310は、例えばヒューズメモリ、抗ヒューズメモリ、1回書き込み(「OTP」)メモリ、消去可能プログラム可能ROM(「EPROM」)、電気的消去可能プログラム可能ROM(「EEPROM」)、RAM(バッテリバックアップ式RAMを含む)、又はそれらの組み合わせを含むことができる。幾つかの実施形態では、セキュアメモリ310がヒューズ又は抗ヒューズメモリである場合、セキュアメモリ310は、セキュアメモリ310に以前に記憶された情報を(例えば以前に書いたデータを取り消すか再マップすることによって)改訂する能力を提供する冗長経路を含むことができる。テクノロジー及び存在するセキュリティ機能に応じて、セキュアメモリ310の内容は、暗号化及び/又は認証する、SMコア305以外のブロックによって読み取られないよう保護する、1回書き込み可能であるように構成することができる。また、セキュアメモリ310は、SMコア305のみがセキュアメモリ310に接続するか、又はSM使用可能ICの他のコンポーネントがセキュアメモリ310から読み取れるが、SMコア305のみがセキュアメモリ310に書き込めるように、分離することができる。セキュアメモリ310は、SMコア305以外のSM使用可能ICのコンポーネントによって読み取ることができる1つ又は複数の部分、及びSMコア305によってのみ読み取ることができる1つ又は複数の部分に区分化することもできる。SMコア305は、セキュアメモリ310の製造検査及びプログラミング動作のすべてを実行するために直接担当することができる。また、幾つかの実施形態では、セキュアメモリ310は、例えばICからある種の層を除去する、ICのマイクログラフを捕捉するか、又は動作中にICを電気的に探査することによって、その内容を学習しようとする努力に抵抗するよう設計される。また、幾つかの実施形態では、SMコア305はラッパー315を含む。ラッパー315は、SMコア305からの要求をセキュアメモリ310が理解する要求に、及びその逆に翻訳する。幾つかの実施形態では、セキュアメモリ310はSMコア305に統合することができる。
[0094] システム300は1つ又は複数の機能325、330、及び335を含む。サブエクストラクタ340、345、350を介して機能325、330、及び335に配送される入力は概ね構成可能であり、それにより機能325、330、及び335に関連する機能の構成可能性を(例えば鍵管理及び機能管理動作を介して)提供する。このような構成変化は、レジスタインタフェース358を介してSMコア305に配送されるSM指令(以下で説明)によって実行することができる。
[0095] 機能325、330、及び335はハードウェア、ソフトウェア、及びそれらの組み合わせを含むことができる。例えば、機能325、330、及び335は、全世界測位サービス、1つ又は複数のプロセッサ(例えばCPU、グラフィックスプロセッサ、暗号コアなど)、追加メモリ、USBポート、ビデオ入力又は出力ポート、音響入力又は出力ポート、先進のグラフィックス能力(例えばピクチャインピクチャ、複数のHDビデオストリーム、グラフィックス加速など)を提供する回路、1つ又は複数のネットワーク(例えばWi−Fi、近接場、ブルートゥースなど)にアクセスするためのネットワークトランシーバ、カメラなどとすることができる。以上の機能のリストは限定的とは見なされない。というのは、機能は鍵管理又は機能管理動作を介して構成可能な任意のコンポーネント又は能力を含むことができるからである。機能の能力は、以上では例えば図2Aに関して、以下では例えば機能管理のセクションで説明する。幾つかの実施形態では、機能又は機能の一部は、第三者IPプロバイダによって提供される。機能325、330、及び335は、それぞれサブエクストラクタ340、345、及び350に関連する。図示されていない幾つかの実施形態では、複数の機能が単一のサブエクストラクタを共有することができる。サブエクストラクタ340、345、及び350は、SM使用可能ICの設計をまたいだSMコアの出力(構成値及び鍵など)の配送を促進する。また、以上で説明したように、サブエクストラクタ340、345、及び350は任意選択であり、通常は複数の機能を含む大型又は複雑なSM使用可能IC(最上位ASICフロアプラン作成及び/又は経路指示が難問であるものなど)に使用される。エクストラクタ320は、SMコア305からの出力をサブエクストラクタ340、345、及び350に配送し、次に信号をそれぞれ機能325、330、及び335に配送するように構成される。
[0096] 例示的システム300はエクストラクタ320を含む。エクストラクタ320は、SMコア305からの情報(例えば鍵及び機能状態)を受信し、意図された宛先機能に関連する適切なサブエクストラクタに、機能に適切な形態で経路指示するように構成されたハードウェアのコンポーネントである。機能状態とは、宛先機能によって理解可能な形態であるように、SMコア305によって、及び場合によってはエクストラクタ320によって処理されている情報を指す。機能状態は、特徴空間の1つ又は複数の関連するアドレスを有することができる。例示により、機能状態は使用可能信号、メタデータ、構成又は較正情報、又は機能に有用である他のデータを含むことができる。
[0097] エクストラクタ320は、SMコア305に、及び1つ又は複数の機能(例えば機能325、機能330、及び機能335)に動作可能な状態で連結する。幾つかの実施形態では、エクストラクタ320はエクストラクタインタフェース375を介してSMコア305に連結する。エクストラクタインタフェース375は、SMコア305からエクストラクタ320への情報(機能データ、セキュリティ鍵など)の通信を提供する。機能データは秘密又は非秘密とすることができ、機能を構成するために使用される汎用データである。エクストラクタインタフェース375は、SMコア305をエクストラクタ320に連結する配線を含むことができる。次に、エクストラクタ320は、鍵インタフェース376、構成値インタフェース377、又はそれらの組み合わせを介して、各宛先機能に関連するサブエクストラクタへと情報を転送する。鍵インタフェース376は、秘密情報(例えばRSA及びEC−DSAなどの公開鍵システムへのプライベート鍵などの暗号化鍵、AES又はトリプルDESなどの暗号システムへの対称鍵、及びHDCP又はEMVなどのプロトコルの鍵)を渡すように構成された通信路である。例えば、エクストラクタ320は128ビットの鍵及び標的鍵アドレスを、鍵インタフェース376を介して1つ又は複数の機能(例えば325、330及び/又は350)に通信することができる。エクストラクタ320は、標的アドレスを復号して、宛先機能に関連する特定のサブエクストラクタを識別するように構成することができる。例えば、サブエクストラクタ340、サブエクストラクタ345、及びサブエクストラクタ350は、それぞれ機能325、330、及び335に関連する。構成値インタフェース377は、機能管理動作に関連する機能データを渡すように構成された通信路である。例えば、1つ又は複数の機能(例えば325、330、335、又はそれらの組み合わせ)が構成されているか、使用可能である場合、エクストラクタ320は、構成値インタフェース377を介して機能データを適切なサブエクストラクタに渡す。同様に、特定の機能が所与のアドレスに関連する値を必要としない(及び/又はセキュリティの理由で受信することが許可されない)場合、エクストラクタ及び/又はサブエクストラクタは宛先からのこれらの値を保留することができる。不必要な値を保留すると、それを必要としないサブエクストラクタ又は機能への値の不必要な経路指示及び配送を回避することによって、ASICの効率を改善することができる。幾つかの実施形態では、エクストラクタインタフェース375はSMコア305からエクストラクタ320への情報の双方向通信を提供する。他の実施形態では、エクストラクタインタフェース375はSMコア305からエクストラクタ320への情報の一方向通信を提供する。鍵インタフェース376及び構成値インタフェース377は、SMエクストラクタ320を1つ又は複数のサブエクストラクタ240、234、及び350に連結する配線を含むことができる。
[0098] エクストラクタインタフェース375、鍵インタフェース376、及び構成値インタフェース377、又はそれらの組み合わせは、SMコア305をエクストラクタ320及びサブエクストラクタ340、345、及び350に連結する。インタフェースの組み合わせは、例えば連続的にデータ値を送信する、値変化事象が生じた(例えば機能を使用可能にする)、又は(例えば機能が電源投入されたので)要求を受信した、又はそれらの組み合わせの場合にデータを送信することによってSMコア305からのデータを特定の機能に送信することができる。
[0099] SMコアに関連する特徴空間の各要素の現在値を、例えばセキュアメモリ310、又はSMプライベートメモリ(以下で説明)に記憶することができる。幾つかの実施形態では、所与の動作(例えば以下で説明するRSB又はDSBの処理)は、特徴空間の要素のサブセットしか更新することができない。値変化事象がSMコア305からエクストラクタ320へと通信される実施形態では、特定のペイロードの影響を受けた特徴空間の要素の値のみがそのペイロードの処理後にSMコア305からエクストラクタ320へと通信されることが予想される(但し、必須ではない)。特徴空間内の値がすべてSMコア305からエクストラクタ320へと連続的にドライブされる実施形態では、特定のペイロードの影響を受ける値を、例えばエクストラクタ320と通信するためにSMプライベートメモリなどからの無影響の特徴空間の以前の値と組み合わせることができる。
[00100] システム300はプロセッサ355を含むことができる。プロセッサ355は、例えば単一又は複数のマイクロプロセッサ、現場でプログラム可能なゲートアレイ(FPGA)要素、又はディジタル信号プロセッサ(DSP)とすることができる。プロセッサ355の特定の例は、例えばx86プロセッサ、ARMプロセッサ、MIPSマイクロプロセッサ、8051マイクロコントローラなどである。プロセッサ355は、バス360を介してSMコア305、ホストメモリ370、テスタI/F365、又はそれらの組み合わせに連結することができる。幾つかの実施形態では、プロセッサ355は、SMコア305と直接通信する、SMコア305を介してセキュアメモリ310を読み取ってプログラムする、SMコア305の状態及びシステム状態を検索する、指令をSMコア305に送信する、SMコア305からソフトウェアの暗号化ハッシュ(ブートルーチン、オペレーティングシステムのコンポーネント、アプリケーションなど)を受信する、プロセッサ355による実行に権限付与する、又はそれらの組み合わせを実行するように構成することができる。また、これらのアクセスを実行する複数のプロセッサがあってもよい。また、幾つかの実施形態では、プロセッサ355は、例えばリング0内でARM TrustZone(登録商標)を使用するか、又はセキュア仮想機械モニタ(SVMM)内で、より高い特権的コードを実行する能力を有する。下位特権的プロセッサ355又はプロセスは、SMコア305の一部又は全部の能力を使用してブロックすることができる。レジスタインタフェース358を使用して、要求のID及び特権レベルを通信することができ、SMコア305は、レジスタインタフェース358を介して受信したSM指令を受け取り、処理する場合に、リクエスタの特権レベルを考慮に入れることができる。
[00101] システム300はホストメモリ370を含むことができる。ホストメモリ370は、揮発性(例えばSRAM、DRAM、又は他の半導体メモリ)又は不揮発性(例えばハードディスク、R/W光ディスク、フラッシュドライブ)、又はそれらの組み合わせとすることができる。ホストメモリ370は、プロセッサ355、SMコア305、テスタI/F365、又はそれらの組み合わせと動作可能な状態で連結する。この実施形態では、ホストメモリ370はバス360を介してシステム300の1つ又は複数のコンポーネントと連結する。
[00102] システム300はテスタI/F365を含むことができる。テスタI/F365はテスタシステム(図示せず)のインタフェースである。テスタI/F365は、例えばSMコア305が製造状態にある場合、SM使用可能ICがインフィールドである場合、プロセッサ355がまだ動作していない(又は誤動作している)場合、又はそれらの組み合わせの場合に通信路を提供するように構成することができる。テスタI/F365は走査インタフェース、検査インタフェース、合同検査作業グループ(「JTAG」)インタフェース、USBインタフェース、先進の周辺バス(「APB」)インタフェースなどとすることができる。テスタシステムは、システム300が適切に動作しているか検査できるように、システム300に連結することができる。例えば、テスタシステムは、システム300が適切に機能を使用可能にする、機能を使用不能にする、セキュアメモリ310をプログラムするなどのことを確実に行うように構成することができる。テスタシステムは1つ又は複数のプロセッサ及びメモリを含むことができ、SMコア305における動作に権限付与するためにデレゲート権限システムと通信する(又はそれを含む)ことができる。
[00103] システム300はSMコア305を含む。SMコア305は、セキュアメモリ310、エクストラクタ320、及びプロセッサ355、ホストメモリ370、及びテスタI/F365にレジスタインタフェース(「I/F」)358及びバス360を介して動作可能な状態で連結することができる。また、幾つかの実施形態(図示せず)では、SMコア305はプロセッサ355、歩数とメモリ370、及びテスタI/F365のうち幾つか又は全部に直接接続することができる。SMコア305は1つ又は複数のSMプライベートメモリ(図示せず)を含む。これらの1つ又は複数のプライベートメモリを使用して、1つ又は複数のセキュリティ鍵(例えばベース鍵、個別化鍵、トランスポート鍵、ネットリスト鍵、ルート又はデレゲート権限公開鍵など)、セキュアメモリ310内の位置に対する1つ又は複数のポインタ、ラッパー315への命令、機能アドレスに関連する現在の構成状態、指令処理中間体などのSMコアが使用するデータを記憶することができる。幾つかの実施形態では、1つ又は複数のセキュリティ鍵及び製品チップIDは、SMコア305に配線することができる(例えばルート権限公開鍵、セキュアメモリ310が誤動作しているか、又は構成されていない場合に入手可能になるべきベース鍵など)。1つ又は複数のセキュリティ鍵は、対称鍵、公開非対称鍵、プライベート非対称鍵、又はそれらの組み合わせを含むことができる。幾つかの実施形態では、1つ又は複数のセキュリティ鍵は、SMコアに特異的であり、SMコアのシリーズ間で共有することができる鍵もある。SMコアのシリーズとは、何らかの方法で関係することができる1組のSMコアを指す。例えば、任意のマスク設計から製造されたSM使用可能ICのすべてにあるSMコアをシリーズと見なすことができる。また、同様のSM使用可能ICのファミリのいずれかにあるSMコアはすべてシリーズと見なすことができる。
[00104] 例示的実施形態では、SMコア305は1つ又は複数の署名入りブロックを受信するように構成され、それにはルート署名入りブロック(「RSB」)、さらにゼロ個以上のデレゲート署名入りブロック(「DSB」)が含まれ、それについては図4に関連してさらに説明する。SMコア305は、署名入りブロックに関連する署名を検証し、制限/結合(以下参照)を指定する関連のペイロード、さらに1つ又は複数の機能(例えば325、330、335)に意図された値(例えば構成設定又は鍵)を抽出するように構成される。制限の例には、SMコアがペイロードを受け入れるべき限界(特定のデバイスIDを指定する限界、又は機能アドレス空間に記憶される値に必要な状態、又は機能を操作できる限界など)が含まれる。SMコア305は、ルート権限の公開鍵を使用してペイロードを確認し、及び例えばSM使用可能ICに組み込まれた、又はセキュアメモリ210に記憶された値から導出したプライベート鍵を使用して、署名入りブロックからペイロードを抽出する(例えば復号する)ように構成することができる。SMコア305は、ペイロードの処理結果の幾つかを1つ又は複数の意図された機能(例えば325、330、335)へとエクストラクタ320を介して分散させるように構成される。
[00105] 幾つかの実施形態では、SMコア305は、SM使用可能ICの機能状態を更新する命令を実行する、機能への鍵配送を促進する、(セキュアメモリ310に書き込むために必要なパラメータがある場合は、それを構成するように)セキュアメモリ310の構成を使用可能にするなどのことを実行するように構成することができる。例えば、SMコア305には、機能325を使用不能にし、機能330を使用可能にするように命令することができる。実施形態及び提供される命令に応じて、SMコア305は、(例えばセキュアメモリ310を更新することによる)永続的変更、(例えばSMプライベートメモリを更新することによる)非永続的変更、又はその両方を実行することができる。永続的変更とは、IC使用可能チップの再ブート後に変更が持続するように、SM使用可能ICの電源断後にも持続する変更である。非永続的変更とは、所定の期間又は事象だけ存続する変更である。例えば、非永続的変更は、ある特定の実行数だけ、デバイスの電力が失われるまでなどでのみ有効とすることができる。SMコア305は、セキュアディジタル(「SD」)カードの暗号化、フラッシュメモリ/ハードディスクの暗号化、高帯域幅ディジタル内容保護(「HDCP」)、ディジタル権利管理(「DRM」)システム、仮想プライベートネットワーク(「VPN」)支払い命令(例えばEMV)、パスワードマネージャー、無線リンク暗号化、周辺認証、他のセキュアオペレーションなどのために鍵を管理し、配送するように構成することができる。
[00106] また、SMコア305はIC構成プロセスで使用することができる1つ又は複数のハードウェア(「HW」)定数を受信するように構成することができる。HW定数は、例えば製品チップID、ルート権限システムの1つ又は複数の鍵(RSA又はEC−DSA公開鍵など)、デレゲート権限システムからの1つ又は複数の鍵、1つ又は複数のベース鍵、1つ又は複数の追加のセキュリティ鍵、SMコア305の動作(例えばメモリの使用、支援された指令など)のパラメータ、誤り訂正データなどを含むことができる。製品チップIDは、特定のSM使用可能ID、又は特定のSM使用可能IDシリーズ、又はその両方を識別値で一意に識別することができる。セキュリティ鍵は対称又は非対称(及び非対称の場合は公開又はプライベート)とすることができる。幾つかの実施形態では、1つ又は複数のベース鍵は、マスタ鍵、SM使用可能IDシリーズの識別コード、チップ固有の識別子、又はそれらの組み合わせから導出することができる。誤り訂正データは、例えばセキュリティ鍵のうち1つ又は複数の関連するチェックサムを含むことができる。
[00107] SMコア305は、プロセッサ355に対する割り込みを生成するように構成することができる。例えば、SMコア305は、SM使用可能ICの機能状態が更新された場合、追加のI/Oを受信する準備が整った場合、鍵が出力されている場合などに割り込みを生成するように構成することができる。
[00108] SMコア305は、1つ又は複数の組み込みセルフチェックを実行するように構成することができる。例えば、SMコア305は、最初の電源投入時に、検査インタフェースなどの制御下でセルフチェックを実行するように構成することができる。
[00109] 幾つかの実施形態では、システム300は図3に示すコンポーネントをすべて、又はコンポーネントの大部分(プロセッサ355及びホストメモリ370を除くすべてなど)を組み合わせる単一のIC(システムオンチップなど)である。
[00110] 幾つかの実施形態では、システム300の全部又は幾つかは、外部源に対してタンパ防止となるように構築することができる。例えば、SMコア305はセキュリティメッシュ(図示せず)を含むか、セキュリティメッシュ下で製造することができる。セキュリティメッシュは、例えば集積回路上の最上金属層のうち1つ又は複数を使用して、1次論理回路の最上部に製造された配線ネットワークである。セキュリティメッシュは、メッシュを含む配線に対する損傷を検出するように意図されたアクティブセンサネットワークと対にすることができる。この実施形態では、SMコア305は、アクティブセンサによってセキュリティメッシュ配線の一部が損傷していることが示された場合、繊細な動作の実行を拒否するように構成される。また、SMコア305は、セキュアメモリ310の消去など、他の対策を実行するように構成することができる。
[00111] 図4は、例示的SMコア305のブロック図を示す。例示的SMコア305は、暗号モジュール410、実行エンジンモジュール420、通信モジュール430、及びデータ記憶モジュール440、又はそれらの組み合わせを含むことができる。これらのモジュールのうち1つ又は複数を削除、修正、又は他のモジュールと組み合わせることができることが認識される。
[00112] 暗号モジュール410は、認証、暗号化機能、復号機能、又はそれらの組み合わせを提供するように構成されたハードウェアコンポーネント、ソフトウェアコンポーネント、又はそれらの組み合わせとすることができる。例えば、暗号モジュール410は対称暗号化機能、対称復号機能、非対称暗号化機能、非対称復号機能、非対称署名用/署名検証、鍵合致、又はそれらの組み合わせを提供するように構成することができる。幾つかの実施形態では、暗号モジュール410は、ルート署名入りブロック(「RSB」)に関連する1つ又は複数のディジタル署名を検証するように構成することができる。RSBは例えば1つ又は複数の命令、命令テンプレート、1つ又は複数のデレゲート許可、1つ又は複数の鍵(例えばデレゲート公開鍵)、又はそれらの組み合わせを含むことができる。RSBは、ルート権限のプライベート鍵(すなわち、ルート権限システム217のプライベート鍵)によって署名した少なくとも1つのディジタル署名を含む。暗号モジュール410は、対応するルート権限公開鍵を使用してRSBのディジタル署名を認証するように構成することができる。幾つかの実施形態では、認証はRSA、DSA、又はECDSAを使用して実行することができる。(SM使用可能IDからの認証の秘密が問題ではないような)他の実施形態では、認証はHMACなどの対称認証方式を使用して実行することができる。認証方式は、以上及び他のアルゴリズムの組み合わせを使用することができる。認証方式は、PKCS#1又はANSI X9などの規格を実現するか、又は所有権を有することができる。
[00113] また、暗号モジュール410は、デレゲート署名入りブロック(「DSB」)に関連する1つ又は複数のディジタル署名を検証するように構成することができる。DSBは、例えば1つ又は複数のSM指令、ペイロード(暗号化又は非暗号化)、1つ又は複数の鍵、又はそれらの組み合わせを含むことができる。一実施形態では、各DSBは常に、デレゲート権限の公開鍵を規定し、権限付与するRSBが先行する。DSBは、デレゲート権限システム(例えばデレゲート権限システム222)によって署名した少なくとも1つのディジタル署名を含むことができる。有効DSBの受信及び検証後、暗号モジュール410は、SM使用可能ICの1つ又は複数のベース鍵を使用して、(DSBに対して適宜)1つ又は複数の混合鍵、1つ又は複数のトランスポート鍵、1つ又は複数のバリデータ(例えば鍵の検証に使用する値)、又はそれらの組み合わせを導出することができる。また、暗号モジュール410は、複数の鍵分割を組み合わせて1つ又は複数のベース鍵を形成するように構成することができる。
[00114] また、幾つかの実施形態では、RSB及び/又はDSBは暗号化したペイロード部分を含むことができる。この実施形態では、暗号モジュール410は、例えばベース鍵又はベース鍵から導出した鍵を使用して、暗号化したペイロード部分を復号し、検証するように構成することができる。暗号モジュール410は、RSB又はDSB、又はその両方が認証されると、検証された指令を実行モジュール420に提供するように構成される。暗号モジュール410は、実行エンジンモジュール420、通信モジュール430、及びデータ記憶モジュール440に連結することができる。
[00115] また、DSBは、1セットの許容可能な許可を受けると、別の後続DSBを伴うことを示すことができ、さらに後続DSBを最初のDSBとは異なる(例えばこれより狭い)セットの許容可能な許可に限定することができる。
[00116] 幾つかの実施形態では、暗号モジュール410は、レジスタI/F(例えばレジスタI/F358)を使用して、テスタ又はCPUアプリケーションなどのSMコアの外部のデバイス又はコンポーネントとランダムセッション鍵を折衝するように構成することができる。折衝したセッション鍵は、例えばセキュアトンネルを開く、又はその後のRSB、DSB、又はその両方で通信される秘密を保護するために使用することができる。
[00117] また、例示的RSB及びDSBの態様について、図5〜図9Bに関連して以下で詳細に説明する。
[00118] 実行エンジンモジュール420は、SM指令を受信して実行するように構成されたハードウェアコンポーネント、ソフトウェアコンポーネント、又はそれらの組み合わせとすることができる。SM指令は、SMコア305に(例えばブートプロセス中に)関連するルート権限システム(例えばルート権限システム217)、デレゲート権限システム(例えばデレゲート権限システム222)、セキュアメモリ(例えばセキュアメモリ310)、又はそれらの組み合わせから受信することができる。SM指令は、例えばロード指令、鍵導出指令、復号指令、セキュアメモリ書き込み指令、条件付き動作、方針構成動作などを含むことができる。ロード指令は、例えば機能に配送された構成出力及び/又はSMコアの内部で使用する状態に対する非永続的変更を使用可能にすることができる。鍵導出指令は、以下で詳細に説明するように、例えば鍵ツリーなどを使用してベース鍵から1つ又は複数のセキュリティ鍵を導出するために使用することができる。復号指令は、受信したペイロードを復号する際に、及び機能に出力された秘密鍵を復号/出力する際に使用することができる。セキュアメモリ書き込み指令は、セキュアメモリに特定の命令又は他の変更を書き込むために使用することができる。(例えば、書き込み指令は、SM使用可能ICに対して永続的変更をするために使用することができる。)条件付き動作は、特定のSMコアで実行するために他の指令が適切か(又はどの指令が適切か)を判定するために使用することができる。方針構成動作は、他の指令が実行できることの限界を指定するために使用することができる(以下参照)。
[00119] 以上で説明したSM指令に加えて、幾つかのSM指令(例えば方針構成指令)は、例えばRSB又はDSBの使用を、特定の製品チップIDに、ある範囲の製品チップIDに、特定の製品製造業者に、SMコアが管理する任意の機能構成の値に基づいて、所与のチップシリーズに、ブロックを使用する場合にデレゲートがある種の機能を検査するという要求に、又はそれらの組み合わせに制限することができる。幾つかの実施形態では、SM指令は、RSB、又はDSB、又はその両方を、(例えば乱数発生器に基づいて)SMコアによって導出されたランダムなワンタイムチャレンジのRSB/DSBディジタル署名に組み込むことを要求することによって「単回使用」に制限することもできる。方針構成指令は、他のハードウェアからSMコアに接続された信号の状態、例えばタンパ検出回路からの出力、セキュアメモリ310のエラー状態などに基づいて限界を加えることもできる。実行エンジンモジュール420は、暗号モジュール410、通信モジュール430、及びデータ記憶モジュール440に連結することができる。
[00120] 通信モジュール430は、SMコア305と外界とのインタフェースとして作用するように構成されたハードウェアコンポーネント、ソフトウェアコンポーネント、又はそれらの組み合わせとすることができる。例えば、通信モジュール430は、CPU(例えばプロセッサ355)、ホストメモリ(例えばホストメモリ370)、セキュアメモリ(例えばセキュアメモリ310)、エクストラクタ(例えばエクストラクタ320)、テスタインタフェース(例えばテスタI/F365)、IC上の任意の他のコンポーネント、又はそれらの組み合わせとインタフェースをとるように構成することができる。通信モジュール430は、1つ又は複数のバス(例えばバス360を介する)、セキュアメモリなどからの指令を受信するように構成することができる。また、通信モジュール430は様々な機能への(例えば直接の、又はエクストラクタ320を介した、又はその両方の)情報送信を補助することができる。幾つかの実施形態では、通信モジュール430はセキュアメモリラッパー(例えばラッパー315)を含む。セキュアメモリラッパーは、SMコア305からの指令を、SMコア305に関連するセキュアメモリによって認識可能なフォーマットに翻訳するように構成される。通信モジュール430は、暗号モジュール410、実行エンジンモジュール420、及びデータ記憶モジュール440に連結することができる。
[00121] データ記憶モジュール440は、1つ又は複数のSMプライベートメモリを含むことができる。データ記憶モジュール440は、1つ又は複数のセキュリティ鍵(例えばデバイス鍵又はデバイス鍵のグループ)、製品チップID、1つ又は複数のSM指令、ブート命令、機能データ、構成データ、永続的機能情報などを記憶するように構成することができる。幾つかの実施形態では、データ記憶モジュールは、メモリのレイアウト及び使用に関する情報など、SMコア305の動作を永続的に変更するために使用する情報を追加的に記憶することができる。データ記憶モジュール440は、SMコア305の外部の1つ又は複数のメモリ構造(静的RAMなど)を含むか、又はそれにインタフェースをとるか、又は内部記憶装置(例えば、このような記憶装置が揮発性である場合はレジスタ、レジスタファイル、静的RAMなど、又は利用可能である場合は揮発性メモリを使用することができる)を組み込むことができる。データ記憶モジュール440は、デレゲート権限システムの公開鍵などの暗号値も記憶することができる。データ記憶モジュール440は、暗号モジュール410、実行エンジンモジュール420、及び通信モジュール430に連結することができる。
3.セキュリティマネージャーの機能
[00122] SM使用可能ICのSMコアが動作を実行する(例えば鍵又は機能状態を更新する)ようにルート権限が要求するには、ルート権限システムが1つ又は複数のSM指令に関する動作を規定する。SM指令は、実行された場合に、(とりわけ)SM使用可能ICのSMコアによって管理された機能状態を更新することができる。ルート権限システムは、SMコアによって認識される2進フォーマットでSM指令をコード化し、ディジタル署名を指令に含める。指令と署名の組み合わせは、署名入りブロックとして知られる。ルート権限システムからの署名入りブロックをルート署名入りブロック(「RSB」)と予備、デレゲート権限システムからの署名入りブロックをデレゲート署名入りブロック(「DSB」)と呼ぶ。
[00123] デレゲート署名入りブロックが関与しない簡単なケースでは、SM使用可能ICのSMコアが、ルート権限システムから指令を受信する。ルート権限システムの公開鍵をSM使用可能ICに組み込むことができる。図5は、ルート権限システムによって署名した指令を含むルート署名入りブロックを生成する例示的方法のフローチャートである。ステップ500で、ルート権限システムは1つ又は複数のSM指令を、例えば署名要求又は入力ファイルから受信する。次に、SM指令のブロックを、ルート権限システムがルート権限システムの公開鍵を使用してディジタル署名し(510)、RSBを生成する。ステップ520で、完成したRSBがルート権限システムによって提供される。RSBを受信するのは、ルート権限が(例えばテスタI/F365を介して)通信できるSMコアでよく、RSBは、最終的にSMコアが受信する前に、幾つかのエンティティ(例えば中間体、サーバ、コンポーネント、アプリケーション、ネットワーク、記憶ロケーション/ファイルなど)を介して渡すことができる。
[00124] 図6は、SM使用可能ICのSMコアが図5で生成されたRSBを処理する例示的方法のフローチャートである。ステップ600で、RSBをSMコアにて受信する。次に、SMコアがルート権限システムの公開鍵を取得し(610)、これは例えばSM使用可能ICに記憶して、ハードウェア定数としてSMコアに供給するか、又はセキュアメモリ(例えばセキュアメモリ310)に記憶することができる。
[00125] 次に、SMコアが、ルート権限システムの公開鍵を使用してRSBのディジタル署名を検証する(620)。ディジタル署名の検証結果が、署名が有効でないことを示すと(630)、プロセスは終了する(690)。ディジタル署名が有効である場合、SMコアはRSBに含まれる1つ又は複数のSM指令を処理する(640)。SM指令の処理中にエラーが発生すると(650)、例えばレジスタI/F358又は割り込みを使用してエラーを報告し(660)、プロセスが終了する(690)。エラーは、例えばSM指令によって製品チップIDが特定の範囲に入っているかチェックされ、SMコアに知られている製品チップIDがこの範囲外にある場合に生じることがある。処理中のエラーが発生しない場合、SMコアは、処理すべき追加のSM指令が残っているか判断する(670)。処理が必要である追加のSM指令がある場合、フローはステップ640に戻り、すべてのSM指令が処理されるまでプロセスが継続する。すべてのSM指令が処理されると、SMコアは、例えばレジスタI/F358又は割り込みを使用して、成功を報告し(680)、プロセスが終了する(690)。
[00126] 図7は、DSBと関連させることができるRSBを生成する例示的方法のフローチャートである。ステップ700で、ルート権限システムが1つ又は複数の入力パラメータを受信する。入力パラメータは1つ又は複数のSM指令、どのデレゲートが署名しようとするかの指令テンプレート、デレゲートの許可、デレゲート権限システムの公開鍵、他のデータ、又はそれらの組み合わせを含むことができる。デレゲート権限システムの公開鍵は、対応するデレゲート権限システムのプライベート鍵を有し、これはデレゲート権限システムによって制御される。
[00127] 以上で説明したように、SM指令は、SMコアに対してSM使用可能ICの状態に影響を与えるように指示する情報を含むことができる。また、RSBがDSBに関連する(例えばデレゲート権限システムの公開鍵を含む)場合、SM指令は、(以上のRSBのみの場合のように)ある種の条件に基づいて処理を停止する指令を含む。例えば、RSBは、RSB処理を継続して関連するDSBの実行を許可する前に、チップがある特定の製造段階にある、特定の製品チップIDの範囲内にあるか、又は特定のシリアル番号範囲内にあるか、又は特定のグループ又はサブセットに関連する設定を有するか、又は特定のエラー状態にある/ないことなどを確認する指令を含むことができる。条件文をSMコアによって維持される状態(デバイスのライフサイクル、製品OEM識別子、ユーザのタイプ、地理的地域、グループ識別子、小売SKU、日付など)に基づくものとする能力により、どのデバイスが所与のRSBを受け入れられるか、及びRSBがこれらのデバイスに対して実行することを制御する際に、大幅な融通性が得られることに留意されたい。したがって、ルート権限システムによって規定された基準に適合しないデバイスで、DSBを実行することを防止することができる。
[00128] 幾つかの実施形態では、ルート権限システムは、DSBの形態、又は内容、又はその両方を指定する指令テンプレートを受信し、署名することもできる。デレゲート権限システムは、意図された形態のDSBのみに署名することを確実に行う一つの方法としてルート権限システムの署名を検証することができる。指令テンプレート内には、含まれるSM指令の記述、さらに実行できる調節があってもよい。デレゲート権限システム内のハードウェアセキュリティモジュールは、テンプレート上のルート署名を検証し、許可された修正を実行し(又は許可された修正のみが実行されていることを検証し)、次に(成功した場合はデレゲート署名入りブロック(DSB)に署名することができる。この方法により、ルート権限が(デレゲート権限システムによって)デレゲートに制限を加えられることに留意されたい。このようなデレゲート署名に対する制限は、SMコアによって実施される制限を補償するものである(例えば、RSBが、所与の範囲に製品チップIDがあることを確認する検査を含む場合、範囲外のデバイスで実行すると、DSBを受け入れる前にエラーが発生する)。
[00129] デレゲート許可は通常、ルート権限によってSMコアよりもデレゲートが有することが許可された能力を指す。例えば、デレゲート許可は、特定の機能の更新に権限付与すること、セキュアメモリ310内のある範囲の物理的アドレスへの書き込みに権限付与すること、DSBの処理中にSMコアがどのSM指令を実行できるか権限付与すること、セキュリティ鍵の転送の宛先に権限付与すること、1つ又は複数の鍵バスへのアクセスに権限付与すること、1つ又は複数の周辺デバイスへのアクセスに権限付与すること、又はそれらの組み合わせを含むことができる。
[00130] RSB(又は権限付与された場合はDSB)は、SMコア内に許可データフィールドを設定することができる。これを、例えば特徴空間のアドレスにマップすることができる。このような設定は、別のRSBによって変更されない限り(又は変更されるまで)、又はチップがリセットされるまで継続することができる。例えば、例示的RSBは、SMコアによって処理された場合、能力マスクのシリーズにあるビットを設定し、ある種の能力を行使できるか規定することができる。別の例では、RSBは、SMコアによって処理された場合、セキュアメモリ310のレイアウト及び構成に関してSMコアが仮定することを制御するSMコア内のポインタを調節することができる。
[00131] RSBは、SMコアによって処理された場合、その後のDSBが使用するためのデータを準備することもできる。例えば、RSBはデータをデータ記憶モジュール(例えばデータ記憶モジュール440)に記憶させることができ、DSBはデータをデータ記憶モジュールから検索させることができる。また、RSBの実行前に、プロセッサ(例えばプロセッサ355)は、例えばレジスタI/F358を使用して、データをデータ記憶モジュールに記憶させることができる。RSBは、そのデータがある種の基準に一致するか、SMコアに検査させ、基準を満たした場合、その後のDSBが使用するためにそのデータをデータ記憶モジュール440に残すことができる。この場合、データがルート権限システムではなくプロセッサによって提供された場合でも、データはなおルート権限システムの許可を受けることになる。例えば、これによってデバイスのファームウェアが、ルート又はデレゲート権限によって署名されていないパラメータを提供することが可能になる。
[00132] RSBは、DSB署名がRSBによって規定された形態の「結合データ」をある特定の量だけ含むように要求することができる。これにより、DSB署名プロセスは、結合データが変化する場合毎に強制的に別個に実行される。例えば、RSBは、乱数発生器によって生成された値をサンプリングするようにSMコアに指示し、DSB署名がサンプリングされた値を含むように要求することができ、これによってDSB署名権限は、強制的にSMコアと「ライブで」接続状態になり、DSBの応答を防止する。別の例では、RSBは、デバイスID及びライフサイクル状態を含むように結合データを設定し、署名入りDSBが他のデバイスで再現されるのを防止することができる。結合データはデレゲート権限システムによって署名に組み込まれ(したがってデレゲート権限システムに知られ、セキュリティサービス120に報告されるデレゲート権限システムのログに入れることができ)るので、RSBは、ルート権限が確認したいと考える結合データ及びパラメータが正確にログされていると規定することもできる。
[00133] 幾つかの実施形態では、RSBは、SMコアによって処理された場合、SMコアに関連するワンタイムプログラマブル(OTP)メモリ(例えばセキュアメモリ310)に書き込むことができる。例えば、OTPメモリに含まれる命令は、起動プロセスの一部として、SM使用可能ICの機能Xを使用可能にすることができる。RSBは、起動プロセス中に機能Xが使用可能になるか、又はもう使用可能ではないようにSMコアに指示、セキュアメモリ310を修正することができる。また、幾つかの実施形態では、DSBはプログラムされたOTPメモリの内容に(通常は限定された)変更を加える許可を得ることもできる。
[00134] ステップ710で、入力パラメータをルート署名入りブロック内に形成し、これはルート権限システムの公開鍵を使用するルート権限システムによってディジタル署名され、RSBを生成する。ステップ720で、RSBを例えばデレゲート権限システムに、又はデレゲート権限システムを監督するセキュリティサービス(例えばセキュリティサービス120)に配送する。
[00135] 図8は、DSBを生成する例示的方法のフローチャートである。ステップ800で、デレゲート権限システムは1つ又は複数のデレゲート入力パラメータを受信する。デレゲート入力パラメータは、例えば図7で生成したRSB、DSMに含めるための1つ又は複数のSM指令、他の(暗号化された、又は暗号化されていない)ペイロードデータ、1つ又は複数の鍵、又はそれらの組み合わせを含むことができる。SM指令は、実行されるとSM使用可能ICの機能状態を更新するSM指令を含むことができる。SM指令は、上述したように、ルート権限システムによって署名された指令テンプレートの一部として受信することができる。ステップ810で、デレゲート入力パラメータは、(RSBに含まれるデレゲート権限の公開鍵に対応するプライベート鍵を使用して)デレゲート権限システムがディジタル署名し、DSBを生成することができる。ステップ820で、DSBを例えばSM使用可能ICに(直接、又は様々な中間体で)提供し、SMコアで処理する。
[00136] 図示されていない幾つかの実施形態では、デレゲート権限システムは、デレゲート入力パラメータにディジタル署名する前に、RSB内のデレゲート許可を検証する。これは、例えばRSBが破損したという問題の、又はデレゲート権限システムが、ルート権限が権限付与した対象を上回るものに署名するよう求められているという問題の防止に役立つことができる。
[00137] 図9Aは、図8で生成したDSB(さらに関連するRSB)をSMコアによって処理する例示的方法のフローチャートである。ステップ900で、DSBに関連するRSBをSMコアにて受信する。次に、SMコアは、ルート権限の公開鍵を使用してRSBのディジタル署名を検証する(905)。ディジタル署名が有効でない場合、RSBを拒否し、プロセスが終了する(915)。ディジタル署名が有効である場合、SMコアはRSBに含まれるSM指令の処理を開始する(912)。
[00138] 1つ又は複数のSM指令のうちいずれかが処理を失敗するか、又はそれ以外でエラーを生成した場合(920)、RSBを拒否し、プロセスが終了する(915)。例えば、限定されたSMプログラミング能力を有するようにデレゲート権限システムが構成された製品チップIDの範囲が、RSBのSM指令によって指定され、SM使用可能ICがその範囲外の製品チップIDを有している場合、SMコアは失敗し、RSBを拒否しなければならない(915)。この実施形態では、プロセスがステップ915で終了し、関連するDSBが到達すると、これを無視し、処理せずに破棄することができる。図示されていない他の実施形態では、SMコアはRSB及びDSBを同時に受信することができる。このような実施形態では、RSBの処理中にエラーによりプロセスが狩猟した場合、DSBを無視し、処理せずに破棄することができる。図示されていない他の実施形態では、SMコアはRSBの処理と同時に、又はRSBを受信する前にDSBを受信することができる。SMコアの特定の実施形態がRSB及びDSBを受信する方法に関係なく、RSBが拒否された場合、SMコアは関連するいかなるDSBの処理も拒否する(又は他の方法で拒否する)ことができる。
[00139] RSB内のSM指令の処理に成功した場合、SMコアはデレゲートの許可及びデレゲート権限の公開鍵をRSBから抽出する(925)。ステップ926で、SMコアはRSBに関連するDSBを受信する。上述したように、図示されていない幾つかの実施形態では、DSB及びRSBを同時に、又は異なる時に受信することができる。
[00140] SMコアは、RSBに含まれるデレゲート権限の公開鍵を使用して、DSBのディジタル署名を検証する(930)。ディジタル署名が有効ではない場合、DSBを拒否し、プロセスが終了する(935)。ディジタル署名が有効である場合、SMコアはDSBのデレゲートからSM指令を抽出する(940)。次に、SMコアは、抽出したSM指令が許可されるか判断する(945)。SMコアは、抽出したSM指令をデレゲートの許可と比較し、RSBに含まれるデレゲートの許可とSM指令が一致するかを検査することによって、この判断を実行する。抽出したSM指令がデレゲートの許可によって許可されない場合、抽出したSM指令を実行せず、エラーを報告し(950)、フローはステップ960に行く。エラーは、SM使用可能IC、テスタなどで実行されるソフトウェアに報告することができ、これは次に適宜、デレゲート権限、ルート権限、又は他のエンティティに通知することができる。
[00141] 抽出したSM指令が許可された場合、SMコアは抽出したSM指令を実行する(955)。図示されていない幾つかの実施形態では、SM指令の実行中にエラーが発生することがあり、この場合、フローはステップ950に行くことができる。
[00142] 次に、SMコアは、処理すべき抽出SM指令が残っているか判断する(960)。抽出したSM指令がすべて処理されている場合、SMコアはDSBの実行成功を報告する(965)。報告は、SM使用可能IC、デレゲート権限、ルート権限、又はそれらの組み合わせのユーザに報告することができる。しかし、処理すべき追加のSM指令が残っている場合、フローはステップ945に行く。
[00143] 図示されていない幾つか実施形態では、抽出したSM指令が許可されず、エラーが報告された場合(960)、次にプロセスが終了し、DSBブロックが拒否される。
[00144] 図9Bは、RSBから検索したSM指令をSMコアによって処理する例示的方法のフローチャートである。ステップ900、905、及び915は、図9Aに示した通りである。図9Bの残りは、SM指令を処理するステップ(912)、及び図9Aの結果をチェックするステップ(920)の例示的実施形態を詳述する。図9Bの詳細は、ディジタル署名が有効と確認されると開始する。SMコアは、RSBから1つ又は複数のSM指令を抽出する(970)。SMコアは、制限が抽出したSM指令の実行を実際に許可したか判断する(975)。指令に権限付与されない場合、ステップ975はエラーを引き起こす。次に、ステップ975は指令を実行しようとし、これもエラーを引き起こすことがある。エラーが生じると、SMコアはエラーを報告し(980)、RSBの残りを(及びその結果の関連するDSBをすべて)拒否する(915)。抽出したSM指令の実行に成功した場合は、SMコアは処理すべき抽出SM指令が残っているか判断する(985)。さらなる指令が待機中である場合、プロセスは次の指令に進む。抽出したSM指令をすべて処理した場合、方法は図9Aのステップ925へと進む。
[00145] (例えばRSB及び/又はRSB)の比較検査は、例えば2つの値が相手より大きいか小さい、相手と等しいなどを検査することができる。また、幾つかの実施形態では、比較検査はビットマスク又は任意の他の種類の検査を組み込むことができる。比較の結果は、即時のエラー、又は(例えば飛び越しなどの)フロー制御の変化、又はその後の動作の修正/スキップとなることがある。
[00146] 幾つかの実施形態では、デレゲート権限システムにある種の特徴空間の値を検査するように要求することができる。これは、特定の特徴空間の値がルート権限システムに入手可能でない場合に有用なことがある。例えば、ルート権限システムは、単一のSM使用可能デバイスのある種の機能の構成を修正するDSBを、例えばネットワーク中のすべてのSM使用可能デバイスに対して生成するようデレゲート権限システムに権限付与するよう望むことができる。この実施形態では、ルート権限システムは、機能を修正すべき1つ又は複数のSM使用可能デバイス毎に異なるRSBを生成するのではなく、単独のRSBを生成するのみである。DSBを単独のデバイスに強制的に結合すると、デレゲート権限システムの署名がデバイス毎に新しいDSBを強制的に作成し、それによってデレゲート権限システムによって署名動作の数に加えられた制限が、デレゲート権限によって構成できるデバイスの数を効果的に制限することが確実に行われることに留意されたい。
[00147] 一例として、SM使用可能ICは、RSBから抽出したSM指令を処理する間に、中間記憶装置位置に値(例えば製品チップID、又はランダムなワンタイムチャレンジ)を書き込むことができる。SMコアがDSBの署名を検証する場合、SMコアは、署名検証プロセスに関与する暗号ハッシュ動作に中間記憶装置の内容を組み込む。例えば、中間記憶装置の値は、暗号ハッシュを計算する場合にDSB指令と連結することができる。SM使用可能ICがDSB署名を検証する場合に、中間記憶装置の値が、DSB生成時にデレゲート権限システムによって使用される値と同じではない場合、計算されたハッシュは署名入りハッシュと一致せず、これでSMコアはDSBを拒否することができる。
[00148] また、幾つかの実施形態では、RSBによって、SMコアは、1つ又は複数のSM指令を保持するために中間記憶装置を使用してDSBが実行できる活動を制限又は修正する。この実施形態では、RSBのSM指令は、データを中間記憶装置に書き込ませることができる。これで、SMコアはDSB署名を検証し、有効である場合は、SMコアが中間記憶装置に書き込まれたデータを指令として処理し、データを実行する。例えば、中間記憶装置のデータは、「値64を機能アドレスXに書き込む」(例えばXが無線周波を構成できる場合)という指令の表現であることがある。指令全体を公式化することにより、この例のRSBはデレゲート権限システムのみに周波数を64のみに設定し、他のいずれの値にも設定しないように権限付与する。この実施形態の延長では、RSBは、中間記憶装置の制限された部分を修正することをDSBに許可し、したがって指令の制限された変形を作成するようDSBに権限付与するデレゲート許可を含むことができる。例えば、デレゲートが、周波数に対応するパラメータの最下位4ビットの変更を許可されただけの場合、これによってデレゲート権限システムが周波数を64〜79の任意の値に設定することが許可される。
[00149] ある実施形態では、SMコアは、機能及び鍵の管理のために制御メッセージのフィルタリングに使用されるセキュア時間基準を管理する。時間基準は、SMコア内に維持することができるか、又はSMコアに時間を提供する別個のブロック内にあってよい。この例では、署名入りブロック(例えばRSB、DSB)は、鍵の出力又は機能の調節を指示することができるが、時間がある特定の時間ウィンドウ内にある場合にのみ使用することができる。署名入りブロックは、SMコアに現在の時間値との指示された比較を実施させる指令を含む。例えば、これを使用して、試行鍵又は試行機能が試行期間外にロードされるのを防止することができる。セキュリティを追加するために、(時間がセキュアサーバ上のクロックで追跡可能であるように)SM機能信号によって時間基準を管理し、設定することができる。このケースでは、上記RSB特定の結合データを使用して、その時間設定を、署名権限として作用するルート又はデレゲート権限システムとの生の対話で実行するよう要求することができる。あるいは、低信頼のソフトウェアによる基準の調節を許可するが、(SMコアの内側又は外側の)追跡値により、デバイスの時間基準が調節されているか、電源を切られているか、又は高信頼の時間サーバとの生のRSB及び/又はDSBの対話を介して時間基準が有効と標識されたのでリセットされているか監視することにより、高信頼の時間ソースを生成することができる。
3.1 機能管理
[00150] 機能管理を使用して、SM使用可能ICの構成及び他の機能状態を更新するか、及びその方法を制御することができる。SM使用可能ICの機能状態は、SM使用可能デバイスの能力、例えば機能の動作を使用可能にするか、使用不能にするか、又は他の方法で安全に構成する能力、製品チップIDに基づいてハードウェアの能力を構成する、SM使用可能ICの地理的位置に基づいてハードウェアの能力を構成する、性能設定を構成する、ある種の外部インタフェースの使用を許可又は構成する、ある種の動作モードの使用を迂回する(例えば、使用可能/使用不能バグは、ある種の機能的動作モードを迂回する、ROMパッチする、マイクロコードを調節するなどのモードを固定する)、特定のモード又は機能がいつアクティブ化するか制御する(例えば製造プロセス中のみアクティブ)能力、機能が使用するパラメータを調節する、SM使用可能ICの構成を調節する、構成又はSMコアがアクセス可能な他の情報を証明する監査動作を実行する、インフィールドデバイスで診断活動を安全に実行する、プロセスの変動を補償するためにアナログ回路を較正又は調整する、デバイス構成データを設定する(例えば特定の製品で入力クロック及び所望の動作周波数のPLLを構成する)、特定の製品又は地域に適用可能な規制要求事項に基づいて無線の出力及び周波数を調節する、内部の熱フェールセーフによって加えられる限界を構成する(熱限界は、様々な製品で使用されるパッケージング及び冷却溶液に基づいて変動することがある)、バッテリの充電回路を構成する、SM使用可能ICの潜在的能力又はアップグレードを使用可能にする、SM使用可能デバイスへの宣伝メッセージの表示を(例えばソフトウェアに構成状態を提供することによって)使用不能にする、SM使用可能IC上でCPUをより高い動作性能までインフィールドのアップグレードを小可能にするなどの能力(又はそれらの組み合わせ)を制御することができる。例えば、診断及びデバッグモードの制御により、デバッグ機能を一時的に(例えば次のリセットまで)使用可能にすることができる。また、幾つかの実施形態では、機能状態を更新するか否かは、(課金及び報告サービス122によって管理されるように)料金が支払われたかによって決定される。
[00151] SMコア(及びSM使用可能IC)の例示的アーキテクチャは、機能の構成設定は秘密ではないが、機能設定の変更には(例えばルート権限由来の)特権が必要であることを仮定している。秘密鍵の場合、値の秘密性を保護することが追加的に要求されることがあり、したがって秘密値は、次のセクションでさらに詳細に説明する鍵管理機能を使用することによって取り扱うことができる。ディジタル署名を使用して、機能の変更(さらに鍵関連の動作)が権限付与された関係者によってのみ実行できることを確実に行うことができる。
[00152] 機能管理は、機能の変化を不揮発性メモリ(例えばセキュアメモリ310)に記録すること、次のリセットまでしかアクティブでない機能の変化を使用可能にすること、(クロックサイクルカウンタ又は実時間クロックで測定した)固定期間だけ有効である機能の変化を使用可能にすること、選択された動作モードを使用可能にすること(例えば診断及びデバッグモード、PLL構成などを制御すること)、又はそれらの組み合わせを含むことができる。
[00153] 図10は、SM使用可能ICの機能を管理する例示的方法のフローチャートである。ステップ1005で、SM使用可能ICが1つ又は複数の署名入りブロック(例えば1つ又は複数のRSB、DSB、又はそれらの組み合わせ)を受信する。署名入りブロックは、SM使用可能ICのSMコアによって処理されると、SMコアがその管理する機能状態を更新できるようにする更新情報を含む。情報は、例えば1つ又は複数のSM指令、1つ又は複数の鍵、又はそれらの組み合わせを含むことができる。SMコアは、対応する公開鍵を使用して署名入りブロックのディジタル署名を確認する(1015)。例えば、署名入りブロックがRSBである場合、SMコアはルート権限公開鍵(例えばSM使用可能ICに記憶される)を使用して、ディジタル署名を確認する。同様に、署名入りブロックがDSBである場合、SMコアは(RSBからの)デレゲート権限公開鍵を使用して、DSBのディジタル署名を確認する。代替実施形態では、SM使用可能IC(又はICを含むデバイス)は、ルート権限システム、デレゲート権限システム、第三者サーバ、又はそれらの組み合わせと接触して、適切な公開鍵又は他の必要な情報を検索することができる。
[00154] ディジタル署名が有効ではない場合は、プロセスが終了する(1020)。ディジタル署名が有効である場合、SMコアは、現在の許可が要求された機能更新を許容するか判断する(1025)。この実施形態では、許可は、SM指令、又はセキュアメモリ310、RSB、DSB、又はそれらの組み合わせの設定から設定することができる。許可が機能更新を許容しない場合は、プロセスが終了する(1020)。許可が機能更新を許容する場合、SMコアは、SM指令を永続的な機能更新として実行するか判断する(1030)。(永続的機能更新は、例えば変更が不揮発性メモリに記録されるので、SM使用可能ICがリセットされた後も継続する更新である。)はいの場合、SMコアは、永続的機能更新を実行するために、適宜、SM指令、鍵値、機能構成値、又はそれらの組み合わせを不揮発性セキュアメモリ(例えばセキュアメモリ310)に保存し(1035)、任意選択で、SMコアの対応する機能状態も更新する(1040)。SM指令が永続的機能更新として実行されない場合、プロセスはステップ1040へと移動し、SMコアによって管理された機能状態を更新して、プロセスが完了する(1045)。
3.2 鍵管理
[00155] 鍵管理機能を使用して、ペイロード、例えば秘密鍵又は他の値を安全に配送することができる。宛先は、SM使用可能ICで実行されるソフトウェア、ハードウェアブロック、又はSM使用可能ICを含むデバイスの他の部分の場合さえ含むことができる。SM使用可能ICは、幾つかの永久的に記憶されたデバイス固有の対称鍵(ベース鍵)を含む。ベース鍵を使用して、追加の鍵の安全な配送をブートストラップすることができる。ペイロードを含む署名入りブロックを受信した後、SM使用可能ICは、ペイロードを抽出する前にブロックの署名及び任意の関連する許可を確認する。鍵管理指令に遭遇すると、SM使用可能ICは、ベース鍵から最初にトランスポート鍵を導出する鍵アンラッピングプロセスを実行し、稚児もトランスポート鍵を使用して、指令に含まれるか、又は指令が参照する鍵を復号し、最後に復号した鍵を別のハードウェアユニットに渡す。図3を参照しながら以上で説明したように、復号鍵は、例えば直接、又はエクストラクタ、鍵インタフェース、及びサブエクストラクタを介してハードウェアユニットに渡すことができる。鍵管理指令は、セキュア施設で実行する必要はなく、ペイロードは低信頼の通信チャネル上でSM使用可能ICを含む製品へとインフィールドで配送することができる。
[00156] 一実施形態では、鍵アンラッピングプロセスは、サイドチャネル及び障害誘導攻撃に対する保護を提供する鍵ツリー構造を使用する。鍵ツリー構造は、単一の開始鍵から複数の異なる鍵の生成を可能にし、次に生成された各鍵を連続的に使用して、複数の異なる追加鍵を生成することができる。鍵アンラッピングプロセスの代替実施形態は、ブロック暗号(AESなど)、非対称アルゴリズム(RSAなど)などを使用することができる。
[00157] 図11は、ペイロードを安全に伝送するためにDSBを生成する例示的方法のフローチャートである。以上で説明したように、ペイロードは秘密鍵を含むことができる。ステップ1100で、デレゲート権限システムが計算のためのベース鍵を受信する。ベース鍵は、例えばグローバルベース鍵又はチップ固有のベース鍵とすることができる。デレゲート権限システムは、例えばIC製造業者110、製品ベンダ125、又はセキュリティサービス120からベース鍵を受信することができる。デレゲート権限システムは、製品に(例えばSMコアのセキュアメモリ310に)記憶された値を復号又は他の方法で処理することによって、ベース鍵も判断することができる。
[00158] 様々な実施形態では、グローバルベース鍵は複数のSM使用可能ICによって使用することができる。例えば、グローバルベース鍵は、HW定数としてSM使用可能ICに提供されるルート権限システム鍵でよい。他の実施形態では、ベース鍵はデバイス固有の鍵、例えばSMにプログラムされるベース鍵である。場合によっては、デバイス固有の鍵は一部が製品チップIDから導出される。別の実施形態では、デレゲート権限システムは、(ベース鍵ではなく)混合鍵又は混合鍵のプリカーサを取得する。例えば、各チップが一意のデバイス固有のデバイス鍵KCHIPを有する場合、ルート権限は各チップのF(KCHIP、デレゲートIC)のテーブル/データベースをデレゲート権限システムに(例えばセキュリティサービス120を介して)分配することができ、ここでFは、ハッシュなどの暗号化動作であり、デレゲート装置がチップのテーブル項目をその混合鍵として使用する(又は混合鍵を形成する)ことを可能にし、RSBは特定のデレゲートのデレゲートIDが同じ値に到達するためにSMコアにF(KCHIP、デレゲートID)を計算するように指示することができる。さらに一般的に、委譲されたベース鍵は、委譲した鍵データベースの一部として配送することができ、SMコアに知られている1次ベース鍵、SMコアに知られているか、(例えばRSB及び/又はDSB内の)SMコアに配送することができるパラメータ値(デレゲートIDなど)、及び1つ又は複数の鍵生成機能を使用して導出される。例えば、混合鍵は、鍵ラダー、HMAC、ハッシュ機能、又は他の鍵導出方法を使用して導出することができる。データベースは、例えばチップ毎に1つ以上の委譲されたベース鍵を含むことができる。委譲されるベース鍵は、ルート権限システムによって生成することができる。例えば、ルート権限は、例えばAES及び一方向機能のシリーズを使用してマスタ鍵からデバイス固有のベース鍵を導出することができる。この方法の導出及び鍵制御は、第三者が不適切に鍵を管理した場合、より高い値の鍵が損なわれるのを防止するのに役立つことができる。
[00159] ステップ1105で(混合鍵が、例えば上記代替実施形態に従って以前に既に導出されていない限り)、デレゲート権限システムが混合鍵を導出する。デレゲート権限システムは、以前のステップで導出された鍵の1つ又は複数の一方向機能のシリーズを使用して、混合鍵を導出することができる。例えば、混合鍵は、鍵ツリー動作、HMAC計算、ハッシュ機能、又は他の鍵導出方法を使用して導出することができる。ベース鍵からの追加の抽象は、ベース鍵を直接的攻撃から保護するのに役立つことができる。
[00160] ステップ1110で、デレゲート権限システムが、一方向機能のシリーズを使用して混合鍵から1つ又は複数のトランスポート鍵を導出する。ステップ1110は、対称暗号、非対称暗号、一方向暗号機能、又はそれらの組み合わせを含むことができる。次に、デレゲート権限システムは、例えばマスタ鍵からペイロード鍵を導出するか、又は事前計算したデータテーブルからペイロード鍵を検出するか、又はネットワーク上のペイロード鍵を取り出すことによってペイロード鍵を取得することができる。幾つかの実施形態では、事前計算したテーブルは、鍵を発行する第三者(HDCP、EMVなどの特定のシステム又はプロトコルの鍵を発行する責任があるエンティティなど)によって生成することができるか、又はデレゲート権限システムによって以前に生成されている。ペイロード鍵は、暗号化して記憶し、ペイロード鍵を得るプロセス(1120)の一部としてデレゲート権限システムで復号する。
[00161] ステップ1130で、デレゲート権限システムは、1つ又は複数のトランスポート鍵を使用してペイロード鍵を暗号化する。
[00162] ステップ1135で、デレゲート権限システムが、暗号化したペイロード鍵及び混合鍵(又は別の鍵)を使用してバリデータを導出する。特に、バリデータは、最終的出力がバリデータである1つ又は複数の一方向機能のシリーズの入力として、暗号化したペイロード鍵及び混合鍵を供給することによって生成することができる。バリデータによって、SMコア(又は船体的に、暗号化したペイロード鍵の他の受信者)は、暗号化したペイロード鍵が有効で、未修正であることを検証することができる。
[00163] ステップ1140で、デレゲート権限システムは1つ又は複数のデレゲート入力パラメータ(署名に関与する他の値に加えて、SMコア及びエクストラクタ/サブエクストラクタが最終的にペイロードを配送すべきアドレスを含むことができる)を受信する。さらにステップ1150で、デレゲート入力パラメータ、暗号化したペイロード鍵、及びバリデータに、デレゲート権限システムのプライベート鍵を使用するデレゲート権限システムによってディジタル署名し、DSBを生成する。ステップ1160で、DSBを提供する。
[00164] あるいは、図示されていない幾つかの実施形態では、ステップ1135を省略し、したがってステップ1150で、バリデータはディジタル署名せず、提供されるDSBの一部ではない(1160)。
[00165] 図12は、ペイロードを含む1つ又は複数の署名入りブロックをSMコアによって処理する例示的方法のフローチャートである。例えば、1つ又は複数の署名入りブロックは、RSB及び関連するDSB(例えば図11のプロセスにより生成される)でよい。別の実施形態では、ペイロードをDSBなしでRSB内に含めることができる。
[00166] ステップ1200で、1つ又は複数の署名入りブロック(例えば1つ又は複数のRSB、DSB、又はそれらの組み合わせ)をSMコアにて受信する。追加の署名なしデータ(バリデータで暗号化したペイロードなど)も受信することができる。これらの要素は同時に、又は異なる時に受信することができる。
[00167] ステップ1210で、SMコアが1つ又は複数の署名入りブロックのディジタル署名が有効であることを検証し、任意のDSBのデレゲート許可が有効であることを検証する。検証プロセスは、図9A及び図9Bに関連して上述したものと同様である。1つ又は複数の署名入りブロックのディジタル署名が有効ではない、又はデレゲート許可が有効ではない場合、SMコアは1つ又は複数の署名入りブロックを拒否し(1215)、プロセスが終了する(1250)。しかし、ディジタル署名及び許可が有効である場合、SMコアは、SUコアに知られているベース鍵(例えばグローバル鍵又は委譲されたベース鍵)を使用して、例えば混合鍵の生成に使用するものと同じアルゴリズムを使用して、混合鍵を導出する(1220)(図11に関連する記述参照)。これで、SMコアは、ベース鍵及び図11でトランスポート鍵を生成したものと同じアルゴリズムを使用して、トランスポート鍵を導出する(1225)。
[00168] SMコアは、暗号化したペイロード鍵をDSBから(又はRSBから、又は暗号化したペイロードが存在する場所である場合は、署名されていないデータから)抽出し(1230)、暗号化したペイロード鍵及び混合鍵を使用し、図11でトランスポート鍵を生成したものと同じアルゴリズムを使用してバリデータを導出する(1235)。次に、SMコアはバリデータが正しいか判断することができる(1240)。SMコアは、ステップ1235で導出したバリデータを、(例えばDSB中の)ペイロード鍵で受信したバリデータと比較することによって、この判断を実行する。2つのバリデータが一致しない場合、これはエラーであり(1215)、プロセスが終了する(1250)。バリデータが一致した場合、SMコアは、トランスポート鍵を使用して暗号化したペイロード鍵を復号し(1245)、プロセスが終了する(1250)。
[00169] あるいは、図示されていない幾つかの実施形態では、ステップ1235及び1240を省略し、したがってバリデータを使用せずに、暗号化したペイロード鍵を復号することができる。ステップ1235及び1240は、例えば(RSA、EC−DSA、又はバリデータに含まれる他のディジタル署名を検証することなどによって)別個に計算せずにバリデータを検証することによってバリデータを検証する他の方法で置き換えることもできる。
[00170] また、幾つかの実施形態(図示せず)では、暗号化したペイロード鍵をDSBから抽出する(1230)のではなく、代わりに(例えば)RSB(又は他の署名入りブロック)から、レジスタI/F(例えばレジスタI/F358)上で署名入りブロックから別個に提供されたセキュアメモリ(例えばセキュアメモリ310)から検索するか、又はSMコア内のプライベートメモリから検索することができる。
3.3 監査
[00171] 様々な時に、SM使用可能ICの状態を検証することが望ましいことがある。監査能力は、例えば以前の機能管理指令がデバイスに適切に適用されていることを確認するか、又はデバイスの真正性を検証するために使用することができる。例えば、顧客が機能を使用可能にした取引の返金を要求した場合は、購入価格を返金する前に機能が使用不能にされていることを検証することが望ましいことがある。
[00172] 一般的監査プロセスは、監査エンティティからのチャレンジ受信を含むことができる。このチャレンジはランダムパラメータでよく、特定の要求に応答して応答を生成したことを確認できるように含まれる。チャレンジ受信後、SM使用可能ICは、(1)秘密鍵(例えば監査指令で規定されたベース鍵)を知っていること、及び(2)適切な状態の値又は状態の特性(例えばチャレンジで規定された基準を満たしていること)を知っていることを実際に示す証明を生成することができる。例えば、監査指令に応答して、例示的SMコアは、秘密鍵及び監査中の機能状態のビットの関数である監査証明値を計算することができる。秘密鍵を監査計算に含めることにより、秘密鍵を知らない相手が監査応答をねつ造することが防止される。監査エンティティが、最終的に応答を検証する。状態監査は、対称暗号(メッセージ認証コードなど)及び/又は公開鍵暗号(ディジタル署名など)を使用して、証明を確保することができる。
[00173] 例示的実施形態では、監査要求は任意選択で、指令署名者も選択された秘密鍵を知っていることを実際に示すバリデータを含むことができる。SMコアは、例えばこのバリデータが内部計算した基準と一致した場合に、監査証明を生成するだけである。要求のバリデータは、権限付与されていない関係者が監査指令を呼び出すのを防止するのに役立つことができる。
[00174] SMコアの内部機能を含めて任意の機能状態の値は、潜在的に監査可能である。例えば、監査機能を使用して、以前の機能管理指令がSM使用可能ICに適切に適用されていることを検証するには、以前の指令が、その成功を示す内部ビットを設定することができ、それでこのビットをその後に監査することができる。監査エンティティの目的が、SMコアを含む(しかし、その状態は含まない)デバイスの真正性を検証することのみである場合は、任意の機能状態を応答に組み込む必要がないことがある。
[00175] 監査は、グローバル鍵、デバイス特有の鍵、SM使用可能ICのシリーズによって共有される鍵、又はそれらの組み合わせなど、SMコアに入手可能な任意の鍵を使用して実行することができる。デバイスに特有の鍵を使用する実施形態では、鍵のデータベースを(例えばルート権限、IC製造業者、製品ベンダ、セキュリティサービスなどによって)オーディタにとって入手可能にして、監査応答の検証(さらに場合によっては監査要求の生成)を促進することができる。
4.コンフィギュレータ及びコンパイラの機能
[00176] コンフィギュレータシステム(例えばコンフィギュレータシステム280)は、SM使用可能ICの設計プロセス中に使用することができる。コンフィギュレータシステムは、ASIC設計プロセス中に動作して、SMコアが管理した特徴空間及び鍵の、機能及びIC内の他の宛先又は使用へのマッピングを追跡して、自動化する。図13Aは、SM使用可能ICの設計プロセス中にコンフィギュレータシステムを使用する例示的方法のフローチャートである。ステップ1310で、コンフィギュレータシステムがコンフィギュレータ入力データを受信する。コンフィギュレータ入力データは、1つ又は複数のコンフィギュレータ入力ファイル、ハードウェア(「HW」)定数、又はそれらの組み合わせを含むことができる。
[00177] 1つ又は複数のコンフィギュレータ入力ファイルは、SM使用可能ICの望ましい構成に関する情報を定義する。例えば、これらのファイルは、各機能に配送すべき構成値の名称及びサイズ(例えばビット数)、機能アドレス空間内の構成値のグループ分け又は位置、好悪性値のデフォルト(例えば電源投入)値、セキュリティ鍵のバス宛先の名称及び属性、セキュリティ鍵のバス属性(宛先の鍵サイズなど)、セキュアメモリマッピング属性(セキュアメモリ310のレイアウトに関する情報など)、又はそれらの組み合わせなどのことを規定することができる。
[00178] HW定数をコンフィギュレータ入力ファイルに含めるか、又は別個に受信することができる。コンフィギュレータに入力されるHW定数の例には、例えば製品チップID、ルート権限からの1つ又は複数の鍵(場合によってルート権限の公開鍵を含む)、デレゲート権限からの1つ又は複数の鍵、1つ又は複数のベース鍵、1つ又は複数の追加のセキュリティ鍵、誤り訂正データなどを含めることができる。
[00179] ステップ1320で、コンフィギュレータシステムはIC設計ファイルを生成する。これらのIS設計ファイルには、エクストラクタハードウェア定義、サブエクストラクタハードウェア定義、及び状態キャッシュデータ(例えばIC構成マップ情報)を含めることができる。幾つかの実施形態では、先行するIC構成マップ情報に、ステップ1310でコンフィギュレータ入力データを含めて、SM使用可能ICの設計に変更を組み込む場合に既存の回路設計のレイアウトの修正を最小化することができる。この場合、コンフィギュレータは、要求された変更を実行するのに最も影響が少ない方法を識別しようとする。例えば、機能アドレス空間に新しい値を挿入すべき場合、これは、以前のマップを使用して、(例えば既存の値の位置を再度生成するのとは対照的に)以前に使用されていない挿入位置を識別することを含むことができる。同様に、機能アドレス空間から値を除去する場合、コンフィギュレータは以前のマップ情報を使用して、残りの機能を再配置するのではなく、ギャップを残すことができる。
[00180] チップ設計は、例えばチップ設計が大規模製造用に準備されているので、ロックダウンされる(ステップ1330)。この時点で、製造に使用するマスクセットに影響するコンフィギュレータ出力は、もはや変更することができない。図13Bは、チップ設計を製造に委ねた後にコンフィギュレータを使用できる方法の例示的プロセスのフローチャートである。
[00181] ステップ1340で、コンフィギュレータシステムはコンフィギュレータオペレーショナル入力データを受信する。コンフィギュレータオペレーショナル入力データは、図13Aで生成したIC構成マップ、さらに(例えばオペレーショナルSM構成ファイル中の)追加のデータを含むことができる。オペレーショナルSM構成ファイルは、例えば特定のSM使用可能ICに関連する機能及び鍵を使用できる方法に関する方針、命名規則への変更、SMコアがセキュアメモリ310を使用するためのレイアウト及び構成規則、及び内部機能の機能アドレスへのマッピングを記述することができる。
[00182] ステップ1350で、コンフィギュレータシステムはオペレーショナル構成マップを内部で生成する。図13Bのステップは図13Aのステップより後で実行することができるので、ステップ1350で生成されたマップは、図13Aの最中に準備できたものより包括的で、最新の機能アドレス範囲のマッピングとすることができるが、図13Bのプロセスは通常、チップのハードウェアに実際に影響する図13Aからの出力を変更できないと仮定しなければならない。
[00183] ステップ1360で、コンフィギュレータシステムはそのオペレーショナル構成マップからマッピングファイルを生成する。これらのマッピングファイルは、1つ又は複数の指令マッピングファイル及び1つ又は複数のファームウェアマッピングファイルを含む。指令マッピングファイルは、例えばSMコアが理解可能な形態に指令をマップするために使用するファイルである。例えば、ルート権限システムが特定の構成値を所与の機能に伝達したい場合、このファイルは、ルート権限システムが、その構成値及び機能に対応する特徴空間アドレスを識別するのに役立つことができる。ファームウェアマッピングファイルは、ソフトウェア開発に必要な定義及び構造を含むファイルである(例えばC又はC++ヘッダ及びソースファイルなど)。幾つかの実施形態では、オペレーショナル構成マップに、ステップ1340でコンフィギュレータオペレーショナル入力データを含めて、オペレーショナル入力データに追加の変更を加える場合に既存のオペレーショナル設計の修正を最小化することができる。
[00184] また、幾つかの実施形態では、コンフィギュレータシステムは文書化ファイルを生成する。文書化ファイルは、特徴空間に割り当てられた名称及び関連するアドレスのリスト、各機能に送信する構成値のリスト、支援される鍵の情報、機能アドレス空間の値のデフォルト値などのSM使用可能ICの設計の概要を提供する。また、文書化ファイルは、ソフトウェアコンポーネントの設計に使用される環境及び構造の原理を含むことができる。文書化ファイルは、XML、HTML、テキスト、PDF、WORDなどのフォーマットで出力することができる。
5.オペレーショナルエコシステム
5.1 セキュアメモリの指令セグメント及び電源投入プロセス
[00185] 例示的実施形態では、指令セグメント領域は、SM使用可能ICの一部であるセキュアメモリ310に存在する。この領域は、各リセット時にSM使用可能ICが実行するSM指令を保持する。記憶されたSM指令はセグメントで編成され、特徴空間の値の永続的設定を実行するために、及びSM使用可能ICが各リセット時に(例えばファームウェア復号鍵などの鍵を配送するために)指令を実行し、及び/又はSM使用可能IC内で構成動作を永続的に進めることが望ましい他のケースで使用することができる。
[00186] セキュアメモリは通常は永続的であり、(ワンタイムプログラマブルメモリを使用するような)幾つかの実施形態では、容易に上書きすることができないことがあり、そのために頑強性を改善する措置が必要になることがある。生じ得る1つの障害は「引き裂き」であり、これは書き込みプロセス中の割り込みであり、例えば電源障害が原因である。指令セグメントの書き込み中に割り込んでも、その後のリセット時にSM使用可能ICが使用不可にならないことが望ましい。生じ得る別の障害は、セキュアメモリに記憶されたデータの破損であり、例えばシリコンの劣化又は外部状態が原因である。この場合も、影響は最小限で、単一の破損事象ではSM使用可能ICが使用不可になる可能性が低いことが望ましい。また、セキュアメモリの(例えば攻撃の一部としての)破損で、SMコアによって強制されるSM使用可能ICの動作に対するいかなる制限の無効化も可能にならないことが望ましい。
[00187] SM指令は、SMコアがセキュアメモリに書き込む方法を制御する情報を含むことができる。例えば、引き裂き防止フラグ(引き裂き防止モード)、又はエラー時再開フラグ(エラー時再開モード)、又はそれらの組み合わせがあってよい。
[00188] 引き裂き防止モードがアクティブ状態にある場合、例示的SMコアは、指令セグメントを書き込むプロセス(又は他の書き込み動作)の開始時に「スキップワード」をセキュアメモリに書き込む。書き込みが完了していない場合、スキップワードによりSMコアがその後のリセット時に(例えば部分的に書き込まれたデータを含む領域をスキップできるように)そのことを認識する。スキップワードを書き込んだ後、SMコアはペイロード(例えば指令セグメントの主な内容)を書き込むことができ、次に最終的にスキップワードを(例えばワード中の全ビットを1の値に設定することにより)削除する。引き裂き防止モードを使用していない場合、SM使用可能ICはスキップワードを書き込まず、これでセキュアメモリの1ワードが節約されるが、書き込みが完了していない場合、SMコアがその後のリセット時に重大な障害を記録することがある。(重大な障害により、例えば正常な動作へと進行するとセキュリティを損なうことがあるので、SM使用可能ICが入っている機能低下状態にSMコアが入ることがある。)スキップワードが削除されると、セグメントは必須になり、その後のリセット毎に使用される(すなわち、スキップワードが削除された後にセグメントを読み取るのに修正不能の問題に遭遇した場合、SM使用可能ICは重大な障害を生じることになる)。引き裂き防止モードを使用するか否かの選択は、プログラミング環境によって決定されることがある。例えば、制御されたファクトリ環境では、引き裂き防止モードを使用不能にする効率改善が望ましいが、インフィールドの書き込みには引き裂き防止を必須とすることができる。
[00189] エラーモードで再開する場合、SM使用可能ICは、セキュアメモリからのセグメントの読み取りに問題がある場合、指令セグメントを無視することが許容可能であることを示すフラグを指令セグメントヘッダに設定する。例えば、エラーフラグでの再開は、SM使用可能ICの能力を使用可能にするセグメントで設定することができる。SM使用可能ICがそのセグメントをスキップすると、セキュアメモリから読み取ることができないので、セグメントを適切に読み取り、処理している場合よりもSM使用可能ICの能力が低くなることがあるが、セキュリティのリスクは発生しない。
[00190] SM使用可能ICにより、セキュアメモリに書き込まれた任意のセグメント(又は他のデータ値)に対して、引き裂き防止フラグ及びエラー時再開フラグのいずれも指定することができないか、あるいは一方又は両方を指定することができる。SM使用可能ICは、セキュアメモリへの全書き込みについて、特定のモードの組み合わせを使用することを要求することもできる。
[00191] リセット後、SMコアは、セキュアメモリ(例えばセキュアメモリ310)に記憶された指令セグメントの指示通りに機能及び鍵状態を初期化する。図14は、SM使用可能ICを初期化する例示的方法のフローチャートである。
[00192] ステップ1405で、SM使用可能ICに電源投入するか、又はリセットする。SMコアは、このステップの一部としてリセットすることができる。次に、SMコアはSM使用可能IC及びインテグリティチェック値に関連する製品チップIDを検索する(1410)。(インテグリティチェック値は、例えばパリティチェック、ハミングコードなどに関連する値とすることができる。)SM使用可能ICは、インテグリティエラー(例えば製品チップID又はインテグリティチェック値が破損している)が発生しているか判断するためにインテグリティチェックを実行する(1415)。インテグリティエラーが発生している場合は、エラーを報告し(1420)、プロセスを停止して(1445)、SMコアは「重大な障害」状態に入ることがある。インテグリティエラーが発生していない場合、SMコアはセキュアメモリから指令セグメントを検索する(1425)。
[00193] SMコアは、セキュアメモリに含まれる指令セグメントを予測可能な順序で処理する。例えば、セグメントをセキュアメモリ内に連続的に位置付けるか、各セグメントが処理すべき次のセグメントのメモリアドレスを含むことができる。場合によっては、エラー(1430)によってSM使用可能ICが、処理すべき次の指令セグメントの位置を確実に判断できないことがあり、その場合、コアはフォールバックメカニズム(例えば既知のヘッダ値の探索)を使用して次のセグメントを突き止めるか、これを重大な障害として処理しようとすることができる。エラーが発生していない場合、SMコアは指令セグメントの指令を実行する(1435)。次に、SMコアは、実行すべき追加の指令セグメントが残っているか判断する(1440)。残っている場合、フローはステップ1425へと移動する。
[00194] 残りの指令セグメントがない場合、SMコアは、外部システム(例えばプロセッサ355、SM使用可能ICの機能又は他の部分、又はSM使用可能ICを組み込んだデバイス)に初期機能状態の準備が整ったことを通知する(1455)。この通知をSM使用可能ICが使用し、例えばSMコア以外のSM使用可能ICのすべての部分をリセット状態に保持し、他のコンポーネントに必要とされる前に、SMコアからの必要な値の準備が整っていることを確認することによって、チップの他の部分の起動を順序付けることができる。これで、プロセスが終了する(ステップ1460)。
[00195] ステップ1430に戻ると、エラーが発生した場合、SM使用可能ICは、次の指令セグメントにスキップすることが許容可能か判断する(1445)。例えば、指令セグメントのヘッダは、スキップワード又はエラー時再開フラグを含むことができ、これはSMコアに対して問題がある指令セグメントをスキップするように命令する。問題がある指令セグメントをスキップすることが許容可能である場合、SM使用可能ICは(例えばその後の分析のためにエラー情報を保存することによって)非致命的エラーを報告し(1450)、ステップ1440へと移動することができる。SM使用可能ICにより、問題がある指令セグメントをスキップすることが許容可能ではないと判断された場合は、より重大なエラーを報告し(1420)、プロセスを中止する(1445)。
[00196] SMコアは、例えば図14に述べた初期化プロセスの前、その間、又はその後に、ベース鍵を初期化することができる。性能及び柔軟性を最大にするために、SMコアは、指令セグメントによって起動中に実行することを要求されているベース鍵のみを初期化し、次にSM使用可能ICの残りの部分が起動するよう解除された後に、残りのベース鍵を初期化することができる。
[00197] 幾つかの実施形態では、セキュアメモリ中のエラー(例えばメモリインテグリティエラー)は、ルート権限システムによって修復することができる。エラーは、例えば以前のRSB又はDSBによって書き込まれたものがある。ルート権限システムは、SM使用可能ICがエラーを引き起こした指令セグメントをスキップすることを許可する取り消し指令を含むRSBを送信することができる。また、RSBは、障害がある指令セグメントを置き換えるか修正する追加のSM指令を含むことができる。また、幾つかの実施形態では、セキュアメモリ中のエラーデータがデレゲート権限システムからのDSBによって書き込まれた場合、異なるデレゲート権限システムが、SM使用可能ICにエラーを引き起こした指令セグメントをスキップすることを許可する打ち消し指令を含むDSBを送信することができる。また、DSBは、障害がある指令セグメントが以前に扱っていたタスクを実行する追加のSM指令を含むことができる。
5.2 個別化
[00198] 個別化とは、製造中にSM使用可能ICに鍵(例えばデバイスに特有)及びデータ(例えば指令セグメント)をプログラムすることを指す。個別化された秘密鍵は、鍵管理及び監査機能に使用することができる。SM使用可能ICにプログラムされる最初の値のうち1つは製品チップIDとすることができる。
[00199] 鍵情報は鍵分割として記憶することができる。初期化中に、SMコアは例えば鍵分割、ネットリストに含まれる情報、又はその両方からのデバイス鍵を再構築する。例えば、P1鍵分割は、デバイスにプログラムされる第一鍵分割として、ウェーハ検査にてプログラムすることができる。P2鍵分割はパッケージングされたダイの検査時にプログラムすることができる。SMコアがP1鍵分割とP2鍵分割を組み合わせて、ベース鍵を形成する。組み合わせる機能は、P1又はP2の鍵分割(しかし両方ではない)に関する知識が、ベース鍵を決定するには不十分であるように選択することができる。また、デバイスの組立又は検査中に1つ又は複数の追加の鍵分割を記憶し、SMコアがそれを使用して、追加のベース鍵を決定することができる。例えば、製品製造業者は、製造プロセスの一部として、ICプロバイダ又はIC製造業者に知られていない鍵を記憶したいことがある。個別化データに加えて、SM使用可能ICは、一意の製品チップID、製造追跡/日付の情報、ロットID、ウェーハID、製品のタイプ、デバイスの履歴データ、及び他の情報のすべての方法でプログラムすることができる。
[00200] 図15は、例示的個別化プロセスをブロック図の形態で示す。ステップ1510で、デレゲート権限システムは、SM使用可能ICにプログラムされる情報を取得する。情報は、例えば1つ又は複数のベース鍵、1つ又は複数の鍵分割(例えばP1、P2など)、製品チップID、又はそれらの組み合わせを含むことができる。プログラムされる情報は、デレゲート権限システムに連結されたセキュア記憶装置又はセキュリティデバイス(例えばスマートカード又はHSM)から取得することができる。
[00201] ステップ1520で、デレゲート転送システムは、適切なメモリ書き込み指令を含むDSBをデバイステスタに転送する。転送される情報は暗号化することができる。デバイステスタはDSBを(付随するRSBとともに)SM使用可能ICに転送し、そこでSMコアがこれを受信、検証、及び(有効な場合は)実行して、メモリをプログラムする。
[00202] ステップ1530で、デレゲート権限システムは、1つ又は複数のSM使用可能ICの個別化に成功したことを示す情報で監査ログを更新することができ、プロセスが終了する(1540)。上述したように、次にこれらの監査ログをセキュリティサービス120に転送する。
[00203] また、SM使用可能ICに入力されるいかなる鍵も、非暗号化又は暗号化した形態でよい。SM使用可能IC及び/又はSMコアは、個別化のために暗号化鍵を転送する1つ又は複数のメカニズムを支援することができる。例えば、SMコアは、プログラムされるデータを復号するために以前にプログラムされた鍵(例えばルート権限からの1つ又は複数の鍵、デレゲート権限からの1つ又は複数の鍵、シリコンに埋め込まれた1つ又は複数のベース鍵、1つ又は複数の追加のセキュリティ鍵など)を使用することができる。また、SMコアは、例えば共有鍵を使用して、SM使用可能ICを転送する前に個別化鍵を暗号化することができるデレゲート権限システムとの共有鍵を生成するために、非対称暗号化を使用してセッション鍵を交換又は生成することを許可することができる。セッション鍵は、SMコアが使用して、プログラムされる鍵を復号する。幾つかの実施形態では、例えばSMコアと個別化に関与する外部デバイス(例えばデレゲート権限システム)との間に相互認証を提供するために、SMコアに入手可能な追加の対称鍵値とセッション鍵を組み合わせることによって、このプロトコルを拡張することができる。
[00204] 鍵転送メカニズムのいずれも、各個別化ステップで別個に選択することができる。また、SM使用可能ICは、必ずしも鍵が個別化される順序に制限を加える必要がなく、元の同じマスクセットから生産されるチップが、異なるアプリケーション又は消費者に対して異なる順序で個別化されることを許可する。
[00205] いかなる個別化を実行する前でも、デレゲート権限システムは、例えば検査のために機能状態を更新するDSBを生成できることがある。一実施形態では、SMコアはデレゲート権限システムに送信されるランダムチャレンジ値を生成する。デレゲート権限システムは、チャレンジ値に結合して、非永続的に所望に応じて機能管理、鍵管理、又はその両方を実行するDSBを生成し、送信する。例えば、デレゲート権限システムは、次のリセットまでSM使用可能ICの1つ又は複数の機能を使用可能にすることができる。したがって、SM使用可能デバイスの動作を検査できるようにする。このように、チップのセキュアメモリが完全に破損しているか、プログラムされていない場合でも、なおセキュアオペレーションを実行することができる。
5.3 SM使用可能デバイスの機能状態のインフィールド更新
[00206] SM使用可能デバイスのユーザに、機能状態の更新を要求できるようにすることができる。これらの変更の権限を付与するメッセージ(例えばRSB/DSB)は、低信頼のチャネル(インターネットなど)で安全に送信できるように、チップに特有であるか、又は他の方法で限定することができる。売買業者、システムオペレータ、デバイベンダ、及びデバイス製造業者も、SM使用可能ICの機能を更新する指令を要求することができる。状況によっては、機能更新をSM使用可能デバイスに通信する方法とは別個に、要求を転送する。例えば、ある種の機能能力のロック解除を提供するメッセージのシリーズを事前計算することが可能であり、異なる特定の製品チップICに対して各メッセージが公式化される。事前計算されたこのリストは、ルート権限システム又はデレゲート権限システムに直接接続していないサーバに記憶することができる。適宜(支払いを受け取った後などに)、事前計算リストの項目をSM使用可能デバイスへとリリースすることができる。
[00207] 図16は、SM使用可能ICの機能更新の要求に権限付与する例示的方法のフローチャートであり、更新はデレゲート権限システム(例えばデレゲート権限システム222)によって権限付与される。
[00208] ステップ1600で、デレゲート権限システムが、SM使用可能ICに関連する機能状態を更新する要求を受信する。要求は、ネットワーク上のメッセージ、eメール、ウェブのポータルを介して受信する指令、電話要求、SMSメッセージなどとすることができる。また、幾つかの実施形態では、要求は、要求を取り扱うデレゲート権限システムに従属するサブシステムからのものでよい。(例えば、従属は、ユーザデータベース又は支払いの証明書を確認することによって要求に権限付与し、次に承認した要求を主要なデレゲート権限システムに転送することができる。)
[00209] ステップ1610で、デレゲート権限システムはこの要求が権限付与されているか判断する。例えば、デレゲート権限システムは、情報又は支援を求めて第三者(例えば課金及び報告サービス122、又はセキュリティサービス120)に接触することができる。要求が承認されない場合、次にデレゲート権限システムは権限付与の失敗をユーザに報告し(1620)、プロセスが終了する(1660)。例えば、デレゲート権限システムは、権限付与の失敗及び失敗の理由を示すeメールをユーザに送信することができる。
[00210] 権限付与要求が承認されると、デレゲート権限システムはRSBを取得する(1630)。RSBは、ルート権限システム又はセキュリティサービスから検索することができるか、又は以前に受信している場合、RSBはデレゲート権限システムの内部の(又は他の方法でそれと関連する)記憶装置から検索することができる。
[00211] デレゲート権限システムは、次にDSBを生成する(1640)。DSBは、例えば図8、図9A、図9B、及び図11に関連して上述したプロセス、又はプロセスの一部を使用して生成することができる。
[00212] デレゲート権限システムは、DSBを提供し(1650)、プロセスが終了する(1660)。例えば、デレゲート権限システムは、ネットワーク(例えばセルラ又はインターネット)を介してDSBをユーザのSM使用可能デバイスに転送することができる。又は、幾つかの実施形態では、デレゲート権限システムは、(例えばセキュアウェブサイトに記入することによって)ユーザがダウンロードするためにDSBを入手できるようにする。
[00213] 図17は、SM使用可能ICの機能更新の要求に権限付与する例示的方法のフローチャートであり、更新はルート権限システム(例えばルート権限システム217)によって権限付与される。
[00214] ステップ1710で、ルート権限システムが、SM使用可能ICに関連する機能状態を更新する要求を受信する。要求は、ネットワーク上のメッセージ、eメール、ウェブのポータルを介して受信する指令、電話要求、SMSメッセージなどとすることができる。また、幾つかの実施形態では、要求は、要求を取り扱うデレゲート権限システムに従属するサブシステムからのものでよい。(例えば、従属は、ユーザデータベース又は支払いの証明書を確認することによって要求に権限付与し、次に承認した要求を主要なデレゲート権限システムに転送することができる。)要求は、デレゲート権限システムからのものでよい。
[00215] ステップ1720で、ルート権限システムはこの要求が権限付与されているか判断する(これは、情報又は支援を求めて第三者に接触することを含むことがある)。要求が承認されない場合、次にルート権限システムは権限付与の失敗を報告し(1730)、プロセスが終了する(1760)。
[00216] 権限付与要求が承認されると、ルート権限システムは次にRSBを生成する(1740)。この実施形態では、RSBはSMコアにその機能状態の更新を指示する情報を含む。RSBは、例えば図5又は図7に関して上述したプロセスを使用して生成することができる。
[00217] 次に、ルート権限システムがRSBを提供し(1750)、プロセスが終了する(1760)。
[00218] 次に、本開示の様々な実施形態の例を説明する。
[00219] 実施例#1によれば、方法は、集積回路のセキュリティマネージャーによってルート署名入りブロックを受信することと、セキュリティマネージャーによって、秘密鍵を使用してルート署名入りブロックに関連する署名を検証することと、セキュリティマネージャーによって、ルート署名入りブロックから指令を抽出することと、セキュリティマネージャーによって、抽出した指令を実行することとを含むことができ、実行する指令は集積回路の動作に関係する。
[00220] 実施例#2によれば、方法は、集積回路のセキュリティマネージャーによって、デレゲート署名入りブロックを受信することと、セキュリティマネージャーによって、デレゲート権限システムに関連するデレゲート許可及び鍵を識別することと、セキュリティマネージャーによって、デレゲート署名入りブロックに関連する署名をデレゲート権限システムに関連する鍵を使用して検証することと、セキュリティマネージャーによって、デレゲート署名入りブロックから指令を抽出することと、セキュリティマネージャーによって、抽出した指令がデレゲート許可を使用して許可されることを検証することと、セキュリティマネージャーによって、抽出した指令を実行することとを含むことができ、実行する指令は集積回路の動作に関係する。
[00221] 実施例#3によれば、方法は、集積回路のセキュリティマネージャーによって、集積回路の複数の機能の機能状態を更新する指令を受信することと、セキュリティマネージャーによって、機能の状態の更新が永続的であるか判断することと、更新が永続的である場合、指令をメモリに保存することと、機能の状態を更新する指令を実行することとを含むことができる。一実施形態では、機能の状態は、時間に関連するファクタ、又は集積回路の特性、又はデバイスの特性を含む1つ又は複数のファクタに従って更新される。
[00222] 実施例#4によれば、方法は、集積回路のセキュリティマネージャーによって、集積回路の機能の状態に関係するチャレンジを受信することを含むことができ、チャレンジは監査システムから受信され、さらに、チャレンジに応答して、セキュリティマネージャーによって、秘密鍵及び機能の状態の関数として監査証明を計算することと、監査証明値を監査システムに提供することとを含むことができる。
[00223] 実施例#5によれば、方法は、今フィ牛レー他入力ファイル及びハードウェア定数を含むコンフィギュレータ入力データを受信することと、入力データを使用して集積回路の設計ファイルを生成することとを含むことができ、集積回路の設計ファイルは、エクストラクタのハードウェア定義、1つ又は複数のサブエクストラクタのハードウェア定義、及び状態キャッシュを含む。
[00224] 実施例#6によれば、方法は、集積回路の機能及び鍵の方針を定義するコンフィギュレータオペレーショナル入力データを受信することと、コンフィギュレータオペレーショナル入力データを使用して、集積回路のオペレーショナル構成マップを生成することと、オペレーショナル構成マップからマッピングファイルを生成することとを含むことができる。
[00225] 実施例#7によれば、方法は、集積回路を電源投入又はリセットすると、集積回路のセキュリティマネージャーによって、インテグリティチェック値を検索することと、セキュリティマネージャーによって、セキュアメモリの指令セグメントを処理することによりインテグリティチェックを実行することと、インテグリティチェック値に基づいて、指令セグメントのいずれかがインテグリティエラーを有しているかを判断することとを含むことができる。
[00226] 実施例#8によれば、方法は、集積回路のセキュリティマネージャーによってエンティティから受信した指令を追跡することと、指令を対応するエンティティに関連させることと、個々のエンティティから受信した指令に基づいて、各エンティティに課金することとを含むことができる。
[00227] 本開示では、「コンピュータ」は、1つ又は複数のプロセッサ、メモリ、データインタフェース、ハードウェアのセキュリティモジュール、ディスプレイ、又はそれらの組み合わせを含むことができる。プロセッサは、特定の命令のセットを実行することができる単一又は複数のマイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、又はディジタル信号プロセッサ(DSP)でよい。コンピュータによって実行される方法の一部は、コンピュータ可読命令を使用して埋め込むことができ、これはフレキシブルディスク、ハードディスク、CD−ROM(コンパクトディスク読み出し専用メモリ)、及びMO(光磁気)、DVD−ROM(読み出し専用DVD)、DVD−RAM(書き込み読み出し可能なDVD)、又は半導体(例えばROM又はフラッシュ)メモリなどの有形で一時的でないコンピュータ可読媒体に記憶することができる。また、方法の幾つかは、ハードウェアのコンポーネント又はハードウェアとソフトウェアの組み合わせ、例えばASIC、専用コンピュータ、又は汎用コンピュータに実現することができる。幾つかの実施形態は、集積回路内ばかりでなくコンピュータ可読媒体内にも実現することができる。例えば、これらの設計は、集積回路の設計に使用するソフトウェア設計ツールに関連するコンピュータ可読媒体に記憶する、及び/又はその中に埋め込むことができる。その例にはVHSICハードウェア記述言語(VHDL)ネットリスト、ベリログレジスタ転送レベル(RTL)ネットリスト、及びトランジスタレベル(例えばSPICE又はSPICE関連ファイル)ネットリストが含まれる。このようなネットリストは、合成できるか、又は合成可能にできることに留意されたい。コンピュータ可読倍チアは、GDS−IIファイルなどのレイアウト情報を有する媒体も含む。さらに、ネットリストファイル又は集積回路設計の他のコンピュータ可読媒体は、上述した設計の方法を実行するシミュレーション環境で使用することができる。
[00228] 記載された実施形態にある種の適合及び修正を実行することができる。したがって、以上で説明した実施形態は例示的であり、限定的ではないと見なされる。本出願の実施形態は、特定のオペレーティングシステム、モバイルデバイスのアーキテクチャ、サーバのアーキテクチャ、又はコンピュータのプログラミング言語を制限するものではない。

Claims (9)

  1. 集積回路のセキュリティマネージャーによって、ルート権限によって署名されたディジタル署名入り指令を受信することと、
    前記セキュリティマネージャーによって、前記集積回路のセキュアメモリから前記ルート権限の公開鍵を得ることと、
    前記セキュリティマネージャーによって、前記ルート権限の公開鍵を使用して前記指令に関連する署名を検証することと、
    前記セキュリティマネージャーによって、前記集積回路の複数の機能のうちのある機能の状態を更新する前記指令を実行することと、
    を含み、
    前記機能の前記状態を更新することが、前記機能のロック、前記機能のロック解除、又は前記機能の構成のうち少なくとも1つを引き起こし、
    前記機能がロック解除されると、前記機能は、前記指令をさらに実行することなくロック解除されたままとなる、方法。
  2. 前記機能の前記状態の更新が、永続的又は非永続的である、請求項1に記載の方法。
  3. 前記指令を実行することが、
    1つ又は複数の鍵を前記集積回路の1つ又は複数のコンポーネントに配送することを含み、前記鍵が、前記コンポーネントの暗号化動作、前記コンポーネントのディジタル権利管理動作、前記コンポーネントのパスワード管理動作、又は前記コンポーネントの認証動作のうち少なくとも1つに関係する、請求項1に記載の方法。
  4. 前記指令を実行することが、
    1つ又は複数のハードウェア定数を識別することと、前記ハードウェア定数を指定された記憶装置に記憶することとを含み、前記ハードウェア定数が、製品チップ識別子、1つ又は複数のセキュリティ鍵、1つ又は複数のベース鍵、又は誤り訂正データのうち少なくとも1つを含む、請求項1に記載の方法。
  5. 前記指令が、デレゲート権限によって署名され、
    前記指令に関連する前記署名を検証することが、
    前記ルート権限によって署名されたルート署名入りブロックから前記デレゲート権限のデレゲート許可及び公開鍵を得ることと、
    前記デレゲート権限の前記公開鍵を使用して、前記指令に関連する前記署名が有効であることを判断することと、
    前記デレゲート許可を使用して、前記指令が許可されることを判断することと、
    を含む、請求項1に記載の方法。
  6. 前記指令が暗号化したペイロードに関連し、さらに、
    前記セキュリティマネージャーがアクセス可能なベース鍵を使用して、混合鍵を導出することと、
    前記混合鍵を使用してトランスポート鍵を導出することと、
    前記トランスポート鍵を使用して前記暗号化ペイロードを復号することと、
    前記復号ペイロードを機能に配送することと、
    を含む、請求項1に記載の方法。
  7. 集積回路であって、
    ルート権限の公開鍵を記憶するセキュアメモリと、
    ディジタル署名入り指令を受信し、
    前記ルート権限の公開鍵を使用して、前記指令に関連する署名を検証し、
    前記集積回路の複数の機能のうちのある機能の状態を更新する前記指令を実行するために、
    前記セキュアメモリに連結するセキュリティマネージャー(SM)コアと、
    を含み、
    前記機能の前記状態を更新することが、前記機能のロック、前記機能のロック解除、又は前記機能の構成のうち少なくとも1つを引き起こし、
    前記機能がロック解除されると、前記機能は、前記指令をさらに実行することなくロック解除されたままとなる、集積回路。
  8. 前記SMコアに連結したエクストラクタと、
    前記エクストラクタに連結した複数のサブエクストラクタとをさらに備え、前記複数のサブエクストラクタがそれぞれ、前記複数の機能のうち1つにも連結する、請求項7に記載の集積回路。
  9. 前記SMコアが、
    前記指令の前記署名を検証する暗号モジュールと、
    前記指令を実行する実行エンジンモジュールと、
    前記SMコアと前記集積回路のコンポーネントとの通信を促進する通信モジュールと、
    前記SMコアの内部記憶装置を管理し、前記セキュアメモリとインタフェースをとるデータ記憶モジュールと、
    を備える、請求項7に記載の集積回路。
JP2015526731A 2012-08-10 2013-08-09 集積回路のセキュア機能及び鍵管理 Active JP6427099B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261682001P 2012-08-10 2012-08-10
US61/682,001 2012-08-10
US13/831,545 2013-03-14
US13/831,545 US10771448B2 (en) 2012-08-10 2013-03-14 Secure feature and key management in integrated circuits
PCT/US2013/054306 WO2014026095A2 (en) 2012-08-10 2013-08-09 Secure feature and key management in integrated circuits

Publications (2)

Publication Number Publication Date
JP2015531924A JP2015531924A (ja) 2015-11-05
JP6427099B2 true JP6427099B2 (ja) 2018-11-21

Family

ID=50066202

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015526731A Active JP6427099B2 (ja) 2012-08-10 2013-08-09 集積回路のセキュア機能及び鍵管理

Country Status (7)

Country Link
US (5) US10771448B2 (ja)
EP (1) EP2907262B1 (ja)
JP (1) JP6427099B2 (ja)
KR (4) KR102470524B1 (ja)
CN (1) CN104541474B (ja)
TW (1) TWI621031B (ja)
WO (1) WO2014026095A2 (ja)

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9231758B2 (en) 2009-11-16 2016-01-05 Arm Technologies Israel Ltd. System, device, and method of provisioning cryptographic data to electronic devices
US9015469B2 (en) 2011-07-28 2015-04-21 Cloudflare, Inc. Supporting secure sessions in a cloud-based proxy service
US9607142B2 (en) * 2011-09-09 2017-03-28 International Business Machines Corporation Context aware recertification
US8782774B1 (en) * 2013-03-07 2014-07-15 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US10120350B2 (en) * 2013-03-11 2018-11-06 Fisher-Rosemount Systems, Inc. Background collection of diagnostic data from field instrumentation devices
US10706132B2 (en) 2013-03-22 2020-07-07 Nok Nok Labs, Inc. System and method for adaptive user authentication
US10270748B2 (en) 2013-03-22 2019-04-23 Nok Nok Labs, Inc. Advanced authentication techniques and applications
US9887983B2 (en) * 2013-10-29 2018-02-06 Nok Nok Labs, Inc. Apparatus and method for implementing composite authenticators
US9961077B2 (en) 2013-05-30 2018-05-01 Nok Nok Labs, Inc. System and method for biometric authentication with device attestation
US9401802B2 (en) * 2013-07-31 2016-07-26 Fairchild Semiconductor Corporation Side channel power attack defense with pseudo random clock operation
US9542558B2 (en) * 2014-03-12 2017-01-10 Apple Inc. Secure factory data generation and restoration
US9942049B2 (en) * 2014-04-04 2018-04-10 Qualcomm Incorporated Remote station and method for re-enabling a disabled debug capability in a system-on-a-chip device
US8996873B1 (en) 2014-04-08 2015-03-31 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US8966267B1 (en) 2014-04-08 2015-02-24 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US9768957B2 (en) * 2014-04-23 2017-09-19 Cryptography Research, Inc. Generation and management of multiple base keys based on a device generated key
US9413533B1 (en) 2014-05-02 2016-08-09 Nok Nok Labs, Inc. System and method for authorizing a new authenticator
US9654469B1 (en) 2014-05-02 2017-05-16 Nok Nok Labs, Inc. Web-based user authentication techniques and applications
US9577999B1 (en) 2014-05-02 2017-02-21 Nok Nok Labs, Inc. Enhanced security for registration of authentication devices
US9397828B1 (en) 2014-05-13 2016-07-19 Google Inc. Embedding keys in hardware
US20150331043A1 (en) * 2014-05-15 2015-11-19 Manoj R. Sastry System-on-chip secure debug
US9721121B2 (en) * 2014-06-16 2017-08-01 Green Hills Software, Inc. Out-of-band spy detection and prevention for portable wireless systems
US20150381368A1 (en) * 2014-06-27 2015-12-31 William A. Stevens, Jr. Technologies for secure offline activation of hardware features
US10148630B2 (en) 2014-07-31 2018-12-04 Nok Nok Labs, Inc. System and method for implementing a hosted authentication service
US9455979B2 (en) 2014-07-31 2016-09-27 Nok Nok Labs, Inc. System and method for establishing trust using secure transmission protocols
US9875347B2 (en) 2014-07-31 2018-01-23 Nok Nok Labs, Inc. System and method for performing authentication using data analytics
US9749131B2 (en) 2014-07-31 2017-08-29 Nok Nok Labs, Inc. System and method for implementing a one-time-password using asymmetric cryptography
US10185669B2 (en) 2014-08-04 2019-01-22 Oracle International Corporation Secure key derivation functions
US9736154B2 (en) 2014-09-16 2017-08-15 Nok Nok Labs, Inc. System and method for integrating an authentication service within a network architecture
US10860229B2 (en) * 2014-09-17 2020-12-08 Cryptography Research Inc. Managing privileges of different entities for an integrated circuit
US9705501B2 (en) * 2014-10-01 2017-07-11 Maxim Integrated Products, Inc. Systems and methods for enhancing confidentiality via logic gate encryption
US9866548B2 (en) 2014-12-17 2018-01-09 Quanta Computer Inc. Authentication-free configuration for service controllers
US9618566B2 (en) 2015-02-12 2017-04-11 Globalfoundries Inc. Systems and methods to prevent incorporation of a used integrated circuit chip into a product
US9930050B2 (en) * 2015-04-01 2018-03-27 Hand Held Products, Inc. Device management proxy for secure devices
KR101655890B1 (ko) * 2015-04-08 2016-09-08 (주)세이퍼존 배드 유에스비 방지를 위한 보안 유에스비 장치의 펌웨어 설치 방법
CN106664559B (zh) * 2015-05-27 2019-11-29 华为技术有限公司 无线通信网络中设备配置的方法、装置及系统
FR3038757B1 (fr) * 2015-07-07 2017-08-11 Univ Montpellier Systeme et procede d'authentification et de licence ip
US10642962B2 (en) 2015-07-28 2020-05-05 Western Digital Technologies, Inc. Licensable function for securing stored data
ITUB20152708A1 (it) * 2015-07-31 2017-01-31 St Microelectronics Srl Procedimento per operare una crittografia con mascheratura di dati sensibili, apparato di crittografia e prodotto informatico corrispondente
DE102015217724A1 (de) * 2015-09-16 2017-03-16 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erstellen einer asymmetrischen Prüfsumme
EP3147830B1 (en) * 2015-09-23 2020-11-18 Nxp B.V. Protecting an integrated circuit
US9996711B2 (en) 2015-10-30 2018-06-12 Intel Corporation Asset protection of integrated circuits during transport
US11216389B2 (en) * 2015-12-02 2022-01-04 Cryptography Research, Inc. Device with multiple roots of trust
US10897352B2 (en) 2015-12-16 2021-01-19 Rambus Inc. Cryptographic management of lifecycle states
JP2019507538A (ja) * 2016-01-20 2019-03-14 ルネサス・エレクトロニクス・ヨーロッパ・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツングRenesas Electronics Europe Gmbh 偽造防止機能を備えた集積回路
US20170257369A1 (en) * 2016-03-04 2017-09-07 Altera Corporation Flexible feature enabling integrated circuit and methods to operate the integrated circuit
US10534882B2 (en) * 2016-03-29 2020-01-14 Qualcomm Incorporated Method and apparatus for configuring an integrated circuit with a requested feature set
EP3252990A1 (de) * 2016-06-03 2017-12-06 Siemens Aktiengesellschaft Verfahren und vorrichtung zum bereitstellen eines geheimnisses zum authentisieren eines systems und/oder komponenten des systems
US10754968B2 (en) * 2016-06-10 2020-08-25 Digital 14 Llc Peer-to-peer security protocol apparatus, computer program, and method
US10255462B2 (en) 2016-06-17 2019-04-09 Arm Limited Apparatus and method for obfuscating power consumption of a processor
EP3264816A1 (en) * 2016-06-30 2018-01-03 Sequans Communications S.A. Secure boot and software upgrade of a device
US11050605B2 (en) 2016-08-01 2021-06-29 Data I/O Corporation Device programming with system generation
US9923755B2 (en) 2016-08-01 2018-03-20 Data I/O Corporation Device programming with system generation
TWI621347B (zh) * 2016-08-04 2018-04-11 捷而思股份有限公司 偽造指令自動過濾系統、協同運作系統、與相關的指令核實電路
US10769635B2 (en) 2016-08-05 2020-09-08 Nok Nok Labs, Inc. Authentication techniques including speech and/or lip movement analysis
US10637853B2 (en) 2016-08-05 2020-04-28 Nok Nok Labs, Inc. Authentication techniques including speech and/or lip movement analysis
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US11539535B2 (en) * 2016-10-06 2022-12-27 Cryptography Research, Inc. Generating an authentication result by using a secure base key
US11222319B2 (en) * 2016-10-14 2022-01-11 Cable Television Laboratories, Inc. Systems and methods for post-hoc device registration
US9946899B1 (en) 2016-10-14 2018-04-17 Google Llc Active ASIC intrusion shield
US11283625B2 (en) 2016-10-14 2022-03-22 Cable Television Laboratories, Inc. Systems and methods for bootstrapping ecosystem certificate issuance
US11398906B2 (en) 2016-11-10 2022-07-26 Brickell Cryptology Llc Confirming receipt of audit records for audited use of a cryptographic key
US10855465B2 (en) 2016-11-10 2020-12-01 Ernest Brickell Audited use of a cryptographic key
US11405201B2 (en) 2016-11-10 2022-08-02 Brickell Cryptology Llc Secure transfer of protected application storage keys with change of trusted computing base
US10498712B2 (en) 2016-11-10 2019-12-03 Ernest Brickell Balancing public and personal security needs
WO2018090201A1 (zh) 2016-11-15 2018-05-24 华为技术有限公司 一种安全的处理器芯片及终端设备
US10091195B2 (en) 2016-12-31 2018-10-02 Nok Nok Labs, Inc. System and method for bootstrapping a user binding
US10237070B2 (en) 2016-12-31 2019-03-19 Nok Nok Labs, Inc. System and method for sharing keys across authenticators
US10585608B2 (en) * 2017-03-22 2020-03-10 Oracle International Corporation System and method for securely isolating a system feature
CN106973056B (zh) * 2017-03-30 2020-11-17 中国电力科学研究院 一种面向对象的安全芯片及其加密方法
GB2561374B (en) * 2017-04-11 2022-04-06 Secure Thingz Ltd Storing data on target data processing devices
US10652245B2 (en) 2017-05-04 2020-05-12 Ernest Brickell External accessibility for network devices
US10348706B2 (en) * 2017-05-04 2019-07-09 Ernest Brickell Assuring external accessibility for devices on a network
CN107229880A (zh) * 2017-05-12 2017-10-03 深圳市博巨兴实业发展有限公司 一种带用户安全调试功能的微处理器芯片
US10505931B2 (en) * 2017-06-02 2019-12-10 Nxp B.V. Method for authenticating an integrated circuit device
US11418364B2 (en) 2017-06-07 2022-08-16 Combined Conditional Access Development And Support, Llc Determining a session key using session data
US20190007212A1 (en) 2017-06-30 2019-01-03 Intel Corporation Secure unlock systems for locked devices
US11218322B2 (en) 2017-09-28 2022-01-04 Intel Corporation System and method for reconfiguring and deploying soft stock-keeping units
FR3072195B1 (fr) * 2017-10-11 2019-10-18 Stmicroelectronics (Rousset) Sas Procede de gestion d'un retour de produit pour analyse et produit correspondant
CN107797933B (zh) * 2017-11-22 2020-06-12 中国银行股份有限公司 生成模拟报文的方法及装置
US11868995B2 (en) 2017-11-27 2024-01-09 Nok Nok Labs, Inc. Extending a secure key storage for transaction confirmation and cryptocurrency
US20190215160A1 (en) * 2018-01-09 2019-07-11 Qualcomm Incorporated Managing a set of cryptographic keys in an encrypted system
US11789874B2 (en) 2018-01-09 2023-10-17 Qualcomm Incorporated Method, apparatus, and system for storing memory encryption realm key IDs
US11250133B2 (en) 2018-01-12 2022-02-15 Arris Enterprises Llc Configurable code signing system and method
US11831409B2 (en) 2018-01-12 2023-11-28 Nok Nok Labs, Inc. System and method for binding verifiable claims
WO2019144403A1 (zh) 2018-01-29 2019-08-01 深圳市汇顶科技股份有限公司 芯片的访问方法、安全控制模块、芯片和调试设备
US11184164B2 (en) * 2018-02-02 2021-11-23 Microsoft Technology Licensing, Llc Secure crypto system attributes
US11063701B2 (en) * 2018-07-13 2021-07-13 Encore Semi, Inc. Safety integrity level of service (SILoS) system
US10853273B2 (en) * 2018-08-01 2020-12-01 Micron Technology, Inc. Secure memory system programming
US10707973B2 (en) * 2018-08-30 2020-07-07 Rohde & Schwarz Gmbh & Co. Kg Method of testing bluetooth low energy devices over-the-air and testing system
GB2578158B (en) 2018-10-19 2021-02-17 Advanced Risc Mach Ltd Parameter signature for realm security configuration parameters
GB201902470D0 (en) * 2019-02-22 2019-04-10 Secure Thingz Ltd Security data processing device
CN109756332B (zh) * 2019-03-04 2023-03-03 重庆捷思芯创电子科技有限公司 一种sram型fpga与外置密钥管理芯片的通讯系统
US11792024B2 (en) 2019-03-29 2023-10-17 Nok Nok Labs, Inc. System and method for efficient challenge-response authentication
EP3977670A4 (en) * 2019-05-24 2023-06-28 ARRIS Enterprises LLC Key-ladder protected personalization data conversion from global to unique encryption
WO2021025989A1 (en) * 2019-08-02 2021-02-11 Mastercard International Incorporated System and method to support payment acceptance capability for merchants
CN110380854A (zh) * 2019-08-12 2019-10-25 南京芯驰半导体科技有限公司 针对多个系统的根密钥生成、隔离方法及根密钥模块
CN114424168A (zh) 2019-09-27 2022-04-29 英特尔公司 用于软件定义的硅安全性的系统、方法和装置
US20210012357A1 (en) * 2019-09-27 2021-01-14 Intel Corporation Protection against misuse of software-defined silicon
US11042473B2 (en) * 2019-11-01 2021-06-22 EMC IP Holding Company LLC Intelligent test case management for system integration testing
CN113055340B (zh) * 2019-12-26 2023-09-26 华为技术有限公司 鉴权方法及设备
US10903990B1 (en) 2020-03-11 2021-01-26 Cloudflare, Inc. Establishing a cryptographic tunnel between a first tunnel endpoint and a second tunnel endpoint where a private key used during the tunnel establishment is remotely located from the second tunnel endpoint
TWI743715B (zh) * 2020-03-24 2021-10-21 瑞昱半導體股份有限公司 用來針對非揮發性記憶體進行資訊保護的方法及設備
JP2021184584A (ja) * 2020-05-22 2021-12-02 ルネサスエレクトロニクス株式会社 半導体装置およびそれを用いた電子システム
US11502832B2 (en) * 2020-06-04 2022-11-15 PUFsecurity Corporation Electronic device capable of protecting confidential data
US11416639B2 (en) * 2020-06-29 2022-08-16 Nuvoton Technology Corporation PQA unlock
US11977612B2 (en) 2020-07-07 2024-05-07 Intel Corporation Software defined silicon guardianship
US20220021544A1 (en) * 2020-07-15 2022-01-20 Micron Technology, Inc. Secure Serial Peripheral Interface (SPI) Flash
CN111935119B (zh) * 2020-07-31 2021-06-18 上海安路信息科技股份有限公司 数据加密认证方法及数据加密认证系统
US11681784B2 (en) * 2020-09-03 2023-06-20 Arista Networks, Inc. Hardware license verification
US11996191B2 (en) * 2020-09-28 2024-05-28 Shanghai United Imaging Healthcare Co., Ltd. Systems and methods for device control
US20220114284A1 (en) * 2020-10-14 2022-04-14 Qualcomm Incorporated Signed command stream and command execution
US11595189B2 (en) 2020-10-27 2023-02-28 Microsoft Technology Licensing, Llc Secure key exchange using key-associated attributes
US11630711B2 (en) * 2021-04-23 2023-04-18 Qualcomm Incorporated Access control configurations for inter-processor communications
US11928349B2 (en) 2021-04-23 2024-03-12 Qualcomm Incorporated Access control configurations for shared memory
CN115312110A (zh) * 2021-05-08 2022-11-08 瑞昱半导体股份有限公司 芯片验证系统及其验证方法
US20230394901A1 (en) * 2022-06-02 2023-12-07 Micron Technology, Inc. Securing electronic ballot systems via secure memory devices with embedded hardware security modules
US11546323B1 (en) * 2022-08-17 2023-01-03 strongDM, Inc. Credential management for distributed services
US11736531B1 (en) 2022-08-31 2023-08-22 strongDM, Inc. Managing and monitoring endpoint activity in secured networks
US11765159B1 (en) 2022-09-28 2023-09-19 strongDM, Inc. Connection revocation in overlay networks
US11916885B1 (en) 2023-01-09 2024-02-27 strongDM, Inc. Tunnelling with support for dynamic naming resolution
US11765207B1 (en) 2023-03-17 2023-09-19 strongDM, Inc. Declaring network policies using natural language

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530753A (en) 1994-08-15 1996-06-25 International Business Machines Corporation Methods and apparatus for secure hardware configuration
NZ500372A (en) 1995-06-05 2001-04-27 Certco Inc Delegated use of electronic signature
JPH10274927A (ja) 1997-03-31 1998-10-13 Nippon Telegr & Teleph Corp <Ntt> 認証を伴う命令発行方法およびこれに用いるモジュール
JP4670158B2 (ja) 2001-02-16 2011-04-13 ソニー株式会社 データ処理方法および半導体回路
US20020141582A1 (en) * 2001-03-28 2002-10-03 Kocher Paul C. Content security layer providing long-term renewable security
US7987510B2 (en) * 2001-03-28 2011-07-26 Rovi Solutions Corporation Self-protecting digital content
JP4899248B2 (ja) 2001-04-02 2012-03-21 富士通セミコンダクター株式会社 半導体集積回路
US7484105B2 (en) 2001-08-16 2009-01-27 Lenovo (Singapore) Ptd. Ltd. Flash update using a trusted platform module
JP2003209545A (ja) 2002-01-11 2003-07-25 Tokyo Denki Univ コア内蔵型集積回路及びそのコア盗用防止方法
EP1488641A1 (en) * 2002-03-19 2004-12-22 Koninklijke Philips Electronics N.V. Conditional access control
JP2004173206A (ja) * 2002-11-22 2004-06-17 Toshiba Corp 半導体集積回路及び機能実現システム
US20040103325A1 (en) * 2002-11-27 2004-05-27 Priebatsch Mark Herbert Authenticated remote PIN unblock
KR100581440B1 (ko) 2003-07-04 2006-05-23 학교법인 한국정보통신학원 겹선형쌍을 이용한 개인식별정보 기반의 대리서명 장치 및방법
US20050114700A1 (en) 2003-08-13 2005-05-26 Sensory Networks, Inc. Integrated circuit apparatus and method for high throughput signature based network applications
US20060059372A1 (en) * 2004-09-10 2006-03-16 International Business Machines Corporation Integrated circuit chip for encryption and decryption having a secure mechanism for programming on-chip hardware
US7251805B2 (en) 2004-10-12 2007-07-31 Nanotech Corporation ASICs having more features than generally usable at one time and methods of use
US7774619B2 (en) * 2004-11-17 2010-08-10 Broadcom Corporation Secure code execution using external memory
JP4260759B2 (ja) 2005-02-18 2009-04-30 富士通株式会社 機器制御サービス提供プログラム、機器制御サービス提供システムおよび機器制御サービス提供方法
EP1722503A1 (en) 2005-05-13 2006-11-15 DrayTek Corp. Method used by an access point of a wireless LAN and related apparatus
FR2897222A1 (fr) * 2006-02-03 2007-08-10 Gemplus Sa Acces a distance a une memoire de masse et une memoire de securite dans un objet communicant portable
US7624283B2 (en) * 2006-02-13 2009-11-24 International Business Machines Corporation Protocol for trusted platform module recovery through context checkpointing
US8560829B2 (en) 2006-05-09 2013-10-15 Broadcom Corporation Method and system for command interface protection to achieve a secure interface
CN101127625B (zh) * 2006-08-18 2013-11-06 华为技术有限公司 一种对访问请求授权的系统及方法
US9064135B1 (en) * 2006-12-12 2015-06-23 Marvell International Ltd. Hardware implemented key management system and method
WO2008071795A2 (en) 2006-12-15 2008-06-19 Boesgaard Soerensen Hans Marti Digital data authentication
US20080162866A1 (en) * 2006-12-28 2008-07-03 Siddiqi Faraz A Apparatus and method for fast and secure memory context switching
US7778074B2 (en) 2007-03-23 2010-08-17 Sigmatel, Inc. System and method to control one time programmable memory
US8995288B2 (en) * 2007-06-11 2015-03-31 Broadcom Corporation Method and system for a configurable communication integrated circuit and/or chipset
WO2009065313A1 (fr) * 2007-11-20 2009-05-28 Hangzhou H3C Technologies Co., Ltd. Procédé et équipement à processeur multicœurs pour la mise en œuvre de plusieurs fonctions de traitement de services
US20090187771A1 (en) * 2008-01-17 2009-07-23 Mclellan Jr Hubert Rae Secure data storage with key update to prevent replay attacks
US9003197B2 (en) * 2008-03-27 2015-04-07 General Instrument Corporation Methods, apparatus and system for authenticating a programmable hardware device and for authenticating commands received in the programmable hardware device from a secure processor
JP5355573B2 (ja) 2008-08-07 2013-11-27 三菱電機株式会社 半導体集積回路装置及び設備機器制御装置
WO2010019916A1 (en) 2008-08-14 2010-02-18 The Trustees Of Princeton University Hardware trust anchors in sp-enabled processors
US8627471B2 (en) 2008-10-28 2014-01-07 Freescale Semiconductor, Inc. Permissions checking for data processing instructions
WO2010057312A1 (en) 2008-11-24 2010-05-27 Certicom Corp. System and method for hardware based security
KR101261674B1 (ko) * 2008-12-22 2013-05-06 한국전자통신연구원 다운로드 제한 수신 시스템에서의 상호 인증 방법 및 장치
US8505078B2 (en) 2008-12-28 2013-08-06 Qualcomm Incorporated Apparatus and methods for providing authorized device access
US20100174920A1 (en) 2009-01-06 2010-07-08 Jonathan Peter Buckingham Data processing apparatus
US8332641B2 (en) * 2009-01-30 2012-12-11 Freescale Semiconductor, Inc. Authenticated debug access for field returns
US8250630B2 (en) 2009-03-05 2012-08-21 Cisco Technology, Inc. Detecting unauthorized computer access
US8732468B2 (en) * 2009-03-09 2014-05-20 The Regents Of The University Of Michigan Protecting hardware circuit design by secret sharing
US20100284539A1 (en) * 2009-03-09 2010-11-11 The Regents Of The University Of Michigan Methods for Protecting Against Piracy of Integrated Circuits
US8583930B2 (en) * 2009-03-17 2013-11-12 Electronics And Telecommunications Research Institute Downloadable conditional access system, secure micro, and transport processor, and security authentication method using the same
JP5423088B2 (ja) * 2009-03-25 2014-02-19 ソニー株式会社 集積回路、暗号通信装置、暗号通信システム、情報処理方法、及び暗号通信方法
US7795899B1 (en) 2009-04-08 2010-09-14 Oracle America, Inc. Enabling on-chip features via efuses
CA2767721C (en) 2009-07-10 2017-01-24 Certicom Corp. System and method for managing electronic assets using multithreaded interfaces for distributed manufacturing
US20110016308A1 (en) 2009-07-17 2011-01-20 Ricoh Company, Ltd., Encrypted document transmission
US10482254B2 (en) 2010-07-14 2019-11-19 Intel Corporation Domain-authenticated control of platform resources
US9071421B2 (en) 2010-12-15 2015-06-30 Microsoft Technology Licensing, Llc Encrypted content streaming
US9569631B2 (en) 2011-01-21 2017-02-14 Lexmark International, Inc. Method and apparatus for configuring an electronics device
CA2830846C (en) 2011-03-21 2018-08-28 Irdeto B.V. System and method for securely binding and node-locking program execution to a trusted signature authority
US8843764B2 (en) 2011-07-15 2014-09-23 Cavium, Inc. Secure software and hardware association technique
US9231926B2 (en) 2011-09-08 2016-01-05 Lexmark International, Inc. System and method for secured host-slave communication
US9015837B1 (en) 2011-09-29 2015-04-21 Google Inc. Systems and methods for verifying an update to data of an electronic device
US8812837B2 (en) 2012-06-01 2014-08-19 At&T Intellectual Property I, Lp Apparatus and methods for activation of communication devices
US8954732B1 (en) 2012-06-27 2015-02-10 Juniper Networks, Inc. Authenticating third-party programs for platforms
US9436848B2 (en) * 2013-05-30 2016-09-06 Cryptography Research, Inc. Configurator for secure feature and key manager
US9692599B1 (en) 2014-09-16 2017-06-27 Google Inc. Security module endorsement
TWI610561B (zh) * 2016-08-26 2018-01-01 Smart Mobile Broadcasting Technology Inc 視聽條件更新方法、更新碼生成系統、更新碼生成裝置、視聽條件管理裝置、內容接收系統、及內容發送系統
NL2022902B1 (en) * 2019-04-09 2020-10-20 Univ Delft Tech Integrated circuit device for loT applications
KR20210089486A (ko) * 2020-01-08 2021-07-16 삼성전자주식회사 키를 안전하게 관리하기 위한 장치 및 방법

Also Published As

Publication number Publication date
KR102312131B1 (ko) 2021-10-13
WO2014026095A3 (en) 2014-05-01
KR20150040920A (ko) 2015-04-15
CN104541474A (zh) 2015-04-22
US10771448B2 (en) 2020-09-08
US10084771B2 (en) 2018-09-25
KR102230834B1 (ko) 2021-03-23
TWI621031B (zh) 2018-04-11
KR102470524B1 (ko) 2022-11-24
KR20220042236A (ko) 2022-04-04
US20160028722A1 (en) 2016-01-28
US20190097999A1 (en) 2019-03-28
KR20210119585A (ko) 2021-10-05
CN104541474B (zh) 2018-03-30
EP2907262B1 (en) 2019-11-27
JP2015531924A (ja) 2015-11-05
EP2907262A2 (en) 2015-08-19
EP2907262A4 (en) 2016-05-18
KR20210032557A (ko) 2021-03-24
US11695749B2 (en) 2023-07-04
US10666641B2 (en) 2020-05-26
KR102378157B1 (ko) 2022-03-24
TW201415286A (zh) 2014-04-16
US20230388290A1 (en) 2023-11-30
US20140044265A1 (en) 2014-02-13
WO2014026095A2 (en) 2014-02-13
US20210058387A1 (en) 2021-02-25

Similar Documents

Publication Publication Date Title
JP6427099B2 (ja) 集積回路のセキュア機能及び鍵管理
US20220329587A1 (en) Securely provisioning a target device
US11789625B2 (en) Managing privileges of different entities for an integrated circuit
US10419407B2 (en) System and method for controlling features on a device
US9436848B2 (en) Configurator for secure feature and key manager
US20100063996A1 (en) Information processing device, information recording device, information processing system, program update method, program, and integrated circuit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160721

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170822

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171113

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180710

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20180809

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181026

R150 Certificate of patent or registration of utility model

Ref document number: 6427099

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250