"組み合わせ回路の出力信号に発生するグリッチを出力するグリッチ発生回路と、前記グリッチの形状を情報ビットに変換するビット変換回路とを有するビット生成部を備えることにより、半導体デバイス内で前記半導体デバイスの固有情報を生成するデバイス固有情報生成装置であって、前記グリッチ発生回路は、複数の組み合わせ回路が搭載されることで、複数の異なるグリッチを出力するグリッチ発生回路トップとして構成され、前記ビット生成部は、外部から選択信号を受信することで、前記グリッチ発生回路から出力される前記複数の異なるグリッチの中から1つのグリッチを選択して前記ビット変換回路に対して出力するセレクタをさらに有し、前記複数の異なるグリッチの中から1つを順次選択するように前記選択信号を出力することで、前記複数の異なるグリッチのそれぞれに対応して前記ビット変換回路で変換されたそれぞれのビット情報を取得し、前記それぞれのビット情報に基づいて、所望の性能を満たしているグリッチを特定し、特定したグリッチを前記半導体デバイスの前記固有情報として出力するように、前記選択信号を特定する性能評価制御部をさらに備えるデバイス固有情報生成装置。請求項1に記載のデバイス固有情報生成装置において、前記グリッチ発生回路を構成する前記グリッチ発生回路トップは、同一の論理回路を直列に接続することで多段構成され、各段の出力信号を前記複数の異なるグリッチとして出力するデバイス固有情報生成装置。請求項1に記載のデバイス固有情報生成装置において、前記グリッチ発生回路を構成する前記グリッチ発生回路トップは、回路構成が異なる複数のグリッジ発生回路で構成され、前記複数のグリッジ発生回路のそれぞれの出力信号を前記複数の異なるグリッチとして出力するデバイス固有情報生成装置。請求項1ないし3のいずれか1項に記載のデバイス固有情報生成装置において、前記性能評価制御部は、前記複数の異なるグリッチの中から1つを順次選択するように前記選択信号を出力することで、前記複数の異なるグリッチのそれぞれに対応して前記ビット変換回路で変換されたそれぞれのビット情報を取得する操作を繰り返し実行し、繰り返し回数に対する前記ビット情報の一致度から、前記複数の異なるグリッチのそれぞれのエラーレートの評価を行うエレーレート評価回路を含むデバイス固有情報生成装置。請求項1ないし4のいずれか1項に記載のデバイス固有情報生成装置において、前記グリッチ発生回路は、1つの前記半導体デバイス上に、前記グリッチ発生回路トップを複数個搭載して構成され、前記ビット生成部は、外部から第2の選択信号を受信することで、複数のグリッチ発生回路トップのそれぞれの出力の中から1つを選択して前記ビット変換回路に対して出力する第2のセレクタをさらに有し、前記性能評価制御部は、前記複数のグリッチ発生回路トップのそれぞれの出力の中から1つを順次選択するように前記第2の選択信号を出力するとともに、それぞれのグリッチ発生回路トップに対するnビットnは2以上の整数の入力信号を順次変化させることで、前記複数のグリッチ発生回路トップのそれぞれに対応して前記ビット変換回路で変換されたそれぞれのビット情報を2n-1ビットのビット列として取得する操作を実行し、ビット列に含まれるビット値が1のビット数をカウントすることで前記複数のグリッチ発生回路トップのそれぞれの情報量評価を行う情報量評価回路を含むデバイス固有情報生成装置。請求項4または5に記載のデバイス固有情報生成装置において、前記性能評価制御部は、前記ビット生成部内の前記ビット変換回路を介して取り込んだビット列に含まれる誤りを訂正するための誤り訂正回路と、前記誤り訂正回路による誤り訂正後のビット列のハッシュ値を生成するOWHF回路と、前記OWHF回路で生成された前記ハッシュ値を、それ以前に生成したハッシュ値と比較する比較判定回路と、前記ビット列の性能として、前記エラーレート評価あるいは前記情報量評価を行う性能評価回路と、前記比較判定回路による判定結果、および性能評価回路による評価結果に基づいて、前記ビット生成部から出力される前記情報ビットが、所望の性能を満たしているグリッチから生成されるように制御する制御回路とを有するデバイス固有情報生成装置。請求項6に記載のデバイス固有情報生成装置において、前記性能評価制御部は、前記誤り訂正回路による誤り訂正後のビット列をランダム化してハッシュ値を求めることで、暗号鍵を生成するHF回路をさらに有するデバイス固有情報生成装置。組み合わせ回路の出力信号に発生するグリッチを出力するグリッチ発生回路と、前記グリッチの形状を情報ビットに変換するビット変換回路とを有するデバイス固有情報生成装置に適用され、半導体デバイス内で前記半導体デバイスの固有情報を生成するためのデバイス固有情報生成方法であって、前記グリッチ発生回路に搭載された複数の組み合わせ回路を介して出力される前記複数の異なるグリッチの中から1つのグリッチを選択して前記ビット変換回路に対して出力させる選択信号を出力するステップと、前記複数の異なるグリッチの中から1つを順次選択するように前記選択信号を出力することで、前記複数の異なるグリッチのそれぞれに対応して前記ビット変換回路で変換されたそれぞれのビット情報を取得し、前記それぞれのビット情報に基づいて、所望の性能を満たしているグリッチを特定するステップと、特定したグリッチを前記半導体デバイスの前記固有情報として出力するように、前記選択信号を特定するステップとを備えるデバイス固有情報生成方法。しかしながら、特許文献1に示されるグリッチPUF1301の構成には、次に述べる課題があった。グリッチPUF1301をFPGAやASIC等のデバイスに実装した際の性能は、実際にデバイスを製造するまで不明である。このため、実際にデバイスを製造した際に所望の性能を満たしていない可能性がある。ここで、性能とは、例えば、情報量やエラーレートである。また、デバイスの製造当初は、所望の性能を満たしていても、デバイスの経年劣化によって所望の性能を満たさなくなる可能性がある。そこで、デバイスの経年劣化によって情報量が減る理由を次に説明する。グリッチは、グリッチ発生回路1330を構成するゲートの遅延特性に基づいて発生する。この遅延特性は、デバイスの経年劣化によって変化するので、グリッチの出方もデバイスの経年劣化によって変化することとなる。図14は、従来のグリッチPEFにおけるグリッチ発生回路の経年変化の状態を示す説明図である。図14に示すように、グリッチ発生回路1430が経年変化すると、グリッチが出にくくなる、あるいはグリッチが出なくなるといった状況が発生する。その結果、生成される情報量が減ることとなる。なぜなら、例えば、上述のようにグリッチの山の数が偶数か奇数かによってビットを決定する方法においては、グリッチがそもそも出ない山の個数が0と、ビットが必ず0になってしまうためである。所望の情報量やエラーレートを満たさない結果として、所望のビット長の識別子や暗号鍵の生成が行えず、製品機器が機能しない不具合が発生することとなる。本発明は、前記のような課題を解決するためになされたものであり、デバイス製造時の影響、あるいはデバイスの経年劣化の影響を受けずに、所望の性能を満たすグリッチを出力することのできるデバイス固有情報生成装置およびデバイス固有情報生成方法を得ることを目的とする。本発明に係るデバイス固有情報生成装置は、組み合わせ回路の出力信号に発生するグリッチを出力するグリッチ発生回路と、グリッチの形状を情報ビットに変換するビット変換回路とを有するビット生成部を備えることにより、半導体デバイス内で半導体デバイスの固有情報を生成するデバイス固有情報生成装置であって、グリッチ発生回路は、複数の組み合わせ回路が搭載されることで、複数の異なるグリッチを出力するグリッチ発生回路トップとして構成され、ビット生成部は、外部から選択信号を受信することで、グリッチ発生回路から出力される複数の異なるグリッチの中から1つのグリッチを選択してビット変換回路に対して出力するセレクタをさらに有し、複数の異なるグリッチの中から1つを順次選択するように選択信号を出力することで、複数の異なるグリッチのそれぞれに対応してビット変換回路で変換されたそれぞれのビット情報を取得し、それぞれのビット情報に基づいて、所望の性能を満たしているグリッチを特定し、特定したグリッチを半導体デバイスの固有情報として出力するように、選択信号を特定する性能評価制御部をさらに備えるものである。また、本発明に係るデバイス固有情報生成方法は、組み合わせ回路の出力信号に発生するグリッチを出力するグリッチ発生回路と、グリッチの形状を情報ビットに変換するビット変換回路とを有するデバイス固有情報生成装置に適用され、半導体デバイス内で半導体デバイスの固有情報を生成するためのデバイス固有情報生成方法であって、グリッチ発生回路に搭載された複数の組み合わせ回路を介して出力される複数の異なるグリッチの中から1つのグリッチを選択してビット変換回路に対して出力させる選択信号を出力するステップと、複数の異なるグリッチの中から1つを順次選択するように選択信号を出力することで、複数の異なるグリッチのそれぞれに対応してビット変換回路で変換されたそれぞれのビット情報を取得し、それぞれのビット情報に基づいて、所望の性能を満たしているグリッチを特定するステップと、特定したグリッチを半導体デバイスの固有情報として出力するように、選択信号を特定するステップとを備えるものである。本発明に係るデバイス固有情報生成装置およびデバイス固有情報生成方法によれば、グリッチ発生回路を複数搭載し、その中から所望の性能に近いグリッチ発生回路を選択可能とすることにより、デバイス製造時の影響、あるいはデバイスの経年劣化の影響を受けずに、所望の性能を満たすグリッチを出力することのできるデバイス固有情報生成装置およびデバイス固有情報生成方法を得ることができる。以下、本発明のデバイス固有情報生成装置およびデバイス固有情報生成方法の好適な実施の形態につき図面を用いて説明する。実施の形態1.本発明の基本アイデアは、グリッチ発生回路として、特性の異なるものを複数個搭載することである。特性として、グリッチの発生個数に着目し、あまりグリッチが発生しないグリッチ発生回路から、グリッチが大量に発生するグリッチ発生回路までを、多数搭載する。その目的から、特に、単純で小さな論理回路を直列に接続していくことで、段階的に論理の複雑さを増し、グリッチの発生を増加させていく構成を基本とする。図1は、本発明の実施の形態1におけるデバイス固有情報生成装置内のグリッチ発生回路の基本アイデアを説明するための図である。図1に示したグリッチ発生回路130は、同一の論理回路Aを4個論理回路1311~1314に相当、直列に接続して構成されている。ここで、論理回路Aは、線形回路であってもよいし、非線形回路であってもよい。グリッチ発生回路130への入力信号を変化させると、各論理回路1311~1314の出力にグリッチが発生する。これらの出力は、同じ論理回路Aを直列に接続した1段目2段目3段目4段目の出力であり、段数が進むに従って、グリッチがより多く発生することとなる。これにより、たとえば、図1の例では、1段目の論理回路1311の出力は、グリッチが少なく情報量が少ない。一方、3段目の論理回路1313および4段目の論理回路1314の出力は、グリッチが多く不安定である。これに対して、2段目の論理回路1312の出力は、グリッチと安定性のバランスがよい、といった状況が起こる。ここで、安定性について、図2を用いて説明する。図2は、本発明の実施の形態1におけるグリッチの安定性に関する説明図であり、具体的には、同じ入力信号に対して、動作毎に異なるパターンのグリッチが発生し、毎回生成されるビットが異なる状況を表している。このような状態を不安定と呼ぶ。不安定な状態では、動作毎のビットの再現性がないため、生成されたビットを情報として使うことができない。つまり、PUFとして使用可能な情報量が減ることを意味する。先の図1において、グリッチが多く発生3段目の論理回路1313の出力、あるいは4段目の論理回路1314の出力に相当した方が、情報量は高くなるが、同時に、グリッチが多く発生する状態は、不安定である。従って、論理回路Aの段数を増やしてグリッチを増やすと、初めはPUFとして使用可能な情報量が増加するが、どこかの時点で減少に転じる。それが2段目と3段目の境界である。このことから、グリッチの数と安定性の両立を考慮すると、図1に示した例では、2段目の論理回路1312の出力が、PUFとしての利用に最適と言える。また、3段目の論理回路1313の出力は、経年劣化後にPUFとして最適となる可能性がある。つまり、現時点ではグリッチが多くて不安定であるが、経年劣化によってグリッチが出にくくなった際には、この3段目の論理回路1313の出力が、PUFとして最適になり得る。さらに、4段目の論理回路1314の出力は、PUFとしてではなく、乱数発生器としての利用が可能である。すなわち、4段目の論理回路1314の出力は、グリッチが非常に多くて不安定であるため、図2に示したように、毎回の出力が安定しない。従って、この4段目の論理回路1314の出力は、PUFとしては使えないが、逆に、乱数として使えるようになるのである。以上の原理を踏まえ、本実施の形態1におけるデバイス固有情報生成装置の内部構成について、いくつかの具体例を図示しながら、次に説明する。図3は、本発明の実施の形態1におけるデバイス固有情報生成装置の第1の構成例を示す図である。図3に示したデバイス固有情報生成装置に相当するグリッチPUF301は、ビット生成部310と性能評価制御部350とを備えて構成されている。ここで、ビット生成部310は、ビット生成を行う機能を有し、データレジスタ群320,グリッチ発生回路トップ330、およびビット変換回路340を備えている。一方、性能評価制御部350は、ビット生成部310で生成されるビットの性能評価を行うとともに、所望の性能に近いグリッチが発生するように、ビット制御部310を制御する機能を有している。次に、ビット生成部310の内部構成について、詳細に説明する。ビット生成部310内のデータレジスタ群320は、グリッチ発生回路トップ330に入力されるデータを保持するレジスタ群である。そして、グリッチ発生回路トップ330は、同じ論理回路AをN段直列に接続してなる論理回路3311~331N、およびセレクタ332を備えている。ここで、論理回路3311~331Nの動作は、先の図1における4段の論理回路を有するグリッチ発生回路130と同様である。また、セレクタ320は、性能評価制御部350から出力される選択信号に基づいて、論理回路3311~331Nのいずれの段の出力を選択してビット変換回路340に与えるかを選択切換する。このような構成を備えることで、グリッチ発生回路トップ330は、グリッチの発生数を段階的に増加させる構成を備えるとともに、性能評価制御部350から出力される選択信号により、N個のグリッチ信号の中から、いずれか1つを選択することを可能としている。なお、論理回路Aに関しては、先の図1で説明したように、線形回路であっても、非線形回路であってもよい。設計方針の一例としては、実装サイズを抑える目的のために、単独では単純で小さな論理回路を用い、その段数Nを増やすことで、論理の複雑度を増していく構成が挙げられる。次に、図4は、本発明の実施の形態1におけるデバイス固有情報生成装置の第2の構成例を示す図である。図4に示したデバイス固有情報生成装置に相当するグリッチPUF401は、ビット生成部410と性能評価制御部450とを備えて構成されている。また、ビット生成部410は、データレジスタ群420,グリッチ発生回路トップ430、およびビット変換回路440を備えている。図4に示した第2の構成例と、先の図3で示した第1の構成例とを比較すると、基本的な構成は同じであるが、グリッチ発生回路トップの内部構成が異なっている。そこで、この相違点を中心に、以下に説明する。先の図3で示した第1の構成例におけるグリッチ発生回路トップ330は、論理回路AをN段接続し、その各段からの出力を選択することで、合計N個のグリッチ信号を生成していた。一方、図4に示した第2の構成例におけるグリッチ発生回路トップ430は、全く別々のN個のグリッチ発生回路4311~431N、およびセレクタ432を備えている。すなわち、グリッチ発生回路トップ430は、全く別々のグリッチ発生回路をN個実装することで、N個のグリッチ信号を生成している。この図4の構成におけるグリッチ発生回路4311~431Nの例としては、暗号アルゴリズムのS-boxが挙げられる。DES、AES、MISTY、Camelliaといった、様々な暗号アルゴリズムのS-boxを利用することで、異なるグリッチ発生回路を実装することが可能である。次に、図3における性能評価制御部350、および図4における性能評価制御部450について、説明する。両者の機能は同一であり、ここでは、図3を用いて、性能評価制御部350の機能について、具体的に説明する。性能評価制御部350は、セレクタ332を制御し、N個のグリッチ信号を1個ずつ選択する。これにより、ビット変換回路340は、各段に対応するグリッチ信号をビットに変換することで、各段に対応するビットを生成できる。ここで、性能評価制御部350は、ある段に対するビット生成を繰り返し例えば100回行わせるようにセレクタ332を制御し、その際に、ビット変換回路340の出力として、初回に得られた値と、2回目以降に得られた値とを比較することで、エラーレートの評価を行うことができる。図5は、本発明の実施の形態1における性能評価制御部に含まれるエラーレート評価回路の構成例を示す図である。エラーレート評価回路560は、初回のビット値を保持するレジスタ561、初回のビット値と2回目以降のビット値とを比較する比較器562、およびその比較結果が不一致だった回数を数えて保持するレジスタ563を備えている。比較器562は、比較結果が不一致であった場合には、レジスタ563のイネーブル信号を生成する。そして、レジスタ563は、イネーブル信号に応じてレジスタの値を1増やすことで、不一致回数を数えることができる。例えば、100回の比較を行った後のレジスタ563の値が10であれば、エラーレート評価回路560は、エラーレートが10であると判定する。このように、エラーレートは、同一のデバイス内でのビット生成を、例えば100回繰り返し、その100個のビット値を用いて評価することができる。一方、情報量を評価するためには、複数の、例えば100個の異なるデバイスに対して生成された100個のビット値が必要である。したがって、同一のデバイス内に、疑似的に複数デバイスが存在する状況を作る必要がある。図6は、本発明の実施の形態1における情報量を評価するためのデバイス固有情報生成装置の構成例、および性能評価制御部に含まれる情報量評価回路の構成例を示す図である。図6aに示したデバイス固有情報生成装置に相当するグリッチPUF601は、データレジスタ群620、M個のグリッチ発生回路トップ6301~630M、セレクタ632、ビット変換回路640、および性能評価制御部650を備えて構成されている。ここで、データレジスタ群620、セレクタ632、ビット変換回路640、および性能評価制御部650のそれぞれは、先の図3におけるデータレジスタ群320、セレクタ332、ビット変換回路340、および性能評価制御部350と同一の機能を有するものである。また、M個のグリッチ発生回路トップ6301~630Mは、先の図3におけるグリッチ発生回路トップ330、あるいは先の図4におけるグリッチ発生回路トップ430に相当するグリッチ発生回路トップすなわち、N個のグリッチ信号を生成するために、グリッチ発生回路をN個有するものを、同一のレイアウトでM個、デバイス上に実装したものである。そして、性能評価制御部650は、セレクタ632を制御することで、M個のグリッチ発生回路トップ6301~630Mの中のいずれか1つの出力を選択可能としている。これにより、グリッチPUF601は、疑似的にM個のデバイスに対するグリッチPUFを構成し、疑似的にM個のデバイスに対するビットを生成している。さらに、グリッチPUF601は、擬似的に生成したM個のビット値に対する統計処理を性能評価制御部650で行うことにより、情報量を評価することが可能となる。あるビットが持つ情報量は、例えば、シャノンのエントロピーによって測られる。シャノンのエントロピーは、ビットが0となる確率がp1となる確率が1-pのとき、-p×log2p-1-p×log21-p1と定義される。なお、log2は、2を底とする対数関数である。対数関数を回路として実現すると、実装サイズが大きくなるため、pの値のみから情報量に関する評価を行うことが望ましい。ここで、上式1は、p=0.5で最大値を取る左右対称の凸関数であるため、情報量のおおよその大小は、pの値から判定できる。そこで、図6bを用いて、性能評価制御部650に含まれる情報量評価回路670の機能について説明する。図6bに示した情報量評価回路670は、比較器671、および2つのレジスタ672、673を備えて構成されている。比較器671は、ビット変換回路640で生成されたビット値が0であるか否かを判定し、その結果からレジスタ672およびレジスタ673のイネーブル信号を生成する。2つのレジスタ672、673のイネーブル信号は、互いの反転となっており、レジスタ672は、ビット値が0であるときに値が増加するカウンタとして機能し、レジスタ673は、ビット値が1であるときに値が増加するカウンタとして機能する。上述した、グリッチPUF601で生成されるM個のビット値に対し、性能評価制御部650として、この情報量評価回路670を用いることで、M個中の0と1の個数を数えることが可能となり、その結果、情報量の評価が可能となる。この回路は、また、米国のNISTSP800-22が定める乱数検定の、ビットの0/1等頻度性評価の目的にも使用可能である。次に、ここまでで説明したビット生成部、および、性能評価制御部を、CPUやメモリも含むシステムとして構成する例について説明する。図7は、本発明の実施の形態1におけるデバイス固有情報生成装置を含むシステム構成例を示す図である。図7に示したデバイス固有情報生成装置に相当するグリッチPUF701は、ビット生成部710と性能評価制御部750とを備えて構成されている。ビット生成部710は、データレジスタ群720、M個のグリッチ発生回路トップ7301~730M、セレクタ732、およびビット変換回路740を備えており、先の図6aと同様に、同一のレイアウトでM個、デバイス上に実装されたグリッチ発生回路トップ7301~730Mを有している。そして、ビット生成部710で生成されたビット列は、性能評価制御部750に入力される。性能評価制御部750は、誤り訂正回路751、OWHF回路752、比較判定回路753、性能評価回路754、および制御回路755を備えている。誤り訂正回路751は、性能評価制御部750に入力されたビット列が含む誤りを訂正するための回路である。OWHF回路752は、誤り訂正後のビット列のハッシュ値を取る回路である。比較判定回路753は、生成したハッシュ値を以前生成したハッシュ値と比較する回路である。性能評価回路754は、性能評価制御部750に入力されたビット列の性能を評価する回路である。さらに、制御回路755は、比較判定回路753による判定結果、および性能評価回路754による評価結果に基づいて、ビット生成部710を制御する回路である。さらに、図7に示すグリッチPUF701は、システムバス780を介して、CPU781、メモリ782、I/O783と接続されている。次に、フローチャートを用いて、図7に示した構成を備えるグリッチPUF701の動作について、詳細に説明する。図8は、本発明の実施の形態1における図7に示すグリッチPUF701の初期設定のフローチャートである。また、図9は、本発明の実施の形態1における図7に示すグリッチPUF701の再設定のフローチャートである。まず始めに、図8を用いて、初期設定の一連処理について、それぞれのステップ毎に説明する。ステップS801:制御回路755が、ビットb1、1、1~ビットbN、M、2n-1を得るステップである。ここで、bi、j、kの1つ目の添え字iは、グリッチ発生回路の番号であるi=1、...、N。すなわち、先の図3においては、論理回路3311~331Nのいずれかを選択する番号に相当し、先の図4においては、グリッチ発生回路4311~431Nのいずれかを選択する番号に相当する。また、2つ目の添え字jは、同一レイアウトでM個実装したグリッチ発生回路トップ7301~730Mのいずれかを選択する番号に相当するj=1、...、M。さらに、3つ目の添え字kは、グリッチ発生回路への入力変化パターンを表す番号であり、入力信号をnビットとすると、2n-1ビットのビット列に相当する。ステップS802:性能評価回路754が、ビットb1、1、1、...、bN、M、2n-1の性能を評価するステップである。性能評価回路754は、その評価結果から、所望の性能を満たす添え字ii=1、...、Nを選び、添え字iをメモリ782に保持する。なお、添え字jに関しては、情報量を評価するためにM個のデバイスを疑似的に実装したものを表す添え字であるので、評価後、実際に使用するのは、この中の1つでよい。以降、j=1を使用するとして説明する。ステップS803:誤り訂正回路751が、j=1とした場合の、所望の性能を満たす添え字iに対応するビット列wi=bi、1、1、...、bi、1、2n-1に対し、誤り訂正に必要なシンドロームsを生成し、メモリ782に保持するステップである。ステップS804:OWHF回路752が、ビット列wiのハッシュ値hを計算し、メモリ782に保持するステップである。以上が、初期設定のフローチャートである。このような一連処理により、性能評価制御部750は、所望の性能を満たす添え字i、ビット列wiの誤り訂正に必要なシンドロームs、およびビット列wiのハッシュ値hを、初期設定することができる。次に、図9を用いて、再設定の一連処理について、それぞれのステップ毎に説明する。ステップS901:制御回路755が、カウンタcntの値を0で初期化するステップである。このカウンタcntは、ステップS903の誤り訂正が失敗した回数を表している。ステップS902:制御回路755が、ビット生成部710を制御することで、先の初期設定で決定した添え字iに対応するビット列wi’を生成するステップである。制御回路755は、添え字iをメモリ782から読み出す。そして、制御回路755は、グリッチ発生回路iを選択するための選択信号を生成し、この選択信号は、1台目j=1に相当のグリッチ発生回路トップ7301内のセレクタに入力される。これにより、ビット列wi’の生成が可能となる。なお、ビット列wi’は、通常、誤りを含むため、初期設定で生成したwiとは異なる値となり、’を付している。ステップS903:誤り訂正回路751が、ビット列wi’に対して誤り訂正処理を行い、ビット列wi’’を得るステップである。誤り訂正回路751は、初期設定で生成した誤り訂正用のシンドロームsをメモリ782から読み出し、ビット列wi’に対して誤り訂正処理を行う。誤り訂正後のビット列wi’’は、初期設定で生成したビット列wiと一致することが期待される。ステップS904:OWHF回路752が、ビット列wi’’のハッシュ値h’’を計算するステップである。ステップS905:比較判定回路753が、ハッシュ値h’’を、初期設定で生成したハッシュ値hと比較し、比較結果により処理を分岐させるステップである。h=h’’となった場合は、ステップS903における誤り訂正が成功し、初期設定で生成したビット列wiを再生成できたことを意味する。逆に、h≠h’’となった場合は、ステップS903における誤り訂正に失敗し、初期設定で生成したビット列wiの再生成ができなかったことを意味する。ステップS906:制御回路755が、ステップS905でh≠h’’となった場合に、誤り訂正の失敗回数を表すカウンタcntの値を1増やし、次のステップS907に進むステップである。ステップS907:カウンタcntの値が、ある所定のしきい値Uを超えているか否かを、制御回路755が判定するステップである。カウンタcntがUを超えていない場合、ステップS902に戻り、制御回路755は、再びビット列生成と誤り訂正を行う。ステップS908:ステップS907において、cnt>Uとなった場合、制御回路755が、失敗通知を行うステップである。これは、制御回路755が、これ以上ビット列生成と誤り訂正を続けても、ビット列wiを再生成できないと判定したことを意味する。ステップS909:ステップS905において、ハッシュ値がh=h’’となり、ビット列wiの再生成に成功したとき、カウンタcntの値が、あるしきい値Vを超えているか否かを制御回路755が判定するステップである。制御回路755は、cntがVを超えていない場合には、再設定処理を終了する。なお、UとVの関係は、U>Vである。ステップS910:ステップS909において、cnt>Vとなった場合、性能評価制御部750が、初期設定の処理を行って新たな添え字i’を選択するステップである。これは、ビット列wiの再生成に何度も失敗したため、性能評価制御部750が、回路特性が大幅に変わったと判断し、ビット列wiの再生成ができなくなる前に、初期設定をやり直すことで、新たなi’を選び直したことを意味する。以上が、再設定のフローチャートである。このような一連処理により、性能評価制御部750は、デバイス製造の影響、あるいはデバイスの経年劣化の影響を受けずに、所望の性能情報量やエラーレートを満たすグリッチを出力することを保証でき、必要に応じて初期設定をやり直すことができる。以上のように、実施の形態1によれば、グリッチ発生回路を複数搭載し、それらの情報量評価が可能である。従って、複数のグリッチ発生回路の中から使用するグリッチ発生回路を選択可能とすることで、所望の性能を満たす可能性を高めることができる。さらに、性能評価制御部を備えることで、実際に、所望の性能を満たしているグリッチ発生回路の選択が可能となる。さらに、これらの特徴を持つことにより、デバイス製造時やデバイスの経年劣化後に、グリッチPUFが所望の情報量を満たすことを保証できる。この結果、グリッチPUFを利用した製品機器の機能が正常に動作することを保証する、あるいは機能の保証期間をより長くすることなどが可能となる。さらに、複数のグリッチ発生回路を搭載し、特に、グリッチが発生しやすく毎回のビット生成の再現性が低いグリッチ発生回路を搭載し、生成したビットの0/1等頻度性評価を行えることから、グリッチPUFの乱数発生器としての使用も可能となる。実施の形態2.先の実施の形態1では、最適なグリッチ発生回路の選択を行う初期設定、およびグリッチ発生回路の特性が変化したときの再設定に関して説明した。これに対して、本実施の形態2では、グリッチ発生回路を用いた具体的な応用例について説明する。グリッチPUFによるビット列生成を用いて、暗号アルゴリズムで使用するための鍵生成を行うことができる。図10は、本発明の実施の形態2における鍵生成を行う場合の性能評価制御部の構成図である。本実施の形態2における性能評価制御部1050は、誤り訂正回路1051、OWHF回路1052、比較判定回路1053、性能評価回路1054、制御回路1055、およびHF回路1056を備えている。また、本実施の形態2における図10の構成では、暗号回路1090が含まれている。先の実施の形態1における図7の構成と比較すると、本実施の形態2における図10の性能評価制御部1050は、ビット列をランダム化することを目的としたハッシュ関数HF回路1056をさらに備えている点が異なっている。このHF回路1056の働きにより、グリッチPUF1001で生成したビット列を、暗号アルゴリズムの鍵として使用することが可能となる。次に、フローチャートを用いて、図10に示した構成を備えるグリッチPUF1001の動作について、詳細に説明する。図11は、本発明の実施の形態2における図10に示すグリッチPUF1001の初期設定のフローチャートである。また、図12は、本発明の実施の形態2における図10に示すグリッチPUF1001の再設定のフローチャートである。まず始めに、図11を用いて、初期設定の一連処理について、それぞれのステップ毎に説明する。なお、この図11のフローチャートは、先の実施の形態1における図8のフローチャートに、鍵生成に関する処理を追加したものとなっている。具体的には、ステップS1102~S1105は、ステップS801~S804と同一であり、ステップS1101、S1105~S1108が、鍵生成に関する処理として新たに追加されたステップに相当する。ステップS1101:暗号回路1090が、I/O1082からマスター鍵mkを入力し、内部のレジスタに保持するステップである。ステップS1102:制御回路1055が、ビットb1、1、1~ビットbN、M、2n-1を得るステップである。ステップS1103:性能評価回路1054が、ビットb1、1、1、...、bN、M、2n-1の性能を評価するステップである。性能評価回路1054は、その評価結果から、所望の性能を満たす添え字ii=1、...、Nを選び、添え字iをメモリ1082に保持する。ステップS1104:誤り訂正回路1051が、j=1とした場合の、所望の性能を満たす添え字iに対応するビット列wi=bi、1、1、...、bi、1、2n-1に対し、誤り訂正に必要なシンドロームsを生成し、メモリに保持するステップである。ステップS1105:OWHF回路1052が、ビット列wiのハッシュ値hを計算し、メモリ1082に保持するステップである。ステップS1106:HF回路1056が、ビット列wiのハッシュ値kを計算し、暗号回路1090の内部レジスタに保持するステップである。このkが、グリッチPUF1001を用いて生成した暗号鍵に相当する。ステップS1107:暗号回路1090が、ステップS1106で生成した暗号鍵kを用いてマスター鍵mkを暗号化し、暗号化データxを得るステップである。暗号回路1090は、暗号化データxをメモリ1082に保持する。ステップS1108:暗号回路1090が、内部のレジスタに保持していたマスター鍵mkと暗号鍵kを消去するステップである。上述した図11におけるフローチャートには、2つの暗号鍵mkとkが存在するが、マスター鍵mkが実際にデータを暗号化するための鍵であり、グリッチPUFで生成した暗号鍵kは、マスター鍵mkを暗号化するための鍵である。ここで、暗号鍵kをデータの暗号化に使わない理由は、グリッチPUF1001の出力は、デバイスの経年劣化によって変化し、初期設定と同じ暗号鍵kを再生成することが、いずれ不可能になるためである。以上が、初期設定のフローチャートである。このような一連処理により、性能評価制御部1050は、所望の性能を満たす添え字i、ビット列wiの誤り訂正に必要なシンドロームs、およびビット列wiのハッシュ値hを、初期設定することができる。さらに、性能評価制御部1050は、マスター鍵mkの入手、暗号鍵kの生成、および暗号化データxの生成を行うことができる。次に、図12を用いて、再設定の一連処理について、それぞれのステップ毎に説明する。なお、この図12のフローチャートは、先の実施の形態1における図9のフローチャートに、鍵管理に関する処理を追加したものとなっている。具体的には、ステップS1201~S1208は、ステップS901~S908と同一であり、ステップS1211は、ステップS909と同一であり、ステップS1209、S1210、S1212が、鍵管理に関する処理として新たに追加されたステップに相当する。ステップS1201:制御回路1055が、カウンタcntの値を0で初期化するステップである。ステップS1202:制御回路1055が、ビット生成部1010を制御することで、先の初期設定で決定した添え字iに対応するビット列wi’を生成するステップである。ステップS1203:誤り訂正回路1051が、ビット列wi’に対して誤り訂正処理を行い、ビット列wi’’を得るステップである。ステップS1204:OWHF回路1052が、ビット列wi’’のハッシュ値h’’を計算するステップである。ステップS1205:比較判定回路1053が、ハッシュ値h’’を、初期設定で生成したハッシュ値hと比較し、比較結果により処理を分岐させるステップである。ステップS1206:制御回路1055が、ステップS1205でh≠h’’となった場合に、誤り訂正の失敗回数を表すカウンタcntの値を1増やし、次のステップS1207に進むステップである。ステップS1207:カウンタcntの値が、ある所定のしきい値Uを超えているか否かを、制御回路1055が判定するステップである。カウンタcntがUを超えていない場合、ステップS1202に戻り、制御回路1055は、再びビット列生成と誤り訂正を行う。ステップS1208:ステップS1207において、cnt>Uとなった場合、制御回路1055が、失敗通知を行うステップである。ステップS1209:HF回路1056が、ビット列wi’’のハッシュ値kを計算するステップである。S1205において、h=h’’であったことから、wi’’=wiであるので、ここで求めたハッシュ値kは、wiのハッシュ値kと一致する。これは、初期設定で生成した鍵の再生成に成功したことを意味する。OWHF回路1052は、計算したハッシュ値kを、再生成した鍵kとして、暗号回路1090の内部のレジスタに保持する。ステップS1210:暗号回路1090が、再生成した鍵kを用いてデータxを復号し、マスター鍵mkを得るステップである。暗号回路1090は、マスター鍵mkを内部のレジスタに保持する。ステップS1211:カウンタcntの値が、あるしきい値Vを超えているか否かを、制御回路1055が判定するステップである。制御回路1055は、cntがVを超えていない場合には、S1212に進む。ステップS1212:暗号回路1090が、マスター鍵mkを用いて暗号処理を行うステップである。ステップS1213:ステップS1211において、cnt>Vとなった場合、性能評価制御部1050が、初期設定の処理を行って新たな添え字i’の選択、および、それに対応する新たな鍵k’によるmkの暗号化を行うステップである。これは、ビット列wiの再生成に何度も失敗したため、性能評価制御部1050が、回路特性が大幅に変わったと判断し、ビット列wiの再生成ができなくなる従って、kが再生成できなくなる前に、初期設定をやり直すことで、新たなi’を選び直したことを意味する。以上が、再設定のフローチャートである。このような一連処理により、性能評価制御部1050は、デバイス製造の影響、あるいはデバイスの経年劣化の影響を受けずに、所望の性能情報量やエラーレートを満たすグリッチを出力することを保証でき、必要に応じて初期設定をやり直すことができる。さらに、鍵管理に関する処理に応用することができる。以上のように、実施の形態2によれば、先の実施の形態1の効果を有するグリッチPUFによるビット列生成を用いて、暗号アルゴリズムで使用するための鍵生成を行うことができ、暗号処理への応用が可能となる。"