(57)【要約】【課題】乱数又は定数を出力するＲＳラッチ回路の比率を変化させる。【解決手段】電子回路１は、入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路１０−１〜１０−Ｎと、判定部５０と、選択部２０とを有する。判定部５０は、複数のＲＳラッチ回路１０−１〜１０−Ｎのそれぞれの出力が乱数又は定数の何れかであるかを判定する。選択部２０は、判定部の判定結果に応じて、複数のＲＳラッチ回路１０−１〜１０−Ｎのそれぞれに入力するクロック信号を維持するか、周波数が異なる他のクロック信号に変更するか、又は出力される信号を固定する信号に変更するかを選択する。【選択図】図４
2015106172.tif 000002
【特許請求の範囲】
【請求項１】
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路と、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定する判定部と、
前記判定部の判定結果に応じて、前記複数のＲＳラッチ回路のそれぞれに入力するクロック信号を維持するか、周波数が異なる他のクロック信号に変更するか、又は出力される信号を固定する信号に変更するかを選択する選択部と、を有する、ことを特徴とする電子回路。
【請求項２】
前記選択部は、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路から出力される信号を固定する信号を入力する、請求項１に記載の電子回路。
【請求項３】
前記選択部は、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路から出力される信号を固定する信号を入力する、請求項１に記載の電子回路。
【請求項４】
前記選択部は、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が定数であると判定されたときに、入力された前記クロック信号の何れかを入力信号として選択する、請求項１に記載の電子回路。
【請求項５】
前記選択部は、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が乱数であると判定されたときに、入力された前記クロック信号の何れかを入力信号として選択する、請求項１に記載の電子回路。
【請求項６】
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路と、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定する判定部と、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路から出力される信号を固定する信号を入力する選択部と、
前記複数のＲＳラッチ回路それぞれの出力の排他的論理和を演算する排他的論理和素子と、を有する乱数発生器と、
前記乱数発生器が生成した乱数を暗号鍵として使用して、データを暗号化する暗号化器と、
を有することを特徴とする電子機器。
【請求項７】
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路と、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定する判定部と、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路から出力される信号を固定する信号を入力する選択部と、
前記複数のＲＳラッチ回路の出力を使用して個体別情報を生成する個体別情報生成装置と、
前記個体別情報生成装置が生成した個体別情報を暗号鍵として使用して、データを暗号化する暗号化器と、
を有することを特徴とする電子機器。
【請求項８】
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路と、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定する判定部と、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が定数であると判定されたときに、入力された前記クロック信号の何れかを入力信号として選択する選択部と、
前記複数のＲＳラッチ回路の出力を使用して個体別情報を生成する個体別情報生成装置と、
前記個体別情報生成装置が生成した個体別情報を暗号鍵として使用して、データを暗号化する暗号化器と、
を有することを特徴とする電子機器。
【請求項９】
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路と、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定する判定部と、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が乱数であると判定されたときに、入力された前記クロック信号の何れかを入力信号として選択する選択部と、
前記複数のＲＳラッチ回路の出力を使用して個体別情報を生成する個体別情報生成装置と、
前記個体別情報生成装置が生成した個体別情報を暗号鍵として使用して、データを暗号化する暗号化器と、
を有することを特徴とする電子機器。
【請求項１０】
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路と、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定する判定部と、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路から出力される信号を固定する信号を入力する選択部と、
前記複数のＲＳラッチ回路の出力を使用して個体別情報を生成する個体別情報生成装置と、
前記個体別情報生成装置が生成した個体別情報を出力する通信部と、を有する、電子機器と、
前記電子機器から出力された個体別情報を認証する認証装置と、を有することを特徴とする認証システム。
【請求項１１】
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路と、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定する判定部と、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が定数であると判定されたときに、入力された前記クロック信号の何れかを入力信号として選択する選択部と、
前記複数のＲＳラッチ回路の出力を使用して個体別情報を生成する個体別情報生成装置と、
前記個体別情報生成装置が生成した個体別情報を出力する通信部と、を有する、電子機器と、
前記電子機器から出力された個体別情報を認証する認証装置と、を有することを特徴とする認証システム。
【請求項１２】
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路と、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定する判定部と、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が乱数であると判定されたときに、入力された前記クロック信号の何れかを入力信号として選択する選択部と、
前記複数のＲＳラッチ回路の出力を使用して個体別情報を生成する個体別情報生成装置と、
前記個体別情報生成装置が生成した個体別情報を出力する通信部と、を有する、電子機器と、
前記電子機器から出力された個体別情報を認証する認証装置と、を有することを特徴とする認証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子回路、電子機器及び認証システムに関する。より詳細には、本発明は、それぞれが乱数又は定数の何れかを出力する複数のＲＳ（リセット・セット）ラッチ回路（ＳＲラッチ回路とも称される）を含む電子回路、電子機器及び認証システムに関する。
【背景技術】
【０００２】
情報化社会の発展に伴って、電子決済及び住民基本台帳ネットワーク等の情報ネットワークを利用したサービスが普及している。これらのサービスを安全に運用するために情報セキュリティ技術が利用されている。情報セキュリティの基盤技術として使用される暗号方式として公開鍵暗号方式及び共通鍵暗号方式の２つの暗号方式が知られている。共通鍵暗号方式は、暗号化及び復号化で同一の秘密鍵を使用する方式である。共通鍵暗号方式では、秘密鍵を利用者以外の第三者に秘密の情報とすることで安全性が担保される。一方、公開鍵暗号方式は、暗号化のときと復号化のときとで異なる鍵を用いる方式である。公開鍵暗号方式では、暗号化のときに使用される公開鍵を一般に公開する代わりに、復号化するときの秘密鍵を利用者以外の第三者に秘密の情報とすることで安全性が担保される。
【０００３】
公開鍵暗号方式及び共通鍵暗号方式の何れの暗号方式においても、暗号方式の安全性は、秘密鍵の安全性に依存しており、秘密鍵が第三者に知られていた場合には暗号方式の安全性は担保されない。秘密鍵が第三者に知られる可能性を低くするために、秘密鍵を乱数で生成することが知られている。
【０００４】
乱数は、擬似乱数及び物理乱数の２つの種類に大別される。擬似乱数は、確定的な計算によって作り出された数列の一部分であり、初期値（種、又はｓｅｅｄとも称される）を所定の擬似乱数生成アルゴリズムに従って演算することにより生成される。擬似乱数は、擬似乱数生成アルゴリズムと初期値の両方を攻撃者に知られた場合に予測可能である。したがって擬似乱数を用いると攻撃者に秘密鍵を予測されるおそれがある。一方、物理乱数は、電子回路を形成する素子で出力する熱雑音等のランダムな物理現象を利用して乱数を生成するものである。物理乱数は、再現性がなく予測不可能であり、物理乱数を使用して秘密鍵を生成することにより安全性が高くなる。また、電子回路のメタステーブルを利用した物理乱数生成器が知られている。電子回路のメタステーブルを利用した物理乱数生成器は、回路規模が大きくなく且つ予測困難な物理乱数を生成することができる。
【０００５】
電子決済及び住民基本台帳ネットワーク等のサービスにおけるエンドユーザがスマートカードを使用することが知られている。スマートカードは、ＩＣチップを搭載したカードであり、ＩＣチップ内部のメモリ領域に秘密鍵が格納されている。スマートカードに搭載されるＩＣチップが、暗号化処理、復号化処理、デジタル署名処理及びデジタル認証処理等を実行することが知られており、これらの処理を実行するとき、秘密鍵が使用される。スマートカードなどの小型機器で使用可能なハードウェアリソースは制限されており、且つ利用可能な電力も制限されるので、消費電力が低い乱数生成器を搭載することが好ましい。
【０００６】
準安定状態でフリップフロップを動作させるステップと、準安定状態に基づいてランダムビットを生成するステップと、を備える乱数生成方法が知られている。また、クロック信号とランダム信号を入力し、ランダム信号の変化に応じてクロック信号のカウント値を出力するカウンタ回路と、ランダム信号の変化に応じてカウント値をラッチし乱数信号を出力するラッチ回路とを備える乱数生成回路が知られている。
【０００７】
また、複数の乱数出力回路と、排他的論理和回路と、乱数判定部と、乱数生成指示禁止部を有する乱数生成器が知られている。乱数生成器の排他的論理和回路は、複数の乱数出力回路の各々の出力の排他的論理和を得る。また、乱数生成器の乱数判定部は、複数の乱数出力回路の各々に関して、乱数の生成の指示に応じて生成される出力が乱数であるか否かの判定を行う。そして、乱数生成器の乱数生成指示禁止部は、複数の乱数出力回路のうち指示に応じて生成される出力が乱数でないと乱数判定部が判定した乱数出力回路に対する乱数の生成の指示を禁止する。
【０００８】
図１は、乱数生成器の乱数出力回路として使用されるＲＳラッチ回路の一例の回路ブロック図である。
【０００９】
ＲＳラッチ回路１０は、第１ＮＡＮＤ素子１０１と、第２ＮＡＮＤ素子１０２と、入力端子１０３と、出力端子１０４とを有する。第１ＮＡＮＤ素子１０１の第１入力端子及び第２ＮＡＮＤ素子１０２の第２入力端子は入力端子１０３に接続され、第１ＮＡＮＤ素子１０１の第２入力端子は第２ＮＡＮＤ素子１０２の出力端子に接続される。第２ＮＡＮＤ素子１０２の第１入力端子は、第１ＮＡＮＤ素子１０１の出力端子及び出力端子１０４に接続される。
【００１０】
ＲＳラッチ回路１０の入力端子１０３にＬレベルの信号が入力されるとき、出力端子１０４から出力される信号はＨレベルで安定した状態になる。ＲＳラッチ回路１０の入力端子１０３に入力される信号がＬレベル信号からＨレベルに遷移すると、第１ＮＡＮＤ素子１０１の出力信号と第２ＮＡＮＤ素子１０２の出力信号とが衝突して、ＲＳラッチ回路１０は不安定な状態である「メタステーブル」になる。ＲＳラッチ回路１０がメタステーブルになった後に、出力端子１０４の信号はＬレベル又はＨレベルの何れかのレベルで安定状態になる。第１ＮＡＮＤ素子１０１の遅延時間と第２ＮＡＮＤ素子１０２の遅延時間が略同一である場合、出力端子１０４から出力される信号がＬレベルになる確率とＨレベルになる確率とは略等くなる。しかしながら、第１ＮＡＮＤ素子１０１の駆動能力と第２ＮＡＮＤ素子１０２の駆動能力及び端子間を接続する配線の配線幅等が相違するので、メタステーブルの後の出力端子１０４の信号レベルはＲＳラッチ回路１０ごとに相違する。例えば、第１ＮＡＮＤ素子１０１の駆動能力が第２ＮＡＮＤ素子１０２の駆動能力が相違する場合、メタステーブルの後のＲＳラッチ回路１０の出力端子１０４の信号レベルはＬレベル又はＨレベルの何れか一方を継続的に出力する可能性が高い。また、第１ＮＡＮＤ素子１０１の駆動能力が第２ＮＡＮＤ素子１０２の駆動能力及び端子間配線の配線幅が略等しい場合、メタステーブルの後のＲＳラッチ回路１０の出力端子１０４の信号レベルは不確定になる。
【００１１】
ＲＳラッチ回路１０の入力端子１０３に所定の周期でＬレベルとＨレベルとを繰り返すクロック信号ＣＫが入力されると、ＲＳラッチ回路１０は、出力信号によって３つの種類に分類される。第１の種類は、クロック信号ＣＫの立ち上がりエッジに応じて、出力端子１０４の信号レベルをＨレベル又はＬレベルに変化させるＲＳラッチ回路１０である。第１の種類は、メタステーブルになった後に、ＬレベルとＨレベルの混合ビット列、すなわち乱数を出力するＲＳラッチ回路１０である。第２の種類は、メタステーブルになった後に、出力端子１０４の信号レベルをＬレベルに維持するＲＳラッチ回路１０である。そして、第３の種類は、メタステーブルになった後に、出力端子１０４の信号レベルをＨレベルに維持するＲＳラッチ回路１０である。第２の種類のＲＳラッチ回路１０及び第３の種類のＲＳラッチ回路１０は、クロック信号ＣＫのＨレベル信号が入力されている間、Ｈレベル又はＬレベルの信号を出力し続けるため、乱数出力回路として機能しない。本明細書では、ＲＳラッチ回路１０がメタステーブルになった後に、ＲＳラッチ回路１０の出力端子１０４の信号レベルがＬレベル又はＨレベルの一定の信号レベルになるときに、ＲＳラッチ回路１０が定数を出力するという。また、ＲＳラッチ回路１０がメタステーブルになった後に、ＲＳラッチ回路１０の出力端子１０４の信号レベルがＬレベル及びＨレベルの双方の信号レベルになり得るときに、ＲＳラッチ回路１０が乱数を出力するという。
【００１２】
また、正規品の解析等の結果を用いて製造された正規品と同等の機能を有するクローン品への対策として、正規品に認証機能を付与することが知られている。正規品に付与される認証機能を実現する手段としてＰＵＦ（Physically Unclonable Function、物理的クローン作製不能機能）がある。ＰＵＦの１つであるバタフライ（Butterfly）型ＰＵＦ（以下、ラッチＰＵＦとも称する）では、図１に示すＲＳラッチ回路１０と同一の構成を有する回路を基本回路構成として使用する。
【００１３】
図２は、ラッチＰＵＦの回路ブロック図である。
【００１４】
ラッチＰＵＦ２００は、複数のＲＳラッチ回路１０−１〜１０−Ｎを有する。ラッチＰＵＦ２００は、Ｈレベルの信号が入力端子１０３に入力されメタステーブルになった後に、ＲＳラッチ回路１０の出力端子１０４から出力されるレベル又はＨレベルの定数の出力信号を固体別情報として使用する。一例では、不図示の個体別情報生成部が、ＲＳラッチ回路１０のうち出力値が一定であるものを、ＲＳラッチ回路１０それぞれに定義されている順序の情報に基づいて、配列して個体別情報を生成する。
【００１５】
図２に示す例では、ＲＳラッチ回路１０−１及び１０−Ｎの出力信号は所定のクロック周期に亘ってメタステーブルになった後にＬレベルの信号を出力し続けているので、Ｌレベルの信号を生成する個体別情報生成回路として使用される。また、ＲＳラッチ回路１０−２の出力信号は所定のクロック周期に亘ってメタステーブルになった後にＨレベルの信号を出力し続けているので、Ｈレベルの信号を生成する個体別情報生成回路として使用される。しかしながら、ＲＳラッチ回路１０−３及び１０−（Ｎ−１）の出力信号は所定のクロック周期の間、Ｌレベル及びＨレベルの双方の信号を出力して乱数を出力している。乱数を出力しているＲＳラッチ回路１０−３及び１０−（Ｎ−１）を個体別情報生成回路として使用すると、装置ごとに不変であるべき固体別情報が変動することになり、固体別情報の再現性が失われてしまう。固ラッチＰＵＦ２００が生成する固体別情報の再現性が失われるので、ＲＳラッチ回路１０−３及び１０−（Ｎ−１）を個体別情報生成回路として使用することは好ましくない。
【００１６】
また、定数を出力するＲＳラッチ回路、及び乱数を出力するＲＳラッチ回路の双方を使用するラッチＰＵＦが知られている。
【００１７】
図３は、定数を出力するＲＳラッチ回路、及び乱数を出力するＲＳラッチ回路の双方を使用するラッチＰＵＦの回路ブロック図である。
【００１８】
ラッチＰＵＦ３００は、ＲＳラッチ回路１０−１〜１０−６と、ＲＳラッチ回路１０−１〜１０−６の出力信号をそれぞれ判定する判定回路３０１−１〜３０１−６とを有する。ＲＳラッチ回路１０−１〜１０−６の入力端子１０３には同一の周期を有するクロック信号が入力される。判定回路３０１−１〜３０１−６は、クロック信号が入力されているときにおける、ＲＳラッチ回路１０−１〜１０−６のメタステーブルの後の出力信号を所定のクロック周期に亘って観測する。メタステーブルの後のＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期に亘ってＬレベルであるとき、判定回路３０１−１は、２つのＬレベルの信号、すなわち「００」を出力する。メタステーブルの後のＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期に亘ってＨレベルであるとき、判定回路３０１−１は、２つのＨレベルの信号、すなわち「１１」を出力する。観測した所定のクロック周期の間に乱数を生成し、且つ生成された乱数の中でＬレベルの信号が多いとき、判定回路３０１−１は、Ｌレベル及びＨレベルの信号、すなわち「０１」を出力する。観測した所定のクロック周期の間に乱数を生成し、且つ生成された乱数の中でＨレベルの信号が多いとき、判定回路３０１−１は、Ｈレベル及びＬレベルの信号、すなわち「１０」を出力する。判定回路３０１−２〜３０１−６はそれぞれ、ＲＳラッチ回路１０−１〜１０−６からの出力に応じて、判定回路３０１−１と同様に機能する。ラッチＰＵＦ３００では、定数を出力するＲＳラッチ回路、及び乱数を出力するＲＳラッチ回路の双方を使用して固体別情報が生成される。ラッチＰＵＦ３００は、ＲＳラッチ回路１０−１〜１０−６の出力を使用して信号列「００１０１１０１１１００」を有するＩＤ［１１：０］を生成する。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】国際公開第２０１１／１１７９２９号
【特許文献２】特表２００３−５２６１５１号公報
【特許文献３】特開２００４−１２７２８３号公報
【特許文献４】国際公開第２０１２／００１７９６号
【特許文献５】特開２０１３−１３１８６７号公報
【発明の概要】
【発明が解決しようとする課題】
【００２０】
しかしながら、ＲＳラッチ回路を使用する乱数生成器では、乱数を出力するＲＳラッチ回路の比率が低いため、乱数の品質（エントロピー）が低くなるという課題があった。実装するＲＳラッチ回路の個数を増加させることによって、乱数の品質を向上させることが可能であるが、ＲＳラッチ回路の個数を増加させるとＲＳラッチ回路を含む乱数生成器の回路規模が大きくなり、好ましくない。
【００２１】
また、ＲＳラッチ回路から出力される定数を固体別情報として使用するラッチＰＵＦでは、乱数を出力するＲＳラッチ回路は、再現性がないため固体別情報として使用されていないという課題があった。また、ラッチＰＵＦ３００のように乱数を出力するＲＳラッチ回路をラッチＰＵＦで使用する場合でも、乱数を出力するＲＳラッチ回路の数と、定数を出力するＲＳラッチ回路の数との差が大きくなり、生成される固体別情報の品質が低くなるおそれがある。
【００２２】
１つの側面では、乱数を出力するＲＳラッチ回路又は定数を出力するＲＳラッチ回路の比率を変化させることが可能な電子回路を提供することを目的とする。
【課題を解決するための手段】
【００２３】
上記課題を解決するために、電子回路は、入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路と、判定部と、選択部とを有する。判定部は、複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定する。選択部は、判定部の判定結果に応じて、複数のＲＳラッチ回路のそれぞれに入力するクロック信号を維持するか、周波数が異なる他のクロック信号に変更するか、又は出力される信号を固定する信号に変更するかを選択する。
【発明の効果】
【００２４】
１実施形態によれば、乱数を出力するＲＳラッチ回路又は定数を出力するＲＳラッチ回路の比率を変化させることが可能な電子回路を提供することができる。
【図面の簡単な説明】
【００２５】
【図１】ＲＳラッチ回路の一例の回路ブロック図である。
【図２】従来のラッチＰＵＦの一例の回路ブロック図である。
【図３】従来のラッチＰＵＦの他の例の回路ブロック図である。
【図４】第１実施形態に係る電子回路の回路ブロック図である。
【図５】図４に示す乱数判定回路の処理フローを示すフローチャートである。
【図６】第２実施形態に係る電子回路の回路ブロック図である。
【図７】図６に示すラッチＰＵＦの処理フローを示すフローチャートである。
【図８】第３実施形態に係る電子回路の回路ブロック図である。
【図９】図８に示すラッチＰＵＦの処理フローを示すフローチャートである。
【図１０】図４に示す乱数判定回路を搭載した電子機器の一例の回路ブロック図である。
【図１１】図１０に示す電子機器の暗号化処理フローを示すフローチャートである。
【図１２】図６に示すラッチＰＵＦを搭載した電子機器を含む認証システムの一例の回路ブロック図である。
【図１３】図１２に示す認証システムの認証処理フローを示すフローチャートである。
【図１４】図８に示すラッチＰＵＦの処理フローの他の例を示すフローチャートである。
【発明を実施するための形態】
【００２６】
以下図面を参照して、本発明に係る電子回路、電子機器及び認証システムについて説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されない。
【００２７】
実施形態に係る電子回路、電子機器及び認証システムについて説明する前に、従来の乱数生成器及びラッチＰＵＦの課題についてより詳細に説明する。
【００２８】
ＲＳラッチ回路を使用する乱数生成器には、２つの課題があった。第１の課題は、乱数を出力しているか否かにかかわらずＲＳラッチ回路の入力端子にクロック信号を入力し続けるため、乱数生成器の消費電力が増加するという課題である。第２の課題は、ＲＳラッチ回路の数に対する乱数を出力するＲＳラッチ回路の比率が低いという課題である。
【００２９】
第１の課題は、複数のＲＳラッチ回路のうち該指示に応じて生成される出力が乱数でないと乱数判定部が判定したＲＳラッチに対する乱数の生成の指示を禁止することにより解決される。しかしながら、第２の課題は、未だ解決されていない。
【００３０】
ＲＳラッチ回路の数に対する乱数を出力するＲＳラッチ回路の比率が低いという第２の課題についてより詳細に説明する。本発明の発明者らが実施した試験では、ＦＰＧＡ（Field-Programmable Gate Array）に搭載された６４個のＲＳラッチ回路の中で、４つのＲＳラッチ回路のみが乱数を生成していた。すなわち、ＲＳラッチ回路の中で乱数を出力するＲＳラッチ回路の比率は、１／１６程度であり、全体の約１５／１６という大部分のＲＳラッチ回路が乱数ではなく定数を出力していた。搭載されるＲＳラッチ回路の数が少ない場合、生成される乱数の品質が低くなる可能性があり、乱数の品質を保証するために、多くのＲＳラッチ回路を搭載すると、乱数生成器の回路規模が大きくなる。回路規模の増大を伴うことなく、乱数の品質を保証するために、乱数を出力するＲＳラッチ回路の比率を高くすることが考えられる。しかしながら、半導体装置に搭載された後に、乱数を出力するＲＳラッチ回路を増加させることは容易ではない。乱数を出力するＲＳラッチ回路の比率は、ＲＳラッチ回路が搭載される半導体装置の種類、プロセス等の物理的特性及び半導体装置を製造するときの環境要因等によって決定されるためである。
【００３１】
また、ＲＳラッチ回路をラッチＰＵＦで使用する場合、乱数を出力するＲＳラッチ回路の出力は、再現性がないため固体別情報として使用することができず、ラッチＰＵＦでは乱数を出力するＲＳラッチ回路は不要な回路となる。
【００３２】
また、乱数を出力するＲＳラッチ回路をラッチＰＵＦで使用する場合、乱数を出力するＲＳラッチ回路の数と、定数を出力するＲＳラッチ回路の数との差が大きくなり、生成される固体別情報の品質が低くなるおそれがある。
【００３３】
第１実施形態では、乱数を出力するＲＳラッチ回路の比率を大きくすることにより、ＲＳラッチ回路を搭載した乱数生成器が生成する乱数の品質を向上させることを目的とする。また、第２実施形態では、定数を出力するＲＳラッチ回路の比率を大きくすることにより、ＲＳラッチ回路を搭載したラッチＰＵＦが生成する固体別情報のパターン数を増加させることを目的とする。第３実施形態では、乱数を出力するＲＳラッチ回路の比率、又は定数を出力するＲＳラッチ回路の比率を大きくすることにより、乱数を出力するＲＳラッチ回路を搭載したラッチＰＵＦが生成する固体別情報の品質を向上させることを目的とする。
【００３４】
本発明者等の鋭意研鑽の結果、ＲＳラッチ回路の入力端子に入力されるクロック信号の周波数を変動させることにより、乱数を出力するＲＳラッチ回路、又は定数を出力するＲＳラッチ回路の比率が変化することを見出した。実施形態では、この知見に基づき乱数生成器又はラッチＰＵＦに使用可能な電子回路、電子機器及び認証システムを提供する。
【００３５】
図４は、第１実施形態に係る電子回路である乱数生成器の回路ブロック図である。
【００３６】
乱数生成器１は、複数のＲＳラッチ回路１０−１〜１０−Ｎと、出力選択回路２０と、複数のフリップフロップ３０−１〜３０−Ｎと、複数の選択部４０−１〜４０−Ｎと、乱数判定回路５０と、排他的論理和素子６０とを有する。
【００３７】
複数のＲＳラッチ回路１０−１〜１０−Ｎはそれぞれ、第１ＮＡＮＤ素子１０１と、第２ＮＡＮＤ素子１０２と、入力端子１０３と、出力端子１０４とを有する。複数のＲＳラッチ回路１０−１〜１０−Ｎの動作は、図１に示すＲＳラッチ回路１０を参照して既に説明しているので、省略する。
【００３８】
出力選択回路２０は、乱数判定回路５０から送信される出力選択指示信号Ｏ＿ＳＥＬに対応する出力選択指示に従って、複数のＲＳラッチ回路１０−１〜１０−Ｎそれぞれの出力端子１０４から出力される出力信号の何れか１つを選択する。出力選択回路２０は、選択した信号を乱数判定回路５０に送信する。
【００３９】
複数のフリップフロップ３０−１〜３０−Ｎはそれぞれ、乱数判定回路５０から送信される入力選択指示信号Ｉ＿ＳＥＬに対応する入力選択指示に従って、複数の選択部４０−１〜４０−Ｎそれぞれに選択する入力信号を示す入力選択指示信号Ｓ＿ＳＥＬを送信する。フリップフロップ３０−１は選択部４０−１に選択指示信号Ｓ＿ＳＥＬを送信し、フリップフロップ３０−２は選択部４０−２に選択指示信号Ｓ＿ＳＥＬを送信し、フリップフロップ３０−Ｎは選択部４０−Ｎに選択指示信号Ｓ＿ＳＥＬを送信する。
【００４０】
複数の選択部４０−１〜４０−Ｎはそれぞれ、複数のフリップフロップ３０−１〜３０−Ｎそれぞれから送信される選択指示信号Ｓ＿ＳＥＬに対応する選択指示に従って、ＲＳラッチ回路１０−１〜１０−Ｎそれぞれに入力される入力信号を選択する。複数の選択部４０−１〜４０−Ｎの第１信号入力端子にはそれぞれ第１クロック信号が入力され、複数の選択部４０−１〜４０−Ｎの第２信号入力端子にはそれぞれ第１クロック信号よりも周波数が低い第２クロック信号が入力される。複数の選択部４０−１〜４０−Ｎの第３信号入力端子にはそれぞれＬレベルの信号が入力される。選択部４０−１が第１入力端子に入力される第１クロック信号を選択すると、ＲＳラッチ回路１０−１の入力端子１０３には第１クロック信号が入力される。選択部４０−１が第２入力端子に入力される第２クロック信号を選択すると、ＲＳラッチ回路１０−１の入力端子１０３には第２クロック信号が入力される。選択部４０−１が第３入力端子に入力されるＬレベルの信号を選択すると、ＲＳラッチ回路１０−１の入力端子１０３にはＬレベルの信号が入力され、ＲＳラッチ回路１０−１の出力信号はＨレベルに固定され、ＲＳラッチ回路１０−１はゲーティングされる。選択部４０−２が第１入力端子に入力される第１クロック信号を選択すると、ＲＳラッチ回路１０−２の入力端子１０３には第１クロック信号が入力される。選択部４０−２が第２入力端子に入力される第２クロック信号を選択すると、ＲＳラッチ回路１０−２の入力端子１０３には第２クロック信号が入力される。選択部４０−２が第３入力端子に入力されるＬレベルの信号を選択すると、ＲＳラッチ回路１０−２の入力端子１０３にはＬレベルの信号が入力され、ＲＳラッチ回路１０−２の出力信号はＨレベルに固定され、ＲＳラッチ回路１０−２はゲーティングされる。選択部４０−Ｎが第１入力端子に入力される第１クロック信号を選択すると、ＲＳラッチ回路１０−Ｎの入力端子１０３には第１クロック信号が入力される。選択部４０−Ｎが第２入力端子に入力される第２クロック信号を選択すると、ＲＳラッチ回路１０−Ｎの入力端子１０３には第２クロック信号が入力される。選択部４０−Ｎが第３入力端子に入力されるＬレベルの信号を選択すると、ＲＳラッチ回路１０−Ｎの入力端子１０３にはＬレベルの信号が入力され、ＲＳラッチ回路１０−Ｎの出力信号はＨレベルに固定され、ＲＳラッチ回路１０−Ｎはゲーティングされる。
【００４１】
乱数判定回路５０は、複数のＲＳラッチ回路１０−１〜１０−Ｎそれぞれの出力信号に基づいて、複数のフリップフロップ３０−１〜３０−Ｎ及び複数の選択部４０−１〜４０−Ｎを介して、複数のＲＳラッチ回路１０−１〜１０−Ｎそれぞれを制御する。具体的には、乱数判定回路５０は、複数のＲＳラッチ回路１０−１〜１０−Ｎそれぞれに第１クロック信号が入力されたときに、第１クロック信号が入力されたＲＳラッチ回路１０−１〜１０−Ｎが乱数を出力しているか定数を出力しているかを判定する。第１クロック信号が入力されたＲＳラッチ回路１０−１〜１０−Ｎが乱数を出力していると判定したとき、乱数判定回路５０は、ＲＳラッチ回路１０−１〜１０−Ｎの入力信号として第１クロック信号を決定する。第１クロック信号が入力されたＲＳラッチ回路１０−１〜１０−Ｎが定数を出力していると判定したとき、乱数判定回路５０は、ＲＳラッチ回路１０−１〜１０−Ｎに入力される信号を第１クロック信号から第２クロック信号に変更する。第２クロック信号が入力されたＲＳラッチ回路１０−１〜１０−Ｎが乱数を出力していると判定したとき、乱数判定回路５０は、ＲＳラッチ回路１０−１〜１０−Ｎの入力信号として第２クロック信号を決定する。第１クロック信号及び第２クロック信号がそれぞれ入力された場合に共に、ＲＳラッチ回路１０−１〜１０−Ｎが定数を出力していると判定されたとき、乱数判定回路５０は、ＲＳラッチ回路１０−１〜１０−Ｎの入力信号としてＬレベルの信号を決定する。ＲＳラッチ回路１０−１〜１０−Ｎは、Ｌレベルの信号が入力されるとゲーティングされる。乱数判定回路５０は、周波数が低い第２クロック信号に同期して動作する。
【００４２】
排他的論理和素子６０は、複数のＲＳラッチ回路１０−１〜１０−Ｎの出力の排他的論理和を演算して出力する排他的論理和回路である。
【００４３】
図５は、乱数判定回路５０の処理フローを示すフローチャートである。
【００４４】
まず、ステップＳ１０１において、乱数判定回路５０は、複数の選択部４０−１〜４０−Ｎが第３信号入力端子に入力されるＬレベルの信号を選択するように、複数のフリップフロップ３０−１〜３０−Ｎに指示する。複数の選択部４０−１〜４０−Ｎが第３信号入力端子に入力されるＬレベルの信号を選択することにより、ＲＳラッチ回路１０−１〜１０−Ｎの出力信号は全てＨレベル信号で固定され、ＲＳラッチ回路１０−１〜１０−Ｎはゲーティングされる。
【００４５】
次いで、ステップＳ１０２において、乱数判定回路５０は、ＲＳラッチ回路１０−１が選択されることを示す出力選択指示信号Ｏ＿ＳＥＬを出力選択回路２０に送信する。出力選択指示信号Ｏ＿ＳＥＬを受信した出力選択回路２０は、ＲＳラッチ回路１０−１の出力信号を選択する。
【００４６】
次いで、ステップＳ１０３において、乱数判定回路５０は、選択部４０−１が第１信号入力端子に入力される第１クロック信号を選択することを示す入力選択指示信号Ｉ＿ＳＥＬをフリップフロップ３０−１に送信する。入力選択指示信号Ｉ＿ＳＥＬを受信したフリップフロップ３０−１は、対応する選択指示信号Ｓ＿ＳＥＬを選択部４０−１に送信する。選択指示信号Ｓ＿ＳＥＬを受信した選択部４０−１は、第１信号入力端子に入力される第１クロック信号をＲＳラッチ回路１０−１の入力信号として選択する。
【００４７】
次いで、ステップＳ１０４において、乱数判定回路５０は、ＲＳラッチ回路１０−１の入力端子１０３に第１クロック信号が入力されているときにおける、ＲＳラッチ回路１０−１のメタステーブルの後の出力信号を所定のクロック周期に亘って観測する。乱数判定回路５０は、観測されたＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期の間に変化しているか、又は観測した所定のクロック周期に亘って一定であるかを判定する。ＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期の間に変化しているとき、乱数判定回路５０は、ＲＳラッチ回路１０−１は乱数を出力していると判定する。一方、ＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期に亘って一定であるとき、乱数判定回路５０は、ＲＳラッチ回路１０−１は定数を出力していると判定する。観測されたＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期の間に変化していると乱数判定回路５０が判定した場合、処理はステップＳ１０５に進む。また、観測されたＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期に亘って一定であると乱数判定回路５０が判定した場合、処理はステップＳ１０６に進む。
【００４８】
処理がステップＳ１０５に進むと、乱数判定回路５０は、ＲＳラッチ回路１０−１の入力信号として第１クロック信号を決定する。次いで処理はステップＳ１１１に進む。
【００４９】
処理がステップＳ１０６に進むと、乱数判定回路５０は、選択部４０−１が第２信号入力端子に入力される第２クロック信号を選択することを示す入力選択指示信号Ｉ＿ＳＥＬをフリップフロップ３０−１に送信する。入力選択指示信号Ｉ＿ＳＥＬを受信したフリップフロップ３０−１は、対応する選択指示信号Ｓ＿ＳＥＬを選択部４０−１に送信する。選択指示信号Ｓ＿ＳＥＬを受信した選択部４０−１は、第２信号入力端子に入力される第２クロック信号をＲＳラッチ回路１０−１の入力信号として選択する。
【００５０】
次いで、ステップＳ１０７において、乱数判定回路５０は、ＲＳラッチ回路１０−１の入力端子１０３に第２クロック信号が入力されているときにおける、ＲＳラッチ回路１０−１のメタステーブルの後の出力信号を所定のクロック周期に亘って観測する。観測されたＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期の間に変化していると乱数判定回路５０が判定した場合、処理はステップＳ１０８に進む。また、観測されたＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期に亘って一定であると乱数判定回路５０が判定した場合、処理はステップＳ１０９に進む。
【００５１】
処理がステップＳ１０８に進むと、乱数判定回路５０は、ＲＳラッチ回路１０−１の入力信号として第２クロック信号を決定する。次いで処理はステップＳ１１１に進む。
【００５２】
処理がステップＳ１０９に進むと、乱数判定回路５０は、選択部４０−１が第３信号入力端子に入力されるＬレベルの信号を選択することを示す入力選択指示信号Ｉ＿ＳＥＬをフリップフロップ３０−１に送信する。入力選択指示信号Ｉ＿ＳＥＬを受信したフリップフロップ３０−１は、対応する選択指示信号Ｓ＿ＳＥＬを選択部４０−１に送信する。選択指示信号Ｓ＿ＳＥＬを受信した選択部４０−１は、第３信号入力端子に入力されるＬレベルの信号をＲＳラッチ回路１０−１の入力信号として選択する。
【００５３】
次いで、ステップＳ１１０において、乱数判定回路５０は、ＲＳラッチ回路１０−１の入力信号としてＬレベルの信号を決定する。次いで処理はステップＳ１１１に進む。
【００５４】
処理がステップＳ１１１に進むと、乱数判定回路５０は、ＲＳラッチ回路１０−１〜１０−Ｎの全てについて判定処理を実施したか否かを判定する。乱数判定回路５０がＲＳラッチ回路１０−１〜１０−Ｎの全てについて判定処理を実施していないと判定すると処理はステップＳ１０２に戻る。乱数判定回路５０がＲＳラッチ回路１０−１〜１０−Ｎの全てについて判定処理を実施したと判定すると処理は終了する。ここでは、乱数判定回路５０は、ＲＳラッチ回路１０−１のみについて判定処理を実施しただけなので、処理はステップＳ１０２に戻り、ＲＳラッチ回路１０−２についてステップＳ１０２〜Ｓ１１０の処理を実行する。そして、ＲＳラッチ回路１０−２から順にＲＳラッチ回路１０−Ｎまで、ステップＳ１０２〜Ｓ１１０の処理を実行すると処理は終了する。
【００５５】
図６は、第２実施形態に係る電子回路であるラッチＰＵＦの回路ブロック図である。
【００５６】
ラッチＰＵＦ２は、複数のＲＳラッチ回路１０−１〜１０−Ｎと、出力選択回路２０と、複数のフリップフロップ３０−１〜３０−Ｎと、複数の選択部４０−１〜４０−Ｎと、乱数判定回路７０と、個体別情報生成部９０とを有する。ラッチＰＵＦ２は、乱数判定回路５０の代わりに乱数判定回路７０が配置されることが乱数生成器１と相違する。また、ラッチＰＵＦ２は、排他的論理和素子６０が配置されないことが乱数生成器１と相違する。また、ラッチＰＵＦ２は、個体別情報生成部９０が配置されることが乱数生成器１と相違する。
【００５７】
乱数判定回路７０は、複数のＲＳラッチ回路１０−１〜１０−Ｎそれぞれの出力信号に基づいて、複数のフリップフロップ３０−１〜３０−Ｎ及び複数の選択部４０−１〜４０−Ｎを介して、複数のＲＳラッチ回路１０−１〜１０−Ｎそれぞれを制御する。具体的には、乱数判定回路７０は、複数のＲＳラッチ回路１０−１〜１０−Ｎそれぞれに第１クロック信号が入力されたときに、第１クロック信号が入力されたＲＳラッチ回路１０−１〜１０−Ｎが乱数を出力しているか定数を出力しているかを判定する。第１クロック信号が入力されたＲＳラッチ回路１０−１〜１０−Ｎが定数を出力していると判定したとき、乱数判定回路７０は、ＲＳラッチ回路１０−１〜１０−Ｎの入力信号として第１クロック信号を決定する。第１クロック信号が入力されたＲＳラッチ回路１０−１〜１０−Ｎが乱数を出力していると判定したとき、乱数判定回路５０は、ＲＳラッチ回路１０−１〜１０−Ｎに入力される信号を第１クロック信号から周波数がより低い第２クロック信号に変更する。第２クロック信号が入力されたＲＳラッチ回路１０−１〜１０−Ｎが定数を出力していると判定したとき、乱数判定回路５０は、ＲＳラッチ回路１０−１〜１０−Ｎの入力信号として第２クロック信号を決定する。第１クロック信号及び第２クロック信号がそれぞれ入力された場合に共に、ＲＳラッチ回路１０−１〜１０−Ｎが乱数を出力していると判定されたとき、乱数判定回路５０は、ＲＳラッチ回路１０−１〜１０−Ｎの入力信号としてＬレベルの信号を決定する。ＲＳラッチ回路１０−１〜１０−Ｎは、Ｌレベルの信号が入力されるとゲーティングされる。乱数判定回路７０は、周波数が低い第２クロック信号に同期して動作する。
【００５８】
個体別情報生成部９０は、判定回路３０１−１〜３０１−Ｎの出力を、判定回路３０１−１〜３０１−Ｎそれぞれに定義されている順序の情報に基づいて配列して、個体別情報を生成する。
【００５９】
図７は、乱数判定回路７０の処理フローを示すフローチャートである。
【００６０】
ステップＳ２０１〜Ｓ２０３において、乱数判定回路７０は、乱数判定回路５０のステップＳ１０１〜Ｓ１０３における処理と同様な処理を実行する。
【００６１】
次いで、ステップＳ２０４において、乱数判定回路７０は、ＲＳラッチ回路１０−１の入力端子１０３に第１クロック信号が入力されているときにおける、ＲＳラッチ回路１０−１のメタステーブルの後の出力信号を所定のクロック周期に亘って観測する。乱数判定回路７０は、観測されたＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期の間に変化しているか、又は観測した所定のクロック周期に亘って一定であるかを判定する。ＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期に亘って一定であるとき、乱数判定回路５０は、ＲＳラッチ回路１０−１は定数を出力していると判定する。一方、ＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期の間に変化しているとき、乱数判定回路７０は、ＲＳラッチ回路１０−１は乱数を出力していると判定する。観測されたＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期に亘って一定であると乱数判定回路５０が判定した場合、処理はステップＳ２０５に進む。また、観測されたＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期の間に変化していると乱数判定回路５０が判定した場合、処理はステップＳ２０６に進む。
【００６２】
処理がステップＳ２０５に進むと、乱数判定回路７０は、ＲＳラッチ回路１０−１の入力信号として第１クロック信号を決定する。次いで処理はステップＳ２１１に進む。
【００６３】
処理がステップＳ２０６に進むと、乱数判定回路７０は、選択部４０−１が第２信号入力端子に入力される第２クロック信号を選択することを示す入力選択指示信号Ｉ＿ＳＥＬをフリップフロップ３０−１に送信する。入力選択指示信号Ｉ＿ＳＥＬを受信したフリップフロップ３０−１は、対応する選択指示信号Ｓ＿ＳＥＬを選択部４０−１に送信する。選択指示信号Ｓ＿ＳＥＬを受信した選択部４０−１は、第２信号入力端子に入力される第２クロック信号をＲＳラッチ回路１０−１の入力信号として選択する。
【００６４】
次いで、ステップＳ２０７において、乱数判定回路７０は、ＲＳラッチ回路１０−１の入力端子１０３に第２クロック信号が入力されているときにおける、ＲＳラッチ回路１０−１のメタステーブルの後の出力信号を所定のクロック周期に亘って観測する。観測されたＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期に亘って一定であると乱数判定回路５０が判定した場合、処理はステップＳ２０８に進む。また、観測されたＲＳラッチ回路１０−１の出力信号の信号レベルが、観測した所定のクロック周期の間に変化していると乱数判定回路５０が判定した場合、処理はステップＳ２０９に進む。
【００６５】
処理がステップＳ２０８に進むと、乱数判定回路７０は、ＲＳラッチ回路１０−１の入力信号として第２クロック信号を決定する。次いで処理はステップＳ２１１に進む。
【００６６】
処理がステップＳ２０９に進むと、乱数判定回路７０は、選択部４０−１が第３信号入力端子に入力されるＬレベルの信号を選択することを示す入力選択指示信号Ｉ＿ＳＥＬをフリップフロップ３０−１に送信する。入力選択指示信号Ｉ＿ＳＥＬを受信したフリップフロップ３０−１は、対応する選択指示信号Ｓ＿ＳＥＬを選択部４０−１に送信する。選択指示信号Ｓ＿ＳＥＬを受信した選択部４０−１は、第３信号入力端子に入力されるＬレベルの信号をＲＳラッチ回路１０−１の入力信号として選択する。
【００６７】
次いで、ステップＳ２１０において、乱数判定回路７０は、ＲＳラッチ回路１０−１の入力信号としてＬレベルの信号を決定する。次いで処理はステップＳ２１１に進む。
【００６８】
処理がステップＳ２１１に進むと、乱数判定回路７０は、ＲＳラッチ回路１０−１〜１０−Ｎの全てについて判定処理を実施したか否かを判定する。乱数判定回路７０がＲＳラッチ回路１０−１〜１０−Ｎの全てについて判定処理を実施していないと判定すると処理はステップＳ２０２に戻る。乱数判定回路７０がＲＳラッチ回路１０−１〜１０−Ｎの全てについて判定処理を実施したと判定すると処理は終了する。ここでは、乱数判定回路７０は、ＲＳラッチ回路１０−１のみについて判定処理を実施しただけなので、処理はステップＳ２０２に戻り、ＲＳラッチ回路１０−２についてステップＳ２０２〜Ｓ２１０の処理を実行する。そして、ＲＳラッチ回路１０−２から順にＲＳラッチ回路１０−Ｎまで、ステップＳ２０２〜Ｓ２１０の処理を実行すると処理は終了する。
【００６９】
乱数判定回路７０の処理が終了した後、個体別情報生成部９０が、ＲＳラッチ回路１０−１〜１０−Ｎの出力を取得する。個体別情報生成部９０は、ゲーティングされているＲＳラッチ回路以外のＲＳラッチ回路の出力を、ＲＳラッチ回路１０それぞれに定義されている順序の情報に基づいて配列して、個体別情報を生成する。
【００７０】
図８は、第３実施形態に係る電子回路であるラッチＰＵＦの回路ブロック図である。
【００７１】
ラッチＰＵＦ３は、複数のＲＳラッチ回路１０−１〜１０−Ｎと、出力選択回路２０と、複数のフリップフロップ３０−１〜３０−Ｎと、複数の選択部４０−１〜４０−Ｎと、乱数判定回路８０と、個体別情報生成部９０とを有する。また、ラッチＰＵＦ３は、判定回路３０１−１〜３０１−Ｎを更に有する。ラッチＰＵＦ３は、乱数判定回路７０の代わりに乱数判定回路８０が配置されることがラッチＰＵＦ２と相違する。また、ラッチＰＵＦ３は、判定回路３０１−１〜３０１−Ｎを有することがラッチＰＵＦ２と更に相違する。
【００７２】
乱数判定回路８０は、複数のＲＳラッチ回路１０−１〜１０−Ｎそれぞれの出力信号に基づいて、複数のフリップフロップ３０−１〜３０−Ｎ及び複数の選択部４０−１〜４０−Ｎを介して、複数のＲＳラッチ回路１０−１〜１０−Ｎそれぞれを制御する。具体的には、乱数判定回路８０は、複数のＲＳラッチ回路１０−１〜１０−Ｎそれぞれに第１クロック信号が入力されたときに、第１クロック信号が入力されたＲＳラッチ回路１０−１〜１０−Ｎが乱数を出力しているか定数を出力しているかを判定する。第１クロック信号が入力されたＲＳラッチ回路１０−１〜１０−Ｎが乱数を出力していると判定したとき、乱数判定回路８０は、ＲＳラッチ回路１０−１〜１０−Ｎの入力信号として第１クロック信号を決定する。第１クロック信号が入力されたＲＳラッチ回路１０−１〜１０−Ｎが定数を出力していると判定したとき、乱数判定回路８０は、ＲＳラッチ回路１０−１〜１０−Ｎに入力される信号を第１クロック信号より周波数が低い第２クロック信号に変更する。第２クロック信号が入力されたＲＳラッチ回路１０−１〜１０−Ｎが乱数を出力していると判定したとき、乱数判定回路８０は、ＲＳラッチ回路１０−１〜１０−Ｎの入力信号として第２クロック信号を決定する。第１クロック信号及び第２クロック信号がそれぞれ入力された場合に共に、ＲＳラッチ回路１０−１〜１０−Ｎが定数を出力していると判定されたとき、乱数判定回路８０は、ＲＳラッチ回路１０−１〜１０−Ｎの入力信号として第２クロック信号を決定する。乱数判定回路８０は、周波数が低い第２クロック信号に同期して動作する。
【００７３】
判定回路３０１−１〜３０１−Ｎは、図３に示すラッチＰＵＦ３００の判定回路３０１−１〜３０１−５と同一の機能を有する。判定回路３０１−１〜３０１−Ｎは、観測した所定のクロック周期に亘ってメタステーブルになった後にＬレベルが入力されたとき、「００」信号を出力する。また、判定回路３０１−１〜３０１−Ｎは、観測した所定のクロック周期に亘ってメタステーブルになった後にＨレベルが入力されたとき、「１１」信号を出力する。また、判定回路３０１−１〜３０１−Ｎは、観測した所定のクロック周期の間に乱数が入力され、且つ入力された乱数の中でＬレベルの信号が多いとき、「０１」信号を出力する。また、判定回路３０１−１〜３０１−Ｎは、観測した所定のクロック周期の間に乱数が入力され、且つ入力された乱数の中でＨレベルの信号が多いとき、「１０」信号を出力する。
【００７４】
図９は、乱数判定回路８０の処理フローを示すフローチャートである。
【００７５】
ステップＳ３０１〜Ｓ３０８において、乱数判定回路８０は、乱数判定回路５０のステップＳ１０１〜Ｓ１０８における処理と同様な処理を実行する。
【００７６】
次いで、ステップＳ３０９において、ＲＳラッチ回路１０に入力される信号を選択部４０−１の第２信号入力端子に入力される第２クロック信号に維持する。次いで、ステップＳ３１０において、乱数判定回路８０は、ＲＳラッチ回路１０−１の入力信号として第２クロック信号を決定する。次いで処理はステップＳ５１１に進む。そして、処理がステップＳ３１１に進むと、乱数判定回路８０は、ＲＳラッチ回路１０−１〜１０−Ｎの全てについて判定処理を実施したか否かを判定する。その後、ＲＳラッチ回路１０−２から順にＲＳラッチ回路１０−Ｎまで、ステップＳ３０２〜Ｓ３１０の処理を実行すると処理は終了する。
【００７７】
乱数判定回路８０の処理が終了した後、個体別情報生成部９０が、ＲＳラッチ回路１０−１〜１０−Ｎの出力を取得する。個体別情報生成部９０は、判定回路３０１−１〜３０１−Ｎの出力を、判定回路３０１−１〜３０１−Ｎそれぞれに定義されている順序の情報に基づいて配列して、個体別情報を生成する。
【００７８】
図１０は、乱数生成器１を搭載した電子機器の一例の回路ブロック図である。
【００７９】
電子機器４００は、乱数生成器１と、演算処理装置４０１と、暗号演算器４０２と、ＲＯＭ（Read Only Memory）４０３と、ＲＡＭ（Random Access Memory）４０４と、通信部４０５とを有する。乱数生成器１、演算処理装置４０１、暗号演算器４０２、ＲＯＭ４０３、ＲＡＭ４０４及び通信部４０５は、バス４０６を介して互いに接続されている。
【００８０】
演算処理装置４０１は、ＣＰＵ（Central Processing Unit）とも称され、電子機器４００の各構成要素の動作を制御する。暗号演算器４０２は、共通鍵コプロセッサ４２１と、公開鍵コプロセッサ４２２とを有し、各種の情報の暗号化処理、及び暗号化されているデータの復号処理を実行する。共通鍵コプロセッサ４２１は、ＤＥＳ及びＡＥＳ等の共通鍵暗号方式を使用して暗号化及び復号の処理を実行する。公開鍵コプロセッサ４２２はＲＳＡ、ＥｌＧａｍａｌ方式、Ｒａｂｉｎ方式及び楕円曲線暗号等の公開鍵暗号方式を使用して暗号化及び復号の処理を実行する。
【００８１】
ＲＯＭ４０３は、演算処理装置４０１が実行する制御プログラム、暗号演算器４０２が暗号化処理及び復号処理で使用する種々のパラメータが記憶されている不揮発性メモリである。ＲＡＭ４０４は、演算処理装置４０１及び暗号演算器４０２が種々の処理を実行するときに、作業用記憶領域として使用される揮発性メモリである。
【００８２】
通信部４０５は、不図示の他の電子機器との間で、各種のデータを示す暗号化された信号を送受信する。通信部４０５が暗号化された信号を受信すると、演算処理装置４０１は、暗号演算器４０２を使用して受信した信号を復号処理する。また、通信部４０５は、演算処理装置４０１が、暗号演算器４０２を使用して暗号化処理した信号を送信する。
【００８３】
図１１は、電子機器４００の暗号化処理フローを示すフローチャートである。
【００８４】
まず、ステップＳ４０１において、演算処理装置４０１は、通信部４０５を介して暗号化処理を実行する指令を示す指令信号を受信しているか否かを判定する。演算処理装置４０１が、暗号化処理を実行する指令を示す指令信号を受信していないと判定したとき、所定の時間待機した後に処理はステップＳ４０１に戻る。ステップＳ４０１の処理の間、乱数生成器１の乱数判定回路５０は、ＲＳラッチ回路１０−１〜１０−Ｎの入力端子１０３にＬレベルの信号を入力して、ＲＳラッチ回路１０−１〜１０−Ｎを全てゲーティングしている。演算処理装置４０１が、暗号化処理を実行する指令を示す指令信号を受信したと判定したとき、処理はステップＳ４０２に進む。
【００８５】
次いで、ステップＳ４０２において、演算処理装置４０１は、乱数生成器１を使用して乱数を生成し、生成した乱数をＲＡＭ４０４に記憶する。乱数生成器１は、図５に示す処理を実行して、乱数を生成する。演算処理装置４０１は、乱数生成器１が乱数を生成する処理が終了すると、乱数生成器１のＲＳラッチ回路１０−１〜１０−Ｎを全てゲーティングする制御をするように、乱数生成器１の乱数判定回路５０に指示する。
【００８６】
次いで、ステップＳ４０３において、演算処理装置４０１は、ＲＡＭ４０４に記憶された乱数を暗号鍵として使用して、暗号演算器４０２がデータを暗号化する。演算処理装置４０１は、暗号演算器４０２が暗号化したデータをＲＡＭ４０４に記憶する。そして、ステップＳ４０４において、演算処理装置４０１は、ＲＡＭ４０４に記憶された暗号化したデータを通信部４０５を介して送信する。
【００８７】
図１２は、ラッチＰＵＦ２を搭載した電子機器を認証する認証システムの一例の回路ブロック図である。
【００８８】
認証システム５００は、電子機器５０１と、認証装置５０２とを有する。
【００８９】
電子機器５０１は、演算処理装置５１１と、ラッチＰＵＦ２を有する固体別情報生成装置５１２と、ＲＯＭ５１３と、ＲＡＭ５１４と、通信部５１５とを有する。演算処理装置５１１、固体別情報生成装置５１２、ＲＯＭ５１３、ＲＡＭ５１４及び通信部５１５は、バス５１６を介して互いに接続されている。演算処理装置５１１、ＲＯＭ５１３、ＲＡＭ５１４及び通信部５１５は、図１０を参照して説明した演算処理装置４０１、ＲＯＭ４０３、ＲＡＭ４０４及び通信部４０５と同様の構成を有する。固体別情報生成装置５１２は、ラッチＰＵＦ２が生成した固体別情報に誤り訂正等の種々の処理を実行して電子機器５０１の固体別情報を生成する。
【００９０】
認証装置５０２は、演算処理装置５２１と、認証処理部５２２と、固体別情報が記憶されるＲＯＭ５２３と、ＲＡＭ５２４と、通信部５２５とを有する。演算処理装置５２１、認証処理部５２２、ＲＯＭ５２３、ＲＡＭ５２４及び通信部５２５は、バス５２６を介して互いに接続されている。また、演算処理装置５２１、ＲＯＭ５２３、ＲＡＭ５２４及び通信部５２５は、図１０を参照して説明した演算処理装置４０１、ＲＯＭ４０３、ＲＡＭ４０４及び通信部４０５と同様の構成を有する。認証処理部５２２は、ＲＯＭ５０３に記憶される固体別情報と、電子機器５０１から通信部５２５を介して取得する固体別情報とを比較して、双方の固体別情報が一致していた場合、一致情報を生成する。
【００９１】
図１３は、認証システム５００の認証処理フローを示すフローチャートである。
【００９２】
まず、ステップＳ５０１において、認証装置５０２の演算処理装置５２１は、通信部５２５を介して固体別情報送付要求を電子機器５０１に送信する。次いで、ステップＳ５０２において、電子機器５０１の演算処理装置５１１は、通信部５２５を介して固体別情報送付要求を受信する。次いで、ステップＳ５０３において、電子機器５０１の演算処理装置５１１は、固体別情報生成装置５１２に固体別情報生成を指示する。次いで、ステップ５０４において、固体別情報生成装置５１２は、ラッチＰＵＦ２を使用して電子機器５０１の固体別情報を生成して、生成したＲＡＭ５１４に記憶する。ラッチＰＵＦ２は、図７に示す処理を実行して、固体別情報を生成する。次いで、ステップＳ５０５において、電子機器５０１の演算処理装置５１１は、通信部５１５を介してＲＡＭ５１４に記憶される固体別情報を認証装置５０２に送信する。
【００９３】
次いで、ステップＳ５０６において、認証装置５０２の演算処理装置５２１は、通信部５２５を介して固体別情報を受信してＲＡＭ５２４に記憶する。次いで、ステップＳ５０７において、認証装置５０２の演算処理装置５２１は、認証処理部５２２に認証処理を指示する。次いで、ステップＳ５０８において、認証処理部５２２は、電子機器５０１から取得してＲＡＭ５２４に記憶された固体別情報と、ＲＯＭに記憶されていた固体別情報とを比較して、双方の固体別情報が一致しているか否かを確認する。次いで、ステップＳ５０９において、双方の固体別情報が一致していることを確認した場合、認証処理部５２２は、双方の固体別情報が一致していることを認証装置５０２の演算処理装置５２１に通知する。認証装置５０２の演算処理装置５２１は、双方の固体別情報が一致していることを認証処理部５２２から通知されると、双方の固体別情報が一致していることを確認する。
【００９４】
乱数生成器１では、乱数判定回路５０は、第１クロック信号及び第１クロック信号と周波数が相違する第２クロック信号が入力されたときに、ＲＳラッチ回路１０が乱数を出力するか否かを判定するので、乱数を出力するＲＳラッチ回路の比率が向上する。一例では、従来の乱数生成器では、乱数を出力したＲＳラッチ回路は２５６個のうち３０個であったが、乱数生成器１では、乱数を出力したＲＳラッチ回路は２５６個のうち５１個であった。
【００９５】
乱数生成器１では、乱数を出力するＲＳラッチ回路の比率が高くなるので、同数のＲＳラッチ回路が搭載された従来の乱数生成器よりもより品質が高い乱数を生成することができる。また、乱数生成器１では、より多くのＲＳラッチ回路を使用して乱数を生成することができるので、温度条件及び電源電圧が変動した場合でも、乱数の品質が低下し難くなる。
【００９６】
また、ラッチＰＵＦ２では、乱数判定回路７０は、第１クロック信号及び第１クロック信号と周波数が相違する第２クロック信号が入力されたときに、ＲＳラッチ回路１０が定数を出力するか否かを判定するので、定数を出力するＲＳラッチ回路の比率が高くなる。一例では、従来のラッチＰＵＦでは、定数を出力したＲＳラッチ回路は２５６個のうち２１０個であったが、ラッチＰＵＦ２では、定数を出力したＲＳラッチ回路は２５６個のうち２３１個であった。
【００９７】
ラッチＰＵＦ２では、定数を出力するＲＳラッチ回路の比率が向上するので、同数のＲＳラッチ回路が搭載された従来の乱数生成器よりも多くの固体別情報のパターン数を提供可能なので、安全性を向上させることができる。上述の比較例では、従来のラッチＰＵＦの固体別情報のパターン数は２210個だったものが、ラッチＰＵＦ２の固体別情報のパターン数は２231個に増加する。
【００９８】
また、ラッチＰＵＦ３は、乱数を出力するＲＳラッチ回路の数を増やすことにより乱数を出力するＲＳラッチ回路の比率を高くすることができる。また、ラッチＰＵＦ３では、乱数判定回路８０は、第１クロック信号及び第２クロック信号が入力された何れの場合でも、ＲＳラッチ回路が乱数が出力したと判定されたときにＲＳラッチ回路の出力端子から乱数が出力される状態を維持する。ラッチＰＵＦ３は、乱数が出力するＲＳラッチ回路を含めて全てのＲＳラッチ回路を使用して固体別情報を生成できる。
【００９９】
乱数生成器１、並びにラッチＰＵＦ２及び３では、ＲＳラッチ回路に入力されるクロック信号は第１クロック信号及び第２クロック信号の２つであるが、周波数が相違する３つ以上のクロック信号の何れかが選択される構成としてもよい。ラッチＰＵＦ３において、３つ以上のクロック信号の何れかが選択される構成とする場合、何れのクロック信号が入力された場合でもＲＳラッチ回路の出力が定数であると判定されたとき、選択されたクロック信号の何れかを選択すればよい。好適には、選択されたクロック信号の中で最も周波数が低いクロック信号を選択することができる。
【０１００】
ラッチＰＵＦ３では、乱数判定回路８０は、第１クロック信号及び第２クロック信号がそれぞれ入力された場合に共に、定数が出力されていると判定されたときに、ＲＳラッチ回路の出力端子から出力される信号を定数に固定している。しかしながら、第１クロック信号及び第２クロック信号がそれぞれ入力された場合に共に、乱数が生成されていると判定されたときに、ＲＳラッチ回路の出力端子から乱数が出力される状態を維持する構成としてもよい。
【０１０１】
図１４は、乱数判定回路８０の処理フローの他の例を示すフローチャートである。
【０１０２】
ステップＳ６０１〜Ｓ６０８において、乱数判定回路８０は、図７に示すステップＳ２０１〜Ｓ２０８における乱数判定回路７０の処理と同様な処理を実行する。
【０１０３】
次いで、ステップＳ６０９において、ＲＳラッチ回路１０に入力される信号を選択部４０−１の第２信号入力端子に入力される第２クロック信号に維持する。次いで、ステップＳ６１０において、乱数判定回路８０は、ＲＳラッチ回路１０−１の入力信号として第２クロック信号を決定する。次いで処理はステップＳ６１１に進む。そして、処理がステップＳ６１１に進むと、乱数判定回路８０は、ＲＳラッチ回路１０−１〜１０−Ｎの全てについて判定処理を実施したか否かを判定する。その後、ＲＳラッチ回路１０−２から順にＲＳラッチ回路１０−Ｎまで、ステップＳ６０２〜Ｓ６１０の処理を実行すると処理は終了する。
【０１０４】
図１４に示す例では、ラッチＰＵＦ３は、定数を出力するＲＳラッチ回路の数を増やすことにより定数を出力するＲＳラッチ回路の比率を高くすることができる。
【０１０５】
また、ラッチＰＵＦ３では、判定回路３０１−１〜３０１−Ｎは、乱数が入力されたときに、入力された乱数の中にＬレベルの信号が多いときに「０１」信号を出力し、入力された乱数の中にＨレベルの信号が多いときに「１０」信号を出力する。しかしながら、判定回路３０１−１〜３０１−Ｎは、他の構成を採用してもよい。例えば、入力された乱数の中にＬレベルの信号が多いときに「１０」信号を出力し、入力された乱数の中にＨレベルの信号が多いときに「０１」信号を出力する構成としてもよい。また、所定のクロック周期の間に入力された乱数の中に含まれるＬレベル及びＨレベルの信号の数にかかわらず、乱数が入力されたときに、「１０」信号又は「０１」信号を出力する構成としてもよい。
【０１０６】
また、電子機器４００は、乱数生成器１が生成する乱数を暗号鍵として使用して暗号化処理及び復号化処理を実行するが、乱数生成器１の代わりにラッチＰＵＦ２又は３を搭載し、ラッチＰＵＦ２又は３が生成する固体別情報を暗号鍵として使用してもよい。また、図１４に示す処理を実行する乱数判定回路を有するラッチＰＵＦが生成する固体別情報を暗号鍵として使用してもよい。
【０１０７】
また、認証システム５００は、ラッチＰＵＦ２が生成する固体別情報を使用して認証処理を実行するが、ラッチＰＵＦ２の代わりにラッチＰＵＦ３を電子機器５０１に搭載して、ラッチＰＵＦ３が生成する固体別情報を使用して認証処理を実行してもよい。また、図１４に示す処理を実行する乱数判定回路を有するラッチＰＵＦが生成する固体別情報を使用して認証処理を実行してもよい。
【０１０８】
なお、これまで説明した実施形態に関して、以下の付記を更に開示する。
（付記１）
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路を使用して乱数を生成する方法であって、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路から出力される信号を固定する信号を入力し、
前記複数のＲＳラッチ回路それぞれの出力の排他的論理和を演算する、ことを有することを特徴とする方法。
（付記２）
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路を使用して固体別情報を生成する方法であって、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路から出力される信号を固定する信号を入力し、
前記複数のＲＳラッチ回路の出力を使用して個体別情報を生成する、ことを有することを特徴とする方法。
（付記３）
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路を使用して個体別情報を生成する方法であって、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が定数であると判定されたときに、入力された前記クロック信号の何れかを入力信号として選択し、
前記複数のＲＳラッチ回路の出力を使用して個体別情報を生成する、ことを有することを特徴とする方法。
（付記４）
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路を使用して個体別情報を生成する方法であって、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が乱数であると判定されたときに、入力された前記クロック信号の何れかを入力信号として選択し、
前記複数のＲＳラッチ回路の出力を使用して個体別情報を生成する、ことを有することを特徴とする方法。
（付記５）
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路を使用してデータを暗号化する方法であって、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路から出力される信号を固定する信号を入力し、
前記複数のＲＳラッチ回路それぞれの出力の排他的論理和を演算し、
演算された前記乱数を暗号鍵として使用して、データを暗号化する、ことを有することを特徴とする方法。
（付記６）
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路を使用してデータを暗号化する方法であって、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路から出力される信号を固定する信号を入力し、
前記複数のＲＳラッチ回路の出力を使用して個体別情報を生成し、
生成された前記個体別情報を暗号鍵として使用して、データを暗号化する、ことを有することを特徴とする方法。
（付記７）
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路を使用してデータを暗号化する方法であって、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が定数であると判定されたときに、入力された前記クロック信号の何れかを入力信号として選択し、
前記複数のＲＳラッチ回路の出力を使用して個体別情報を生成し、
生成された前記個体別情報を暗号鍵として使用して、データを暗号化する、ことを有することを特徴とする方法。
（付記８）
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路を使用してデータを暗号化する方法であって、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が乱数であると判定されたときに、入力された前記クロック信号の何れかを入力信号として選択し、
前記複数のＲＳラッチ回路の出力を使用して個体別情報を生成し、
生成された前記個体別情報を暗号鍵として使用して、データを暗号化する、ことを有することを特徴とする方法。
（付記９）
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路を使用して生成された固体別情報を認証する方法であって、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路から出力される信号を固定する信号を入力し、
前記複数のＲＳラッチ回路の出力を使用して個体別情報を生成し、
生成された前記個体別情報を個体別情報を認証する、ことを有することを特徴とする方法。
（付記１０）
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路を使用して生成された固体別情報を認証する方法であって、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が定数であると判定されたときに、入力された前記クロック信号の何れかを入力信号として選択し、
前記複数のＲＳラッチ回路の出力を使用して個体別情報を生成し、
生成された前記個体別情報を個体別情報を認証する、ことを有することを特徴とする方法。
（付記１１）
入力されるクロック信号に応じて、それぞれがメタステーブルになる複数のＲＳラッチ回路を使用して生成された固体別情報を認証する方法であって、
前記複数のＲＳラッチ回路のそれぞれの出力が乱数又は定数の何れかであるかを判定し、
ＲＳラッチ回路の出力が定数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を維持し、
ＲＳラッチ回路の出力が乱数であると判定されたときに、前記ＲＳラッチ回路に入力されるクロック信号を、周波数が異なる他のクロック信号に変更し、
周波数が異なるクロック信号の何れを入力した場合にも、ＲＳラッチ回路の出力が乱数であると判定されたときに、入力された前記クロック信号の何れかを入力信号として選択し、
前記複数のＲＳラッチ回路の出力を使用して個体別情報を生成し、
生成された前記個体別情報を個体別情報を認証する、ことを有することを特徴とする方法。
【符号の説明】
【０１０９】
１    乱数生成器
２、３、２００、３００    ラッチＰＵＦ（個体別情報生成装置）
１０、１０−１〜１０−Ｎ    ＲＳラッチ回路
２０    出力選択回路
３０−１〜３０−Ｎ    フリップフロップ
４０−１〜４０−Ｎ    選択部
５０、７０、８０    乱数判定回路（判定部）
６０    排他的論理和素子
９０    個体別情報生成部
３０１−１〜３０１−Ｎ    判定回路
４００、５０１    電子機器
５００    認証システム
５０２    認証装置
【図１】
2015106172.tif 000003
【図２】
2015106172.tif 000004
【図３】
2015106172.tif 000005
【図４】
2015106172.tif 000006
【図５】
2015106172.tif 000007
【図６】
2015106172.tif 000008
【図７】
2015106172.tif 000009
【図８】
2015106172.tif 000010
【図９】
2015106172.tif 000011
【図１０】
2015106172.tif 000012
【図１１】
2015106172.tif 000013
【図１２】
2015106172.tif 000014
【図１３】
2015106172.tif 000015
【図１４】
2015106172.tif 000016