(57)【要約】集積回路（IC）における安全なクリティカルセキュリティパラメータ（CSP）の生成を提供するための技法を開示する。実施形態は概して、CSPが生成される前に、外部から（たとえば、デバッグインターフェースによって）CSPを読み取る能力が無効にされていると決定する工程を含む。デバイスの機能に依存して、実施形態は、安全なCSPを提供するための方法を実行するためのソフトウェアが初めて実行されているのかどうかを決定する工程などの、他のステップを含み得る。とりわけ、本明細書において提供される安全なCSPの生成を提供するための技法は、CSPのセキュリティを強化し、ICの製造コストを減じることができる。2014530418.tif 000003
2014530418.tif 000002
【特許請求の範囲】
【請求項１】
以下の工程を含む、集積回路のための安全なクリティカルセキュリティパラメータ（CSP）の生成を提供するためのコンピュータで実施される方法:
該コンピュータで実施される方法が集積回路によって初めて実行されていると決定する工程;
該集積回路のインターフェースを介して該集積回路の安全なメモリにアクセスする能力が無効にされていると決定する工程;
少なくとも一つのCSPを生成する工程;および
該少なくとも一つのCSPを集積回路の該安全なメモリに記憶する工程。
【請求項２】
少なくとも一つのCSPを集積回路の安全なメモリから消去されることから保護する工程をさらに含む、請求項1記載の集積回路のためのCSPの生成を提供するためのコンピュータで実施される方法。
【請求項３】
コンピュータで実施される方法が集積回路によって二度目に実行されていると決定する工程;
コンピュータで実施される方法が集積回路によって二度目に実行されている間に、該集積回路のインターフェースを介して該集積回路の安全なメモリにアクセスする能力が無効にされていないと決定する工程;および
該集積回路の通常動作を防止する工程
をさらに含む、請求項1記載の集積回路のためのCSPの生成を提供するためのコンピュータで実施される方法。
【請求項４】
集積回路の通常動作が、該集積回路をエラー状態または停止状態にすることによって防止される、請求項3記載の集積回路のためのCSPの生成を提供するためのコンピュータで実施される方法。
【請求項５】
集積回路のインターフェースがデバッギングインターフェースである、請求項1記載の集積回路のためのCSPの生成を提供するためのコンピュータで実施される方法。
【請求項６】
少なくとも一つのCSPが暗号化鍵の公開/秘密ペアを備える、請求項1記載の集積回路のためのCSPの生成を提供するためのコンピュータで実施される方法。
【請求項７】
CSPが集積回路によって生成される、請求項1記載の集積回路のためのCSPの生成を提供するためのコンピュータで実施される方法。
【請求項８】
少なくとも一つのCSPを集積回路の安全なメモリに記憶した後に該集積回路をリブートする工程をさらに含む、請求項1記載の集積回路のためのCSPの生成を提供するためのコンピュータで実施される方法。
【請求項９】
集積回路のためのCSPの生成を提供するための命令が組み込まれた非一時的なコンピュータ可読媒体であって、該命令は、コンピュータ実行可能なコードを含み、該コンピュータ実行可能なコードは、
該コンピュータ実行可能なコードが集積回路によって初めて実行されていると決定し、
該集積回路のインターフェースを介して該記集積回路の安全なメモリにアクセスする能力が無効にされていると決定し、
少なくとも一つのCSPを生成し、かつ
該少なくとも一つのCSPを集積回路の該安全なメモリに記憶する
ためのものである、
非一時的なコンピュータ可読媒体。
【請求項１０】
少なくとも一つのCSPを集積回路の安全なメモリから消去されることから保護するためのコンピュータ実行可能なコードをさらに備える、請求項9記載の非一時的なコンピュータ可読媒体。
【請求項１１】
コンピュータ実行可能なコードが集積回路によって二度目に実行されていると決定し、
コンピュータ実行可能なコードが集積回路によって二度目に実行されている間に、該集積回路のインターフェースを介して該集積回路の安全なメモリにアクセスする能力が無効にされていないと決定し、
該集積回路の通常動作を防止する
ためのコンピュータ実行可能なコードをさらに備える、請求項9記載の非一時的なコンピュータ可読媒体。
【請求項１２】
集積回路の通常動作を防止するためのコンピュータ実行可能なコードが、集積回路をエラー状態または停止状態にするためのコンピュータ実行可能なコードを含む、請求項11記載の非一時的なコンピュータ可読媒体。
【請求項１３】
集積回路のインターフェースがデバッギングインターフェースである、請求項9記載の非一時的なコンピュータ可読媒体。
【請求項１４】
少なくとも一つのCSPが暗号化鍵の公開/秘密ペアを備える、請求項9記載の非一時的なコンピュータ可読媒体。
【請求項１５】
CSPの生成を提供可能な集積回路であって、
安全なメモリと、
インターフェースと、
該安全なメモリと該インターフェースとに結合され、処理を実行するように構成された処理回路と
を備え、該処理は、
該処理が該処理回路によって初めて実行されていると決定する工程、
該インターフェースを介して該安全なメモリにアクセスする能力が無効にされていると決定する工程、
少なくとも一つのCSPを生成する工程、および
該少なくとも一つのCSPを該安全なメモリに記憶する工程
を含む、
集積回路。
【請求項１６】
処理回路が、少なくとも一つのCSPを安全なメモリから消去されることから保護するように構成されている、請求項15記載のCSPの生成を提供可能な集積回路。
【請求項１７】
処理回路が実行するように構成された処理が、
該処理が処理回路によって二度目に実行されていると決定する工程、
該処理が処理回路によって二度目に実行されている間に、インターフェースを介して安全なメモリにアクセスする能力が無効にされていないと決定する工程、および
集積回路の通常動作を防止する工程
をさらに含む、
請求項15記載のCSPの生成を提供可能な集積回路。
【請求項１８】
集積回路の通常動作が、集積回路をエラー状態または停止状態にすることによって防止される、請求項17記載のCSPの生成を提供可能な集積回路。
【請求項１９】
インターフェースがデバッギングインターフェースである、請求項17記載のCSPの生成を提供可能な集積回路。
【請求項２０】
少なくとも一つのCSPが暗号化鍵の公開/秘密ペアを備える、請求項15記載のCSPの生成を提供可能な集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、2011年9月15日付けで出願された、「初期鍵が製造中に脅かされるリスクをなくす安全鍵自己生成の方法（METHOD OF SECURE KEYS SELF GENERATION ELIMINATING THE RISK OF THE INITIAL KEYS BEING COMPROMISED IN MANUFACTURING）」と題する、米国特許出願第61/535,047号明細書の米国特許法119（e）の下の利益を主張し、その全内容は、すべての目的のために引用により本明細書に組み込まれる。
【背景技術】
【０００２】
背景
マイクロコントローラ、マイクロプロセッサ、および他の集積回路（IC）は多くの場合、暗号鍵、認証データ、または、追加のセキュリティもしくは他の機能を提供するために利用され得る他のセンシティブなデータといった、クリティカルセキュリティパラメータ（CSP）を用い得る。これらのCSPの開示または変更は、この機能を脅かし得る。
【０００３】
CSPは多くの場合、安全な製造または供給環境において、ICに引き渡される。これは、CSPのセキュリティに関する問題を提起し得る。たとえば、ことによると製造者が、誤って、または、悪意のある行為の結果として、CSPのインストールに失敗するか、または、誤った、反復の、変更された、禁止された等のCSPをインストールして、これらの安全な手順を免れ得る。ICによるCSPの自己生成、安全な手法によるデバイスの外部の安全なストレージへのCSPの手動または自動の引き渡しが、これらの問題のいくつかを回避するのに役立ち得るが、それでもなおCSPは、当事者にデバイスのデバッグインターフェースによる鍵の傍受または鍵に対する干渉を可能にさせ得る、デバッグインターフェースによって脅かされ得る。これらの方法のすべては、対称鍵と非対称鍵の両方に適用される。
【発明の概要】
【０００４】
概要
集積回路（IC）における安全なクリティカルセキュリティパラメータ（CSP）の生成を提供するための技法を開示する。実施形態は概して、CSPが生成される前に、外部から（たとえば、デバッグインターフェースによって）CSPを読み取る能力が無効にされていると決定する工程を含む。デバイスの機能に依存して、実施形態は、安全なCSPを提供するための方法を実行するためのソフトウェアが初めて実行されているかどうかを決定する工程などの、他のステップを含み得る。とりわけ、本明細書において提供される安全なCSPの生成を提供するための技法は、CSPのセキュリティを強化し、ICの製造コストを減じることができる。
【０００５】
本開示に係る、集積回路のための安全なクリティカルセキュリティパラメータCSPの生成を提供するためのコンピュータで実施される例示的な方法は、コンピュータで実施される方法が集積回路によって初めて実行されていると決定する工程と、集積回路のインターフェースを介して集積回路の安全なメモリにアクセスする能力が無効にされていると決定する工程と、少なくとも一つのCSPを生成する工程と、集積回路の安全なメモリに少なくとも一つのCSPを記憶する工程と、を含み得る。
【０００６】
集積回路のための安全なクリティカルセキュリティパラメータCSPの生成を提供するためのコンピュータで実施される例示的な方法は、以下の機能および/または特徴のうちの一つまたは複数を含み得る。この方法は、集積回路の安全なメモリから消去されることから少なくとも一つのCSPを保護する工程を含み得る。この方法は、コンピュータで実施される方法が集積回路によって二度目に実行されていると決定する工程と、コンピュータで実施される方法が集積回路によって二度目に実行されている間に、集積回路のインターフェースを介して集積回路の安全なメモリにアクセスする能力が無効にされていないと決定する工程と、集積回路の通常動作を防止する工程と、を含み得る。集積回路の通常動作は、集積回路をエラー状態または停止状態にすることによって、防止され得る。集積回路のインターフェースは、デバッギングインターフェースであり得る。少なくとも一つのCSPは、暗号化鍵の公開/秘密ペアを備え得る。CSPは、集積回路によって生成され得る。この方法は、集積回路の安全なメモリに少なくとも一つのCSPを記憶した後に集積回路をリブートする工程を含み得る。
【０００７】
本説明に係る、集積回路のためのCSPの生成を提供するための命令が組み込まれた例示的な非一時的なコンピュータ可読媒体は、コンピュータ実行可能なコードを有する命令を有することができ、コンピュータ実行可能なコードは、コンピュータ実行可能なコードが集積回路によって初めて実行されていると決定し、集積回路のインターフェースを介して集積回路の安全なメモリにアクセスする能力が無効にされていると決定し、少なくとも一つのCSPを生成し、集積回路の安全なメモリに少なくとも一つのCSPを記憶するためのものである。
【０００８】
例示的な非一時的なコンピュータ可読媒体はまた、以下の特徴のうちの一つまたは複数を含み得る。この媒体は、集積回路の安全なメモリから消去されることから少なくとも一つのCSPを保護するためのコンピュータ実行可能なコードを含み得る。この媒体は、コンピュータ実行可能なコードが集積回路によって二度目に実行されていると決定し、コンピュータ実行可能なコードが集積回路によって二度目に実行されている間に、集積回路のインターフェースを介して集積回路の安全なメモリにアクセスする能力が無効にされていないと決定し、集積回路の通常動作を防止するための、コンピュータ実行可能なコードを含み得る。集積回路の通常動作を防止するためのコンピュータ実行可能なコードは、集積回路をエラー状態または停止状態にするためのコンピュータ実行可能なコードを含み得る。集積回路のインターフェースは、デバッギングインターフェースであり得る。少なくとも一つのCSPは、暗号化鍵の公開/秘密ペアを備え得る。
【０００９】
本開示に係る、CSPの生成を提供可能な例示的な集積回路は、安全なメモリと、インターフェースと、安全なメモリとインターフェースとに結合され、処理を実行するように構成された処理回路と、を含み得る。この処理は、処理が処理回路によって初めて実行されていると決定する工程と、インターフェースを介して安全なメモリにアクセスする能力が無効にされていると決定する工程と、少なくとも一つのCSPを生成する工程と、安全なメモリに少なくとも一つのCSPを記憶する工程と、を含み得る。
【００１０】
CSPの生成を提供可能な例示的な集積回路は、以下の特徴のうちの一つまたは複数を含み得る。処理回路は、安全なメモリから消去されることから少なくとも一つのCSPを保護するように構成され得る。処理回路が実行するように構成された処理はまた、処理が処理回路によって二度目に実行されていると決定する工程と、処理が処理回路によって二度目に実行されている間に、インターフェースを介して安全なメモリにアクセスする能力が無効にされていないと決定する工程と、集積回路の通常動作を防止する工程と、を含み得る。集積回路の通常動作は、集積回路をエラー状態または停止状態にすることによって、防止され得る。インターフェースは、デバッギングインターフェースであり得る。少なくとも一つのCSPは、暗号化鍵の公開/秘密ペアを含み得る。
【図面の簡単な説明】
【００１１】
さまざまな実施形態の本質および利点のさらなる理解が、以下の図面を参照することよって実現され得る。添付の図面において、同様の構成要素または特徴は、同一の参照符号を有し得る。さらに、同一のタイプのさまざまな構成要素は、参照符号の後に同様の構成要素を区別するダッシュおよび第2の符号が続くことによって、区別され得る。第1の参照符号のみが明細書中に使用される場合、説明は、第2の参照符号とは無関係に、同一の第1の参照符号を有する同様の構成要素のうちのいずれか一つに適用可能である。
【図１】図1は、一実施形態に係る、本明細書において提供される技法を利用可能な集積回路（IC）の単純化されたブロック図である。
【図２】図2は、一実施形態に係る、安全なCSPの自己生成のための方法を表すフローチャートである。
【図３】図3は、別の実施形態に係る、安全なCSPの自己生成のための方法を表すフローチャートである。
【図４】図4は、一実施形態に係る、本明細書において提供される技法を利用して安全なCSPの生成を実行するための方法の概略を示す、単純化されたフローシーケンスである。
【図５】図5は、別の実施形態に係る、本明細書において提供される技法を利用して安全なCSPの生成を実行するための方法の概略を示す、単純化されたフローシーケンスである。
【発明を実施するための形態】
【００１２】
発明の詳細な説明
説明の目的で、特定の詳細を提供する以下の多くは、さまざまな実施形態の完全な理解を提供するために説明される。しかしながら、さまざまな実施形態がこれらの特定の詳細の一部なくして実現され得るということは、当業者にとって明らかであろう。たとえば、回路、システム、ネットワーク、処理、および他の構成要素は、不必要な詳細で実施形態を曖昧にしないように、ブロック図の形態の構成要素として示され得る。他の例において、公知の回路、処理、アルゴリズム、構造、および技法は、実施形態を曖昧にすることを回避するために、不必要な詳細なしに示され得る。他の例において、周知の構造およびデバイスは、ブロック図の形態で示される。
【００１３】
本明細書において提供される実施形態は一例にすぎず、本開示の範囲、応用性、または構成を限定することを意図するものではない。むしろ、実施形態の以下の説明は、当業者に一つまたは複数の実施形態の実施を可能にする説明を提供するだろう。添付の請求項に記載される開示されたシステムおよび方法の精神および範囲から逸脱せずに、要素の機能および配置のさまざまな変更が行われ得ることが理解されるべきである。
【００１４】
また、個々の実施形態は、フローチャート、流れ図、データ流れ図、構造図、またはブロック図として示される処理として説明され得る。フローチャートは、連続した処理として動作を説明し得るが、動作の多くは、並行してまたは同時に、実行され得る。加えて、動作の順序は並べ替えられ得る。処理は、その動作の完了時に終了するが、図面に含まれない追加のステップを有し得る。処理は、方法、関数、プロシージャ、サブルーチン、サブプログラム等に対応し得る。処理が関数に対応する場合、その終了は、関数が呼び出し関数またはメイン関数に戻ることに対応し得る。
【００１５】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせによって実施され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードにおいて実施される場合、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、機械可読媒体に記憶され得る。プロセッサ（単数または複数）が、必要なタスクを実行し得る。
【００１６】
本明細書において提供される実施形態は、マイクロコントローラまたはマイクロプロセッサのような集積回路（IC）上で、暗号鍵、認証データ、または他のセンシティブなデータといった、クリティカルセキュリティパラメータ（CSP）を生成し、安全にするための技法を含む。開示される自己管理技法は、開発者および/または製造者が意図的にまたは意図せずにIC上でCSPを脅かすこと（たとえば、リセットする、消去する、置換する、検索する、複製する等）を防止するのに役立ち得る。
【００１７】
図1は、一実施形態に係る、IC100の単純化されたブロック図である。IC100の構成要素は、IC100のタイプに依存して変わり得るが、一般的に、処理回路110、メモリ120（安全なメモリ125を含む）、一つまたは複数のI/Oインターフェース130、および追加の構成要素（単数または複数）140を含み得る。IC100の他の実施形態は、所望される機能に依存して、より多い、より少ない、および/または異なる、構成要素を含み得る。
【００１８】
I/Oインターフェース（単数または複数）130は、IC100に、たとえば外部バスを介して外部のシステムおよび/またはデバイスと通信することを可能にさせ得る。I/Oインターフェース（単数または複数）130はまた、ジョイントテストアクショングループ（JTAG）（またはIEEE1149.1）のデバッグポートといった、デバッグインターフェースを含み得る。いくつかの実施形態によると、デバッグインターフェースおよび/または他のインターフェースは、ユーザによって無効にされ得る。たとえば、ユーザは、IC100にソフトウェアをインストールした後、デバッグインターフェースを無効にすることが可能であり得る。これらの実施形態はまた、ICの内部のコードに、デバッグインターフェースおよび/または他のインターフェースが無効にされているかどうかを検査することを可能にさせ得る。いくつかの実施形態によると、I/Oインターフェース（単数または複数）130は、IC100に、IC100によって生成されたCSPを外部のエンティティに手動および/または自動で引き渡すことを可能にさせ得る。
【００１９】
メモリ120の容量および/または機能は、IC100のタイプ、所望される機能、および/または他のファクタに依存して変わり得る。メモリ120は、作業メモリ（たとえば、キャッシュ、バッファ等）、および/またはソフトウェア、ファームウェア、および他の機械コードのためのストレージとして利用され得る、たとえば、揮発性および/または不揮発性データストレージ（RAM、ROM、EPROM、EEPROM、フラッシュメモリ等）を含み得る。
【００２０】
実施形態はまた、安全なメモリ125を含み得る。安全なメモリは、制限されたアクセスを有するメモリ120の一つまたは複数の部分を備え得る。すなわち、安全なメモリ125へのアクセスは制限されることができるので、安全なメモリ125のコンテンツは、IC100の外部のエンティティに読み取られる、またはそうでなければ、伝達されることはできない。いくつかの実施形態において、安全なメモリ125は、たとえば、CSP（たとえば、秘密暗号化鍵）を記憶することができ、CSPがIC100の通常動作中に読み取られることおよび/または変更されることを防止することができる。したがって、安全なメモリ125は、IC100自身によって実行される内部コードから保護され得る。さらに、いくつかの実施形態は、メモリ120のある特定の領域が安全かどうか（すなわち、メモリ120のある特定の領域が安全なメモリ125の一部を備えるかどうか）を検査することができるIC100を利用する。
【００２１】
集積回路120の処理回路110は、さまざまなコマンドおよび/または処理を実行可能な回路を含む。処理回路110の形態および機能は、IC100のタイプ、所望される機能、および/または他のファクタに依存して変わり得る。たとえば、マイクロコントローラの処理回路110は、ソフトウェア、ファームウェア、および/または他の機械実行可能なコードを実行するように構成された、プロセッシングコア、コアロジック、および／または類似のものを含み得る。一方で、マイクロプロセッサのための処理回路110は、たとえば、実行ユニット、算術論理演算ユニット（ALU）、シフタ、制御ロジック、および／または類似のものを含み得る。特定用途向けIC（ASIC）および他のタイプのICは、特定のコマンドおよび/またはロジックを実行可能な他の処理回路120を有し得る。いくつかの実施形態によると、IC100の処理回路110は、CSPを生成可能である。加えて、またはあるいは、CSPは、IC100内の特定のCSP生成モジュールのような別の構成要素によって生成されることができる。
【００２２】
図1は、単純化された例示的な実施形態として提供されているにすぎない。他の実施形態は、追加のおよび/または代替の構成要素を含み得る。したがって、追加の構成要素（単数または複数）140は、所望される機能に依存して、さまざまな構成要素のうちのいずれかを含み得る。そのような構成要素は、たとえば、レジスタ、コントローラ、制御ユニット、カウンタ、クロック、デバッグ回路、グルーロジック、フィールドプログラマブルロジック、キャッシュ、バッファ、メモリ管理ユニット（MMU）、および／または類似のものを含み得る。前述したように、所望される機能に依存して、追加の構成要素（単数または複数）は、CSPの生成および/または管理のためのモジュール（たとえば、専用回路および/または機械可読コード）を含み得る。当業者は、多くの追加、省略、代用、および改変を認識するだろう。
【００２３】
図2は、ソフトウェアを利用して方法を実行する一実施形態に係る、安全なCSPの自己生成のための方法200を表すフローチャートである。この方法は、図1に示すIC100の構成要素のうちの一つまたは複数によって実行されることができ、ソフトウェアの初期化が開始されるブロック210で始まり得る。そのような初期化は、たとえば、ICに最初に電源が入れられたときに行われ得る。
【００２４】
ブロック215で、ソフトウェアが初めて実行されているかどうかの決定が行われる。前述したように、近年のマイクロプロセッサおよびマイクロコントローラは、ソフトウェアが初めて実行されているかどうかを検出する能力を含み得る。さらに、単純なソフトウェアフラグおよび/または他のインジケータが、ソフトウェアが初めて実行されるときに設定されることができ、この決定を行うのに役立つ。ソフトウェア以外の手段を利用する実施形態では、他のインジケータおよび/またはデバイスが、処理が初めて実行されているかどうかを決定するために利用され得る。
【００２５】
ソフトウェアが初めて実行されていると決定された場合、処理は次にブロック245へと進み、インターフェースが無効にされているかどうか、および/または、そうでなければ外部の読み取り能力が無効にされているかどうか、が決定される。ここで、ICは、たとえば、デバッグインターフェースが無効にされているかどうか、および/または、ICの外部のエンティティによるCSPまたはCSPが記憶され得るデータ場所の読み取りを可能にする任意の他の手段が存在するかどうか、を決定することができる。異なるICは、異なるインターフェース、ソフトウェア、機能等を有し得るので、外部の読み取り能力が無効にされているかどうかを決定する処理は、異なるIC間で変わり得る。
【００２６】
ブロック220では、外部の読み取り能力が無効にされていないと決定された場合、ICは、CSPがメモリに記憶されているかどうかを確認し得る。CSPがメモリに存在しない場合、方法は単に、外部の読み取り能力が無効にされるまで待機し得る。そうでなく、CSPがメモリに存在する場合、ブロック225で、ICはエラー状態または停止状態に入り得る。
【００２７】
ブロック250では、外部の読み取り能力が無効にされていると決定された場合、CSPが生成され、安全なメモリに記憶（またはそうでなければ、外部のソースによって読み取られることおよび/または操作されることが防止）され得る。前述したように、CSPは、さまざまなセンシティブな値のいずれか（たとえば、公開/秘密暗号鍵のペア、対称鍵、パスワード等）を含み得る。
【００２８】
オプションで、ブロック255で、CSPは、安全なメモリ（または同様のデータ場所）において、書き込み/消去から保護され得る。そのようなステップは、CSPが操作から保護されることを保証するのに役立ち得る。所望される機能、ICのタイプ、および/または他のファクタに依存して、書き込み/消去からの保護は、CSPが改変されることを永続的に防止する手段を含み得る。
【００２９】
方法200は次に、ブロック260へと進むことができ、ICがリブートされる。今回はソフトウェアが初めて実行されていない。
【００３０】
そのようなケース、そして、ソフトウェアが初めて実行されていないすべてのケースでは、方法はブロック215からブロック230へと進み、インターフェース（たとえば、デバッグインターフェース）が無効にされているかどうか、および/または、そうでなければ外部の読み取り能力が無効にされているかどうか、が決定される。オプションで、実施形態、CSPのタイプ、および/または、所望される機能に依存して、ブロック230はまた、CSPが保護（たとえば、書き込み/消去から保護）されているかどうかを決定し得る。そうである場合、方法200はブロック280へと進むことができ、ICは、通常のデバイスの動作（すなわち、通常のICの機能）を受ける。いくつかの実施形態は加えて、CSPがICの外部のエンティティに手動および/または自動で安全に送信され得るステップ（図示せず）を含み得る。
【００３１】
ブロック230で、インターフェースが無効にされていない、または、別の外部の読み取り能力が無効にされていない、と決定された場合には、方法はブロック235へと進むことができ、ICは、エラー状態または停止状態にされる。他の実施形態は、ICを、ICが通常動作を受けることを防止するだろう他の状態にし得る。最終的に、方法200は、ともすればICのCSPのセキュリティを脅かし得る脆弱性を識別し、この脆弱性の持続を可能にするだろう条件下でICが機能することを防止する。
【００３２】
図3は、図2に示した方法200の代替の実施形態としての、安全なCSPの自己生成のための方法300を表すフローチャートである。図3の方法300は、たとえば、ICがCSPを再生成可能である実施形態において実行され得る。方法はブロック310で始まることができ、ソフトウェアの初期化が開始される。ここでも、そのような初期化は、たとえば、ICに最初に電源が入れられたときに行われ得る。
【００３３】
ブロック315では、図2のブロック230と同様に、インターフェースが無効にされているかどうか、および/または、そうでなければ外部の読み取り能力が無効にされているかどうか、の決定が行われる。ここでも、この決定は、デバッグインターフェースが無効にされているかどうか、および/または、ICの外部のエンティティによるCSPまたはCSPが記憶され得るデータ場所の読み取りを可能にする任意の他の手段が存在するかどうか、を決定することを含み得る。
【００３４】
ブロック320では、外部の読み取り能力が無効にされていないと決定された場合、ICは、CSPがメモリに記憶されているかどうかを確認し得る。CSPがメモリに存在しない場合、方法は単に、外部の読み取り能力が無効にされるまで待機し得る。そうでなく、CSPがメモリに存在する場合、ブロック325で、ICはエラー状態または停止状態に入り得る。
【００３５】
オプションで、ブロック330で、CSPがメモリ（たとえば、安全なメモリ）に記憶されているかどうかが決定される。これは、可能であればCSPそのものを読み取ること、および/または、CSPがメモリに記憶されているとのソフトウェアフラグおよび/または他のインジケータを利用すること、を含み得る。そうである場合、方法300は、ブロック355で、ソフトウェアが初めて実行されているかどうかを決定することを含み得る。そうでない場合、方法300は単に、ブロック360で、通常のデバイスの動作に移り得る。そうでなければ、CSPは、ブロック350で、CSPが消去可能な構成において、メモリから消去され得る。しかしながら、他の実施形態は、メモリに記憶され得る任意のCSPを無視および/または上書きすることができる。いずれのケースにおいても、ブロック335で、CSPが生成され、安全なメモリに記憶される。
【００３６】
図2の方法200によるように、図3の方法300はオプションでブロック340を含むことができ、CSPは、安全なメモリ（または同様のデータ場所）において書き込み/消去から保護されることができる。これは、ICが電力供給されている間の一時的な書き込み/消去からの保護を含むことができるので、CSPは、ICが次に再起動されたときに、消去および/または上書きされることができる。
【００３７】
CSPが生成されメモリに記憶されると、方法300は次にブロック345へと進むことができ、ICがリブートされる。ICの外部の読み取り能力が無効にされている場合、ICは、リブートされた後にブロック360で、通常のデバイスの動作に移る。
【００３８】
図2〜3に示した特定のステップは、安全なCSPの生成のための方法を示す例示的なフローチャートを提供している、ということが理解されるべきである。代替の実施形態は、示した実施形態に対する改変を含み得る。たとえば、代替の実施形態は、外部の読み取り能力が無効にされているかどうかを決定するための異なる技法を含み得る。他の実施形態は、CSPを生成および/または記憶する異なる形態を含み得る。さらに、追加の特徴が、特定の応用例に依存して追加または削除されることができる。当業者は、多くの変形例、変更、および代替例を認識するだろう。
【００３９】
図4および5は、それぞれ、図2および3に示したフローチャートの態様に対応する単純化されたフローシーケンスを提供する。図4は、たとえば、一実施形態に係る、本明細書において提供される技法を利用して安全なCSPの生成を実行するための方法400の概略を示すシーケンスを例示する。
【００４０】
方法400はブロック410で始まることができ、方法が初めて実行されていると決定される。本明細書において詳述したように、この決定は、実施形態の所望される機能に依存して、ソフトウェアフラグ、ハードウェアインジケータ、および/または他の技法を利用することができる。
【００４１】
ブロック420で、ICのインターフェースを介して安全なメモリにアクセスする能力が無効にされていると決定される。本明細書において前述したように、これは、デバッグインターフェースが無効にされているかどうかを決定するためのICによる内部セルフチェックを含み得る。加えて、またはあるいは、実施形態は、CSPがICの外部のエンティティから読み取られることおよび/またはICの外部のエンティティに送信されることから保護されているかどうかを決定するために、ICの他のアスペクトをチェックすることを含み得る。
【００４２】
ブロック430で、CSPが生成される。CSPは、たとえば、ICの処理回路および/またはCSPの生成のために構成されたモジュールによって生成されることができる。CSPが生成されると、それは、ブロック440でICの安全なメモリに記憶されることができる。
【００４３】
図5は、別の実施形態に係る、本明細書において提供される技法を利用して安全なCSPの生成を実行するための方法500の概略を示すシーケンスを例示する。ブロック510では、図4のブロック420と同様に、ICのインターフェースを介して安全なメモリにアクセスする能力が無効にされていると決定される。ここでも、実施形態は、CSPがICの外部のエンティティから読み取られることおよび/またはICの外部のエンティティに送信されることから保護されているかどうかを決定するために、ICの他のアスペクトをチェックすることを含み得る。
【００４４】
オプションで、ブロック520で、CSPは、メモリから消去され得る。図3に示すように、これは、メモリに記憶されたCSPが存在するかどうかの決定を含み得る。あるいは、これは、メモリに記憶されたCSPが脅かされないことを保証するための自動処理の一部として行われることができる。
【００４５】
ブロック530で、CSPが生成される。そして、ブロック540で、CSPが安全なメモリに記憶される。いくつかの実施形態において、安全なメモリにCSPを記憶することは、安全なメモリに以前に記憶されたCSPを上書きすることを含み得る。
【００４６】
図4〜5に示した特定のステップは、安全なCSPの生成のための方法を示す例示的なシーケンスを提供している、ということが理解されるべきである。代替の実施形態は、示した実施形態に対する改変を含み得る。たとえば、代替の実施形態は、CSPが書き込み/消去から保護されることを保証するための追加のステップを含み得る。さらに、追加の特徴が、特定の応用例に依存して追加または削除され得る。当業者は、多くの変形例、変更、および代替例を認識するだろう。
【００４７】
本明細書において提供された技法は、従来の技法に対し、安全な製造、より安価な製造、および/または、開発者または製造者による悪意のある行為からの保護、といった一つまたは複数の利点を提供することができる。追加の利点は、鍵を変える必要をなくすことまたは減じること（すなわち、より少ないメンテナンス）、ソフトウェアにおける未知のエラーからの保護、および/または、余計なコストおよび電力消費を必要とし得るSIMカードのような安全な第三者デバイスの使用を回避する能力、を含むことができる。さらに、実施形態は、セキュリティは重要だが、SIM/モバイルデバイスのケースにおけるようにICがいくつかのアイデンティティを維持する必要のない、幅広い応用例に利用されることができる。
【００４８】
実施形態は、さまざまな応用例に利用されることができ、および/または、さまざまな特徴をサポートすることができる。たとえば、実施形態は、周辺機器とのマイクロプロセッサ通信を提供する内部での対称鍵の生成をサポートすることができる。実施形態はさらに、秘密/公開鍵ペアの生成をサポートすることができ、秘密鍵は保護され（たとえば、安全なメモリに書き込まれ）、公開鍵は公表される。実施形態はまた、外部での対称鍵の生成をサポートすることもできる。この後者のシナリオでは、対称鍵は次に、ソフトウェアに記憶されたハードコーディングされたKMS公開鍵を使用して鍵管理システム（KMS）と共有され得る。
【００４９】
上記説明では、例示の目的で、方法が特定の順序で説明された。代替の実施形態では、説明されたものとは異なる順序で方法が実行され得る、ということが理解されるべきである。上述された方法は、ハードウェアの構成要素によって実行されることができ、または、命令によってプログラムされた汎用または専用プロセッサまたはロジック回路といった機械に方法を実行させるために使用され得るプログラミングコードのような機械可読命令のシーケンスに組み込まれることができる、ということもまた理解されるべきである。これらの機械可読および/またはコンピュータ可読命令は、一つまたは複数の不揮発性記憶媒体、たとえば、CD-ROMまたは他のタイプの光学ディスク、フロッピーディスク、ROM、RAM、EPROM、EEPROM、磁気または光学カード、フラッシュメモリ、または、電子命令を記憶するのに適した他のタイプの機械可読媒体に記憶されることができる。あるいは、方法は、ハードウェアとソフトウェアとの組み合わせによって実行され得る。
【００５０】
開示されたシステム、方法、およびデバイスの、例示的かつ本願における好ましい実施形態が、本明細書において詳細に説明されたが、本発明の概念はそうでなくさまざまに具体化および採用されることができること、添付の請求項は従来技術によって限定されるようなものを除く変形例を含むように解釈されることを意図すること、が理解されるべきである。
【図１】
2014530418.tif 000004
【図２】
2014530418.tif 000005
【図３】
2014530418.tif 000006
【図４】
2014530418.tif 000007
【図５】
2014530418.tif 000008
【国際調査報告】
2014530418.tif 000009
2014530418.tif 000010