(57)【特許請求の範囲】
【請求項１】
メモリ素子の内容を読み出し、少なくとも部分的に前記内容からデジタル識別子を導出するためのＰＵＦ制御手段（１２０）に接続可能な半導体メモリ素子（１１０）を含む、電気物理的複製不可能関数（ＰＵＦ）（１００、２００）であって、メモリ素子は、少なくとも２つの異なる安定状態になるように構成されているタイプのものであり、安定状態はメモリ素子の内容を表し、
メモリ素子は、
メモリ素子に電力供給し、メモリ素子を通電状態にするための電源入力と、
１つ以上の制御信号を受信するための制御入力（１１２）であって、制御信号はメモリ素子を少なくとも２つの異なる安定状態のうちの選択された１つに静定するように構成する、制御入力と、を含み、
メモリ素子は電源投入時に少なくとも２つの異なる安定状態のうちの１つになるよう構成されており、メモリ素子がなる特定の安定状態は、メモリ素子の少なくとも部分的にランダムな物理的特性に、少なくとも部分的に依存しており、
電源投入時にメモリ素子がなる特定の安定状態はまた、制御信号を受信する制御入力にも依存しており、
電気物理的複製不可能関数は、メモリ素子の電源投入を含んで少なくともメモリ素子の静定まで継続する期間の間、基準電圧線で制御入力を接続することによって、メモリ素子がなる特定の安定状態が依存する制御信号を受信しないように制御入力を遮蔽するための、遮蔽手段（１４２、１４４）をさらに含む、電気物理的複製不可能関数。
【請求項２】
メモリ素子が、メモリ素子が通電状態にあるときに少なくとも２つの異なる安定状態を可能にする複数の相互接続半導体ゲートを含み、メモリ素子の物理的な、少なくとも部分的にランダムな特性は、複数の相互接続半導体ゲートの少なくとも部分的にランダムな物理的特性を含む、請求項１に記載の電気物理的複製不可能関数（ＰＵＦ）。
【請求項３】
相互接続半導体ゲートが、交差結合ループ状に接続された少なくとも２つのゲートを含む、請求項２に記載の電気物理的複製不可能関数。
【請求項４】
交差結合ループ状に接続された２つのゲートのうちの少なくとも１つが多入力ゲートである、請求項３に記載の電気物理的複製不可能関数。
【請求項５】
メモリ素子がラッチ、フリップフロップ、またはレジスタである、請求項４に記載の電気物理的複製不可能関数。
【請求項６】
期間が少なくとも、ＰＵＦ制御手段によるメモリ素子の内容の読み出しまで継続する、請求項１から５のいずれか一項に記載の電気物理的複製不可能関数（ＰＵＦ）。
【請求項７】
デジタル識別子の導出が第一および第二タイプのデータに依存し、第一タイプのデータは事前に不揮発性メモリ（１２２）に確定的に記憶されており、第二タイプのデータはメモリ素子の少なくとも部分的にランダムな物理的特性に少なくとも部分的に依存しており、第二タイプのデータは遮蔽手段を有する請求項１で定義された１つ以上のメモリ素子からのみ読み出される、請求項１から６のいずれか一項に記載の電気物理的複製不可能関数。
【請求項８】
メモリ素子が、設定制御入力およびリセット制御入力を有するラッチを含み、設定制御入力およびリセット制御入力は各々、電源投入時にラッチがなる安定状態への変化を防止するためにラッチが維持状態になるように、基準電圧線に接続されている、請求項１に記載の電気物理的複製不可能関数。
【請求項９】
遮蔽手段がメモリ素子の電源投入とともに始まる期間にわたって遮蔽し、所定の期間に亘って継続するために、タイマを含む、請求項１から８のいずれか一項に記載の電気物理的複製不可能関数。
【請求項１０】
１つ以上の制御信号を受信するための制御入力がクロック入力を含み、メモリ素子の少なくとも一部はクロック入力での刻時受信時に起動され、遮蔽手段は刻時受信時からクロック入力を遮蔽するように構成されている、請求項１から９のいずれか一項に記載の電気物理的複製不可能関数。
【請求項１１】
メモリ素子がゲートクロックを有するレジスタを含み、遮蔽手段はゲートクロックのゲート開閉を制御するように構成されている、請求項１０に記載の電気物理的複製不可能関数。
【請求項１２】
メモリ素子が２つの交差結合ループを含み、遮蔽手段は高基準電圧または低基準電圧にクロック入力を選択可能に接続することによってクロック入力を遮蔽するように構成されており、選択された電圧は２つの交差結合ループのうちの１つをさらに選択し、電源投入時にメモリ素子がなる特定の安定状態は、２つの交差結合ループのうちの選択されなかった方ではなく、２つの交差結合ループのうちの選択された方の、少なくとも部分的にランダムな物理的特性に依存する、請求項１０に記載の電気物理的複製不可能関数（５００）。
【請求項１３】
遮蔽手段が、少なくともメモリ素子の電源投入の完了まで継続する期間の間、メモリ素子がなる特定の安定状態が依存する制御信号を受信しないように制御入力を遮蔽する、ハードウェア遮蔽手段を含む、請求項１から１２のいずれか一項に記載の電気物理的複製不可能関数。
【請求項１４】
遮蔽手段が、少なくともメモリ素子の静定からＰＵＦ制御手段によるメモリ素子の内容の読み出しまで継続する期間の間、遮蔽するためのソフトウェア遮蔽手段を含む、請求項１３に記載の電気物理的複製不可能関数。
【請求項１５】
遮蔽手段が、メモリ素子が通電状態にある間少なくとも１つの制御信号を受信すると、にメモリ素子が１つの安定状態からもう一方に変化できるようにすることによってメモリ素子への内容の書き込みを可能にするため、ＰＵＦ制御手段におるメモリ素子の内容の読み出しの後にメモリ素子の遮蔽を停止するように構成されている、請求項１から１４のいずれか一項に記載の電気物理的複製不可能関数。
【請求項１６】
メモリ素子の内容の読み出しの後にアンチエイジングデータをメモリ素子に書き込むためのアンチエイジング手段を含む、請求項１５に記載の電気物理的複製不可能関数。
【請求項１７】
遮蔽手段が、制御入力と基準電圧線との間に永久接続を含む、請求項７および８のいずれかに記載の電気物理的複製不可能関数。
【請求項１８】
半導体メモリ素子を含み、メモリ素子は少なくとも２つの異なる安定状態に構成可能なタイプのものであり、安定状態はメモリ素子の内容を表し、メモリ素子は１つ以上の制御信号を受信するための制御入力を含み、制御信号はメモリ素子を少なくとも２つの異なる安定状態のうちの選択された１つなるように構成する、電気物理的複製不可能関数（ＰＵＦ）を動作する方法であって、
方法は、
メモリ素子に電力供給し、メモリ素子を通電状態にするステップであって、メモリ素子は電力供給時に少なくとも２つの異なる安定状態のうちの１つに静定され、
メモリ素子がなる特定の安定状態は、メモリ素子の少なくとも部分的にランダムな物理的特性に、少なくとも部分的に依存している、ステップと、
メモリ素子の内容を読み出すステップと、
少なくとも部分的に前記内容からデジタル識別子を導出するステップと、を含み、
電源投入時にメモリ素子がなる特定の安定状態はまた、制御信号を受信する制御入力にも依存しており、方法はさらに、
メモリ素子の電源投入を含んで少なくともメモリ素子の静定まで継続する期間の間、基準電圧線で制御入力を接続することによって、メモリ素子がなる特定の安定状態が依存する制御信号を受信しないように制御入力を遮蔽するステップをさらに含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気物理的複製不可能関数に関する。
【０００２】
具体的には、本発明は、メモリ素子の内容を読み出し、少なくとも部分的に前記内容からデジタル識別子を導出するＰＵＦ制御手段に接続可能な半導体メモリ素子を含む電気物理的複製不可能関数（ＰＵＦ）に関し、メモリ素子は少なくとも２つの異なる安定状態になるように構成可能なタイプのものであり、安定状態はメモリ素子の内容を表し、メモリ素子は電源投入時に少なくとも２つの異なる安定状態のうちの１つになるように構成されており、メモリ素子がなる特定の安定状態はメモリ素子の少なくとも部分的にランダムな物理的特性に少なくとも部分的に依存している。
【０００３】
本発明はさらに、電気物理的複製不可能関数を実行する方法にも関する。
【背景技術】
【０００４】
物理的複製不可能関数（ＰＵＦ）は、鍵、識別子などを安全なメモリに記憶させることを含む、安全な識別の多くの形態の有利な代替案であることが証明された。
【０００５】
物理的複製不可能関数は、デジタル識別子を導出するために製造ばらつきを活用する。このためデジタル識別子は物理媒体に結びつけられている。物理的複製不可能関数はランダムな工程ばらつきに依存しているので、ＰＵＦを作成するのは容易であるが、しかし特定の事前定義された識別子を生じるＰＵＦを作成することは、絶対に不可能ではないとしても、非常に困難である。製造ばらつきは、メモリ素子の異なる物理的特性をもたらす。たとえば、物理的特性は：ドーピング濃度、酸化物厚さ、チャネル長、構造幅（たとえば金属層の）、寄生性（たとえば抵抗、静電容量）を含んでもよい。デジタル回路設計が複数回製造されるとき、これらの物理的特性はわずかに変化し、これらはまとまって、メモリ素子などのＩＣ素子の挙動にいくつかの状況において異なる振る舞いをさせる。たとえば、開始挙動は、物理的特性の中でも製造ばらつきによって決定される。
【０００６】
ＰＵＦのこの性質は、幅広い用途にこれらを適合させる。たとえば、ＰＵＦは偽造と闘うために使用されてもよい。他の製造品の特定の装置を不正にコピーすることは可能かも知れないが、オリジナルと同じデジタル識別子を生じるように十分な精度を持って埋め込まれることが可能なＰＵＦを複製することは、不可能であろう。さらなる例として、ＰＵＦは、暗号鍵を作成するために使用される。ＰＵＦを用いると、安全なメモリに鍵を記憶させる必要性が回避される。ＰＵＦはさらに、企ての間にＰＵＦが負わされる可能性のある損傷がデジタル識別子を変更するので、リバースエンジニアリングを通じて暗号鍵を得ようとする不法な企てに対する元来の保護を提供する。好ましくは、デジタル識別子は電子物理的複製不可能関数に固有である。
【０００７】
ＰＵＦは、電子装置に有利に適用されてきた。ＩＣの製造中に避けられない小さな製造ばらつきでさえ、ＩＣの異なる性質をもたらす。これらの異なる性質は、同じように動作する一群のＩＣを獲得しようと努力して、正常に抑えられる。しかしながら、ＰＵＦを作成するためには、一群のＩＣにおける個々のＩＣの間の差が活用される。
【０００８】
たとえば、いくつかのメモリ素子の開始挙動は、ＰＵＦ様の挙動を呈することが、観察されている。このようなメモリが通電または起動されると、これは互いに対する物理的配列などのメモリを作り上げる、ゲートまたはトランジスタなどの構成要素の少なくとも部分的にランダムな物理的特性に依存する内容を包含する、すなわちそのようなデータ値シーケンスを含む、傾向がある。メモリが複数回通電される場合には、同じ内容をかなりの割合まで包含することになる。残念ながら、ＰＵＦ挙動はわずかな変動に依存するので、ある程度のエラー率は避けられない。いわゆるヘルパデータを用いるエラー修正手順は、ＰＵＦが使用されるたびに、これらの変動を修正するため、および識別可能なデジタル識別子が導出されることを確実にするために、使用されることが可能である。
【０００９】
このため、複数回の電源遮断および電源投入シーケンスの後に比較されるとき、メモリの内容は大部分が同一であることが、望ましい。同時に、メモリの内容が同じタイプの別のメモリと比較されるとき、大部分が異なることが望ましい。
【００１０】
メモリの少なくとも部分的にランダムな物理的特性に対するメモリの開始値の依存が強化されれば、これらの目的はいずれも推進されるだろうというのが、本発明者らの見解である。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】国際公開第２００９／０２４９１３号
【特許文献２】国際公開第２００６／１２９２４２号
【特許文献３】国際公開第２００６／０５３３０４号
【特許文献４】国際公開第２００４／０６６２９６号
【特許文献５】欧州特許第０９１６７９０６号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１２】
その少なくとも部分的にランダムな物理的特性に対するメモリの開始値の依存性が改善された、改良型物理的複製不可能関数を有することは、有利であろう。
【課題を解決するための手段】
【００１３】
本発明による電気物理的複製不可能関数（ＰＵＦ）は、メモリ素子の内容を読み出し、少なくとも部分的に前記内容からデジタル識別子を導出するＰＵＦ制御手段に接続可能な半導体メモリ素子を含む。メモリ素子は少なくとも２つの異なる安定状態になるように構成されているタイプのものであり、安定状態はメモリ素子の内容を表す。メモリ素子は、メモリ素子に電力供給してメモリ素子を通電状態にするための電源入力、および１つ以上の制御信号を受信するための制御入力を含み、制御信号はメモリ素子を、少なくとも２つの異なる安定状態のうちの選択された方になるように構成する。メモリ素子は、電源投入時に少なくとも２つの異なる安定状態のうちの１つになるように構成されており、メモリ素子がなる特定の安定状態は、メモリ素子の少なくとも部分的にランダムな物理的特性に、少なくとも部分的に依存する。電源投入時にメモリ素子がなる特定の安定状態はまた、制御信号を受信する制御入力にも依存する。電気物理的複製不可能関数は、メモリ素子の電源投入を含み、少なくともメモリ素子の静定まで続く期間の間、メモリ素子がなる特定の安定状態が依存する制御信号を受信しないように制御入力を遮蔽する、遮蔽手段をさらに含む。
【００１４】
実験設定を作成して多くの測定を実行した後、本発明者らは、その少なくとも部分的にランダムな物理的特性に対するメモリの開始値の依存を低減する攪乱源を明らかにした。これらを制御するための、すなわちこれらに書き込むための、制御信号を受信することが可能なメモリ素子は、起動中に攪乱されるかも知れない。この攪乱は、２つのうちの１つの形態を取ってもよい。
【００１５】
第一の形態において、メモリ素子は、起動中に到着する制御信号によって上書きされてもよい。メモリ素子は原則的には適切な開始値を含み、ＰＵＦとして利用可能であるものの、その内容はその制御信号入力時にスプリアス信号によって上書きされる。第一のタイプの信号の一例は、書き込み信号である。第二の形態において、制御信号は、メモリ素子の内容をそのまま上書きせずにメモリ素子の一部を起動し、これら追加のアクティブなゲートまたはトランジスタは、メモリ素子の内容の保持を司るゲートの静定に影響を及ぼす。開始値の決定に関わるゲートが多いほど、開始は確率変動にますます依存し、ひいてはメモリ素子がますます不安定になる。第二のタイプの分散制御信号の一例は、クロック信号である。
【００１６】
さらに悪いことに、半導体回路などの電子回路への通電は完全に予測可能かつ決定的ではない。２つのタイプの問題のある信号は、必ずしも各々の開始時に発生するとは限らない。メモリ素子が静定するのにかかる時間または電源投入とクロックの最初の刻時との間の時間など、様々なシステム事象はある程度異なるだろう。たとえば、刻時は、メモリ素子がその開始値に静定される直前または直後に到着するかも知れない。前者の場合、後者よりも多くのゲートが静定中にアクティブとなり、このためＰＵＦとしてのメモリ素子の信頼性は低下する。
【００１７】
この問題の解決策の１つは、１つ以上の制御信号を受信するための制御入力を備えないメモリ素子を選択することであろう。しかしながら、標準的な半導体ライブラリからの標準メモリ素子を使用するという強い嗜好がある。このような標準メモリ素子は、さもなければ書き込み可能とはならないので、当然ながら制御入力を有する。なお、読み取り専用メモリ素子は別の理由により不適切である；標準的な読み取り専用メモリ素子は所定状態で起動するが、いくつかのランダムな物理的特性によって決定される状態では起動しないという設計のためであることに注意されたい。好ましくは、メモリ素子は揮発性の、書き込み可能メモリである。
【００１８】
本発明において使用されるメモリ素子は、それに対して制御信号を受信することが可能な制御入力を含む、メモリ素子である。これらの制御信号を使用して、メモリ素子がどの安定状態を維持するかを制御することができ、すなわち制御信号を用いてメモリ素子に書き込んでもよいだろう。
【００１９】
本発明が以下のように動作する動作中、最初にメモリ素子は通電されず、制御信号が到着してもこれに反応することはないだろう。通常、この状況は現在通電されていない装置に対応する。しかしこれは必要ではなく、いくつかの実施形態において、メモリ素子は、たとえば電力を保存するため、あるいはその内容が上書きされた後にＰＵＦを再読み込みできるようにするために、電源遮断されてもよい。いずれかの時点で、メモリ素子は通電される。するとメモリ素子は安定状態となる。素子がどの状態になるかは少なくとも部分的に、メモリ素子を構成するゲートなどの構成要素の少なくとも部分的にランダムな物理的特性によって、決定される。メモリ素子を通電する意外には、メモリ素子を安定状態にするためにメモリ素子の外部で必要とされる作業はない。
【００２０】
メモリ素子の通電中、制御信号は、メモリ入力の制御入力に接続された制御線上に来るかも知れない。しかしながら、制御信号がメモリ素子に到着するのを回避するために、遮蔽手段が制御入力に接続されている。遮蔽手段がないと、前記制御信号は、メモリ素子がなる安定状態に影響を及ぼし、あるいはこれを決定さえするだろう。遮蔽手段は、ＰＵＦ制御手段がメモリ素子の内容を読み出してしまうまで動作している。
【００２１】
メモリ素子は原則的に書き込み可能であるが、しかし遮蔽手段は、たとえば、基準電圧線への直接的な恒久的接続を提供して、メモリ素子を「維持」状態、すなわちメモリ素子がこれを現在の状態に維持して上書きされるのを防止する状態にすることによって、この能力が場合によっては恒久的に抑制されるという、副作用を有する可能性がある。
【００２２】
安定状態は通常、メモリ素子の半導体ゲート全体にわたる安定した電荷分布として実現される。
【００２３】
相互接続半導体ゲートは、交差結合ループ状に接続された、少なくとも２つのゲートを含んでもよい。２つ以上の安定状態、具体的には双安定を実現できるようにゲートを配置する方法の１つは、これらを交差結合ループ状に接続することである。たとえば、第一ゲートの出力は第二ゲートの入力に接続されてもよく、その一方で第二ゲートの出力は第一ゲートの入力に接続されてもよい。本発明は、交差結合ループのゲートが２つ以上の入力ゲート、いわゆる多入力ゲートを有するメモリ素子に、特に有利に適用されるだろう。多入力ゲートの交差結合ループは、メモリ素子を構成する好適な方法である。メモリ素子によって、たとえば交差結合ループによって実現される状態は、それ自体が交差結合ループの別のゲートの出力に直接接続されていないゲートの別の入力のうちの１つを制御することによって影響を受ける可能性があるので、多入力は、所望の多数の性質を有する揮発性メモリ素子を比較的容易に作成できるようにする。まさにこの性質は、これらが起動中に影響を受けやすくもする。多入力のいずれか１つにおけるスプリアス信号は、交差結合ループの開始挙動に影響を及ぼす可能性がある。電源投入中に到着する可能性のある制御信号からの交差結合ループを遮蔽することによって、少なくとも部分的にランダムな物理的特性への依存が増加するが、その一方で制御信号におけるランダムな再生不能開始現象への依存は減少する。多入力ゲートの例は、ＮＡＮＤゲートまたはＮＯＲゲートを含む。インバータは単一の入力しか有していないので、多入力ゲートではない。
【００２４】
好ましくは、デジタル識別子は電子ＰＵＦを識別する。メモリ素子の内容は、１ビットのみからなる。１ビットでは装置を識別するのに十分ではないものの、多数のメモリ素子が一緒になればこれを行うことができるだろう。単一のメモリ素子からより多くのビットを得るために、マルチビットメモリ素子が使用されてもよい。メモリ素子の異なるインスタンス化にわたってメモリ素子の電源投入内容が変化すれば、好ましい。たとえば、本発明による電子ＰＵＦを含む多数の装置が本発明によって製造される場合には、いくつかの装置はメモリ素子を通電するときに論理「１」を生成し、いくつかの装置はメモリ素子に通電するときに論理「０」を生成することが、好ましい。メモリ素子が多数のビットを含む場合には、これはこのようなメモリ素子の各ビットを保持する。
【００２５】
一実施形態において、メモリ素子は複数の相互接続半導体ゲートを含み、メモリ素子が通電状態にあるときに少なくとも２つの異なる安定状態を可能にし、メモリ素子の物理的な、少なくとも部分的にランダムな特性は、複数の相互接続半導体ゲートの少なくとも部分的にランダムな物理的特性を含む；たとえば、メモリ素子の物理的な、少なくとも部分的にランダムな特性は、たとえば複数の相互接続半導体ゲートの互いに対する物理的配列など、複数の相互接続半導体ゲートの物理的配列を含む。
【００２６】
一実施形態において、電気物理的複製不可能関数（ＰＵＦ）は、メモリ素子の内容を読み出し、少なくとも部分的に前記内容からメモリ素子を特定するデジタル識別子を導出するＰＵＦ制御手段に接続可能な半導体メモリ素子を含む。メモリ素子は、メモリ素子に電力供給してメモリ素子を通電状態にするための電源入力と、メモリセルが通電状態にあるときに少なくとも２つの異なる安定状態を可能にする複数の相互接続半導体ゲートであって安定状態はメモリセルの内容を表し、メモリ素子は電源投入時に少なくとも２つの異なる安定状態のうちの１つになるように構成されていて、メモリ素子がなる特定の安定状態は少なくとも一部は、少なくとも部分的に複数の相互接続半導体ゲートの少なくとも部分的にランダムな物理的な特性に依存し、および１つ以上の制御信号を受信する制御入力と、を含む。メモリ素子は、メモリ素子が通電状態にある間に少なくとも１つの制御信号を受信すると、１つの安定状態から別の安定状態に変化するように構成されている。電源投入時にメモリ素子がなる特定の安定状態はまた、制御信号を受信する制御入力にも依存している。電気物理的複製不可能関数は、メモリ素子の電源投入を含み、少なくともＰＵＦ制御手段によるメモリ素子の内容の読み出しまでの期間の間、メモリ素子がなる特定の安定状態が依存する制御信号を受信しないように制御入力を遮蔽する、遮蔽手段をさらに含む。
【００２７】
本発明は多くのタイプのメモリ素子に適用されてもよく、たとえばメモリ素子はラッチ、フリップフロップ、またはレジスタであってもよい。これらのメモリ素子は、目に見えるメモリ配列に存在する必要はないが、しかしＩＣのより広い領域にわたって分散してもよいという、付加的な利点を有する。たとえば、単一のＩＣにおいて、まとまってＰＵＦ制御手段への入力を提供する多数のメモリ素子が存在してもよい。たとえば、多数のラッチおよび／またはフリップフロップおよび／またはレジスタが、ＩＣ全体に分布していてもよい。
【００２８】
ＰＵＦ制御手段によるデジタル識別子の導出は、第一タイプのデータおよび第二タイプのデータに依存してもよい。第一タイプのデータは、事前に、すなわち導出前に、不揮発性メモリに確定的に記憶されたデータである。さらに、デジタル識別子は記憶された値に依存し、第一タイプのデータが記憶されている不揮発性メモリ内に存在する可能性のあるいずれの製造ばらつきには依存しない。第二タイプのデータは、ランダムな製造ばらつき、すなわちメモリ素子の少なくとも部分的にランダムな物理的特性に、依存している。
【００２９】
電源投入時にメモリ素子がなる安定状態は、雑音、すなわちエラー確率に伴う変化に曝される。好ましくは、ＰＵＦ制御手段は、事前に記憶された冗長性情報を用いて、メモリ素子の内容にエラー修正アルゴリズムを適用するように構成されている。雑音、すなわちエラー確率は、ＰＵＦ制御手段が正しい安定状態を決定するのに、すなわち読み取り内容から雑音の影響を除去するのに、十分なほど小さい。アンチエイジングが適用さる場合、正しい安定状態の逆がメモリ素子に書き込まれてもよい。
【００３０】
第一タイプのデータの一例は、フラッシュメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭなどのような、非ＰＵＦの不揮発性書き込み可能メモリに記憶された、ヘルパデータである。第一タイプのデータを記憶するメモリは、書き換え可能または１回書き込みメモリであってもよい。メモリ素子の開始内容、すなわちメモリ素子がなる特定の安定状態は、複数の相互接続半導体ゲートの少なくとも部分的にランダムな物理的特性に少なくとも部分的に依存するので、第二タイプのデータの一例である。
【００３１】
たとえば、ＰＵＦ制御手段は、複数のメモリ素子からの内容として第二タイプのデータを読み出し、不揮発性メモリからヘルパデータを読み出してもよい。たとえばＰＵＦ制御手段上で実行される、ファジーエクストラクタとしても知られるヘルパデータアルゴリズムを使用して、第二タイプのデータは第一タイプのデータを用いて処理される。この処理の結果、第二タイプのデータ、すなわちＰＵＦデータに存在する可能性のあるばらつきは、除去される。
【００３２】
第一タイプのデータ、たとえばヘルパデータを記憶するための不揮発性メモリは、必ずしも電子物理的複製不可能関数に含まれる必要はない。データは、必要なときに電子物理的複製不可能関数に含まれる通信素子を通じて受信されてもよい。
【００３３】
一実施形態において、デジタル識別子を導出するために使用する第二タイプのデータを制御手段がそこから取得する多数のメモリ素子のうちの少なくとも１つには、電源投入中に制御信号を遮蔽するための遮蔽手段が設けられている。第二タイプのデータを取得するためのメモリ素子の一部が遮蔽手段を有することも、可能である；一実施形態において、このようなメモリ素子の大部分が遮蔽される。
【００３４】
一実施形態において、デジタル識別子を導出するためにＰＵＦ制御手段によって使用される第二タイプの全データは、遮蔽手段を有する１つ以上のメモリ素子からのみ取得される。好ましくは、１つ以上のメモリ素子の全てが、電子物理的複製不可能関数に含まれる。動作中、ＰＵＦ制御手段は、電源投入中に遮蔽手段を用いて遮蔽されていたメモリ素子からデジタル識別子を導出するために使用する第二タイプのデータの全てを取得する。
【００３５】
遮蔽手段が構築される方法はいくつかある。たとえば、遮蔽手段は制御入力を基準電圧線で接続するように構成されてもよい、基準電圧線の例は、グランド、電源レール、電圧レールなどを含む。電圧基準線はグランドに対して、通常は電源ユニット（ＰＳＵ）によって供給される、単一の電圧を供給する。制御入力を基準電圧線で接続することによって、制御入力への入力が固定され、電源投入中に制御入力に接続された線に発生し得る変動はこうして抑えられる。たとえば制御入力は、メモリ素子を、外部の影響から内容が遮蔽される、すなわち上書きされ得ない維持状態にさせるために、基準電圧線に接続されることが可能であろう。
【００３６】
多数の制御入力を有するメモリ素子は、多数の基準電圧線に接続されてもよい。全ての制御入力は同じ基準電圧線に接続されてもよいが、必ずしもそうでなくてもよい。たとえば、多数の制御入力のうちの第一の制御入力は正電源電圧に接続されてもよく、第二の制御入力は負電源電圧に接続されてもよい。維持状態になるために異なる入力を必要とするメモリ素子は、各入力を適切な電圧レールに接続することによって遮蔽されることが可能である。
【００３７】
制御入力と基準電圧線との間の接続は、恒久的接続であってもよい。これはメモリ素子を遮蔽するのに特に有効で費用効率の良い方式である。たとえば、標準セルライブラリなどの半導体ライブラリからのラッチまたはフリップフロップなどの標準メモリ素子を配置して、その制御入力を基準電圧線に接続することによって、これから低コストＰＵＦを作成する人がいるかも知れない。このようにして、たとえばＩＣ基板上でその構成要素が配置される正確な配列など、１つ以上のメモリ素子の少なくとも部分的にランダムな物理的特性に開始値、すなわちその電源投入内容が大きく依存する素子が、得られる。なお、標準セルの使用はＰＵＦ挙動を得る妨げには決してならないことは、特筆される。標準セルであっても、電子装置の各々のインスタンス化がわずかに異なるように配置される；セルのいくつかの部分は、他の部分と比較してわずかに変形している。
【００３８】
一実施形態において、メモリ素子は設定制御入力およびリセット制御入力を有するラッチを含み、設定制御入力およびリセット制御入力は、電源投入時にラッチがなる安定状態が設定制御入力およびリセット制御入力に依存するのを防止するためにラッチが維持状態になるように、基準電圧線に接続されている。
【００３９】
たとえば、ラッチはたとえばＳＲ  ＮＯＲラッチまたはＳＲ  ＮＡＮＤラッチなど、いわゆるＳＲラッチであってもよい。ラッチは、ブロックを構成するような静的ゲートを使用してもよく、また１対の交差結合ＮＯＲ（つまり「ＮＯＴ  ＯＲ」）論理ゲートから構築されてもよい。ＳＲ  ＮＯＲラッチは両方の制御入力をグランドに接続することによって強制的に維持状態にされてもよい。記憶されたビットは出力上に存在し、通常はＱで標識される。あるいは、ＳＲラッチはＮＡＮＤ（つまり「ＮＯＴ  ＡＮＤ」）論理ゲートを用いて構築されてもよい。ここで設定およびリセットはアクティブな低信号となり、これはラッチを強制的に維持状態にするために正の基準電圧に接続されてもよい。
【００４０】
メモリ素子の制御入力の恒久的接続は、副作用として、メモリ素子の内容の変更、すなわちメモリ素子への書き込みもまた恒久的に不可能となることがある。しかしながら、メモリ素子の書き込み能力を一時的にのみ不可能にすることが有利である。メモリ素子への書き込みが可能であれば、ＰＵＦ制御手段が識別子を導出するためにその内容を使用した後に、メモリ素子はデータ保存を必要とする別の機能のために使用されることが可能であろう。しかしながら、書き込み能力を維持する別の有利な用途は、メモリ素子にアンチエイジングデータを書き込むことである。
【００４１】
たとえば、電気物理的複製不可能関数は、メモリ素子の内容を読み出した後にメモリ素子にアンチエイジングデータを書き込む、アンチエイジング手段を含んでもよい。ＰＵＦでの使用のためのメモリ素子の品質が時間とともに低下することが、観察されている。この現象は、メモリ素子にアンチエイジングデータを書き込むことによって、減速する可能性がある。アンチエイジングデータは、先の読み出しの間のメモリ素子の内容の逆であってもよい。たとえば、アンチエイジングデータは、デジタル識別子を構築するためにＰＵＦ制御手段によって取得されたようなメモリ素子の内容の逆であってもよい。しかしながら、このアンチエイジングデータは、メモリ素子の内容が変化するにつれてある程度変化する。この変動性を排除するために、ヘルパデータを用いて先の読み出しの間にメモリ素子の内容を再構築することが、好ましい。
【００４２】
遮蔽手段は、メモリ素子の電源投入とともに始まって所定時間継続する期間の間遮蔽するために、タイマを含んでもよい。タイマの期間は、メモリ素子が安定状態になるのに十分な長さでなければならない。通常、１から２クロック周期が継続する期間で十分である。メモリ素子が静定される時間を保証するために、たとえば１ミリ秒など、たとえば制御信号を書き込むなど、たとえば制御信号を阻止するために、より高い制限に時間制限を設定する人もいるだろう。タイマは、ＰＵＦ制御手段がメモリ素子の内容の読み取りを完了するために十分に高い値に設定されてもよい。あるいはタイマは、たとえば電源投入中に制御信号を阻止するだけなど、より低く設定されてもよく、この後ＰＵＦ制御手段が内容の読み取りを完了するまでは、ソフトウェア手段またはその他のハードウェア手段が制御信号をブロックする。
【００４３】
制御信号から静定を保護するためには、タイマの期間が少なくともメモリ素子の静定と同じくらい長ければ、十分である。当業者は、メモリ素子の静定時間の上限を様々な方法で取得するだろう。最も一般的に使用されるメモリ素子の静定時間は、その仕様からわかる。静定時間はまた、実験によって決定されてもよい。静定時間の正確な測定値を得る必要はなく、本発明の目的のためには、上限、すなわち開始時においてメモリ素子が静定されるまでの時間間隔を有していれば十分である。たとえば、電源投入静定時間を測定するためには、当業者はメモリを無効および有効にして、様々な瞬間に内容を読み出し、どのくらいの時間の後にメモリ素子がもはや変化しなくなるかを判断することができるだろう。
【００４４】
たとえば、遮蔽手段は、メモリ素子が通電状態にある間に、制御信号の受信時にメモリ素子が１つの安定状態から別の安定状態に変化できるようにすることでメモリ素子への内容の書き込みを可能にするため、ＰＵＦ制御手段によるメモリ素子の内容の読み出し後にメモリ素子の遮蔽を停止するように構成されている。
【００４５】
本発明は、いくつかのタイプの制御入力に適用されてもよい。たとえば遮蔽は、メモリ素子の内容を上書きするためにデータを受信する制御入力に、またはメモリ素子がその内容を上書きできるようにするためのイネーブル信号を受信する制御入力に、適用されてもよい。しかしながら本発明はまた、クロック入力などの制御入力にも有利に適用されてよい。クロック入力は、刻時、通常は複数の刻時のうちの１つを含む、クロック信号を受信するように配置されている。遮蔽手段は、クロック入力が刻時を受信しないよう遮蔽するように構成されている。メモリ素子の少なくとも一部がクロック入力での刻時受信時に起動された場合には、刻時の受信は、ほんのわずかではあるが、電源投入中のメモリ素子の挙動を変化させる。メモリ素子の静定中により少なくゲートが関連している場合には、それらの間の相互作用はさほどランダムではなく、カオス的な相互作用による代わりにメモリ素子の内在的な性質によって、結果が決定されやすくなる。
【００４６】
クロック入力の遮蔽は、メモリ素子としてレジスタが使用されるときに、特に有利である。たとえば、メモリ素子はゲートクロックを有するレジスタを含んでもよく、ここで遮蔽手段はゲートクロックのゲーティングを制御するように構成されている。たとえば、ゲーティングは、電源投入中にレジスタが計時されるが期間が経過した後にメモリ素子がクロック信号を受信するのを回避するように、タイマを用いて制御されてもよい。
【００４７】
２つの交差結合ループを含むメモリ素子は、多くのチャレンジを有する電子ＰＵＦを作成するために使用されてもよい。遮蔽手段は、高基準電圧または低基準電圧にクロック入力を選択的に接続することによってクロック入力を遮蔽するように構成されており、選択された電圧は２つの交差結合ループのうちの１つをさらに選択し、電源投入時にメモリ素子がなる特定の安定状態は、２つの交差結合ループのうちの選択されなかった方ではなく、２つの交差結合ループのうちの選択された方の、少なくとも部分的にランダムな物理的特性に依存する。
【００４８】
高基準電圧または低基準電圧へのクロック入力の接続は、第一および第二のチャレンジと見なされてもよい。第一および第二のチャレンジは、メモリ素子の異なる応答を生じるだろう。ＰＵＦ制御手段は、使用された第一または第二のチャレンジに基づいて、第一または第二の識別子を導出してもよい。
【００４９】
第一チャレンジは、第一ヘルパデータとともに、第一暗号鍵を得るために使用されてもよい。第一暗号鍵はユーザアプリケーションに使用されてもよく、たとえば第一暗号鍵は、オンデマンド動画サービスにおいて動画を解読するために使用されてもよい。第二チャレンジは、第二ヘルパデータとともに、第二暗号鍵を得るために使用されてもよい。第二暗号鍵は、異なる用途に使用されてもよい。たとえば、第一暗号鍵はアプリケーション設計者に知らされるだろうが、その一方で第二暗号鍵は製造者にのみ知らされるかも知れない。標準的なチャレンジ−応答アルゴリズムを用いて、電子装置はある人が第二暗号鍵を持っているか否かを確認し、持っている場合には、たとえばフィールドリターンのデバッグなど、装置へのフルアクセスを許可してもよい。
【００５０】
遮蔽手段は、ハードウェアとソフトウェアとの組み合わせを用いて構築されてもよい。一実施形態において、遮蔽手段は、少なくともメモリ素子の電源投入の完了まで継続する期間の間、メモリ素子がなる特定の安定状態が依存する制御信号を受信しないように制御入力を遮蔽するハードウェア遮蔽手段と、少なくともメモリ素子の電源投入の完了からＰＵＦ制御手段によるメモリ素子の内容の読み出しまで継続する期間の間、メモリ素子がなる特定の安定状態が依存する制御信号を受信しないように制御入力を遮蔽するソフトウェア遮蔽手段と、を含む。
【００５１】
通常、メモリ素子は、開始後のある時点でこれに書き込むことによって、その少なくとも２つの異なる安定状態のうちの１つになるよう構成可能である。しかしながら、メモリ素子は必ずしも、メモリ素子への書き込みが全体として電気物理的複製不可能関数によって支援されるような方式で、電気物理的複製不可能関数内に構成される、たとえば配線される必要がないことは、特筆される。
【００５２】
本発明のさらなる態様は、半導体メモリ素子を含む電気物理的複製不可能関数（ＰＵＦ）の動作方法に関する。メモリ素子は、少なくとも２つの異なる安定状態に構成可能なタイプのものである。安定状態はメモリ素子の内容を表し、メモリ素子は、１つ以上の制御信号を受信する制御入力を含み、制御信号は、メモリ素子を少なくとも２つの異なる安定状態のうちの選択された１つになるように構成する。方法は、メモリ素子に電力供給するステップと、メモリ素子を通電状態にするステップとを含み、メモリ素子は電力供給時に少なくとも２つの異なる安定状態のうちの１つになる。メモリ素子がなる特定の安定状態は、メモリ素子の少なくとも部分的にランダムな物理的特性に少なくとも部分的に依存しており、メモリ素子の内容を読み出し、少なくとも部分的に前記内容からデジタル識別子を導出する。電源投入時にメモリ素子がなる特定の安定状態はまた、制御信号を受信する制御入力にも依存する。方法は、メモリ素子の電源投入を含んで少なくともメモリ素子の静定まで継続する期間の間、メモリ素子がなる特定の安定状態が依存する制御信号を受信しないように制御入力を遮蔽するステップを、さらに含む。
【００５３】
メモリ素子は、電源投入された結果として安定状態になる。
【００５４】
一実施形態において、電気物理的複製不可能関数は、ＲＦＩＤタグ、スマートカード、携帯電話、セットトップボックス、コンピュータ、ラップトップ、ノートブック、セットトップボックス、電子回路などのうちのいずれか１つに含まれる。電子回路は、たとえばＣＭＯＳ装置などの集積回路であってもよい。本発明による方法は、これらの装置のうちいずれに採用されてもよい。
【００５５】
デジタル識別子は、鍵導出アルゴリズムに直接的に、またはこれの開始値として、暗号鍵として使用されてもよい。たとえば、デジタル識別子にハッシュ関数が適用されてもよく、結果的な値は対称鍵として使用されてもよい。デジタル識別子はまた、公開鍵・秘密鍵のペアの導出のための種としても使用されてよい。公開鍵・秘密鍵のペアの秘密鍵部分は、後の署名操作で使用されてもよい。識別子はまた、たとえばＭＡＣ鍵などの対称的な署名鍵として使用されてもよい。
【００５６】
メモリ素子から内容を読み出し、前記内容から秘密鍵などのデジタル識別子を少なくとも部分的に導出するＰＵＦ制御手段に接続可能な半導体メモリ素子を含む電気物理的複製不可能関数（ＰＵＦ）が、提供される。メモリ素子に電力供給すると、これは少なくとも２つの異なる安定状態のうちの１つになる。メモリ素子がなる特定の安定状態は少なくとも部分的に、メモリ素子の製造中に導入されるメモリ素子のランダムな物理的特性に依存する。メモリ素子の静定はさらに、メモリ素子の制御入力にも依存する。電気物理的複製不可能関数は、メモリ素子の電源投入を含んで少なくともメモリ素子の静定まで継続する期間の間、メモリ素子がなる特定の安定状態が依存する制御信号を受信しないように制御入力を遮蔽する、遮蔽手段を含む。このようにして、物理的特性に対するメモリ素子の依存は改善され、再生不能となる可能性のある制御信号への依存が低減される。
【００５７】
本発明は、例示により、および以下の添付図面を参照して、さらに詳細に説明される。
【図面の簡単な説明】
【００５８】
【図１】本発明による電気物理的複製不可能関数の第一の実施形態を示すブロック図である。
【図２ａ】本発明による電気物理的複製不可能関数の第二の実施形態を示すブロック図である。
【図２ｂ】図２ａの電気物理的複製不可能関数で使用されるラッチを示すブロック図である。
【図３ａ】本発明による電気物理的複製不可能関数のメモリ素子として使用されてもよいラッチを示す図である。
【図３ｂ】本発明による電気物理的複製不可能関数のメモリ素子として使用されてもよいラッチを示す図である。
【図３ｃ】本発明による電気物理的複製不可能関数のメモリ素子として使用されてもよいラッチを示す図である。
【図４ａ】本発明による電気物理的複製不可能関数のメモリ素子として使用されてもよいフリップフロップを示す図である。
【図４ｂ】図４ａのフリップフロップで使用されるラッチを特定する図である。
【図５ａ】本発明による電気物理的複製不可能関数のメモリ素子として使用されてもよいマスタスレーブ型フリップフロップを示す図である。
【図５ｂ】マスタスレーブ型フリップフロップを遮蔽するために使用されてもよい、代替遮蔽手段構造を示す図である。
【図６ａ】本発明による電気物理的複製不可能関数のメモリ素子として使用されてもよいメモリ素子を示す図である。
【図６ｂ】本発明による電気物理的複製不可能関数のメモリ素子として使用されてもよいメモリ素子を示す図である。
【図６ｃ】本発明による電気物理的複製不可能関数のメモリ素子として使用されてもよいメモリ素子を示す図である。
【図６ｄ】本発明による電気物理的複製不可能関数のメモリ素子として使用されてもよいメモリ素子を示す図である。
【図７】本発明を示す時間図である。
【図８ａ】スマートカードの模式的上面図である。
【図８ｂ】集積回路を示すブロック図である。
【図９】本発明による方法の実施形態を示すフローチャートである。
【図１０】多数のメモリ素子を示すブロック図である。
【発明を実施するための形態】
【００５９】
図中、類似または対応する要素は、同じ参照番号で示される。
【００６０】
本発明は多くの異なる形の実施形態を許容するが、本開示は本発明の原則の例示と見なされるべきであって、図示および記載される特定の実施形態に本発明を限定するように意図されるものではないという理解の下、１つ以上の特定の実施形態が図示され、本明細書に詳細に記載される。
【００６１】
まず、本発明の実施形態のいくつかに関わる情報が与えられる。
【００６２】
物理的複製不可能関数
物理的複製不可能関数（ＰＵＦ）は、ある入力に対する関数の出力が、刺激として物理システムへの入力を提供すること、および刺激と物理システムとの間の相互作用の結果として生じる挙動を出力にマッピングすることによって得られるような方式で、物理システムとして実現される関数であり、ここで相互作用は予測不可能であり、物理システムへの物理的アクセスがなければ出力を得ることが不可能であって、物理システムを再生することが不可能となる程度に、物理システムの本質的にランダムな要素に依存している。好ましくは、ＰＵＦは評価もしやすい。実用のため、ＰＵＦは好ましくは製造コストが低い。
【００６３】
従来、ＰＵＦが受け付ける入力または刺激は「チャレンジ」と称される。ＰＵＦの出力、すなわち刺激との相互作用の後にＰＵＦが呈する挙動は、「応答」と称される。ＰＵＦのチャレンジおよび対応する応答を含むペアは、チャレンジ−応答ペアと称される。いくつかのタイプのＰＵＦは広範な異なる入力を許容し、いくつかのタイプはより限られた範囲の入力を許容するか、あるいは単一の入力しか許容しないかも知れない。何らかの単一のチャレンジでＰＵＦにチャレンジすることはまた、ＰＵＦの「起動」と称される。
【００６４】
同じチャレンジについて複数回評価されるときにＰＵＦが全て等しい複数の応答を生成するならば、最も好ましいだろう。この性質は必要ではなく、実際にほとんどのＰＵＦはこれを有していない。複数の応答が互いに十分に接近して位置している限り、ＰＵＦは有効に適用されることが可能である。
【００６５】
電源投入時にこれらが有する未定義状態でメモリ素子を読み取ることで得られるＰＵＦデータは、しばしば単一のチャレンジ、すなわちメモリ素子への電力供給を利用する。簡素化のため、我々はしばしばチャレンジを無視して、ＰＵＦ値などのみに言及するだろう。しかしながら、本発明の実施形態のいくつかで実証されるように、２つ以上のチャレンジを可能にする、たとえばマスタスレーブ型フリップフロップなどのメモリ素子に基づくＰＵＦを獲得することは、少なくともある程度は可能である。したがって、チャレンジを参照してＰＵＦデータを検討する場合、これらは単一のチャレンジのみを使用する実施形態で使用されてもよいが、しかし現在の用途のために固定的に選択した多数のチャレンジを可能にする実施形態でも使用可能であることは、理解されるべきである。たとえば、異なるチャレンジが、異なる目的のために選択されてもよい。たとえば、第一チャレンジは全ての正規ユーザアプリケーション向けに選択されてもよく、その一方で第二チャレンジはフィールドリターンの安全なデバッグのために保存されてもよい。
【００６６】
刺激と物理システムとの間の相互作用はシステムへのアクセスがないと予測され得ないので、ＰＵＦを特性化およびモデリングすることは難しい。したがって、ある入力に対する特定のＰＵＦの出力は、特定のＰＵＦの基本となる特定の物理システムを用いてのみ、取得されることが可能である。チャレンジ−応答ペアの所有は、いずれかの時点でチャレンジがＰＵＦの基本となる固有の物理システムに提供されるという証拠である。この性質、すなわちチャレンジ−応答ペアが固有の物理的装置に結合されるという性質のため、ＰＵＦは複製不可能と称される。装置にＰＵＦを備えることにより、装置もまた複製不可能となる。
【００６７】
少なくとも部分的に制御不可能な製造工程、すなわち不可避的に何らかの無作為性を導入することになる製造工程によって製造される物理システムは、ＰＵＦの有望な候補であることが明らかとなる。
【００６８】
ＰＵＦの利点の１つは、固有の改ざん防止特性を有することである；その機能を観察するためにＰＵＦを分解することもまた、ランダムな要素を妨害し、したがって入力が出力にマッピングされる方法も妨害することになる。電子メモリに基づく様々なタイプのＰＵＦを含む、様々なタイプの電子ＰＵＦを含む、様々なタイプのＰＵＦが、当該技術分野で知られている。ＰＵＦはまた、たとえば光ＰＵＦなど、その他の概念に基づいてもよい。光ＰＵＦにおいて、光応答は、光学的にアクティブなシステムで測定される。
【００６９】
ＰＵＦ挙動を示す揮発性メモリ素子の例は、フリップフロップおよびラッチである。開始時に、集積回路に含まれてもよいようなメモリ素子は、乱数値で満たされることになる。乱数値は、メモリ素子が製造された製造工程における精密なばらつきに依存する。メモリ素子を構築する様々な構成要素の形態におけるわずかな変化が乱数値を変化させる可能性がある。部分的ランダム特性は、メモリ素子の特定のレイアウト、またはその製造中に使用されるそれに対応するマスクによって特異的に生じるものではなく、むしろマスクから実際の物理的構造、たとえばメモリ素子の物理的構造への転写中に生じる。
【００７０】
ＩＣレイアウト、ＩＣマスクレイアウト、またはマスクデザインとしても知られる集積回路レイアウトは、集積回路の構成要素を構成する金属、酸化物、または半導体層のパターンに対応する平坦な幾何学形状という点において、集積回路の描写である。半導体メモリ素子の複数のインスタンス化を作成するために同じレイアウトが複数回使用されたとしても、レイアウトから物理的メモリ素子へのデザインの転写は常に、異なる物理的特性および異なる電源投入挙動を生じる何らかのばらつきを付与する。その結果、どのような内容を用いて特定のメモリ素子が物理的に測定を行わずに電源投入するかは予測不可能であり、すなわちどのように電源投入するかを知るためにはメモリ素子へのアクセスを有する必要がある。
【００７１】
たとえばサブミクロンのプロセスばらつきなど、製造中の避けられないばらつきのため、互いに対するメモリ素子の構成要素の挙動は少なくともわずかにランダムである。これらのばらつきは、たとえばメモリセルのトランジスタのわずかに異なる閾値電圧に、反映される。メモリ素子がたとえば書き込みアクションの前などの未定義状態で読み出されるとき、その出力はランダムな構成に依存する。同じ特徴的な挙動を備える新しいメモリ素子の製造は、同じ構成の製造を必要とするが、構成はランダムに達成されたものである。これは実現不可能なので、メモリ素子は物理システムとして複製不可能であり、すなわちこれはＰＵＦである。
【００７２】
ＰＵＦのさらなる例は、いわゆるバタフライＰＵＦである。バタフライＰＵＦは、複数のバラフライＰＵＦセルを含む。バタフライＰＵＦセルは、２つのラッチまたはフリップフロップの交差結合を含む。バタフライＰＵＦは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）上で実現されることが可能である。バタフライＰＵＦはまた、これが実現される集積回路の複雑な物理特性から、秘密鍵などの特に秘密の識別子を抽出することもできる。バタフライＰＵＦは、以下の論文においてより完全に説明されている：Ｓａｎｄｅｅｐ  Ｓ．Ｋｕｍａｒ，Ｊｏｒｇｅ  Ｇｕａｊａｒｄｏ，Ｒｏｅｌ  Ｍａｅｓ，Ｇｅｅｒｔ−Ｊａｎ  Ｓｃｈｒｉｊｅｎ，Ｐｉｍ  Ｔｕｙｌｓ，”Ｔｈｅ  Ｂｕｔｔｅｒｆｌｙ  ＰＵＦ  ｐｒｏｔｅｃｔｉｎｇ  ＩＰ  ｏｎ  ｅｖｅｒｙ  ＦＰＧＡ（各ＦＰＧＡ上でＩＰを保護するバタフライＰＵＦ）”  ｐｐ．６７−７０，２００８  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｈａｒｄｗａｒｅ−Ｏｒｉｅｎｔｅｄ  Ｓｅｃｕｒｉｔｙ  ａｎｄ  Ｔｒｕｓｔ，２００８。バタフライＰＵＦはまた、国際公開第２００９／０２４９１３号として公開され、参照により本願に組み込まれる、国際特許出願”Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ｏｆ  Ｄｅｖｉｃｅｓ  Ｕｓｉｎｇ  Ｐｈｙｓｉｃａｌｌｙ  Ｕｎｃｌｏｎａｂｌｅ  Ｆｕｎｃｔｉｏｎｓ（物理的複製不可能関数を用いる装置の識別）”にも記載されている；特に図８および図１０、ならびに国際公開第２００９／０２４９１３号の対応する記述を参照のこと。
【００７３】
ＰＵＦの用途の１つは、電子回路上で暗号鍵を導出することである。電子回路は通常、集積回路（ＩＣ）および／またはプログラマブル論理を含む。プログラマブル論理は、たとえばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブル論理装置（ＰＬＤ）、またはデジタル信号プロセッサ（ＤＳＰ）、マイクロプロセッサなどを含む。何らかの不揮発性メモリに暗号鍵を保存する代わりに、鍵が装置によって必要とされるときにのみ、鍵はＰＵＦから生成される。鍵は、もはや必要なくなると、削除されることが可能である。次に鍵が必要となったときには、ＰＵＦから再び導出されることが可能である。ＰＵＦは、同じチャレンジが２回評価されるときにまったく同じ結果を与えるとは限らないので、導出されるたびに鍵が同じになることを保証するために、ファジーエクストラクタとしても知られる、いわゆるヘルパデータアルゴリズムが使用されてもよい。雑音の多い測定から再生可能な出力値を構築するためにヘルパデータを使用する方法の１つは、たとえば、いずれも参照により本願に組み込まれる、国際公開第２００６／１２９２４２号”Ｔｅｍｐｌａｔｅ  Ｒｅｎｅｗａｌ  ｉｎ  Ｈｅｌｐｅｒ  Ｄａｔａ  Ｓｙｓｔｅｍｓ（ヘルパデータシステムにおけるテンプレート更新）”および国際公開第２００４／０６６２９６号”Ｒｅｌｉａｂｌｅ  Ｓｔｏｒａｇｅ  Ｍｅｄｉｕｍ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｍｅｔｈｏｄ  Ａｎｄ  Ｄｅｖｉｃｅ（高信頼性記憶媒体アクセス制御方法および装置）”に記載されている。
【００７４】
暗号鍵を作成するためにＰＵＦを使用する方法の１つは、以下のとおりである。まず、登録段階の間に、チャレンジ−応答ペアが作成される。次に、遮蔽関数としても知られるファジーエクストラクタを用いて、ヘルパデータが作成されるが、たとえば国際公開第２００４／０６６２９６号を参照されたい。装置上では、チャレンジおよびヘルパデータが不揮発性メモリに記憶される。暗号鍵を導出するために、チャレンジのＰＵＦを再び評価することによって新しい応答が得られる。ヘルパデータアルゴリズムにしたがって、新しい応答を記憶されたヘルパデータと組み合わせることにより、鍵が導出される。ヘルパデータは、導出されるたびに鍵が同じになることを保証する。
【００７５】
ヘルパデータ
起動コードとしても知られるヘルパデータは、測定値と称されることもある、第一ＰＵＦ応答、ならびに特定のデータ項目から作成されたデータであり、第一および第二ＰＵＦ応答がわずかに異なっていたとしても、後に特定のデータ項目が第二ＰＵＦ応答およびヘルパデータから正確に再構築されるようになっている。第一応答と比較したときの第二応答の差は「エラー」と称されてもよい。ヘルパデータは、第二応答のエラーを修正するという意味において、エラー修正データと見なされてもよい。ヘルパデータの機能は、単なるエラー修正以上のものにおよぶことができる。たとえば、第二応答のエラーの修正とともに、ヘルパデータは、たとえば鍵など、所定のデータ項目に応答をマッピングすることができる。第一応答は登録応答と称されてもよい。ＰＵＦが多入力を許容する場合には、第一および第二応答は同じ入力、すなわちチャレンジと見なされる。ヘルパデータはこのチャレンジに固有であり、このためヘルパデータを参照するときは、単一のチャレンジしかない、あるいは特定のチャレンジが選出されたと見なされる。
【００７６】
ヘルパデータはまた、１組のチャレンジのためにも定義され得る。たとえば、ヘルパデータは選ばれた特定のチャレンジ群を定義することができ、これに対する応答は、値またはビット列を導出するために組み合わせられる。
【００７７】
ヘルパデータを作成する方法は数多く存在する。ヘルパデータを用いると、限られた数のエラーのみが修正され得る。いくつのエラーが修正可能かは、ヘルパデータのタイプ、およびヘルパデータの構築中に使用されるパラメータに依存する。
【００７８】
データ項目は、暗号鍵、または登録応答そのものであってもよい。データ項目を再構築するためにヘルパデータを計算するという一般概念は、当業者にとって周知である。
【００７９】
たとえば、参照により本願に組み込まれる国際公開第２００６／０５３３０４号は、どのようにしてヘルパデータが計算されるか、およびどのようにして登録応答が再構築されるかを記載している；たとえば、図３および付随する記述を参照されたい。この特許明細書はまた、どのようにして登録応答から鍵が導出されるかを、より詳細に示している。
【００８０】
ヘルパデータの構築および使用は、たとえば、Ｊ．Ｐ．Ｌｉｎｎａｒｔｚ，Ｐ．Ｔｕｙｌｓ，’Ｎｅｗ  Ｓｈｉｅｌｄｉｎｇ  Ｆｕｎｃｔｉｏｎｓ  ｔｏ  Ｅｎｈａｎｃｅ  Ｐｒｉｖａｃｙ  ａｎｄ  Ｐｒｅｖｅｎｔ  Ｍｉｓｕｓｅ  ｏｆ  Ｂｉｏｍｅｔｒｉｃ  Ｔｅｍｐｌａｔｅｓ（秘密を強化して生体テンプレートの誤用を防止するための新しい遮蔽関数）’，Ｉｎ  Ｊ．ＫｉｔｔｌｅｒおよびＭ．Ｎｉｘｏｎ編集，Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ３ｒｄ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ａｕｄｉｏ  ａｎｄ  Ｖｉｄｅｏ  Ｂａｓｅｄ  Ｐｅｒｓｏｎ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ，ｖｏｌｕｍｅ  ２６８８  ｏｆ  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，ｐａｇｅｓ．２３８−２５０，Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，２００３、およびＹ．Ｄｏｄｉｓら，’Ｆｕｚｚｙ−Ｅｘｔｒａｃｔｏｒｓ：  Ｈｏｗ  ｔｏ  ｇｅｎｅｒａｔｅ  ｓｔｒｏｎｇ  ｋｅｙｓ  ｆｒｏｍ  ｂｉｏｍｅｔｒｉｃｓ  ａｎｄ  ｏｔｈｅｒ  ｎｏｉｓｙ  ｄａｔａ（ファジーエクストラクタ：生体およびその他雑音データを含むデータから強力な鍵を生成する方法）’，Ａｄｖａｎｃｅｓ  ｉｎ  ｃｒｙｐｔｏｌｏｇｙ  −  Ｅｕｒｏｃｒｙｐｔ  ２００４，Ｓｅｒ．ＬＮＣＳ，Ｃ．ＣａｃｈｉｎおよびＪ．Ｃａｍｅｎｉｓｃｈ編集，ｖｏｌ．３０２７．Ｓｐｒｉｎｇｅｒ−  Ｖｅｒｌａｇ，２００４，ｐｐ．５２３−５４０に、より完全に記載されている。国際公開第２００４／０６６２９６号として公開され、参照により本願に組み込まれる特許、”Ｒｅｌｉａｂｌｅ  Ｓｔｏｒａｇｅ  Ｍｅｄｉｕｍ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｍｅｔｈｏｄ  ａｎｄ  Ｄｅｖｉｃｅ（高信頼性記憶媒体アクセス制御方法および装置）”も参照されたい。
【００８１】
たとえば、その応答がビット列であるか、またはその応答がビット列に変換されてもよい、ＰＵＦを検討する。たとえば、１ビットメモリ素子の集合における開始値は、ビット列応答を備えるＰＵＦと見なされてもよい。ヘルパデータを作成する方法の１つは以下のとおりである。たとえばＢＣＨコードなどのエラー修正コードが選択され得る。所望のデータ項目が、エラー修正コードのコード語に変換される。多数のコード語が必要とされる可能性があることに、注意する。ＰＵＦの登録応答がコード語でＸＯＲされ、結果がたとえばメモリに記憶される。この結果は、ＰＵＦ応答の雑音の修正を可能にするので、ヘルパデータとして使用されてもよい。後にＰＵＦはさらなる応答を得るために再度チャレンジされる。登録応答およびさらなる応答は、通常はエラー修正コードが修正可能なエラー数とは数ビット異なっていなければならない。用途に応じて、エラー数が大きすぎて修正されない特定の確率が、許容されてもよい。エラーを有するコード語を得るために、さらなる応答がヘルパデータでＸＯＲされる。なお、さらなる応答にエラーがあった場合には、これらはエラーを有するコード語にも存在することに、注意する。エラーを有するコード語は、コードに対応するエラー修正アルゴリズムを用いて、たとえばＢＣＨアルゴリズムを用いて、修正される。結果的な修正済みコード語から、データ項目が抽出されることが可能である。その他の適切なエラー修正コードは、リードマラー、ゴレイ、および反復コード、またはこれらの組み合わせを含む。エラー修正コードの技術分野で知られているように、新しいコードは、周知のエラー修正コードに構築技術を適用することによって得られてもよい。たとえば、新しいコードを取得するために、コード連結と称される技術によって、２つのエラー修正コードが組み合わせられてもよい。エラー修正コード構築アルゴリズムは、ＰＵＦのパラメータ、具体的にはそのエラー率および出力ビット数、信頼できる出力ビットの望ましい数、および与えられた用途で実際に許容可能なエラーレベルに合わせて、エラー修正コードをカスタマイズするために使用されてもよい。
【００８２】
様々な語長のコードが使用可能である。ＰＵＦ応答のサイズよりも短い語長を有するコードの場合には、ＰＵＦ応答が破棄されるかまたは多数のコード語が連結されてもよく、連結は少なくともＰＵＦ応答と同じ長さとなる；語長が長い場合には、応答と語長とが等しい長さを有するように、ＰＵＦ応答には、たとえば０が加えられてもよい。
【００８３】
ＰＵＦはＨＩＳシステムにおいて使用されてもよい。ハードウェア固有セキュリティ（ＨＩＳ）システムは、物理的複製不可能関数（ＰＵＦ）に基づいている。ＰＵＦは、必要なときにのみ鍵を生成するために使用されることが可能であり、鍵を保存する必要はない。一旦使用されると、鍵は全ての内部レジスタおよびメモリから除去されることが可能である。鍵は使用されるたびに再構築されてもよく、装置が電源遮断されると消滅する。
【００８４】
アンチエイジングデータ
半導体メモリにおける応答パターンの生成は、起動信号の反復適用後の劣化に敏感であるかも知れない。この現象は、その開始値がＰＵＦ制御手段によって読み出された後に、適切なアンチエイジングパターンをメモリに書き込むことによって、遅延されるかも知れない。
【００８５】
一実施形態において、システムは、先にメモリ素子から読み出された論理状態の逆をメモリ素子に書き込むように構成された、アンチエイジング装置を含む。
【００８６】
交差結合したラッチ、フリップフロップ、ＳＲＡＭなどのような、フィードバック効果に基づくメモリは、起動信号の、すなわち電源投入の反復適用後の劣化に敏感であることが、見いだされた。つまり、システムが繰り返し起動された後、メモリから取得される応答パターンは、登録データから乖離していく。先のメモリの読み出しと比較すると、ますます多くのメモリ位置が、これらが起動されたときに異なる論理状態に入る。劣化の影響は、「エイジング」とも称される。
【００８７】
この現象は、ＰＵＦが長時間にわたって多数回の起動の後に使用される場合に、特に問題となる。ある程度までは、エラー修正機構が、新たな偏差を修正することによってこの挙動を修正することが可能であるが、しかしある時点で、応答パターンは修正しきれないほど多くのエラーを含むようになる。
【００８８】
問題となる劣化を引き起こす可能性のある１つの機構は、バーンインとしても知られる、負バイアス温度不安定性（ＮＢＴＩ）である。ＮＢＴＩは、ｐＭＯＳトランジスタにおいて負バイアス条件の下で界面トラップを発生させ、それによりその閾値電圧を低下させる。その結果、影響を受けたメモリセルの開始挙動が時間とともに変化する。
【００８９】
先に読み出された値の逆の値でメモリセルに上書きすることによって劣化の影響が低減され得ることが、観察されている。これを実現するにはいくつかの方法がある。たとえば、起動後にメモリセルの論理状態を読み出し、その論理状態の逆を計算し、論理状態の逆をメモリセルに書き込むことができるだろう。
【００９０】
好適な方法は、現在の開始値の逆ではなく、登録値の逆でメモリに上書きすることである。エラー修正を用いて、ＰＵＦ制御手段は登録値を取得し、その逆をアンチエイジングデータとして使用してもよい。これは、アンチエイジングがいつも同じ値で行われるという利点を有し、これによりその効果を最適化する。
【００９１】
そのメモリから先に得られた内容の逆でメモリに上書きすることによってエイジングを防止することは、参照により本願に組み込まれる、”Ｍｅｔｈｏｄ  ｏｆ  ｒｅｄｕｃｉｎｇ  ｔｈｅ  ｏｃｃｕｒｒｅｎｃｅ  ｏｆ  ｂｕｒｎ−ｉｎ  ｄｕｅ  ｔｏ  ｎｅｇａｔｉｖｅ  ｂｉａｓ  ｔｅｍｐｅｒａｔｕｒｅ  ｉｎｓｔａｂｉｌｉｔｙ（負バイアス温度不安定性によるバーンインの発生を低減する方法）”と題された国際公開第ＰＣＴ／ＩＢ２００９／０５１５９２号に、さらに記載されている。
【００９２】
参照により本願に組み込まれる、”Ｐｈｙｓｉｃａｌｌｙ  ｕｎｃｌｏｎａｂｌｅ  ｆｕｎｃｔｉｏｎ  ｗｉｔｈ  ｔｅｍｐｅｒ  ｐｒｅｖｅｎｔｉｏｎ  ａｎｄ  ａｎｔｉ−ａｇｉｎｇ  ｓｙｓｔｅｍ（改ざん防止およびアンチエイジングシステムを備える物理的複製不可能関数）”と題された欧州特許第０９１６７９０６．８号明細書は、アンチエイジングのさらなる改善を記載している。メモリ素子の一部がアンチエイジングデータで上書きされさえすれば、特にいわゆる凍結攻撃（ｆｒｅｅｚｉｎｇ  ａｔｔａｃｋ）に対して、セキュリティがさらに改善され得ることが、観察されている。
【００９３】
図１は、電気物理的複製不可能関数（ＰＵＦ）１００を図解するブロック図を示す。物理的複製不可能関数１００は図１に示される素子を含むが、当業者には著明なように、付加的な構成要素を含んでもよい。なお、構成要素は、たとえば電力レールへの接続など、電力を受け取るための電源入力を有することに留意されたい。電源入力は図１に示されていない。
【００９４】
ＰＵＦ１００はメモリ素子１１０を含む。メモリ素子１１０は制御入力１１２を含む；この実施形態では、クロック１３０からクロック信号を受信するためのクロック入力が使用される。メモリ素子１１０は、メモリに保存するための１ビットのデータを受信するための、データ入力１１４を含む。メモリ素子１１０は、メモリ素子１１０の内容を読み出すための、データ出力をさらに含む。
【００９５】
メモリ素子１１０はたとえば、いわゆるＤフリップフロップであってもよい。Ｄフリップフロップは、遅延フリップフロップ（その出力Ｑが入力の遅延Ｄのように見えるため）またはデータラッチとしても知られる。従来、データ入力１１４は「Ｄ」で表され、クロック入力１１２は「ＣＬＫ」およびデータ出力１１６は「Ｑ」で表される。メモリ素子１１０は、さらなる入力および／または出力を含んでもよい。Ｑ出力は、クロックピンで正エッジの瞬間にＤ入力の状態になる（あるいはクロック入力がアクティブローの場合には負エッジ）。出力はＤ入力すなわちデータ入力の値を取り、最大で１クロックカウントだけ遅延（Ｄｅｌａｙ）するので、この理由のためこれはＤフリップフロップと称される。従来、遅延フリップフロップはたとえば、シフトレジスタを実現するために使用され、この理由のためこれらは標準セルライブラリに見られる。本発明によって構成されると、これらはＰＵＦとしても使用されてよい。メモリ素子１１０は、メモリ素子１１０の内容の補数を読み出すために、さらなるデータ出力を含んでもよい。図４ａは、図１で使用されてもよいフリップフロップを示す。メモリ素子１１０はまた、強制的にメモリ素子の状態を少なくとも２つの安定状態のうちの１つにする、１つ以上のさらなる入力も含んでよい。
【００９６】
メモリ素子１１０はまた、いわゆるラッチであってもよい。この場合、クロック入力１１２は通常、Ｅ、ＥＮ、またはその他の名前で記される、イネーブル信号と称される。イネーブル信号１１２がアクティブであるとき、データ入力１１４の信号は出力１１６に渡される。イネーブル信号１１２が非アクティブであるとき、出力１１６の信号は保持され、データ入力１１４の変化は出力１１６の値を変化させない。従来、ラッチはしばしばタイミング問題を解決するためクロックドメイン境界にデータを保持するために使用されており、このためこれらは標準セルライブラリで見いだされる。
【００９７】
図１の実施形態はまた、遅延ラッチとともに使用されることも可能である。Ｄラッチは、制御信号がアクティブであるときに入力信号を出力に渡す。異なる実装も可能であり、本発明において使用されてよい。たとえば、Ｄラッチは、入力を制御するゲートを有してもよく、あるいはこれは伝送ゲートを有してもよい。伝送ゲートはＦＥＴで、あるいはＰ  ＦＥＴとＮ  ＦＥＴとの組み合わせなどで、構築されることが可能である。イネーブル信号が非アクティブであるとき、電源投入状態は交差結合にのみ依存する。通常、これらの回路をクロックするためにはイネーブルポート（ＥＮ）が使用される。
【００９８】
メモリ素子１１０にデータを書き込むことにより、これは少なくとも２つの安定状態のうちの１つになるように構成されることが可能である。しかしながら、メモリ素子１１０にデータが書き込まれていない起動時であっても、これは自然に安定状態になる。この状態は通常は未定義と称されるが、しかし実際には、メモリ素子がたまたま製造された正確な方式によって大部分が決定される。メモリ素子１１０のわずかなばらつきでさえ、これがどの安定状態で起動するかに影響を及ぼすことになる。
【００９９】
クロック入力１１２は、クロック１３０によって生成されたクロック信号から遮蔽される。タイマ１４２は、特定の期間の間、たとえばグランド電圧によって表される、論理「０」に等しい電圧を生じるように構成されている。期間は、メモリ素子の電源投入とともに開始され、所定の期間だけ継続する。期間はこのためＰＵＦ１００の電力供給を含む。期間は少なくともメモリ素子１１０を安定状態にさせるのに十分な長さである。メモリ素子１１０が静定されるのに必要な時間は、採用されるメモリの正確なタイプに依存する。通常、メモリ素子の仕様内に収まるクロック速度で動作するクロックの数クロック周期に必要とされる時間で、たとえばクロック１３０については十分である。所定期間の後、タイマ１４２は論理「１」に等しい電圧を生じる。タイマ１４２は、タイミング問題を防止するために、その出力の信号を再計時してもよい。タイマ１４２の出力は、ＡＮＤゲート１４４に接続される。ＡＮＤゲート１４４の出力は、制御入力線１４６を経由してクロック入力１１２に接続される。ＡＮＤゲート１４４は２つの入力を有する；入力の１つはタイマ１４２から得られ、もう一方はクロック１３０から得られる。ＡＮＤゲート１４４の効果は、ロジックＡＮＤを用いて論理「０」信号と組み合わせられるので、起動中に、クロック１３０によって生成されたクロック信号がメモリ素子１１０に伝播されないことである。所定期間の後タイマ１４２によって命令されるように、クロックは論理ＡＮＤを用いて論理「１」信号と組み合わせられ、その結果、クロック信号はクロック入力１１２においてメモリ素子１１０に到達する。
【０１００】
クロック入力１１２の機能的極性に応じて、ＡＮＤ１４４がＯＲ、ＮＡＮＤ、またはＮＯＲ関数に置換され、タイマ１４２の出力の極性が反転されることがあるかも知れない。この実施形態において、タイマ１４２およびＡＮＤ１４４は、メモリ素子１１０の遮蔽手段として使用される。
【０１０１】
メモリ素子１１０が静定された後、その内容はＰＵＦ制御手段１２０によって読み出される。ＰＵＦ制御手段１２０は、デジタル識別子を構築するために多ビットのＰＵＦ入力を取得する。多ビットを取得するのに可能なソースはいくつかある：メモリ素子１１０は多ビットのデータを記憶してもよく；ＰＵＦ制御手段１２０は多数のメモリ素子、たとえば多数のラッチ、または多数のフリップフロップ、または多数のレジスタ、またはこれらの組み合わせなど、たとえば多数のラッチとフリップフロップとの組み合わせに、接続さてもよく；ＰＵＦ制御手段１２０は、たとえばバタフライＰＵＦなど、その他の適切なＰＵＦ入力に接続されてもよい、などである。
【０１０２】
たとえば、ＰＵＦ制御手段１２０は、５１２個のラッチから５１２ビットのＰＵＦデータを取得してもよいが、この数は純粋な例示であり、デジタル識別子において望ましいビット数および存在する雑音の量に依存する。ＰＵＦデータは、物理媒体の少なくとも部分的にランダムな物理的特性によって少なくとも部分的に決定されるデータである。メモリ素子１１０の場合、メモリ素子１１０を構成する半導体素子の少なくとも部分的にランダムな物理的特性は、ＰＵＦデータのソースである。少なくとも部分的にランダムな物理的特性は製造中には制御されることは不可能であり、あるいは少なくとも過度の努力および資源が費やされた後にのみ可能であり得る。
【０１０３】
一例として、図１０は、ＰＵＦ制御手段１２０が多数のメモリ素子にどのように接続され得るかを模式的に示す。図１０には、メモリ素子１１０、１１０ａ、１１０ｂ、および１１０ｃが示されているが、しかしより多くのメモリ素子があってもよい。図１０の実施形態では、全てのメモリ素子が遮蔽手段を共有しており、すなわちこれはクロック入力を遮蔽するためである。各メモリ素子が自己の遮蔽手段を有することも可能である。
【０１０４】
ＰＵＦデータは、事前にヘルパデータメモリ１２２に記憶されているヘルパデータと組み合わせられる。ヘルパデータメモリ１２２は、ヘルパデータメモリ１２２に記憶されたヘルパデータがＰＵＦ制御手段１２０によって取得、たとえば読み出されることが可能なように、ＰＵＦ制御手段１２０に接続されているかまたは接続可能となっている。ヘルパデータアルゴリズムをＰＵＦデータおよびヘルパデータに適用することにより、異なる電源投入シーケンスにわたる自然な変動がそこから除去されたデジタル識別子が、生成される。ヘルパデータは、物理的複製不可能関数の登録段階の間にＰＵＦ制御手段によって、たとえば製造者によって、ヘルパデータメモリ１２２に書き込まれてもよい。ヘルパデータはまた、外部構成手段、この場合はＰＵＦ制御手段１２０を用いて書き込まれてもよく、ヘルパデータメモリ１２２は制御手段１２０からヘルパデータメモリ１２２に書き込むように構成される必要はない。
【０１０５】
ヘルパデータはまた、外部ソースから取得されてもよい。
【０１０６】
このようにヘルパデータを生成してヘルパデータアルゴリズムを適用することは、当該技術分野において周知である。完全性のため、我々はＰＵＦ制御手段１２０が動作してもよい方式の１つを提示する。
【０１０７】
ＰＵＦ１００が最初に電力供給されるとき、メモリ素子１１０、およびもしあればＰＵＦデータのその他全てのソースの内容が、読み出される。このデータから、デジタルビット列が生成される。このデジタルビット列は、登録データとして知られる。登録データは、通常はＸＯＲ演算を用いて、デジタルビット列と同程度に広いコード語を包含するコードからランダムに選択されたコード語に、追加される。追加の結果はヘルパデータとしてヘルパデータメモリ１２２に記憶される。その後の電源投入において、メモリ素子１１０およびもしあればＰＵＦデータのその他全てのソースが再び読み出され、デジタルビット列が生成される。新しいデジタルビット列は、事前にヘルパデータメモリ１２２に記憶されたヘルパデータに追加される。結果的に得られるのは、エラーが追加された可能性のあるコード語である。コードに関連づけられたエラー修正アルゴリズムがここで、エラーを除去するためにＰＵＦ制御手段１２０によって採用される。結果的に得られるのはコード語である。エラー修正手順のため、ＰＵＦデータが何らかの変動を有する可能性があったとしても、修正済みコード語は電源投入のたびに同一となる。コードのエラー修正能力は、ＰＵＦデータの変動を考慮に入れて、コード語が、たとえばその時間の９９％など、現在の用途に対して十分頻繁に再構築され得るように、選択されなければならない。修正済みコード語をヘルパデータに追加することにより、元の登録列が再構築される。図１の実施形態において、再構築登録列はＰＵＦ制御手段１２０の出力１２４に配置される。再構築登録列は、アンチエイジングのため、およびデジタル識別子としても、使用されてよい。あるいは、ＰＵＦ制御手段１２０は、デジタル識別子として修正済みコード語を出力してもよい。再構築登録列としての修正済みコード語はいずれも、たとえば暗号ハッシュ関数によって、さらに処理されてもよい。前記さらなる処理は、ＰＵＦ制御手段１２０で、またはどこか別の場所で行われてもよい。
【０１０８】
ヘルパデータを構築し、登録列を再構築するには、その他様々な方法もある。
【０１０９】
再構築登録列は、再構築登録列をアンチエイジング手段１５０に伝送するために、データ線１２６上に配置される。アンチエイジング手段はＭＵＸ１５６を制御する。ＭＵＸ１５６は２つの入力を有する；ＭＵＸ１５６はアンチエイジングデータ線１５２を経由してアンチエイジング手段１５０に接続され、これを通じてＭＵＸ１５６はアンチエイジング手段１５０からアンチエイジングデータを受信する；ＭＵＸ１５６はその他の入力としてメモリ素子１１０に記憶されたデータを受信するために、データ線１１８を経由してデータ出力１１６に、さらに接続されている。ＭＵＸ１５６の出力はデータ入力１１４に接続されている。電源投入から始まって少なくともＰＵＦ制御手段１２０がメモリ素子１１０から開始内容を読み出してしまうまで続く期間の間、アンチエイジング手段１５０は、データ線１１８を通じて受信した入力をデータ入力１１４に転送するように、ＭＵＸ１５６を制御する。その結果、開始データはデータ入力１１４に連続的に再入力される。その効果は、メモリ素子１１０がデータ値を記憶してレジスタのように動作することである。ＰＵＦ制御手段１２０が登録データを再構築した後、アンチエイジング手段１５０はＭＵＸ制御線１５４を通じてＭＵＸ１５６に、アンチエイジングデータ線１５２を通じて受信したデータを転送するように命令する。登録データの一部はメモリ素子１１０に対応する；この部分は、登録段階の間にメモリ素子１１０から読み出されたデータである。雑音がメモリ素子１１０の開始値を変更しない場合には、この部分はメモリ素子１１０の現在の開始値と同一である。しかしながら、登録中または現在の電源投入シーケンス中のいずれかに、メモリ素子１１０の値が変動のため変更された可能性もある。アンチエイジング手段１５０は、アンチエイジングデータを計算するように、メモリ素子１１０に対応する登録データの部分を反転する。アンチエイジングデータは、アンチエイジングデータ線１５２を通じてＭＵＸ１５６に転送される。アンチエイジング手段１５０がＭＵＸ制御線１５４に入力アンチエイジングデータ線１５２を使用するように命令した後、アンチエイジングデータはメモリ素子１１０に書き込まれることになる。
【０１１０】
アンチエイジング手段１５０は、ＰＵＦ制御手段１２０の登録列を受信するときにメモリ素子１１０の上書きを開始するように構成されてもよい。アンチエイジング手段１５０は、ＰＵＦ制御手段１２０と一体化してもよい。図１の実施形態において、クロック入力１１２が遮蔽されているので、データポート１１４のスプリアス信号からの影響は低減される。
【０１１１】
動作中、ＰＵＦ１００は以下のように動作してもよい。
【０１１２】
最初に、ＰＵＦ１００は通電状態にない。ＰＵＦ１００が電力供給されると、メモリ素子１１０はその安定状態のうちの１つに静定され始める。ほぼ同時に、クロック１３０はクロック信号を生成し始める。タイマ１４２は論理「０」を生成し始める。ＡＮＤゲート１４４は、クロック１３０が生成したクロック信号がメモリ素子１１０に到達しないように妨害する。メモリ素子１１０はこうしてクロックに邪魔されることなく静定されることが可能である。メモリ素子１１０が安定状態になった後、タイマ１４２の時間制限が切れ、タイマ１４２は論理「１」を生成し始める。ここでクロック信号はクロック１３０からクロック入力１１２に渡されることが可能となる。刻時がクロック入力１１２に到達するたびに、メモリ素子１１０はその内容をデータ入力１１４によって提供された内容で上書きするように起動される。このとき、アンチエイジング手段１５０はまだＭＵＸ１５６に、データ線１１８を通じて受信した入力を転送するように命令している。このためメモリ素子１１０はその内容を刻時のたびに上書きするが、しかしこれは同じ値で上書きする。こうしてメモリ素子１１０の開始内容は固守される。メモリ素子１１０に電力供給した後のいずれかの点で、ＰＵＦ制御手段１２０はアクティブになる。これはメモリ素子１１０の起動シーケンスの一部として電力供給されてから比較的早い時期であってもよいが、しかしこれは開始されたセキュリティアプリケーションの一部として、もう少し後に行われてもよい。ＰＵＦ制御手段１２０はメモリ素子１１０の、場合によっては多数のメモリ素子１１０の、内容を読み出す。メモリ素子１１０の先の電力供給の後に記憶されたヘルパデータを用いて、ＰＵＦ制御手段１２０は登録列を再構築し、デジタル識別子を生成する。登録列はアンチエイジング手段１５０に転送される。この時点でアンチエイジング手段１５０は、登録列のどの部分がメモリ素子１１０から事前に読み出されたかを特定してこの部分を反転するが、メモリ素子１１０がフリップフロップまたはラッチである場合にはこの部分は単一ビットであってもよく、メモリ素子１１０がより大きいメモリ素子または多数の素子の組み合わせである場合には、これは多ビットであってもよい。ここでアンチエイジング手段１５０は、アンチエイジングデータ線１５２を通じて登録列の前記部分の逆をＭＵＸ１５６に送り、データ線１１８を通じて受信した入力の代わりにアンチエイジングデータ線１５２を通じて受信した入力を転送するようにＭＵＸ１５６に命令する信号を、ＭＵＸ制御線１５４を通じて送る。その結果、メモリ素子１１０の内容はアンチエイジングデータで上書きされ、ＰＵＦとしてのメモリ素子１１０の耐用寿命は延長される。アンチエイジングデータを書き込んだ後、ＭＵＸ１５６は、保存されたアンチエイジングデータがメモリ１１０に保存されたままとなるように、切り替えられる。
【０１１３】
タイマ１４２によるクロックからのＰＵＦ１００の遮蔽は、その構成ゲート（のいくつか）の少なくとも部分的にランダムな物理的特性へのメモリ素子１１０の依存性を増加させ、その他のゲートのいくつかの潜在的影響を低減することによってメモリ素子１１０のカオス的な挙動を減少させる。
【０１１４】
ＰＵＦ１００は、いくつかの方式で簡素化されてもよい。
【０１１５】
たとえば、アンチエイジングの使用は放棄されてもよい。これはＰＵＦとしてのメモリ素子１１０の耐用寿命を短縮する可能性があるが、しかしその一方ではＰＵＦ１００の複雑さおよび価格を低減する。アンチエイジングが使用されなければ、アンチエイジング手段１５０、ＭＵＸ１５６、アンチエイジングデータ線１５２、ＭＵＸ制御線１５４、およびデータ線１２６は放棄されてよい。データ線１１８がＭＵＸ１５６の代わりにデータ出力１１６からデータ入力１１４に直接接続されることになるだろう。
【０１１６】
図１に示される実施形態は、単一のチャレンジ、すなわち電力供給を備える電子ＰＵＦとして構成されている。
【０１１７】
さらに、ＰＵＦ制御手段１２０は、ＰＵＦデータの変動の修正の省略によって簡素化されてもよい。これがなされる場合、ヘルパは必要とされないので、ヘルパデータメモリ１２２は放棄されてよい。アンチエイジングがまだ使用される場合には、これは登録列の部分の逆の代わりにメモリ素子１１０の内容の逆を使用するだろう。その場合、データ線１１８はＭＵＸ１５６およびアンチエイジング手段１５０の両方に接続されることになる。アンチエイジング手段１５０は、デジタル識別子が構築されたことを示すため、ＰＵＦ制御手段１２０から信号を受信する。雑音が除去されていないデジタル識別子は、装置全体にわたる開始値のばらつきと比較したときに雑音が十分に小さければ、メモリ素子１１０を識別するために、および含意ＰＵＦ１００によって、まだ有用であるかも知れない。アンチエイジングおよびエラー修正の両方を省略することによって、さらなる簡素化が実現される。
【０１１８】
図２ａは、本発明のより単純な実施形態である、電気物理的複製不可能関数２００を示す。
【０１１９】
ＰＵＦ２００は、メモリ素子としてのラッチ２１０を含む。ラッチ２１０はＳＲ  ＮＡＮＤラッチであり、図２ｂに示されるような方式で構築されてもよい。図２ｂに示されるラッチは２３０および２４０で標識された２つのＮＡＮＤゲートを含み、これらは交差結合ループで接続されている。ゲート２３０の出力はゲート２４０の入力に接続され、ゲート２４０の出力はゲート２３０の入力に接続されている。各ゲートは、他方のゲートの出力に接続されていない１つの入力を有している。これら２つの入力は制御入力であり、メモリ素子の安定状態を制御するために使用されてもよい。ラッチ２１０の制御入力は、正電源電圧２１５に直接的かつ恒久的に接続されている。この接続の結果として、ラッチ２１０の安定状態を制御する可能性が失われている；その一方で、そのゲートの少なくとも部分的にランダムな物理的特性へのラッチ２１０の依存性は改善されている。ＰＵＦ２００は、ＰＵＦデータを読み出してデジタル識別子を導出するためのＰＵＦ制御手段２２０を、さらに含む。
【０１２０】
図２ａ、図２ｂに示される実施形態は、単一のチャレンジ、すなわち電力供給を備える電子ＰＵＦとして構成されている。
【０１２１】
本発明に使用されてもよいラッチには、多くの形状およびタイプがある。これらは通常、交差結合されたＮＡＮＤゲート、ＮＯＲゲート、またはインバータを用いて構築される。セットリセットラッチ（セットリセットフリップフロップとも称される）は、最も単純なラッチの１つである。これは交差結合されたＮＡＮＤゲート（アクティブロー設定およびリセット信号）またはＮＯＲゲート（アクティブハイ信号）を用いて構築されることが可能である。ＳＲ  ＮＡＮＤラッチは図２ｂに示されている。設定およびリセット信号が非アクティブであるとき、電源投入状態は交差結合にのみ依存する。
【０１２２】
図３ａ、図３ｂ、および図３ｃは、たとえば図１または図２ａに示されるような構成で、本発明において使用されてもよい、３つのラッチを示す。図１の実施形態で使用されるとき、Ｄ入力はポートデータ入力１１４として使用され、ＥＮ入力はポートクロック入力１１２として使用され、Ｑ出力はデータ出力１１６として使用されるだろう。図２の実施形態で使用されるときは、図２ａに示されるようなＳおよびＲ入力のＶｄｄ（正電源電圧）への接続と同様に、ＥＮはＧｎｄ（グランド）に接続されるだろう。この特定の場合には、Ｄ入力はＶｄｄまたはＧｎｄのいずれにも接続されることが可能である。
【０１２３】
たとえば図３ａ、図３ｂ、および図３ｃに示されるように、アクティブハイＥＮ信号の代わりにアクティブローＥＮ信号を有するラッチなど、別のタイプのラッチも可能である。これらのラッチでは、ＥＮ信号がＶｄｄに接続されるべきである。すると前記ラッチのＤ入力は、まだＶｄｄまたはＧｎｄのいずれかに接続されていることが可能である。
【０１２４】
図４ａは、たとえば図１または図２の実施形態で、メモリ素子として本発明において使用されてもよい、Ｄフリップフロップを示す。
【０１２５】
フリップフロップは、ＩＣ技術ノードの標準セルライブラリで入手可能な、ラッチと類似の論理構成要素である。装置に電力供給するとき、装置に含まれるフリップフロップは、内部物理的装置特性に依存する乱数値から開始する。したがって、異なるフリップフロップの電源投入状態が、物理的複製不可能関数として使用されることが可能である。十分な数のフリップフロップの内容がデジタル識別子の中で組み合わせられるとき、その結果は、これらが含まれる電子装置に固有となる。
【０１２６】
ＳＲＡＭ  ＰＵＦと比較して、ラッチ、フリップフロップ、またはレジスタを使用することの利点は、フリップフロップ設計の中に容易に拡散し、攻撃者に見つかりにくいことであるが、その一方でＳＲＡＭメモリはＩＣの中で比較的大きい高密度構造として見えることである。
【０１２７】
図４ａに示されるフリップフロップ実装は、ＮＡＮＤゲートを用いて構築された３つのセットリセット（ＳＲ）ラッチを用いて構築されている。３つのラッチは図４ｂにおいて、ラッチ４１０、４２０、および４３０として識別される。ラッチ４１０および４２０はフリップフロップを制御するために使用される。ラッチ４３０はフリップフロップの内容を実際に記憶する役割を果たす。フリップフロップはまた、ＮＯＲ実装を用いて構築されてもよく、この結果、アクティブロークロックとなる。さらに別の実装もまた可能である。出力は、クロック信号に正エッジが生じたときにのみ変化する。なお、ラッチ４３０のゲートの１つはラッチ４１０および４２０を接続するための３入力ゲートであることに、注意する。
【０１２８】
クロックが低いとき、電源投入状態はラッチ４３０に依存する。クロックが高いときは、電源投入状態は他の２つのラッチ４１０および４２０に依存する。図４ｂは、電源投入中にメモリ素子からクロックを遮蔽する利点を、はっきりと示している。クロックがアクティブであるか否かに応じて、メモリ素子の電源投入状態が異なる数のゲート、特に異なる数のラッチに依存する場合には、クロックの遮蔽は、ＰＵＦデータソースとしてのメモリ素子の信頼性を向上する。
【０１２９】
図５ａは、本発明において使用されてもよい別の有用なメモリ素子である、マスタスレーブ型Ｄフリップフロップ５００を示す。これは２つのＤラッチで構築されている：第一Ｄラッチ５１０および第二Ｄラッチ５２０である。第一Ｄラッチ５１０のＱ出力は、第二Ｄラッチ５２０のＤ入力に接続される。クロック信号は第一Ｄラッチ５１０および第二Ｄラッチ５２０のＥＮ入力に接続されるが、しかし第一Ｄラッチ５１０についてはクロック信号はまずインバータを経由させられる。第一Ｄラッチ５１０のＤ入力は、組み合わせの、すなわちマスタスレーブ型フリップフロップの、Ｄ入力と見なされる。第二Ｄラッチ５２０のＱ出力は、組み合わせの、すなわちマスタスレーブ型フリップフロップの、Ｑ出力と見なされる。ＣＬＫ線は、イネーブル（ＥＮ）線として使用されてもよい。マスタスレーブ型フリップフロップ５００は、たとえば、通常はＳおよびＲと称される、フリップフロップを所定の状態にする入力など、１つ以上のその他の入力を含んでもよい。
【０１３０】
クロックが低いとき、電源投入状態は第二Ｄラッチ５２０に依存する。クロックが高いときは、電源投入状態は第一Ｄラッチ５１０に依存する。この原則は、２つのチャレンジを有するチャレンジ−応答機構として使用されることが可能である：マスタスレーブ型ＤフリップフロップＰＵＦの第一チャレンジは、装置への電力供給中にクロック入力を低く保つことによって付与され、第二の方は装置への電力供給中にクロック入力を高く保つことによって付与される。実施形態には、そのチャレンジの各々に対するヘルパデータが設けられることも可能である。あるいは、１つのチャレンジのヘルパデータは装置上で入手可能であってもよく、その一方で別のチャレンジのヘルパデータが装置の外部に保存されてもよい。マスタスレーブ型フリップフロップ５００に電力供給している間、ＥＮポートが低電圧すなわち論理「０」、または高電圧すなわち論理「１」のいずれに接続されるかを選択することにより、マスタスレーブ型フリップフロップ５００の開始値が、第一Ｄラッチ５１０または第二Ｄラッチ５２０のいずれの交差結合ループによって決定されるかを判断してもよい。
【０１３１】
マスタスレーブ型フリップフロップ５００は、１つは第一Ｄラッチ５１０、１つは第二Ｄラッチ５２０の、２つの交差結合ループを含むメモリ素子である。メモリ素子は、内部を通るクロック信号を受信するためのクロック入力を含む；反転されたものは第一Ｄラッチ５１０へ、受信したままのものは第二Ｄラッチ５２０へ通される。マスタスレーブ型フリップフロップ５００は、メモリ素子１１０がマスタスレーブ型フリップフロップ５００に置き換えられ；マスタスレーブ型フリップフロップ５００のＤポートはデータ入力１１４に取って代わり；マスタスレーブ型フリップフロップ５００のＣＬＫポートはクロック入力１１２に取って代わり；マスタスレーブ型フリップフロップ５００のＱポートはデータ出力１１６に取って代わった、ＰＵＦ１００の構成において使用されてもよい。
【０１３２】
ＰＵＦ１００において示される構成は、多くのチャレンジのために構成されたものではないが、以下のように改造されてもよい。どの交差結合ループがマスタスレーブ型フリップフロップ５００の電源投入値を決定すべきかを選択するために、論理「０」または論理「１」を出力する選択手段が、追加される。たとえば、選択手段は１ビット不揮発性メモリまたは入力ピンを含んでもよく、これはＰＵＦを含む電子装置によって、または外部で設定され得る。ＡＮＤゲート１４４は、以下の式によって指示される論理を実行する、より複雑な論理回路に置き換えられる：（ＮＯＴ（タイマ）ＡＮＤ（選択））ＯＲ（ＣＬＫ  ＡＮＤタイマ）。この式において、「タイマ」はタイマ１４２の出力を表し、タイマがまだ時間切れになっていない間はタイマは０であってその後は１であり、「選択」は選択手段の出力を表す。
【０１３３】
この論理回路の影響は、「選択」が低いときはＰＵＦ１００の通常挙動、すなわちＡＮＤゲート１４４によって指示された挙動に続くことである。しかし「選択」が高い場合には、タイマが低い間にマスタスレーブ型フリップフロップ５００に高信号が送られる。一旦タイマ１４２の出力が高くなると、すなわち電源投入シーケンスが終わると、マスタスレーブ型フリップフロップ５００はクロック信号を通常通りに受信する。
【０１３４】
図５ｂは、選択手段の可能な実施形態を示す。図１のメモリ素子１１０としてマスタスレーブ型フリップフロップ５００が使用される場合には、図１の素子１１０、１１２、１１４、１１６、１３０、１４２、１４４、および１４６を置き換えるために、図５ｂに示される選択手段が使用されてもよい。メモリ素子５００は、図５ａからのマスタスレーブ型フリップフロップである。これはクロック入力５１２、データ入力５１４、およびデータ出力５１６を含む。これはその他の入力および出力を含んでもよい。チャレンジセレクタ５４０は、マスタスレーブ型フリップフロップ５００の第一Ｄラッチ５１０と第二ＤラッチＤ５２０との間で選択する。クロック５３０は、マスタスレーブ型フリップフロップ５００の通常動作で使用されるクロックである。セレクタ５４４は、上記の式を実行するｍｕｘである。選択信号５４３に基づいて、これはクロック５３０またはチャレンジセレクタ５４０の出力を、クロック信号５４６に接続されたその出力に渡す。タイマ５４２は、クロックおよびチャレンジ選択信号のうちのどれがクロック信号５４６に向かって通されるべきかを決定する。図５ｂの制御入力５１２、データ入力５１４、およびデータ出力５１６は、図５ａではそれぞれＣＬＫ、Ｄ、およびＱで記されている。
【０１３５】
２つの異なるチャレンジを許容する電気物理的複製不可能関数（ＰＵＦ）は、遮蔽手段を使用しなくても、独立した発明的価値を有する；たとえば、メモリ素子の内容を読み出し、少なくとも部分的に前記内容からデジタル識別子を導出するためのＰＵＦ制御手段に接続可能な半導体メモリ素子を含む、電気物理的複製不可能関数（ＰＵＦ）であって、メモリ素子は、少なくとも２つの異なる安定状態になるように構成可能なタイプのものであり、安定状態はメモリ素子の内容を表し、メモリ素子は、メモリ素子に電力供給してメモリ素子を通電状態にするための電源入力と、１つ以上の制御信号を受信するための制御入力とを含み、制御信号は、メモリ素子を少なくとも２つの異なる安定状態のうちの選択された１つに静定するように構成し、メモリ素子は電源投入時に少なくとも２つの異なる安定状態のうちの１つになるよう構成され、メモリ素子がなる特定の安定状態は、メモリ素子の少なくとも部分的にランダムな物理的特性に、少なくとも部分的に依存しており、ここでメモリ素子は２つの交差結合ループを含み、選択手段は２つの交差結合ループのうちの１つを選択するように構成され、電源投入時にメモリ素子がなる特定の安定状態は、２つの交差結合ループのうちの選択された一方の少なくとも部分的にランダムな物理的特性に依存するが、２つの交差結合ループのうちの選択されなかった方には依存しない。
【０１３６】
電子ＰＵＦを遮蔽手段と組み合わせることにより、ＰＵＦとしてのその品質は改善される。
【０１３７】
図６ａ、図６ｂ、図６ｃ、および図６ｄ
レジスタをメモリ素子として使用すること、および電子ＰＵＦのＰＵＦデータのソースとして機能することも、可能である。レジスタは、制御された書き込みを可能にするために、ＭＵＸ（マルチプレクサ）を通じてそのＤ入力にその出力をフィードバックさせる。ＬＤ信号（ロード）がアクティブであるとき、入力は次のクロックエッジまたはラッチイネーブルにロードされ、あるいはこれはその現在の値を維持する。ＬＤ信号を非アクティブ状態に維持することによって、レジスタはＰＵＦとして機能する。このように、Ｄ入力はフリップフロップまたはラッチのＱ出力上に存在する信号をいつも受信する。クロックまたはイネーブル信号がＩＮでの信号の値を切り替えたとしても、入力はフリップフロップまたはラッチにクロックされない。図６ａおよび図６ｂに示されるレジスタのＣＬＫ信号を遮蔽することによって、そのＰＵＦ挙動が改善される。
【０１３８】
ＱおよびＤを通る余分なループ（およびクロックまたはイネーブル信号の活性）のため、ＰＵＦ挙動は、クロックまたはイネーブル信号が非アクティブであるときの状態とは異なる。
【０１３９】
ＰＵＦ挙動のみを上記回路から外すために、ｍｕｘは必要ではない。図６ｃおよび図６ｄに描写されるようなｍｕｘを用いない、より単純なスキームを作ることもできるだろう。ＱおよびＤを通るループはＭＵＸを備えるものとはわずかに異なるため、およびループ遅延のため、ＰＵＦ挙動はやはり異なってくる。
【０１４０】
図６ａ、図６ｂ、図６ｃ、および図６ｄに示される上記回路において、使用可能なフリップフロップおよびラッチはまた、別のタイプのフリップフロップまたはラッチに置き換えられることも可能である。
【０１４１】
図７は、異なるモジュールにわたって遮蔽がどのように分布してもよいかを図解するための線図７００を示す。
【０１４２】
時間図７００において、時間は横軸上に示され、左から右に向かって進む。「０」が記された瞬間より前の期間に、メモリ素子またはメモリ素子が含まれる装置全体が、電源遮断されるかまたは通電されていない。「０」の瞬間に、電源スイッチが入れられる。瞬間０において、メモリ素子は安定状態にないが、しかし通電の結果、これは第一の期間７１０の間に静定され始める。第一の期間の終点である瞬間７１５において、メモリ素子は安定状態になる。メモリ素子への書き込みは行われていない。期間７１０の間、遮蔽は好ましくはハードウェア遮蔽手段を用いて行われる；たとえば、制御入力を基準電圧で接続することによって、またはメモリ素子に行くクロック信号をゲート制御することによって行われる。瞬間７１５の後に、第二の期間７２０が始まる。期間７２０の間に、メモリ素子の開始内容は、期間７１０の間に使用されたのと同じハードウェア遮蔽手段によって保持されてもよいが、しかし遮蔽はまた別のハードウェア手段を用いて、あるいはソフトウェア手段を用いて、実行されてもよい。たとえば、書き込み信号はメモリ素子に到達しないので、その期間の間にソフトウェアプログラムが書き込むことはできないという意味において、メモリ素子への書き込みは期間７１０の間は無効にされてもよい。期間７２０の間、メモリが安定状態になった後、たとえばこのメモリ素子への書き込みを回避するために装置上で動作するソフトウェアを構成することによってそれが回避されている限り、メモリ素子への書き込みは有効にされてもよいだろう。
【０１４３】
期間７２０のどこかで、ＰＵＦ制御手段はメモリ素子の内容を読み出す。ＰＵＦ制御手段が読み出しを終えると、期間７２０が終了し、瞬間７２５によって標識される。この時に第三の期間７３０が始まる。期間７３０の間継続するためにはいくつかの可能性がある。たとえば、メモリ素子は、電源投入の間に静定された安定状態のままであってもよい；この挙動は、メモリ素子への書き込み信号を恒久的に阻止することによって、得られてもよい。さらなる例として、期間７３０においてメモリ素子の内容がアンチエイジングデータで上書きされてもよい；この挙動は、瞬間７２５以前のいずれかの時点まで書き込み信号を一時的に阻止すること、およびアンチエイジングデータで開始データを上書きするために期間７３０の間にアンチエイジング手段を使用することによって、得られてもよい。さらなる例として、メモリ素子は、たとえば０などの定数で、またはランダムデータで、上書きされてもよい；この挙動は、もはや必要がなくなったときにメモリ素子の中にセキュリティに敏感な材料の痕跡が残っていないことを保証することによって、セキュリティを改善するかも知れない。メモリの一部はアンチエイジングデータで上書きされてもよく、一部は定数またはランダムデータなど、その他のデータで上書きされてもよい。
【０１４４】
図８ａは、本発明によるスマートカード８００の模式的描写を上面図で示す。スマートカードは、集積回路８１０と、集積回路８１０を支持する、通常はプラスチックの、カード８０５とを含む。集積回路８１０のアーキテクチャは、図８ｂに模式的に示されている。回路８１０は、本発明による方法を実行するためおよび／またはそのモジュールを実装するためにコンピュータプログラムコンポーネントを起動するための、たとえばＣＰＵなどの処理ユニット８２０を含む。回路８１０は、プログラミングコード、データ、暗号鍵、ヘルパデータなどを記憶するためのメモリ８２２を含む。メモリ８２２の一部は読み取り専用であってもよい。メモリ８２２の一部は、たとえば鍵などのセキュリティ関連データを記憶するための、たとえばヒューズなどの、高セキュリティメモリであってもよい。回路８１０は、物理的複製不可能関数８２４を含む。たとえば、ＰＵＦ８２４は、メモリ素子および遮蔽手段を含んでもよい。物理的複製不可能関数８２４は、メモリ８２２と組み合わせられてもよい。たとえばＰＵＦ８２４のメモリ素子は、メモリ８２２の一部であってもよい。メモリ８２２は、読み取り書き込みおよび読み取り専用メモリ、および／または揮発性および不揮発性メモリの、組み合わせであってもよい。回路８１０は、たとえばアンテナ、コネクタパッド、またはその両方などの、通信素子８２６を含んでもよい。回路８１０、メモリ８２２、ＰＵＦ８２４、および通信素子８２６は、バス８３０を通じて互いに接続されてもよい。カードは、それぞれアンテナおよび／またはコネクタパッドを用いて、接触および／または非接触通信のために配置されてもよい。スマートカードは、たとえば内容へのアクセスを制御するためにセットトップボックス内で、遠隔通信ネットワークへのアクセスを制御するために携帯電話内で、公共交通機関へのアクセスを制御するために公共交通機関システム内で、銀行口座へのアクセスを制御するためにキャッシュカード内などで、使用されてもよい。
【０１４５】
たとえば、メモリ８２２は、処理ユニット８２０による実行のためのソフトウェアを含んでもよい。たとえば、ＰＵＦ制御手段がソフトウェアに実装され、処理ユニット８２０による実行のためにメモリ８２２に記憶されてもよい。前記ソフトウェアが実行されるとき、ＰＵＦ８２４のメモリ素子が読み出され、８２２のヘルパデータが読み出され、たとえば暗号鍵などのデジタル識別子がユニット８２０によって導出される。スマートカードは、たとえば遅延ＰＵＦなど、さらなる非メモリベースＰＵＦを含んでもよい。
【０１４６】
本発明はスマートカードに限定されるものではなく、たとえば携帯電話、セットトップボックス、コンピュータ、アクセス制御システムなど、その他の集積回路上で実現されることも可能であろう。
【０１４７】
図９は、本発明による方法をフローチャートに示す。フローチャートは、可能性のある順序で６つのステップを示す。
【０１４８】
ステップ９１０は、制御信号を受信しないように制御入力を遮蔽することを含む。ステップ９２０は、メモリ素子に電力供給することを含む。ステップ９３０において、メモリ素子は安定状態になる。ステップ９４０は、メモリ素子の内容を読み出すことを含む。ステップ９５０は、デジタル識別子を導出することを含む。ステップ９６０は、アンチエイジングデータをメモリ素子に書き込むことを含む。
【０１４９】
当業者にとって明らかとなるように、方法を実行する多くの異なる方式が可能である。たとえば、ステップの順序は変更されてもよく、いくつかのステップが平行して実行されてもよい。たとえば、ステップ９４０が少なくとも部分的に完了するまで、ステップ９１０が続けられる。ステップ９６０は任意である。さらに、方法ステップの前、最中、または後に、その他のステップが挿入されてもよい。挿入されたステップは、本明細書に記載されるようは方法の改良版を表してもよく、あるいは方法と無関係であってもよい。さらに、与えられたステップは、次のステップが開始される前に完全に終了していなくてもよい。
【０１５０】
本発明による方法は専用ハードウェアにおいて実現されてもよいものの、本発明による方法は完全にまたは部分的にソフトウェアの制御の下で実行されてもよく、これはプロセッサシステムに方法９００を実行させる命令を含んでいる。ソフトウェアは、登録および／または再構築段階の間、サーバまたは計算装置によって取られるこれらのステップを含むだけでもよい。ソフトウェアは、ハードディスク、フロッピ、メモリなど、適切な記憶媒体に記憶されてもよい。ソフトウェアは、有線で、または無線で、またはたとえばインターネットなどのデータネットワークを用いて、信号として送られてもよい。ソフトウェアは、ダウンロードおよび／またはサーバ上での遠隔利用のために、入手可能とされてもよい。
【０１５１】
上述の実施形態は、本発明を限定するよりむしろ説明していること、および当業者は添付請求項の範囲から逸脱することなく多くの代替実施形態を設計することができることは、特筆すべきである。請求項において、括弧内に示されるいずれの参照符号も、請求項を制限するように解釈されるべきではない。「含む（ｃｏｍｐｒｉｓｅ）」という動詞およびその活用形の使用は、請求項に記載されるもの以外の要素またはステップの存在を排除するものではない。要素の前の冠詞「ａ」または「ａｎ」は、このような要素が複数存在することを除外するものではない。本発明は、いくつかの異なる要素を含むハードウェアによって実現されてもよい。いくつかの手段を列挙する装置請求項において、これら手段のうちのいくつかは、ハードウェアの１つおよび同じアイテムによって実現されてもよい。単に特定の対策が互いに異なる従属請求項で引用されているということは、これらの対策の組み合わせが有利に使用され得ないことを示すものではない。
【符号の説明】
【０１５２】
１００、２００  電気物理的複製不可能関数（ＰＵＦ）
１１０  メモリ素子
１１２、５１２  制御入力
１１４、５１４  データ入力
１１６、５１６  データ出力
１１８  データ線
１２０、２２０  ＰＵＦ制御手段
１２２  ヘルパデータメモリ
１２４  ＰＵＦ出力
１２６  再構築された読み出しを伝送するためのデータ線
１３０、５３０  クロック
１４２、５４２  タイマ
１４４  ＡＮＤゲート
１４６、５４６  制御入力線
１５０  アンチエイジング手段
１５２  アンチエイジングデータ線
１５４  ＭＵＸ制御線
１５６、５４４  ＭＵＸ
２１０、４１０、４２０、４３０  ラッチ
２１５  正電源電圧
２３０、２４０  ＮＡＮＤゲート  
５００  マスタスレーブ型フリップフロップ
５１０  第一Ｄラッチ
５２０  第二Ｄラッチ
５４０  チャレンジセレクタ
５４３  選択信号
７００  線図
７１０  第一の期間
７１５  第一の期間の終点
７２０  第二の期間
７２５  第二の期間の終点
７３０  第三の期間
８００  スマートカード
８０５  カード
８１０  集積回路
８２０  処理ユニット
８２２  メモリ
８２４  物理的複製不可能関数
８２６  通信素子
８３０  バス
９００  電気物理的複製不可能関数を実行する方法
９１０  制御信号を受信しないように制御入力を遮蔽
９２０  メモリ素子に電力供給
９３０  メモリ素子を静定
９４０  メモリ素子の内容を読み出す
９５０  デジタル識別子を導出
９６０  アンチエイジングデータをメモリ素子に書き込む
【図１】
0005881715.tif 000002
【図２ａ】
0005881715.tif 000003
【図２ｂ】
0005881715.tif 000004
【図３ａ】
0005881715.tif 000005
【図３ｂ】
0005881715.tif 000006
【図３ｃ】
0005881715.tif 000007
【図４ａ】
0005881715.tif 000008
【図４ｂ】
0005881715.tif 000009
【図５ａ】
0005881715.tif 000010
【図５ｂ】
0005881715.tif 000011
【図６ａ】
0005881715.tif 000012
【図６ｂ】
0005881715.tif 000013
【図６ｃ】
0005881715.tif 000014
【図６ｄ】
0005881715.tif 000015
【図７】
0005881715.tif 000016
【図８ａ】
0005881715.tif 000017
【図８ｂ】
0005881715.tif 000018
【図９】
0005881715.tif 000019
【図１０】
0005881715.tif 000020