(57)【要約】複数のメモリセルを有する揮発性メモリ（６１０）を具える半導体デバイス（６００）から識別子を生成する方法（１００）を開示する。この方法は、メモリセルの微細構造の変化に由来する複数の疑似ランダムビット値をメモリセルに呈示させるステップ（１１０）と、複数のメモリセルの少なくともサブセットからビット値を読み出すステップ（１２０）と、読み出したビット値から識別子を生成するステップとを含む。この方法（１００）は、十分な量の揮発性メモリのセルが製造プロセスパラメータに内在する変化に支配されるビット値を示し得るという認識に基づいており、これは例えば、ＳＲＡＭに対しては起動時、又はＤＲＡＭに対してはリフレッシュのない期間後に発生する。これは、例えば前記揮発性メモリ（６１０）を具える半導体デバイス（６００）を識別すること、又はエラー訂正符号語を前記識別子ビット位置にマッピングすることによる安全キーの生成など、幾つかの識別目的のために使用できる。
2009533741.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルを有する揮発性メモリを具える半導体デバイスから識別子を生成する方法であって、前記方法は、
（ａ）前記メモリセルに、前記メモリセルの微細構造の変化に由来する複数の疑似ランダムビット値を呈示させるステップと、
（ｂ）前記複数のメモリセルの少なくともサブセットから、前記疑似ランダムビット値を読み出すステップと、
（ｃ）前記読み出したビット値から識別子を生成するステップと、
を含むことを特徴とする方法。
【請求項２】
識別子生成要求信号を受信するステップと、
前記信号の受信に応答してステップ（ａ）〜（ｃ）を行うステップと、
を更に具えることを特徴とする、請求項１に記載の方法。
【請求項３】
前記メモリセルに前記複数の疑似ランダムビット値を呈示させるステップが、前記揮発性メモリを起動するステップを含むことを特徴とする、請求項１又は２に記載の方法。
【請求項４】
前記メモリセルに、前記複数の疑似ランダムビット値を呈示させるステップが、
前記メモリセルに規定のビット値のセットを記憶させるステップと、
前記複数のメモリセルの全てではない幾つかが、規定のビット値を失うことが可能になるように、前記読み出しステップを遅延させるステップと、
を含むことを特徴とする、請求項１又は２に記載の方法。
【請求項５】
前記ステップ（ａ）及び（ｂ）を繰り返すステップを更に含み、
前記識別子を生成する前記ステップが、前記繰り返されるステップ（ｂ）から読み出された前記ビット値を組み合わせるステップを含むことを特徴とする、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記メモリに対して異なる起動電圧を使用して、前記ステップ（ａ）及び（ｂ）を繰り返すことを特徴とする、請求項４に記載の方法。
【請求項７】
異なる温度にて前記ステップ（ａ）及び（ｂ）を繰り返すことを特徴とする、請求項５又は６に記載の方法。
【請求項８】
前記識別子を前記半導体デバイスに割り当てるステップを更に含むことを特徴とする、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
更に前記識別子をデータベースに記憶するステップを含むことを特徴とする、請求項１〜８に記載の方法。
【請求項１０】
識別子のデータベースをロードするステップと、
前記読み出されたビット値を前記データベース内のそれぞれの識別子と比較し、前記読み出されたビット値と最もよく一致する前記識別子を選択することによって、前記半導体デバイスを識別するステップと、
を更に含むことを特徴とする、請求項８に記載の方法。
【請求項１１】
最もよく一致する前記識別子を選択する前記ステップが、前記読み出されたビット値と前記識別子との間の差を決定するステップを含むことを特徴とする、請求項１０に記載の方法。
【請求項１２】
前記差を決定するステップが、ハミング距離を決定するステップを含むことを特徴とする、請求項１１に記載の方法。
【請求項１３】
前記差を決定するステップが、ビットドリフト値を決定するステップを含むことを特徴とする、請求項１１に記載の方法。
【請求項１４】
前記半導体デバイスが更に、その動作のための複数の情報シンボルからなるキーを必要とする機能と、
出力と、
前記キーを前記出力で使用可能にするための手段と、
を含み、前記方法は更に、
各符号語が更なる複数の情報シンボルからなる一群の符号語を提供するステップと、
前記一群の符号語から１つ以上の符号語を選択するステップと、
前記１つ以上の符号語の前記情報シンボルから前記キーを生成するステップと、
前記キーを前記出力で使用可能にするステップとを含み、前記識別子を生成する前記ステップが、
前記１つ以上の符号語の各ビット値を、対応する識別子のビット値が読み出されるそれぞれのメモリセルにマッピングするマッピング関数を生成するステップと、
前記マッピング関数を前記半導体デバイスに記憶するステップと、
を含むことを特徴とする、請求項１〜７のいずれか一項に記載の方法。
【請求項１５】
前記キーを使用可能にする以前に、前記キーを変更するステップを更に含むことを特徴とする、請求項１４に記載の方法。
【請求項１６】
前記キーを使用可能にしたあとに、前記出力に前記キーを提供する前記手段を無効化するステップを更に含む、請求項１４又は１５に記載の方法。
【請求項１７】
前記マッピング関数を生成する前記ステップが、前記それぞれのメモリセルに対する複数のポインタを生成するステップを含むことを特徴とする、請求項１４，１５又は１６に記載の方法。
【請求項１８】
前記マッピング関数を生成するステップが、
前記揮発性メモリの前記少なくともサブセットの各メモリセルに対応するセルを有するビット表を生成するステップと、
前記ビット表の各セルに、前記マッピング関数内の前記対応するメモリセルの存在を示すビット値を提供するステップと、
を含むことを特徴とする、請求項１４，１５又は１６に記載の方法。
【請求項１９】
前記マッピング関数を形成する前記ステップが、メモリセルのセットに対する置換表を形成するステップを含む、請求項１４，１５又は１６に記載の方法。
【請求項２０】
前記半導体デバイスが更に、
その動作のために、複数の情報シンボルからなるキーを必要とする機能と、
各符号語が更に複数の情報シンボルからなる一群の符号語からの１つ以上の符号語のビット値を、前記識別子の対応するビット値にマッピングするためのマッピング関数と、
を含み、前記方法が更に、
前記マッピング関数を使用して、前記識別子から前記１つ以上の符号語を読み出すステップと、
前記１つ以上の読み出された符号語をエラー訂正するステップと、
前記１つ以上のエラー訂正された符号語の前記情報シンボルから前記キーを生成するステップと、
前記キーを使用して前記機能を動作させるステップと、
を含むことを特徴とする、請求項１〜７のいずれか一項に記載の方法。
【請求項２１】
前記機能を動作させるステップが、
他のキーを受信するステップと、
前記キーと前記他のキーとを比較するステップと、
前記キーが前記他のキーと一致した場合に、前記半導体デバイスの少なくとも一部の動作を許可するステップと、
を含むことを特徴とする、請求項２０に記載の方法。
【請求項２２】
前記機能を動作させるステップが、
暗号化データを受信するステップと、
前記キーを使用して前記暗号化データを処理するステップと、
を含むことを特徴とする、請求項２０に記載の方法。
【請求項２３】
前記機能を動作させるステップが、
前記キーを使用してデータを符号化するステップと、
前記符号化データを送信するステップと、
を含む、請求項２０に記載の方法。
【請求項２４】
前記機能を動作させたあとに、前記キーを消去するステップを更に含むことを特徴とする、請求項２０に記載の方法。
【請求項２５】
複数のメモリセルを有する揮発性メモリと、
前記複数のメモリセルの少なくともサブセットから、前記メモリセルの微細構造の変化に由来するそれぞれの疑似ランダムビット値を含む識別子を読み出すように設定されているコントローラと、
を具えることを特徴とする、半導体デバイス。
【請求項２６】
前記コントローラが、前記揮発性メモリの起動に応答して、前記ビット値を読み出すように設定されていることを特徴とする、請求項２５に記載の半導体デバイス。
【請求項２７】
前記揮発性メモリに結合された出力を更に具え、前記コントローラが、前記出力に前記それぞれのビット値を提供するように設定されていることを特徴とする、請求項２５又は２６に記載の半導体デバイス。
【請求項２８】
前記メモリコントローラが、外部識別子生成要求信号に応答することを特徴とする、請求項２５，２６又は２７に記載の方法。
【請求項２９】
前記メモリコントローラが、前記サブセットサイズを記憶するためのプログラム可能なメモリ手段を具えることを特徴とする、請求項２５，２６，２７又は２８に記載の方法。
【請求項３０】
前記メモリコントローラが、前記外部識別子生成要求信号を処理するように設定されている、バウンダリスキャン準拠の試験アクセスポートコントローラに応答することを特徴とする、請求項２８に記載の半導体デバイス。
【請求項３１】
出力と、
その動作のために、複数の情報シンボルから成るキーを必要とする機能と、
一群の符号語から１つ以上の符号語の情報シンボルから前記キーを生成するための手段と、
前記１つ以上の符号語のビットを前記識別子の対応するビット値にマッピングするためのマッピング関数を生成するための手段と、
前記マッピング関数を記憶するための不揮発性メモリと、
前記マッピング関数を使用して前記識別子から前記キーを抽出するための抽出手段と、
を具えることを特徴とする、請求項２５又は２６に記載の半導体デバイス。
【請求項３２】
他のキーを受信するための入力を更に具え、前記機能が、
前記半導体デバイスの前記少なくとも一部へのアクセスを許可するための許可手段を具え、前記許可手段が、前記キーと前記他のキーとを比較するための比較器を具えることを特徴とする、請求項３１に記載の方法。
【請求項３３】
前記機能が、前記キーを使用してデータを符号化するための符号器を具えることを特徴とする、請求項３２に記載の方法。
【請求項３４】
前記機能が、前記キーを使用してデータを復号化するための復号器を具えることを特徴とする、請求項３１又は３３に記載の半導体デバイス。
【請求項３５】
前記キーを前記出力に送るための手段を更に具えることを特徴とする、請求項３１に記載の半導体デバイス。
【請求項３６】
前記キーを送るための前記手段を無効化することを特徴とする、請求項３４に記載の半導体デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメモリセルを有する揮発性メモリを具える半導体デバイスから、識別子を生成する方法に関するものである。
【０００２】
本発明はまた、このような半導体デバイスを識別する方法に関するものである。
【０００３】
本発明は更に、このような半導体デバイスに関するものである。
【０００４】
様々な理由により、集積回路（ＩＣ）のような半導体デバイスを識別できることは、特にパッケージングしたあとに重要である。例えばその識別は、パッケージングの前、例えばＩＣが依然としてウェハにある間に、得られたテスト結果を追跡するために必要であるかもしれない。あるいは現場の返品（つまり顧客による返品）の場合に、欠陥の可能性がある他のＩＣを現場で修正できるように、又は返品された欠陥ＩＣの生産プロセスを評価して将来のＩＣ生産プロセスを改良できるように、ＩＣを特定のバッチについて追跡することが重要となるかもしれない。また、独自のＩＣ識別子（ＩＤ）を安全性目的のために使用することもできる。
【０００５】
ＩＣのための識別子を生成する幾つかの知られた方法が存在する。例えばＩＣは、パッケージングのあとラッカーで処理をし、その中にＩＤを刻印することができる。しかしこれはかなりコストのかかるプロセスである。また、識別子を専用のメモリ位置に記憶することもできる。この方法は、このためにメモリリソースを犠牲または追加しなければならない欠点を有する。
【０００６】
別の識別技術は、識別目的のために固有のデバイス特性の利用を目標としている。このような識別方法の例が、”ＩＣ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｃｉｒｃｕｉｔ  Ｕｓｉｎｇ  Ｄｅｖｉｃｅ  Ｍｉｓｍａｔｃｈ”  ｂｙ  Ｌｏｆｓｔｒｏｍ  ｅｔ  ａｌ．  ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＩＳＳＣＣ，  ＩＥＥＥ  Ｆｅｂ．  ９  ２０００，  ｐｐ．  ３７２−３７３に開示されている。この論文において、アドレス可能なＭＯＳＦＥＴのアレイを有するＩＣが開示されている。ＭＯＳＦＥＴのミスマッチによって、これらのデバイスのドレイン電流はランダムに異なるので、アレイにより駆動される負荷にランダム電圧署名を発生させることができる。これらの電圧は、単一のＩＣに対して再現可能であるため、これらの電圧署名はそのＩＣのための識別子として働くことができる。欠点は、この方法はＩＣ上に追加の専用ハードウェアを必要とし、ＩＣのコストを増加させることである。
【０００７】
このような方法の別の例が米国特許出願公開第２００４／０１６２９５９号に開示されている。この出願公開で開示されている発明は、メモリを有する半導体デバイスに関するものであり、メモリが欠陥メモリブロックを有する傾向がある事実を利用している。その欠陥メモリブロックの位置はおおよそランダムであるため、半導体デバイスは、メモリ内の欠陥ブロックの位置に少なくとも部分的に基づく識別子によって特定できる。この方法の欠点は、識別子を決定するためにメモリ全体を調査しなければならないことであり、これは特に大きなメモリにとって、時間とコストのかかるプロセスである。
【０００８】
米国特許出願公開第２００６／００６３２８６号には、静的ランダムアクセスメモリ（ＳＲＡＭ）の一群のセルの固有の起動値のような、プロセス変化に敏感であるが、時間に不変な値を有する電気的パラメータを有する多くの半導体デバイス回路素子から１つを選択することに基づく、半導体デバイスのための識別子を提供するための方法が開示されている。半導体デバイスのための識別子として、選択した回路素子のパラメータ値の時間不変性を利用する。プロセス変化のランダム性によって、この識別子が一意であることが保証される。
【０００９】
しかし、ＳＲＡＭセルの一群から起動値を導出することは、全てのＳＲＡＭセルが固有の起動値を有しているわけではないという問題があることが本発明の発明者によって発見された。その結果、固有の起動値を有するセルを信頼性をもって識別できるようにＳＲＡＭ起動の挙動を慎重に評価する必要があるため、ＳＲＡＭ起動から識別子を導出することは時間のかかる実行となり、十分な信頼性を保証できるためには、典型的には多数回ＳＲＡＭ起動が必要になる。
【発明の開示】
【００１０】
本発明の目的は、冒頭の段落に記載された、半導体デバイスから識別子を生成する、もっと手頃な方法を提供しようとすることである。
【００１１】
本発明の更なる目的は、本発明の方法を適用可能な半導体デバイスを提供しようとすることである。
【００１２】
本発明の１つの態様では、複数のメモリセルを有する揮発性メモリを具える半導体デバイスから識別子を生成する方法を提供し、その方法は、
（ａ）前記メモリセルに、メモリセルの微細構造の変化に由来する複数の疑似ランダムビット値を呈示させるステップと、
（ｂ）前記メモリセルの少なくともサブセットからビット値を読み出すステップと、
（ｃ）その読み出したビット値から識別子を生成するステップと、
を含む。
【００１３】
本発明は、静的ランダムアクセスメモリ（ＳＲＡＭ）のような揮発性メモリの電源を入れたとき、またはダイナミックランダムアクセスメモリ（ＤＲＡＭ）から電荷の放電を規定の期間許容したとき、少なくともその幾つかのメモリセルは、優先的に特定のビット値を示し、例えば起動時に優先的なビット値を示し、規定の期間の間、所定のビット値を保持するという認識に基づいている。この挙動は、各独立したメモリセル、したがってそれぞれのメモリに対して異なり、セルの微細構造の相違に起因している。結果として、メモリセルのサブセットから疑似ランダムビット値、つまり、一回の読み出しステップにてランダムに見えるが、セルの微細構造との相関によって少なくとも或る範囲において再現可能であるビット値を読み出すことによって、これらの値を識別子として使用し、メモリが属する半導体デバイスに割り当てることができる。
【００１４】
しかし、本発明の範囲内において、疑似ランダムビット値が一回の読み出しステップにおいてランダム値であるように見えないばかりか、続く読み出しステップとの間である程度の変化を示す可能性も指摘されている。例えば、少なくとも複数のメモリセルのサブセットからビット値を読み出すステップは、ＳＲＡＭからビット値を読み出すステップを含み、本発明の方法のステップ（ａ）が再び実行された場合には、少なくともビット値の幾つかは異なる起動値を示す可能性がある。言い換えると、読み出されたビット値の幾つかは、固有の起動値を有さず、単に優先的な起動値を有するだけであり、つまり、セルはＳＲＡＭの異なる起動時において異なるビット値を取るが、その相補値よりも特定の起動値をより頻繁に取る可能性がある。
【００１５】
メモリの電源を投入することによって疑似ランダムビット値を生成する場合、メモリの全てのセルが優先ビット起動挙動を示すわけではないが、つまり、幾つかのセルは、多少のランダム起動挙動を示すが、異なる起動時に同一のメモリから読み出されたビット値における相違は、異なるメモリから読み出されたビット値における相違より極めて小さいことが明らかとなった。これは、この方法でメモリから読み出されたビット値を識別目的で使用できることを実証している。
【００１６】
言い換えると、異なるメモリ間の起動値の変化よりも同一のメモリ間の起動値の変化の方が極めて小さく、メモリセル選択の起動値におけるある程度の変化は許容できるため、本発明は、ＵＳ２００６／００６３２８６Ａ１の方法に対して著しい改良法を提供する。この認識は、真に固有の起動値を有するＳＲＡＭにおけるこれらのセルをもはや識別する必要はないため、ＵＳ２００６／００６３２８６Ａ１の場合よりも、識別目的に使用するメモリセルのサブセットの選択を容易にする。識別目的のための読み出しビットの選択を利用する場合に必要な全ては、後により詳細に説明するように、このようなメモリから読み出されたビット値とデータベースからの識別子との差が、規定の閾値を超えないか検査することである。
【００１７】
メモリセルの起動値を使用する重要な利点は、サブセットのサイズを小さいままにできることであり、例えば固有デバイスの数が〜１０７オーダーの場合、２５６メモリセルのサブセットサイズは、それらが属するメモリ及び半導体デバイスを上手に識別するのに十分である。別の利点は、識別子を記憶するためのメモリリソースを確保する必要がないことである。
【００１８】
ほとんどの識別目的に対しては、一回の疑似ランダムビット値生成ステップから読み出されたビット値は十分に信頼できるが、この方法は更にステップ（ａ）及び（ｂ）の繰り返しを含むことができ、この繰り返しは異なる起動電圧及び／又は異なる温度で行うことができ、読み出されたビット値を利用するステップは、様々な繰り返されたステップ（ｂ）から読み出されたビット値の組み合わせを使用する。
【００１９】
疑似ランダムビット値の生成、例えば、メモリの起動、及び、続く多くのデータ読み込みを多数回繰り返すことにより、どのメモリセルが異なる起動時に同一のビット値を支配的に取るかを確定することができ、これらのセルが、起動時にこのビット値を示すものとして特定できる。さらに、メモリセルは、供給された起動電圧及び動作温度のような異なる動作条件では異なる起動特性を有する可能性もある。これらの異なる特性を考慮することによって、更に信頼性のある識別子を得ることができる。
【００２０】
得られた識別子はデータベースに記憶することができる。これにより後日、半導体デバイスの識別が可能となる。
【００２１】
他の実施例によれば、この方法は更に、
識別子のデータベースをロードするステップと、
前記読み出されたビット値と複数の半導体デバイスの対応する識別子とを比較するステップと、
前記読み出されたビット値と最も適合する識別子を選択するステップと、
を含む。
読み出されたビット値と識別子のデータベース内の識別子との間のベストマッチを発見するステップは、読み出されたビット値とデータベースからの識別子との相違を、ビットドリフト値又はハミング距離として決定するステップを含んでもよい。読み出されたビット値と識別子が半導体デバイスの明確な識別子か否かを決定するために、この相違を規定の閾値と比較することができる。こうして、認識すべきデバイスのメモリからビット値のセットを読み出し、それと、以前に読み出されたビット値に基づく識別子とを比較することによって、半導体デバイスを容易に識別することが可能となる。
【００２２】
本発明の更なる実施例により、識別子に基づいた秘密キーを生成することが可能となる。半導体デバイスは、その動作のためにこのようなキーを必要とする機能を具えることができる。例えば、半導体デバイスは、安全通信を符号化又は復号化するためにキーを使用することができるし、認証目的のためにキーを使用し、例えば、半導体デバイスの保護部分へのアクセスを許可する場合に、このキーを外界から読み出されたキーと比較することができる。
【００２３】
この目的のために、この方法は更に、
各符号語が更なる複数の情報シンボルからなる、一群の符号語を提供するステップと、
その一群の符号語から１つ以上の符号語を選択するステップと、
その一つ以上の符号語の情報シンボルからキーを生成するステップと、
そのキーを出力で使用可能にするステップと、
を具え、前記識別子を生成するステップは、
前記１つ以上の符号語のそれぞれのビット値を、対応する識別子のビット値が読み出されるそれぞれのメモリセルにマッピングするマッピング関数を生成するステップと、
そのマッピング関数を半導体デバイスに記憶するステップと、
を含む。
【００２４】
こうして、揮発性メモリから１つ以上の符号語を後の段階で読み出すことができ、キーは読み出された符号語の情報シンボルから再構成できるため、１つの符号語のビット、又は単一の符号語が秘密キーのための十分な情報シンボルを提供しない場合には複数の符号語のビットを識別子にマッピングし、１つ以上の符号語の情報シンボルからキーを形成し、マッピング情報を記憶することによって、揮発性メモリからの識別子をキー生成器として使用することができる。例えばデバイスの製造者にキーを開示するために、このキーは半導体デバイスの出力で使用可能にすることができる。キーは利用可能とする前に変更することができ、例えば、生成された秘密キーから公開キーを抽出し、この公開キーのみを使用可能にすることができる。
【００２５】
半導体デバイスから不正なキーの読み出しを防止するために、半導体デバイスはキーを出力で使用可能にする手段を具え、この手段はキーを出力で使用可能にしたあとに、無効化又は破壊できるようにするのが好ましい。このような手段は、例えば符号語選択又は符号化手段を具えることができる。
【００２６】
マッピング関数は多くの方法によって実装できる。それぞれの選択したメモリセルに対するポインタのリストを、半導体デバイスの不揮発性メモリ、例えば消去可能なリードオンリーメモリに形成し、保存することができる。代わりに、ビット表を形成することによって実装することも可能であり、各ビット表セルは、揮発性メモリの少なくともサブセットのメモリセルに対応し、各ビット表セルに、マッピング関数内の対応するメモリセルの存在を示すビット値を与える。マッピングされた情報シンボルの値は、対応するメモリセルのビット値と起動ビット値の積とすることができる。
【００２７】
マッピング関数は、メモリセルのセットに対する置換表として実装することもできる。例えば、マッピング関数を上手く読み出すのに必要なランダム順を定義する情報を使用して、マッピング関数はランダムな順序で１つ以上のビット値をマッピングすることができる。このような情報もまた、半導体デバイス上に記憶することができる。
【００２８】
本発明の方法の別の実施例では、そのキー依存機能の動作を許容するために、半導体デバイス内でキーを再生成することができる。この実施例によると、この方法は更に、
マッピング関数を使用して識別子から１つ以上の符号語を読み出すステップと、
１つ以上の読み出した符号語をエラー訂正するステップと、
１つ以上のエラー訂正符号語の情報シンボルからキーを生成するステップと、
そのキーを使用する機能を動作させるステップと、
を含む。
【００２９】
典型的には、符号語は、ＢＣＨ符号、リードソロモン符号、ハミング符号などのような、エラー訂正符号語の符号表からの符号語である。エラー訂正符号語の利用は、異なる起動ステップにおいて読み出された起動値の変化を、符号語のパリティビットを用いて  エラー訂正ステップにおいて訂正できる利点を有する。こうして、キーの特性は、半導体デバイスの揮発性メモリに固有の特性に基づいているため、キーを偽造できない半導体デバイスのキー依存機能を動作させる方法が得られる。
【００３０】
キーを構成する符号語は、不正なキーへのアクセスの危険性を最小化するための比較ステップのあと、メモリから削除することが好ましい。
【００３１】
本発明の他の態様によると、
複数のメモリセルを有する揮発性メモリと、
複数のメモリセルの少なくともサブセットから、メモリセルの微細構造の変化に由来するそれぞれの疑似ランダムビット値からなる識別子を読み出すように構成されたコントローラと、
を具える半導体デバイスを提供する。このような半導体デバイスは、外部の識別子生成要求信号、例えば、自動試験装置又はコンピュータに応答し、本発明の方法にしたがって識別子を生成することが可能となる。
【００３２】
識別子が識別目的に使用される場合には、半導体デバイスは更に揮発性メモリに結合した出力を具えることができ、コントローラは出力にそれぞれのビット値を提供するように設定される。これにより、生成された識別子への容易なアクセスが可能となる。半導体デバイスは、このような信号を処理するためのバウンダリスキャン（ＩＥＥＥ  １１４９．１又はＩＥＥＥ  １５００）準拠の試験アクセスポート（ＴＡＰ）コントローラを具えてもよく、メモリコントローラがこれに対して応答する。これは、利用可能なＴＡＰ、例えば、識別子生成要求信号と読み出したビット値との通信のための試験データ入力（ｔｅｓｔ  ｄａｔａ  ｉｎ，ＴＤＩ）及び試験データ出力（ｔｅｓｔ  ｄａｔａ  ｏｕｔ，ＴＤＯ）のピンを使用することができる。
【００３３】
メモリコントローラは更に、サブセットのサイズを記憶するためのプログラミング可能な記憶手段を具えることもできる。これにより、サブセットサイズの動的な設定が可能となり、これは半導体デバイスのバッチがどの程度大きくなるのか分からない場合に有利となりうる。
【００３４】
識別子は、半導体デバイスへのアクセスの権限を与えるためのキーを生成する目的で使用できる。この目的のために、半導体デバイスは、更に、
各符号語がさらに複数の情報シンボルからなる一群の符号語の１つ以上の符号語の情報シンボルからキーを生成するための出力と、
符号語のビットを識別子のそれぞれのビット値へマッピングするためのマッピング関数を生成するための手段と、
マッピング関数を記憶するための不揮発性メモリと、
キーを出力の送る通信手段であって、キーがすでに生成されている場合には無効化される通信手段と、
他のキーを受信するための入力と、
マッピング関数を使用して識別子からキーを抽出する抽出手段と、
前記キーを前記他のキーと比較するための比較器を具え、半導体デバイスの少なくとも一部へのアクセスを許可する為の許可手段と、
を具える。
【００３５】
この半導体デバイスは、半導体デバイスの少なくとも一部へのアクセスを許可するキーが半導体デバイスの揮発性メモリの固有の特性に基づいているという事実によって不正使用できない認可機構の利益を有する。半導体デバイスがマッピング関数も含めてコピーされたとしても、コピーされた揮発性メモリは異なる起動挙動を示し、選択した１つ以上の符号語を再生できないため、そのコピーは機能しない。
【００３６】
本発明をいくつかの例について添付の図面を参照してより詳細に説明するが、本発明はこれらの例に限定されない。
【００３７】
図面は単なる模式図に過ぎず、縮尺どおりに描かれてはいないことを理解されたい。図面全体を通して、同一又は類似の部分を示すために同一の参照番号が使用されていることも理解されたい。
【００３８】
ＳＲＡＭのような複数のメモリセルを有する揮発性メモリを有する半導体デバイスに、識別子を割り当てる方法の実施例を図１に示す。本出願との関連で、メモリセルは単位データ要素、例えばビットを記憶するように配置されている。ＳＲＡＭ型の揮発性メモリ、つまり起動時に疑似ランダムビットパターンを示すメモリに対して、方法１００をまず説明する。第１のステップ１１０において、半導体デバイスのメモリは規定の動作条件、つまりメモリセルがそれぞれの疑似ランダムビットを示すことができる規定の起動電圧Ｖ及び規定の温度Ｔの下で電源が入力される。揮発性メモリは、どのような情報も含まない、つまりほとんど電荷を含まない状態から電源を投入されることは明らかである。
【００３９】
後により詳細に示すように、事前に予測できないが、かなりの程度再現可能であるため、ビット値は疑似ランダムである。ビット値の再現性とランダム性は各メモリセルが、メモリセル間の製造パラメータの潜在的な変化に起因する固有の挙動を示すことに由来している。言い換えると、各セルは固有の微細構造を有し、そのためセルはＳＲＡＭ型メモリセルに対しては異なる起動挙動などの異なる挙動を有する。挙動におけるこの相違は、本発明において有効に利用されている。
【００４０】
起動電圧の値は、メモリのトランジスタの閾値電圧を超えるように選ばれる。起動電圧Ｖの実際の適切な値は揮発性メモリが実現される技術に依存し、例えば、ＣＭＯＳ１２技術において開発されたメモリに対しては、０．７Ｖから１．５Ｖの範囲のどの値でも適切であるが、例えば、他の半導体技術の場合にはこの範囲外の値も使用できる。
【００４１】
ステップ１１０は、識別子生成要求信号、つまり半導体デバイスをトリガして本発明の方法の実行を開始させる信号によって開始できる。
【００４２】
次のステップ１２０において、メモリの少なくともサブセットに記憶されたデータを読み出す。メモリ全体からのデータの読み出しは、特にメモリが大きなサイズ、例えば数メガビットの時には極めて多大な時間を必要とするため、メモリ全体ではなくメモリの一部からのデータの取得が好ましい。さらに、揮発性メモリからビット値を読み出すために使用される幾つかの装置は、制限されたデータ容量に対処できるのみであるから、メモリ全体の読み出しを阻止する。
【００４３】
ステップ１２５において、更なる測定が要求されたか決定する。異なる読み出しステップ、例えば、異なる温度、異なる起動電圧又はこれらの異なる条件の組み合わせで行われるし、異なるＳＲＡＭ型メモリ起動からビット値の異なるセットを読み出すことができ、各起動ステップとデータ読み出しステップは、様々な起動間の揮発性メモリの選択したサブセットに対する起動ビット値の変化を検出できるように、固定されたＴ及びＶで何度も繰り返される。これにより、例えば、サブセットにおける各メモリセルの起動挙動のランダム性、例えば、セルが起動時に特定のビット値を取る強い傾向があるかどうかを発見できる。多数の起動及びデータ読みだしを行うか否かの決定は、ステップ１２５においてなされ、Ｔ及び／又はＶをそのあとの追加ステップ１３０において変更できる。
【００４４】
このようなデータ読みだしからの多数のデータセットが存在する場合（これはステップ１３５において確認される）、これらのデータセットは、ステップ１４０において、例えばデータセットを平均化することによって組み合わせることができる。これについて以下により詳細に説明する。読み出されたデータは、ステップ１４０において組み合わされたデータにでき、ステップ１５０において識別子として半導体デバイスに割り当てられ、ステップ１６０において適切なデータベースに記憶される。識別子生成のために使用される揮発性メモリのサブセットサイズは、識別子のサイズがデータベースに記憶するのに適したサイズに選択し、例えば過剰なデータベースサイズとならないようにすることができる。
【００４５】
方法１００は、ＶＥＱＴＯＲ１２と呼ばれる半導体デバイスのバッチに対して試験され、これらのデバイスは、ＣＭＯＳ１２プロセスの開発、認定及び監視のために組織内で出願人に使用される手段である。ＶＥＱＴＯＲ１２は、揮発性メモリの実施例としてＳＲＡＭを具えている。メモリの電源が切られたときに揮発性メモリの内容は消去されるため、起動された揮発性メモリのメモリセルにおけるビット値は、起動プロセスの結果であることを強調しておく。そのビット値は、つまり、メモリセルにおいて記憶されたビット値は、セルが論理「０」又は「１」のいずれか一方を示す傾向がない場合にランダムに生成されるか、セルが論理「０」又は「１」のいずれか一方を示す傾向が在る場合に予測可能な値を有するかのどちらかである。言い換えると、メモリセル内のビット値は、揮発性メモリの起動によって生成される。
【００４６】
特定のビット値の想定は、ＳＲＡＭセルのインバータ対におけるインバータは製造変化のために完全に同一ではないという事実に起因している。その結果として、セルの相補的な半部が充電状態に到達するときに、一方の半部がこれらの変化のために勝る傾向にある。
【００４７】
図２は、Ｖ＝１．２Ｖ及びＴ＝２５℃でのＶＥＱＴＯＲ１２デバイスに対してなされた一回の起動及びデータ読み出しステップの結果を与えている。２５６ビットのサイズ（１６ビットの１６ベクトル）を有するメモリのサブセットからのデータ読み出し結果が図示されている。この評価において、サブセットの全サイズは２８４８ビットである（図３はその一部を示す）。サブセットサイズは、評価において信頼できる統計を得るように選ばれたことを強調しておく。識別目的のために、ずっと小さいサブセットを使用することができ、例えば、数百ビットのオーダーのサブセットは、数千万のデバイスを識別するのに十分な大きさである。
【００４８】
【表１】
2009533741.tif 000003
【００４９】
図３は、Ｖ＝０．８Ｖ，Ｖ＝１．２Ｖ，Ｔ＝−２０℃，Ｔ＝２５℃，Ｔ＝８０℃の全ての組み合わせで行われた計４２回の起動ステップと、次のデータ読み出しステップの結果を示し、ここでは７つの独立した起動と次のデータ読み込みがＴ及びＶの各組み合わせに対して行われた。図３において、小数の値は、全４２回の測定に亘る対応するメモリ位置から読み出されたビットの平均値を表している。表１は１００を超えるＶＥＱＴＯＲ１２デバイスバッチからランダムに選択したＶＥＱＴＯＲ１２（ＩＣ１８）に対するこれらの測定の結果をまとめている。これは、選択したサブセットにおける十分な数のメモリ位置が、起動時に同一のビット値を取ることを示しており、読み出されたデータを識別子又は署名として使用するための基盤を提供している。
【００５０】
１００を超えるＶＥＱＴＯＲ１２デバイスのセットからランダムに選択した計三個のＶＥＱＴＯＲ１２デバイスを評価した。識別目的のためには、デバイスに対して誤った識別子を割り当てることを防止するために、単一のデバイスから読み出されるビット値の変化は、異なるデバイスから読み出されたビット値の変化よりも極めて小さいことが重要である。これを計算できる幾つかの方法が存在する。例えば、２つのバイナリデータのセットの間でハミング距離、つまり、異なるビット位置の総数を計算できる。ビットドリフトを計算するためには、次式を使用できる。
ビットドリフト＝（異なるビット数／ビットの総数）×１００％
【００５１】
表２はデバイスセットからランダムに選択した３個のＶＥＱＴＯＲ１２デバイスのビットドリフトの要約を与えている。この測定によって、デバイス当たりのビットドリフトはとても小さく、典型的には約１０のハミング距離に対応していることが示された。さらに、Ｖｄｄ＝０．８Ｖに対しては、温度の増加と共にビットドリフトが小さくなる明確な傾向が存在する。こうして、これらのデータセットから、高温では適度な起動電圧ＶＤＤに対してより安定した署名（つまりビット値）を得ることができると結論できる。
【００５２】
【表２】
2009533741.tif 000004
【００５３】
デバイス間のビットドリフト、又はハミング距離の表示を図４から得ることができる。ここで、３個のランダムに選択したデバイスに対する、４２回の測定に亘る平均ビット値から、グレースケールの表示が得られる。白い四角は一貫して論理「０」を出現させたメモリ位置を示し、一方、グレーの四角は４２回の測定に亘って、「０」と「１」の混合して出現したメモリ位置で、より暗いグレースケールはより低い平均値を示しており、例えば、位置４１０は平均値０．４に対応しているのに対し、位置４２０は平均値０．７に対応している。
【００５４】
図４から、３個のデバイスの署名、つまり読み出されたビット値のパターンは完全に相違していることが直ちに明らかとなる。これは、例えば異なるデバイスから読み出されたビット値の個々のセット間のハミング距離において表され、デバイスＩとデバイスＩＩの読み出された各ビット値のセット間のハミング距離は１２１、デバイスＩとデバイスＩＩＩの読み出された各ビット値のセット間のハミング距離は１２１、デバイスＩＩとデバイスＩＩＩ読み出された各ビット値のセット間のハミング距離は１１８であった。これらのハミング距離は、単一のデバイスの読み出されたビット値の２つのセット間のハミング距離よりも１桁大きい。このことも、読み出されたデータセットを識別目的で使用できることを示している。
【００５５】
この時点において、方法１００は別のタイプの揮発性メモリ、例えばＤＲＡＭ型メモリに使用することもできることを強調しておく。このようなメモリにおいて、異なるセルの電荷リーク速度は、セルの微細構造のばらつきにより互いに異なる。ステップ１１０において、揮発性メモリの起動は、メモリセルに規定のビット値、例えば全て「１」のセットを記憶させ、ステップ１２０は、ＤＲＡＭメモリセルの全てではなく幾つかが規定のビット値を失わないように選ばれた規定の期間後にビット値のサブセットを読み出す。これにより、ＤＲＡＭメモリに図４に示す署名と同様の署名を与え、ＤＲＡＭの読み出されたビット値から生成された識別子を同様の方法で使用することができる。
【００５６】
図５は本発明の方法の別の実施例のフローチャートを示している。以前に説明したステップ１１０，１２０，１２５，１３０，１３５，１４０及び１５０に加えて、方法５００は識別子のデータベースをロードするステップ５１０を含む。このデータベースにおける識別子は方法１００によって生成された識別子であり、データベースは本発明の方法のステップ１６０において生成されたデータベースである。言い換えると、データベースは図１に示す方法１００の実施例によって、複数の半導体デバイスのそれぞれの揮発性メモリから抽出された識別子を具える。
【００５７】
次のステップ５２０において、そのデータベースから識別子が選択され、この選択した識別子は、ステップ５３０において、識別すべき半導体デバイスから読み出されたビット値と比較される。その比較は多くの方法で行うことができる。例えば、選択した識別子と読み出されたビット値との間で、ハミング距離又はビットドリフトを計算することができる。これは、識別子及び／又は読み出されたデータが複数回の起動ステップと、次のデータ読み出しステップに基づく場合、平均ハミング距離又はビットドリフト値とすることができ、あるいは各メモリセルごとに図３に示すセルの再現可能なビット値を取る傾向の強さに基づいた重み係数を用いてハミング型の距離計算のような他の比較技術を使用できる。
【００５８】
比較は、典型的にはデータベースからの識別子と、識別すべき半導体デバイスから読み出されたビット値との差の類似性を示す値を生じる。ステップ５３５において、この値は規定の閾値と比較され、その閾値は、識別子と読み出されたビット値との間の類似性の必要なレベル又は最大許容差違を規定している。例えば、ＶＥＱＴＯＲ１２デバイスに対して行われた実験において、単一のデバイスに対しては、観測されたハミング距離は典型的には５〜１５程度であって、一方、異なるデバイスから読み出されたビット値間のハミング距離は、典型的には１００を上回った。こうして、この特別な例において、１０〜２０程度の閾値の選択はデータベースの識別子を使用して正しいデバイスの識別の成功をもたらすはずである。
【００５９】
ステップ５３５において、データベースにおける識別子が読み出されたビット値と一致しないと判断された場合、一致する識別子が発見されるまでステップ５２０，５３０及び５３５が繰り返され、その後、ステップ５４０において識別は終了し、識別された半導体デバイスに関する情報、例えばバッチナンバー、生産場所などの情報の通信方法をユーザに知らせることができる。
【００６０】
図６は本発明の半導体デバイス６００を模式的に図示している。デバイス６００はメモリコントローラ６２０に結合した揮発性メモリ６１０を有している。メモリコントローラ６２０は、識別子生成目的のために、メモリ６１０のメモリセルの規定のサブセットから疑似ランダムビット値を読み出すように設定されている。疑似ランダムビット値は、以前に説明したように、読み出される対応するメモリセルの微細構造に由来している。コントローラ６２０はＳＲＡＭ型メモリの場合にはメモリ６１０の起動時にビット値を読み出し、又はＤＲＡＭ型メモリの起動時にメモリ内に規定のビットパターンを記憶し、プログラム可能な規定の遅延後にメモリから疑似ランダムビット値を読み出すように設定することができる。
【００６１】
サブセットの寸法を、メモリコントローラ６２０においてハードコーディングすることもでき、又はプログラム可能とすることもできる。このためサブセットのプログラム可能な寸法を記憶するように、メモリコントローラ６２０は、例えば、小さなフラッシュメモリ、１つ以上の適切なレジスタなど、データ記憶設備６２２を有することもできる。メモリコントローラ６２０は入力６４２を介して与えられた信号に応答することができる。その信号は典型的には識別子の生成を要求し、したがってメモリ６１０の起動もトリガする。出力６４４はメモリ６１０から読み出されたデータを受信するように設定されている。
【００６２】
メモリコントローラ６２０は入力６４２に直接接続することができる。代わりに、半導体デバイス６００は、さらに、ＩＥＥＥ  １１４９．１準拠のテストアクセスポート（ＴＡＰ）コントローラ６３０を具えることもでき、それはデバイス６００の試験モードの制御に従事させることもできる。ＴＡＰコントローラは、ＴＡＰ６４０からの命令を受信するために命令レジスタ（図示せず）を有することができる。バウンダリスキャン規格は、独自仕様の命令の使用を許可されているため、メモリコントローラ６２０の制御の下でメモリ６１０の起動とデータの読み出しをトリガする命令を与え、ＴＡＰコントローラ６３０に対する命令セットに追加することができる。入力６４２はＴＤＩであっても、出力６４４はＴＡＰ６４０のＴＤＯであっても、メモリ６１０から出力６４４までのデータ経路はＴＡＰコントローラ６３０の制御の下での走査チェーンを具えてもよい。
【００６３】
本発明は内蔵揮発性メモリデバイスのセルの微細構造における固有の変化を有効利用しているだけではなく、このような疑似ランダムビットの挙動を示す半導体デバイスの基板上の分散揮発性メモリ、例えば、一群のフリップフロップもまた、このような有効利用に等しく適していることが理解されよう。どの場合においても、メモリセルの設計は、前記の微細構造依存効果の検出を可能とするために、特定のビット値になる設計ベースの傾向を避けることが好ましい。
【００６４】
この時点で、本発明の方法は、真正な又は安全なデータ通信を検証又は生成するなどのために、セキュリティ目的のための識別子、つまりＩＣへのアクセスを認証するための独自のキーを生成することにも使用できることを強調しておく。本発明との関連で、アクセスの認証は、例えばセットトップボックスなどのデコーダなどの半導体デバイスによって処理される内容へのアクセスを含む。
【００６５】
図７は方法７００のフローチャートを示し、これはキー生成の目的のために揮発性メモリ署名を利用する第１の実施例を与える。方法７００はステップ１１０，１２０，１２５，１３０及び１４０を使用して開始し、これらのステップはすでに方法１００の詳細な説明に記載されている。更に、ステップ７１０において符号表から符号語が選択される。適切な符号表の例として、例えばＢＣＨ符号表、ハミング符号表、リードソロモン符号表などの一群のエラー訂正符号語の要素から成る符号語が挙げられる。符号表の各符号語は、典型的にはｋ情報シンボル及び最小距離ｄを有する長さｎの符号語であり（ｎ、ｋ、ｄは符号表固有の正整数）、各符号語は固有の情報シンボルセットを有することが好ましい。
【００６６】
情報シンボルは符号語におけるビットパターン、つまりｎビットのサブセットであり、一方、符号語は更に、情報シンボルの読み出しにおけるエラーを訂正するために多くのパリティビットを具える。したがって、異なる起動からの識別子ビット値間のハミング距離がゼロより大きい場合には、エラー訂正符号の使用が必要となる。エラー訂正符号の理論は、当業者にとって周知であり、例えば、Ｗｉｃｋｅｒの”Ｅｒｒｏｒ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍｓ  ｆｏｒ  Ｄｉｇｉｔａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  ａｎｄ  Ｓｔｏｒａｇｅ”，Ｐｒｅｎｔｉｃｅ−Ｈａｌｌ  １９９５、又はＬｉｎとＣｏｓｔｅｌｌｏの”Ｅｒｒｏｒ  Ｃｏｎｔｒｏｌ  Ｃｏｄｉｎｇ：Ｆｕｎｄａｍｅｎｔａｌｓ  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ”，Ｐｒｅｎｔｉｃｅ−Ｈａｌｌ  １９８３を参照されたく、このため更なる説明は行わない。エラー訂正符号のｋ情報シンボルを、特定の半導体デバイス機能を含む半導体デバイス（の部分）へのアクセスを許可するための認証キーとして使用できることを言及すれば十分である。
【００６７】
本発明の方法は、ノイズの多いデータから符号化情報、例えばキーの読み出しを可能にする、いわゆるヘルパーデータ（ｈｅｌｐｅｒ  ｄａｔａ）法の特定の例である。ヘルパーデータ使用の背後にある理論のより詳細な説明は、Ｊ．Ｐ．  Ｌｉｎｎａｒｔｓ，  Ｐ．Ｔｕｙｌｓ，”Ｎｅｗ  Ｓｈｉｅｌｄｉｎｇ  Ｆｕｎｃｔｉｏｎｓ  ｔｏ  Ｅｎｈａｎｃｅ  Ｐｒｉｖａｃｙ  ａｎｄ  Ｐｒｅｖｅｎｔ  Ｍｉｓｕｓｕ  ｏｆ  Ｂｉｏｍｅｔｒｉｃ  Ｔｅｍｐｌａｔｅｓ”ｉｎ  Ｊ．Ｋｅｔｔｌｅｒ  ａｎｄ  Ｍ．  Ｎｉｘｏｎ，  ｅｄｉｔｏｒｓ，  Ｐｒｏｃｅｅｄｉｎｇ  ｏｆ  ｔｈｅ  ３ｒｄ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ａｕｄｉｏ  ａｎｄ  Ｖｉｄｅｏ  Ｂａｓｅｄ  Ｐｅｒｓｏｎ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ，  ｖｏｌｕｍｅ  ２６８８  ｏｆ  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，  ｐａｇｅ２３８−２５０，  Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，  ２００３に見つけることができる。
【００６８】
符号語が選択されたあと、ステップ７２０において、選択された符号語のビットは識別子の対応するビット値へ、つまりこれらの識別子ビットが読み出されるメモリセルへマッピングされる。メモリセルは、異なる起動条件の下での同一の起動ビット値の再生傾向などの適切性基準に基づいて選択され、以前説明したように、ステップ１１０，１２０，１２５，１３０及び１４０を何度も繰り返すことによって決定できる。
【００６９】
図８は、どのように符号語のマッピング関数を構築できるかの幾つかの概要例を示している。符号語８１０の４ビットが半導体デバイスの揮発性メモリのサブセット８２０上にマッピングされている。ここで、明確さのみのために揮発性メモリの４ビット符号語と１６ビットサブセットを示し、典型的には、より大きなサイズの符号語８１０とサブセット８２０を使用する。さらにサブセットは一例としてのみ使用し、以前に説明したように識別目的のための完全なメモリの使用もまた実行可能である。
【００７０】
マッピングにおいて、シンボル８１０とサブセット８２０の間の矢印によって示すように、適切なメモリセル、つまり起動時に符号８１０のそれぞれのビットに対応するビット値を取るメモリセルを選択する。マッピング関数はサブセット８２０の選択したメモリセルへのポインタ表として実現でき、半導体デバイス、例えば、ＲＯＭ，ＰＲＯＭ又はＥＥＰＲＯＭのような不揮発性メモリ中に記憶できる。ポインタは置換に記憶でき、ポインタの順序は符号語ビットのスクランブルされた順序を指し、例えば第１のポインタは符号語の第３のビットを指し、第２のポインタは符号語の第７のビットを指す、などとすることができる。
【００７１】
代わりに、ビット表８３０を形成してもよい。このようなビット表８３０は、サブセット８２０のマスク又はオーバーレイとして働き、どのメモリセルが符号語の情報シンボルにマッピングされるかを特定する。図８において、「１」とラベルされたビット表８３０のセルは、符号語ビットマッピングのために選択されたサブセット８２０のメモリセルを示している。符号語８１０のビットの実際のビット値は、典型的にはビット表８３０のラベルの値と下にあるメモリセルの起動ビット値との積である。ビット表８３０もまた、置換形式で記憶できる。
【００７２】
符号語を揮発性メモリ上にマッピングする上記の方法は、本発明に不可欠ではないことは理解されよう。他の等しく実行できるマッピングアルゴリズムを本発明の教示から離れることなく使用できる。
【００７３】
図７に戻り説明すると、選択された符号語の情報シンボルは、半導体デバイスのある機能が、その動作のために要求するキーとして使用される。このような機能には、識別子ベースのキーによる外界から受信したキーの認証、他の既知のキーベースの機能と同様に、識別子ベースのキーによるデータ通信の符号化又は復号化がある。符号語の情報シンボルは、ステップ７３０においてキーに割り当てられる。
【００７４】
単一の符号語における情報シンボルの数は、安全キーの生成のためには不十分であるかもしれない。例えば、符号語は１６情報シンボルを提供する一方、安全キーは６４情報シンボルを必要とする。これはステップ７３５においてチェックされる。キーが単一の符号語によって提供される符号語より多くの情報シンボルを必要とする場合、十分な量の情報シンボルが得られるまでステップ７１０，７２０及び７３０を繰り返すことができる。種々の符号語から得られた情報シンボル（ＩＳ）を連結によって単一の安全キーに割り当てることができる。
＜ｋｅｙ＞＝＜ＩＳ  ｗｏｒｄ１＞＜ＩＳ  ｗｏｒｄ２＞＜ＩＳ  ｗｏｒｄ３＞＜ＩＳ  ｗｏｒｄ４＞
キー生成の完了時に、ステップ７４０において、マッピング関数が半導体デバイス、例えば不揮発性メモリ中に記憶されるとともに、ステップ７５０において、そのキーが外界に使用可能にされる。ステップ７５０及び７４０が実行される順序は大きな意味はなく、図７に示す順序から外れてもよい。一度キーが外界に利用可能となった場合、この通信を可能にした半導体デバイスに搭載された回路を、ステップ７６０において、無効化、例えば破壊して、権限のないメンバーがキーにアクセスするのを防止することが好ましい。回路の破壊は既知の破壊技術、例えば通信に不可欠の導電性パス内のヒューズを破壊するなどの手段を使用して達成でき、また、例えばハードウェア内に符号語の符号器が存在する場合にはこれを無効化、例えば破壊してもよい。
【００７５】
キーは、変形態様、例えば識別子にマッピングされたキー、つまり秘密キーから生成された公開キーの態様で外界に利用可能とすることができる。公開及び秘密双方のキーを使用したセキュリティシステムの理論、つまり非対称暗号化は、当業者によく知られており、したがって更に議論しない。
【００７６】
図９に示す方法９００のフローチャートは、その動作にキーを必要とする半導体デバイスの機能が、方法７００で生成されたキーを使用することでどのような恩恵を受けることができるかを実証している。方法９００は、方法１００と共通のステップ、特にステップ１１０，１２０，１２５，１３０，１３５及び１４０を有する。方法９００の場合、これら全てのステップは搭載された半導体デバイス上で実行でき、このことは、実際には、随意のステップ１３０において、加熱素子が半導体デバイス上に具えられていなければ、温度の調整は実現可能ではないことを意味している。しかしこれは好適な実施例ではない。
【００７７】
揮発性メモリの起動時、又はメモリが記憶された規定のビット値の幾つかを消失するのを待つとき、方法９００は更に、方法７００によって生成されたキーを読み出すステップ９１０を含む。この目的のために、ステップ７３０において保存されたマッピング関数を使用して、半導体デバイスの揮発性メモリの選択したメモリセルから１つの符号語、又はもしキーが１つ以上の符号語からの情報シンボルを含む場合には、複数の符号語のビットを読み出す。読み出された符号語は、符号語の情報シンボルを読み出すために復号化される。典型的には、復号化ステップは、それぞれ符号語マッピング段と抽出段とからの識別子の起動値との差を消去するためにエラー訂正するステップを含む。典型的には、当業者によく知られているように、ステップ７２０における選択したメモリセルのビット値と方法９００のステップ１２０におけるこれらのセルから読み出されたビット値との間のハミング距離が距離ｄを超えない場合には、符号語はエラー訂正し、情報シンボルをエラー訂正された符号語から読み出すことができる。ステップ９１０はキーの情報シンボルが読み出され、キーに割り当てられるまで繰り返される。
【００７８】
ステップ９２０において、キーは半導体デバイスのキー依存機能の動作を可能とするために使用する。以前に説明したように、このような機能は、キーを使用した安全データ通信、例えばインターネットにおけるデータ通信、の符号化又は復号化、受信したメッセージの署名の認証、送信するメッセージのキーによる署名などを含むことができ、また外界から提供されたキーの認証を含むことができる。
【００７９】
後者の例は、方法９００の部分９２５に与えられており、一例のみが示されるが、これに限定されない。ステップ９３０において、他のキーを外界から受信する。揮発性メモリ識別子に基づくキーと外界から受信したキーとをステップ９３５において比較する。キーが同一の場合、ステップ９５０において、半導体デバイスの安全部分又は機能へのアクセスが許可され、キーが同一でない場合、このアクセスはステップ９４０において拒絶される。
【００８０】
許可されていないメンバーが半導体デバイスへの他のキーの通信を盗聴することによってキーを入手することを防止するために、他のキーを符号化された形態で提供することができる。暗号化された形態で他のキーを提供する例は、半導体デバイスからランダムなメッセージを作成し、他のキーを使用してそのメッセージを符号化し、他のキーを、半導体デバイスに符号化されたメッセージの形態で提供し、そのメッセージを揮発性メモリからの識別子に基づくキーを使用して復号化する。復号化されたメッセージがステップ９３５においてチェックされ、前記ランダムメッセージに一致する場合には、他のキーは揮発性メモリからの識別子に基づくキーと同一のキーであり、半導体デバイスへのアクセスは、ステップ９５０において許可することができる。このキー通信プロトコル自体は既知であり、他の既知安全通信プロトコルも等しく適していることを強調しておく。この実施例において、ステップ９１０及び９２０は任意の順序で実行することもでき、例えばステップ９１０の実行は、ステップ９２０における他のキーの受信によりトリガすることができる。
【００８１】
一般的に、読み出された符号語から構築したキーと、外界から受信した他のキー（もしあれば）は、例えばステップ９６０において、権限のないキーの取得を防止するために、キー制御機能の動作の完了時に、それらのキーを半導体デバイスから除去又は削除することが好ましい。これは、一時的に記憶されたメモリからキーを消去することによって実行できる。
【００８２】
安全な半導体デバイス１０００の実施例を図１０に模式的に示す。半導体デバイス１０００は、エラー訂正符号化及び復号化アルゴリズム、つまり符号語を生成し読み出すためのアルゴリズムがソフトウェアで実装されているプロセッサー１０１０を有する。プロセッサ１０１０は、本発明の方法７００にしたがってキーを生成するための外部信号源（図示せず）に応答することができる。代わりに、プロセッサ１０１０は、揮発性メモリ６１０の第１の起動時にのみこのようなキーを生成することができる。プロセッサ１０１０は、コントローラ６２０（プロセッサ１０１０に内蔵できる）に命令して、メモリ６１０から識別子を読み出すように設定できる。プロセッサ１０１０は更に、識別子を評価し、プロセッサ１０１０によって生成された符号語のビット値を適切な識別子ビット値に、つまり適切なメモリセルにマッピングするように設定できる。
【００８３】
半導体デバイスは更に、符号語ビットのメモリセルへのマッピング関数を記憶するために不揮発性メモリ１０２０を具える。プロセッサ１０１０は、生成されたキーを出力１０４４へ伝えるために、破壊可能通信回路１０３０を介して出力１０４４に結合することができる。破壊可能通信回路１０３０は、一例では、プロセッサ１０１０から出力１０４４間での信号パスにおいて破壊可能なヒューズを具えることができるがこれに限定されず、他の知られた破壊技術も等しく適用できる。典型的には、通信回路１０３０は一度キーが出力１０４４に伝えられたら無効化される。
【００８４】
プロセッサ１０１０は更に、識別子ベースのキーを必要とする機能を行うように設定する。例えばプロセッサ１０１０は、半導体デバイス１０００の保護された機能へのアクセスを許可するために、他のキーを受信する入力１０４２に結合でき、このキーは以前に説明したように符号化された形態とすることができる。プロセッサ１０１０は、他のキーを受信し次第、不揮発性メモリ１０２０に記憶されたマッピング関数を使用して、メモリ６１０からの識別子ベースのキーを読み出すように設定できる。このため、必要ならば揮発性メモリ６１０の電源の切断に先行して、揮発性メモリ６１０を起動させ、その後コントローラ６２０がマッピング関数にしたがってメモリセルのビット値を読み出すように、プロセッサ１０１０を設定する。代わりに、プロセッサ１０１０は、ＤＲＡＭ型揮発性メモリに規定のビット値セットをプログラムし、コントローラ６２０に、規定の遅延時間後に、マッピング関数にしたがってメモリ６１０からのビット値を読み出すように命令するよう設定することもできる。
【００８５】
プロセッサ１０１０は、キーが一致した場合に半導体デバイス１０００のキー保護部分へのアクセスを許可するために、メモリ６１０から読み出したビットを復号化して、キーの情報シンボルを読み出し、そのキーを入力１０４２から受信した他のキーと比較するように設定することができる。プロセッサ１０１０は、代わりに、データ通信符号化及び／又は復号化のような、識別子ベースのキーの使用を必要とする他の機能を動作するように設定することができる。
【００８６】
最後に、プロセッサ１０１０は、比較の完了後、その内部メモリ、例えばレジスタ、又は他のメモリからキー及び他のキー（もしあれば）を削除するように設定する。
【００８７】
半導体デバイス１０００の上記のソフトウェアベースの実施例は一例に過ぎず、これに限定されず、例えばハードウェア実装のエラー訂正符号化及び復号化、及び／又はキーベースのデータ通信暗号化又は復号化ブロック、及び／又はハードウェア実装のキーと他のキーとの比較器などが存在する他の実施例は、等しく実現可能であることを強調しておく。このような実装は、それ自体知られており、簡潔さのために更に説明しない。
【００８８】
上述の実施例は本発明を制限する訳ではなく、当業者は添付の請求項の範囲から離れることなく、多くの代わりの実施例を設計できることに注意されたい。「含む」、「具える」という語は、請求項に並べられたもの以外の素子やステップの存在を除外するものではない。単数はこのような素子の複数の存在を除外しない。本発明は幾つかの明確な素子を具えたハードウェアによって実装できる。幾つかの手段を列挙しているデバイス請求項において、これらの手段の幾つかはハードウェアの１つ及び同一のアイテムによって実施できる。ある測定が完全に異なる独立請求項において列挙される事実は、単にこれらの手段の組み合わせは有利に使用できないことを示しているわけではない。
【図面の簡単な説明】
【００８９】
【図１】本発明の方法のフローチャートを示している。
【図２】本発明の方法を使用した半導体デバイスから読み出されるビット値を模式的に示している。
【図３】本発明の方法を使用した半導体デバイスから読み出される平均ビット値を模式的に示している。
【図４】本発明の用法を使用した多くの半導体デバイスのメモリセルのサブセットからの平均起動ビット値のグレースケールマッピングを示している。
【図５】本発明の方法の別の実施例のフローチャートを示している。
【図６】本発明の半導体デバイスを示している。
【図７】本発明の方法の更に別の実施例のフローチャートを示している。
【図８】図７の方法の態様にしたがったマッピング関数を模式的に示している。
【図９】本発明の方法の更に別の実施例のフローチャートを示している。
【図１０】本発明の別の半導体デバイスを示している。
【図１】
2009533741.tif 000005
【図２】
2009533741.tif 000006
【図３】
2009533741.tif 000007
【図４】
2009533741.tif 000008
【図５】
2009533741.tif 000009
【図６】
2009533741.tif 000010
【図７】
2009533741.tif 000011
【図８】
2009533741.tif 000012
【図９】
2009533741.tif 000013
【図１０】
2009533741.tif 000014
【国際調査報告】
2009533741.tif 000015
2009533741.tif 000016
2009533741.tif 000017
2009533741.tif 000018
2009533741.tif 000019