(57)【要約】  集積回路が記載される。集積回路は、ワンタイムプログラマブル不揮発性メモリ（３）と、ワンタイムプログラマブル不揮発性メモリ用のメモリコントローラ（７）とを備える。メモリコントローラは、集積回路内で生成された第１の乱数（図３ａの２２）をデバイス初期化サーバ（２）に送信するように構成される。メモリコントローラは、デバイス初期化サーバから、署名付きデバイス初期化メッセージ（図３ｂの２８）であって、署名付きデバイス初期化メッセージは、デバイス初期化メッセージ（図３ｂの２３）および対応する署名（図３ｂの２７）を含み、デバイス初期化メッセージは、第２の乱数（図３ａの２４）およびデバイス識別情報（図３ａの２５）を含む，署名付きデバイス初期化メッセージを受信することに応答して、第１の乱数と第２の乱数とが等しいか否か、および、署名が有効であるか否かを判定するように構成されている。メモリコントローラは、第１の乱数と第２の乱数とが等しく、署名が有効であるという判定に応答して、ワンタイムプログラマブル不揮発性メモリの第１の部分にデバイス識別情報をプログラムするように構成される。
2019507538.tif 000002
【特許請求の範囲】
【請求項１】
集積回路（１）であって、
ワンタイムプログラマブル不揮発性メモリ（３）と、
前記ワンタイムプログラマブル不揮発性メモリ用のメモリコントローラ（７）とを備え、
前記メモリコントローラは、
前記集積回路において生成された第１の乱数（２２）をデバイス初期化サーバ（２）に送信し、
前記デバイス初期化サーバから署名付きデバイス初期化メッセージ（２８）であって、前記署名付きデバイス初期化メッセージ（２８）は、デバイス初期化メッセージ（２３）および署名（２７）を含み、前記デバイス初期化メッセージは、第２の乱数（２４）およびデバイス識別情報（２５）を含む、署名付きデバイス初期化メッセージ（２８）を受信することに応答して、
前記第１の乱数（２２）と前記第２の乱数（２４）とが等しいか否か、および前記署名（２７）が有効であるか否かを判定し、
前記第１の乱数と前記第２の乱数とが等しく、前記署名が有効であるという判定に応答して、
前記ワンタイムプログラマブル不揮発性メモリの第１の部分（１４）に前記デバイス識別情報（２５）をプログラムするように構成されている、集積回路（１）。
【請求項２】
前記メモリコントローラ（７）は、
前記ワンタイムプログラマブル不揮発性メモリ（３）の前記第１の部分（１４）からデバイス識別情報（３１）を読み出し、
前記ワンタイムプログラマブル不揮発性メモリの前記第１の部分から読み出された前記デバイス識別情報（３１）と、前記ワンタイムプログラマブル不揮発性メモリの前記第１の部分にプログラムされている前記デバイス識別情報（２５）とが等しいか否かを判定し、
前記デバイス識別情報（２５，３１）が等しいという判定に応答して、
前記ワンタイムプログラマブル不揮発性メモリの第２の部分（１５）に識別情報有効値（３２）をプログラムするようにさらに構成されている、請求項１に記載の集積回路。
【請求項３】
前記メモリコントローラは、
前記ワンタイムプログラマブル不揮発性メモリ（３）の前記第２の部分（１５）から識別情報有効値（３３）を読み出し、
前記ワンタイムプログラマブル不揮発性メモリの前記第２の部分から読み出された前記識別情報有効値と、前記ワンタイムプログラマブル不揮発性メモリの前記第２の部分にプログラムされている前記識別情報有効値（３２）とが等しいか否かを判定し、
前記識別情報有効値（３２，３３）が等しいという判定に応答して、
デバイス初期化が完了したことを確認するためのメッセージ（３４）を前記デバイス初期化サーバ（２）に送信するようにさらに構成されている、請求項２に記載の集積回路。
【請求項４】
乱数（２２，３５）を生成し、前記乱数を前記メモリコントローラ（７）に提供するように構成された乱数生成器（６）をさらに備える、請求項１〜３のいずれか一項に記載の集積回路。
【請求項５】
前記メモリコントローラ（７）から署名を含むデータ（２３，３８）を受信することに応答して、前記署名を検証するように構成された公開暗号エンジン（８）をさらに備える、請求項１〜４のいずれか一項に記載の集積回路。
【請求項６】
前記ワンタイムプログラマブル不揮発性メモリの値に依存して、１つまたは複数の機能（２０）を有効化するように構成されている機能イネーブラ（５）をさらに備える、請求項１〜５のいずれか一項に記載の集積回路。
【請求項７】
前記ワンタイムプログラマブル不揮発性メモリ（３）は、前記集積回路のいずれの有効化可能な機能（複数可）が有効化されているかを示す値を記憶する第３の部分（１６）と、
前記集積回路のいずれの無効化可能な機能（複数可）が無効化されているかを示す値を記憶するための第４の部分（１７）とをさらに備える、請求項１〜６のいずれか一項に記載の集積回路。
【請求項８】
前記メモリコントローラ（７）は、
前記集積回路内で生成された第３の乱数（３５）、ならびに、前記ワンタイムプログラマブルメモリの前記第１の部分（１４）、前記第２の部分（１５）、前記第３の部分（１６）および前記第４の部分（１７）の内容（３１，３３，３６，３７）を、機構有効化サーバ（２）に送信し、
前記機構有効化サーバから、署名付き機能有効化メッセージ（４６）であって、前記署名付き機構有効化メッセージは、機能有効化メッセージ（３８）および署名（４５）を含み、前記機能有効化メッセージは、第４の乱数（３９）、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機能有効化メッセージ（４６）を受信することに応答して、
前記第３の乱数と前記第４の乱数とが等しいか否か、および前記署名が有効であるか否かを判定し、
前記第３の乱数（３５）と前記第４の乱数（３９）とが等しく、前記署名が有効であるという判定に応答して、
前記ワンタイムプログラマブル不揮発性メモリの前記第３の部分に前記機能有効化値（４２）をプログラムするように構成されている、請求項７に記載の集積回路。
【請求項９】
前記メモリコントローラ（７）は、
前記集積回路内で生成された第５の乱数、ならびに、前記ワンタイムプログラマブルメモリの前記第１の部分（１４）、前記第２の部分（１５）、前記第３の部分（１６）および前記第４の部分（１７）の内容（３１，３３，３６，３７）を、機構無効化サーバ（２）に送信し、
機構無効化サーバから、署名付き機能無効化メッセージであって、前記署名付き機構無効化メッセージは、機構無効化メッセージおよび署名を含み、前記機構無効化メッセージは、第６の乱数、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機能無効化メッセージを受信することに応答して、
前記第５の乱数と前記第６の乱数とが等しいか否か、および前記署名が有効であるか否かを判定し、
前記第５の乱数と前記第６の乱数とが等しく、前記署名が有効であるという判定に応答して、
前記ワンタイムプログラマブル不揮発性メモリの前記第４の部分に前記無効化値（４３）をプログラムするように構成されている、請求項７または８に記載の集積回路。
【請求項１０】
前記ワンタイムプログラマブル不揮発性メモリ（３）は、
ユーザ定義の目的のための値を記憶するための第５の部分（１８）をさらに備え、
前記メモリコントローラ（７）は、
前記集積回路において生成された第７の乱数、および、前記ワンタイムプログラマブルメモリの前記第５の部分（１８）の内容（３１，３３，３６，３７）をユーザサーバ（２）に送信し、
前記ユーザサーバから、署名付きユーザ定義メッセージであって、前記署名付きユーザ定義メッセージは、ユーザ定義メッセージおよび署名を含み、前記ユーザ定義メッセージは、第８の乱数を、推定デバイス識別情報（４０）、推定識別情報有効値（４１）およびユーザ定義値を含む、署名付きユーザ定義メッセージを受信することに応答して、
前記第７の乱数と前記第８の乱数とが等しいか否か、および前記署名が有効であるか否かを判定し、
前記第７の乱数と前記第８の乱数とが等しく、前記署名が有効であるという判定に応答して、
前記ワンタイムプログラマブル不揮発性メモリの前記第５の部分に前記ユーザ定義値をプログラムするように構成されている、請求項１〜９のいずれか一項に記載の集積回路。
【請求項１１】
デジタル集積回路である、請求項１〜１０のいずれか一項に記載の集積回路。
【請求項１２】
混合信号集積回路である、請求項１〜１０のいずれか一項に記載の集積回路。
【請求項１３】
不揮発性ランダムアクセスメモリを含む、請求項１〜１２のいずれか一項に記載の集積回路。
【請求項１４】
マイクロコントローラまたはシステムオンチップである、請求項１〜１３のいずれか一項に記載の集積回路。
【請求項１５】
請求項１〜１４のいずれか一項に記載の少なくとも１つの集積回路を含む、産業システムまたは自動車両。
【請求項１６】
サーバ（２；６２）であって、
少なくとも１つのプロセッサと、
メモリとを備え、
前記サーバは、集積回路（１）から第１の乱数（２２）を受信することに応答して、
署名付きデバイス初期化メッセージ（２８）であって、前記署名付きデバイス初期化メッセージは、デバイス初期化メッセージ（２３）と、対応する署名（２７）とを含み、前記デバイス初期化メッセージは、前記乱数のコピー（２４）とデバイス識別情報（２５）とを含む、署名付きデバイス初期化メッセージを生成し、
前記署名付きデバイス初期化メッセージ（２８）を前記集積回路に送信するように構成されている、サーバ（２；６２）。
【請求項１７】
前記サーバは、集積回路から、
第３の乱数（３５）、
デバイス識別情報（３１）、
前記デバイス識別情報が有効であることを示す識別情報有効値（３３）、
前記集積回路のいずれの有効化可能な機能（複数可）が有効化されているかを示す値（３６）、および
前記集積回路のいずれの無効化可能な機能（複数可）が無効化されているかを示す値（３７）を受信することに応答して、
署名付き機能有効化メッセージ（４６）であって、前記署名付き機能有効化メッセージは、機能有効化メッセージ（３８）、および、対応する署名（４５）を含み、前記機能有効化メッセージは、第４の乱数（３９）、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機能有効化メッセージ（４６）を前記集積回路に送信するように構成されている、請求項１６に記載のサーバ（２；６２）。
【請求項１８】
前記サーバは、集積回路から、
第５の乱数、
デバイス識別情報（３１）、
前記デバイス識別情報が有効であることを示す識別情報有効値（３３）、
前記集積回路のいずれの有効化可能な機能（複数可）が有効化されているかを示す値（３６）、および
前記集積回路のいずれの無効化可能な機能（複数可）が無効化されているかを示す値（３７）を受信することに応答して、
署名付き機能無効化メッセージであって、前記署名付き機能無効化メッセージは、機能無効化メッセージ、および、対応する署名を含み、前記機能無効化メッセージは、第６の乱数、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機能無効化メッセージを前記集積回路に送信するように構成されている、請求項１６または１７に記載のサーバ（２；６２）。
【請求項１９】
前記サーバは、集積回路から、
第７の乱数、
デバイス識別情報（３１）、
前記デバイス識別情報が有効であることを示す識別情報有効値（３３）、および
ユーザ定義フィールドの値を受信することに応答して、
署名付きユーザ定義メッセージであって、前記署名付きユーザ定義メッセージは、ユーザ定義メッセージおよび署名を含み、前記ユーザ定義メッセージは、第８の乱数、推定デバイス識別情報（４０）、推定識別情報有効値（４１）およびユーザ定義値を含む、署名付きユーザ定義メッセージを前記集積回路に送信するように構成されている、請求項１６，１７または１８に記載のサーバ（２；６２）。
【請求項２０】
デバイス初期化システムであって、
請求項１〜１５のいずれか一項に記載の集積回路と、
前記集積回路と通信する、請求項１６〜１８のいずれか一項に記載のサーバとを備える、デバイス初期化システム。
【請求項２１】
機構有効化サーバ（２；６２）であって、
少なくとも１つのプロセッサと、
メモリとを備え、
前記サーバは、集積回路から、
第３の乱数（３５）、
デバイス識別情報（３１）、
前記デバイス識別情報が有効であることを示す識別情報有効値（３３）、
前記集積回路のいずれの有効化可能な機能（複数可）が有効化されているかを示す値（３６）、および
前記集積回路のいずれの無効化可能な機能（複数可）が無効化されているかを示す値（３７）を受信することに応答して、
署名付き機能有効化メッセージ（４６）であって、前記署名付き機能有効化メッセージは、機能有効化メッセージ（３８）、および、第３の署名（４５）を含み、前記機能有効化メッセージは、第４の乱数（３９）、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機能有効化メッセージ（４６）を前記集積回路に送信するように構成されている、機構有効化サーバ（２；６２）。
【請求項２２】
機構有効化システムであって、
請求項１〜１５のいずれか一項に記載の集積回路と、
前記集積回路と通信する、請求項１７または１８または請求項２１に記載のサーバとを備える、機構有効化システム。
【請求項２３】
機構無効化サーバ（２；６２）であって、
少なくとも１つのプロセッサと、
メモリとを備え、
前記サーバは、集積回路から、
第５の乱数、
デバイス識別情報（３１）、
前記デバイス識別情報が有効であることを示す識別情報有効値（３３）、
前記集積回路のいずれの有効化可能な機能（複数可）が有効化されているかを示す値（３６）、および
前記集積回路のいずれの無効化可能な機能（複数可）が無効化されているかを示す値（３７）を受信することに応答して、
署名付き機能無効化メッセージであって、前記署名付き機能有効化メッセージは、機能無効化メッセージ、および、第５の署名を含み、前記機能無効化メッセージは、第６の乱数、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機能無効化メッセージを前記集積回路に送信するように構成されている、機構無効化サーバ（２；６２）。
【請求項２４】
機構無効化システムであって、
請求項１〜１５のいずれか一項に記載の集積回路と、
前記集積回路と通信する、請求項１８または請求項２３に記載のサーバとを備える、機構無効化システム。
【請求項２５】
集積回路を初期化する方法であって、
デバイス初期化サーバ（２）に第１の乱数（２２）を送信するステップと、
前記デバイス初期化サーバから、デバイス初期化メッセージ（２３）および対応する署名（２７）を含む署名付きデバイス初期化メッセージ（２８）を受信するステップであって、前記デバイス初期化メッセージ（２３）は、第２の乱数（２４）およびデバイス識別情報（２５）を含む、受信するステップと、
前記第１の乱数（２２）と前記第２の乱数（２４）とが等しいか否かを判定するステップと、
前記署名（２７）が有効であるか否かを判定するステップと、
前記第１の乱数と前記第２の乱数とが等しく、前記署名が有効であるという判定に応答して、ワンタイムプログラマブル不揮発性メモリ（３）の第１の部分（１４）に前記デバイス識別情報（２５）をプログラムするステップとを含む、方法。
【請求項２６】
前記ワンタイムプログラマブル不揮発性メモリ（３）の前記第１の部分（１４）から前記デバイス識別情報（３１）を読み出すステップと、
前記ワンタイムプログラマブル不揮発性メモリの前記第１の部分から読み出された前記デバイス識別情報（３１）と、前記ワンタイムプログラマブル不揮発性メモリの前記第１の部分にプログラムされている前記デバイス識別情報（２５）とが等しいか否かを判定するステップと、
前記デバイス識別情報（２５，３１）が等しいという判定に応答して、前記ワンタイムプログラマブル不揮発性メモリの第２の部分（１５）に識別情報有効値（３２）をプログラムするステップとをさらに含む、請求項２５に記載の方法。
【請求項２７】
前記ワンタイムプログラマブル不揮発性メモリ（３）の前記第２の部分（１５）から識別情報有効値（３３）を読み出すステップと、
前記読み出し専用メモリの前記第２の部分から読み出された前記識別情報有効値と、前記ワンタイムプログラマブル不揮発性メモリの前記第２の部分にプログラムされている前記識別情報有効値（３２）とが等しいか否かを判定するステップと、
前記識別情報有効値（３２，３３）が等しいという判定に応答して、
デバイス初期化が完了したことを確認するためのメッセージ（３４）を前記デバイス初期化サーバに送信するステップとをさらに含む、請求項２６に記載の方法。
【請求項２８】
前記集積回路内で生成された第３の乱数（３５）、ならびに、前記ワンタイムプログラマブルメモリの前記第１の部分（１４）、前記第２の部分（１５）、前記第３の部分（１６）および前記第４の部分（１７）の内容（３１，３３，３６，３７）を、機構有効化サーバ（２）に送信するステップと、
前記機構有効化サーバから、署名付き機能有効化メッセージ（４６）であって、前記署名付き機能有効化メッセージは、機能有効化メッセージ（３８）および対応する署名（４５）を含み、前記機能有効化メッセージは、第４の乱数（３９）、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機能有効化メッセージ（４６）を受信することに応答して、
前記第３の乱数と前記第４の乱数とが等しいか否か、および前記署名が有効であるか否かを判定するステップと、
前記第３の乱数（３５）と前記第４の乱数（３９）とが等しく、前記署名（４５）が有効であるという判定に応答して、
前記ワンタイムプログラマブルメモリの前記第３の部分に前記機能有効化値（４２）をプログラムするステップとをさらに含む、請求項２８に記載の方法。
【請求項２９】
前記集積回路内で生成された第５の乱数、ならびに、前記ワンタイムプログラマブルメモリの前記第１の部分（１４）、前記第２の部分（１５）、前記第３の部分（１６）および前記第４の部分（１７）の内容（３１，３３，３６，３７）を、機構無効化サーバに送信するステップと、
前記機構無効化サーバから、署名付き機構無効化メッセージであって、前記署名付き機構無効化メッセージは、機構無効化メッセージおよび対応する署名を含み、前記機構無効化メッセージは、第６の乱数、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機構無効化メッセージを受信することに応答して、
前記第５の乱数と前記第６の乱数とが等しいか否か、および前記署名が有効であるか否かを判定するステップと、
前記第５の乱数と前記第６の乱数とが等しく、前記署名が有効であるという判定に応答して、
前記ワンタイムプログラマブルメモリの前記第４の部分に前記無効化値（４３）をプログラムするステップとをさらに含む、請求項２８に記載の方法。
【請求項３０】
前記集積回路内で生成された第７の乱数、ならびに、前記ワンタイムプログラマブルメモリの第５の部分（１８）の内容（３１，３３，３６，３７）を、ユーザサーバに送信するステップと、
前記ユーザサーバから、署名付きユーザ定義フィールドメッセージであって、前記署名付き機構無効化メッセージは、機構無効化メッセージおよび対応する署名を含み、前記ユーザ定義フィールドメッセージは、第８の乱数、推定デバイス識別情報（４０）、推定識別情報有効値（４１）およびユーザ定義フィールド値を含む、署名付きユーザ定義フィールドメッセージを受信することに応答して、
前記第７の乱数と前記第８の乱数とが等しいか否か、および前記署名が有効であるか否かを判定するステップと、
前記第７の乱数と前記第８の乱数とが等しく、前記署名が有効であるという判定に応答して、
前記ワンタイムプログラマブルメモリの前記第５の部分に前記ユーザ定義フィールド値をプログラムするステップとをさらに含む、請求項２９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、マイクロコントローラまたはシステムオンチップなどの集積回路に関する。
【背景技術】
【０００２】
背景
偽造は、半導体業界および相手先商標製品製造業者（ＯＥＭ）にとってますます問題となっている。
【０００３】
この問題には２つの側面がある。第１の側面は、偽造集積回路およびそのような集積回路におけるグレーマーケットに関する。第２の側面は、ＯＥＭが集積回路を組み込んだ製品を作製し市場に出すという事実から生じる。正規品、盗難品（例えば、製造工場から、輸送中にまたは倉庫から）または偽造品であるかもしれない集積回路を利用した偽造品が作製され、販売されている可能性がある。
【０００４】
概念的には、偽造集積回路を製造する最も簡単な方法は、真正の集積回路を複製または模造することである。しかし、この手法は技術的に煩わしく、法外に高価であり、それによって偽造者にとっては非常に魅力のないものになっている。
【０００５】
しかし、他の手法ははるかに単純である。たとえば、製造工場または倉庫から集積回路を盗むだけの方法が最も簡単で最も安価である。これは、「ファブレス」および「ファブライト」製造環境、すなわち供給元がデバイス製造を、独立して実行する製造工場に外注する構成において偽造者にとって特に魅力的である。さらに、製造工場は、その後、グレーマーケットに置くことができる、供給元に知られていない余分な集積回路を製造することができる場合がある。
【０００６】
この問題に対処するために、様々な偽造対策が提案されている。これらの手法の多くは、製造工場または他の場所に配置されたトラステッドサーバを利用して、集積回路内の機構を安全な方法で有効化し、および／または製造を追跡する。
【０００７】
これらの手法の中には、機構を構成および有効化するために使用され、パスフレーズまたは暗号化メッセージを使用してのみアクセスまたはブローできるオンチップヒューズ読み出し専用メモリを利用するものがある。中国特許出願公開第１０３１８７０９５号明細書、米国特許出願公開第２００６／１３１７４３号明細書および米国特許出願公開第２０１４／０１８５７９５号明細書を参照されたい。特定の手法は、例えば、国際公開第２０１５／１２４６７３号パンフレットに記載されているように、物理的複製不可能関数（ＰＵＦ）または集積回路に一意の他のコードを利用することができる。
【発明の概要】
【課題を解決するための手段】
【０００８】
概要
本発明の第１の態様によれば、ワンタイムプログラマブル不揮発性メモリと、ワンタイムプログラマブル不揮発性メモリ用のメモリコントローラとを備える集積回路が提供される。メモリコントローラは、集積回路内で生成された第１の乱数をデバイス初期化サーバに送信するように構成される。メモリコントローラは、デバイス初期化サーバから、第２の乱数およびデバイス識別情報を含むデバイス初期化メッセージと、対応する署名（または「第１の署名」）とを含む署名付きメッセージを受信することに応答して、第１の乱数と第２の乱数とが等しいか否か、および、署名が有効であるか否かを判定するように構成されている。メモリコントローラは、第１の乱数と第２の乱数とが等しく、署名が有効であるという判定に応答して、ワンタイムプログラマブル不揮発性メモリの第１の部分にデバイス識別情報をプログラムするように構成される。
【０００９】
したがって、集積回路は、秘密鍵またはパスフレーズを集積回路に記憶する必要なしに、平文署名付きメッセージを使用して初期化することができる。
【００１０】
ワンタイムプログラマブル不揮発性メモリは、ヒューズ、アンチヒューズ、または他の類似の形態のワンタイムプログラマブル不揮発性メモリ素子に基づく読み出し専用メモリであってもよい。
【００１１】
デバイス初期化サーバは、好ましくは、トラステッドサーバである。デバイス初期化サーバは、ハードウェアセキュリティモジュール（ＨＳＭ）またはサーバを安全にするための他の構成を有することができる。デバイス初期化サーバは、ローカルに配置され得、すなわちオフチップであるが、集積回路と同じ場所（半導体製造工場など）に配置されてもよいし、または、ＩＰ所有者または供給元サイトまたは許可された代理人もしくは代表者のサイトなどの遠隔地に配置されてもよい。
【００１２】
デバイス初期化メッセージは、第２の乱数とデバイス識別情報との連結であってもよい。署名付きデバイス初期化メッセージは、デバイス初期化メッセージと署名との連結であってもよい。
【００１３】
メモリコントローラは、例えば、ハードウェア実装論理、レジスタなどを含むハードウェア回路として、またはワンタイムプログラマブル不揮発性メモリの制御専用のＣＰＵサブシステム、すなわち、メインＣＰＵサブシステムとは別個のＣＰＵサブシステムを使用するソフトウェアにおいて実装されてもよい。
【００１４】
メモリコントローラは、ワンタイムプログラマブル不揮発性メモリの第１の部分からデバイス識別情報を読み出し、ワンタイムプログラマブル不揮発性メモリの第１の部分から読み出されたデバイス識別情報と、ワンタイムプログラマブル不揮発性メモリの第１の部分にプログラムされたデバイス識別情報とが等しい、すなわち、同じであるか否かを判定するようにさらに構成されてもよい。メモリコントローラは、デバイス識別情報が等しいという判定に応答して、識別情報有効値をワンタイムプログラマブル不揮発性メモリの第２の部分にプログラムするようにさらに構成することができる。
【００１５】
メモリコントローラは、ワンタイムプログラマブル不揮発性メモリの第２の部分から識別情報有効値を読み出し、ワンタイムプログラマブル不揮発性メモリの第２の部分から読み出された識別情報有効値と、ワンタイムプログラマブル不揮発性メモリの第２の部分にプログラムされた識別情報有効値とが等しいか否かを判定するようにさらに構成されてもよい。メモリコントローラは、識別情報有効値が等しいという判定に応答して、デバイス初期化が完了したことを確認するメッセージをデバイス初期化サーバに送信するようにさらに構成することができる。
【００１６】
集積回路は、乱数を生成してメモリコントローラに提供するように構成された乱数生成器をさらに備えることができる。
【００１７】
乱数生成器は真性乱数生成器であることが好ましい。
乱数生成器は、メモリコントローラからの要求に応答して、乱数を生成してメモリコントローラに提供することができる。
【００１８】
集積回路は、メモリコントローラからのデータを受信することに応答して、データに応じてダイジェストを構築するように構成された公開暗号エンジンをさらに備えることができる。例えば、データは、第２の乱数およびデバイス識別情報を含むデバイス初期化メッセージを含むことができる。
【００１９】
集積回路は、ワンタイムプログラマブル不揮発性メモリの値に依存して、１つまたは複数の機能（または「機構」）を有効化（または「アクティブ」にする）ための機能イネーブラをさらに備えることができる。
【００２０】
メモリは、集積回路のいずれの有効化可能な機能（複数可）が有効化されているかを示す値を記憶する第３の部分と、集積回路のいずれの無効化可能な機能（複数可）が無効化されているかを示す値を記憶するための第４の部分とをさらに備えることができる。集積回路のいずれの無効化可能な機能（複数可）が無効化されているかを示す値は、無効化可能な機能（複数可）がいずれも無効化されていないことを示す値であってもよい。
【００２１】
メモリコントローラは、集積回路内で生成された第３の乱数、ならびに、ワンタイムプログラマブル不揮発性メモリの第１の部分、第２の部分、第３の部分および第４の部分のメモリの内容を、機構起動サーバ（デバイス初期化サーバと同じでも異なってもよい）に送信するように構成することができる。メモリコントローラは、機構起動サーバから、署名付き機能有効化メッセージであって、署名付き機能有効化メッセージは、機能有効化メッセージおよび対応する署名（または「第２の署名」）を含み、機能有効化メッセージは、第４の乱数、推定デバイス識別情報、推定識別情報有効値、機能有効化値および無効化値を含む、署名付き機能有効化メッセージを受信することに応答して、第３の乱数と第４の乱数とが等しいか否か、および署名（すなわち第２の署名）が有効であるか否かを判定するように構成することができる。メモリコントローラは、第３の乱数と第４の乱数とが等しく、署名（すなわち第２の署名）が有効であるという判定に応答して、ワンタイムプログラマブル不揮発性メモリの第３の部分に機能有効化値をプログラムするように構成することができる。
【００２２】
メモリコントローラは、集積回路内で生成された第５の乱数、ならびに、ワンタイムプログラマブルメモリの第１の部分、第２の部分、第３の部分および第４の部分の内容を、機構停止サーバに送信し、機構停止サーバから、署名付き機構無効化メッセージであって、署名付き機構無効化メッセージは、機構無効化メッセージおよび署名を含み、機構無効化メッセージは、第６の乱数、推定デバイス識別情報、推定識別情報有効値、機能有効化値および無効化値を含む、署名付き機構無効化メッセージを受信することに応答して、第５の乱数と第６の乱数とが等しいか否か、および署名が有効であるか否かを判定し、第５の乱数と第６の乱数とが等しく、署名が有効であるという判定に応答して、ワンタイムプログラマブル不揮発性メモリの第４の部分に無効化値をプログラムするように構成することができる。機構停止は、機能を有しない集積回路をもたらす可能性のあるすべての無効化可能な機構を停止することを含むことができる。
【００２３】
本発明の第２の態様によれば、デバイス識別情報を記憶する第１の部分と、デバイス識別情報が有効であることを示す識別情報有効値を記憶する第２の部分と、集積回路のいずれの有効化可能な機能（複数可）が有効化されているかを示す値を記憶する第３の部分と、集積回路のいずれの無効化可能な機能（複数可）が無効化されているかを示す値を記憶する第４の部分とを含むワンタイムプログラマブル不揮発性メモリを備える集積回路が提供される。この値は、機能が無効化されていないことを示す場合がある。集積回路は、ワンタイムプログラマブル不揮発性メモリ用のメモリコントローラを備える。メモリコントローラは、集積回路内で生成された第３の乱数、ならびに、ワンタイムプログラマブル不揮発性メモリの第１の部分、第２の部分、第３の部分および第４の部分のメモリの内容を、機構起動サーバ（デバイス初期化サーバと同じでも異なってもよい）に送信するように構成することができる。メモリコントローラは、機構起動サーバから、署名付き機能有効化メッセージであって、署名付き機能有効化メッセージは、機能有効化メッセージおよび対応する署名（または「第２の署名」）を含み、機能有効化メッセージは、第４の乱数、推定デバイス識別情報、推定識別情報有効値、機能有効化値および無効化値を含む、署名付き機能有効化メッセージを受信することに応答して、第３の乱数と第４の乱数とが等しいか否か、および署名（すなわち第２の署名）が有効であるか否かを判定するように構成することができる。メモリコントローラは、第３の乱数と第４の乱数とが等しく、署名（すなわち第２の署名）が有効であるという判定に応答して、ワンタイムプログラマブル不揮発性メモリの第３の部分に機能有効化値をプログラムするように構成することができる。
【００２４】
集積回路は、デジタル集積回路であってもよい。集積回路はメモリを含むことができる。メモリは、ＤＲＡＭまたはＳＲＡＭなどの揮発性メモリであってもよい。メモリは、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＮＯＲフラッシュまたはＮＡＮＤフラッシュなどの不揮発性メモリであってもよい。集積回路は、マイクロプロセッサ、マイクロコントローラまたは信号処理チップなどのマイクロ集積回路であってもよい。集積回路は、フラッシュメモリを内蔵したマイクロコントローラであってもよい。集積回路は、フラッシュメモリを内蔵していないプロセッサであってもよい。集積回路はシステムオンチップ（ＳｏＣ）であってもよい。集積回路は、特定用途向け集積回路チップ、標準論理またはディスプレイドライバなどの論理集積回路であってもよい。集積回路は、固定論理集積回路であってもよい。集積回路は、フィールドアレイゲートアレイ（ＦＰＧＡ）を含むことができる。
【００２５】
本発明の第３の態様によれば、本発明の第１の態様または第２の態様による少なくとも１つの集積回路を含む製品またはシステムが提供される。
【００２６】
製品は、工場、工場用の制御装置、ロボットまたはロボット用の制御装置などの産業システムであってもよい。
【００２７】
製品は車両であってもよい。製品は自動車両であってもよい。自動車両は、オートバイ、自動車（「車」と呼ばれることもある）、ミニバス、バス、トラックまたは大型トラックであってもよい。自動車両は、内燃機関および／または１つもしくは複数の電気モータによって動力を供給されてもよい。製品は、駆動ユニット（「機関車」と呼ばれることもある）または客車などの列車車両であってもよい。この製品は、飛行機または宇宙船などの航空宇宙機であってもよい。
【００２８】
製品は、輸送システムで使用するための信号装置であってもよい。信号装置は、車外であってもよく、例えば、列車のためのトラックサイド信号であってもよい。
【００２９】
製品は、心拍数、呼吸数などの生命徴候を監視するためのモニタなどの医療システムであってもよい。医療システムは、遠隔デバイスと、遠隔デバイスとの無線通信が可能なローカルデバイス（「ホームデバイス」）とを含むことができる。遠隔デバイスは埋め込み可能であってもよい。
【００３０】
この製品は、ネットワーク機能、好ましくは無線ネットワーク機能を備えることができる。ネットワーク接続可能な製品には、デバイス識別情報、好ましくは一意の識別情報が与えられてもよい。識別可能なネットワーク接続可能製品は、ＩｏＴ（モノのインターネット）またはネットワーク接続されたデバイスの他のシステムに組み込むことができるように構成することができる。
【００３１】
本発明の第４の態様によれば、少なくとも１つのプロセッサおよびメモリを備えるデバイス初期化サーバが提供される。サーバは、集積回路から第１の乱数を受信することに応答して、署名付きデバイス初期化メッセージであって、署名付きデバイス初期化メッセージは、デバイス初期化メッセージと、デバイス初期化メッセージのダイジェストから構築される対応する署名（「第１の署名」）とを含み、デバイス初期化メッセージは、乱数のコピーとデバイス識別情報とを含む、署名付きデバイス初期化メッセージを生成し、署名付きデバイス初期化メッセージを集積回路に送信するように構成されている。
【００３２】
デバイス初期化サーバは、署名付きデバイス初期化メッセージを直接、または、集積回路と同じ位置にある中間デバイス、例えばゲートウェイ、無線ネットワークハブもしくはルータ、またはスマートフォンなどの移動通信デバイスを介して、デバイスに送信することができる。ゲートウェイ、ハブ、ルータ、または通信デバイスは、集積回路と直接、例えば、有線で通信することができる。
【００３３】
デバイス初期化中、集積回路は、集積回路製造工場、集積回路パッケージ工場、集積回路試験工場、輸送機関、倉庫、または他の半導体製造または供給元サイトに配置することができる。デバイス初期化中、集積回路は、組立工場、パッケージ工場、試験工場、輸送機関または倉庫などのＯＥＭ制御サイトに配置することができる。デバイス初期化中、集積回路は、店舗、輸送機関または倉庫などの販売関連サイトに配置することができる。デバイス初期化中、集積回路は、家庭、店舗、オフィス、工場または倉庫などの最終顧客サイトに配置することができる。
【００３４】
デバイス初期化サーバは、暗号プロセッサを含むことができる。デバイス初期化サーバは、ストレージを備えるか、またはストレージを設けられもよい。ストレージは、デバイス識別情報のデータベースを記憶することができる。デバイス初期化サーバは、未使用のデバイス識別情報を引き出し、デバイス初期化メッセージにデバイス識別情報として未使用のデバイス識別情報を含めるように構成することができる。デバイス初期化サーバは、デバイス識別情報が割り当てられたデータベースを更新するように構成することができる。デバイス初期化サーバは、デバイスの初期化が行われる識別情報またはロケーション、例えば、製造工場、パッケージ工場または試験工場、ＯＥＭサイトなどの識別情報に依存して未使用のデバイス識別情報を引き出すように構成されてもよい。
【００３５】
デバイス初期化サーバは、集積回路から第３の乱数、デバイス識別情報、デバイス識別情報が有効であることを示す識別情報有効値、いずれの有効化可能な機能（複数可）が有効化されているかを示す値（値は、いずれの機能も有効化されていないことを示す場合がある）、および、いずれの無効化可能な機能（複数可）が無効化されているかを示す値（値は、いずれの機能も無効化されていないことを示す場合がある）を受信することに応答して、署名付き機能有効化メッセージであって、署名付き機能有効化メッセージは、機能有効化メッセージ、および、機能有効化メッセージのダイジェストから構築される署名（「第２の署名」）を含み、機能有効化メッセージは、第４の乱数、推定デバイス識別情報、推定識別情報有効値、機能有効化値および無効化値を含む、署名付き機能有効化メッセージを集積回路に送信するように構成することができる。したがって、デバイス初期化サーバはまた、機構起動サーバとして使用されてもよい。
【００３６】
本発明の第５の態様によれば、少なくとも１つのプロセッサおよびメモリを備える機構起動サーバが提供される。サーバは、集積回路から第３の乱数、デバイス識別情報、デバイス識別情報が有効であることを示す識別情報有効値、いずれの機能（複数可）が有効化されているかを示す値（値は、いずれの機能も有効化されていないことを示す場合がある）、および、いずれの機能（複数可）が無効化されているかを示す値（値は、いずれの機能も無効化されていないことを示す場合がある）を受信することに応答して、署名付き機能有効化メッセージであって、署名付き機能有効化メッセージは、機能有効化メッセージ、および、機能有効化メッセージのダイジェストから構築される署名（「第２の署名」）を含み、機能有効化メッセージは、第４の乱数、推定デバイス識別情報、推定識別情報有効値、機能有効化値および無効化値を含む、署名付き機能有効化メッセージを集積回路に送信するように構成される。
【００３７】
機構起動サーバは、署名付き機能有効化メッセージを直接、または、集積回路と同じ位置にある中間デバイス、例えばゲートウェイ、無線ネットワークハブもしくはルータ、またはスマートフォンなどの移動通信デバイスを介して、デバイスに送信することができる。ゲートウェイ、ハブ、ルータ、または通信デバイスは、集積回路と直接、例えば、有線で通信することができる。
【００３８】
本発明の第６の態様によれば、集積回路のワンタイムプログラマブル不揮発性メモリの汎用部分をプログラムするためのサーバであって、少なくとも１つのプロセッサおよびメモリを備える、サーバが提供される。サーバは、集積回路から、第５の乱数、デバイス識別情報、デバイス識別情報が有効であることを示す識別情報有効値、ワンタイムプログラマブル不揮発性メモリの汎用部分の値を受信することに応答して、署名付き汎用値メッセージであって、署名付き汎用値メッセージは、汎用値メッセージと、汎用値メッセージのダイジェストから構築される署名（「第３の署名」）とを含み、汎用値メッセージは、第６の乱数と、推定デバイス識別情報と、推定識別情報有効値と、汎用値とを含む、署名付き汎用値メッセージを集積回路に送信するように構成されている。
【００３９】
本発明の第７の態様によれば、少なくとも１つのプロセッサおよびメモリを備える機構停止サーバが提供される。サーバは、集積回路から第７の乱数、デバイス識別情報、デバイス識別情報が有効であることを示す識別情報有効値、いずれの機能（複数可）が有効化されているかを示す値、および、いずれの機能（複数可）が無効化されているかを示す値を受信することに応答して、署名付き機構無効化メッセージであって、署名付き機構無効化メッセージは、機構無効化メッセージ、および、機構無効化メッセージのダイジェストから構築される署名（「第４の署名」）を含み、機構無効化メッセージは、第８の乱数、推定デバイス識別情報、推定識別情報有効値、機能有効化値および機能無効化値を含む、署名付き機能有効化メッセージを集積回路に送信するように構成される。
【００４０】
本発明の第８の態様によれば、集積回路と、集積回路を初期化し、集積回路内の機構（複数可）を有効化する少なくとも１つのサーバとを備えるデバイス初期化システムおよび／または機構有効化システムが提供される。
【００４１】
システムは、集積回路を初期化するための第１のサーバと、集積回路内の機構（複数可）を有効化するための第２の異なるサーバとを備えることができる。第１のサーバおよび第２のサーバには、少なくとも複数のデバイス識別情報と、随意選択的に、各デバイス識別情報について、１つまたは複数の有効化された機能から成るセットとを記憶する共通データベースを提供されることが好ましい。
【００４２】
デバイス初期化に第１の鍵対を使用することができ、第２の異なる鍵対を機構起動に使用することができる。機構起動には、複数の異なる鍵対から成る２つ以上のセットを使用することができる。第３の鍵対または第３の鍵対セットを、汎用ヒューズをプログラムするために使用することができる。第４の鍵対または第４の鍵対セットを、無効化ヒューズをプログラムするために使用することができる。
【００４３】
図面の簡単な説明
ここで、本発明の特定の実施形態を、添付の図面を参照して例として以下に説明する。
【図面の簡単な説明】
【００４４】
【図１】ワンタイムプログラマブル不揮発性メモリと、ワンタイムプログラマブル不揮発性メモリ用のメモリコントローラとを含む集積回路、およびトラステッドサーバの概略ブロック図である。
【図２】デバイス識別情報を初期化する方法のプロセスフロー図である。
【図３ａ】デバイス識別情報の初期化中のステップを示す図である。
【図３ｂ】デバイス識別情報の初期化中のステップを示す図である。
【図３ｃ】デバイス識別情報の初期化中のステップを示す図である。
【図３ｄ】デバイス識別情報の初期化中のステップを示す図である。
【図４】デバイス内の機能を有効化する方法のプロセスフロー図である。
【図５ａ】機能有効化中のステップを示す図である。
【図５ｂ】機能有効化中のステップを示す図である。
【図５ｃ】機能有効化中のステップを示す図である。
【図５ｄ】機能有効化中のステップを示す図である。
【図６ａ】集積回路をトラステッドサーバに接続するための第１の構成の概略ブロック図である。
【図６ｂ】集積回路をトラステッドサーバに接続するための第２の構成の概略ブロック図である。
【図７】初期化され有効化された少なくとも１つの集積回路を含む産業システムを示す図である。
【図８】初期化され有効化された集積回路を含む自動車両を示す図である。
【発明を実施するための形態】
【００４５】
特定の実施形態の詳細な説明
図１は、集積回路１（本明細書では「半導体デバイス」または単に「デバイス」とも呼ばれる）および遠隔に位置する（または「外部」の）トラステッドサーバ２を示す。集積回路１は、例えば、マイクロコントローラまたはシステムオンチップのような任意の機構有効化可能な集積回路の形態を取ることができる。集積回路１およびトラステッドサーバ２は、移動通信デバイスのような随意選択の通信デバイス（図示せず）を介して通信することができる。
【００４６】
集積回路１
製造後、集積回路１は、例えば、参照により本明細書に組み込まれる国際公開第２０１５／１２４６７３号パンフレットに記載されているように、限定された機構のセット（本明細書では「機能」とも呼ばれる）を有する。しかしながら、集積回路１は、非対称暗号プロセスを使用してオンチップのワンタイムプログラマブル不揮発性メモリ３に、一意の識別情報をプログラムし、その後、一意の識別情報に基づいて機能を選択的に有効化することに基づいて、トラステッドサーバ２によって起動することができる。
【００４７】
以下でより詳細に説明されるように、集積回路１は、トラステッドサーバ２によって生成された平文メッセージの形態をとる署名を検証してからのみ、ワンタイムプログラマブル不揮発性メモリ３をプログラムするプロセスを開始する。署名の検証は、デバイス１に組み込まれた公開鍵を使用する公開暗号に基づくため、デバイス１に記憶された秘密鍵または秘密データは盗まれてコピーされることはない。
【００４８】
図１を参照すると、集積回路１は、ワンタイムプログラマブル（ＯＴＰ）不揮発性（ＮＶ）メモリ３、内部バスインターフェース４、知的財産（ＩＰ）機能イネーブラ５、真性乱数生成器（ＴＲＮＧ）６、ＯＴＰ  ＮＶメモリコントローラ７（本明細書においては「ヒューズＲＯＭコントローラ」とも呼ばれる）、公開暗号エンジン８、入出力（Ｉ／Ｏ）インターフェース９、および随意選択のリング発振器１０を含む。集積回路１は、１つまたは複数の中央処理装置、バスシステム、揮発性メモリ、不揮発性メモリ、一般入出力モジュール、通信コントローラおよび他の周辺モジュールなどの他の要素を含むことができるが、これらは見やすくするために省略されている。
【００４９】
トラステッドサーバ２は、少なくとも１つの中央処理装置（図示せず）、メモリ（図示せず）およびネットワークインターフェースモジュール（図示せず）を備える汎用コンピュータシステムの形態をとる。トラステッドサーバ２は、暗号プロセッサ１１を含むことができ、および／またはハードウェアセキュリティモジュール（ＨＳＭ）などの適切なセキュリティモジュールを含むことができる。トラステッドサーバ２は、デバイス識別情報を記憶するためのストレージ１２を含むか、またはそれにアクセスすることができる。
【００５０】
ワンタイムプログラマブル不揮発性メモリ３は、ヒューズ読み出し専用メモリ３（または「ヒューズＲＯＭ」）の形態をとる。しかし、アンチヒューズ読み出し専用メモリまたは他の同様のタイプの追記型不揮発性メモリが使用されてもよい。ワンタイムプログラマブル不揮発性メモリ３は、ヒューズのセット１３（本明細書では「フィールド」または「メモリの部分」とも呼ばれる）または永続的にデータを記憶するようにプログラムされ使用され得る他のワンタイムプログラマブル不揮発性メモリ要素を含む。ここで、簡潔にするために、用語「ヒューズ」はワンタイムプログラマブル不揮発性メモリ要素を指すために使用され、用語「ヒューズＲＯＭ」はワンタイムプログラマブル不揮発性メモリを指すために使用され得る。また、用語「ブローイング」は、ワンタイムプログラマブル不揮発性メモリのプログラミングを指すために使用されてもよい。ヒューズフィールド１３は、集積回路の一意の識別情報を記憶するためのフィールド１４、デバイス識別情報フィールドが有効であるか否かを示すフィールド１５、デバイス機能を有効化する機能有効化ヒューズ１６、１つまたは複数のデバイス機能を永続的に無効化するために使用することができる無効化ヒューズ（複数可）１７、汎用ヒューズのフィールド１８、および、対応する汎用ヒューズが有効であるか否かを示すヒューズ有効フィールド１９を含む。永続的に無効化する機能は、集積回路の寿命の終わりに、または例えば輸出規制のために特定の機能、例えば暗号機能を有効化すべきでない場合に使用することができる。
【００５１】
デバイス識別情報ヒューズ１４の数は、集積回路１ごとに一意の識別番号を記憶し、随意選択的に、工場識別情報、ＯＥＭ識別情報、製造日などのような他の情報を符号化するのに十分に多い。例えば、少なくとも３２個、最大１２８個またはそれ以上のデバイス識別情報ヒューズ１６が存在してもよい。
【００５２】
デバイス識別情報有効フィールド１５は、１つのヒューズを含む。しかしながら、例えば、冗長性を提供するために、例えば３つのヒューズなど、複数のヒューズがあってもよい。
【００５３】
機能有効化ヒューズ１６の数は、制御可能に有効化され得る機能の数に対して十分に大きい。例えば、少なくとも４個、最大１２８個またはそれ以上の機能有効化ヒューズ１６があってもよい。冗長性を提供するために、ヒューズの数を増やす（例えば、３倍にする）ことができる。
【００５４】
無効化ヒューズ１７のセットは、１つまたは複数のヒューズを含むことができる。例えば、単一のヒューズを使用して、例えば、集積回路１の寿命の終わりに利用することができる制御可能に有効化可能なすべての機能を無効化することができる。付加的または代替的に、制御可能に有効化可能な各機能に対してヒューズを設けることができ、それによって、その機能はプログラムされると永続的にかつ不可逆的に無効化される。これは、不正な機能の有効化からさらに保護するのを助けるために使用することができる。付加的にまたは代替的に、これは、複数の国で販売されているが、特定の国で禁止されている機能（暗号機能など）を有する集積回路に使用することができる。
【００５５】
汎用ヒューズ１８の数はゼロであってもよいし、１つまたは２つ以上であってもよい。ある場合には、数千個の汎用ヒューズ１８が存在してもよい。
【００５６】
汎用有効ヒューズ１９の数は、１つまたは２つ以上であってもよい。例えば、すべての汎用ヒューズ１８に対してヒューズ１９は１つであってもよい。代替的に、汎用ヒューズ１８のセット用のヒューズ１９が存在してもよく、および／または、汎用ヒューズ１８ごとにヒューズ１９が存在してもよい。
【００５７】
内部バスインターフェース４は、中央処理装置（ＣＰＵ）または他のプロセッサもしくはモジュールがヒューズ１３またはヒューズ１３のうちのいくつかの状態を読み取ることを可能にするための高度マイクロコントローラバス（ＡＭＢ）または他の適切なオンチップバスシステムの形態をとることができる。
【００５８】
機能有効化ヒューズ１６、無効化ヒューズ１７および汎用有効ヒューズ１９に依存して、ＩＰ機能イネーブラ５は、１つまたは複数のＩＰユニット２０の機能を有効化する有効化信号を提供する。
【００５９】
真性乱数生成器６（本明細書では単に「乱数生成器」と呼ぶ）は真性乱数をＯＴＰ  ＮＶメモリコントローラ７に送達することが可能である。乱数は、例えばリプレイアタックに耐えるのに十分長い。乱数生成器６は、６４ビットと５１２ビットとの間またはそれ以上の長さの乱数を生成することができる。
【００６０】
ＯＴＰ  ＮＶメモリコントローラ７（本明細書では、「ヒューズＲＯＭコントローラ」または「ヒューズコントローラ」とも呼ばれる）は、有限状態マシンまたはＣＰＵサブシステムを実装するハードウェア論理の形式をとる。ＯＴＰ  ＮＶメモリコントローラ７は、ヒューズＲＯＭ３内のヒューズ１３の読み出しおよび書き込み（または「プログラミング」）、真性乱数生成器６からの乱数の要求、ならびに、入出力インターフェース９を介して真性乱数生成器６から受信されるメッセージの署名検証の要求を処理する。ＯＴＰ  ＮＶメモリコントローラ７は内部レジスタのセット２１を含む。
【００６１】
公開暗号エンジン８（本明細書では単に「暗号エンジン」と呼ぶ）は、非対称暗号に基づいている。メッセージのダイジェストを作成することができる。さらに、デバイス内部公開鍵のセット、すなわちデバイス識別情報公開鍵ＤＩＤＰＢ、汎用公開鍵ＧＰＰＢ、機構有効化公開鍵ＦＥＰＢおよび無効化公開鍵ＤＰＢに基づいてメッセージダイジェストの署名を検証することができる。暗号エンジン８は、ＯＴＰ  ＮＶメモリコントローラ７によって制御される。
【００６２】
入出力インターフェース９は、デバイス初期化および機構有効化の間に集積回路１が外部デバイス、特にトラステッドサーバ２とデータストリームを交換することを可能にする。入出力インターフェース９は、サーバ、例えばイーサネット（登録商標）コントローラへの直接のインターフェースを提供することができ、またはコンピュータに対するシリアルインターフェース、またはスマートフォンに対するブルートゥース（登録商標）もしくはＵＳＢ接続などの、ゲートウェイコントローラに対する任意の形式のＩ／Ｏインターフェースであってもよい。
【００６３】
入出力インターフェース９は、バスインターフェース４に接続することができる。したがって、トラステッドサーバ２からのメッセージは、入出力インターフェース９を介して、または入出力インターフェース９、バスインターフェース４、およびＣＰＵ（図示せず）を介してＯＴＰ  ＮＶメモリコントローラ７に送信することができる。
【００６４】
リング発振器１０は、例えばクロック信号をメモリコントローラ７に供給し、そのため、システムを攻撃するオーバークロックまたは他のタイミングベースの方法の使用を避けるために、信頼できるクロックを提供することができる。
【００６５】
半導体製造工場６０（図６ａおよび図６ｂ）は、ヒューズ１３がまだプログラムされていない、すなわち、ブローされていない、集積回路１（多くのうちの１つ）を製造する。機能有効化ヒューズ１６およびＩＤ有効ヒューズ１５がブローされない限り、機構２０のいくつかまたはすべてが機能イネーブラ５によってブロックされる。
【００６６】
次に、機構有効化のプロセスについて説明する。機構有効化は、一般に、２つのステージ、すなわち、デバイス識別情報初期化ステージと機構有効化ステージとを含む。
【００６７】
デバイス識別情報初期化
図２は、デバイス識別情報初期化の方法のプロセスフロー図である。
【００６８】
図２および図３ａを参照すると、動作が開始するとき、ＯＴＰ  ＮＶメモリコントローラ７は、いずれのヒューズ１３もまだプログラムされていないことを検証する（ステップＳ１）。ＯＴＰ  ＮＶメモリコントローラ７は、いずれのヒューズ１３もまだプログラムされていないと判定する場合、乱数生成器６に第１の乱数２２を要求し（ステップＳ２）、内部レジスタ２１に記憶する（ステップＳ３）。ＯＴＰ  ＮＶメモリコントローラ７は、デバイス１の外部にある、すなわちオフチップであるトラステッドサーバ２に第１の乱数２２を送信する（ステップＳ４）。
【００６９】
図２および図３ｂを参照すると、トラステッドサーバ２は、乱数２２のコピー２４およびブローされるべきデバイス識別情報２５を含むメッセージ２３を構築する（ステップＳ５）。トラステッドサーバ２は、構築されたメッセージ２３のダイジェスト（図示せず）（ステップＳ６）を生成し、秘密鍵ＤＩＤＰＲを用いて、ダイジェスト（図示せず）の署名２７を生成する（ステップＳ７）。トラステッドサーバ２は、メッセージ２３および署名２７を含むパッケージ２８をＯＴＰ  ＮＶメモリコントローラ７に送信する（ステップＳ８）。
【００７０】
ＯＴＰ  ＮＶメモリコントローラは、受信した乱数２２のコピー２４と内部レジスタ２１に記憶された乱数２２とを比較する（ステップＳ９およびＳ１０）。２つの乱数２２，２４が等しくない場合、ＯＴＰ  ＮＶメモリコントローラ７は、初期化プロセスを停止する。２つの乱数が一致する場合、ＯＴＰ  ＮＶメモリコントローラ７は、公開暗号エンジン８に、受信した乱数２４およびブローされるべきデバイス識別情報２５のダイジェスト（図示せず）を構築するよう要求する（ステップＳ１１）。
【００７１】
ＯＴＰ  ＮＶメモリコントローラ７は、暗号エンジン８に、公開鍵ＤＩＤＰＢを用いて、ローカルに生成されたダイジェスト（図示せず）の署名２７を検証するよう要求する（ステップＳ１２およびＳ１３）。ローカルに生成されたダイジェスト（図示せず）の署名２７が有効でない場合、コントローラは初期化プロセスを停止する。
【００７２】
図２および３ｃを参照すると、ＯＴＰ  ＮＶメモリコントローラ７は、意図されるデバイス識別情報２５をデバイス識別情報フィールド１４にブローする。ＯＴＰ  ＮＶメモリコントローラ７は、ブローされたデバイス識別情報ヒューズ１４に記憶されたデバイス識別情報３１を読み返し、これを意図されているデバイス識別情報２５と比較する（ステップＳ１５および１６）。ブローされたデバイス識別情報３１および意図されているデバイス識別情報２５が異なる場合、ＯＴＰ  ＮＶメモリコントローラ７は初期化を停止する。
【００７３】
図２および図３ｄを参照すると、ブローされた装置識別３１が意図されているデバイス識別情報２５と一致する場合、ＯＴＰ  ＮＶメモリ制御装置７は識別情報有効ヒューズ１５に値３２をブローする（ステップＳ１７）。ＯＴＰ  ＮＶメモリコントローラ７は、識別情報有効ヒューズ１５の値３３を読み返し、値３３を検査する（ステップＳ１８および１９）。ヒューズ１５がブローされた場合、ＯＴＰ  ＮＶメモリコントローラ７は、トラステッドサーバ２に、デバイス識別情報初期化プロセスが首尾よく完了したことを通知するメッセージ３４を送信する（ステップＳ２０）。
【００７４】
各デバイス識別情報２５は一意であり、製造現場６０（図６ａおよび図６ｂ）の識別情報を示すことができる。トラステッドサーバ２は、デバイス１が２つ以上の製造現場６０（図６ａおよび図６ｂ）にまたがって製造されるとしても、デバイス識別情報のデータベース（図示せず）を維持する。必要に応じて、デバイス識別情報２５は、製造工場（または「ファブ」）、パッケージ現場または試験現場、仕分け工場、相手先商標製品製造業者（ＯＥＭ）の製造現場または最終的な顧客サイトなどのいくつかの場所のいずれか１つにおいてプログラムすることができる。
【００７５】
機能有効化
図４は、初期化されたデバイス１内の機能（本明細書では「機構」とも呼ぶ）を有効化する方法のプロセスフロー図である。機能有効化は、１つまたは複数の新しい機構を初期化するたびに、複数回実行することができる。
【００７６】
図４および図５ａを参照すると、ＯＴＰ  ＮＶメモリコントローラ７は、デバイス識別情報ヒューズ１４が識別情報を含み、識別情報有効ヒューズ１５が焼き付けられたことを検証する（ステップＳ２１）。デバイス識別情報ヒューズ１４がブランクであり、かつ／または識別情報有効ヒューズ１５がブローされていない場合、ＯＴＰ  ＮＶメモリコントローラ７は、機構有効化プロセスを停止する。
【００７７】
ＯＴＰ  ＮＶメモリコントローラ７は、乱数生成器６に第２の乱数３５を要求し、内部レジスタ２１に数３５を記憶する（ステップＳ２２および２３）。
【００７８】
図４および図５ｂを参照すると、ＯＴＰ  ＮＶメモリコントローラ７は、乱数３５、デバイス識別情報３１、識別情報有効値３３、機能有効化ヒューズ１６に記憶されている値（複数可）３６および無効化フィールド１７に記憶された値３７（複数可）を、トラステッドサーバ２に送信する（ステップＳ２４）。
【００７９】
機能有効化ヒューズ１６および無効化ヒューズ１７は、バージンであるかまたは前のラウンドの機能有効化から書かれている値３６，３７を記憶することができる。
【００８０】
図４および図５ｃを参照すると、トラステッドサーバ２は、受信した乱数３５のコピー３９、受信したデバイス識別情報３１のコピー４０、識別情報有効値３３のコピー４１、ブローされるべき機能有効化ヒューズ４２、および、無効化フィールド３７に記憶されている値３７のコピーから構成される第２のメッセージ３８を構築する（ステップＳ２５）。トラステッドサーバ２は、構築されたメッセージ３８のダイジェスト（図示せず）を構築し（ステップＳ２６）、秘密鍵ＦＥＰＲを用いて、ダイジェスト（図示せず）の署名４５を生成する（ステップＳ２７）。トラステッドサーバ２は、メッセージ３８および署名４５と共にパッケージ４６を送り返す。
【００８１】
機能を無効にするために同様のプロセスを使用することができる。その場合、トラステッドサーバ２は、受信した乱数３５のコピー３９、受信したデバイス識別情報３１のコピー４０、識別情報有効値３３のコピー４１、機能有効化ヒューズ４２に記憶されている値（複数可）３６のコピー、および、ブローされるべき無効化値４３から構成される第２のメッセージ３８を構築する。
【００８２】
ＯＴＰ  ＮＶメモリコントローラ７は、受信した乱数３９と記憶されている乱数３５とを比較する（ステップＳ２９およびＳ３０）。番号３５，３９が等しくない場合、ヒューズコントローラ７は機構有効化プロセスを停止する。
【００８３】
ＯＴＰ  ＮＶメモリコントローラ７は、受信したデバイス識別情報４０、受信した有効値４１、受信した無効化値４３を、値３１，３３，３７と比較する（ステップＳ３１およびＳ３２）。それらが異なる場合、ＯＴＰ  ＮＶメモリコントローラ７は、機構有効化プロセスを停止する。
【００８４】
ＯＴＰ  ＮＶメモリコントローラ７は、暗号エンジン８に、受信したメッセージ３８のダイジェスト（図示せず）を構築するように要求し（ステップＳ３３）、暗号エンジン８に、ダイジェスト（図示せず）の署名４５を公開鍵ＦＥＰＢを用いて検証するように要求する（ステップＳ３４およびＳ３５）。署名４５が有効でない場合、ＯＴＰ  ＮＶメモリコントローラ７は、機構有効化プロセスを停止する。
【００８５】
図４および図５ｄを参照すると、ＯＴＰ  ＮＶメモリコントローラ７は、機能有効化４２をヒューズ１６にブローする（ステップＳ３６）。ＯＴＰ  ＮＶメモリコントローラ７は、ブローされたヒューズ１６に記憶された値４９を読み返し、これを意図されているヒューズ有効化値４２の値と比較する（ステップＳ３７およびＳ３８）。値が同じである場合、ＯＴＰ  ＮＶメモリコントローラ７は、機構有効化プロセスが首尾よく完了したことを通知するメッセージ５０をトラステッドサーバ２に送信する（ステップＳ３９）。トラステッドサーバ２は、そのデータベース（図示せず）を更新して、デバイス１において有効化されている機能または追加の機能を記録する。
【００８６】
機能有効化ヒューズ１６は、対応する有効ヒューズを有しない。機構有効化プロセスは繰り返されてもよく、その結果生じる機能セットは有効化された機能の分離である。これにより、異なる製造場所において機能をアップグレードすることが可能であり得る。
【００８７】
機能無効化
無効化鍵対ＤＰＲ／ＤＰＢを使用して、プログラミング機能有効化ヒューズ１６と同様の方法で無効化目的のヒューズ１７をプログラムすることができる。
【００８８】
汎用ヒュージング
汎用ヒューズ１８は、汎用鍵対ＧＰＰＲ／ＧＰＰＢを使用して、デバイス識別情報１４および機能有効化ヒューズ１６と同様にブローすることができる。
【００８９】
汎用ヒューズ１８は、複数の異なる目的のために使用することができる。例えば、汎用ヒューズ１８は、ＯＥＭが、デバイス１に公開鍵などのＯＥＭ固有の情報またはデータをブローすることを可能にする。汎用ヒューズ１８を使用して、デバイス１にトリム値（または「トリミング」）をブローすることもできる。汎用ヒューズ１８を使用して、ウェハ内のデバイスのｘ−ｙ位置のような、製造テストログをデバイスに記憶することもできる。
【００９０】
トラステッドサーバ
図６ａを参照すると、集積回路１およびトラステッドサーバ２を動作させるための第１の構成が示されている。第１の構成は一般に、集積回路１およびトラステッドサーバ２がオンラインで通信することができるときに使用されることを意図している。
【００９１】
トラステッドサーバ２は、供給元、すなわち、Ｒｅｎｅｓａｓ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｃｏｒｐｏｒａｔｉｏｎ（登録商標）などの集積回路１を製造する権限を有するエンティティによって運営される。供給元は、製造または他のタイプのサイト６０を運営する別のエンティティに、製造または包装などの他の生産活動を委託する。
【００９２】
製造現場６０に、集積回路１とトラステッドサーバ２との間のインターフェースを提供するゲートウェイ６１が配置されている。ゲートウェイ６１は、デバイス１をトラステッドサーバ２に接続し、随意選択的に認証し、集積回路１とトラステッドサーバ２との間でトラフィックを転送する。この構成では、トラステッドサーバ２のみがメッセージに署名し、秘密鍵を保持する。これにより、セキュリティを最大限に高めることを助けることができる。
【００９３】
図６ｂを参照すると、集積回路１およびトラステッドサーバ２を動作させるための第２の構成が示されている。第２の構成は、集積回路１およびトラステッドサーバ２がオフラインである場合、すなわち常に通信しているとは限らない場合でも使用することができる。
【００９４】
第１の構成と同様に、トラステッドサーバ２は供給元によって運営され、供給元は製造現場６０を運営する別のエンティティに製造または他の生産活動を委託する。
【００９５】
ローカルトラステッドサーバ６２は、製造現場６０に配置されている。ローカルトラステッドサーバ６２は、予め割り当てられたデバイス識別情報を使用して、所定数またはセットの集積デバイス１を初期化することを認可される。この構成では、ローカルトラステッドサーバ６２はメッセージに署名することができる。
【００９６】
鍵
デバイス識別情報ヒューズ、汎用ヒューズおよび機能有効化ヒューズのブローおよび検証に異なる公開鍵を使用することは、トラステッドサーバ２およびローカルトラステッドサーバ６２の構成および機能に柔軟性を与えるのに役立ち得る。
【００９７】
例えば、単一のトラステッドサーバ２を使用してすべてのヒューズをプログラムすることができる。代替的に、トラステッドサーバ２を使用してデバイス識別情報初期化を処理することができ、もう１つの他のトラステッドサーバ２を使用して機能の有効化を処理することができる。
【００９８】
さらに、他のトラステッドサーバ２、すなわち機構停止サーバまたはデバイス停止サーバを使用して、機構またはデバイスの停止を処理することができる。
【００９９】
複数のサーバを使用し、サーバ２に異なる役割を割り振ることは、特に異なるステージで異なるセットの鍵が使用される場合に、セキュリティを向上させるのに役立ち得る。
【０１００】
セキュアなコンテンツヒュージング
再び図１を参照すると、汎用ヒューズ１８を使用して安全なコンテンツ（図示せず）を記憶することができる。特に、製造現場６０（図６ａ）が信頼できないと考えられる場合、汎用ヒューズ６１は、製造後、例えば、相手先商標製品製造業者（ＯＥＭ）サイトにおいてブローすることができる。
【０１０１】
偽造防止
本明細書に記載された構成および手法は、信頼できない製造現場で集積回路を製造または処理した結果生じる偽造を低減または防止するのに役立ち得る。信頼されていない製造現場が、トラステッドサーバ（複数可）にデバイス識別情報を要求する。信頼できない製造現場のリプレイアタックは、集積回路１による乱数の発生が影響を受けない限り、機能しない。
【０１０２】
乱数生成
集積回路１によって生成される任意の乱数は、真にランダムでなければならず、サイドチャネル攻撃に耐えることができるべきである。
【０１０３】
集積回路１は、テストモードまたはスキャンモードにおいてヒューズブローが不可能であるように構成されなければならない。
【０１０４】
半導体デバイスは、スキャンモードで動作することができる。スキャンモードは、デバイスが意図したとおりに製造されることを保証するために使用される。スキャンモードでは、デバイスのすべてのレジスタが連鎖状に配置される。試験機器（図示せず）がチェーンを予めロードし、例えば機能モードの１クロックサイクルを実行する。次いで、テスト装置は、スキャンチェーンを読み出して空にし、基準機能出力をシフトアウトされたスキャン値（すなわち、フリップフロップの内容）と比較することによって機能モードの１クロックサイクルが首尾よく動作したか否かを判定する。
【０１０５】
このモードでは、攻撃者は状態機械の順次操作をバイパスする可能性がある。攻撃者は、デバイス状態機械に任意のコンテンツを予めロードし得、１つまたは複数の機能サイクルを実行する。例えば、それらは、乱数が一致し、署名が有効であることを示す（図２のステップＳ１３）コンテンツをヒューズＲＯＭコントローラ７に予めロードし、識別情報をヒューズ１４にブローする（図２のステップＳ１４）ことができる。このとき、攻撃者は、状態をロードし（ステップＳ１６；図２）、識別情報有効ヒューズ３１をブローし得る（ステップＳ１７；図２）。
【０１０６】
しかし、スキャンモードにおいてヒュージングを抑制することによって、この種の攻撃を防ぐことができる。
【０１０７】
十分な長さの乱数を使用して、デバイス識別情報アクティブ化パターンを記録し、可能なリプレイ攻撃を試みる信頼できない製造現場に対して防御する必要がある。
【０１０８】
デバイス機構が有効化されていない場合でも、製造工場でテストすることができる。例えば、スキャンテストの他に、デバイスは、より高いカバレッジを達成するために、機能テストモードで動作することがある。通常の操作には関係のない方法でデバイスの機構を有効化する特殊なテストモードがあり得る。たとえば、テストモードでは、機構はヒューズ設定とは独立して有効化することができるが、ＣＰＵメモリの容量は非常に限られている。限られたＣＰＵメモリでは、実際のアプリケーションを構築するには十分ではないが、機構の機能をテストするには十分である。
【０１０９】
メッセージ署名の実装態様
既存の署名アルゴリズムまたは楕円曲線デジタル署名アルゴリズム（ＥＣＤＳＡ）を使用してメッセージに署名することができる。鍵の長さが従来の既存の署名アルゴリズムに比べて小さいため、ＥＣＤＳＡ埋め込みはメモリ要件の観点から効率的である。
【０１１０】
集積回路の使用
図７を参照すると、（複数の集積回路がある場合、同じである必要はない）１つまたは複数の集積回路１が、ロボット、電力メータまたはスマートカードリーダなどの、産業プラント（図示せず）に見られる産業システム７１で使用され得る。
【０１１１】
図８も参照すると、複数の集積回路１（同じである必要はない）が自動車両８１に使用されてもよい。
【０１１２】
先に説明したように、集積回路１内の機構は、必ずしも製造時に有効化される必要はなく、組み立てられたシステム７１，８１に組み込まれた後に有効化されることができる。
【０１１３】
現場での機構有効化は、機構有効化をより厳密に制御することができるため、偽造集積回路の使用を最小限に抑える（かつ、さらには防止する）ことを助けることができる。さらに、偽造品製造業者ＯＥＭが必要な機能を有効化して集積回路を入手し起動することはより困難であるため、機構有効化によって、偽造品の製造および販売をより困難にすることができる。
【０１１４】
上述した実施形態に対して多くの変更がなされ得ることが理解されるであろう。
【図１】
2019507538.tif 000003
【図２−１】
2019507538.tif 000004
【図２−２】
2019507538.tif 000005
【図２−３】
2019507538.tif 000006
【図３ａ】
2019507538.tif 000007
【図３ｂ】
2019507538.tif 000008
【図３ｃ】
2019507538.tif 000009
【図３ｄ】
2019507538.tif 000010
【図４−１】
2019507538.tif 000011
【図４−２】
2019507538.tif 000012
【図４−３】
2019507538.tif 000013
【図５ａ】
2019507538.tif 000014
【図５ｂ】
2019507538.tif 000015
【図５ｃ】
2019507538.tif 000016
【図５ｄ】
2019507538.tif 000017
【図６ａ】
2019507538.tif 000018
【図６ｂ】
2019507538.tif 000019
【図７】
2019507538.tif 000020
【図８】
2019507538.tif 000021
【手続補正書】
【提出日】平成30年12月11日(2018.12.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
集積回路（１）であって、
ワンタイムプログラマブル不揮発性メモリ（３）と、
前記ワンタイムプログラマブル不揮発性メモリ用のメモリコントローラ（７）とを備え、
前記メモリコントローラは、
前記集積回路において生成された第１の乱数（２２）をデバイス初期化サーバ（２）に送信し、
前記デバイス初期化サーバから署名付きデバイス初期化メッセージ（２８）であって、前記署名付きデバイス初期化メッセージ（２８）は、デバイス初期化メッセージ（２３）および署名（２７）を含み、前記デバイス初期化メッセージは、第２の乱数（２４）およびデバイス識別情報（２５）を含む、署名付きデバイス初期化メッセージ（２８）を受信することに応答して、
前記第１の乱数（２２）と前記第２の乱数（２４）とが等しいか否か、および前記署名（２７）が有効であるか否かを判定し、
前記第１の乱数と前記第２の乱数とが等しく、前記署名が有効であるという判定に応答して、
前記ワンタイムプログラマブル不揮発性メモリの第１の部分（１４）に前記デバイス識別情報（２５）をプログラムするように構成されている、集積回路（１）。
【請求項２】
前記メモリコントローラ（７）は、
前記ワンタイムプログラマブル不揮発性メモリ（３）の前記第１の部分（１４）からデバイス識別情報（３１）を読み出し、
前記ワンタイムプログラマブル不揮発性メモリの前記第１の部分から読み出された前記デバイス識別情報（３１）と、前記ワンタイムプログラマブル不揮発性メモリの前記第１の部分にプログラムされている前記デバイス識別情報（２５）とが等しいか否かを判定し、
前記デバイス識別情報（２５，３１）が等しいという判定に応答して、
前記ワンタイムプログラマブル不揮発性メモリの第２の部分（１５）に識別情報有効値（３２）をプログラムするようにさらに構成されている、請求項１に記載の集積回路。
【請求項３】
前記メモリコントローラは、
前記ワンタイムプログラマブル不揮発性メモリ（３）の前記第２の部分（１５）から識別情報有効値（３３）を読み出し、
前記ワンタイムプログラマブル不揮発性メモリの前記第２の部分から読み出された前記識別情報有効値と、前記ワンタイムプログラマブル不揮発性メモリの前記第２の部分にプログラムされている前記識別情報有効値（３２）とが等しいか否かを判定し、
前記識別情報有効値（３２，３３）が等しいという判定に応答して、
デバイス初期化が完了したことを確認するためのメッセージ（３４）を前記デバイス初期化サーバ（２）に送信するようにさらに構成されている、請求項２に記載の集積回路。
【請求項４】
乱数（２２，３５）を生成し、前記乱数を前記メモリコントローラ（７）に提供するように構成された乱数生成器（６）をさらに備える、請求項１〜３のいずれか一項に記載の集積回路。
【請求項５】
前記メモリコントローラ（７）から署名を含むデータ（２３，３８）を受信することに応答して、前記署名を検証するように構成された公開暗号エンジン（８）をさらに備える、請求項１〜４のいずれか一項に記載の集積回路。
【請求項６】
前記ワンタイムプログラマブル不揮発性メモリの値に依存して、１つまたは複数の機能（２０）を有効化するように構成されている機能イネーブラ（５）をさらに備える、請求項１〜５のいずれか一項に記載の集積回路。
【請求項７】
前記ワンタイムプログラマブル不揮発性メモリ（３）は、前記集積回路のいずれの有効化可能な機能（複数可）が有効化されているかを示す値を記憶する第３の部分（１６）と、
前記集積回路のいずれの無効化可能な機能（複数可）が無効化されているかを示す値を記憶するための第４の部分（１７）とをさらに備える、請求項１〜６のいずれか一項に記載の集積回路。
【請求項８】
前記メモリコントローラ（７）は、
前記集積回路内で生成された第３の乱数（３５）、ならびに、前記ワンタイムプログラマブルメモリの前記第１の部分（１４）、前記第２の部分（１５）、前記第３の部分（１６）および前記第４の部分（１７）の内容（３１，３３，３６，３７）を、機構有効化サーバ（２）に送信し、
前記機構有効化サーバから、署名付き機能有効化メッセージ（４６）であって、前記署名付き機構有効化メッセージは、機能有効化メッセージ（３８）および署名（４５）を含み、前記機能有効化メッセージは、第４の乱数（３９）、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機能有効化メッセージ（４６）を受信することに応答して、
前記第３の乱数と前記第４の乱数とが等しいか否か、および前記署名が有効であるか否かを判定し、
前記第３の乱数（３５）と前記第４の乱数（３９）とが等しく、前記署名が有効であるという判定に応答して、
前記ワンタイムプログラマブル不揮発性メモリの前記第３の部分に前記機能有効化値（４２）をプログラムするように構成されている、請求項７に記載の集積回路。
【請求項９】
前記メモリコントローラ（７）は、
前記集積回路内で生成された第５の乱数、ならびに、前記ワンタイムプログラマブルメモリの前記第１の部分（１４）、前記第２の部分（１５）、前記第３の部分（１６）および前記第４の部分（１７）の内容（３１，３３，３６，３７）を、機構無効化サーバ（２）に送信し、
機構無効化サーバから、署名付き機能無効化メッセージであって、前記署名付き機構無効化メッセージは、機構無効化メッセージおよび署名を含み、前記機構無効化メッセージは、第６の乱数、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機能無効化メッセージを受信することに応答して、
前記第５の乱数と前記第６の乱数とが等しいか否か、および前記署名が有効であるか否かを判定し、
前記第５の乱数と前記第６の乱数とが等しく、前記署名が有効であるという判定に応答して、
前記ワンタイムプログラマブル不揮発性メモリの前記第４の部分に前記無効化値（４３）をプログラムするように構成されている、請求項７または８に記載の集積回路。
【請求項１０】
前記ワンタイムプログラマブル不揮発性メモリ（３）は、
ユーザ定義の目的のための値を記憶するための第５の部分（１８）をさらに備え、
前記メモリコントローラ（７）は、
前記集積回路において生成された第７の乱数、および、前記ワンタイムプログラマブルメモリの前記第５の部分（１８）の内容（３１，３３，３６，３７）をユーザサーバ（２）に送信し、
前記ユーザサーバから、署名付きユーザ定義メッセージであって、前記署名付きユーザ定義メッセージは、ユーザ定義メッセージおよび署名を含み、前記ユーザ定義メッセージは、第８の乱数を、推定デバイス識別情報（４０）、推定識別情報有効値（４１）およびユーザ定義値を含む、署名付きユーザ定義メッセージを受信することに応答して、
前記第７の乱数と前記第８の乱数とが等しいか否か、および前記署名が有効であるか否かを判定し、
前記第７の乱数と前記第８の乱数とが等しく、前記署名が有効であるという判定に応答して、
前記ワンタイムプログラマブル不揮発性メモリの前記第５の部分に前記ユーザ定義値をプログラムするように構成されている、請求項１〜９のいずれか一項に記載の集積回路。
【請求項１１】
デジタル集積回路である、請求項１〜１０のいずれか一項に記載の集積回路。
【請求項１２】
混合信号集積回路である、請求項１〜１０のいずれか一項に記載の集積回路。
【請求項１３】
不揮発性ランダムアクセスメモリを含む、請求項１〜１２のいずれか一項に記載の集積回路。
【請求項１４】
マイクロコントローラまたはシステムオンチップである、請求項１〜１３のいずれか一項に記載の集積回路。
【請求項１５】
請求項１〜１４のいずれか一項に記載の少なくとも１つの集積回路を含む、産業システムまたは自動車両。
【請求項１６】
サーバ（２；６２）であって、
少なくとも１つのプロセッサと、
メモリとを備え、
前記サーバは、集積回路（１）から第１の乱数（２２）を受信することに応答して、
署名付きデバイス初期化メッセージ（２８）であって、前記署名付きデバイス初期化メッセージは、デバイス初期化メッセージ（２３）と、対応する署名（２７）とを含み、前記デバイス初期化メッセージは、前記乱数のコピー（２４）とデバイス識別情報（２５）とを含む、署名付きデバイス初期化メッセージを生成し、
前記署名付きデバイス初期化メッセージ（２８）を前記集積回路に送信するように構成されている、サーバ（２；６２）。
【請求項１７】
前記サーバは、集積回路から、
第３の乱数（３５）、
デバイス識別情報（３１）、
前記デバイス識別情報が有効であることを示す識別情報有効値（３３）、
前記集積回路のいずれの有効化可能な機能（複数可）が有効化されているかを示す値（３６）、および
前記集積回路のいずれの無効化可能な機能（複数可）が無効化されているかを示す値（３７）を受信することに応答して、
署名付き機能有効化メッセージ（４６）であって、前記署名付き機能有効化メッセージは、機能有効化メッセージ（３８）、および、対応する署名（４５）を含み、前記機能有効化メッセージは、第４の乱数（３９）、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機能有効化メッセージ（４６）を前記集積回路に送信するように構成されている、請求項１６に記載のサーバ（２；６２）。
【請求項１８】
前記サーバは、集積回路から、
第５の乱数、
デバイス識別情報（３１）、
前記デバイス識別情報が有効であることを示す識別情報有効値（３３）、
前記集積回路のいずれの有効化可能な機能（複数可）が有効化されているかを示す値（３６）、および
前記集積回路のいずれの無効化可能な機能（複数可）が無効化されているかを示す値（３７）を受信することに応答して、
署名付き機能無効化メッセージであって、前記署名付き機能無効化メッセージは、機能無効化メッセージ、および、対応する署名を含み、前記機能無効化メッセージは、第６の乱数、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機能無効化メッセージを前記集積回路に送信するように構成されている、請求項１６または１７に記載のサーバ（２；６２）。
【請求項１９】
前記サーバは、集積回路から、
第７の乱数、
デバイス識別情報（３１）、
前記デバイス識別情報が有効であることを示す識別情報有効値（３３）、および
ユーザ定義フィールドの値を受信することに応答して、
署名付きユーザ定義メッセージであって、前記署名付きユーザ定義メッセージは、ユーザ定義メッセージおよび署名を含み、前記ユーザ定義メッセージは、第８の乱数、推定デバイス識別情報（４０）、推定識別情報有効値（４１）およびユーザ定義値を含む、署名付きユーザ定義メッセージを前記集積回路に送信するように構成されている、請求項１６，１７または１８に記載のサーバ（２；６２）。
【請求項２０】
デバイス初期化システムであって、
請求項１〜１５のいずれか一項に記載の集積回路と、
前記集積回路と通信する、請求項１６〜１８のいずれか一項に記載のサーバとを備える、デバイス初期化システム。
【請求項２１】
機構有効化サーバ（２；６２）であって、
少なくとも１つのプロセッサと、
メモリとを備え、
前記サーバは、集積回路から、
第３の乱数（３５）、
デバイス識別情報（３１）、
前記デバイス識別情報が有効であることを示す識別情報有効値（３３）、
前記集積回路のいずれの有効化可能な機能（複数可）が有効化されているかを示す値（３６）、および
前記集積回路のいずれの無効化可能な機能（複数可）が無効化されているかを示す値（３７）を受信することに応答して、
署名付き機能有効化メッセージ（４６）であって、前記署名付き機能有効化メッセージは、機能有効化メッセージ（３８）、および、第３の署名（４５）を含み、前記機能有効化メッセージは、第４の乱数（３９）、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機能有効化メッセージ（４６）を前記集積回路に送信するように構成されている、機構有効化サーバ（２；６２）。
【請求項２２】
機構有効化システムであって、
請求項１〜１５のいずれか一項に記載の集積回路と、
前記集積回路と通信する、請求項１７または１８または請求項２１に記載のサーバとを備える、機構有効化システム。
【請求項２３】
機構無効化サーバ（２；６２）であって、
少なくとも１つのプロセッサと、
メモリとを備え、
前記サーバは、集積回路から、
第５の乱数、
デバイス識別情報（３１）、
前記デバイス識別情報が有効であることを示す識別情報有効値（３３）、
前記集積回路のいずれの有効化可能な機能（複数可）が有効化されているかを示す値（３６）、および
前記集積回路のいずれの無効化可能な機能（複数可）が無効化されているかを示す値（３７）を受信することに応答して、
署名付き機能無効化メッセージであって、前記署名付き機能有効化メッセージは、機能無効化メッセージ、および、第５の署名を含み、前記機能無効化メッセージは、第６の乱数、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機能無効化メッセージを前記集積回路に送信するように構成されている、機構無効化サーバ（２；６２）。
【請求項２４】
機構無効化システムであって、
請求項１〜１５のいずれか一項に記載の集積回路と、
前記集積回路と通信する、請求項１８または請求項２３に記載のサーバとを備える、機構無効化システム。
【請求項２５】
集積回路を初期化する方法であって、
デバイス初期化サーバ（２）に第１の乱数（２２）を送信するステップと、
前記デバイス初期化サーバから、デバイス初期化メッセージ（２３）および対応する署名（２７）を含む署名付きデバイス初期化メッセージ（２８）を受信するステップであって、前記デバイス初期化メッセージ（２３）は、第２の乱数（２４）およびデバイス識別情報（２５）を含む、受信するステップと、
前記第１の乱数（２２）と前記第２の乱数（２４）とが等しいか否かを判定するステップと、
前記署名（２７）が有効であるか否かを判定するステップと、
前記第１の乱数と前記第２の乱数とが等しく、前記署名が有効であるという判定に応答して、ワンタイムプログラマブル不揮発性メモリ（３）の第１の部分（１４）に前記デバイス識別情報（２５）をプログラムするステップとを含む、方法。
【請求項２６】
前記ワンタイムプログラマブル不揮発性メモリ（３）の前記第１の部分（１４）から前記デバイス識別情報（３１）を読み出すステップと、
前記ワンタイムプログラマブル不揮発性メモリの前記第１の部分から読み出された前記デバイス識別情報（３１）と、前記ワンタイムプログラマブル不揮発性メモリの前記第１の部分にプログラムされている前記デバイス識別情報（２５）とが等しいか否かを判定するステップと、
前記デバイス識別情報（２５，３１）が等しいという判定に応答して、前記ワンタイムプログラマブル不揮発性メモリの第２の部分（１５）に識別情報有効値（３２）をプログラムするステップとをさらに含む、請求項２５に記載の方法。
【請求項２７】
前記ワンタイムプログラマブル不揮発性メモリ（３）の前記第２の部分（１５）から識
別情報有効値（３３）を読み出すステップと、
前記読み出し専用メモリの前記第２の部分から読み出された前記識別情報有効値と、前記ワンタイムプログラマブル不揮発性メモリの前記第２の部分にプログラムされている前記識別情報有効値（３２）とが等しいか否かを判定するステップと、
前記識別情報有効値（３２，３３）が等しいという判定に応答して、
デバイス初期化が完了したことを確認するためのメッセージ（３４）を前記デバイス初期化サーバに送信するステップとをさらに含む、請求項２６に記載の方法。
【請求項２８】
前記集積回路内で生成された第３の乱数（３５）、ならびに、前記ワンタイムプログラマブルメモリの前記第１の部分（１４）、前記第２の部分（１５）、前記第３の部分（１６）および前記第４の部分（１７）の内容（３１，３３，３６，３７）を、機構有効化サーバ（２）に送信するステップと、
前記機構有効化サーバから、署名付き機能有効化メッセージ（４６）であって、前記署名付き機能有効化メッセージは、機能有効化メッセージ（３８）および対応する署名（４５）を含み、前記機能有効化メッセージは、第４の乱数（３９）、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機能有効化メッセージ（４６）を受信することに応答して、
前記第３の乱数と前記第４の乱数とが等しいか否か、および前記署名が有効であるか否かを判定するステップと、
前記第３の乱数（３５）と前記第４の乱数（３９）とが等しく、前記署名（４５）が有効であるという判定に応答して、
前記ワンタイムプログラマブルメモリの前記第３の部分に前記機能有効化値（４２）をプログラムするステップとをさらに含む、請求項２７に記載の方法。
【請求項２９】
前記集積回路内で生成された第５の乱数、ならびに、前記ワンタイムプログラマブルメモリの前記第１の部分（１４）、前記第２の部分（１５）、前記第３の部分（１６）および前記第４の部分（１７）の内容（３１，３３，３６，３７）を、機構無効化サーバに送信するステップと、
前記機構無効化サーバから、署名付き機構無効化メッセージであって、前記署名付き機構無効化メッセージは、機構無効化メッセージおよび対応する署名を含み、前記機構無効化メッセージは、第６の乱数、推定デバイス識別情報（４０）、推定識別情報有効値（４１）、機能有効化値（４２）および無効化値（４３）を含む、署名付き機構無効化メッセージを受信することに応答して、
前記第５の乱数と前記第６の乱数とが等しいか否か、および前記署名が有効であるか否かを判定するステップと、
前記第５の乱数と前記第６の乱数とが等しく、前記署名が有効であるという判定に応答して、
前記ワンタイムプログラマブルメモリの前記第４の部分に前記無効化値（４３）をプログラムするステップとをさらに含む、請求項２８に記載の方法。
【請求項３０】
前記集積回路内で生成された第７の乱数、ならびに、前記ワンタイムプログラマブルメモリの第５の部分（１８）の内容（３１，３３，３６，３７）を、ユーザサーバに送信するステップと、
前記ユーザサーバから、署名付きユーザ定義フィールドメッセージであって、前記署名付き機構無効化メッセージは、機構無効化メッセージおよび対応する署名を含み、前記ユーザ定義フィールドメッセージは、第８の乱数、推定デバイス識別情報（４０）、推定識別情報有効値（４１）およびユーザ定義フィールド値を含む、署名付きユーザ定義フィールドメッセージを受信することに応答して、
前記第７の乱数と前記第８の乱数とが等しいか否か、および前記署名が有効であるか否かを判定するステップと、
前記第７の乱数と前記第８の乱数とが等しく、前記署名が有効であるという判定に応答して、
前記ワンタイムプログラマブルメモリの前記第５の部分に前記ユーザ定義フィールド値をプログラムするステップとをさらに含む、請求項２９に記載の方法。
【国際調査報告】
2019507538.tif 000022
2019507538.tif 000023
2019507538.tif 000024