(57)【要約】  少ない回路規模で良好な再現性及び差異性を有する個体別情報の生成を可能にする。このために、電子デバイスの個体別情報を生成する個体別情報生成装置を、複数のデジタル回路と、乱数判定部と、個体別情報生成部とを有して構成する。ここで、この複数のデジタル回路は同一の回路構成からなる。各々のデジタル回路は特定の入力に対しての出力がデジタル回路間では一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力する。なお、この各々のデジタル回路には順序が予め定義されている。また、乱数判定部は、出力値が乱数であるか一定であるかを、当該複数のデジタル回路の各々について判定する。そして、個体別情報生成部は、当該複数のデジタル回路のうち出力値が一定であると乱数判定部により判定されたデジタル回路に定義されている順序の情報と出力値とに基づいて、当該個体別情報を生成する。
2012001796.tif 000002
【特許請求の範囲】
【請求項１】
個体別情報を生成する装置であって、
同一の回路構成からなる複数のデジタル回路であって、各々のデジタル回路は特定の入力に対しての出力がデジタル回路間では一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力し、且つ、各々のデジタル回路の順序が予め定義されている複数のデジタル回路と、
出力値が乱数であるか一定であるかを、該複数のデジタル回路の各々について判定する乱数判定部と、
該複数のデジタル回路のうち出力値が一定であると該乱数判定部により判定されたデジタル回路に定義されている順序の情報と出力値とに基づいて、該個体別情報を生成する個体別情報生成部と、
を有することを特徴とする個体別情報生成装置。
【請求項２】
該個体別情報生成部は、該複数のデジタル回路のうち出力値が一定であると該乱数判定部により判定されたデジタル回路の該出力値を該デジタル回路の順序の情報に従って並べて、該個体別情報を生成することを特徴とする請求項１に記載の個体別情報生成装置。
【請求項３】
該個体別情報生成部は、更に、該複数のデジタル回路のうち出力値が乱数であると該乱数判定部により判定されたデジタル回路の各々に定義されている順序の情報に基づいて、該個体別情報を生成することを特徴とする請求項１に記載の個体別情報生成装置。
【請求項４】
該複数のデジタル回路のうち出力値が乱数であると該乱数判定部により判定されたデジタル回路の該出力を一定の所定値に変換する出力変換部を更に有し、
該個体別情報生成部は、該複数のデジタル回路のうち出力値が一定であると該乱数判定部により判定されたデジタル回路の該出力値と、該複数のデジタル回路のうち該出力変換部が出力を変換したデジタル回路の該変換後の所定値とを、該複数のデジタル回路の各々に定義されている順序の情報に従って並べて、該個体別情報を生成する、
ことを特徴とする請求項３に記載の個体別情報生成装置。
【請求項５】
該出力変換部は、出力値が乱数であると該乱数判定部により判定されたデジタル回路の該出力値を、該デジタル回路に定義されている順序を表す番号に応じた値に変換することを特徴とする請求項４に記載の個体別情報生成装置。
【請求項６】
該複数のデジタル回路の出力値は２値であり、
該出力変換部は、出力値が乱数であると該乱数判定部により判定されたデジタル回路に定義されている順序を表す番号が奇数である場合には、該デジタル回路の出力を該２値のうちの一方の値に設定し、出力が乱数であると該乱数判定部により判定されたデジタル回路に定義されている順序を表す番号が偶数である場合には、該デジタル回路の出力値を該２値のうちの他方の値に設定する、
ことを特徴とする請求項５に記載の個体別情報生成装置。
【請求項７】
該複数のデジタル回路の出力値は２値であり、
該乱数判定部は、該複数のデジタル回路のうち出力値が一定であると判定したデジタル回路に２値情報の一方の値を割り当てると共に、該複数のデジタル回路のうち出力が乱数であると判定したデジタル回路に該２値情報の他方の値を割り当て、
該個体別情報生成部は、該複数のデジタル回路の各々に対し該乱数判定部が割り当てた値を該デジタル回路の順序の情報に従って並べて得られるビット列に基づいて該個体別情報を生成する、
ことを特徴とする請求項３に記載の個体別情報生成装置。
【請求項８】
該個体別情報生成部は、該複数のデジタル回路の各々に対し該乱数判定部が割り当てた値を該デジタル回路の順序の情報に従って並べて得られるビット列に対してエントロピー圧縮を行い、該エントロピー圧縮によって得られる値に基づいて、該個体別情報を生成することを特徴とする請求項７に記載の個体別情報生成装置。
【請求項９】
該複数のデジタル回路の出力値は２値であり、
該複数のデジタル回路のうち出力値が乱数であると該乱数判定部により判定されたデジタル回路の該出力値を第一ビット列に変換すると共に、該複数のデジタル回路のうち出力値が一定であると該乱数判定部により判定されたデジタル回路についての該出力値を、該出力値が２値のうちの一方の値である場合には該第一ビット列とは異なる第二ビット列に変換し、該出力値が該２値のうちの他方の値である場合には該第一ビット列及び該第二ビット列のどちらとも異なる第三ビット列に変換する出力変換部を更に有し、
該個体別情報生成部は、該出力変換部によりビット列に変換された該複数のデジタル回路の各々の出力値を、該複数のデジタル回路の各々に定義されている順序の情報に従って並べて得られる値に基づいて、該個体別情報を生成する、
ことを特徴とする請求項３に記載の個体別情報生成装置。
【請求項１０】
該出力変換部によりビット列に変換された該複数のデジタル回路の各々の出力値を、該複数のデジタル回路の各々に定義されている順序の情報に従って並べて得られる値に対してエントロピー圧縮を行うエントロピー圧縮部を更に有し、
該個体別情報生成部は、該エントロピー圧縮部によりエントロピー圧縮されて得られた値に基づいて、該個体別情報を生成する、
ことを特徴とする請求項３に記載の個体別情報生成装置。
【請求項１１】
該複数のデジタル回路の各々は、Ｄ型フリップフロップ回路に状態変化を生じさせるエッジ信号を該Ｄ型フリップフロップ回路のクロック端子に入力すると共に、該エッジ信号と論理上は同位相としたエッジ信号を該Ｄ型フリップフロップ回路のデータ入力端子に入力し、該Ｄ型フリップフロップ回路の出力端子から出力される信号を該出力とするように構成した回路であることを特徴とする請求項１から１０のうちのいずれか一項に記載の個体別情報生成装置。
【請求項１２】
該複数のデジタル回路の各々は、ＲＳラッチ回路に対しメタステーブル状態とする入力
を与えると共に、該ＲＳラッチ回路の出力端子から出力される信号を該出力とするように構成した回路であることを特徴とする請求項１から１０のうちのいずれか一項に記載の個体別情報生成装置。
【請求項１３】
請求項１から１２のうちのいずれか一項に記載の個体別情報生成装置と、
該個体別情報生成装置が生成した個体別情報を暗号鍵として用いて、情報の暗号化処理を行う暗号化処理部と、
を有することを特徴とする暗号化装置。
【請求項１４】
認証対象装置が正規のものであるか否かの認証を行う認証装置であって、
正規の認証対象装置は、該認証対象装置の個体別情報を生成する個体別情報生成装置を備えており、
該個体別情報生成装置は、
同一の回路構成からなる複数のデジタル回路であって、各々のデジタル回路は特定の入力に対しての出力がデジタル回路間では一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力し、且つ、各々のデジタル回路の順序が予め定義されている複数のデジタル回路と、
出力値が乱数であるか一定であるかを、該複数のデジタル回路の各々について判定する乱数判定部と、
該複数のデジタル回路のうち出力値が一定であると該乱数判定部により判定されたデジタル回路に定義されている順序の情報と出力値とに基づいて、個体別情報を生成する個体別情報生成部と、
を有しており、
該認証装置は、
認証対象装置との間で通信を行って各種の情報の授受を行う通信部と、
該正規の認証対象装置が備えている個体別情報生成装置が有する個体別情報生成部が生成する個体別情報が予め記録されている記録部と、
該認証対象装置に対する認証処理を、該認証対象装置から送られてくる情報と該記録部に記録されている情報とに基づいて行う認証処理部と、
を有し、
該通信部は、該認証対象装置から送られてくる個体別情報を受信し、
該認証処理部は、該通信部が該認証対象装置から受信した個体別情報が、該記録部に予め記録されていた個体別情報と一致するか否かの判定を行い、両者が一致すると判定したときに、該認証対象装置が正規のものであるとの認証結果を得る、
ことを特徴とする認証装置。
【請求項１５】
個体別情報を生成する方法であって、
同一の回路構成からなる複数のデジタル回路であって、各々のデジタル回路は特定の入力に対しての出力がデジタル回路間では一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力し、且つ、各々のデジタル回路の順序が予め定義されている該複数のデジタル回路から出力される出力値が乱数であるか一定であるかを、該複数のデジタル回路の各々について判定し、
該複数のデジタル回路のうち出力値が一定であると判定されたデジタル回路に定義されている順序の情報と出力値とに基づいて、該個体別情報を生成する、
ことを特徴とする個体別情報生成方法。
【請求項１６】
認証対象装置が正規のものであるか否かの認証を行う認証方法であって、
正規の認証対象装置は、該認証対象装置の個体別情報を生成する個体別情報生成装置を備えており、
該個体別情報生成装置は、
同一の回路構成からなる複数のデジタル回路であって、各々のデジタル回路は特定の入力に対しての出力がデジタル回路間では一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力し、且つ、各々のデジタル回路の順序が予め定義されている複数のデジタル回路と、
出力値が乱数であるか一定であるかを、該複数のデジタル回路の各々について判定する乱数判定部と、
該複数のデジタル回路のうち出力値が一定であると該乱数判定部により判定されたデジタル回路に定義されている順序の情報出力値とに基づいて、該個体別情報を生成する個体別情報生成部と、
を有しており、
該認証方法は、
該認証対象装置から受信した個体別情報が、予め記録されている情報である、該正規の認証対象装置が備えている個体別情報生成装置が有する個体別情報生成部が生成する個体別情報と一致するか否かの判定を行い、
個体別情報が一致するとの判定結果が得られたときに、該認証対象装置が正規のものであるとの認証結果を得る、
ことを特徴とする認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で議論される実施態様は、デバイス毎に固有でありデバイス間では互いに異なっている個体別情報を生成する技術に関する。
【背景技術】
【０００２】
近年、プリンタカートリッジや、電池等のバッテリー、ゲーム機のカートリッジといった製品に関して、正規品の製造メーカとは異なる製造メーカによるクローン品が多く見られるようになっている。クローン品とは、正規品の内部構造の分析や正規品の内部に存在するＩＣチップの解析等の結果を用いて製造された、正規品と同等の機能を有する製品である。これらのクローン品の中には、正規品を製造する正規メーカの知的財産等の権利を侵害するケースも多く、クローン対策技術が強く求められている。【０００３】
上記したようなクローン品の防止方法として、正規品へ認証機能を付与することが行われている。この認証機能を実現する有効な手段のひとつがＰＵＦ（Physically Unclonable Function：物理的クローン作製不能機能）であり、上記に挙げたような、クローン品への対策が必要な製品に対して、ＰＵＦ回路が組み込まれる。【０００４】
ＰＵＦは、ある同一の入力に対して、ＰＵＦが実装されたデバイス毎に異なる出力を返す関数である。但し、デバイス毎に異なる値を出力するような関数を個別に設定する必要はなく、同一の回路がこの関数を実現する。つまり、ＰＵＦ回路は、デバイス内の信号遅延や素子特性などの物理特性のわずかな違いを利用することで、その出力をデバイス毎に全く異なる値とする。従って、この出力はデバイス固有の値（「個体別情報」と称することとする）となる。【０００５】
理想的なＰＵＦ回路は、デバイス上に実装するとそのデバイスでは常に同一の個体別情報を出力する（再現性）一方、異なるデバイス上に実装されたＰＵＦ間では全く異なる個体別情報を出力する（差異性）。このようなデバイスにおけるＰＵＦの出力情報は、人における、「指紋」のような生体情報に喩えることができる。指紋は、同一人であれば年をとっても不変である（再現性）一方、別人の間では全く異なる（差異性）という、理想的なＰＵＦの出力情報と同様の性質を有している。【０００６】
また、同一の回路構成のＰＵＦ回路が、このような理想的な再現性と差異性と兼ね備えていれば、攻撃者が回路を分解し、内部を解析したところで、クローンチップを生成することはできない。【０００７】
このＰＵＦは、識別情報（ＩＤ）の生成や暗号鍵の生成にも用いられる。
多くの電子デバイス製品では、個々に固有のＩＤを必要とする。従来は、多くの場合において、それぞれのデバイス毎に異なる値をＩＤとして書き込む作業が製造段階で行われていた。このＩＤの生成にＰＵＦを用いると、この書き込み作業のコストを低減させることができる。【０００８】
また、暗号機能を含む製品はＰＵＦを用いると安全性が向上する。具体例として、情報記録用の集積回路をカードに組み組んだスマートカードがある。また、通信の秘匿を保証するために、携帯電話に使用されるＳＩＭ（Subscriber Identification Module）カードや無線インターネット接続の端末などにも暗号機能が必須である。これらの機器での暗号化に使用する暗号鍵の生成に用いる乱数を、ＰＵＦを使用して生成するようにすれば、暗号鍵が攻撃者に解析される危険性が大幅に低下し、安全性が向上する。【０００９】
このＰＵＦの基本的な回路構成例として、ここでは、アービタ（Arbiter ）ＰＵＦとバタフライ（Butterfly ）型ＰＵＦとについて、まず説明する。
なお、本明細書における以下の説明では、電位の異なる２値の論理レベルにおけるハイ・レベルを値「１」と表現し、ロー・レベルを値「０」と表現することとする。【００１０】
まずアービタＰＵＦについて説明する。図１は、アービタＰＵＦの回路構成例を図解したものである。
このアービタＰＵＦ１０は、計２ｎ個の２入力１出力のセレクタ１１−０ａ、１１−０ｂ、１１−１ａ、１１−１ｂ、１１−２ａ、１１−２ｂ、…、１１−（ｎ−１）ａ、及び１１−（ｎ−１）ｂと、Ｄ型フリップフロップ回路１２と、を備えて構成されている。【００１１】
なお、以下の説明では、特に区別する必要がない場合には、セレクタ１１−０ａ、１１−０ｂ、１１−１ａ、１１−１ｂ、１１−２ａ、１１−２ｂ、…、１１−（ｎ−１）ａ、及び１１−（ｎ−１）ｂを総称して「セレクタ１１」とする。【００１２】
セレクタ１１−１ａ及び１１−１ｂは、その第一入力端子にセレクタ１１−０ａの出力端子が接続されており、その第二入力端子にセレクタ１１−０ｂの出力端子が接続されている。また、セレクタ１１−２ａ及び１１−２ｂは、その第一入力端子にセレクタ１１−１ａの出力端子が接続されており、その第二入力端子にセレクタ１１−１ｂの出力端子が接続されている。残りのセレクタ１１も同様の接続がなされている。【００１３】
なお、セレクタ１１には値Ｃｈａ［ｎ−１：０］が入力される。この値Ｃｈａ［ｎ−１：０］は、「チャレンジ」と称するものであり、セレクタ１１の２つの入力端子のどちらに入力された信号を出力端子に出力するかの選択指示をセレクタ１１に与えるためのものである。【００１４】
図１の構成において、例えば、セレクタ１１−１ａ及び１１−１ｂには、そのどちらにもｃｈａ［１］が入力されている。セレクタ１１−１ａは、ｃｈａ［１］＝１のときには、第一入力端子に入力された信号を出力端子に出力し、ｃｈａ［１］＝０のときには、第二入力端子に入力された信号を出力端子に出力する動作を行うものとする。その一方、セレクタ１１−１ｂは、ｃｈａ［１］＝１のときには、第二入力端子に入力された信号を出力端子に出力し、ｃｈａ［１］＝０のときには、第一入力端子に入力された信号を出力端子に出力する動作を行うものとする。また、他のセレクタ１１についても同様の動作を行うものとする。【００１５】
このアービタＰＵＦ１０において、Ｄ型フリップフロップ回路１２は「アービタ」と称される。このＤ型フリップフロップ回路１２は、データ入力端子Ｄにセレクタ１１−（ｎ−１）ａの出力端子が接続されており、クロック入力端子ＣＬＫにセレクタ１１−（ｎ−１）ｂの出力端子が接続されている。このＤ型フリップフロップ回路１２の出力が、このアービタＰＵＦ１０の出力Ｒとなる。なお、Ｄ型フリップフロップ回路１２は、初期化時にはリセットされて出力は０とされる。【００１６】
以上のように、このアービタＰＵＦ１０は、計２ｎ個のセレクタ１１がｎ個ずつ直列に接続されてＤ型フリップフロップ回路１２に接続される対称的な構成を有している。なお、セレクタ１１相互間の接続、並びにセレクタ１１−（ｎ−１）ａ及び１１−（ｎ−１）ｂとＤ型フリップフロップ回路１２との間の接続における配線長も、可能な限り、この対称性を保つように等しくしておくことが好ましい。【００１７】
アービタＰＵＦ１０は、回路遅延を利用してＰＵＦを実現する回路である。
アービタＰＵＦ１０には、入力信号として、Ｄ型フリップフロップ回路１２のクロック端子に入力すると、Ｄ型フリップフロップ回路１２に状態変化を生じさせるエッジ信号が入力される。なお、本実施形態では、このエッジ信号を、論理レベルが０から１へと変化する立ち上がりエッジ信号とする。【００１８】
アービタＰＵＦ１０に入力された立ち上がりエッジ信号は、セレクタ１１−０ａ及び１１−０ｂの第一入力端子及び第二入力端子に入力される。すると、この立ち上がりエッジ信号は、チャレンジｃｈａ［ｎ−１：０］の値に応じた経路でセレクタ１１を経由して、アービタであるＤ型フリップフロップ回路１２のデータ入力端子Ｄ及びクロック入力端子ＣＬＫに到着する。【００１９】
このときのＤ型フリップフロップ回路１２の出力は、データ入力端子Ｄとクロック入力端子ＣＬＫとのどちらに立ち上がりエッジ信号の０から１への変化点が先着したかによって決定し、この出力がアービタＰＵＦ１０の出力Ｒとなる。つまり、この変化点がクロック入力端子ＣＬＫに先着すればアービタＰＵＦ１０の出力Ｒは０となり、この変化点がデータ入力端子ＣＬＫに先着すればアービタＰＵＦ１０の出力Ｒは１となる。【００２０】
前述したように、このアービタＰＵＦ１０は、計２ｎ個のセレクタ１１がｎ個ずつ直列に接続された対称的な構成を有している。また、前述したように、各素子間の配線長はほぼ等しく構成されている。従って、回路論理上は、Ｄ型フリップフロップ回路１２のデータ入力端子Ｄとクロック入力端子ＣＬＫとへの立ち上がりエッジ信号の到着は同時であり、この両者に到着した立ち上がりエッジ信号は同位相のはずである。ところが、実際には、電子デバイスへの実装条件に起因するゲート遅延や配線遅延により、この両者への立ち上がりエッジ信号の到着が同時とならない場合がある。この到着時刻のずれの程度は、電子デバイス固有のものであるが、デバイス毎では異なるものとなる。つまり、この到着時刻のずれの程度は、前述したＰＵＦの性質である、再現性と差異性とを兼ね備えており、アービタＰＵＦ１０を実装した電子デバイスの個体別情報として利用することができる。【００２１】
以上のように、図１のアービタＰＵＦ１０は、Ｄ型フリップフロップ回路１２に状態変化を生じさせるエッジ信号をそのクロック端子に入力すると共に、このエッジ信号と論理上は同位相としたエッジ信号をそのデータ入力端子に入力するように構成されている。そして、このＤ型フリップフロップ回路１２の出力端子から出力される信号が、アービタＰＵＦ１０の出力となるように構成されている。【００２２】
また、前述したように、このアービタＰＵＦ１０は、チャレンジＣｈａ［ｎ−１：０］の値によって、立ち上がりエッジ信号についての、セレクタ１１を経由する経路を変更することができる。従って、チャレンジＣｈａ［ｎ−１：０］の値を変更すると、異なる出力Ｒの値が得られる。この出力を「レスポンス」と称することとする。【００２３】
そこで、特定のデバイスに実装したアービタＰＵＦ１０におけるチャレンジＣｈａ［ｎ−１：０］とレスポンスＲとの関係を予め調べて記録しておく。このようにすることで、その後に検査対象のデバイスのアービタＰＵＦ１０のチャレンジＣｈａ［ｎ−１：０］とレスポンスＲとの関係を調べて上述の記録内容と照合すれば、検査対象のデバイスが特定のデバイスであるか否かの認証を行うことができる。【００２４】
次にバタフライ型ＰＵＦについて説明する。バタフライ型ＰＵＦは、ＲＳラッチ回路のメタステーブルを利用してＰＵＦを実現するものである。
まず、メタステーブルについて、図２Ａ及び図２Ｂを用いて説明する。【００２５】
図２Ａには、ＲＳラッチ回路の回路構成例が図解されている。このＲＳラッチ回路は、ＮＡＮＤ（否定論理積）回路２１及び２２を用いて構成されている。
このＲＳラッチ回路の入力は負論理である。なお、図面においては、負論理の信号を信号名の上にオーバーバーを付すことで表現しているが、本明細書においては、負論理の信号を“＃”で表記するものとする。従って、例えば、図２ＡのＲＳラッチ回路のセット入力は“＃Ｓ”と表記し、リセット入力は“＃Ｒ”と表記する。【００２６】
ＮＡＮＤ回路２１の２つの入力には、それぞれ、セット入力“＃Ｓ”と、ＮＡＮＤ回路２２の出力とが入力される。また、ＮＡＮＤ回路２２の２つの入力には、それぞれ、リセット入力“＃Ｒ”と、ＮＡＮＤ回路２１の出力とが入力される。また、ＮＡＮＤ回路２１の出力がＲＳラッチ回路の出力Ｑとなる。なお、ＮＡＮＤ回路２２の出力からは、出力“＃Ｑ”が出力される。【００２７】
図２Ｂは、この図２ＡのＲＳラッチ回路の真理値表である。なお、この真理値表においては、セット入力Ｓ及びリセット入力Ｒを正論理で表記している。
真理値表からも分かるように、図２ＡのＲＳラッチ回路は、入力Ｓ＝０且つ入力Ｒ＝０のときには、出力値はそのまま保持されるので、Ｑ＝Ｑとなり、“＃Ｑ”＝“＃Ｑ”となる。また、このＲＳラッチ回路は、入力Ｓ＝０且つ入力Ｒ＝１のときには出力値はリセットされて、Ｑ＝０となり、“＃Ｑ”＝１となる。更に、このＲＳラッチ回路は、入力Ｓ＝１且つ入力Ｒ＝０のときには出力値はセットされて、Ｑ＝１、“＃Ｑ”＝０となる。【００２８】
図２ＡのＲＳラッチ回路は、以上の入力の組み合わせのいずれかであれば、出力の論理は安定している。ところが、このＲＳラッチ回路は、入力Ｓ＝１且つ入力Ｒ＝１のときには、Ｑ＝“＃Ｑ”＝１となってしまう。つまり、この場合には、本来は反対の論理を示すはずであるＱの論理値と“＃Ｑ”の論理値とが、揃って「１」となってしまう。このとき、このＲＳラッチ回路の出力は、どちらも、中間電位の不安定な状態となっている。このような、デジタル回路としては異常である不安定な状態が、メタステーブル（metastable）と呼ばれている。一般的には、このようなメタステーブルの状態を回避するために、ＲＳラッチ回路に対するＳ＝１且つＲ＝１の入力は禁止される。【００２９】
次に、このようなＲＳラッチ回路のメタステーブルを利用するバタフライ型ＰＵＦについて説明する。図３は、このバタフライ型ＰＵＦの回路構成例である。
このバタフライ型ＰＵＦ２０は、図２ＡのＲＳラッチ回路のセット入力“＃Ｓ”及びリセット入力“＃Ｒ”の両方に同一の値Ａを入力するように構成したものである。ここで、このバタフライ型ＰＵＦ２０の出力である、ＲＳラッチ回路の出力Ｑ及び出力“＃Ｑ”を、それぞれ、Ｂ及びＣとする。つまり、このバタフライ型ＰＵＦ２０は、ＲＳラッチ回路に対しメタステーブル状態とする入力を与えると共に、このＲＳラッチ回路の出力端子から出力される信号を、このバタフライ型ＰＵＦ２０の出力とするように構成した回路である。【００３０】
このバタフライ型ＰＵＦ２０は、入力Ａ＝０のときは、出力Ｂ及び出力Ｃはどちらも１となり、この状態で出力の値は安定している。ところが、ここで、値Ａを０から１に変化させると、出力Ｂが１であって出力Ｃが０である状態と、出力Ｂが０であって出力Ｃが１である状態とが生じて、出力が不定となる。これは、ＲＳラッチ回路がメタステーブルの状態に置かれており、その出力が不確定の状態になっているためである。バタフライ型ＰＵＦ２０は、この不確定性を利用したＰＵＦである。【００３１】
このバタフライ型ＰＵＦ２０の出力は２値（０と１）のどちらかの値をとる。しかしながら、バタフライ型ＰＵＦ２０をデバイスに実装すると、常に０を出力するもの、及び、常に１を出力するものと、出力が０と１とで定まらないもの、すなわち乱数を出力するものとの３つの態様のものが得られ、この出力の態様には再現性がある。そこで、このバタフライ型ＰＵＦ２０をデバイスに複数実装し、その各々から得られる出力を、バタフライ型ＰＵＦ２０を実装したデバイスについての個体別情報として利用することができる。【００３２】
次に図４について説明する。図４は、背景技術である個体別情報生成装置を図解したものである。
この個体別情報生成装置３０は、電子デバイスであるデバイス１に、図３に図解したバタフライ型ＰＵＦ２０を複数（ｎ個）実装して構成されている。【００３３】
この個体別情報生成装置３０では、ｎ個実装されたバタフライ型ＰＵＦ２０から、どれを選択するかが、前述したチャレンジに相当する。図４は、このチャレンジによって、「ラッチ０」から「ラッチ５」までの計６個のバタフライ型ＰＵＦ２０が選択された状態を表現している。この６個のバタフライ型ＰＵＦ２０の各々の出力ＲＥＳ［５：０］は２値の値（０または１）をとるので、これらの値を並べて６ビットのビット列を形成する。このビット列が前述したレスポンス（特徴値）となり、デバイス１の個体別情報として利用することができる。なお、この個体別情報生成装置３０がとり得る個体別情報のパターン数は、計６個のバタフライ型ＰＵＦ２０を選択するので、２の６乗パターン、すなわち６４パターンである。【００３４】
但し、前述したように、バタフライ型ＰＵＦ２０は乱数を出力する場合がある。図４は、計６個のバタフライ型ＰＵＦ２０のうち「ラッチ２」及び「ラッチ３」が乱数を出力している場合を表現している。このような乱数を出力するバタフライ型ＰＵＦ２０がチャレンジによる選択に含まれてしまうと、デバイス１で不変であるはずのレスポンスが異なる値となることがあり、再現性が失われてしまうため、ＰＵＦとして利用できなくなってしまう。【００３５】
この点に関し、個体別情報生成装置３０に符号誤り訂正回路を備えるという技術が知られている。この技術では、チャレンジによって選択されたバタフライ型ＰＵＦ２０の出力を並べて構成したビット列をこの符号誤り訂正回路に入力し、その出力を個体別情報生成装置３０のレスポンスとするように構成する。つまり、バタフライ型ＰＵＦ２０から上述のようにして生成されるビット列に含まれる乱数を符号誤り訂正回路で補正して、デバイス１では、同一のチャレンジに対して常に同一のレスポンスが得られるようにする。この技術では、このようにして、個体別情報生成装置３０の出力の再現性を確保している。【００３６】
なお、図４の個体別情報生成装置３０において、バタフライ型ＰＵＦ２０を、図１のアービタＰＵＦ１０に置き換えて構成することも可能である。
アービタＰＵＦ１０も、その出力は２値（０と１）のどちらかの値をとるが、データ入力端子Ｄとクロック入力端子ＣＬＫとへの立ち上がりエッジ信号の到着の時間差が極めて小さい場合には、出力が乱数となる場合がある。つまり、アービタＰＵＦ１０も、バタフライ型ＰＵＦ２０と同様、ある特定の入力に対しての出力が一義的には定まらずに個々に所定の一定の出力値（０又は１）若しくは乱数の出力値を出力するデジタル回路なのである。従って、アービタＰＵＦ１０の出力から生成したビット列に対する符号誤り訂正回路による補正は、再現性を確保する効果を奏する。【００３７】
この他の背景技術として、電子デバイスの物理特性の違いを利用して乱数を生成する技術が幾つか知られている。そのひとつに、デジタル入力値に対して一義的に決定されないデジタル出力値を得ると共に、このデジタル出力値における「０」と「１」の出現頻度を均等にするという乱数生成の技術がある。
【先行技術文献】
【特許文献】
【００３８】
【特許文献１】特許第３６０４６７４号公報
【非特許文献】
【００３９】
【非特許文献１】ジェ・ダブリュ・リー（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）、２００７年６月
【発明の概要】
【発明が解決しようとする課題】
【００４０】
図４の個体別情報生成装置３０において、前述したように符号誤り訂正回路を備えても、個体別情報の再現性の確保ができない場合がある。例えば、バタフライ型ＰＵＦ２０を１２８個実装して個体別情報生成装置３０を構成した場合を考える。この場合において、乱数を出力してしまうバタフライ型ＰＵＦ２０の個数が約１０個を超えると、符号誤り訂正回路だけでは、バタフライ型ＰＵＦ２０の出力を並べて構成したビット列の値の違いを吸収しきれないことがある。つまり、この場合には、同一のデバイス１であるのに同一のチャレンジに対し異なるレスポンスを出力してしまうことになり、再現性がないため、ＰＵＦとしては使用できない。【００４１】
また、図４の個体別情報生成装置３０において、前述したように符号誤り訂正回路を備えることは、個体別情報生成装置３０の実装コストを上昇させるという問題もある。
本発明は上述した事情に鑑みてなされたものであり、少ない回路規模で良好な再現性及び差異性を有する個体別情報の生成を可能にすることである。
【課題を解決するための手段】
【００４２】
本明細書で後述する個体別情報生成装置のひとつに、個体別情報を生成するというものがある。この個体別情報生成装置は、複数のデジタル回路と、乱数判定部と、個体別情報生成部とを有する。ここで、この複数のデジタル回路は同一の回路構成からなる。各々のデジタル回路は特定の入力に対しての出力がデジタル回路間では一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力する。なお、この各々のデジタル回路には順序が予め定義されている。また、乱数判定部は、出力値が乱数であるか一定であるかを、当該複数のデジタル回路の各々について判定する。そして、個体別情報生成部は、当該複数のデジタル回路のうち出力値が一定であると乱数判定部により判定されたデジタル回路に定義されている順序の情報と出力値とに基づいて、当該個体別情報を生成する。【００４３】
また、本明細書で後述する個体別情報生成方法のひとつに、個体別情報を生成するというものがある。この方法は、まず、複数のデジタル回路から出力される出力値が、乱数であるか一定であるかの判定を、当該複数のデジタル回路の各々について行う。この複数のデジタル回路は、同一の回路構成からなり、各々のデジタル回路は特定の入力に対しての出力がデジタル回路間では一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力する。なお、各々のデジタル回路には順序が予め定義されている。そして、この方法では、上述した個体別情報の生成を、この複数のデジタル回路のうち出力値が一定であると判定されたデジタル回路に定義されている順序の情報と出力値とに基づいて行う。
【発明の効果】
【００４４】
本明細書で後述する個体別情報生成装置は、少ない回路規模で良好な再現性及び差異性を有する個体別情報の生成を行うことができる。
【図面の簡単な説明】
【００４５】
【図１】アービタＰＵＦの回路構成例である。
【図２Ａ】ＲＳラッチ回路の回路構成例である。
【図２Ｂ】図２ＡのＲＳラッチ回路の真理値表である。
【図３】バタフライ型ＰＵＦの回路構成例である。
【図４】背景技術の個体別情報生成装置である。
【図５】個体別情報生成装置の第一の例である。
【図６】乱数判定部の回路構成の第一の例である。
【図７】図５の個体別情報生成部の動作を説明する図である。
【図８】個体別情報生成装置の第二の例である。
【図９】図８の個体別情報生成部の動作を説明する図である。
【図１０】図８の個体別情報生成装置の乱数判定部及び出力変換部の具体的な回路構成の第一の例である。
【図１１Ａ】第一変換回路の回路構成の第一の例である。
【図１１Ｂ】第一変換回路の回路構成の第二の例である。
【図１２】図８の個体別情報生成装置の乱数判定部及び出力変換部の具体的な回路構成の第二の例である。
【図１３Ａ】第二変換回路の回路構成の第一の例である。
【図１３Ｂ】第二変換回路の回路構成の第二の例である。
【図１４】図８の個体別情報生成装置の乱数判定部及び出力変換部の具体的な回路構成の第三の例である。
【図１５】図１０の回路構成のバタフライ型ＰＵＦからアービタＰＵＦへの置換を説明する図である。
【図１６】図１２の回路構成のバタフライ型ＰＵＦからアービタＰＵＦへの置換を説明する図である。
【図１７】図１４の回路構成のバタフライ型ＰＵＦからアービタＰＵＦへの置換を説明する図である。
【図１８】個体別情報生成装置の第三の例である。
【図１９】図１８の個体別情報生成装置におけるエントロピー圧縮部の動作を説明する図である。
【図２０】図１８の回路構成のバタフライ型ＰＵＦからアービタＰＵＦへの置換を説明する図である。
【図２１】個体別情報生成装置の第四の例である。
【図２２】乱数判定部の回路構成の第二の例である。
【図２３】図２１の個体別情報生成装置における個体別情報生成部の動作を説明する図である。
【図２４】図２１の回路構成のバタフライ型ＰＵＦからアービタＰＵＦへの置換を説明する図である。
【図２５】図２１の個体別情報生成装置の変形例である。
【図２６】個体別情報生成装置を備えた暗号化装置の構成例である。
【図２７】個体別情報生成装置を備えた認証対象装置の構成例である。
【図２８】認証装置の構成例である。
【発明を実施するための形態】
【００４６】
まず図５について説明する。図５は、個体別情報生成装置の第一の例を図解したものである。
この個体別情報生成装置１００は、電子デバイスであるデバイス１に、バタフライ型ＰＵＦ２０と乱数判定部４０とを複数（ｎ個）実装し、更に、個体別情報生成部５０を実装して構成されている。
【００４７】
バタフライ型ＰＵＦ２０は図３のものと同一の構成であり、ＲＳラッチ回路に対しメタステーブル状態とする入力を与えると共に、このＲＳラッチ回路の出力端子から出力される信号を、このバタフライ型ＰＵＦ２０の出力とするように構成した回路である。なお、この、同一の回路構成であるｎ個のバタフライ型ＰＵＦ２０の各々には順序が予め定義されている。
【００４８】
この個体別情報生成装置１００も、ｎ個実装されたバタフライ型ＰＵＦ２０から、どれを選択するかが、前述したチャレンジに相当する。図５は、このチャレンジによって、計６個のバタフライ型ＰＵＦ２０が選択された状態を表現している。
【００４９】
乱数判定部４０は、バタフライ型ＰＵＦ２０の各々について、その出力値が乱数であるか一定であるかを判定する。
個体別情報生成部５０は、バタフライ型ＰＵＦ２０のうち出力値が一定であると乱数判定部４０により判定されたものの各々に定義されている順序の情報に基づいて、デバイス１の個体別情報を生成する。
【００５０】
次に、この乱数判定部４０及び個体別情報生成部５０の動作について、更に説明する。
まず図６について説明する。図６には乱数判定部４０の回路構成の第一の例が図解されている。
【００５１】
図６において、乱数判定部４０は、ＡＮＤ回路４１、ＮＯＴ回路４２及び４４、Ｄ型フリップフロップ回路４３及び４６、ＯＲ回路４５、及びＥｘＯＲ回路４７を備えて構成されている。
【００５２】
ＡＮＤ回路４１は２入力の論理積回路である。このＡＮＤ回路４１の一方の入力には、バタフライ型ＰＵＦ２０の出力が入力され、他方の入力にはＮＯＴ（否定）回路４４の出力が接続されている。ＡＮＤ回路４１の出力はＮＯＴ回路４２の入力と接続されており、ＮＯＴ回路４２の出力は、Ｄ型フリップフロップ回路４３のデータ入力に接続されている。このＤ型フリップフロップ回路（以下、「Ｄ−ＦＦ」と略す）４３の出力は、ＮＯＴ回路４４の入力に接続されている。
【００５３】
ＯＲ回路４５は２入力の論理和回路である。このＯＲ回路４５の一方の入力には、バタフライ型ＰＵＦ２０の出力が入力され、他方の入力にはＤ−ＦＦ４６の出力が接続されている。このＯＲ回路４５の出力は、Ｄ−ＦＦ４６のデータ入力に接続されている。
【００５４】
ＥｘＯＲ回路４７は２入力の排他的論理和回路である。このＥｘＯＲ回路４７の一方の入力にはＮＯＴ回路４４の出力が接続されており、他方の入力にはＤ−ＦＦ４６の出力が接続されている。このＥｘＯＲ回路４７の出力が、この乱数判定部４０の出力となる。
【００５５】
なお、Ｄ−ＦＦ４３及び４６は、初期化時にはリセットされて出力は０とされる。
まず、バタフライ型ＰＵＦ２０の出力が常に０の場合における乱数判定部４０の動作を説明する。
【００５６】
このとき、ＡＮＤ回路４１の出力は０になるから、ＮＯＴ回路４２の作用によってＤ−ＦＦ４３には１が入力される。すると、Ｄ−ＦＦ４３の出力も１となるから、ＮＯＴ回路４４の出力は０となる。
【００５７】
ところで、Ｄ−ＦＦ４６は初期化されているのでその出力は０である。従って、このとき、ＯＲ回路４５の２つの入力は共に０であるから、その出力は０になる。この出力がＤ−ＦＦ４６に入力されるので、Ｄ−ＦＦ４６の出力も依然として０のままとなる。
【００５８】
従って、ＥｘＯＲ回路４７の２つの入力は共に０であるから、その出力は０となる。
次に、バタフライ型ＰＵＦ２０の出力が常に１の場合における乱数判定部４０の動作を説明する。
【００５９】
まず、Ｄ−ＦＦ４３は初期化されているのでその出力は０である。従って、このとき、ＡＮＤ回路４１の２つの入力は共に１であるから、その出力は１になる。すると、ＮＯＴ回路４２の作用によってＤ−ＦＦ４３には０が入力される。すると、Ｄ−ＦＦ４３の出力も０となるから、ＮＯＴ回路４４の出力は１となる。
【００６０】
一方、このとき、ＯＲ回路４５の出力は１になり、この出力がＤ−ＦＦ４６に入力されるので、Ｄ−ＦＦ４６の出力も１となる。
従って、ＥｘＯＲ回路４７の２つの入力は共に１であるから、その出力は０となる。
【００６１】
次に、バタフライ型ＰＵＦ２０の出力が乱数の場合（出力が０と１とのどちらにも定まらない場合）における乱数判定部４０の動作を説明する。
前述したように、０に初期化されているＤ−ＦＦ４３は、バタフライ型ＰＵＦ２０の出力が０になると、その出力が１となり、従って、ＮＯＴ回路４４の出力は０となる。その後、バタフライ型ＰＵＦ２０の出力が１になっても、ＡＮＤ回路４１の出力は０のままであるから、Ｄ−ＦＦ４３の出力は１が保持され、従って、ＮＯＴ回路４４の出力は０のまま保持される。
【００６２】
一方、０に初期化されているＤ−ＦＦ４６は、バタフライ型ＰＵＦ２０の出力が１になると、その出力が１となる。その後、バタフライ型ＰＵＦ２０の出力が０になっても、ＯＲ回路４５の出力は１のままであるから、Ｄ−ＦＦ４３の出力は１が保持される。
【００６３】
従って、バタフライ型ＰＵＦ２０の出力が乱数である場合（出力が０と１とのどちらにも定まらない場合）には、ＥｘＯＲ回路４７の２つの入力は、一方が０となり他方が１となるので、その出力は１となる。
【００６４】
以上のように、乱数判定部４０は、バタフライ型ＰＵＦ２０が常に０及び１のどちらか一方のみを出力し続ける場合には、その出力値が０となり、バタフライ型ＰＵＦ２０が乱数を出力する場合には、その出力値が１となる。乱数判定部４０は、このようにして、バタフライ型ＰＵＦ２０の出力が乱数の出力値であるか一定の出力値であるかを判定する。
【００６５】
次に、この個体別情報生成部５０のより具体的な動作内容について説明する。
図５の個体別情報生成部５０は、バタフライ型ＰＵＦ２０のうち出力値が一定であると乱数判定部４０により判定されたものの当該出力を、その順序の情報に従って並べることで、デバイス１の個体別情報を生成する。このとき、個体別情報生成部５０は、バタフライ型ＰＵＦ２０のうち出力値が乱数であると乱数判定部４０により判定されたものについては、その出力（すなわち乱数の出力値）を廃棄し、個体別情報の生成には使用しない。
【００６６】
この個体別情報生成部５０の動作について、図７を用いて更に説明する。
図７に図解されている「ラッチ０」から「ラッチ５」までの計６個のバタフライ型ＰＵＦ２０は、チャレンジによって選択されたものであり、選択されたそれらについて定義されていた前述の順序を「ラッチ０」から「ラッチ５」までの番号で示している。ここで、計６個のバタフライ型ＰＵＦ２０のうちの「ラッチ２」及び「ラッチ３」が乱数の出力値を出力している場合を図６は表現している。
【００６７】
乱数判定部４０は、計６個のバタフライ型ＰＵＦ２０のうちの「ラッチ２」及び「ラッチ３」が乱数の出力値を出力しており、その他は一定の出力値を出力しているとの判定を下し、その判定結果を個体別情報生成部５０に伝える。すると、個体別情報生成部５０は、「ラッチ２」及び「ラッチ３」の出力を廃棄し、「ラッチ０」、「ラッチ１」、「ラッチ４」、「ラッチ５」の各出力を、この順序に従って並べてビット列を生成し、デバイス１の個体別情報として出力する。
【００６８】
個体別情報生成装置１００は、個体別情報生成部５０が上述した動作を行うことでデバイス１の個体別情報を生成して出力することができるようになる。
なお、図５の個体別情報生成装置１００において、バタフライ型ＰＵＦ２０を、図１のアービタＰＵＦ１０に置き換えて構成することも可能である。前述したように、アービタＰＵＦ１０は、Ｄ型フリップフロップ回路１２に状態変化を生じさせるエッジ信号をそのクロック端子に入力すると共に、このエッジ信号と論理上は同位相としたエッジ信号をそのデータ入力端子に入力するように構成されている。そして、このＤ型フリップフロップ回路１２の出力端子から出力される信号が、アービタＰＵＦ１０の出力となるように構成されている。更には、バタフライ型ＰＵＦ２０を、同様の動作を行う他のデジタル回路、すなわち、ある特定の入力に対しての出力が一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力する他のデジタル回路に置き換えて構成することも可能である。
【００６９】
次に図８について説明する。図８は、個体別情報生成装置の第二の例を図解したものである。
図８の個体別情報生成装置２００は、電子デバイスであるデバイス１に実装されている。この個体別情報生成装置２００は、図５に図解した個体別情報生成装置１００に対し、バタフライ型ＰＵＦ２０及び乱数判定部４０の出力を出力変換部６０に入力し、その出力を個体別情報生成部５０に入力するという変更を加えたものである。
【００７０】
図５の個体別情報生成装置１００による個体別情報の生成では、計６個のバタフライ型ＰＵＦ２０のうちの２個の出力を廃棄するため、とり得る個体別情報のパターン数が、２の４乗パターン、すなわち、１６パターンと少なくなってしまう。とり得る個体別情報のパターン数が少ないと、異なるデバイス間で個体別情報が同一となる可能性が高くなる。このことはすなわち、前述した差異性が低いということであり、ＰＵＦとしての利用範囲が限定される。
【００７１】
そこで、個体別情報生成装置２００では、個体別情報生成部５０が、前述の第一の例の動作に加え、出力値が乱数であると乱数判定部４０により判定されたバタフライ型ＰＵＦ２０の各々に定義されている順序の情報にも基づいて、デバイス１の個体別情報を生成する。
【００７２】
出力変換部６０は、バタフライ型ＰＵＦ２０のうち出力値が乱数であると乱数判定部４０により判定されたものの当該出力を、一定の所定値に変換する。このとき、個体別情報生成部５０は、バタフライ型ＰＵＦ２０のうち、出力値が一定であると乱数判定部４０により判定されたものの当該出力と、出力変換部６０が出力を変換したものの当該変換後の当該所定値とを並べて個体別情報を生成する。なお、各出力を並べる際には、バタフライ型ＰＵＦ２０の各々に定義されている順序の情報に従って各出力を並べる。
【００７３】
この個体別情報生成部５０の動作について、図９を用いて更に説明する。
図９に図解されている「ラッチ０」から「ラッチ５」までの計６個のバタフライ型ＰＵＦ２０は、チャレンジによって選択されたものであり、選択されたそれらについて定義されていた前述の順序を「ラッチ０」から「ラッチ５」までの番号で示している。ここで、計６個のバタフライ型ＰＵＦ２０のうちの「ラッチ２」及び「ラッチ３」が乱数の出力値を出力している場合を図９は表現している。
【００７４】
乱数判定部４０は、計６個のバタフライ型ＰＵＦ２０のうちの「ラッチ２」及び「ラッチ３」が乱数の出力値を出力しており、その他は一定の出力値を出力しているとの判定を下し、その判定結果を出力変換部６０に伝える。すると、出力変換部６０は、「ラッチ２」及び「ラッチ３」が出力する乱数の出力値を、一定の所定値に変換し、この変換後の所定値を「ラッチ２」及び「ラッチ３」の出力として個体別情報生成部５０へ出力する。個体別情報生成部５０は、「ラッチ０」から「ラッチ５」の各出力を、この順序に従って並べてビット列を生成し、デバイス１の個体別情報として出力する。
【００７５】
このように、個体別情報生成装置２００では、チャレンジにより選択された「ラッチ」のうち乱数の出力値を出力しているものの順序情報を、個体別情報の生成に利用するという特徴を有している。この特徴を有する個体別情報生成装置２００では、とり得る個体別情報のパターン数が、「ラッチ」が乱数の出力値を出力するかどうかに依存せず、実装する「ラッチ」の個数にほぼ見合ったパターン数を持つことができる。より具体的には、「ラッチ」の個数をＮ個とすると、個体別情報は２のＮ乗通りのパターン数をとり得る。従って、前述した差異性の低下が抑制される。
【００７６】
次に、図８の乱数判定部４０及び出力変換部６０の具体的な回路構成について説明する。
まず図１０について説明する。図１０は、図８の個体別情報生成装置２００の乱数判定部４０及び出力変換部６０の具体的な回路構成の第一の例を図解したものである。
【００７７】
図１０は、バタフライ型ＰＵＦ２０の出力を第一変換回路７０に入力し、この第一変換回路７０の出力を個体別情報生成部５０に入力するというものである。
第一変換回路７０は、図８における乱数判定部４０と出力変換部６０との各々が行う動作を兼ね備えている。すなわち、第一変換回路７０は、バタフライ型ＰＵＦ２０の出力値が乱数であるか一定であるかを判定すると共に、出力値が乱数であると判定されたものの当該出力値を一定の所定値「１」に変換するように動作する。
【００７８】
ここで図１１Ａ及び図１１Ｂについて説明する。図１１Ａ及び図１１Ｂは、それぞれ、第一変換回路７０の回路構成の第一の例及び第二の例である。
まず、図１１Ａの第一の例について説明する。
【００７９】
図１１Ａにおいて、第一変換回路７０は、ＯＲ回路７１とＤ−ＦＦ７２とを備えて構成されている。
２入力の論理和回路であるＯＲ回路７１の一方の入力には、バタフライ型ＰＵＦ２０の出力が入力され、他方の入力にはＤ−ＦＦ７２の出力が接続されている。ＯＲ回路７１の出力はＤ−ＦＦ７２の入力と接続されており、Ｄ−ＦＦ７２の出力が、この第一変換回路７０の出力となる。なお、Ｄ−ＦＦ７２は、初期化時にはリセットされて出力は０とされる。
【００８０】
バタフライ型ＰＵＦ２０の出力が常に０の場合、Ｄ−ＦＦ７２は０に初期化されている。従って、ＯＲ回路７１の２つの入力は共に０であるから、その出力は０になる。この出力がＤ−ＦＦ７２に入力されるので、Ｄ−ＦＦ７２の出力も依然として０のままとなる。従って、この場合の第一変換回路７０の出力は０となる。
【００８１】
一方、バタフライ型ＰＵＦ２０の出力がわずかの期間でも１になると、ＯＲ回路７１の出力は１になり、この出力がＤ−ＦＦ７２に入力されるので、Ｄ−ＦＦ７２の出力も１となる。その後は、バタフライ型ＰＵＦ２０の出力が０になっても、Ｄ−ＦＦ７２の出力が１であるために、ＯＲ回路７１の出力は１のままであるから、Ｄ−ＦＦ７２の出力は１が保持される。従って、バタフライ型ＰＵＦ２０の出力が常に１の場合とバタフライ型ＰＵＦ２０の出力値が乱数の場合（出力が０と１とのどちらにも定まらない場合）とのどちらの場合も、第一変換回路７０の出力は１となる。
【００８２】
このように、図１１Ａの第一変換回路７０は、バタフライ型ＰＵＦ２０の出力が常に０の場合と常に１の場合には、その出力をそのまま自身の出力とし、バタフライ型ＰＵＦ２０の出力値が乱数の場合には、その出力を一定の所定値「１」に変換して出力する。
【００８３】
次に、図１１Ｂの第二の例について説明する。
図１１Ｂにおいて、第一変換回路７０は、ＮＯＴ回路７３及び７６と、ＡＮＤ回路７４と、Ｄ−ＦＦ７５とを備えて構成されている。
【００８４】
ＮＯＴ回路７３の入力にはバタフライ型ＰＵＦ２０の出力が入力されている。ＮＯＴ回路７３の出力は、２入力の論理積回路であるＡＮＤ回路７４の一方の入力に接続されており、ＡＮＤ回路７４の他方の入力には、Ｄ−ＦＦ７５の出力が接続されている。ＡＮＤ回路７４の出力はＤ−ＦＦ７５の入力と接続されており、Ｄ−ＦＦ７５の出力は、ＮＯＴ回路７６の入力にも接続されている。このＮＯＴ回路７６の出力が、この第一変換回路７０の出力となる。なお、Ｄ−ＦＦ７５は、初期化時にはリセットされて出力は１とされる。
【００８５】
バタフライ型ＰＵＦ２０の出力が常に０の場合、ＮＯＴ回路７３の作用によってＡＮＤ回路７４の一方の入力には１が常に入力される。また、このとき、Ｄ−ＦＦ７２は１に初期化されているので、ＡＮＤ回路７４の他方の入力にも１が入力されている。従って、このとき、ＡＮＤ回路７４の出力は１になり、この出力がＤ−ＦＦ７５に入力されるので、Ｄ−ＦＦ７５の出力は１が保持される。従って、ＮＯＴ回路７６の作用により、この場合の第一変換回路７０の出力は０となる。
【００８６】
一方、バタフライ型ＰＵＦ２０の出力がわずかの期間でも１になると、ＮＯＴ回路７３の作用によってＡＮＤ回路７４の一方の入力には０が入力されるので、ＡＮＤ回路７４の出力は０になる。この出力がＤ−ＦＦ７５に入力されるので、Ｄ−ＦＦ７５の出力も０となる。その後は、バタフライ型ＰＵＦ２０の出力が０になってＮＯＴ回路７３の作用によりＡＮＤ回路７４の一方の入力に１が入力されても、その他方の入力が０のままであるため、ＡＮＤ回路７４の出力は０であり、Ｄ−ＦＦ７５の出力は０が保持される。従って、ＮＯＴ回路７６の作用により、バタフライ型ＰＵＦ２０の出力が常に１の場合とバタフライ型ＰＵＦ２０の出力値が乱数の場合（出力が０と１とのどちらにも定まらない場合）とのどちらの場合も、第一変換回路７０の出力は１となる。
【００８７】
このように、図１１Ｂの第一変換回路７０も、バタフライ型ＰＵＦ２０の出力が常に０の場合と常に１の場合には、その出力をそのまま自身の出力とし、バタフライ型ＰＵＦ２０の出力値が乱数の場合には、その出力を一定の所定値「１」に変換して出力する。
【００８８】
次に図１２について説明する。図１２は、図８の個体別情報生成装置２００の乱数判定部４０及び出力変換部６０の具体的な回路構成の第二の例を図解したものである。
図１２は、バタフライ型ＰＵＦ２０の出力を第二変換回路８０に入力し、この第二変換回路８０の出力を個体別情報生成部５０に入力するというものである。
【００８９】
第二変換回路８０は、図１０の第一変換回路７０と同様に、図８における乱数判定部４０と出力変換部６０との各々が行う動作を兼ね備えている。但し、第二変換回路８０は、バタフライ型ＰＵＦ２０の出力値が乱数であるか一定であるかを判定すると共に、出力値が乱数であると判定されたものの当該出力を一定の所定値「０」に変換するように動作する。
【００９０】
ここで図１３Ａ及び図１３Ｂについて説明する。図１３Ａ及び図１３Ｂは、それぞれ、第二変換回路８０の回路構成の第一の例及び第二の例である。
まず、図１３Ａの第一の例について説明する。
【００９１】
図１３Ａにおいて、第二変換回路８０は、ＡＮＤ回路８１とＤ−ＦＦ８２とを備えて構成されている。
２入力の論理積回路であるＡＮＤ回路８１の一方の入力には、バタフライ型ＰＵＦ２０の出力が入力され、他方の入力にはＤ−ＦＦ８２の出力が接続されている。ＡＮＤ回路８１の出力はＤ−ＦＦ８２の入力と接続されており、Ｄ−ＦＦ８２の出力が、この第二変換回路８０の出力となる。なお、Ｄ−ＦＦ８２は、初期化時にはリセットされて出力は１とされる。
【００９２】
バタフライ型ＰＵＦ２０の出力が常に１の場合、Ｄ−ＦＦ８２は１に初期化されている。従って、ＡＮＤ回路８１の２つの入力は共に１であるから、その出力は１になる。この出力がＤ−ＦＦ８２に入力されるので、Ｄ−ＦＦ８２の出力も依然として１のままとなる。従って、この場合の第二変換回路８０の出力は１となる。
【００９３】
一方、バタフライ型ＰＵＦ２０の出力がわずかの期間でも０になると、ＡＮＤ回路８１の出力は０になり、この出力がＤ−ＦＦ８２に入力されるので、Ｄ−ＦＦ８２の出力も０となる。その後は、バタフライ型ＰＵＦ２０の出力が１になっても、Ｄ−ＦＦ８２の出力が０であるために、ＡＮＤ回路８１の出力は０のままであるから、Ｄ−ＦＦ８２の出力は０が保持される。従って、バタフライ型ＰＵＦ２０の出力が常に０の場合とバタフライ型ＰＵＦ２０の出力値が乱数の場合（出力が０と１とのどちらにも定まらない場合）とのどちらの場合も、第二変換回路８０の出力は０となる。
【００９４】
このように、図１３Ａの第二変換回路８０は、バタフライ型ＰＵＦ２０の出力が常に０の場合と常に１の場合には、その出力をそのまま自身の出力とし、バタフライ型ＰＵＦ２０の出力値が乱数の場合には、その出力値を一定の所定値「０」に変換して出力する。
【００９５】
次に、図１３Ｂの第二の例について説明する。
図１３Ｂにおいて、第二変換回路８０は、ＡＮＤ回路８３と、ＮＯＴ回路８４及び８６と、Ｄ−ＦＦ８５とを備えて構成されている。
【００９６】
２入力の論理積回路であるＡＮＤ回路８３の一方の入力には、バタフライ型ＰＵＦ２０の出力が入力され、他方の入力にはＮＯＴ回路８６の出力が接続されている。ＡＮＤ回路８３の出力はＮＯＴ回路８４の入力に接続されており、このＮＯＴ回路８４の出力がＤ−ＦＦ８５の入力と接続されている。Ｄ−ＦＦ８５の出力は、ＮＯＴ回路８６の入力に接続されており、このＮＯＴ回路８６の出力が、この第二変換回路８０の出力となる。なお、Ｄ−ＦＦ８５は、初期化時にはリセットされて出力は０とされる。
【００９７】
バタフライ型ＰＵＦ２０の出力が常に１の場合、ＡＮＤ回路８３の一方の入力には１が常に入力される。また、このとき、Ｄ−ＦＦ８５は０に初期化されているので、ＮＯＴ回路８６の作用によってＡＮＤ回路８３の他方の入力にも１が入力されている。従って、このとき、ＡＮＤ回路８３の出力は１になり、ＮＯＴ回路８４の出力は０になる。このＮＯＴ回路８４の出力がＤ−ＦＦ７５に入力されるので、Ｄ−ＦＦ７２の出力は０が保持される。従って、ＮＯＴ回路８６の作用により、この場合の第二変換回路８０の出力は１となる。
【００９８】
一方、バタフライ型ＰＵＦ２０の出力がわずかの期間でも０になると、ＡＮＤ回路８３の一方の入力には０が入力されるので、ＡＮＤ回路８３の出力は０になり、ＮＯＴ回路８４の出力は１になる。このＮＯＴ回路８４の出力がＤ−ＦＦ８５に入力されるので、Ｄ−ＦＦ８５の出力も１となり、ＮＯＴ回路８６の出力は０となる。その後にバタフライ型ＰＵＦ２０の出力が１になってＡＮＤ回路８３の一方の入力に０が入力されても、その他方の入力が０のままであるため、ＡＮＤ回路８３の出力は０であり、ＮＯＴ回路８４の出力は１のままであるから、Ｄ−ＦＦ８５の出力は１が保持される。従って、ＮＯＴ回路８６の作用により、バタフライ型ＰＵＦ２０の出力が常に０の場合とバタフライ型ＰＵＦ２０の出力値が乱数の場合（出力が０と１とのどちらにも定まらない場合）とのどちらの場合も、第二変換回路８０の出力は０となる。
【００９９】
このように、図１３Ｂの第二変換回路８０も、バタフライ型ＰＵＦ２０の出力が常に０の場合と常に１の場合には、その出力をそのまま自身の出力とし、バタフライ型ＰＵＦ２０の出力値が乱数の場合には、その出力を一定の所定値「０」に変換して出力する。
【０１００】
次に図１４について説明する。図１４は、図８の個体別情報生成装置２００の乱数判定部４０及び出力変換部６０の具体的な回路構成の第三の例を図解したものである。
この図１４の例は、出力変換部６０が、出力値が乱数であると乱数判定部４０により判定されたバタフライ型ＰＵＦ２０の出力を、当該バタフライ型ＰＵＦ２０に予め定義されている順序を表す番号に応じた値に変換するように構成したものである。
【０１０１】
図１４の回路構成は、バタフライ型ＰＵＦ２０の出力を第一変換回路７０と第二変換回路８０とのどちらか一方に入力して、その出力を個体別情報生成部５０に入力するように構成されている。
【０１０２】
第一変換回路７０は、図１０のものと同様のものであり、バタフライ型ＰＵＦ２０の出力値が乱数であるか一定であるかを判定すると共に、出力値が乱数であると判定されたものの当該出力を一定の所定値「１」に変換するように動作する。従って、図１１Ａ及び図１１Ｂに示した回路構成のものを、図１４の第一変換回路７０として使用することができる。
【０１０３】
第二変換回路８０も、図１２のものと同様のものであり、バタフライ型ＰＵＦ２０の出力値が乱数であるか一定であるかを判定すると共に、出力値が乱数であると判定されたものの当該出力を一定の所定値「０」に変換するように動作する。従って、図１３Ａ及び図１３Ｂに示した回路構成のものを、図１４の第二変換回路８０として使用することができる。
【０１０４】
図１４において、バタフライ型ＰＵＦ２０に接続されるものが第一変換回路７０と第二変換回路８０とのどちらであるかは、バタフライ型ＰＵＦ２０に予め定義されていた順序を表す番号によって定められている。より具体的には、予め定義されていた順序を表す番号が奇数であるバタフライ型ＰＵＦ２０には、第一変換回路７０が接続されており、予め定義されていた順序を表す番号が偶数であるバタフライ型ＰＵＦ２０には、第二変換回路８０が接続されている。つまり、図１４の構成では、出力変換部６０は、出力値が乱数であると乱数判定部４０により判定されたバタフライ型ＰＵＦ２０に予め定義されている順序の番号が奇数である場合には、バタフライ型ＰＵＦ２０の出力を１に設定する。また、出力変換部６０は、出力値が乱数であると乱数判定部４０により判定されたバタフライ型ＰＵＦ２０に予め定義されている順序の番号が偶数である場合には、バタフライ型ＰＵＦ２０の出力を０に設定する。
【０１０５】
なお、図８の個体別情報生成装置２００において、バタフライ型ＰＵＦ２０を、図１のアービタＰＵＦ１０に置き換えて構成することも可能である。図１５、図１６、及び図１７は、それぞれ、図１０、図１２、及び、図１４の各図に図解した回路構成におけるバタフライ型ＰＵＦ２０をアービタＰＵＦ１０に置換したものである。このように、バタフライ型ＰＵＦ２０のアービタＰＵＦ１０へ置き換える際には他の回路構成の変更は不要であり、容易に行うことができる。
【０１０６】
次に図１８について説明する。図１８は、個体別情報生成装置の第三の例を図解したものである。
図１８の個体別情報生成装置３００は、電子デバイスであるデバイス１に実装されている。この個体別情報生成装置３００は、バタフライ型ＰＵＦ２０の各々の出力を乱数判定部４０にひとつずつ入力して、その各々の出力をエントロピー圧縮部９０に入力し、このエントロピー圧縮部９０の出力を個体別情報生成部５０に入力する第一の構成を有している。更に、この個体別情報生成装置３００は、図５の個体別情報生成装置１００を組み合わせた構成も含んでいる。より具体的には、個体別情報生成装置３００は、このための構成として、個体別情報生成部５０が、バタフライ型ＰＵＦ２０の各々の出力を、乱数判定部４０の各々の出力を用いて選択して、デバイス１の個体別情報の生成を行う第二の構成を備えている。
【０１０７】
まず、個体別情報生成装置３００における上述の第一の構成について説明する。
図１８における乱数判定部４０としては、図６に図解したものを使用する。従って、乱数判定部４０は、バタフライ型ＰＵＦ２０が常に０及び１のどちらか一方のみを出力し続ける場合には、その出力値が０となり、バタフライ型ＰＵＦ２０が乱数の出力値を出力する場合には、その出力値が１となる。このようにして、乱数判定部４０は、バタフライ型ＰＵＦ２０のうち出力値が一定であると判定したものに、２値情報の一方の値０を割り当てると共に、バタフライ型ＰＵＦ２０のうち出力値が乱数であると判定したものに当該２値情報の他方の値１を割り当てる。
【０１０８】
図１８におけるエントロピー圧縮部９０の動作について、図１９を用いて説明する。
エントロピー圧縮部９０は、まず、前処理として、バタフライ型ＰＵＦ２０の各々に対し乱数判定部４０が割り当てた値を、バタフライ型ＰＵＦ２０の各々に対して予め定義されている順序の情報に従って並べてビット列を生成する。続いて、エントロピー圧縮部９０は、このようにして並べられて得られたビット列に対してエントロピー圧縮を行い、得られた値を出力する。
【０１０９】
なお、本実施形態では、エントロピー圧縮部９０として、得られたビット列に対するハッシュ関数値を得る回路を使用する。より具体的には、この回路として、米国連邦情報処理標準(Federal Information Processing Standards／FIPS)に採用されているハッシュ関数であるＳＨＡ−２５６によるハッシュ関数値を得る回路を用いる。従って、このエントロピー圧縮部９０の出力は２５６ビットのビット列となる。
【０１１０】
なお、エントロピー圧縮に使用する関数として、ハッシュ関数の代わりに、ＬＦＳＲ（線形フィードバックシフトレジスタ）や、ＦＵＺＺＹ  ＥＸＴＲＡＣＴＯＲなどの関数を用いてもよい。
【０１１１】
ところで、バタフライ型ＰＵＦ２０の個数をＮ個とし、そのうちのＴ個が乱数の出力値を出力しているとすると、エントロピー圧縮部９０が前述のようにして並べるビット列は、 NＣT 通りのパターンが得られる。従って、このエントロピー圧縮部９０から出力される２５６ビットの出力値のうち、 NＣT ビット通りに相当するビットのエントロピーを個体別情報として使用可能である。そこで、個体別情報生成部５０は、エントロピー圧縮部９０の出力から、 NＣT ビット通りに相当するビット列を抽出し、得られたビット列を、デバイス１の個体別情報として出力する。
【０１１２】
なお、個体別情報生成部５０は、上述したエントロピー圧縮部９０から出力される２５６ビットのハッシュ値をそのままデバイス１の個体別情報として出力するようにしてもよい。
【０１１３】
また、前述したように、個体別情報生成装置３００は、個体別情報の生成を行う第二の構成として、図５の個体別情報生成装置１００の構成を備えている。そこで、図１８の個体別情報生成部５０を、図５の個体別情報生成部５０と同一の機能を有するように構成する。つまり、バタフライ型ＰＵＦ２０のうち出力値が一定であると乱数判定部４０により判定されたものの当該出力を、その順序の情報に従って並べることで、デバイス１の個体別情報を生成するように構成する。このとき、バタフライ型ＰＵＦ２０のうち出力値が乱数であると乱数判定部４０により判定されたものについては、その出力（すなわち乱数の出力値）を廃棄し、個体別情報の生成には使用しないようにする。そして、この個体別情報生成部５０が、上述したようにして生成した第一の個体別情報と、エントロピー圧縮部９０の出力から前述のようにして生成した第二の個体別情報とを並べたものを、デバイス１の個体別情報として出力するようにしてもよい。
【０１１４】
バタフライ型ＰＵＦ２０の個数をＮ個とし、そのうちのＴ個が乱数の出力値を出力しているとすると、上述の第一の個体別情報は、２N-T 通りのパターンが得られる。また、このとき、上述の第二の個体別情報は、前述したように、 NＣT 通りのパターンが得られる。従って、個体別情報生成部５０が、前述のようにして第一の個体別情報と第二の個体別情報とを並べてデバイス１の個体別情報を生成する場合には、２N-T × NＣT 通りの個体別情報のパターンを得ることができるようになる。
【０１１５】
なお、図１８の個体別情報生成装置３００において、バタフライ型ＰＵＦ２０を、図１のアービタＰＵＦ１０に置き換えて構成することも可能である。図２０は、図１８の各図に図解した回路構成におけるバタフライ型ＰＵＦ２０をアービタＰＵＦ１０に置換したものである。このように、バタフライ型ＰＵＦ２０のアービタＰＵＦ１０へ置き換える際には他の回路構成の変更は不要であり、容易に行うことができる。
【０１１６】
次に図２１について説明する。図２１は、個体別情報生成装置の第四の例を図解したものである。
図２１の個体別情報生成装置４００は、電子デバイスであるデバイス１に実装されている。この個体別情報生成装置４００は、バタフライ型ＰＵＦ２０の各々の出力を乱数判定部４０にひとつずつ入力して、その各々の出力を個体別情報生成部５０に入力する構成を有している。
【０１１７】
ここで図２２について説明する。図２２には乱数判定部４０の回路構成の第二の例が図解されている。この第二の例は、図２１の個体別情報生成装置４００に使用するものである。
【０１１８】
この図２２に図解した乱数判定部４０の回路構成の第二の例を、図６の第一の例と比較すると、第一の例におけるＥｘＯＲ回路４７への２つの入力がそのまま乱数判定部４０の出力とされており、ＥｘＯＲ回路４７が削除されている点が異なっている。従って、バタフライ型ＰＵＦ２０の出力が常に０の場合には、ＮＯＴ回路４４の出力は０となり、Ｄ−ＦＦ４６の出力も０となる。また、バタフライ型ＰＵＦ２０の出力が常に１の場合には、ＮＯＴ回路４４の出力は１となり、Ｄ−ＦＦ４６の出力は１となる。更に、バタフライ型ＰＵＦ２０の出力値が乱数の場合（出力が０と１とのどちらにも定まらない場合）には、ＮＯＴ回路４４の出力は０となり、Ｄ−ＦＦ４３の出力は１となる。
【０１１９】
図２２の乱数判定部４０は、ＮＯＴ回路４４が出力するビットとＤ−ＦＦ４６が出力するビットとを並べてビット列を構成して出力する。従って、この乱数判定部４０は、２値出力であるバタフライ型ＰＵＦ２０の出力が常に０の場合にはビット列「００」を出力し、バタフライ型ＰＵＦ２０の出力が常に１の場合にはビット列「１１」を出力する。また、この乱数判定部４０は、バタフライ型ＰＵＦ２０の出力値が乱数の場合にはビット列「１０」を出力する。つまり、乱数判定部４０は、出力変換部６０としての機能も備えている。すなわち、乱数判定部４０は、バタフライ型ＰＵＦ２０のうち出力値が乱数であると判定した当該出力を第一ビット列「１０」に変換する。また、乱数判定部４０は、バタフライ型ＰＵＦ２０のうち出力値が一定であると判定したものについての当該出力も変換する。この変換では、当該出力が０である場合には第一ビット列とは異なる第二ビット列「００」に変換し、当該出力が１である場合には第一ビット列及び第二ビット列のどちらとも異なる第三ビット列「１１」に変換する。
【０１２０】
図２１の個体別情報生成部５０の動作を、図２３を用いて説明する。個体別情報生成部５０は、上述のようにしてビット列に変換されたバタフライ型ＰＵＦ２０の各々の出力を、バタフライ型ＰＵＦ２０の各々に定義されている順序の情報に従って並べて、デバイス１の個体別情報を生成する。従って、個体別情報の生成に用いたバタフライ型ＰＵＦ２０の個数がＮ個である場合には、２Ｎビットの個体別情報が生成される。
【０１２１】
図２１の個体別情報生成装置４００は、以上のようにして、バタフライ型ＰＵＦ２０の出力が、常に０である場合、常に１である場合、及び乱数の出力値である場合の各場合に応じて、３つの異なる値を割り当ててデバイス１の個体別情報を生成する。従って、個体別情報として多くのパターンを得ることができる。
【０１２２】
なお、図２１の個体別情報生成装置４００において、バタフライ型ＰＵＦ２０を、図１のアービタＰＵＦ１０に置き換えて構成することも可能である。図２４は、図２１の各図に図解した回路構成におけるバタフライ型ＰＵＦ２０をアービタＰＵＦ１０に置換したものである。このように、バタフライ型ＰＵＦ２０のアービタＰＵＦ１０へ置き換える際には他の回路構成の変更は不要であり、容易に行うことができる。
【０１２３】
また、図２１及び図２４の個体別情報生成装置４００において、図２５に図解するように、乱数判定部４０（出力変換部６０）と個体別情報生成部５０との間に、図１８の個体別情報生成装置３００におけるものと同様のエントロピー圧縮部９０を追加してもよい。このエントロピー圧縮部９０は、出力変換部６０によりビット列に変換されたバタフライ型ＰＵＦ２０（若しくはアービタＰＵＦ１０）の各々の出力を、前述の順序の情報に従って並べて得られる値に対してエントロピー圧縮を行う。なお、個体別情報生成部５０は、このように構成する場合には、エントロピー圧縮部９０によりエントロピー圧縮されて得られた値に基づいて、デバイス１の個体別情報を生成する、
次に、これまでに説明した個体別情報生成装置３０、１００、２００、３００、及び４００の各々により生成される個体別情報のパターン数についての定量的な見積もり例について説明する。
【０１２４】
なお、ここでは、見積もりの前提として、デバイス１にバタフライ型ＰＵＦ２０を１２８個実装し、そのうちのＴ個のバタフライ型ＰＵＦ２０が乱数の出力値を出力するものとし、Ｔ＝８とＴ＝３２の場合についての個体別情報のパターン数見積もりを行うこととする。
【０１２５】
図４の個体別情報生成装置３０（但し、符号誤り訂正回路を備えた場合）では、Ｔ＝８のとき、一定の出力値を出力するバタフライ型ＰＵＦ２０は１２０個存在するので、パターン数は２120 通りとなる。また、Ｔ＝３２の場合は、乱数の出力値を出力するバタフライ型ＰＵＦ２０の個数が約１０個を超えているため、ＰＵＦとして使用することができない。
【０１２６】
図５の個体別情報生成装置１００では、Ｔ＝８のとき、一定の出力値を出力するバタフライ型ＰＵＦ２０は１２０個存在し、乱数の出力値を出力するバタフライ型ＰＵＦ２０の出力は廃棄する。従って、この個体別情報生成装置１００により生成される個体別情報のパターン数は２120 通りとなる。また、Ｔ＝３２のときは、一定の出力値を出力するバタフライ型ＰＵＦ２０は９６個存在し、乱数の出力値を出力するバタフライ型ＰＵＦ２０の出力は廃棄する。従って、この個体別情報生成装置１００により生成される個体別情報のパターン数は２96通りとなる。
【０１２７】
図８の個体別情報生成装置２００では、出力値が乱数であると乱数判定部４０により判定されたバタフライ型ＰＵＦ２０の各々に定義されている順序の情報にも基づいて、デバイス１の個体別情報を生成する。従って、Ｔ＝８のときとＴ＝３２のときとのどちらの場合でも、個体別情報生成装置２００により生成される個体別情報のパターン数は２128 通りとなる。
【０１２８】
図１８の個体別情報生成装置３００により生成される個体別情報のパターン数は、前述したように、２N-T × NＣT 通りであるから、Ｔ＝８のときは２160 通りとなり、Ｔ＝３２のときは２196 通りとなる。また、図２１の個体別情報生成装置４００により生成される個体別情報のパターン数も、この個体別情報生成装置３００と同様のパターン数となる。
【０１２９】
なお、以上までに説明した個体別情報生成装置３０、１００、２００、３００、及び４００を、ハードウェアで構成する代わりに、演算処理装置と当該演算処理装置で実行されるソフトウェアとの組み合わせで構成することも可能である。
【０１３０】
次に、図５、図８、図１８、及び図２１で各々図解した個体別情報生成装置１００、２００、３００、及び４００を用いた電子機器について説明する。
まず図２６について説明する。図２６は、暗号化装置の構成例を図解したものである。
【０１３１】
この暗号化装置５００は、個体別情報生成装置１００、２００、３００、及び４００のいずれかを用いて構成されている。なお、以下の説明では、一例として、図５の個体別情報生成装置１００を暗号化装置５００が用いる場合を説明する。
【０１３２】
暗号化装置５００は、個体別情報生成装置１００、ＣＰＵ５１０、暗号演算器５２０、ＲＯＭ５３０、及びＲＡＭ５４０を備えて構成されている。なお、これらの各構成要素はバスライン５５０にいずれも接続されており、ＣＰＵ５１０による管理の下で各種のデータを相互に授受することができるように構成されている。
【０１３３】
個体別情報生成装置１００は、電子デバイスであるデバイス１に実装されている。
ＣＰＵ（Central Processing Unit ）５１０は、この暗号化装置５００の各構成要素の動作を管理する中央演算部である。
【０１３４】
暗号演算器５２０は、各種の情報の暗号化処理や、暗号化されているデータの復号処理を行う。なお、本実施形態では、暗号演算器５２０は、公開鍵コプロセッサ５２１と共通鍵コプロセッサ５２２とを備えている。ここで、公開鍵コプロセッサ５２１は、代表的な公開鍵暗号方式であるＲＳＡ暗号や楕円曲線暗号等を用いて暗号化及び復号の処理を行う。また、共通鍵コプロセッサ５２２は、代表的な共通鍵暗号方式であるＡＥＳ暗号等を用いて暗号化及び復号の処理を行う。なお、暗号演算器５２０を暗号化装置５００に備える代わりに、暗号演算器５２０により行われる暗号化及び復号の処理を、ＣＰＵ５１０に行わせるように構成してもよい。
【０１３５】
ＲＯＭ（Read Only Memory）５３０には、ＣＰＵ５１０により実行される制御プログラムや、暗号演算器５２０が暗号化や復号の処理において使用する固有のパラメータが予め格納されている不揮発性半導体メモリである。ＣＰＵ５１０は、暗号化装置５００への電力供給が開始されたときに、この制御プログラムをＲＯＭ５３０から読み出してその実行を開始することで、暗号化装置５００の各構成要素の動作管理を行えるようになる。
【０１３６】
ＲＡＭ（Random Access Memory）５４０は、ＣＰＵ５１０や暗号演算器５２０が各種の処理を行う際に、必要に応じて作業用記憶領域として使用する揮発性半導体メモリである。
【０１３７】
この暗号化装置５００において、暗号演算器５２０は、個体別情報生成装置１００が生成した個体別情報を暗号鍵として用いて、情報の暗号化処理を行う。また、この暗号化処理において暗号鍵として用いられた個体別情報は、その後に暗号演算器５２０が暗号化情報に対して行う復号処理にも使用する。
【０１３８】
なお、個体別情報生成装置１００で生成される個体別情報を暗号鍵の生成に用いる際に、生成された個体別情報のエントロピーを更に向上させるための後処理（Post Processing ）を行ってもよい。このために行われる後処理の一例として、線形フィードバックシフトレジスタ（ＬＦＳＲ）の使用を挙げることができる。ＬＦＳＲは、排他的論理和回路で帰還をかけたシフトレジスタによって構成されるカウンタであり、個体別情報のエントロピーを向上させることができる。従って、ＬＦＳＲから出力されるデータ列を用いて暗号鍵の生成を行うようにすることで、よりランダム性の高い暗号鍵を生成することが可能になる。なお、ＬＦＳＲは、専用のハードウェアを構成して用いるようにしてもよく、また、ＣＰＵ５１０を用いてソフトウェアにより実現するようにしてもよい。
【０１３９】
次に、個体別情報生成装置１００、２００、３００、若しくは４００を用いた認証システムについて説明する。この認証システムは、認証対象装置が正規のものであるか否かの認証を、認証装置が行うシステムである。
【０１４０】
まず図２７について説明する。図２７は、この認証システムに用いられる認証対象装置の構成例を図解したものである。
この認証対象装置６００は、個体別情報生成装置１００、２００、３００、及び４００のいずれかを用いて構成されている。なお、以下の説明では、一例として、図５の個体別情報生成装置１００を認証対象装置６００が用いる場合を説明する。
【０１４１】
認証対象装置６００は、個体別情報生成装置１００、ＣＰＵ６１０、通信部６２０、ＲＯＭ６３０、及びＲＡＭ６４０を備えて構成されている。なお、これらの各構成要素はバスライン６５０にいずれも接続されており、ＣＰＵ６１０による管理の下で各種のデータを相互に授受することができるように構成されている。
【０１４２】
個体別情報生成装置１００は、電子デバイスであるデバイス１に実装されており、個体別情報を、この認証対象装置６００のものとして生成する。
ＣＰＵ６１０は、この認証対象装置６００の各構成要素の動作を管理する中央演算部である。
【０１４３】
通信部６２０は、各種のデータの送受信を行って、後述する認証装置との間で各種の情報の授受を行う。
ＲＯＭ６３０には、ＣＰＵ６１０により実行される制御プログラムが予め格納されている不揮発性半導体メモリである。ＣＰＵ６１０は、認証対象装置６００への電力供給が開始されたときに、この制御プログラムをＲＯＭ６３０から読み出してその実行を開始することで、認証対象装置６００の各構成要素の動作管理を行えるようになる。
【０１４４】
ＲＡＭ６４０は、ＣＰＵ６１０が各種の処理を行う際に、必要に応じて作業用記憶領域として使用する揮発性半導体メモリである。
次に図２８について説明する。図２８は、前述の認証システムに用いられる認証装置の構成例を図解したものである。
【０１４５】
この認証装置７００は、ＣＰＵ７１０、通信部７２０、認証処理部７３０、ＲＯＭ７４０、及びＲＡＭ７５０を備えて構成されている。なお、これらの各構成要素はバスライン７６０にいずれも接続されており、ＣＰＵ７１０による管理の下で各種のデータを相互に授受することができるように構成されている。
【０１４６】
ＣＰＵ７１０は、この認証装置７００の各構成要素の動作を管理する中央演算部である。
通信部７２０は、図２７の認証対象装置６００との間で通信を行って、各種の情報の授受を行う。
【０１４７】
認証処理部７３０は、認証対象装置６００に対する認証処理を、後述するようにして行う。なお、認証処理部７３０を認証装置７００に備える代わりに、認証処理部７３０により行われる認証処理を、ＣＰＵ７１０に行わせることに構成してもよい。
【０１４８】
ＲＯＭ７４０には、ＣＰＵ７１０により実行される制御プログラムや、認証処理部７３０が認証処理に用いる正規の認証対象装置６００についての個体別情報が予め格納されている不揮発性半導体メモリである。ＣＰＵ７１０は、認証装置７００への電力供給が開始されたときに、この制御プログラムをＲＯＭ７４０から読み出してその実行を開始することで、認証装置７００の各構成要素の動作管理を行えるようになる。
【０１４９】
ＲＡＭ７５０は、ＣＰＵ７１０や認証処理部７３０が各種の処理を行う際に、必要に応じて作業用記憶領域として使用する揮発性半導体メモリである。
次に、前述した認証システムによる認証動作について説明する。
【０１５０】
まず、認証動作に先立ち、認証装置７００のＲＯＭ７４０には、正規の認証対象装置６００が備えている個体別情報生成装置１００が有する個体別情報生成部５０が生成する個体別情報を、予め記録させておく。
【０１５１】
認証装置７００の認証処理部７３０が認証処理を開始すると、まず、通信部７２０に指示を与えて、個体別情報の送付要求を、認証対象装置６００へ宛てて送信させる処理が行われる。
【０１５２】
認証対象装置６００のＣＰＵ６１０は、この送付要求を通信部６２０が受信したことを検出すると、個体別情報生成装置１００に所定の指示を与えて個体別情報を生成させる処理が行われる。次に、ＣＰＵ６１０は、通信部６２０に指示を与えて、生成された個体別情報を認証装置７００へ宛てて送信させる処理が行われる。
【０１５３】
認証装置７００の認証処理部７３０は、認証対象装置６００から送信された個体別情報を通信部７２０が受信すると、この個体別情報が、ＲＯＭ７４０に予め記録されていた正規の認証対象装置６００のものと一致するか否かを判定する処理を行う。ここで、両者の個体別情報が一致するとの判定結果が得られたときには、個体別情報の送信元の認証対象装置６００が正規のものであるとの認証結果を得る。
【０１５４】
なお、上述の認証動作において、ＲＯＭ７４０に、正規の認証対象装置６００が備えている個体別情報生成装置１００が有する個体別情報生成部５０が生成する個体別情報として、前述した「チャレンジ」と「レスポンス」との関係を複数組記録しておいてもよい。
【０１５５】
この場合には、認証装置７００の認証処理部７３０が、個体別情報の送付要求に、ＲＯＭ７４０に「レスポンス」との関係が記録されている各「チャレンジ」の情報を添付して通信部７２０に送信させるようにする。一方、認証対象装置６００のＣＰＵ６１０は、この送付要求に添付されていた各「チャレンジ」の情報を個体別情報生成装置１００に与え、各「チャレンジ」の情報についての「レスポンス」の情報を個体別情報生成部５０により生成させる。そして、ＣＰＵ６１０は、生成された各「レスポンス」の情報を認証装置７００へ宛てて通信部６２０に送信させる処理を行うようにする。このとき、認証装置７００の認証処理部７３０は、通信部７２０で受信した各「レスポンス」の情報が、ＲＯＭ７４０に記録されていた正規の認証対象装置６００におけるものと全て一致するか否かを判定する処理を行う。ここで、両者の「レスポンス」の情報が全て一致するとの判定結果が得られたときには、「レスポンス」の送信元の認証対象装置６００が正規のものであるとの認証結果を得る。前述の認証システムにおける認証動作を、以上のようにして行ってもよい。
【符号の説明】
【０１５６】
１  デバイス
１０  アービタＰＵＦ
１１、１１−０ａ、１１−０ｂ、１１−１ａ、１１−１ｂ、１１−２ａ、
１１−２ｂ、１１−（ｎ−１）ａ、１１−（ｎ−１）ｂ１  セレクタ
１２、４３、４６、７２、７５、８２、８５  Ｄ型フリップフロップ回路
２０  バタフライ型ＰＵＦ
２１、２２  ＮＡＮＤ回路
３０、１００、２００、３００、４００  個体別情報生成装置
４０  乱数判定部
４１、７４、８１、８３  ＡＮＤ回路
４２、４４、７３、７６、８４、８６  ＮＯＴ回路
４５、７１  ＯＲ回路
４７  ＥｘＯＲ回路
５０  個体別情報生成部
６０  出力変換部
７０  第一変換回路
８０  第二変換回路
９０  エントロピー圧縮部
５００  暗号化装置
５１０、６１０、７１０  ＣＰＵ
５２０  暗号演算器
５２１  公開鍵コプロセッサ
５２２  共通鍵コプロセッサ
５３０、６３０、７４０  ＲＯＭ
５４０、６４０、７５０  ＲＡＭ
５５０、６５０、７６０  バスライン
６００  認証対象装置
６２０、７２０  通信部
７００  認証装置
７３０  認証処理部
【図１】
2012001796.tif 000003
【図２Ａ】
2012001796.tif 000004
【図２Ｂ】
2012001796.tif 000005
【図３】
2012001796.tif 000006
【図４】
2012001796.tif 000007
【図５】
2012001796.tif 000008
【図６】
2012001796.tif 000009
【図７】
2012001796.tif 000010
【図８】
2012001796.tif 000011
【図９】
2012001796.tif 000012
【図１０】
2012001796.tif 000013
【図１１Ａ】
2012001796.tif 000014
【図１１Ｂ】
2012001796.tif 000015
【図１２】
2012001796.tif 000016
【図１３Ａ】
2012001796.tif 000017
【図１３Ｂ】
2012001796.tif 000018
【図１４】
2012001796.tif 000019
【図１５】
2012001796.tif 000020
【図１６】
2012001796.tif 000021
【図１７】
2012001796.tif 000022
【図１８】
2012001796.tif 000023
【図１９】
2012001796.tif 000024
【図２０】
2012001796.tif 000025
【図２１】
2012001796.tif 000026
【図２２】
2012001796.tif 000027
【図２３】
2012001796.tif 000028
【図２４】
2012001796.tif 000029
【図２５】
2012001796.tif 000030
【図２６】
2012001796.tif 000031
【図２７】
2012001796.tif 000032
【図２８】
2012001796.tif 000033
【手続補正書】
【提出日】平成24年11月1日(2012.11.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
個体別情報を生成する装置であって、
同一の回路構成からなる複数のデジタル回路であって、各々のデジタル回路は特定の入力に対しての出力がデジタル回路間では一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力し、且つ、各々のデジタル回路の順序が予め定義されている複数のデジタル回路と、
出力値が乱数であるか一定であるかを、該複数のデジタル回路の各々について判定する乱数判定部と、
該複数のデジタル回路のうち出力値が一定であると該乱数判定部により判定されたデジタル回路に定義されている順序の情報と出力値とに基づいて、該個体別情報を生成する個体別情報生成部と、
を有することを特徴とする個体別情報生成装置。
【請求項２】
該個体別情報生成部は、更に、該複数のデジタル回路のうち出力値が乱数であると該乱数判定部により判定されたデジタル回路の各々に定義されている順序の情報に基づいて、該個体別情報を生成することを特徴とする請求項１に記載の個体別情報生成装置。
【請求項３】
該複数のデジタル回路のうち出力値が乱数であると該乱数判定部により判定されたデジタル回路の該出力を一定の所定値に変換する出力変換部を更に有し、
該個体別情報生成部は、該複数のデジタル回路のうち出力値が一定であると該乱数判定部により判定されたデジタル回路の該出力値と、該複数のデジタル回路のうち該出力変換部が出力を変換したデジタル回路の該変換後の所定値とを、該複数のデジタル回路の各々に定義されている順序の情報に従って並べて、該個体別情報を生成する、
ことを特徴とする請求項２に記載の個体別情報生成装置。
【請求項４】
該出力変換部は、出力値が乱数であると該乱数判定部により判定されたデジタル回路の該出力値を、該デジタル回路に定義されている順序を表す番号に応じた値に変換することを特徴とする請求項３に記載の個体別情報生成装置。
【請求項５】
該複数のデジタル回路の出力値は２値であり、
該乱数判定部は、該複数のデジタル回路のうち出力値が一定であると判定したデジタル回路に２値情報の一方の値を割り当てると共に、該複数のデジタル回路のうち出力が乱数であると判定したデジタル回路に該２値情報の他方の値を割り当て、
該個体別情報生成部は、該複数のデジタル回路の各々に対し該乱数判定部が割り当てた値を該デジタル回路の順序の情報に従って並べて得られるビット列に基づいて該個体別情報を生成する、
ことを特徴とする請求項２に記載の個体別情報生成装置。
【請求項６】
該個体別情報生成部は、該複数のデジタル回路の各々に対し該乱数判定部が割り当てた値を該デジタル回路の順序の情報に従って並べて得られるビット列に対してエントロピー圧縮を行い、該エントロピー圧縮によって得られる値に基づいて、該個体別情報を生成することを特徴とする請求項５に記載の個体別情報生成装置。
【請求項７】
該複数のデジタル回路の出力値は２値であり、
該複数のデジタル回路のうち出力値が乱数であると該乱数判定部により判定されたデジタル回路の該出力値を第一ビット列に変換すると共に、該複数のデジタル回路のうち出力値が一定であると該乱数判定部により判定されたデジタル回路についての該出力値を、該出力値が２値のうちの一方の値である場合には該第一ビット列とは異なる第二ビット列に変換し、該出力値が該２値のうちの他方の値である場合には該第一ビット列及び該第二ビット列のどちらとも異なる第三ビット列に変換する出力変換部を更に有し、
該個体別情報生成部は、該出力変換部によりビット列に変換された該複数のデジタル回路の各々の出力値を、該複数のデジタル回路の各々に定義されている順序の情報に従って並べて得られる値に基づいて、該個体別情報を生成する、
ことを特徴とする請求項２に記載の個体別情報生成装置。
【請求項８】
請求項１から７のうちのいずれか一項に記載の個体別情報生成装置と、
該個体別情報生成装置が生成した個体別情報を暗号鍵として用いて、情報の暗号化処理を行う暗号化処理部と、
を有することを特徴とする暗号化装置。
【請求項９】
個体別情報を生成する方法であって、
同一の回路構成からなる複数のデジタル回路であって、各々のデジタル回路は特定の入力に対しての出力がデジタル回路間では一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力し、且つ、各々のデジタル回路の順序が予め定義されている該複数のデジタル回路から出力される出力値が乱数であるか一定であるかを、該複数のデジタル回路の各々について判定し、
該複数のデジタル回路のうち出力値が一定であると判定されたデジタル回路に定義されている順序の情報と出力値とに基づいて、該個体別情報を生成する、
ことを特徴とする個体別情報生成方法。
【請求項１０】
認証対象装置が正規のものであるか否かの認証を行う認証方法であって、
正規の認証対象装置は、該認証対象装置の個体別情報を生成する個体別情報生成装置を備えており、
該個体別情報生成装置は、
同一の回路構成からなる複数のデジタル回路であって、各々のデジタル回路は特定の入力に対しての出力がデジタル回路間では一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力し、且つ、各々のデジタル回路の順序が予め定義されている複数のデジタル回路と、
出力値が乱数であるか一定であるかを、該複数のデジタル回路の各々について判定する乱数判定部と、
該複数のデジタル回路のうち出力値が一定であると該乱数判定部により判定されたデジタル回路に定義されている順序の情報出力値とに基づいて、該個体別情報を生成する個体別情報生成部と、
を有しており、
該認証方法は、
該認証対象装置から受信した個体別情報が、予め記録されている情報である、該正規の認証対象装置が備えている個体別情報生成装置が有する個体別情報生成部が生成する個体別情報と一致するか否かの判定を行い、
個体別情報が一致するとの判定結果が得られたときに、該認証対象装置が正規のものであるとの認証結果を得る、
ことを特徴とする認証方法。
【国際調査報告】
2012001796.tif 000034
2012001796.tif 000035
2012001796.tif 000036
2012001796.tif 000037