JP6423270B2 - 乱数生成装置及び乱数生成方法 - Google Patents

乱数生成装置及び乱数生成方法 Download PDF

Info

Publication number
JP6423270B2
JP6423270B2 JP2014266706A JP2014266706A JP6423270B2 JP 6423270 B2 JP6423270 B2 JP 6423270B2 JP 2014266706 A JP2014266706 A JP 2014266706A JP 2014266706 A JP2014266706 A JP 2014266706A JP 6423270 B2 JP6423270 B2 JP 6423270B2
Authority
JP
Japan
Prior art keywords
random number
output value
oscillation circuit
oscillation
number generation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014266706A
Other languages
English (en)
Other versions
JP2016126517A (ja
Inventor
武史 山本
武史 山本
崇彦 菅原
崇彦 菅原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MegaChips Corp
Original Assignee
MegaChips Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MegaChips Corp filed Critical MegaChips Corp
Priority to JP2014266706A priority Critical patent/JP6423270B2/ja
Priority to US14/974,081 priority patent/US20160179472A1/en
Publication of JP2016126517A publication Critical patent/JP2016126517A/ja
Application granted granted Critical
Publication of JP6423270B2 publication Critical patent/JP6423270B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、乱数生成装置及び乱数生成方法に関し、特に、真性乱数の生成装置及び生成方法に関する。
近年における情報技術の発達に伴い、第三者による盗聴、改ざん、なりすまし等の犯罪が増加する傾向にある。そのため、暗号化による情報セキュリティが重要になってきており、暗号化において乱数の利用は不可欠である。
従来は、関数の組み合わせによる計算式を用いた演算によって生成される擬似乱数が多く使用されていたが、関数や初期設定が人為的に漏洩する危険性や、第三者によって乱数生成パターンが予測され得る可能性があった。そのため、擬似乱数に代えて、再現不可能性及び予測不可能性の高い真性乱数が求められるようになった。
一般的な真性乱数生成器では、二値論理の「0」と「1」とが交互に繰り返される出力値をリング発振器から出力し、その出力値をシフトレジスタで所定のサンプリングクロックを用いてサンプリングすることによって、真性乱数が生成される。
なお、下記特許文献1には、乱数出力レジスタから出力された乱数出力に基づいてシステムクロックの整数倍のサンプリングクロックを生成し、当該サンプリングクロックを用いて発振器の出力値をサンプリングすることにより、乱数出力レジスタで乱数を生成する真性乱数生成装置が開示されている。
特開2005−174206号公報
上記の通り一般的な真性乱数生成器では、リング発振器からの出力値をシフトレジスタでサンプリングすることによって、真性乱数が生成される。しかし、半導体デバイスは個々に特性のばらつきがあり、そのばらつきは一様ではない。従って、半導体デバイスの一種であるリング発振器の特性も個々に異なるため、生成される乱数の真性度(再現不可能性及び予測不可能性)に関しても個々にばらつきが生じる。つまり、リング発振器の特性に応じて、真性度の高い好適な乱数を生成するデバイスと、そうでないデバイスとが存在する。
本発明はかかる事情に鑑みて成されたものであり、発振回路の特性に拘わらず真性度の高い乱数を生成することが可能な、乱数生成装置及び乱数生成方法を得ることを目的とするものである。
本発明の第1の態様に係る乱数生成装置は、二値論理の「0」と「1」とが交互に繰り返される出力値を出力する発振回路と、前記発振回路の出力値を所定のサンプリングクロックに基づいてサンプリングすることにより、乱数を生成する乱数生成回路と、前記発振回路の発振周波数を可変に設定する第1の設定部と、前記発振回路の出力値の有効バス幅を可変に設定する第2の設定部と、を備えることを特徴とするものである。
第1の態様に係る乱数生成装置によれば、第1の設定部は、発振回路の発振周波数を可変に設定する。従って、発振回路の特性に起因して乱数の真性度が低い場合には、真性度の高い乱数が得られる他の周波数に設定し直すことにより、発振回路の特性に拘わらず真性度の高い乱数を生成することが可能となる。また、特定の論理ゲートの故障等に起因して出荷時に設定した発振周波数では乱数が生成されなくなった場合には、他の周波数に設定し直すことにより所望の乱数を生成でき、その結果、装置の信頼性を向上することが可能となる。
また、第1の態様に係る乱数生成装置によれば、第2の設定部は、発振回路の出力値の有効バス幅を可変に設定する。従って、乱数を取得する外部装置の必要バス幅に対して過不足のない有効バス幅の出力値を発振回路が出力し、乱数生成回路が当該出力値をサンプリングすることにより、乱数生成回路において必要バス幅の乱数を効率的に生成できる。その結果、乱数生成回路におけるサンプリング効率を向上することが可能となる。また、必要最小限の有効バス幅の出力値を出力することにより、消費電力を低減できるとともに、クロックのスイッチングノイズ等に起因する誤動作の発生を抑制することが可能となる。
本発明の第2の態様に係る乱数生成装置は、二値論理の「0」と「1」とが交互に繰り返される出力値を出力する発振回路と、前記発振回路の出力値を所定のサンプリングクロックに基づいてサンプリングすることにより、乱数を生成する乱数生成回路と、前記発振回路の発振周波数を可変に設定する第1の設定部と、前記発振回路の出力値に基づいて、各ビットにおいて二値論理の「0」と「1」とが交互に繰り返される複数Nビットのバス幅を有する出力値を生成し、Nビットの出力値の各ビットにおいて前記発振回路からの出力ビット位置を可変に設定する第2の設定部と、を備えることを特徴とするものである。
第2の態様に係る乱数生成装置によれば、第1の設定部は、発振回路の発振周波数を可変に設定する。従って、発振回路の特性に起因して乱数の真性度が低い場合には、真性度の高い乱数が得られる他の周波数に設定し直すことにより、発振回路の特性に拘わらず真性度の高い乱数を生成することが可能となる。また、特定の論理ゲートの故障等に起因して出荷時に設定した発振周波数では乱数が生成されなくなった場合には、他の周波数に設定し直すことにより所望の乱数を生成でき、その結果、装置の信頼性を向上することが可能となる。
また、第2の態様に係る乱数生成装置によれば、第2の設定部は、発振回路の出力値に基づいて複数ビットのバス幅を有する出力値を生成し、乱数生成回路は、第2の設定部の出力値をサンプリングすることにより乱数を生成する。従って、一つの発振回路を用いて複数ビットのバス幅を有する乱数を生成できるため、複数の発振回路を用いる場合と比較して回路規模を削減できる。また、第2の設定部は、Nビットの出力値の各ビットにおいて発振回路からの出力ビット位置を可変に設定する。従って、Nビットの出力値の各ビット間で位相を異ならせることができるため、生成される乱数の真性度を高めることが可能となる。
本発明の第の態様に係る乱数生成装置は、第1又は第2の態様に係る乱数生成装置において特に、前記第1の設定部は、外部入力された選択信号に基づいて、前記発振回路の発振周波数を設定することを特徴とするものである。
の態様に係る乱数生成装置によれば、第1の設定部は、外部入力された選択信号に基づいて、発振回路の発振周波数を設定する。従って、製品出荷前のテストにおいて乱数の真性度が低い場合には、真性度の高い乱数を生成し得る周波数を探索して、選択信号によって当該周波数に設定することにより、真性度の高い乱数を生成し得る製品を出荷できる。その結果、製品の歩留まりを向上することが可能となる。
本発明の第の態様に係る乱数生成装置は、第1又は第2の態様に係る乱数生成装置において特に、前記第1の設定部は、前記乱数生成回路によって生成された乱数に基づいて、前記発振回路の発振周波数を設定することを特徴とするものである。
の態様に係る乱数生成装置によれば、第1の設定部は、乱数生成回路によって生成された乱数に基づいて、発振回路の発振周波数を設定する。従って、発振回路の発振周波数が、乱数生成回路によって生成された乱数に応じて不規則に変動するため、生成される乱数の真性度を高めることが可能となる。
本発明の第の態様に係る乱数生成装置は、第の態様に係る乱数生成装置において特に、前記第1の設定部は、前記乱数生成回路から乱数が出力される毎に、当該乱数に基づいて前記発振回路の発振周波数を設定することを特徴とするものである。
の態様に係る乱数生成装置によれば、第1の設定部は、乱数生成回路から乱数が出力される毎に、当該乱数に基づいて発振回路の発振周波数を設定する。従って、乱数生成回路から乱数が出力される毎に発振回路の発振周波数が変動するため、生成される乱数の真性度をさらに高めることが可能となる。
本発明の第の態様に係る乱数生成装置は、第1〜第のいずれか一つの態様に係る乱数生成装置において特に、前記発振回路は、直列に接続された複数奇数個の論理ゲートを含み、前記第1の設定部は、複数の入力端子を有するセレクタを含み、前記セレクタの各々の前記入力端子には、全ての前記論理ゲートのうち異なる前記論理ゲートの出力値が入力されることを特徴とするものである。
の態様に係る乱数生成装置によれば、発振回路は、直列に接続された複数奇数個の論理ゲートを含み、第1の設定部は、複数の入力端子を有するセレクタを含み、セレクタの各々の入力端子には、全ての論理ゲートのうち異なる論理ゲートの出力値が入力される。これにより、発振周波数を可変に設定可能な発振回路を、簡易な構成によって低コストで実現することが可能となる。
本発明の第の態様に係る乱数生成方法は、(A)二値論理の「0」と「1」とが交互に繰り返される出力値を発振回路から出力するステップと、(B)前記発振回路の出力値を所定のサンプリングクロックに基づいてサンプリングすることにより、乱数を生成するステップと、(C)前記発振回路の発振周波数を可変に設定するステップと、(D)前記発振回路の出力値の有効バス幅を可変に設定するステップと、を備えることを特徴とするものである。
の態様に係る乱数生成方法によれば、ステップ(C)において、発振回路の発振周波数が可変に設定される。従って、発振回路の特性に起因して乱数の真性度が低い場合には、真性度の高い乱数が得られる他の周波数に設定し直すことにより、発振回路の特性に拘わらず真性度の高い乱数を生成することが可能となる。また、特定の論理ゲートの故障等に起因して出荷時に設定した発振周波数では乱数が生成されなくなった場合には、他の周波数に設定し直すことにより所望の乱数を生成でき、その結果、装置の信頼性を向上することが可能となる。
また、第7の態様に係る乱数生成方法によれば、ステップ(D)において、発振回路の出力値の有効バス幅が可変に設定される。従って、乱数を取得する外部装置の必要バス幅に対して過不足のない有効バス幅の出力値を発振回路が出力し、ステップ(B)において当該出力値をサンプリングすることにより、ステップ(B)において必要バス幅の乱数を効率的に生成できる。その結果、ステップ(B)におけるサンプリング効率を向上することが可能となる。また、必要最小限の有効バス幅の出力値を出力することにより、消費電力を低減できるとともに、クロックのスイッチングノイズ等に起因する誤動作の発生を抑制することが可能となる。
本発明の第8の態様に係る乱数生成方法は、(A)二値論理の「0」と「1」とが交互に繰り返される出力値を発振回路から出力するステップと、(B)前記発振回路の出力値を所定のサンプリングクロックに基づいてサンプリングすることにより、乱数を生成するステップと、(C)前記発振回路の発振周波数を可変に設定するステップと、(D)前記発振回路の出力値に基づいて、各ビットにおいて二値論理の「0」と「1」とが交互に繰り返される複数Nビットのバス幅を有する出力値を生成し、Nビットの出力値の各ビットにおいて前記発振回路からの出力ビット位置を可変に設定するステップと、を備えることを特徴とするものである。
第8の態様に係る乱数生成方法によれば、ステップ(C)において、発振回路の発振周波数が可変に設定される。従って、発振回路の特性に起因して乱数の真性度が低い場合には、真性度の高い乱数が得られる他の周波数に設定し直すことにより、発振回路の特性に拘わらず真性度の高い乱数を生成することが可能となる。また、特定の論理ゲートの故障等に起因して出荷時に設定した発振周波数では乱数が生成されなくなった場合には、他の周波数に設定し直すことにより所望の乱数を生成でき、その結果、装置の信頼性を向上することが可能となる。
また、第8の態様に係る乱数生成方法によれば、ステップ(D)において、発振回路の出力値に基づいて複数ビットのバス幅を有する出力値を生成し、ステップ(B)において、当該出力値をサンプリングすることにより乱数が生成される。従って、一つの発振回路を用いて複数ビットのバス幅を有する乱数を生成できるため、複数の発振回路を用いる場合と比較して回路規模を削減できる。また、ステップ(D)においては、Nビットの出力値の各ビットにおいて発振回路からの出力ビット位置が可変に設定される。従って、Nビットの出力値の各ビット間で位相を異ならせることができるため、生成される乱数の真性度を高めることが可能となる。
本発明によれば、発振回路の特性に拘わらず真性度の高い乱数を生成することが可能となる。
本発明の実施の形態1に係る乱数生成装置の構成を示す図である。 サンプリング回路の構成を示す図である。 発振回路の構成を示す図である。 本発明の実施の形態2に係る乱数生成装置の構成を示す図である。 発振回路の構成を示す図である。 本発明の実施の形態3に係る乱数生成装置の構成を示す図である。 発振回路の構成を示す図である。 本発明の実施の形態4に係る乱数生成装置の構成を示す図である。 発振回路の構成を示す図である。 第1の変形例に係る乱数生成装置の構成を示す図である。 第2の変形例に係る乱数生成装置の構成を示す図である。 第3の変形例に係る乱数生成装置の構成を示す図である。 第4の変形例に係る乱数生成装置の構成を示す図である。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
<実施の形態1>
図1は、本発明の実施の形態1に係る乱数生成装置1の構成を示す図である。図1に示すように乱数生成装置1は、発振回路2と、発振回路2の後段に接続されたサンプリング回路3とを備えて構成されている。
発振回路2は、二値論理の「0」と「1」とが交互に繰り返される出力値S3を出力する。サンプリング回路3は、乱数生成回路として機能し、発振回路2の出力値S3をサンプリングクロックSCに基づいてサンプリングすることにより、真性乱数S4を生成する。
図2は、サンプリング回路3の構成を示す図である。サンプリング回路3は、複数M個のフリップフロップ5(1)〜5(M)が直列に接続された構成を有している。各フリップフロップ5には、サンプリングクロックSCが共通に入力される。
初段のフリップフロップ5(1)のD端子には、発振回路2から出力値S3が入力される。二段目以降のフリップフロップ5(2)〜5(M)のD端子には、前段のフリップフロップ5(1)〜5(M−1)のQ端子からの出力が入力される。M個のフリップフロップ5(1)〜5(M)が直列に接続され、各フリップフロップ5からの出力が配列されることによって、合計Mビットの真性乱数S4がサンプリング回路3から出力される。
図3は、発振回路2の構成を示す図である。発振回路2は、複数の奇数個の論理ゲートが直列に接続された構成を有している。図3に示した例では、発振回路2は17個の論理ゲートG1〜G17によって構成されており、初段の論理ゲートG1にはNAND回路が用いられ、二段目以降の論理ゲートG2〜G17にはインバータ回路が用いられる。
セレクタ6は、複数の入力端子を有している。図3に示した例では、セレクタ6は8個の入力端子T1〜T8を有している。入力端子T1には、3段目の論理ゲートG3の出力値D3が入力される。同様に、入力端子T2には5段目の論理ゲートG5の出力値D5が、入力端子T3には7段目の論理ゲートG7の出力値D7が、入力端子T4には9段目の論理ゲートG9の出力値D9が、入力端子T5には11段目の論理ゲートG11の出力値D11が、入力端子T6には13段目の論理ゲートG13の出力値D13が、入力端子T7には15段目の論理ゲートG15の出力値D15が、入力端子T8には最終段の論理ゲートG17の出力値D17が、それぞれ入力される。
セレクタ6は、乱数生成装置1の外部装置から入力された選択信号S2に基づいて、出力値D3,D5,D7,D9,D11,D13,D15,D17の中から一の出力値を選択し、その選択した出力値を出力値S3として出力する。つまり、セレクタ6は、発振回路2の発振周波数を可変に設定する設定部として機能する。例えば、出力値D3が選択された場合には、発振回路2の発振周波数は3段構成のリングオシレータに相当する発振周波数に設定され、出力値D5が選択された場合には、発振回路2の発振周波数は5段構成のリングオシレータに相当する発振周波数に設定される。
初段の論理ゲートG1の一方入力端子には、発振回路2の動作開始を指示するためのイネーブル信号S1が入力される。論理ゲートG1の他方入力端子には、セレクタ6からの出力値S3が入力される。二段目以降の論理ゲートG2〜G17には、前段の論理ゲートG1〜G16の出力が入力される。
以下、本実施の形態1に係る乱数生成装置1の動作について、図1〜3を参照しつつ説明する。以下の動作は、例えば、製品出荷前のテスト時に実行される。
真性乱数S4の生成が要求されていない期間において、イネーブル信号S1はネゲートされており、それにより発振回路2の動作は停止されている。
真性乱数S4の生成が要求されると、イネーブル信号S1がアサートされる。イネーブル信号S1がアサートされることにより、発振回路2は発振動作を開始する。これにより、発振回路2から出力値D3,D5,D7,D9,D11,D13,D15,D17が出力される。
セレクタ6は、選択信号S2に基づいて、出力値D3,D5,D7,D9,D11,D13,D15,D17の中から一の出力値を選択し、その選択した出力値を出力値S3として出力する。出力値S3は、サンプリング回路3に入力される。この例では、セレクタ6は入力端子T1(出力値D3)を選択しているものとする。この場合、発振回路2の発振周波数は3段構成のリングオシレータに相当する発振周波数に設定される。
サンプリング回路3は、サンプリングクロックSCに同期して出力値S3をサンプリングする。図2を参照して、サンプリングされた出力値S3は初段のフリップフロップ5(1)に入力され、保持される。サンプリング回路3は、次のサンプリングクロックSCが入力されることにより、その時点で発振回路2が出力している出力値S3をサンプリングする。サンプリングされた出力値S3は初段のフリップフロップ5(1)に入力され、保持される。また、初段のフリップフロップ5(1)がそれまで保持していた出力値S3(前回のサンプリングクロックSCに基づいてサンプリングした出力値S3)は、初段のフリップフロップ5(1)から二段目のフリップフロップ5(2)にシフトされる。上記と同様の動作をM回繰り返すことにより、M個のフリップフロップ5(1)〜5(M)の各々に出力値S3が保持される。そして、各フリップフロップ5(1)〜5(M)が保持している出力値S3を各々のQ端子から出力し、これらM個の出力値S3を配列することによって、合計Mビットの乱数S4がサンプリング回路3から出力される。
次に、生成された乱数S4の真性度(再現不可能性及び予測不可能性)が評価される。乱数S4の真性度が規定値より低い場合には、外部装置からセレクタ6に選択信号S2を入力することにより、現在選択されている入力端子T1とは異なる入力端子(例えば入力端子T2)を選択する。つまり、発振回路2の発振周波数を変更する。そして、上記と同様に乱数S4を生成し、その生成した乱数S4の真性度を再び評価する。規定値より高い真性度の乱数S4が得られるまで、セレクタ6による発振周波数の変更と、生成された乱数S4の評価とを繰り返す。
このように本実施の形態1に係る乱数生成装置1によれば、セレクタ6(設定部)は、発振回路2の発振周波数を可変に設定する。従って、発振回路2の特性に起因して乱数S4の真性度が低い場合には、真性度の高い乱数S4が得られる他の周波数に設定し直すことにより、発振回路2の特性に拘わらず真性度の高い乱数S4を生成することが可能となる。また、特定の論理ゲートの故障等に起因して出荷時に設定した発振周波数では乱数S4が生成されなくなった場合には、他の周波数に設定し直すことにより所望の乱数S4を生成でき、その結果、装置の信頼性を向上することが可能となる。
また、本実施の形態1に係る乱数生成装置1によれば、セレクタ6は、外部入力された選択信号S2に基づいて、発振回路2の発振周波数を設定する。従って、製品出荷前のテストにおいて乱数S4の真性度が低い場合には、真性度の高い乱数S4を生成し得る周波数を探索して、選択信号S2によって当該周波数に設定することにより、真性度の高い乱数S4を生成し得る製品を出荷できる。その結果、製品の歩留まりを向上することが可能となる。
また、本実施の形態1に係る乱数生成装置1によれば、発振回路2は、直列に接続された複数奇数個の論理ゲートG1〜G17を含み、セレクタ6は、複数の入力端子T1〜T8を有し、セレクタ6の入力端子T1〜T8には、全ての論理ゲートG1〜G17のうち異なる論理ゲートの出力値が入力される。これにより、発振周波数を可変に設定可能な発振回路2を、簡易な構成によって低コストで実現することが可能となる。
<実施の形態2>
図4は、本発明の実施の形態2に係る乱数生成装置1の構成を示す図である。図4の接続関係で示すように、乱数生成装置1は、発振回路2、サンプリング回路3、及び設定回路7を備えて構成されている。設定回路7は、サンプリング回路3によって生成された真性乱数S4に基づいて選択信号S5を生成する。設定回路7は、サンプリング回路3から乱数S4が出力される毎に選択信号S5を出力する。
図5は、発振回路2の構成を示す図である。セレクタ6は、設定回路7から入力された選択信号S5に基づいて、出力値D3,D5,D7,D9,D11,D13,D15,D17の中から一の出力値を選択し、その選択した出力値を出力値S3として出力する。
以下、本実施の形態2に係る乱数生成装置1の動作について、図4,5を参照しつつ説明する。以下の動作は、例えば、製品出荷後の実運用時に実行される。
真性乱数S4の生成が要求されていない期間において、イネーブル信号S1はネゲートされており、それにより発振回路2の動作は停止されている。
真性乱数S4の生成が要求されると、イネーブル信号S1がアサートされる。イネーブル信号S1がアサートされることにより、発振回路2は発振動作を開始する。これにより、発振回路2から出力値D3,D5,D7,D9,D11,D13,D15,D17が出力される。
セレクタ6は、選択信号S5に基づいて、出力値D3,D5,D7,D9,D11,D13,D15,D17の中から一の出力値を選択し、その選択した出力値を出力値S3として出力する。出力値S3は、サンプリング回路3に入力される。
サンプリング回路3は、サンプリングクロックSCに同期して出力値S3をサンプリングすることにより、乱数S4を生成して出力する。
設定回路7は、乱数S4に基づいて選択信号S5を生成する。本実施の形態の例ではセレクタ6は8個の入力端子T1〜T8を有しており、選択信号S5の必要ビット幅は3ビットであるため、設定回路7は、Mビットの乱数S4の中から特定の3ビット(例えば上位3ビット又は下位3ビット)を抽出することにより、3ビットの選択信号S5を生成する。あるいは、排他的論理和等の演算によって、乱数S4から3ビットの選択信号S5を生成しても良い。
セレクタ6は、設定回路7から入力された選択信号S5に基づいて、出力値D3,D5,D7,D9,D11,D13,D15,D17の中から一の出力値を選択し、その選択した出力値を出力値S3として出力する。以降は上記と同様の動作が繰り返され、サンプリング回路3によって乱数S4が生成される毎に、当該乱数S4に基づいてセレクタ6によって発振回路2の発振周波数が変更される。
このように本実施の形態2に係る乱数生成装置1によれば、セレクタ6(設定部)は、サンプリング回路3によって生成された乱数S4に基づいて、発振回路2の発振周波数を設定する。従って、発振回路2の発振周波数が、サンプリング回路3によって生成された乱数S4に応じて不規則に変動するため、生成される乱数S4の真性度を高めることが可能となる。
また、本実施の形態2に係る乱数生成装置1によれば、セレクタ6は、サンプリング回路3から乱数S4が出力される毎に、当該乱数S4に基づいて発振回路2の発振周波数を設定する。従って、サンプリング回路3から乱数S4が出力される毎に発振回路2の発振周波数が変動するため、生成される乱数S4の真性度をさらに高めることが可能となる。
<実施の形態3>
図6は、本発明の実施の形態3に係る乱数生成装置1の構成を示す図である。図6に示すように乱数生成装置1は、発振回路2と、発振回路2の後段に接続されたサンプリング回路3とを備えて構成されている。
図7は、発振回路2の構成を示す図である。発振回路2は、複数の奇数個の論理ゲートが直列に接続された構成を有している。図7に示した例では、発振回路2は17個の論理ゲートG1〜G17によって構成されており、初段の論理ゲートG1にはNAND回路が用いられ、二段目以降の論理ゲートG2〜G17にはインバータ回路が用いられる。
セレクタ7は、複数の入力端子を有している。図7に示した例では、セレクタ7は8個の入力端子T1〜T8を有している。入力端子T1には、3段目の論理ゲートG3の出力値D3が入力される。入力端子T2には、出力値D3と5段目の論理ゲートG5の出力値D5とが入力される。入力端子T3には、出力値D3,D5と7段目の論理ゲートG7の出力値D7とが入力される。入力端子T4には、出力値D3,D5,D7と9段目の論理ゲートG9の出力値D9とが入力される。入力端子T5には、出力値D3,D5,D7,D9と11段目の論理ゲートG11の出力値D11とが入力される。入力端子T6には、出力値D3,D5,D7,D9,D11と13段目の論理ゲートG13の出力値D13とが入力される。入力端子T7には、出力値D3,D5,D7,D9,D11,D13と15段目の論理ゲートG15の出力値D15とが入力される。入力端子T8には、出力値D3,D5,D7,D9,D11,D13,D15と最終段の論理ゲートG17の出力値D17とが入力される。
セレクタ7は、乱数生成装置1の外部装置から入力された選択信号S6に基づいて、入力端子T1〜T8の中から一の入力端子を選択し、その選択した入力端子に入力されている出力値を出力値S3として出力する。つまり、セレクタ7は、出力値S3の有効バス幅を可変に設定する設定部として機能する。例えば、入力端子T1が選択された場合には、出力値S3の有効バス幅は1ビットに設定され、入力端子T2が選択された場合には、出力値S3の有効バス幅は2ビットに設定される。
初段の論理ゲートG1の一方入力端子には、発振回路2の動作開始を指示するためのイネーブル信号S1が入力される。論理ゲートG1の他方入力端子には、最終段の論理ゲートG17からの出力値D17が入力される。二段目以降の論理ゲートG2〜G17には、前段の論理ゲートG1〜G16の出力が入力される。
以下、本実施の形態3に係る乱数生成装置1の動作について、図6,7を参照しつつ説明する。以下の動作は、例えば、製品出荷前、又は製品出荷後の実運用時に実行される。
まず、選択信号S6によって、出力値S3の有効バス幅を設定する。例えば、乱数S4を取得する後段の外部装置の必要バス幅に対して過不足のないバス幅を、出力値S3の有効バス幅として設定する。
真性乱数S4の生成が要求されると、イネーブル信号S1がアサートされる。イネーブル信号S1がアサートされることにより、発振回路2は発振動作を開始する。これにより、発振回路2から出力値D3,D5,D7,D9,D11,D13,D15,D17が出力される。
セレクタ7は、選択信号S6に基づいて入力端子T1〜T8の中から一の入力端子を選択し、その選択した入力端子に入力されている出力値を出力値S3として出力する。
サンプリング回路3は、サンプリングクロックSCに同期して出力値S3をサンプリングすることにより、乱数S4を生成して出力する。
このように本実施の形態3に係る乱数生成装置1によれば、セレクタ7(設定部)は、外部入力された選択信号S6に基づいて、セレクタ7の出力値S3の有効バス幅を可変に設定する。従って、乱数S4を取得する後段の外部装置の必要バス幅に対して過不足のない有効バス幅の出力値S3をセレクタ7が出力し、サンプリング回路3が当該出力値S3をサンプリングすることにより、サンプリング回路3において必要バス幅の乱数S4を効率的に生成できる。その結果、サンプリング回路3におけるサンプリング効率を向上することが可能となる。また、必要最小限の有効バス幅の出力値S3をセレクタ7が出力することにより、消費電力を低減できるとともに、クロックのスイッチングノイズ等に起因する誤動作の発生を抑制することが可能となる。
また、本実施の形態3に係る乱数生成装置1によれば、発振回路2は、直列に接続された複数奇数個の論理ゲートG1〜G17を含み、セレクタ7は、複数の入力端子T1〜T8を有し、セレクタ7の各入力端子T1〜T8には、全ての論理ゲートG1〜G17のうち異なる数の論理ゲートの出力値が入力される。これにより、出力値S3の有効バス幅を可変に設定可能な発振回路2を、簡易な構成によって低コストで実現することが可能となる。
<実施の形態4>
図8は、本発明の実施の形態4に係る乱数生成装置1の構成を示す図である。図8に示すように乱数生成装置1は、発振回路2と、発振回路2の後段に接続されたサンプリング回路3とを備えて構成されている。
図9は、発振回路2の構成を示す図である。発振回路2は、複数の奇数個の論理ゲートが直列に接続された構成を有している。図9に示した例では、発振回路2は17個の論理ゲートG1〜G17によって構成されており、初段の論理ゲートG1にはNAND回路が用いられ、二段目以降の論理ゲートG2〜G17にはインバータ回路が用いられる。
また、出力値S3のバス幅Nの各ビットに対応して、セレクタ8が設けられている。本実施の形態の例では出力値S3のバス幅は8ビットであり、8個のセレクタ81〜88が実装される。
各セレクタ8は、複数の入力端子を有している。図9に示した例では、セレクタ8は8個の入力端子T1〜T8を有している。入力端子T1には、3段目の論理ゲートG3の出力値D3が入力される。同様に、入力端子T2には5段目の論理ゲートG5の出力値D5が、入力端子T3には7段目の論理ゲートG7の出力値D7が、入力端子T4には9段目の論理ゲートG9の出力値D9が、入力端子T5には11段目の論理ゲートG11の出力値D11が、入力端子T6には13段目の論理ゲートG13の出力値D13が、入力端子T7には15段目の論理ゲートG15の出力値D15が、入力端子T8には最終段の論理ゲートG17の出力値D17が、それぞれ入力される。
セレクタ8は、乱数生成装置1の外部装置から入力された選択信号S7(S71〜S78)に基づいて、入力端子T1〜T8の中から一の入力端子を選択し、その選択した入力端子に入力されている出力値を出力値S3(S31〜S38)として出力する。つまり、セレクタ8は、Nビットの出力値S3の各ビットにおいて発振回路2からの出力ビット位置を可変に設定する設定部として機能する。例えば、セレクタ81において入力端子T1が選択された場合には、出力ビット位置は論理ゲートG3に設定され、出力値S31の位相は論理ゲート3段分の遅延量に対応する位相となる。また、セレクタ81において入力端子T2が選択された場合には、出力ビット位置は論理ゲートG5に設定され、出力値S31の位相は論理ゲート5段分の遅延量に対応する位相となる。
初段の論理ゲートG1の一方入力端子には、発振回路2の動作開始を指示するためのイネーブル信号S1が入力される。論理ゲートG1の他方入力端子には、最終段の論理ゲートG17からの出力値D17が入力される。二段目以降の論理ゲートG2〜G17には、前段の論理ゲートG1〜G16の出力が入力される。
以下、本実施の形態4に係る乱数生成装置1の動作について、図8,9を参照しつつ説明する。以下の動作は、例えば、製品出荷前、又は製品出荷後の実運用時に実行される。
まず、選択信号S71〜S78によって、Nビットの出力値S3の各ビットの周波数をそれぞれ設定する。例えば、出力値S3の全てのビット(S31〜S38)において周波数を異ならせたい場合には、セレクタ81〜88が互いに異なる入力端子T1〜T8を選択するように、選択信号S71〜S78を設定する。
真性乱数S4の生成が要求されると、イネーブル信号S1がアサートされる。イネーブル信号S1がアサートされることにより、発振回路2は発振動作を開始する。これにより、発振回路2から出力値D3,D5,D7,D9,D11,D13,D15,D17が出力される。
セレクタ81〜88は、選択信号S71〜S78に基づいて入力端子T1〜T8の中から一の入力端子をそれぞれ選択し、その選択した入力端子に入力されている出力値を出力値S31〜S38としてそれぞれ出力する。
サンプリング回路3は、サンプリングクロックSCに同期して出力値S31〜S38をサンプリングすることにより、乱数S4を生成して出力する。
このように本実施の形態4に係る乱数生成装置1によれば、セレクタ8(設定部)は、発振回路2の出力値D3,D5,D7,D9,D11,D13,D15,D17に基づいて複数Nビットのバス幅を有する出力値S3を生成し、サンプリング回路3は、セレクタ8の出力値S3をサンプリングすることにより乱数S4を生成する。従って、一つの発振回路2を用いて複数ビットのバス幅を有する乱数S4を生成できるため、複数の発振回路を用いる場合と比較して回路規模を削減できる。また、セレクタ8は、外部入力された選択信号S7に基づいて、Nビットの出力値S3の各ビットにおいて発振回路2からの出力ビット位置を可変に設定する。従って、Nビットの出力値S3の各ビット間で位相を異ならせることができるため、生成される乱数S4の真性度を高めることが可能となる。
また、本実施の形態4に係る乱数生成装置1によれば、発振回路2は、直列に接続された複数奇数個の論理ゲートG1〜G17を含み、Nビットの出力値S3の各ビットに対応する各セレクタ81〜88は、複数の入力端子T1〜T8を有し、セレクタ8の各々の入力端子T1〜T8には、全ての論理ゲートG1〜G17のうち異なるN個の論理ゲートの出力値が入力される。これにより、出力ビット位置を可変に設定可能な発振回路2を、簡易な構成によって低コストで実現することが可能となる。
<変形例>
図10は、第1の変形例に係る乱数生成装置1の構成を示す図である。本変形例に係る乱数生成装置1は、上記実施の形態1(図1)と上記実施の形態3(図6)とを組み合わせて適用したものである。選択信号S2によって発振回路2の発振周波数が可変に設定され、選択信号S6によって出力値S3の有効バス幅が可変に設定される。
図11は、第2の変形例に係る乱数生成装置1の構成を示す図である。本変形例に係る乱数生成装置1は、上記実施の形態2(図4)と上記実施の形態3(図6)とを組み合わせて適用したものである。選択信号S5によって発振回路2の発振周波数が可変に設定され、選択信号S6によって出力値S3の有効バス幅が可変に設定される。
図12は、第3の変形例に係る乱数生成装置1の構成を示す図である。本変形例に係る乱数生成装置1は、上記実施の形態1(図1)と上記実施の形態4(図8)とを組み合わせて適用したものである。選択信号S2によって発振回路2の発振周波数が可変に設定され、選択信号S7(S71〜S78)によって発振回路2からの出力ビット位置が可変に設定される。
図13は、第4の変形例に係る乱数生成装置1の構成を示す図である。本変形例に係る乱数生成装置1は、上記実施の形態2(図4)と上記実施の形態4(図8)とを組み合わせて適用したものである。選択信号S5によって発振回路2の発振周波数が可変に設定され、選択信号S7(S71〜S78)によって発振回路2からの出力ビット位置が可変に設定される。
1 乱数生成装置
2 発振回路
3 サンプリング回路
6,7,81〜88 セレクタ

Claims (8)

  1. 二値論理の「0」と「1」とが交互に繰り返される出力値を出力する発振回路と、
    前記発振回路の出力値を所定のサンプリングクロックに基づいてサンプリングすることにより、乱数を生成する乱数生成回路と、
    前記発振回路の発振周波数を可変に設定する第1の設定部と、
    前記発振回路の出力値の有効バス幅を可変に設定する第2の設定部と、
    を備える、乱数生成装置。
  2. 二値論理の「0」と「1」とが交互に繰り返される出力値を出力する発振回路と、
    前記発振回路の出力値を所定のサンプリングクロックに基づいてサンプリングすることにより、乱数を生成する乱数生成回路と、
    前記発振回路の発振周波数を可変に設定する第1の設定部と、
    前記発振回路の出力値に基づいて、各ビットにおいて二値論理の「0」と「1」とが交互に繰り返される複数Nビットのバス幅を有する出力値を生成し、Nビットの出力値の各ビットにおいて前記発振回路からの出力ビット位置を可変に設定する第2の設定部と、
    を備える、乱数生成装置。
  3. 前記第1の設定部は、外部入力された選択信号に基づいて、前記発振回路の発振周波数を設定する、請求項1又は2に記載の乱数生成装置。
  4. 前記第1の設定部は、前記乱数生成回路によって生成された乱数に基づいて、前記発振回路の発振周波数を設定する、請求項1又は2に記載の乱数生成装置。
  5. 前記第1の設定部は、前記乱数生成回路から乱数が出力される毎に、当該乱数に基づいて前記発振回路の発振周波数を設定する、請求項4に記載の乱数生成装置。
  6. 前記発振回路は、直列に接続された複数奇数個の論理ゲートを含み、
    前記第1の設定部は、複数の入力端子を有するセレクタを含み、
    前記セレクタの各々の前記入力端子には、全ての前記論理ゲートのうち異なる前記論理ゲートの出力値が入力される、請求項1〜5のいずれか一つに記載の乱数生成装置。
  7. (A)二値論理の「0」と「1」とが交互に繰り返される出力値を発振回路から出力するステップと、
    (B)前記発振回路の出力値を所定のサンプリングクロックに基づいてサンプリングすることにより、乱数を生成するステップと、
    (C)前記発振回路の発振周波数を可変に設定するステップと、
    (D)前記発振回路の出力値の有効バス幅を可変に設定するステップと、
    を備える、乱数生成方法。
  8. (A)二値論理の「0」と「1」とが交互に繰り返される出力値を発振回路から出力するステップと、
    (B)前記発振回路の出力値を所定のサンプリングクロックに基づいてサンプリングすることにより、乱数を生成するステップと、
    (C)前記発振回路の発振周波数を可変に設定するステップと、
    (D)前記発振回路の出力値に基づいて、各ビットにおいて二値論理の「0」と「1」とが交互に繰り返される複数Nビットのバス幅を有する出力値を生成し、Nビットの出力値の各ビットにおいて前記発振回路からの出力ビット位置を可変に設定するステップと、
    を備える、乱数生成方法。
JP2014266706A 2014-12-19 2014-12-26 乱数生成装置及び乱数生成方法 Active JP6423270B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014266706A JP6423270B2 (ja) 2014-12-26 2014-12-26 乱数生成装置及び乱数生成方法
US14/974,081 US20160179472A1 (en) 2014-12-19 2015-12-18 Random number generation device and method for generating random number

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014266706A JP6423270B2 (ja) 2014-12-26 2014-12-26 乱数生成装置及び乱数生成方法

Publications (2)

Publication Number Publication Date
JP2016126517A JP2016126517A (ja) 2016-07-11
JP6423270B2 true JP6423270B2 (ja) 2018-11-14

Family

ID=56357957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014266706A Active JP6423270B2 (ja) 2014-12-19 2014-12-26 乱数生成装置及び乱数生成方法

Country Status (1)

Country Link
JP (1) JP6423270B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6379032B2 (ja) * 2014-12-26 2018-08-22 株式会社メガチップス 乱数生成装置及び乱数生成方法
JP6886700B2 (ja) * 2017-07-11 2021-06-16 吉川工業アールエフセミコン株式会社 乱数生成回路
US11055065B2 (en) 2018-04-18 2021-07-06 Ememory Technology Inc. PUF-based true random number generation system
JP7389348B2 (ja) 2020-03-12 2023-11-30 富士通株式会社 擬似乱数生成回路装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5955525A (ja) * 1982-09-25 1984-03-30 Toshiba Corp マイクロプロセツサ
JPS60185173A (ja) * 1984-03-05 1985-09-20 Hitachi Ltd 論理回路の接続状態検出方法
JP3564855B2 (ja) * 1996-02-29 2004-09-15 ソニー株式会社 リングオシレータ及びpll回路
JP2003330704A (ja) * 2002-05-08 2003-11-21 Toshiba Corp 擬似乱数パターン発生回路
JP2005174206A (ja) * 2003-12-15 2005-06-30 Sony Corp 真性乱数生成装置または真性乱数生成方法
US7890561B2 (en) * 2005-08-16 2011-02-15 International Business Machines Corporation Random number generator
US8131789B2 (en) * 2008-03-28 2012-03-06 Atmel Corporation True random number generator
JP5074359B2 (ja) * 2008-11-12 2012-11-14 日本電信電話株式会社 乱数生成回路
JP5465636B2 (ja) * 2010-08-30 2014-04-09 日本電信電話株式会社 乱数生成回路
US9189201B2 (en) * 2011-09-20 2015-11-17 Qualcomm Incorporated Entropy source with magneto-resistive element for random number generator

Also Published As

Publication number Publication date
JP2016126517A (ja) 2016-07-11

Similar Documents

Publication Publication Date Title
JP6423270B2 (ja) 乱数生成装置及び乱数生成方法
JP5074359B2 (ja) 乱数生成回路
JP5646091B2 (ja) デバイス固有情報生成装置およびデバイス固有情報生成方法
WO2012095972A1 (ja) ビット生成装置及びビット生成方法
JP6379032B2 (ja) 乱数生成装置及び乱数生成方法
JP2010531018A5 (ja)
JP5670849B2 (ja) 擬似乱数生成装置、および、擬似乱数生成方法
EP1662375B1 (en) Random number generator and method for testing the generator
JP5119417B2 (ja) 擬似乱数生成装置
US20100201409A1 (en) Frequency Divider Circuit
US10776079B2 (en) True random number generation device and generation method thereof
JP4869879B2 (ja) 半導体集積回路
JP4666462B2 (ja) カウンタ回路と、それを含む半導体装置
US9116764B2 (en) Balanced pseudo-random binary sequence generator
JP6886700B2 (ja) 乱数生成回路
CN109558111B (zh) 基于d触发器亚稳态特性的真随机数生成装置
CN110609672B (zh) 真实随机数产生装置及其产生方法
JP6386904B2 (ja) 乱数生成装置及び乱数生成方法
US20220166433A1 (en) Multi-bit gray code generation circuit
JP2013182097A (ja) 乱数生成装置、および暗号処理装置
US11586418B2 (en) Random number generator, random number generating circuit, and random number generating method
JP2010124228A (ja) 分周回路および電子機器
CN115694832A (zh) 基于ro puf的密钥生成方法及其系统
JP4195472B2 (ja) ハフマン木生成回路およびハフマンテーブル生成システム
JP6423277B2 (ja) 乱数生成装置及び乱数生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180920

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181018

R150 Certificate of patent or registration of utility model

Ref document number: 6423270

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250