(57)【特許請求の範囲】
【請求項１】
個体別情報を生成する装置であって、
アドレス空間に配置されているメモリ、
前記メモリを構成している複数のメモリセルに含まれている欠陥セルを検出すると共に、検出された欠陥セルを、欠陥の種別に応じて定義されている複数のグループのいずれかに分類する検出部、及び
前記検出部が検出した欠陥セルを特定するアドレスの情報と該欠陥セルについての欠陥の種別とに基づいて前記個体別情報を生成する生成部、
を備える個体別情報生成装置。
【請求項２】
前記検出部は、所定のデータが書き込まれた前記メモリのメモリセルから読み出されたデータが該所定のデータと一致するか否かを判定し、該読み出されたデータが該所定のデータと一致しないと判定した場合に、該メモリセルを欠陥セルとして検出する請求項１に記載の個体別情報生成装置。
【請求項３】
前記検出部は、前記メモリセルへの前記所定のデータの書き込み及び該メモリセルからのデータの読み出しが複数回行われた場合において、該読み出されたデータが該所定のデータと一致しないとの判定結果が少なくとも１回得られた場合には、該メモリセルを欠陥セルとして検出する請求項２に記載の個体別情報生成装置。
【請求項４】
前記生成部は、前記検出部が複数検出した欠陥セルの各々を特定するアドレスを表している数値列を連結して得られる連結数列に対してエントロピ圧縮を行って得られた値に基づいて、前記個体別情報を生成する請求項１に記載の個体別情報生成装置。
【請求項５】
前記メモリに対する冗長メモリ、
前記検出部により検出された欠陥セルを特定するアドレスを、前記冗長メモリを構成しているメモリセルを特定する冗長セルアドレスに対応付けて記憶する記憶部、及び
入力されたアドレスが前記記憶部に記憶されている前記欠陥セルを特定するアドレスと一致した場合に、該記憶部において該一致したアドレスに対応付けられている冗長セルアドレスで特定される前記冗長メモリのメモリセルを選択する選択部、
を更に備える請求項１から４のうちのいずれか一項に記載の個体別情報生成装置。
【請求項６】
前記記憶部は、揮発性メモリとレジスタとのうちのどちらか一方である請求項５に記載の個体別情報生成装置。
【請求項７】
前記検出部は、前記検出された欠陥セルを、メモリセルから読み出されるデータが該メモリセルに書き込まれたデータに関わらずに不定であるグループとその他とに分類する請求項１から４のうちのいずれか一項に記載の個体別情報生成装置。
【請求項８】
前記検出部は、前記グループに分類される欠陥セルを、更に、メモリセルから読み出されるデータが所定値である確率に応じた複数のグループに分類する請求項７に記載の個体別情報生成装置。
【請求項９】
請求項１から４のうちのいずれか一項に記載の個体別情報生成装置、及び
前記個体別情報生成装置が生成した個体別情報を暗号鍵として用いて、情報の暗号化処理を行う暗号化処理部、
を備える暗号化装置。
【請求項１０】
認証対象装置が正規のものであるか否かの認証を行う認証装置と、該認証装置によって認証が行われる正規の認証対象装置とを含む認証システムであって、
前記正規の認証対象装置は、請求項１から４のうちのいずれか一項に記載の個体別情報生成装置を備えており、
前記認証装置は、
認証対象装置との間で通信を行って各種の情報の授受を行う通信部、
認証対象装置のうちの正規のものが備えている個体別情報生成装置が生成する個体別情報が予め記録されている記録部、及び
認証対象装置に対する認証処理を、該認証対象装置から送られてくる情報と前記記録部に記録されている情報とに基づいて行う認証処理部、
を備え、
前記通信部は、認証対象装置から送られてくる個体別情報を受信し、
前記認証処理部は、前記通信部が認証対象装置から受信した個体別情報が、前記記録部に予め記録されていた個体別情報と一致するか否かの判定を行い、両者が一致すると判定したときに、該認証対象装置が正規のものであるとの認証結果を得る、
認証システム。
【請求項１１】
個体別情報を生成する方法であって、
アドレス空間に配置されているメモリを構成している複数のメモリセルから欠陥セルを検出し、
前記検出された欠陥セルを、欠陥の種別に応じて定義されている複数のグループのいずれかに分類し、
前記検出された欠陥セルを特定するアドレスの情報と該欠陥セルについての欠陥の種別とに基づいて前記個体別情報を生成する、
個体別情報生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で議論される実施態様は、デバイス毎に固有であり、デバイス間では互いに異なっている個体別情報を生成する技術に関するものである。
【背景技術】
【０００２】
近年、プリンタカートリッジや、電池等のバッテリー、ゲーム機のカートリッジといった製品に関して、正規品の製造メーカとは異なる製造メーカによるクローン品が多く見られるようになっている。クローン品とは、正規品の内部構造の分析や正規品の内部に存在するＩＣ（集積回路）チップの解析等の結果を用いて製造された、正規品と同等の機能を有する製品である。これらのクローン品の中には、正規品を製造する正規メーカの知的財産等の権利を侵害するケースも多く、クローン対策技術が強く求められている。
【０００３】
このようなクローン品を防止する手法として、正規品へ認証機能を付与することが行われている。この認証機能を実現する有効な手段のひとつがＰＵＦ（Physically Unclonable Function：物理的クローン作製不能機能）である。詳細は後述するが、ＰＵＦから生成される秘密情報は、顕微鏡での観察による解析では特定できない。従って、上記に挙げたようなクローン品への対策が必要な製品に対してＰＵＦを組み込んで、ＰＵＦで秘密情報を生成することで認証機能を実現することは、クローン品への対策としての有効性が高い。
【０００４】
ＰＵＦは、ある同一の入力に対して、ＰＵＦが実装された電子デバイス毎に異なる出力を返す関数である。但し、デバイス毎に異なる値を出力するような関数を個別に設定する必要はなく、同一の回路（顕微鏡での解析を行っても、見た目は同一であって、その出力値が特定できない）がこの関数を実現する。つまり、ＰＵＦは、デバイス内の信号遅延や素子特性などの物理特性のわずかな違いを利用することで、その出力をデバイス毎に全く異なる値とする。従って、この出力はデバイス固有の値（「個体別情報」と称することとする）となる。
【０００５】
理想的なＰＵＦは、デバイス上に実装するとそのデバイスでは常に同一の個体別情報を出力する（再現性）一方、異なるデバイス上に実装されたＰＵＦ間では全く異なる個体別情報を出力する（ユニーク性）。このようなデバイスにおけるＰＵＦの出力情報は、人における、「指紋」のような生体情報に喩えることができる。指紋は、同一人であれば年をとっても不変である（再現性）一方、別人の間では全く異なる（ユニーク性）という、理想的なＰＵＦの出力情報と同様の性質を有している。
【０００６】
また、同一の回路構成のＰＵＦが、このような理想的な再現性とユニーク性と兼ね備えていれば、攻撃者が回路を分解し、内部を解析したところで、クローンチップを生成することはできない。
【０００７】
このＰＵＦは、識別情報（ＩＤ）の生成や暗号鍵の生成にも用いられる。従って、ＰＵＦを用いて認証機能を実現することが可能である。
多くの電子デバイス製品では、個々に固有のＩＤを必要とする。従来は、多くの場合において、それぞれのデバイス毎に異なる値をＩＤとして不揮発性メモリに書き込む作業が製造段階で行われていた。このＩＤの生成にＰＵＦを用いると、セキュアにＩＤをＩＣチップ内に格納しておけるだけでなく、この書き込み作業のコストを低減させることもできる。
【０００８】
また、暗号機能を含む製品はＰＵＦを用いると安全性が向上する。具体例として、情報記録用の集積回路をカードに組み組んだスマートカードがある。また、通信の秘匿を保証するために、携帯電話に使用されるＳＩＭ（Subscriber Identification Module）カードや無線インターネット接続の端末などにも暗号機能が必須である。これらの機器での暗号化に使用する暗号鍵の生成にＰＵＦを使用するようにすれば、暗号鍵が攻撃者に解析される危険性が大幅に低下し、安全性が向上する。
【０００９】
次に、ＰＵＦの基本的な回路構成例を幾つか説明する。
なお、本明細書における以下の説明では、電位の異なる２値の論理レベルにおけるハイ・レベルを値「１」と表現し、ロー・レベルを値「０」と表現することとする。
【００１０】
広く知られているＰＵＦは、大きく分けて、遅延型ＰＵＦとメタスタビリティ（metastability ）型ＰＵＦとの２つに分類することができる。ここでは、メタスタビリティ型ＰＵＦについて説明する。
【００１１】
メタスタビリティ型ＰＵＦは、デジタル回路の不定状態を利用するＰＵＦである。メタスタビリティ型ＰＵＦに分類されるＰＵＦのひとつとして、バタフライ型ＰＵＦが知られている。このバタフライ型ＰＵＦについて説明する。
【００１２】
バタフライ型ＰＵＦは、ＲＳラッチ回路のメタステーブルを利用してＰＵＦを実現するものである。このメタステーブルについて、図１Ａ及び図１Ｂを用いて説明する。
図１Ａには、ＲＳラッチ回路の構成例が図解されている。このＲＳラッチ回路は、ＮＡＮＤ（否定論理積）回路１１及び１２を用いて構成されている。
【００１３】
このＲＳラッチ回路の入力は負論理である。なお、図面においては、負論理の信号を信号名の上にオーバーバーを付すことで表現しているが、本明細書においては、負論理の信号を“＃”で表記するものとする。従って、例えば、図１ＡのＲＳラッチ回路のセット入力は“＃Ｓ”と表記し、リセット入力は“＃Ｒ”と表記する。
【００１４】
ＮＡＮＤ回路１１の２つの入力には、それぞれ、セット入力“＃Ｓ”と、ＮＡＮＤ回路１２の出力とが入力される。また、ＮＡＮＤ回路１２の２つの入力には、それぞれ、リセット入力“＃Ｒ”と、ＮＡＮＤ回路１１の出力とが入力される。また、ＮＡＮＤ回路１１の出力がＲＳラッチ回路の出力Ｑとなる。なお、ＮＡＮＤ回路１２からは、出力“＃Ｑ”が出力される。
【００１５】
図１Ｂは、この図１ＡのＲＳラッチ回路の真理値表である。なお、この真理値表においては、セット入力Ｓ及びリセット入力Ｒを正論理で表記している。
真理値表からも分かるように、図１ＡのＲＳラッチ回路は、入力Ｓ＝０且つ入力Ｒ＝０のときには、出力値はそのまま保持されるので、Ｑ＝Ｑとなり、“＃Ｑ”＝“＃Ｑ”となる。また、このＲＳラッチ回路は、入力Ｓ＝０且つ入力Ｒ＝１のときには出力値はリセットされて、Ｑ＝０となり、“＃Ｑ”＝１となる。更に、このＲＳラッチ回路は、入力Ｓ＝１且つ入力Ｒ＝０のときには出力値はセットされて、Ｑ＝１、“＃Ｑ”＝０となる。
【００１６】
図１ＡのＲＳラッチ回路は、以上の入力の組み合わせのいずれかであれば、出力の論理は安定している。ところが、このＲＳラッチ回路は、入力Ｓ＝１且つ入力Ｒ＝１のときには、Ｑ＝“＃Ｑ”＝１となってしまう。つまり、この場合には、本来は反対の論理を示すはずであるＱの論理値と“＃Ｑ”の論理値とが、揃って「１」となってしまう。このとき、このＲＳラッチ回路の出力は、どちらも、中間電位の不安定な状態となっている。このような、デジタル回路としては異常である不安定な状態が、メタステーブル（metastable）と呼ばれている。一般的には、このようなメタステーブルの状態を回避するために、ＲＳラッチ回路に対するＳ＝１且つＲ＝１の入力は禁止される。
【００１７】
次に、このようなＲＳラッチ回路のメタステーブルを利用するバタフライ型ＰＵＦについて説明する。図２は、このバタフライ型ＰＵＦの構成例である。
このバタフライ型ＰＵＦ１０は、図１ＡのＲＳラッチ回路のセット入力“＃Ｓ”及びリセット入力“＃Ｒ”の両方に同一の値Ａを入力するように構成したものである。ここで、このバタフライ型ＰＵＦ１０の出力である、ＲＳラッチ回路の出力Ｑ及び出力“＃Ｑ”を、それぞれ、Ｂ及びＣとする。つまり、このバタフライ型ＰＵＦ１０は、ＲＳラッチ回路に対しメタステーブル状態とする入力を与えると共に、このＲＳラッチ回路の出力端子から出力される信号を、このバタフライ型ＰＵＦ１０の出力とするように構成した回路である。
【００１８】
このバタフライ型ＰＵＦ１０は、入力Ａ＝０のときは、出力Ｂ及び出力Ｃはどちらも１となり、この状態で出力の値は安定している。ところが、ここで、値Ａを０から１に変化させると、出力Ｂが１であって出力Ｃが０である状態と、出力Ｂが０であって出力Ｃが１である状態とが生じて、出力が不定となる。これは、ＲＳラッチ回路がメタステーブルの状態に置かれており、その出力が不確定の状態になっているためである。バタフライ型ＰＵＦ１０は、この不確定性を利用したＰＵＦである。
【００１９】
このバタフライ型ＰＵＦ１０の出力は２値（０と１）のどちらかの値をとる。しかしながら、バタフライ型ＰＵＦ１０をデバイスに実装すると、常に０を出力するもの、及び、常に１を出力するものと、出力が０と１とで定まらないもの、すなわち乱数を出力するものとの３つの態様のものが得られ、この出力の態様には再現性がある。そこで、このバタフライ型ＰＵＦ１０をデバイスに複数実装し、その各々から得られる出力を、バタフライ型ＰＵＦ１０を実装したデバイスについての個体別情報として利用することができる。
【００２０】
メタスタビリティ型ＰＵＦに分類されるＰＵＦの例として、上述したバタフライ型ＰＵＦの他に、ＳＲＡＭ−ＰＵＦが知られている。
ＳＲＡＭ（Static Random Access Memory ）への電力供給を開始した直後のメモリセルの初期値は、デバイスに依存した複雑な内部状態から決定されるため、ランダムな値となる。ＳＲＡＭ−ＰＵＦは、この初期値のばらつきを利用する。ＳＲＡＭ−ＰＵＦでは、メモリセル・アドレスがチャレンジに相当し、そのメモリセル・アドレスで特定されるメモリセルの初期値がレスポンスに相当し、後述するバタフライ型ＰＵＦのラッチ部分が、ＳＲＡＭ−ＰＵＦのメモリセルに相当する。
【００２１】
次に図３について説明する。図３は、背景技術である個体別情報生成装置を図解したものである。
この個体別情報生成装置２０は、電子デバイスであるデバイス１に、ｎ個のＰＵＦ２１を実装して構成されている。なお、図３では、ＰＵＦ２１−１、２１−２、２１−３、２１−４、２１−５、及び２１−６の各々に、図２に図解したバタフライ型ＰＵＦ１０を描いているが、これに限定されるものではない。ＰＵＦ２１としては、メタスタビリティ型ＰＵＦの他の例として前述したＳＲＡＭ−ＰＵＦでもよく、更には、遅延型ＰＵＦを使用してもよい。
【００２２】
この個体別情報生成装置２０では、ｎ個実装されたＰＵＦ２１から、どれを選択するかが、前述したチャレンジに相当する。図３は、このチャレンジによって、ＰＵＦ２１−１、２１−２、２１−３、２１−４、２１−５、及び２１−６が選択された状態を表現している。この６個のＰＵＦ２１の各々の出力ＲＥＳ［５：０］は２値の値（０または１）をとるので、これらの値を並べて６ビットのビット列を形成する。このビット列がレスポンスとなり、デバイス１の個体別情報として利用することができる。なお、この個体別情報生成装置２０がとり得る個体別情報のパターン数は、計６個のＰＵＦ２１を選択するので、２の６乗パターン、すなわち６４パターンである。
【００２３】
但し、前述したように、ＰＵＦ２１は乱数を出力する場合がある。図３は、計６個のＰＵＦ２１のうち、ＰＵＦ２１−３及び２１−４が乱数を出力している場合を表現している。このような乱数を出力するＰＵＦ２１がチャレンジによる選択に含まれてしまうと、デバイス１で不変であるはずのレスポンスが異なる値となることがあり、再現性が失われてしまうため、デバイス１の個体別情報として利用できなくなってしまう。
【００２４】
この点に関し、個体別情報生成装置２０に符号誤り訂正回路を備えるという技術が知られている。この技術では、チャレンジによって選択されたＰＵＦ２１の出力を並べて構成したビット列をこの符号誤り訂正回路に入力し、その出力を個体別情報生成装置２０のレスポンスとするように構成する。つまり、ＰＵＦ２１から上述のようにして生成されるビット列に含まれる乱数を符号誤り訂正回路で補正して、デバイス１では、同一のチャレンジに対して常に同一のレスポンスが得られるようにする。この技術では、このようにして、個体別情報生成装置２０の出力の再現性を確保している。
【００２５】
この他の背景技術として、電子デバイスの物理特性の違いを利用して乱数を生成する技術が幾つか知られている。そのひとつに、デジタル入力値に対して一義的に決定されないデジタル出力値を得ると共に、このデジタル出力値における「０」と「１」の出現頻度を均等にするという乱数生成の技術がある。
【００２６】
また、アクティブ回路とスタティック回路とにより構成されている出力回路におけるアクティブ回路の動作によって生じる電源変動が及ぼすスタティック回路の出力への影響を防止するという技術が知られている。
【００２７】
また、メモリ装置において欠陥のある領域を、冗長的に備えてある領域と置き換えることで、メモリ装置を救済して歩留まりを向上させるという技術が知られている。この技術について、図４を用いて更に説明する。
【００２８】
図４において、主メモリ３０は、１ビットのデータを記憶する記憶素子であるメモリセル３１が矩形の縦方向にＭ個、横方向にＮ個配置されて構成されている、Ｍ×Ｎビットのメモリ装置であるが、その一部のセルに欠陥を有している（欠陥メモリセル３２）。前述の救済装置には、主メモリ３０の製造時における検査工程において検出された欠陥メモリセル３２を含むカラム（欠陥セルカラム３３）のカラムアドレスを、当該検査工程において登録しておく。なお、この欠陥セルカラム３３のカラムアドレスの登録は、例えば、当該カラムアドレスに対応付けられているヒューズを、レーザ等を用いて切断する等の手法により行われる。
【００２９】
一方、この救済装置には、主メモリ３０の欠陥を救済するための冗長メモリ４０が備えられている。救済装置が有するカラムデコーダは、前述したようにして登録しておいた、欠陥セルカラム３３のカラムアドレスへのアクセスを受け取った場合には、冗長メモリ４０の置き換えカラム４１を選択する。一方、カラムデコーダは、未登録のカラムアドレスへのアクセスを受け取った場合には、主メモリ３０の該当カラムを選択する。
【００３０】
このように、前述の救済装置は、欠陥セルカラム３３から置き換えカラム４１への置き換えによって、主メモリ３０が欠陥メモリセル３２を持っていても良品のメモリ装置として扱えるようにしたことで、結果としてメモリの歩留まりが向上するというものである。
【００３１】
なお、上述した説明では、主メモリ３０における欠陥メモリセル３２を含む領域をカラム（列）単位で置き換える場合を説明したが、この置き換えを、ロウ（行）単位、あるいはセル単位で行うようにすることも可能である。
【先行技術文献】
【特許文献】
【００３２】
【特許文献１】特許第３６０４６７４号公報
【特許文献２】特開平１０−５１２９５号公報
【特許文献３】特開２００５−１９６８４３号公報
【非特許文献】
【００３３】
【非特許文献１】ジェ・ダブリュ・リー（Jae W. Lee）、他５名、「ア・テクニック・トウ・ビルド・ア・シークレット・キー・イン・インテグレーテッド・サーキッツ・ウイズ・アイデンティフィケーション・アンド・オーセンティケーション・アプリケーションズ（A technique to build a secret key in integrated circuits with identification and authentication applications）」、アイ・イー・イー・イー・ブイ・エル・エス・アイ・サーキッツ・シンポジウム（IEEE VLSI Circuits Symposium）、２００４年６月
【非特許文献２】サンディープ・エス・クマール（Sandeep S. Kumar）、他４名、「エクステンド・アブストラクト：ザ・バタフライ・ピー・ユー・エフ・プロテクティング・アイ・ピー・オン・エブリイ・エフ・ピー・ジー・エイ（Extend Abstract: The Butterfly PUF: Protecting IP on every FPGA）」、アイ・イー・イー・イー・インターナショナル・ワークショップ・オン・ハードウェアオリエンテッド・セキュリティ・アンド・トラスト（IEEE International Workshop on Hardware-Oriented Security and Trust - HOST）、２００８年
【非特許文献３】ジー・エドワード・ソ（G. Edward. Suh）、他１名、「フィジカル・アンクローナブル・ファンクションズ・フォー・デバイス・オーセンティケーション・アンド・シークレット・キー・ジェネレーション（Physical Unclonable Functions for Device Authentication and Secret Key Generation）」、デザイン・オートメーション・カンファレンス（Design Automation Conference）、２００７年６月
【非特許文献４】ダイスケ・スズキ（Daisuke Suzuki）、他１名、「ザ・グリッチ・ピー・ユー・エフ：ア・ニュー・ディレイ・ピー・ユー・エフ・アーキテクチュア・エクスプロイティング・グリッチ・シェープス（The Glitch PUF: A New Delay-PUF Architecture Exploiting Glitch Shapes）」、クリプトグラフィック・ハードウェア・アンド・エンベデッド・システムズ・２０１０（Cryptographic Hardware and Embedded Systems - CHES 2010）、レクチャー・ノーツ・イン・コンピュータ・サイエンス（Lecture Notes in Computer Science - LNCS）、２０１０年、第６２２５巻（Volume 6225）、p. 366-382
【発明の概要】
【発明が解決しようとする課題】
【００３４】
図３の個体別情報生成装置２０において、前述したように符号誤り訂正回路を備えても、個体別情報の再現性の確保ができない場合がある。例えば、ＰＵＦ２１を１２８個実装して個体別情報生成装置２０を構成した場合を考える。この場合において、乱数を出力してしまうＰＵＦ２１の個数が約１０個を超えると、符号誤り訂正回路を用いてＰＵＦ２１の出力を並べて構成したビット列の値の違いを吸収するためには，非常に大きなサイズの冗長データが必要になる。このため、冗長データのサイズを一定以下に保つことが組み込み機器には好ましい。しかし、もしも想定する個数以上のＰＵＦが乱数を出力すると、完全には誤りを訂正することができなくなり、結果的に同一のデバイス１であるのに同一のチャレンジに対し異なるレスポンスを出力してしまうことになる。このような場合は、再現性がないため、レスポンスを個体別情報としては使用できない。
【００３５】
また、図３の個体別情報生成装置２０において、前述したように符号誤り訂正回路を備えることは、個体別情報生成装置２０の実装コストを上昇させるという問題もある。
本発明は上述した事情に鑑みてなされたものであり、少ない回路規模で良好な再現性及び差異性を有する個体別情報の生成を可能にすることである。
【課題を解決するための手段】
【００３６】
本明細書で後述する個体別情報生成装置のひとつに、アドレス空間に配置されているメモリと、検出部と、生成部とを備えるというものがある。ここで、検出部は、メモリを構成している複数のメモリセルに含まれている欠陥セルを検出すると共に、検出された欠陥セルを、欠陥の種別に応じて定義されている複数のグループのいずれかに分類する。そして、生成部は、検出部が検出した欠陥セルを特定するアドレスの情報と該欠陥セルについての欠陥の種別とに基づいて個体別情報を生成する。
【発明の効果】
【００３７】
本明細書で後述する個体別情報生成装置によれば、少ない回路規模で良好な再現性及び差異性を有する個体別情報を生成することができるという効果を奏する。
【図面の簡単な説明】
【００３８】
【図１Ａ】ＲＳラッチ回路の構成例である。
【図１Ｂ】図１ＡのＲＳラッチ回路の真理値表である。
【図２】バタフライ型ＰＵＦの構成例である。
【図３】背景技術の個体別情報生成装置である。
【図４】冗長メモリを用いた主メモリの欠陥セルの救済の手法の一例を説明する図である。
【図５】個体別情報生成装置の一実施例の機能ブロック図である。
【図６】個体別情報生成装置の一実施例の構成の第一の例である。
【図７】個体別情報生成装置の一実施例の構成の第二の例である。
【図８】個体別情報生成装置の一実施例の構成の第三の例である。
【図９】判定処理部のハードウェア構成図である。
【図１０】判定処理の第一の例の処理内容を図解したフローチャートである。
【図１１Ａ】判定処理の第二の例の処理内容を図解したフローチャート（その１）である。
【図１１Ｂ】判定処理の第二の例の処理内容を図解したフローチャート（その２）である。
【図１２Ａ】判定処理の第三の例の処理内容を図解したフローチャート（その１）である。
【図１２Ｂ】判定処理の第三の例の処理内容を図解したフローチャート（その２）である。
【図１３】個体別情報生成装置を備えた暗号化装置の構成例である。
【図１４】個体別情報生成装置を備えた認証対象装置の構成例である。
【図１５】認証装置の構成例である。
【発明を実施するための形態】
【００３９】
まず図５について説明する。図５は、個体別情報生成装置の一実施例の機能ブロック図である。
図５において、個体別情報生成装置１００は、電子デバイスであるデバイス１に実装されて構成されており、デバイス１についての個体別情報を生成する。
【００４０】
個体別情報生成装置１００は、メモリ１０１、検出部１０２、及び生成部１０３を備えている。
メモリ１０１は複数のメモリセルから構成されている、データの書き込み及び読み出しが可能な半導体記憶素子である。メモリ１０１はアドレス空間に配置されており、アドレスが指定されると、当該アドレスによって特定されるメモリセルに対してデータの書き込み若しくは読み出しが行われる。
【００４１】
検出部１０２は、メモリ１０１を構成している複数のメモリセルに含まれている欠陥セルを検出する。
生成部１０３は、検出部が検出した欠陥セルを特定するアドレスの情報に基づいて個体別情報を生成する。
【００４２】
この個体別情報生成装置１００では、メモリ１０１に生じた欠陥セルのアドレスは、個々のデバイス１によって異なり、また、同一のデバイス１においては不変であることを利用し、この欠陥セルのアドレスを用いて上述のようにして個体別情報を生成する。顕微鏡等での観察による解析のみで欠陥セルを全て特定することは困難であるので、このようにして個体別情報の生成を行うことで、良好な再現性及び差異性を有する安全性の高い個体別情報を得ることができる。また、この個体別情報生成装置１００では、前述したような符号誤り訂正回路が必須のものではなくなるので、個体別情報の生成に要する実装コストの低下にも寄与する。
【００４３】
なお、検出部１０２は、欠陥セルの検出を、例えば以下のようにして行うようにしてもよい。すなわち、検出部１０２は、所定のデータが書き込まれたメモリ１０１のメモリセルから読み出されたデータが当該所定のデータと一致するか否かを判定する。ここで、当該読み出されたデータが該所定のデータと一致しないと判定した場合に、検出部１０２は、当該メモリセルを欠陥セルとして検出する。
【００４４】
また、メモリセルへの所定のデータの書き込み及び当該メモリセルからのデータの読み出しが複数回行われた場合には、検出部１０２は、その各回において前述した判定を行うようにしてもよい。このようにする場合には、検出部１０２は、当該読み出されたデータが当該所定のデータと一致しないとの判定結果が少なくとも１回得られた場合に、当該メモリセルを欠陥セルとして検出するようにする。このようにすることで、欠陥セルの検出精度が向上する。
【００４５】
なお、生成部１０３は、例えば、検出部１０２が複数検出した欠陥セルの各々を特定するアドレスを表している数値列を連結して得られる連結数列に対してエントロピ圧縮を行って得られた値に基づいて、個体別情報を生成するようにしてもよい。詳しくは後述するが、このようにすることで、欠陥セルのアドレスと個体別情報との対応関係の推測を困難なものとすることができ、安全性の向上に寄与する。
【００４６】
なお、図５において破線を用いて表現されているように、個体別情報生成装置１００が、更に、冗長メモリ１０４、記憶部１０５、及び選択部１０６を備えていてもよい。
冗長メモリ１０４は、メモリ１０１とは別に備えられている半導体記憶素子であり、メモリ１０１に生じた欠陥セルの代替とする記憶領域を提供する。
【００４７】
記憶部１０５は、検出部１０２により検出された欠陥セルを特定するアドレスを、冗長メモリ１０４のセルを特定する冗長セルアドレスに対応付けて記憶する。
選択部１０６は、入力されたアドレスが、記憶部１０５に記憶されている、欠陥セルを特定するアドレスと一致した場合に、記憶部１０５において当該一致したアドレスに対応付けられている冗長セルアドレスで特定される冗長メモリ１０４のメモリセルを選択する。
【００４８】
上述した構成を備えている個体別情報生成装置１００は、本来の個体別情報の生成機能に加えて、汎用の半導体メモリ（ＲＡＭ）としても使用することが可能になる。
なお、この場合において、記憶部１０５は、例えば、揮発性メモリとレジスタとのうちのどちらか一方とすることが好ましい。このようにしておくことで、例えば、ヒューズの切断等の手法によりアドレスを記憶する場合に比べて、攻撃者による欠陥セルを特定するアドレスの特定の困難性が高まる。
【００４９】
また、図５の個体別情報生成装置１００において、検出部１０２は、更に、前述のようにして検出された欠陥セルを、欠陥の種別に応じて定義されている複数のグループのいずれかに分類するようにしてもよい。この場合には、生成部１０３は、欠陥セルを特定するアドレスの情報に基づくと共に、更に当該欠陥セルについての欠陥の種別にも基づいて、個体別情報を生成する。
【００５０】
このようにして欠陥セルを更に細分化することで、生成される個体別情報のバターン数が増加するので、攻撃者による個体別情報の推測の困難性が更に高まる。
なお、この場合、検出部１０２は、前述のようにして検出された欠陥セルを、欠陥の種別に応じて、例えば、メモリセルから読み出されるデータが当該メモリセルに書き込まれたデータに関わらずに不定であるグループとその他とに分類するようにしてもよい。
【００５１】
また、ここで、検出部１０２は、上述のグループに分類される欠陥セルを、更に、メモリセルから読み出されるデータが所定値である確率に応じた複数のグループに分類するようにしてもよい。
【００５２】
この図５の個体別情報生成装置１００の用途のひとつとして、暗号化装置を構成することができる。この暗号化装置には、個体別情報生成装置１００が生成した個体別情報を暗号鍵として用いて、情報の暗号化処理を行う暗号化処理部を備えるようにする。
【００５３】
また、図５の個体別情報生成装置１００の用途の別のひとつとして、認証システムを構成することができる。この認証システムは、例えば、認証対象装置と、認証対象装置が正規のものであるか否かの認証を行う認証装置とを備えて構成される。ここで、個体別情報生成装置１００は認証対象装置に備えられる。一方、認証装置には、通信部と、記録部と、認証処理部とを備えるようにする。ここで、通信部は、認証対象装置との間で通信を行って各種の情報の授受を行う。また、記録部には、認証対象装置のうちの正規のものが備えている個体別情報生成装置が生成する個体別情報を予め記録しておく。そして、認証処理部は、認証対象装置に対する認証処理を、当該認証対象装置から送られてくる情報と記録部に記録されている情報とに基づいて行う。このように構成されている認証装置において、通信部は、認証対象装置から送られてくる個体別情報の受信を行い、認証処理部は、通信部が認証対象装置から受信した個体別情報が、記録部に予め記録されていた個体別情報と一致するか否かの判定を行う。ここで、認証処理部は、この両者の個体別情報が一致すると判定したときに、当該認証対象装置が正規のものであるとの認証結果を得る。
【００５４】
次に図６について説明する。図６は、個体別情報生成装置１００の構成の第一の例を図解したものである。
図６の個体別情報生成装置１００は、メモリ１０１、カラムデコーダ１１１、ロウデコーダ１１２、ＸＯＲ（排他的論理和）回路１１３、ＡＮＤ（論理積）回路１１４、シフトレジスタ１１５、及びエントロピ圧縮部１１６を備えている。
【００５５】
メモリ１０１は、前述したように、複数のメモリセルから構成されている半導体記憶素子であり、アドレス空間に配置されている。
カラムデコーダ１１１は、装置の外部から入力されるアドレス信号に対応するカラムアドレス信号を出力し、ロウデコーダ１１２は、当該アドレス信号に対応するロウアドレス信号を出力する。これらのカラムアドレス信号及びロウアドレス信号がメモリ１０１に入力されることによって、当該アドレス信号で表されているアドレスに対応するメモリセルが特定されて選択される。このとき装置の外部から入力される１ビットの書き込みデータ（値「０」若しくは値「１」）が、選択されたメモリセルに一旦書き込まれて格納される。このデータの書き込みの完了後、当該選択されたメモリセルから、格納データが読み出される。
【００５６】
ＸＯＲ回路１１３が備えている２つの入力のうちの一方には、装置の外部から入力される前述の１ビットの書き込みデータが入力され、他方には、メモリ１０１における前述のようにして選択されたメモリセルから読み出された格納データが入力される。ＸＯＲ回路１１３は、この両者の一致・不一致を判定し、不一致の場合には「１」を出力し、一致の場合には「０」を出力する。ここで、この両者が不一致である場合には、このメモリセルが欠陥セルであると判定される。つまり、このＸＯＲ回路１１３は、図５における検出部１０２の一例である。
【００５７】
ＸＯＲ回路１１３の出力は、ＡＮＤ回路１１４が備えている２つの入力のうちの一方に入力される。このＡＮＤ回路１１４の他方の入力には、装置の外部から入力されるアドレス信号、すなわち、ＸＯＲ回路１１３によって検出された欠陥セルを特定するアドレスを表している信号が入力される。従って、ＡＮＤ回路１１４からは、ＸＯＲ回路１１３によって欠陥セルが検出された場合に、当該欠陥セルを特定するアドレスを表している信号が出力される。この信号はシフトレジスタ１１５に入力される。
【００５８】
シフトレジスタ１１５には、欠陥セルを特定するアドレスが順次格納される。ここで、装置の外部から入力されるアドレス信号を、メモリ１０１が配置されているアドレス空間の全てを選択するように所定の順序で順次切り替えていくと、シフトレジスタ１１５では、欠陥セルの各々を特定するアドレスを表している数値列が連結される。
【００５９】
エントロピ圧縮部１１６は、シフトレジスタ１１５に格納されている、上述の連結された数値列（「連結数列」と称することとする）を読み出し、この連結数列に対してエントロピ圧縮を行い、圧縮結果として得られた値を、個体別情報として出力する。
【００６０】
シフトレジスタ１１５に格納された連結数列をそのまま個体別情報の生成結果として使用すると、メモリ１０１に対するアドレス信号と連結数列との関係が推測できてしまう可能性がある。エントロピ圧縮部１１６は、この推測を困難なものとするためのものである。
【００６１】
エントロピ圧縮部１１６としては、例えば一方向性関数回路を使用する。一方向性関数回路は、入力が一意であれば、出力が一意に定まるが、出力から入力を求めることは非常に困難な関数である。なお、本実施例では、エントロピ圧縮部１１６として、入力されたビット列に対するハッシュ関数値を得る回路を用いる。より具体的には、この回路として、米国連邦情報処理基準（Federal Information Processing Standard/FIPS）に採用されているハッシュ関数であるＳＨＡ−２５６によるハッシュ関数値を得る回路を用いる。
【００６２】
以上のように構成されている図６の個体別情報生成装置１００では、メモリ１０１における欠陥セルを特定するアドレスを利用して個体別情報を生成する。このアドレスは周囲温度や供給電圧の変化に対する安定性が極めて高いので、この個体別情報生成装置１００によれば、前述したような符号誤り訂正回路が必須のものではなくなり、良好な再現性及び差異性を有する個体別情報を生成することができる。
以上のシフトレジスタ１１５とエントロピ圧縮部１１６との組み合わせは、図５における生成部１０３の一例である。
【００６３】
なお、メモリ１０１における欠陥セルを検出するために行われる、装置の外部から入力される所定データのメモリセルへの書き込み及び当該メモリセルでの格納データの読み出しを複数回行うようにしてもよい。この場合、ＸＯＲ回路１１３では、メモリセルに対するデータの書き込み及びデータの読み出しが行われる度に、書き込みデータと読み出しデータとの一致・不一致の判定が行われる。ここで、不一致の判定結果が一度でも得られた場合には、当該メモリセルが欠陥セルとして検出される。このようにして、欠陥セルの検出精度を高めるようにしてもよい。
【００６４】
次に、個体別情報生成装置１００の構成の第二の例について説明する。図７は、個体別情報生成装置１００の構成の第二の例を図解したものである。
図７の個体別情報生成装置１００は、個体別情報の生成機能とデータ記憶機能とを兼備させたものである。このために、個体別情報生成装置１００は、図６に図解した第一の例の構成に、図４を用いて説明した、主メモリ３０の欠陥部分を健全な領域と置き換えることでメモリ装置を救済するための構成を追加している。
【００６５】
この図７の個体別情報生成装置１００の構成は、図６に示した第一の例の構成要素に加えて、ＡＮＤ回路１２１及び１２２と、ＮＯＴ（否定）回路１２３と、冗長メモリ１２４と、変換情報保持部１２５とを備えて構成されている。
【００６６】
装置の外部から入力されるモード信号は、個体別情報生成装置１００の機能を選択する信号である。このモード信号が「０」である場合には個体別情報の生成機能が選択され、「１」である場合にはデータ記憶機能が選択される。
【００６７】
ＡＮＤ回路１２１は２入力の回路であり、その一方には上述のモード信号が入力され、他方には、メモリ１０１からの読み出しデータが入力される。また、ＡＮＤ回路１２１の出力は、装置の外部に出力される。従って、モード信号が「０」の場合には、メモリ１０１からの読み出しデータの装置の外部の出力が禁止され、モード信号が「１」の場合には、メモリ１０１からの読み出しデータが装置の外部に出力される。
【００６８】
ＡＮＤ回路１２２も２入力の回路であり、その一方には、インバータであるＮＯＴ回路１２３によって上述のモード信号の信号論理を反転させた信号が入力され、他方には、エントロピ圧縮部１１６から出力される個体別情報が入力される。従って、モード信号が「０」の場合には、エントロピ圧縮部１１６から出力される個体別情報が装置の外部に出力され、モード信号が「１」の場合には、個体別情報の装置の外部への出力が禁止される。
【００６９】
冗長メモリ１２４は、メモリ１０１における欠陥セルとの置き換えのために予め用意しておく半導体記憶素子であり、図５における冗長メモリ１０４の一例である。
変換情報保持部１２５には、冗長メモリ１２４が有している健全なメモリセル（健全セル）のアドレスが予め記憶されている半導体記憶装置である。更に、変換情報保持部１２５は、ＡＮＤ回路１１４の出力である、メモリ１０１から検出された欠陥セルのアドレスが入力されると、保持されている健全セルのアドレスのうちの１つが１対１に対応付けられて記憶され、保持される。変換情報保持部１２５は、図５における記憶部１０５の一例である。
【００７０】
この変換情報保持部１２５の記憶情報は、前述のモード信号が「１」の場合、すなわち、データ記憶機能が選択されている場合にのみ、カラムデコーダ１１１及びロウデコーダ１１２により参照可能とする。
【００７１】
カラムデコーダ１１１及びロウデコーダ１１２は、変換情報保持部１２５での記憶データが参照可能な場合には、装置の外部から入力されるアドレス信号で表されているアドレスが、変換情報保持部１２５で保持されているか否かを判定する。
【００７２】
ここで、当該アドレスが変換情報保持部１２５で記憶されていたと判定される場合は、データ記憶機能が選択されており、且つ当該アドレスが欠陥セルを表していた場合である。この場合には、カラムデコーダ１１１は、変換情報保持部１２５において当該アドレスに対応付けられている健全セルのアドレスに対応するカラムアドレス信号を出力し、ロウデコーダ１１２は、当該健全セルのアドレスに対応するロウアドレス信号を出力する。これらのカラムアドレス信号及びロウアドレス信号は冗長メモリ１２４に入力されることで、装置の外部から入力されるアドレス信号で表されていたアドレスで特定される欠陥セルから置き換えられて、冗長メモリ１２４の健全セルが選択される。
【００７３】
一方、上述した場合以外の場合は、個体別情報の生成機能が選択されている場合、若しくは、装置の外部から入力されるアドレス信号で表されているアドレスが欠陥セルを表していない場合である。この場合には、カラムデコーダ１１１は、装置の外部から入力されるアドレス信号に対応するカラムアドレス信号を出力し、ロウデコーダ１１２は、当該アドレス信号に対応するロウアドレス信号を出力する。これらのカラムアドレス信号及びロウアドレス信号がメモリ１０１に入力されることによって、当該アドレス信号で表されているアドレスに対応するメモリセルが特定されて選択される。
以上のように動作するカラムデコーダ１１１及びロウデコーダ１１２は、図５における選択部１０６の一例である。
【００７４】
図７の個体別情報生成装置１００は以上のように構成されている。従って、個体別情報の生成機能を選択するモード信号を入力すれば、図６の第一の例と同様に、メモリ１０１における欠陥セルを特定するアドレスを利用した個体別情報の生成が個体別情報生成装置１００により行われる。また、データ記憶機能を選択するモード信号を入力すれば、入力されるアドレス信号で表されているアドレスで特定されるメモリセルに対するデータの書き込み及び読み出しが、個体別情報生成装置１００により適切に行われる。
【００７５】
なお、この図７の個体別情報生成装置１００では、変換情報保持部１２５における、メモリ１０１から検出された欠陥セルのアドレスの記憶領域として、揮発性メモリ若しくはレジスタを使用する。
【００７６】
図４を用いて説明した救済装置では、欠陥セルについてのアドレスに対応付けられているヒューズを、レーザ等を用いて切断する等の手法により、当該欠陥セルについてのアドレスを登録しておくようにしていた。しかしながら、この手法では、個体別情報生成装置１００を顕微鏡等で観察することで、メモリ１０１における欠陥セルが特定されてしまう可能性があるため、生成される個体別情報の安全性の観点から問題がある。図７の個体別情報生成装置１００では、変換情報保持部１２５を上述のように構成したことで、欠陥セルのアドレスの情報の漏出の可能性が減少する。
【００７７】
次に、個体別情報生成装置１００の構成の第三の例について説明する。図８は、個体別情報生成装置１００の構成の第三の例を図解したものである。
図８の個体別情報生成装置１００は、図６に示した第一の例の構成要素に加えて、判定処理部１３１と、判定結果連結部１３２とを備えて構成されている。
【００７８】
図８の個体別情報生成装置１００は、メモリ１０１から検出された欠陥セルを、欠陥の種別に応じてグループ化し、欠陥セルを特定するアドレスの情報と共に、当該欠陥セルが含まれるグループの識別情報をも用いて個体別情報を生成する。このようにすることで、生成される個体別情報のパターン数が、第一の例よりも増加する結果、個体別情報の推測の困難性が更に高まり、安全性の向上が期待できる。
【００７９】
図８の構成においては、ＸＯＲ回路１１３と判定処理部１３１との組み合わせによって、図５における検出部１０２の機能が提供される。また、図８の構成においては、判定結果連結部１３２とシフトレジスタ１１５とエントロピ圧縮部１１６との組み合わせによって、図５における生成部１０３の機能が提供される。
【００８０】
判定処理部１３１は、メモリ１０１から欠陥セルの検出を行うと共に、検出された欠陥セルの欠陥の種別を判定して種別毎のグループに分類し、検出された欠陥セルが含まれる欠陥の種別のグループを表すラベリング情報を出力する。この判定処理部１３１の構成及び動作の詳細は後述する。
【００８１】
判定結果連結部１３２には、メモリ１０１から検出された欠陥セルを特定するアドレスを表している信号がＡＮＤ回路１１４から入力され、当該欠陥セルが含まれる欠陥の種別のグループを表すラベリング情報が判定処理部１３１から入力される。判定結果連結部１３２は、このラベリング情報と欠陥セルを特定するアドレスとを連結してシフトレジスタ１１５へ出力する。
【００８２】
シフトレジスタ１１５には、ラベリング情報とアドレスとを連結させた数値列が順次格納される。従って、判定処理部１３１から出力されるアドレス信号を所定の順序で順次切り替えていくと、シフトレジスタ１１５では、欠陥セルの各々についてのラベリング情報とアドレスとを連結させた連結数列が連結される。エントロピ圧縮部１１６は、シフトレジスタ１１５に格納されている、連結数列を読み出し、この連結数列に対してエントロピ圧縮を行い、圧縮結果として得られた値を、個体別情報として出力する。
【００８３】
図８の個体別情報生成装置１００は以上のように構成されている。なお、この図８の構成に、図７に図解した第二の構成におけるＡＮＤ回路１２１及び１２２と、ＮＯＴ回路１２３と、冗長メモリ１２４と、変換情報保持部１２５とを追加して、個体別情報の生成機能とデータ記憶機能とを兼備させるようにしてもよい。
【００８４】
次に、判定処理部１３１について更に詳細に説明する。図９は、判定処理部１３１のハードウェア構成図である。
図９に図解されているように、この判定処理部１３１は、ＭＰＵ(microprocessor unit )１４１、ＲＯＭ（Read Only Memory）１４２、ＲＡＭ（Random Access Memory）１４３、及びインタフェース部１４４を備えている。なお、これらの各構成要素はバスライン１４５を介して接続されており、ＭＰＵ１４１の管理の下で各種のデータを相互に授受することができる。
【００８５】
ＭＰＵ１４１は、各種の制御処理を行って判定処理部１３１の機能を提供する。
ＲＯＭ１４２は、ＭＰＵ１４１によって実行される制御プログラムが予め記憶されている読み出し専用メモリである。ＭＰＵ１４１は、例えば電力の供給が開始されたときに、この制御プログラムをＲＯＭ１４２から読み出して実行することによって、各種の制御処理を行えるようになる。
【００８６】
ＲＡＭ１４３は、ＭＰＵ１４１が制御プログラムを実行する際に必要に応じて使用する一時記憶領域を提供する。
インタフェース部１４４は、ＭＰＵ１４１と個体別情報生成装置１００の構成要素との間での各種のデータ信号の授受を管理する。
【００８７】
次に、判定処理部１３１が行う判定処理について、幾つか説明する。なお、この判定処理を、図９に図解したように構成されている判定処理部１３１に行わせる場合には、この判定処理をＭＰＵ１４１に行わせるための制御プログラムを作成してＲＯＭ１４２に予め記憶させておくようにする。
【００８８】
まず図１０について説明する。図１０は、判定処理の第一の例の処理内容を図解したフローチャートである。
この第一の例では、欠陥セルを、以下の３つのグループに分類する。
［１］値「０」及び値「１」のどちらを書き込んでも読み出した値が常に「０」であるグループ
［２］値「０」及び値「１」のどちらを書き込んでも読み出した値が常に「１」が読み出されるグループ
［３］読み出しデータの値が書き込みデータの値の関わらずに不定であるグループ
なお、本実施例では、上記［１］のグループにはラベリング情報「００」を付与し、
上記［２］のグループにはラベリング情報「１１」を付与し、上記［３］のグループにはラベリング情報「１０」を付与することとする。
【００８９】
図１０に図解されている処理を、図８を参照しながら説明する。
まず、Ｓ１０１では、アドレス「０」、すなわち、メモリ１０１が配置されているアドレス空間（０〜Ｎ−１）の先頭のアドレスを表すアドレス信号を生成して出力する処理を判定処理部１３１が行う。
【００９０】
出力されたアドレス信号は、カラムデコーダ１１１及びロウデコーダ１１２に入力される。この結果、出力されたアドレス信号で表されているアドレスに対応するメモリセルが、カラムデコーダ１１１及びロウデコーダ１１２によってメモリ１０１から選択される。なお、このアドレス信号はＡＮＤ回路１１４にも入力される。
【００９１】
次に、Ｓ１０２では、書き込みデータとして、値「１」を出力する処理を判定処理部１３１が行う。この書き込みデータは、出力中のアドレス信号によってメモリ１０１から選択されているメモリセルに書き込まれる。なお、この書き込みデータはＸＯＲ回路１１３にも入力される。
【００９２】
次に、Ｓ１０３では、Ｓ１０２の処理により値「１」が書き込まれたメモリセルからデータを読み出し、読み出されたデータが「１」であったか否かを判定する処理を判定処理部１３１が行う。ここで、読み出されたデータが「１」であったと判定されたとき（判定結果がＹｅｓのとき）には、判定処理部１３１はＳ１０４に処理を進める。一方、読み出されたデータが「１」ではなかった（すなわち、「０」であった）と判定されたとき（判定結果がＮｏのとき）には、判定処理部１３１はＳ１０７に処理を進める。
【００９３】
次に、Ｓ１０４では、書き込みデータとして、値「０」を出力する処理を判定処理部１３１が行う。この書き込みデータは、出力中のアドレス信号によってメモリ１０１から選択されているメモリセルに書き込まれる。なお、この書き込みデータはＸＯＲ回路１１３にも入力される。
【００９４】
次に、Ｓ１０５では、Ｓ１０４の処理により値「０」が書き込まれたメモリセルからデータを読み出し、読み出されたデータが「０」であったか否かを判定する処理を判定処理部１３１が行う。ここで、読み出されたデータが「０」であったと判定されたとき（判定結果がＹｅｓのとき）には、出力中のアドレス信号によって選択されているメモリセルは健全である（欠陥セルではない）との判定を下し、判定処理部１３１はＳ１１１に処理を進める。一方、読み出されたデータが「０」ではなかった（すなわち、「１」であった）と判定されたとき（判定結果がＮｏのとき）には、判定処理部１３１はＳ１０６に処理を進める。
【００９５】
Ｓ１０６では、出力中のアドレス信号によってメモリ１０１から選択されているメモリセルは、前述のグループ［２］に含まれる欠陥セルであるとして、ラベリング情報「１１」を出力する処理を判定処理部１３１が行い、その後はＳ１１１に処理を進める。
【００９６】
一方、Ｓ１０７では、書き込みデータとして、値「０」を出力する処理を判定処理部１３１が行う。この書き込みデータは、出力中のアドレス信号によってメモリ１０１から選択されているメモリセルに書き込まれる。なお、この書き込みデータはＸＯＲ回路１１３にも入力される。
【００９７】
次に、Ｓ１０８では、Ｓ１０７の処理により値「０」が書き込まれたメモリセルからデータを読み出し、読み出されたデータが「０」であったか否かを判定する処理を判定処理部１３１が行う。ここで、読み出されたデータが「０」であったと判定されたとき（判定結果がＹｅｓのとき）には、判定処理部１３１はＳ１０９に処理を進める。一方、読み出されたデータが「０」ではなかった（すなわち、「１」であった）と判定されたとき（判定結果がＮｏのとき）には、判定処理部１３１はＳ１１０に処理を進める。
【００９８】
Ｓ１０９では、出力中のアドレス信号によってメモリ１０１から選択されているメモリセルは、前述のグループ［１］に含まれる欠陥セルであるとして、ラベリング情報「００」を出力する処理を判定処理部１３１が行い、その後はＳ１１１に処理を進める。
【００９９】
Ｓ１１０では、出力中のアドレス信号によってメモリ１０１から選択されているメモリセルは、前述のグループ［３］に含まれる欠陥セルであるとして、ラベリング情報「１０」を出力する処理を判定処理部１３１が行い、その後はＳ１１１に処理を進める。
Ｓ１１１では、出力中のアドレス信号で表されているアドレスを１番地進める処理を判定処理部１３１が行う。
【０１００】
次に、Ｓ１１２では、出力中のアドレス信号で表されているアドレスが、メモリ１０１が配置されているアドレス空間（０〜Ｎ−１）の最後の番地を過ぎたか否かを判定する処理を判定処理部１３１が行う。ここで、当該アドレスが当該アドレス空間の最後の番地を過ぎたと判定されたとき（判定結果がＹｅｓのとき）には、判定処理部１３１は、この図１０の処理を終了する。一方、ここで、当該アドレスが当該アドレス空間の最後の番地を過ぎてはいないと判定されたとき（判定結果がＮｏのとき）には、判定処理部１３１はＳ１０２へ処理を戻してＳ１０２以降の処理を再度実行する。
【０１０１】
以上までの処理が判定処理の第一の例であり、この処理を判定処理部１３１が行うことによって、メモリ１０１からの欠陥セルの検出と、検出された欠陥セルの欠陥の種別毎のグループを表すラベリング情報の出力とが行われる。
【０１０２】
次に図１１Ａ及び図１１Ｂについて説明する。図１１Ａ及び図１１Ｂは、判定処理の第二の例の処理内容を図解したフローチャートである。
前述した判定処理の第一の例では、欠陥セルを３つのグループに分類していた。これに対し、この第二の例では、前述した３つのグループのうちの［３］のグループに含まれる欠陥セルを更に以下の２つのグループに分類して、全体で４つのグループに分類する。
［３−１］読み出しデータの値が書き込みデータの値の関わらずに不定であるが、読み出しデータの値が「１」である確率が、「０」である確率以上の確率であるグループ
［３−２］読み出しデータの値が書き込みデータの値の関わらずに不定であるが、読み出しデータの値が「０」である確率が「１」である確率よりも高いグループ
このようにして、メモリ１０１から検出された欠陥セルを欠陥の種別に応じてグループ化するときのグループ数を、前述した判定処理の第一の例よりも増加させることで、生成される個体別情報のパターン数が更に増加する。
【０１０３】
なお、本実施例では、前述の［１］のグループにはラベリング情報「００」を付与し、前述の［２］のグループにはラベリング情報「１１」を付与することとする。そして、上記［３−１］のグループにはラベリング情報「１０」を付与し、上記［３−２］のグループにはラベリング情報「０１」を付与することとする。
【０１０４】
図１１Ａ及び図１１Ｂに図解されている処理を、図８を参照しながら説明する。
まず、図１１Ａにおいて、Ｓ２０１では、アドレス「０」、すなわち、メモリ１０１が配置されているアドレス空間（０〜Ｎ−１）の先頭のアドレスを表すアドレス信号を生成して出力する処理を判定処理部１３１が行う。出力されたアドレス信号は、カラムデコーダ１１１及びロウデコーダ１１２に入力される。この結果、出力されたアドレス信号で表されているアドレスに対応するメモリセルが、カラムデコーダ１１１及びロウデコーダ１１２によってメモリ１０１から選択される。
【０１０５】
次に、Ｓ２０２は、配列ＲＡＭ＿０［Ｋ］及びＲＡＭ＿１［Ｋ］についての記憶領域を確保する処理を判定処理部１３１が行う。なお、定数Ｋは２以上の自然数であり、欠陥セルの検出とその欠陥種別の判別とのために行われる、メモリ１０１のメモリセルへの同一データの書き込みの繰り返しの回数を表している。
【０１０６】
次に、Ｓ２０３では、変数ｉに初期値「０」を代入する処理を判定処理部１３１が行う。
次に、Ｓ２０４では、書き込みデータとして、値「１」を出力する処理を判定処理部１３１が行う。この書き込みデータは、出力中のアドレス信号によってメモリ１０１から選択されているメモリセルに書き込まれる。
【０１０７】
次に、Ｓ２０５では、Ｓ２０４の処理により値「１」が書き込まれたメモリセルからデータを読み出して、読み出されたデータを、配列ＲＡＭ＿１［ｉ］の要素として格納する処理を判定処理部１３１が行う。
【０１０８】
次に、Ｓ２０６では、書き込みデータとして、値「０」を出力する処理を判定処理部１３１が行う。この書き込みデータは、出力中のアドレス信号によってメモリ１０１から選択されているメモリセルに書き込まれる。
【０１０９】
次に、Ｓ２０７では、Ｓ２０４の処理により値「１」が書き込まれたメモリセルからデータを読み出して、読み出されたデータを、配列ＲＡＭ＿１［ｉ］の要素として格納する処理を判定処理部１３１が行う。
【０１１０】
次に、Ｓ２０８では、この処理時点での変数ｉの値に「１」を加算し、その加算結果を改めて変数ｉに代入する処理を判定処理部１３１が行う。
次に、Ｓ２０９では、この処理時点での変数ｉの値が定数Ｋの値と一致しているか否かを判定する処理を判定処理部１３１が行う。ここで、両者の値が一致していると判定されたとき（判定結果がＹｅｓのとき）には、判定処理部１３１は図１１ＢのＳ２１０に処理を進める。一方、ここで、両者の値が一致していないと判定されたとき（判定結果がＮｏのとき）には、判定処理部１３１はＳ２０４へ処理を戻してＳ２０４以降の処理を再度実行する。
【０１１１】
図１１Ｂに処理が進み、Ｓ２１０では、配列ＲＡＭ＿０の全ての要素の値が「１」であり、且つ、配列ＲＡＭ＿１の全ての要素の値も「１」であるか否かを判定する処理を判定処理部１３１が行う。ここで、配列ＲＡＭ＿０及びＲＡＭ＿１の要素の全ての値が「１」であると判定されたとき（判定結果がＹｅｓのとき）には、判定処理部１３１はＳ２１１に処理を進める。一方、ここで、配列ＲＡＭ＿０及びＲＡＭ＿１の要素の全ての値が「１」ではない（すなわち、値が「０」である要素が存在する）と判定されたとき（判定結果がＹｅｓのとき）には、Ｓ２１２に処理を進める。
【０１１２】
Ｓ２１１では、出力中のアドレス信号によってメモリ１０１から選択されているメモリセルは、前述のグループ［２］に含まれる欠陥セルであるとして、ラベリング情報「１１」を出力する処理を判定処理部１３１が行い、その後はＳ２１８に処理を進める。
【０１１３】
Ｓ２１２では、配列ＲＡＭ＿０の全ての要素の値が「０」であり、且つ、配列ＲＡＭ＿１の全ての要素の値も「０」であるか否かを判定する処理を判定処理部１３１が行う。ここで、配列ＲＡＭ＿０及びＲＡＭ＿１の要素の全ての値が「０」であると判定されたとき（判定結果がＹｅｓのとき）には、判定処理部１３１はＳ２１３に処理を進める。一方、ここで、配列ＲＡＭ＿０及びＲＡＭ＿１の要素の全ての値が「０」ではない（すなわち、値が「１」である要素が存在する）と判定されたとき（判定結果がＹｅｓのとき）には、Ｓ２１４に処理を進める。
【０１１４】
Ｓ２１３では、出力中のアドレス信号によってメモリ１０１から選択されているメモリセルは、前述のグループ［１］に含まれる欠陥セルであるとして、ラベリング情報「００」を出力する処理を判定処理部１３１が行い、その後はＳ２１８に処理を進める。
【０１１５】
Ｓ２１４では、配列ＲＡＭ＿０の全ての要素の値が「０」であり、且つ、配列ＲＡＭ＿１の全ての要素の値が「１」であるか否かを判定する処理を判定処理部１３１が行う。
このＳ２１４の判定処理において、配列ＲＡＭ＿０の全ての要素の値が「０」であり、且つ、配列ＲＡＭ＿１の全ての要素の値が「１」であると判定されたとき（判定結果がＹｅｓのとき）には、判定処理部１３１はＳ２１８に処理を進める。なお、このＳ２１４の判定処理の判定結果がＹｅｓとなる場合とは、出力中のアドレス信号によって選択されているメモリセルは健全である（欠陥セルではない）と判定された場合である。
【０１１６】
一方、Ｓ２１４において、配列ＲＡＭ＿０の要素のうち値が「１」であるものが存在するか、若しくは、配列ＲＡＭ＿１の要素のうち値が「０」であるものが存在すると判定されたとき（判定結果がＮｏのとき）には、判定処理部１３１はＳ２１５に処理を進める。
【０１１７】
Ｓ２１５では、配列ＲＡＭ＿０及びＲＡＭ＿１の全ての要素に対する、値が「１」である要素の確率が５０％以上であるか否かを判定する処理を判定処理部１３１が行う。
このＳ２１５の処理では、判定処理部１３１は、まず、配列ＲＡＭ＿０及びＲＡＭ＿１の全ての要素のうちで、値が「１」である要素の個数を計数する処理を行う。次に、判定処理部１３１は、この計数値を、前述の定数Ｋを２倍した値で除算して上述の確率を算出する処理を行う。そして、この算出された確率が０．５（すなわち５０％）以上であるか否かを判定する処理を判定処理部１３１が行う。
【０１１８】
このＳ２１５の判定処理において、上述の確率が５０％以上であると判定されたとき（判定結果がＹｅｓのとき）には、判定処理部１３１はＳ２１６に処理を進める。一方、上述の確率が５０％未満であると判定されたとき（判定結果がＮｏのとき）には、判定処理部１３１はＳ２１７に処理を進める。
【０１１９】
Ｓ２１６では、出力中のアドレス信号によってメモリ１０１から選択されているメモリセルは、前述のグループ［３−１］に含まれる欠陥セルであるとして、ラベリング情報「１０」を出力する処理を判定処理部１３１が行い、その後はＳ２１８に処理を進める。
【０１２０】
Ｓ２１７では、出力中のアドレス信号によってメモリ１０１から選択されているメモリセルは、前述のグループ［３−２］に含まれる欠陥セルであるとして、ラベリング情報「０１」を出力する処理を判定処理部１３１が行い、その後はＳ２１８に処理を進める。
Ｓ２１８では、出力中のアドレス信号で表されているアドレスを１番地進める処理を判定処理部１３１が行う。
【０１２１】
次に、Ｓ２１９では、出力中のアドレス信号で表されているアドレスが、メモリ１０１が配置されているアドレス空間（０〜Ｎ−１）の最後の番地を過ぎたか否かを判定する処理を判定処理部１３１が行う。ここで、当該アドレスが当該アドレス空間の最後の番地を過ぎたと判定されたとき（判定結果がＹｅｓのとき）には、判定処理部１３１は、この図１１Ａ及び図１１Ｂの処理を終了する。一方、ここで、当該アドレスが当該アドレス空間の最後の番地を過ぎてはいないと判定されたとき（判定結果がＮｏのとき）には、判定処理部１３１は図１１ＡのＳ２０２へ処理を戻してＳ２０２以降の処理を再度実行する。
【０１２２】
以上までの処理が判定処理の第二の例であり、この処理を判定処理部１３１が行うことによって、メモリ１０１からの欠陥セルの検出と、検出された欠陥セルの欠陥の種別毎のグループを表すラベリング情報の出力とが行われる。
【０１２３】
次に図１２Ａ及び図１２Ｂについて説明する。図１２Ａ及び図１２Ｂは、判定処理の第三の例の処理内容を図解したフローチャートである。
前述した判定処理の第二の例では、前述した３つのグループのうちの［３］のグループに含まれる欠陥セルを更に２つのグループに分類して、全体で４つのグループに分類していた。これに対し、この第三の例では、この［３］のグループに含まれる欠陥セルを、２よりも多い複数のグループに分類する。本実施例では、この［３］のグループを、下記の６つのグループに分類して、全体で８つのグループに分類する。
［３−１１］読み出しデータの値が書き込みデータの値の関わらずに不定であるが、読み出しデータの値が「１」である確率が、８０％以上１００％未満であるグループ
［３−１２］読み出しデータの値が書き込みデータの値の関わらずに不定であるが、読み出しデータの値が「１」である確率が、６５％以上８０％未満であるグループ
［３−１３］読み出しデータの値が書き込みデータの値の関わらずに不定であるが、読み出しデータの値が「１」である確率が、５０％以上６５％未満であるグループ
［３−１４］読み出しデータの値が書き込みデータの値の関わらずに不定であるが、読み出しデータの値が「１」である確率が、３５％以上５０％未満であるグループ
［３−１５］読み出しデータの値が書き込みデータの値の関わらずに不定であるが、読み出しデータの値が「１」である確率が、２０％以上３５％未満であるグループ
［３−１６］読み出しデータの値が書き込みデータの値の関わらずに不定であるが、読み出しデータの値が「１」である確率が、０％より大きく２０％未満であるグループ
【０１２４】
このようにして、メモリ１０１から検出された欠陥セルを欠陥の種別に応じてグループ化するときのグループ数を、前述した判定処理の第二の例よりも更に増加させることで、生成される個体別情報のパターン数が更に増加する。
【０１２５】
なお、本実施例では、前述の［１］のグループにはラベリング情報「１１１」を付与し、前述の［２］のグループにはラベリング情報「０００」を付与することとする。一方、上記［３−１１］のグループにはラベリング情報「００１」を付与し、上記［３−１２］のグループにはラベリング情報「０１０」を付与することとする。また、上記［３−１３］のグループにはラベリング情報「０１１」を付与し、上記［３−１４］のグループにはラベリング情報「１００」を付与することとする。そして、上記［３−１５］のグループにはラベリング情報「１０１」を付与し、上記［３−１６］のグループにはラベリング情報「１１０」を付与することとする。
【０１２６】
図１２Ａ及び図１２Ｂに図解されている処理を、図８を参照しながら説明する。
図１２ＡにおけるＳ３０１からＳ３０９にかけての処理は、図１１Ａに図解した判定処理の第二の例の処理内容におけるＳ２０１からＳ２０９にかけての処理と同一であるので、説明を省略する。但し、本実施例では、読み出しデータの値が「１」である確率の算出精度が高い方が好ましいので、定数Ｋの値は大きな値（例えばＫ＝２０程度）の方が好ましい。
【０１２７】
図１２ＡのＳ３０９の判定結果がＹｅｓの場合には、判定処理部１３１は図１２ＢのＳ３１０の処理を実行する。Ｓ３１０では、配列ＲＡＭ＿０の全ての要素の値が「１」であり、且つ、配列ＲＡＭ＿１の全ての要素の値も「１」であるか否かを判定する処理を判定処理部１３１が行う。ここで、配列ＲＡＭ＿０及びＲＡＭ＿１の要素の全ての値が「１」であると判定されたとき（判定結果がＹｅｓのとき）には、判定処理部１３１はＳ３１１に処理を進める。一方、ここで、配列ＲＡＭ＿０及びＲＡＭ＿１の要素の全ての値が「１」ではない（すなわち、値が「０」である要素が存在する）と判定されたとき（判定結果がＹｅｓのとき）には、Ｓ３１２に処理を進める。
【０１２８】
Ｓ３１１では、出力中のアドレス信号によってメモリ１０１から選択されているメモリセルは、前述のグループ［２］に含まれる欠陥セルであるとして、ラベリング情報「０００」を出力する処理を判定処理部１３１が行い、その後はＳ３２２に処理を進める。
【０１２９】
Ｓ３１２では、配列ＲＡＭ＿０の全ての要素の値が「０」であり、且つ、配列ＲＡＭ＿１の全ての要素の値も「０」であるか否かを判定する処理を判定処理部１３１が行う。ここで、配列ＲＡＭ＿０及びＲＡＭ＿１の要素の全ての値が「０」であると判定されたとき（判定結果がＹｅｓのとき）には、判定処理部１３１はＳ３１３に処理を進める。一方、ここで、配列ＲＡＭ＿０及びＲＡＭ＿１の要素の全ての値が「０」ではない（すなわち、値が「１」である要素が存在する）と判定されたとき（判定結果がＹｅｓのとき）には、Ｓ３１４に処理を進める。
【０１３０】
Ｓ３１３では、出力中のアドレス信号によってメモリ１０１から選択されているメモリセルは、前述のグループ［１］に含まれる欠陥セルであるとして、ラベリング情報「１１１」を出力する処理を判定処理部１３１が行い、その後はＳ３２２に処理を進める。
【０１３１】
Ｓ３１４では、配列ＲＡＭ＿０の全ての要素の値が「０」であり、且つ、配列ＲＡＭ＿１の全ての要素の値が「１」であるか否かを判定する処理を判定処理部１３１が行う。
このＳ３１４の判定処理において、配列ＲＡＭ＿０の全ての要素の値が「０」であり、且つ、配列ＲＡＭ＿１の全ての要素の値が「１」であると判定されたとき（判定結果がＹｅｓのとき）には、判定処理部１３１はＳ３２２に処理を進める。なお、このＳ３１４の判定処理の判定結果がＹｅｓとなる場合とは、出力中のアドレス信号によって選択されているメモリセルは健全である（欠陥セルではない）と判定された場合である。
【０１３２】
一方、Ｓ３１４において、配列ＲＡＭ＿０の要素のうち値が「１」であるものが存在するか、若しくは、配列ＲＡＭ＿１の要素のうち値が「０」であるものが存在すると判定されたとき（判定結果がＮｏのとき）には、判定処理部１３１はＳ３１５に処理を進める。
【０１３３】
Ｓ３１５では、配列ＲＡＭ＿０及びＲＡＭ＿１の全ての要素に対する、値が「１」である要素の確率ｘを判定し、Ｓ３１６からＳ３２１までの各処理のうちのいずれかを、このｘの値に応じて実行する処理を判定処理部１３１が行う。
【０１３４】
このＳ３１５の処理では、判定処理部１３１は、まず、配列ＲＡＭ＿０及びＲＡＭ＿１の全ての要素のうちで、値が「１」である要素の個数を計数する処理を行う。次に、判定処理部１３１は、この計数値を、前述の定数Ｋを２倍した値で除算して確率ｘを算出する処理を行う。その後、判定処理部１３１は、次に実行する処理を、Ｓ３１６からＳ３２１までの各処理のうちから、算出された確率ｘの値に応じて１つ選択する処理を行う。
【０１３５】
このＳ３１５の判定処理において、確率ｘが８０％以上１００％未満であると判定された場合には、判定処理部１３１は、Ｓ３１６に処理を進める。また、ここで、確率ｘが６５％以上８０％未満であると判定された場合には、判定処理部１３１は、Ｓ３１７に処理を進める。また、ここで、確率ｘが５０％以上６５％未満であると判定された場合には、判定処理部１３１は、Ｓ３１８に処理を進める。また、ここで、確率ｘが３５％以上５０％未満であると判定された場合には、判定処理部１３１は、Ｓ３１９に処理を進める。また、ここで、確率ｘが２０％以上３５％未満であると判定された場合には、判定処理部１３１は、Ｓ３２０に処理を進める。また、ここで、確率ｘが０％よりも大きく２０％未満であると判定された場合には、判定処理部１３１は、Ｓ３２１に処理を進める。
【０１３６】
Ｓ３１６では、出力中のアドレス信号によって選択されているメモリセルは、前述のグループ［３−１１］に含まれる欠陥セルであるとして、ラベリング情報「００１」を出力する処理を判定処理部１３１が行い、その後はＳ３２２に処理を進める。
【０１３７】
Ｓ３１７では、出力中のアドレス信号によって選択されているメモリセルは、前述のグループ［３−１２］に含まれる欠陥セルであるとして、ラベリング情報「０１０」を出力する処理を判定処理部１３１が行い、その後はＳ３２２に処理を進める。
【０１３８】
Ｓ３１８では、出力中のアドレス信号によって選択されているメモリセルは、前述のグループ［３−１３］に含まれる欠陥セルであるとして、ラベリング情報「０１１」を出力する処理を判定処理部１３１が行い、その後はＳ３２２に処理を進める。
【０１３９】
Ｓ３１９では、出力中のアドレス信号によって選択されているメモリセルは、前述のグループ［３−１４］に含まれる欠陥セルであるとして、ラベリング情報「１００」を出力する処理を判定処理部１３１が行い、その後はＳ３２２に処理を進める。
【０１４０】
Ｓ３２０では、出力中のアドレス信号によって選択されているメモリセルは、前述のグループ［３−１５］に含まれる欠陥セルであるとして、ラベリング情報「１０１」を出力する処理を判定処理部１３１が行い、その後はＳ３２２に処理を進める。
【０１４１】
Ｓ３２１では、出力中のアドレス信号によって選択されているメモリセルは、前述のグループ［３−１６］に含まれる欠陥セルであるとして、ラベリング情報「１１０」を出力する処理を判定処理部１３１が行い、その後はＳ３２２に処理を進める。
【０１４２】
Ｓ３２２では、出力中のアドレス信号で表されているアドレスを１番地進める処理を判定処理部１３１が行う。
【０１４３】
次に、Ｓ３２３では、出力中のアドレス信号で表されているアドレスが、メモリ１０１が配置されているアドレス空間（０〜Ｎ−１）の最後の番地を過ぎたか否かを判定する処理を判定処理部１３１が行う。ここで、当該アドレスが当該アドレス空間の最後の番地を過ぎたと判定されたとき（判定結果がＹｅｓのとき）には、判定処理部１３１は、この図１２Ａ及び図１２Ｂの処理を終了する。一方、ここで、当該アドレスが当該アドレス空間の最後の番地を過ぎてはいないと判定されたとき（判定結果がＮｏのとき）には、判定処理部１３１は図１２ＡのＳ３０２へ処理を戻してＳ３０２以降の処理を再度実行する。
【０１４４】
以上までの処理が判定処理の第三の例であり、この処理を判定処理部１３１が行うことによって、メモリ１０１からの欠陥セルの検出と、検出された欠陥セルの欠陥の種別毎のグループを表すラベリング情報の出力とが行われる。
【０１４５】
なお、以上までに説明した個体別情報生成装置１００の各実施例では、メモリ１０１としてデータの書き込み及び読み出しが可能な半導体記憶素子を使用している。このメモリ１０１としては、例えばＳＲＡＭ（Static RAM）、ＤＲＡＭ（Dynamic RAM ）、ＦＲＡＭ（Ferroelectric RAM ）、ＭＲＡＭ（Magnetoresistive RAM ）など、様々な方式のＲＡＭのいずれを採用してもよい。
【０１４６】
また、例えば、メモリ１０１としてＲＯＭを使用し、このＲＯＭに予め書き込んでおいたデータが正しく読み出せない欠陥を有するメモリセルのアドレスに基づいて個体別情報を生成するようにしてもよい。なお、このＲＯＭとしては、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable and Programmable ROM ）、ＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）など、様々な方式のＲＯＭのいずれを採用してもよい。
【０１４７】
また、例えば、ＡＮＤ、ＯＲ（論理和）、ＮＡＮＤ、ＮＯＲ（否定論理和）、ＸＯＲ、ＮＯＴ等の汎用ゲートのゲートアレイをメモリ１０１の代わりに使用し、このゲートアレイに含まれる欠陥ゲートを特定する情報を用いて個体別情報を生成するようにしてもよい。
【０１４８】
次に、図６、図７、及び図８で各々図解した個体別情報生成装置１００を用いた電子機器について説明する。
まず図１３について説明する。図１３は、暗号化装置の構成例を図解したものである。
【０１４９】
この暗号化装置２００は、図６、図７、及び図８に図解されている個体別情報生成装置１００のいずれかを用いて構成されている。
暗号化装置２００は、個体別情報生成装置１００、ＣＰＵ２１０、暗号演算器２２０、ＲＯＭ２３０、及びＲＡＭ２４０を備えて構成されている。なお、これらの各構成要素はバスライン２５０にいずれも接続されており、ＣＰＵ２１０による管理の下で各種のデータを相互に授受することができるように構成されている。
【０１５０】
個体別情報生成装置１００は、電子デバイスであるデバイス１に実装されている。
ＣＰＵ（Central Processing Unit ）２１０は、この暗号化装置２００の各構成要素の動作を管理する中央演算部である。
【０１５１】
暗号演算器２２０は、各種の情報の暗号化処理や、暗号化されているデータの復号処理を行う。なお、本実施形態では、暗号演算器２２０は、公開鍵コプロセッサ２２１と共通鍵コプロセッサ２２２とを備えている。ここで、公開鍵コプロセッサ２２１は、代表的な公開鍵暗号方式であるＲＳＡ暗号や楕円曲線暗号等を用いて暗号化及び復号の処理を行う。また、共通鍵コプロセッサ２２２は、代表的な共通鍵暗号方式であるＡＥＳ暗号等を用いて暗号化及び復号の処理を行う。なお、暗号演算器２２０を暗号化装置２００に備える代わりに、暗号演算器２２０により行われる暗号化及び復号の処理を、ＣＰＵ２１０に行わせるように構成してもよい。
【０１５２】
ＲＯＭ２３０には、ＣＰＵ２１０により実行される制御プログラムや、暗号演算器２２０が暗号化や復号の処理において使用する固有のパラメータが予め格納されている不揮発性半導体メモリである。ＣＰＵ２１０は、暗号化装置２００への電力供給が開始されたときに、この制御プログラムをＲＯＭ２３０から読み出してその実行を開始することで、暗号化装置２００の各構成要素の動作管理を行えるようになる。
【０１５３】
ＲＡＭ２４０は、ＣＰＵ２１０や暗号演算器２２０が各種の処理を行う際に、必要に応じて作業用記憶領域として使用する揮発性半導体メモリである。
この暗号化装置２００において、暗号演算器２２０は、個体別情報生成装置１００が生成した個体別情報を暗号鍵として用いて、情報の暗号化処理を行う。また、この暗号化処理において暗号鍵として用いられた個体別情報は、その後に暗号演算器２２０が暗号化情報に対して行う復号処理にも使用する。
【０１５４】
なお、個体別情報生成装置１００で生成される個体別情報を暗号鍵の生成に用いる際に、生成された個体別情報のエントロピを更に向上させるための後処理（Post Processing ）を行ってもよい。このために行われる後処理の一例として、線形フィードバックシフトレジスタ（ＬＦＳＲ）の使用を挙げることができる。ＬＦＳＲは、排他的論理和回路で帰還をかけたシフトレジスタによって構成されるカウンタであり、個体別情報のエントロピを向上させることができる。従って、ＬＦＳＲから出力されるデータ列を用いて暗号鍵の生成を行うようにすることで、よりランダム性の高い暗号鍵を生成することが可能になる。なお、ＬＦＳＲは、専用のハードウェアを構成して用いるようにしてもよく、また、ＣＰＵ２１０を用いてソフトウェアにより実現するようにしてもよい。
【０１５５】
次に、個体別情報生成装置１００を用いた認証システムについて説明する。この認証システムは、認証対象装置が正規のものであるか否かの認証を、認証装置が行うシステムである。
【０１５６】
まず図１４について説明する。図１４は、この認証システムに用いられる認証対象装置の構成例を図解したものである。
この認証対象装置３００は、図６、図７、及び図８に図解されている個体別情報生成装置１００のいずれかを用いて構成されている。
【０１５７】
認証対象装置３００は、個体別情報生成装置１００、ＣＰＵ３１０、通信部３２０、ＲＯＭ３３０、及びＲＡＭ３４０を備えて構成されている。なお、これらの各構成要素はバスライン３５０にいずれも接続されており、ＣＰＵ３１０による管理の下で各種のデータを相互に授受することができるように構成されている。
【０１５８】
個体別情報生成装置１００は、電子デバイスであるデバイス１に実装されており、個体別情報を、この認証対象装置３００のものとして生成する。
ＣＰＵ３１０は、この認証対象装置３００の各構成要素の動作を管理する中央演算部である。
通信部３２０は、各種のデータの送受信を行って、後述する認証装置との間で各種の情報の授受を行う。
【０１５９】
ＲＯＭ３３０には、ＣＰＵ３１０により実行される制御プログラムが予め格納されている不揮発性半導体メモリである。ＣＰＵ３１０は、認証対象装置３００への電力供給が開始されたときに、この制御プログラムをＲＯＭ３３０から読み出してその実行を開始することで、認証対象装置３００の各構成要素の動作管理を行えるようになる。
ＲＡＭ３４０は、ＣＰＵ３１０が各種の処理を行う際に、必要に応じて作業用記憶領域として使用する揮発性半導体メモリである。
【０１６０】
次に図１５について説明する。図１５は、前述の認証システムに用いられる認証装置の構成例を図解したものである。
この認証装置４００は、ＣＰＵ４１０、通信部４２０、認証処理部４３０、ＲＯＭ４４０、及びＲＡＭ４５０を備えて構成されている。なお、これらの各構成要素はバスライン４６０にいずれも接続されており、ＣＰＵ４１０による管理の下で各種のデータを相互に授受することができるように構成されている。
【０１６１】
ＣＰＵ４１０は、この認証装置４００の各構成要素の動作を管理する中央演算部である。
通信部４２０は、図１４の認証対象装置３００との間で通信を行って、各種の情報の授受を行う。
【０１６２】
認証処理部４３０は、認証対象装置３００に対する認証処理を、後述するようにして行う。なお、認証処理部４３０を認証装置４００に備える代わりに、認証処理部４３０により行われる認証処理を、ＣＰＵ４１０に行わせることに構成してもよい。
【０１６３】
ＲＯＭ４４０には、ＣＰＵ４１０により実行される制御プログラムや、認証処理部４３０が認証処理に用いる正規の認証対象装置３００についての個体別情報が予め格納されている不揮発性半導体メモリである。ＣＰＵ４１０は、認証装置４００への電力供給が開始されたときに、この制御プログラムをＲＯＭ４４０から読み出してその実行を開始することで、認証装置４００の各構成要素の動作管理を行えるようになる。
ＲＡＭ４５０は、ＣＰＵ４１０や認証処理部４３０が各種の処理を行う際に、必要に応じて作業用記憶領域として使用する揮発性半導体メモリである。
【０１６４】
次に、前述した認証システムによる認証動作について説明する。
まず、認証動作に先立ち、認証装置４００のＲＯＭ４４０には、正規の認証対象装置３００が備えている個体別情報生成装置１００生成する個体別情報を、予め記録させておく。
【０１６５】
認証装置４００のＣＰＵ４１０は、まず、通信部４２０に指示を与えて、個体別情報の送付要求を、認証対象装置３００へ宛てて送信させる処理が行われる。
認証対象装置３００のＣＰＵ３１０は、この送付要求を通信部３２０が受信したことを検出すると、個体別情報生成装置１００に所定の指示を与えて個体別情報を生成させる処理が行われる。次に、ＣＰＵ３１０は、通信部３２０に指示を与えて、生成された個体別情報を認証装置４００へ宛てて送信させる処理が行われる。
【０１６６】
認証装置４００のＣＰＵ４１０は、認証対象装置３００から送信された個体別情報を通信部４２０が受信すると、この個体別情報が、ＲＯＭ４４０に予め記録されていた正規の認証対象装置３００のものと一致するか否かを認証処理部４３０に判定させる処理を行う。ここで、両者の個体別情報が一致するとの判定結果が得られたときには、個体別情報の送信元の認証対象装置３００が正規のものであるとの認証結果を得る。
【０１６７】
なお、上述の認証動作において、ＲＯＭ４４０に、正規の認証対象装置３００が備えている個体別情報生成装置１００が生成する個体別情報として、前述したチャレンジとレスポンスとの関係を複数組記録しておいてもよい。個体別情報生成装置１００として、例えば図６に図解したものを使用する場合には、個体別情報生成装置１００に入力するアドレス信号が表しているアドレスの順序をチャレンジとする。そして、そのチャレンジに応じて個体別情報生成装置１００が生成する個体別情報をレスポンスとする。
【０１６８】
この場合には、認証装置４００のＣＰＵ４１０が、個体別情報の送付要求に、レスポンスとの関係がＲＯＭ４４０に記録されている各チャレンジの情報を添付して通信部４２０に送信させるようにする。一方、認証対象装置３００のＣＰＵ３１０は、この送付要求に添付されていた各チャレンジを個体別情報生成装置１００に与えて、各チャレンジについてのレスポンスを生成させる。そして、ＣＰＵ３１０は、生成された各レスポンスの情報を認証装置４００へ宛てて通信部３２０に送信させる処理を行うようにする。このとき、認証装置４００の認証処理部４３０は、通信部４２０で受信した各レスポンスの情報が、ＲＯＭ４４０に記録されていた正規の認証対象装置３００におけるものと全て一致するか否かを判定する処理を行う。ここで、両者のレスポンスの情報が全て一致するとの判定結果が得られたときには、当該レスポンスの送信元の認証対象装置３００が正規のものであるとの認証結果を得る。前述の認証システムにおける認証動作を、以上のようにして行ってもよい。
【符号の説明】
【０１６９】
１  デバイス
１０  バタフライ型ＰＵＦ
１１、１２  ＮＡＮＤ回路
２０、１００  個体別情報生成装置
２１、２１−１、２１−２、２１−３、２１−４、２１−５、２１−６  ＰＵＦ
３０  主メモリ
３１  メモリセル
３２  欠陥メモリセル
３３  欠陥セルカラム
４０、１０４、１２４  冗長メモリ
４１  置き換えカラム
１０１  メモリ
１０２  検出部
１０３  生成部
１０５  記憶部
１０６  選択部
１１１  カラムデコーダ
１１２  ロウデコーダ
１１３  ＸＯＲ回路
１１４、１２１、１２２  ＡＮＤ回路
１１５  シフトレジスタ
１１６  エントロピ圧縮部
１２３  ＮＯＴ回路
１２５  変換情報保持部
１３１  判定処理部
１３２  判定結果連結部
１４１  ＭＰＵ
１４２、２３０、３３０、４４０  ＲＯＭ
１４３、２４０、３４０、４５０  ＲＡＭ
１４４  インタフェース部
１４５、２５０、３５０、４６０  バスライン
２００  暗号化装置
２１０、３１０、４１０  ＣＰＵ
２２０  暗号演算器
２２１  公開鍵コプロセッサ
２２２  共通鍵コプロセッサ
３００  認証対象装置
３２０、４２０  通信部
４００  認証装置
４３０  認証処理部
【図１Ａ】
0005831203.tif 000002
【図１Ｂ】
0005831203.tif 000003
【図２】
0005831203.tif 000004
【図３】
0005831203.tif 000005
【図４】
0005831203.tif 000006
【図５】
0005831203.tif 000007
【図６】
0005831203.tif 000008
【図７】
0005831203.tif 000009
【図８】
0005831203.tif 000010
【図９】
0005831203.tif 000011
【図１０】
0005831203.tif 000012
【図１１Ａ】
0005831203.tif 000013
【図１１Ｂ】
0005831203.tif 000014
【図１２Ａ】
0005831203.tif 000015
【図１２Ｂ】
0005831203.tif 000016
【図１３】
0005831203.tif 000017
【図１４】
0005831203.tif 000018
【図１５】
0005831203.tif 000019