JP2013182097A - Random number generator and encryption processing device - Google Patents

Random number generator and encryption processing device Download PDF

Info

Publication number
JP2013182097A
JP2013182097A JP2012045016A JP2012045016A JP2013182097A JP 2013182097 A JP2013182097 A JP 2013182097A JP 2012045016 A JP2012045016 A JP 2012045016A JP 2012045016 A JP2012045016 A JP 2012045016A JP 2013182097 A JP2013182097 A JP 2013182097A
Authority
JP
Japan
Prior art keywords
random number
inverter
output
xor
generation device
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.)
Pending
Application number
JP2012045016A
Other languages
Japanese (ja)
Inventor
Masafumi Kusakawa
雅文 草川
Shigeki Teramoto
茂樹 寺本
Yoshikazu Miyato
良和 宮戸
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2012045016A priority Critical patent/JP2013182097A/en
Publication of JP2013182097A publication Critical patent/JP2013182097A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a random number generator which generates highly random numbers in a short time.SOLUTION: The random number generator includes a plurality of inverter chains each of which has a plurality of inverters or NAND elements connected in series, an XOR element for receiving respective outputs of the plurality of inverter chains to execute an exclusive OR (XOR) operation of input values, and an output control unit for outputting the output of the XOR element in accordance with a sampling clock and feeds back and inputs the XOR operation result generated by the XOR element, to the plurality of inverter chains and outputs an output signal of the output control unit as random numbers. This configuration allows generation and output of highly random numbers in a short time on the basis of the XOR element output having a high oscillation rate.

Description

本開示は、乱数生成装置、および暗号処理装置に関する。   The present disclosure relates to a random number generation device and a cryptographic processing device.

電子マネーや有料コンテンツ、個人情報等を取り扱う半導体集積回路(IC)においては、暗号化や署名、認証といった、各種セキュリティ機能を実現することが必要不可欠である。また、このようなセキュリティ機能を安全かつ適切に利用するためには乱数の存在が必要不可欠であるため、乱数生成機能もまた、IC上に実装されることが多い。   In a semiconductor integrated circuit (IC) that handles electronic money, paid content, personal information, and the like, it is essential to implement various security functions such as encryption, signature, and authentication. In addition, since the presence of random numbers is indispensable in order to use such a security function safely and appropriately, the random number generation function is also often mounted on an IC.

IC上で乱数を生成するための主な手法として、擬似乱数生成装置を利用した手法が知られている。
擬似乱数生成装置とは、ある入力値(SEED)を特定のアルゴリズムに従って処理することにより、統計学的な観点から真の乱数と見分けがつきにくい値(擬似乱数)を出力するものである。
As a main technique for generating a random number on an IC, a technique using a pseudo-random number generator is known.
The pseudo-random number generator outputs a value (pseudo-random number) that is difficult to distinguish from a true random number from a statistical viewpoint by processing a certain input value (SEED) according to a specific algorithm.

ここで、擬似乱数を生成するためのアルゴリズムは確定的アルゴリズムであるため、入力値(SEED)が同じであれば、同一の擬似乱数系列を出力する。しかしながら、セキュリティの用途に擬似乱数を用いる場合、IC毎及び擬似乱数生成毎に出力される値が異なり、かつある出力値から次の出力値が予想できないことが必要となる。
このため、通常はICに書き換え可能な不揮発性メモリを実装し、IC製造時にIC毎に異なる入力値(SEED)を書き込み、IC毎に異なる値の乱数出力を実現させている。
また、擬似乱数の生成処理毎に入力値(SEED)を更新することで、擬似乱数を生成する処理毎に出力値を変更可能とした構成もある。
Here, since the algorithm for generating the pseudo random number is a deterministic algorithm, if the input value (SEED) is the same, the same pseudo random number sequence is output. However, when using pseudo-random numbers for security purposes, it is necessary that the output value differs for each IC and for each pseudo-random number generation, and the next output value cannot be predicted from a certain output value.
For this reason, normally, a rewritable nonvolatile memory is mounted on the IC, and a different input value (SEED) is written for each IC at the time of manufacturing the IC, thereby realizing random number output of a different value for each IC.
There is also a configuration in which the output value can be changed for each process of generating a pseudo-random number by updating the input value (SEED) for each process of generating the pseudo-random number.

しかしながら、IC上に書き換え可能な不揮発性メモリを搭載することはICコストの増大を招く。さらに、不揮発性メモリの書き換え回数には上限があり、乱数生成処理毎に書き換えを実行すると、メモリの劣化により耐用期間が短くなるという問題がある。   However, mounting a rewritable nonvolatile memory on an IC causes an increase in IC cost. Furthermore, there is an upper limit to the number of times the nonvolatile memory can be rewritten, and if the rewriting is performed for each random number generation process, there is a problem that the useful life is shortened due to the deterioration of the memory.

このような問題を解決するため、乱数生成時における入力値(SEED)を利用することなく、IC毎かつ乱数生成毎に異なる値を出力可能とする構成が望ましい。
すなわち、入力値(SEED)を利用することなく十分なランダム性を有する乱数出力を可能とした乱数生成装置(エントロピー源)の実現が望まれている。
In order to solve such a problem, it is desirable to be able to output a different value for each IC and for each random number generation without using the input value (SEED) at the time of random number generation.
That is, it is desired to realize a random number generation device (entropy source) that can output a random number having sufficient randomness without using an input value (SEED).

IC上に実装可能な代表的な乱数生成装置(エントロピー源)としては、リングオシレータ(RO:Ring Oscillator)を利用したものがある。
リングオシレータ(RO)は、奇数個のインバータを直列接続したインバータチェーンにおいて、チェーンの末尾(最終段)における出力を、チェーンの先頭(1段目)における入力へとRing状に接続することにより、出力を一定の周期で発振させるものである。
As a typical random number generation device (entropy source) that can be mounted on an IC, there is a device that uses a ring oscillator (RO).
The ring oscillator (RO) is an inverter chain in which an odd number of inverters are connected in series, and by connecting the output at the end of the chain (final stage) to the input at the top of the chain (first stage) in a ring shape, The output is oscillated at a constant period.

リングオシレータ(RO)の発振周期は、主に各インバータ及び配線における遅延値とチェーンを構成するインバータの個数(段数)、電圧、温度によって大まかに決定される。
しかしながら、実際にリングオシレータ(RO)を稼働させた場合、信号がHighからLowあるいはLowからHighに変化する変化位置(エッジ)がインバータを経由するたびに、温度、電圧、ランダムノイズ等の影響によりずれるという現象が発生する。すなわち、インバータの信号伝達に掛る時間の変化が発生する。これをジッタという。
リングオシレータ(RO)を用いた乱数生成装置は、主にこのジッタのランダム性を利用して出力をランダムな値に設定することを実現している。
The oscillation period of the ring oscillator (RO) is roughly determined mainly by the delay value in each inverter and wiring, the number of inverters (number of stages) constituting the chain, voltage, and temperature.
However, when the ring oscillator (RO) is actually operated, the change position (edge) at which the signal changes from High to Low or Low to High passes through the inverter due to the influence of temperature, voltage, random noise, etc. The phenomenon of deviation occurs. That is, a change in time required for signal transmission of the inverter occurs. This is called jitter.
A random number generation device using a ring oscillator (RO) realizes that the output is set to a random value mainly using the randomness of the jitter.

リングオシレータ(RO)を利用した乱数生成装置の最も基本的な構成としては、例えば、非特許文献1(R.C.Fairfield,R.L.Mortenson,and K.B.Coulthat,"An LSI Random Number Generator(RNG),"Proceedings of CRYPTO'84 on Advances in Cryptology.pp.203−230,1984.)に記載の構成がある。   As the most basic configuration of a random number generation device using a ring oscillator (RO), for example, Non-Patent Document 1 (RC Fairfield, RL Mortenson, and KB Couultat, “An LSI Random” Number Generator (RNG), “Proceedings of CRYPTO '84 on Advances in Cryptology. Pp. 203-230, 1984.).

この文献に記載の方式は、リングオシレータ(RO)を一定期間発振させた後、サンプリングクロック(sampling clock)と呼ばれる一定周期の発振を利用してその出力値をDタイプフリップフロップ(DFF:D−type Flip−Flop)により取得(sampling)する構成である。
このような構成により、設計上同一の発振周期となるリングオシレータ(RO)を用いた場合であっても、実稼働時においては、ジッタの影響により発振にずれが生じ、サンプリング時の出力値0,1をランダムに変更することが可能となる。
In the method described in this document, a ring oscillator (RO) is oscillated for a certain period, and then an output value is converted to a D-type flip-flop (DFF: D−) using a constant period oscillation called a sampling clock. It is the structure which acquires (sampling) by type Flip-Flop.
With such a configuration, even when a ring oscillator (RO) having the same oscillation period in design is used, in actual operation, the oscillation is shifted due to the influence of jitter, and the output value 0 during sampling is 0. , 1 can be changed randomly.

このように、リングオシレータ(RO)を利用した乱数生成装置の基本構成では、ジッタのランダムな振る舞いによって、出力として取得する乱数値であるサンプリング時の0,1のランダムな変化を実現している。   As described above, in the basic configuration of the random number generation apparatus using the ring oscillator (RO), random changes of 0 and 1 at the time of sampling, which is a random value acquired as an output, are realized by the random behavior of jitter. .

しかしながら、現実的には、リングオシレータ(RO)を稼働させた場合、信号の変化(edge)がインバータを経由する際に発生するジッタ量は微量であるため、サンプリング結果としての出力乱数の値である0,1をランダムに変更させるためには、蓄積したジッタ量がサンプリング位置を十分に変動させうるまで待たなければならない。   However, in reality, when the ring oscillator (RO) is operated, the amount of jitter generated when the signal change (edge) passes through the inverter is very small. Therefore, the value of the output random number as the sampling result is used. In order to change 0 and 1 at random, it is necessary to wait until the accumulated jitter amount can sufficiently change the sampling position.

結果として、上記の文献に記載の方式を適用しても、十分なエントロピーを有する乱数出力を得るためには、リングオシレータ(RO)の発振周期に対してサンプリング周期を十分に長くする必要がある。
これは即ち、十分なランダム性を有する乱数出力を取得するために長い時間を要することを意味する。
As a result, even if the method described in the above document is applied, in order to obtain a random output having sufficient entropy, it is necessary to make the sampling period sufficiently longer than the oscillation period of the ring oscillator (RO). .
This means that it takes a long time to obtain a random output with sufficient randomness.

具体的には、実装するデバイスに依存するが、サンプリング周期を発振周期の数千倍から数万倍程度に設定する必要があるため、十分なランダム性を持つ乱数取得には長い時間が必要となってしまうという問題点がある。   Specifically, depending on the device to be mounted, it is necessary to set the sampling period from several thousand times to several tens of thousands times the oscillation period, so it takes a long time to obtain random numbers with sufficient randomness. There is a problem of becoming.

R.C.Fairfield,R.L.Mortenson,and K.B.Coulthat,"An LSI Random Number Generator(RNG),"Proceedings of CRYPTO'84 on Advances in Cryptology.pp.203−230,1984.R. C. Fairfield, R.A. L. Mortenson, and K.M. B. Couultat, “An LSI Random Number Generator (RNG),” Proceedings of CRYPTO '84 on Advances in Cryptology. pp. 203-230, 1984.

本開示は、例えば上述の状況に鑑みてなされたものであり、より短い時間でランダム性の高い乱数出力を実現する乱数生成装置、および乱数生成部を有する暗号処理装置を提供することを目的とする。   The present disclosure has been made in view of the above-described situation, for example, and an object thereof is to provide a random number generation device that realizes a random output with high randomness in a shorter time, and a cryptographic processing device having a random number generation unit. To do.

本開示の第1の側面は、
インバータまたはNAND素子を複数、直列接続した複数のインバータチェーンと、
前記複数のインバータチェーン各々の出力を入力して、入力値に対する排他的論理和(XOR)演算を実行する排他的論理和(XOR)素子と、
前記排他的論理和(XOR)素子の出力を、サンプリングクロックに応じて出力する出力制御部を有し、
前記排他的論理和(XOR)素子の生成した排他的論理和(XOR)演算結果を前記複数のインバータチェーンにフィードバック入力し、前記出力制御部の出力信号を乱数として出力する乱数生成装置にある。
The first aspect of the present disclosure is:
A plurality of inverters or NAND elements, a plurality of inverter chains connected in series;
An exclusive OR (XOR) element that inputs an output of each of the plurality of inverter chains and performs an exclusive OR (XOR) operation on an input value;
An output controller that outputs an output of the exclusive OR (XOR) element according to a sampling clock;
An exclusive OR (XOR) operation result generated by the exclusive OR (XOR) element is fed back to the plurality of inverter chains, and an output signal of the output control unit is output as a random number.

さらに、本開示の乱数生成装置の一実施態様において、前記複数のインバータチェーンは、奇数個のインバータまたはNAND素子を直列接続した奇数段インバータチェーンを奇数本有する構成である。   Furthermore, in one embodiment of the random number generation device of the present disclosure, the plurality of inverter chains have an odd number of odd-numbered inverter chains in which an odd number of inverters or NAND elements are connected in series.

さらに、本開示の乱数生成装置の一実施態様において、前記複数のインバータチェーンは、奇数本の奇数段インバータチェーンのみによって構成されている。   Furthermore, in one embodiment of the random number generation device of the present disclosure, the plurality of inverter chains are configured only by an odd number of odd-numbered inverter chains.

さらに、本開示の乱数生成装置の一実施態様において、前記複数のインバータチェーンは、奇数本の奇数段のインバータチェーンと、偶数個のインバータまたはNAND素子を直列接続した偶数段インバータチェーンを1本以上有する構成である。   Furthermore, in one embodiment of the random number generation device according to the present disclosure, the plurality of inverter chains include an odd number of odd numbered inverter chains and an even number of even numbered inverter chains or an even numbered inverter chain in which NAND elements are connected in series. It is the composition which has.

さらに、本開示の乱数生成装置の一実施態様において、前記出力制御部は、前記前記排他的論理和(XOR)素子の出力と、サンプリングクロック信号を入力して前記前記排他的論理和(XOR)素子の出力を、サンプリングクロックに応じて出力するD型フリップフロップ(DFF)である。   Furthermore, in one embodiment of the random number generation device of the present disclosure, the output control unit inputs the output of the exclusive OR (XOR) element and a sampling clock signal and inputs the exclusive OR (XOR). A D-type flip-flop (DFF) that outputs the output of the element in accordance with a sampling clock.

さらに、本開示の乱数生成装置の一実施態様において、前記複数のインバータチェーンの構成素子は、NAND素子を含まないインバータのみによって構成されている。   Furthermore, in one embodiment of the random number generation device of the present disclosure, the constituent elements of the plurality of inverter chains are configured only by inverters that do not include NAND elements.

さらに、本開示の乱数生成装置の一実施態様において、前記複数のインバータチェーンの構成素子は、前記XOR素子からのフィードバック入力と、発振制御信号の2つの入力部を持つNAND素子を含む構成である。   Furthermore, in one embodiment of the random number generation device of the present disclosure, the constituent elements of the plurality of inverter chains include a NAND element having two inputs of a feedback input from the XOR element and an oscillation control signal. .

さらに、本開示の乱数生成装置の一実施態様において、前記複数のインバータチェーンの構成素子は、インバータからの入力と発振制御信号の2つの入力部を持つNAND素子を含む構成である。   Furthermore, in one embodiment of the random number generation device of the present disclosure, the constituent elements of the plurality of inverter chains include a NAND element having two inputs of an input from the inverter and an oscillation control signal.

さらに、本開示の乱数生成装置の一実施態様において、前記複数のインバータチェーンの一部のインバータまたはNAND素子は、複数のインバータチェーンの共有構成である。   Furthermore, in one embodiment of the random number generation device of the present disclosure, some of the inverters or NAND elements of the plurality of inverter chains have a shared configuration of the plurality of inverter chains.

さらに、本開示の乱数生成装置の一実施態様において、前記複数のインバータチェーンの一部のインバータまたはNAND素子の共有構成は、多段多分木の構成法に従って構成されている。   Furthermore, in one embodiment of the random number generation device of the present disclosure, the shared configuration of some inverters or NAND elements of the plurality of inverter chains is configured according to a multistage multi-tree configuration method.

さらに、本開示の第2の側面は、上記いずれかの構成を有する乱数生成部と、前記乱数生成部の生成した乱数を適用した暗号処理を実行する暗号処理部とを有する暗号処理装置にある。   Furthermore, a second aspect of the present disclosure resides in an encryption processing apparatus including a random number generation unit having any one of the above configurations and an encryption processing unit that executes an encryption process using a random number generated by the random number generation unit. .

本開示のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。   Other objects, features, and advantages of the present disclosure will become apparent from a more detailed description based on embodiments of the present invention described later and the accompanying drawings.

本開示の一実施例の構成によれば、短時間でランダム性の高い乱数生成を実現する乱数生成装置が実現される。
具体的には、インバータまたはNAND素子を複数、直列接続した複数のインバータチェーンと、複数のインバータチェーン各々の出力を入力して入力値に対する排他的論理和(XOR)演算を実行するXOR素子と、XOR素子の出力を、サンプリングクロックに応じて出力する出力制御部を有し、XOR素子の生成したXOR演算結果を複数のインバータチェーンにフィードバック入力し、出力制御部の出力信号を乱数として出力する。この構成により、高速な発振周期を持つXOR素子出力に基づいて短時間でランダム性の高い乱数の生成、出力を行うことが可能となる。
According to the configuration of an embodiment of the present disclosure, a random number generation device that realizes random number generation with high randomness in a short time is realized.
Specifically, a plurality of inverter chains in which a plurality of inverters or NAND elements are connected in series, an XOR element that inputs an output of each of the plurality of inverter chains and performs an exclusive OR (XOR) operation on an input value; An output control unit that outputs the output of the XOR element according to the sampling clock is fed back to the plurality of inverter chains, and the output signal of the output control unit is output as a random number. With this configuration, it is possible to generate and output a random number with high randomness in a short time based on an XOR element output having a high-speed oscillation period.

リングオシレータを用いた乱数生成装置の基本構成例について説明する図である。It is a figure explaining the example of a basic composition of the random number generation device using a ring oscillator. リングオシレータを用いた乱数生成装置において、ジッタの有無に応じた出力サンプリング処理例について説明する図である。It is a figure explaining the example of an output sampling process according to the presence or absence of a jitter in the random number generator using a ring oscillator. 本開示の乱数生成装置の構成例と処理について説明する図である。It is a figure explaining the structural example and process of the random number generation apparatus of this indication. m本全てを奇数段インバータチェーンで構成した構成(タイプA)について説明する図である。It is a figure explaining the structure (type A) which comprised all m pieces with the odd number stage inverter chain. 奇数段インバータチェーンと、偶数段インバータチェーンを組み合わせた構成(タイプB)について説明する図である。It is a figure explaining the structure (type B) which combined the odd number stage inverter chain and the even number stage inverter chain. サンプリング対象信号の発振周期とサンプリング値について説明する図である。It is a figure explaining the oscillation period and sampling value of a sampling object signal. サンプリング対象信号の発振周期とサンプリング値について説明する図である。It is a figure explaining the oscillation period and sampling value of a sampling object signal. 従来構成のサンプリング処理例と、本開示構成のサンプリング処理例の比較について説明する図である。It is a figure explaining the comparison of the sampling process example of a conventional structure, and the sampling process example of a structure of this indication. 本開示の乱数生成装置の構成例について説明する図である。It is a figure explaining the structural example of the random number generator of this indication. 図9に示す乱数生成装置のインバータ数を削減した構成例について説明する図である。It is a figure explaining the structural example which reduced the number of inverters of the random number generator shown in FIG. インバータをNAND素子に置き換えた本開示の乱数生成装置の構成例について説明する図である。It is a figure explaining the structural example of the random number generator of this indication which replaced the inverter with the NAND element. 乱数生成部を有する暗号処理装置としてのICモジュールの構成例を示す図である。It is a figure which shows the structural example of IC module as a cryptographic processing apparatus which has a random number generation part.

以下、図面を参照しながら本開示に係る乱数生成装置、および暗号処理装置の詳細について説明する。説明は、以下の項目に従って行う。
1.インバータを用いたリングオシレータ(RO)の基本構成例について
2.本開示の乱数生成装置の構成と処理について
2−1.本開示の乱数生成装置の概要
2−2.本開示の乱数生成装置の構成例と処理について
2−3.m本全てを奇数段インバータチェーンで構成した構成(タイプA)について
2−4.奇数段インバータチェーンと、偶数段インバータチェーンを組み合わせた構成(タイプB)について
2−5.サンプリング対象信号の発振周期とサンプリング値について
2−6.従来構成と本開示構成の発振周期の比較と効果について
3.その他の実施例について
3−1.インバータの数を削減した実施例について
3−2.インバータをNAND素子に置き換えた実施例について
4.暗号処理装置の構成例について
5.本開示の構成のまとめ
Hereinafter, the details of the random number generation device and the cryptographic processing device according to the present disclosure will be described with reference to the drawings. The description will be made according to the following items.
1. 1. Basic configuration example of a ring oscillator (RO) using an inverter 2. Configuration and processing of random number generation device of present disclosure 2-1. Overview of random number generation device of present disclosure 2-2. Configuration example and processing of random number generation device of present disclosure 2-3. About a configuration (type A) in which all m pieces are configured with odd-numbered inverter chains 2-4. Configuration combining odd-numbered inverter chains and even-numbered inverter chains (type B) 2-5. Oscillation period and sampling value of sampling target signal 2-6. 2. Comparison and effect of oscillation period between conventional configuration and disclosed configuration Other Examples 3-1. Example in which the number of inverters is reduced 3-2. 3. Example in which inverter is replaced with NAND element 4. Configuration example of cryptographic processing device Summary of composition of this disclosure

[1.インバータを用いたリングオシレータ(RO)の基本構成例について]
まず、本開示の乱数生成装置の説明の前に、従来から知られるインバータを用いたリングオシレータ(RO)を用いた乱数生成装置の基本構成例について図1を参照して説明する。
[1. Example of basic configuration of ring oscillator (RO) using inverter]
First, prior to the description of the random number generation device of the present disclosure, a basic configuration example of a random number generation device using a ring oscillator (RO) using a conventionally known inverter will be described with reference to FIG.

図1に示す乱数生成装置10は、複数のインバータ(NOTゲート)21〜23から構成されるリングオシレータ(RO)20と、サンプリングクロック(sampling clock)30を入力するD型フリップフロップ(DFF)40によって構成される。   A random number generator 10 shown in FIG. 1 includes a ring oscillator (RO) 20 including a plurality of inverters (NOT gates) 21 to 23 and a D-type flip-flop (DFF) 40 that inputs a sampling clock 30. Consists of.

複数のインバータ(NOTゲート)21〜23から構成されるリングオシレータ(RO)20を発振させ、リングオシレータ(RO)20の出力をDFF40に入力(D入力)する。
さらに、サンプリングクロック(sampling clock)30の生成するサンプリング周期毎にDFF40の出力(Q出力)を取得する。
このサンプリング周期毎のDFF40の出力(Q出力)をランダム値、すなわち乱数として出力する構成である。
A ring oscillator (RO) 20 composed of a plurality of inverters (NOT gates) 21 to 23 is oscillated, and the output of the ring oscillator (RO) 20 is input to the DFF 40 (D input).
Further, the output (Q output) of the DFF 40 is acquired for each sampling period generated by the sampling clock 30.
The output (Q output) of the DFF 40 for each sampling period is output as a random value, that is, a random number.

なお、インバータ(NOT素子)は、1入力1出力であり、入力を反転、すなわち、入力[1]に対して出力[0]を生成し、入力[0]に対して出力[1]を生成する素子である。   The inverter (NOT element) has one input and one output, inverts the input, that is, generates output [0] for input [1] and generates output [1] for input [0]. It is an element to do.

以下、このリングオシレータ(RO)を用いた乱数生成装置の基本構成とその問題点について説明する。
図1に示すように、リングオシレータ(RO)を用いた乱数生成装置10は、r個(rは奇数)のインバータ(NOTゲート)を用いたリングオシレータ(RO)20と、
リングオシレータ(RO)20の出力の取得間隔を決定するサンプリングクロック(sampling clock)30と、
サンプリングクロック(sampling clock)30に基づいてリングオシレータ(RO)20の出力を取得、保持し、サンプリングクロックに応じて出力する出力制御部としてのD型フリップフロップ(DFF)40、
これらの3要素から構成される。
なお、図1に示す構成では、インバータ数rはr=3の設定である。
Hereinafter, the basic configuration of the random number generation device using this ring oscillator (RO) and its problems will be described.
As shown in FIG. 1, the random number generation device 10 using a ring oscillator (RO) includes a ring oscillator (RO) 20 using r (r is an odd number) inverters (NOT gates),
A sampling clock 30 for determining an acquisition interval of the output of the ring oscillator (RO) 20;
A D-type flip-flop (DFF) 40 as an output control unit that acquires and holds the output of the ring oscillator (RO) 20 based on a sampling clock 30 and outputs the output according to the sampling clock;
It consists of these three elements.
In the configuration shown in FIG. 1, the number of inverters r is set to r = 3.

図1に示すリングオシレータ(RO)を用いた乱数生成装置におけるリングオシレータ(RO)の理論的な発振周期RTは、リングオシレータ(RO)を構成するインバータや配線における遅延、想定される電圧、温度等により算出することが可能である。   The theoretical oscillation period RT of the ring oscillator (RO) in the random number generation device using the ring oscillator (RO) shown in FIG. 1 is the delay, the assumed voltage, and the temperature in the inverter and wiring that constitute the ring oscillator (RO). It is possible to calculate by such as.

ここで、理論的な発振周期通りに発振するリングオシレータ(RO)の出力を複数回サンプリングした場合の、各サンプリング時におけるリングオシレータ(RO)の出力値である0または1の値は、以下の2つの周期の関係性のみによって決定される。
リングオシレータ(RO)の発振周期RTと、
サンプリング周期ST、
これらの2つの周期の関係性のみによって決定される。
Here, when the output of the ring oscillator (RO) that oscillates according to the theoretical oscillation cycle is sampled a plurality of times, the value of 0 or 1 that is the output value of the ring oscillator (RO) at each sampling is as follows: It is determined only by the relationship between the two periods.
The oscillation period RT of the ring oscillator (RO);
Sampling period ST,
It is determined only by the relationship between these two periods.

従って、複数回の連続するサンプリング結果として得られるリングオシレータ(RO)の出力値である0,1のビット列は、必ず一定のパターンを持つことになる。   Therefore, the 0 and 1 bit strings that are output values of the ring oscillator (RO) obtained as a result of a plurality of consecutive samplings always have a constant pattern.

しかしながら、現実的にはリングオシレータ(RO)の発振は、リングオシレータ(RO)の製造ばらつきに起因する各種遅延値のばらつきや、発振自体や外的要因による電圧、温度のばらつき、及びランダムノイズと呼ばれるIC稼働時のばらつき等による乱れが発生する。
具体的には、0,1の変化点であるエッジが、リングオシレータ(RO)を構成する各インバータを通過する毎にランダムなジッタ、すなわちエッジずれが発生し、リングオシレータ(RO)の発振波形に時間的なずれが生じる。
However, in reality, the oscillation of the ring oscillator (RO) is caused by variations in various delay values due to manufacturing variations of the ring oscillator (RO), variations in voltage and temperature due to oscillation itself and external factors, and random noise. Disturbances due to variations in IC operation, etc., occur.
Specifically, random jitter, that is, edge deviation occurs every time an edge that is a change point between 0 and 1 passes through each inverter constituting the ring oscillator (RO), and an oscillation waveform of the ring oscillator (RO). A time lag occurs.

このようなずれによって、リングオシレータ(RO)の発振波形は理論通りの波形になることはなく、ランダムにずれた波形となる。結果として、複数回の連続するサンプリング結果として得られるリングオシレータ(RO)の出力値である0,1のビット列はジッタの影響によってランダムな値となる。   Due to such a shift, the oscillation waveform of the ring oscillator (RO) does not become a theoretical waveform, but a waveform shifted at random. As a result, the 0 and 1 bit strings which are output values of the ring oscillator (RO) obtained as a result of a plurality of consecutive samplings are random values due to the influence of jitter.

この具体例について図2を参照して説明する。
図2には、
(1)ジッタの無い理想的なリングオシレータ(RO)の出力サンプリング処理例
(2)ジッタの有る現実のリングオシレータ(RO)の出力サンプリング処理例
これらの2つの処理例を示している。
A specific example will be described with reference to FIG.
In FIG.
(1) Example of output sampling processing of ideal ring oscillator (RO) without jitter (2) Example of output sampling processing of actual ring oscillator (RO) with jitter These two processing examples are shown.

(1)ジッタの無い理想的なリングオシレータ(RO)の出力サンプリング処理例には、
(1a)ジッタの無い理想的なリングオシレータ(RO)の出力波形、
(1b)サンプリングクロックの出力波形
を示している。
(1) An example of output sampling processing of an ideal ring oscillator (RO) without jitter includes:
(1a) Output waveform of an ideal ring oscillator (RO) without jitter,
(1b) shows the output waveform of the sampling clock.

(2)ジッタの有る現実のリングオシレータ(RO)の出力サンプリング処理例には、
(2a)ジッタの有る現実のリングオシレータ(RO)の出力波形、
(2b)サンプリングクロックの出力波形
を示している。
(2) Examples of output sampling processing of a real ring oscillator (RO) with jitter include:
(2a) Output waveform of a real ring oscillator (RO) with jitter,
(2b) shows the output waveform of the sampling clock.

なお、図1に示す乱数生成装置10において、乱数は、DFF40の出力値(Q出力)として得られる。このDFF40の出力値(Q出力)は、サンプリングクロックの立ち上がり部分、すなわち0から1への変化点(EST2,EST4・・・)におけるリングオシレータ(RO)の出力値に対応する。   In the random number generation device 10 shown in FIG. 1, the random number is obtained as an output value (Q output) of the DFF 40. The output value (Q output) of the DFF 40 corresponds to the output value of the ring oscillator (RO) at the rising portion of the sampling clock, that is, the change point (EST2, EST4...) From 0 to 1.

図2には、
リングオシレータ(RO)の発振周期=RT、
サンプリングクロックの周期=ST、
として示している。
なお、図2では、簡単のため、サンプリング周期STを、リングオシレータ(RO)の発振周期RTの2倍、すなわち、
ST=2RT
としている。
また、図2(2)に示すジッタ有りの例では、リングオシレータ(RO)の発振時に発生するジッタの平均的な絶対値をJと仮定して示している。
In FIG.
Ring oscillator (RO) oscillation cycle = RT,
Sampling clock cycle = ST,
As shown.
In FIG. 2, for the sake of simplicity, the sampling period ST is set to twice the oscillation period RT of the ring oscillator (RO), that is,
ST = 2RT
It is said.
In the example with jitter shown in FIG. 2B, the average absolute value of jitter generated when the ring oscillator (RO) oscillates is assumed to be J.

図2に示すERTi,ESTjは以下の位置を示す。
ERTiは、リングオシレータ(RO)の発振波形のi番目のエッジ(0,1の変化点)、
ESTjは、サンプリングクロックの波形のj番目のエッジ(0,1の変化点)、
これらを示している。
ERTi and ESTj shown in FIG. 2 indicate the following positions.
ERTi is the i-th edge (change point of 0, 1) of the oscillation waveform of the ring oscillator (RO),
ESTj is the jth edge (0, 1 change point) of the waveform of the sampling clock,
These are shown.

なお、ジッタの影響を分かりやすくするため、図2に示す例では、サンプリングの開始時刻t0を、リングオシレータ(RO)の発振波形の最初(i=0番目)のエッジERT0よりt0分だけ、後にずらした位置に設定している。ただし、以下で説明するジッタに起因するサンプリング出力のランダム性は、任意のt0に対して同様の性質である。   In order to facilitate understanding of the influence of jitter, in the example shown in FIG. 2, the sampling start time t0 is set to t0 minutes after the first (i = 0th) edge ERT0 of the oscillation waveform of the ring oscillator (RO). It is set to a shifted position. However, the randomness of the sampling output due to jitter, which will be described below, is similar to an arbitrary t0.

まず、図2(1)に示す、
(1)ジッタの無い理想的なリングオシレータ(RO)の出力サンプリング処理例
について説明する。
時刻t0においてサンプリングを開始し、図1に示すDFF40からの出力(Q出力)を乱数として取得する場合の出力値について考察する。
DFF40からの出力(Q出力)は、(1b)サンプリングクロックの出力波形の立ち上がり部分、すなわち0から1への変化点における[(1a)ジッタの無い理想的なリングオシレータ(RO)の出力波形]の値となる。
First, as shown in FIG.
(1) An example of output sampling processing of an ideal ring oscillator (RO) without jitter will be described.
Consider the output value when sampling is started at time t0 and the output (Q output) from the DFF 40 shown in FIG. 1 is acquired as a random number.
The output (Q output) from the DFF 40 is (1b) the rising portion of the output waveform of the sampling clock, that is, at the transition point from 0 to 1 [(1a) Output waveform of an ideal ring oscillator (RO) without jitter] It becomes the value of.

時刻t0のサンプリング開始後、最初の値が取得されるのは、(1b)サンプリングクロックのEST2のタイミングであり、
そのサンプリング時刻は、
t0+ST=t0+2RT、
となる。
It is (1b) the timing of EST2 of the sampling clock that the first value is acquired after sampling at time t0.
The sampling time is
t0 + ST = t0 + 2RT,
It becomes.

すなわち、(1a)リングオシレータ(RO)出力波形において、図の矢印51で示す位置であるERT4よりt0分ずれたHigh区間の値、すなわち、1となる。なお、[(1a)リングオシレータ(RO)出力波形]において、High出力を1、Low出力を0とする。   That is, (1a) in the ring oscillator (RO) output waveform, the value of the High section shifted by t0 from ERT4 which is the position indicated by the arrow 51 in the figure, that is, 1 is obtained. In [(1a) Ring Oscillator (RO) Output Waveform], the High output is 1 and the Low output is 0.

次のサンプリング位置は、さらにST後となる。
そのサンプリング時刻は、
t0+ST+ST=t0+4RT、
となる。
The next sampling position is further after ST.
The sampling time is
t0 + ST + ST = t0 + 4RT,
It becomes.

すなわち、(1a)リングオシレータ(RO)出力波形においては、図の矢印52で示す位置であるERT7よりt0分ずれたHigh区間の値、すなわち、前のサンプリング地と同じ1となる。
以降、同様の繰り返しによってサンプリングが実行される。
各サンプリング位置は、常に前回のサンブリング位置から2RT後の位置となり、サンプリング結果は常に1が出力されることとなる。
That is, (1a) in the ring oscillator (RO) output waveform, the value of the High section shifted by t0 from ERT7, which is the position indicated by the arrow 52 in the figure, that is, the same 1 as the previous sampling location.
Thereafter, sampling is performed by the same repetition.
Each sampling position is always a position 2RT after the previous sampling position, and 1 is always output as the sampling result.

次に、
(2)ジッタの有る現実のリングオシレータ(RO)の出力サンプリング処理例
について説明する。
next,
(2) An example of output sampling processing of an actual ring oscillator (RO) with jitter will be described.

図2(2)のジッタ有りの例では、(2a)リングオシレータ(RO)出力波形には、1エッジ毎に平均+Jまたは−Jのジッタが発生するとする。
図2の(2a)リングオシレータ(RO)出力波形の各エッジ(ERTi)に隣接する破線は、ジッタの影響によってエッジ(ERTi)がずれた場合に取り得るエッジ位置を示している。
In the example with jitter shown in FIG. 2B, it is assumed that (2a) a ring oscillator (RO) output waveform includes an average + J or −J jitter for each edge.
A broken line adjacent to each edge (ERTi) of the (2a) ring oscillator (RO) output waveform in FIG. 2 indicates a possible edge position when the edge (ERTi) is shifted due to the influence of jitter.

前述した(1)ジッタ無しの例と同様、時刻t0においてサンプリングを開始し、図1に示すDFF40からの出力(Q出力)を乱数として取得する。
DFF40からの出力(Q出力)は、(2b)サンプリングクロックの出力波形の立ち上がり部分、すなわち0から1への変化点における(2a)ジッタ有りリングオシレータ(RO)の出力波形の値となる。
As in the case of (1) no jitter described above, sampling starts at time t0, and the output (Q output) from the DFF 40 shown in FIG. 1 is acquired as a random number.
The output (Q output) from the DFF 40 becomes the value of the output waveform of the ring oscillator (RO) with jitter (2a) at the rising portion of the output waveform of the sampling clock (2b), that is, at the changing point from 0 to 1.

時刻t0のサンプリング開始後、最初の値が取得されるのは、(2b)サンプリングクロックのEST2のタイミングであり、
そのサンプリング時刻は、
t0+ST=t0+2RT、
となる。
It is (2b) the timing of the EST2 of the sampling clock that the first value is acquired after sampling at time t0.
The sampling time is
t0 + ST = t0 + 2RT,
It becomes.

すなわち、(2a)リングオシレータ(RO)出力波形においては、図の矢印71で示す位置であるERT4よりt0分ずれた位置の値となる。
この位置の(2a)リングオシレータ(RO)出力値は、図から理解されるように、ジッタに応じて1(High)となる場合、0(Low)となる場合の2つの場合が発生し得る。
That is, (2a) the ring oscillator (RO) output waveform has a value at a position shifted by t0 from ERT4, which is the position indicated by the arrow 71 in the figure.
As can be understood from the figure, the output value of the (2a) ring oscillator (RO) at this position can occur in two cases: 1 (High) and 0 (Low) depending on the jitter. .

すなわち、(2a)リングオシレータ(RO)出力値のエッジ(ERT4)の位置は、ジッタの影響により、図に示すERT4を中心として、
ERT4−4Jから、
ERT4+4J、
この範囲で変化し得ることになる。
前述したように、図2(2)に示すジッタ有りの例では、リングオシレータ(RO)の発振時に発生するジッタの平均的な絶対値をJとしている。(2a)リングオシレータ(RO)出力は、ERT4までに4回のエッジがあるため、ERT4における総ジッタ量は−4Jから+4Jの範囲で変化する可能性がある。
That is, (2a) the position of the edge (ERT4) of the ring oscillator (RO) output value is centered on the ERT4 shown in FIG.
From ERT4-4J
ERT4 + 4J,
It can vary within this range.
As described above, in the example with jitter shown in FIG. 2B, J is the average absolute value of jitter generated when the ring oscillator (RO) oscillates. (2a) Since the ring oscillator (RO) output has four edges until ERT4, the total jitter amount in ERT4 may vary in the range of -4J to + 4J.

ERT4における総ジッタ量が−4Jから+2Jまでの場合には、EST2におけるサンプリング結果はHigh即ち1となる。
しかし、ERT4における総ジッタ量が+4Jの場合には、EST2におけるサンプリング結果はLow即ち0となる。
When the total jitter amount in ERT4 is from −4J to + 2J, the sampling result in EST2 is High, that is, 1.
However, when the total jitter amount in ERT4 is + 4J, the sampling result in EST2 is Low, that is, 0.

(2a)リングオシレータ(RO)出力の1エッジ当たり、+Jおよび−Jのジッタが各々1/2の確率で発生すると仮定すると、EST2におけるサンプリング結果が0となる確率は1/16=6.25%となる。
さらに、その後のサンプリング点では、サンプリング点が後にずれるに従って発生し得るジッタ量の幅は増加する。従って、サンプリング点が後にずれるほど、サンプリング結果が0となる確率と1となる確率は次第に等しくなる方向に近づいていくことになる。
(2a) Assuming that + J and −J jitters each occur with a probability of 1/2 per edge of the ring oscillator (RO) output, the probability that the sampling result at EST2 is 0 is 1/16 = 6.25. %.
Further, at the subsequent sampling points, the width of the jitter amount that can be generated increases as the sampling points are shifted later. Therefore, the later the sampling point is shifted, the closer the probability that the sampling result becomes 0 and the probability that the sampling result becomes 1 become gradually equal.

このように、各エッジにおいて発生するジッタの蓄積によってサンプリング結果の0,1の取得確率は均等になる方向に変動する。従って、サンプリングを待機すれば、0,1の出現頻度をほぼ50%にすることが可能となり、サンブリング時の値をランダムにすることが可能となる。   As described above, the acquisition probability of sampling results 0 and 1 varies in an equal direction due to the accumulation of jitter generated at each edge. Therefore, if sampling is waited, the appearance frequency of 0 and 1 can be made almost 50%, and the value at the time of sampling can be made random.

(リングオシレータを用いた基本構成の問題点について)
図1、図2を参照して説明したとおり、図1に示すリングオシレータ(RO)を用いた乱数発生装置の基本構成では、各サンプリング位置においてジッタによる乱れを発生させることにより、サンプリング結果としての出力乱数をランダムな値とすることが可能である。
(Problems of basic configuration using ring oscillator)
As described with reference to FIG. 1 and FIG. 2, in the basic configuration of the random number generator using the ring oscillator (RO) shown in FIG. The output random number can be a random value.

しかしながら、現実問題として、例えば図2(2a)リングオシレータ(RO)出力の1エッジ当たりのジッタ量はリングオシレータ(RO)の発振周期RTに対して非常に小さいという問題がある。
従って、サンプリング位置において、リングオシレータ(RO)出力として0と1とが十分なランダム性を持って出現させるためには、極めて多くのジッタを蓄積させる必要がある。これは即ち、リングオシレータ(RO)の発振周期RTに対して、サンプリング周期STを非常に長く設定する必要があることを意味している。
However, as a practical problem, for example, the jitter amount per edge of the ring oscillator (RO) output in FIG. 2 (2a) is very small with respect to the oscillation period RT of the ring oscillator (RO).
Therefore, in order for 0 and 1 to appear with sufficient randomness as ring oscillator (RO) outputs at the sampling position, it is necessary to accumulate a very large amount of jitter. This means that the sampling period ST needs to be set very long with respect to the oscillation period RT of the ring oscillator (RO).

具体的に説明すると、製造プロセス等にも依存するが、場合によってはサンプリング周期STを、リングオシレータ(RO)の発振周期RTの数千倍から数万倍程度に設定する必要がある。   More specifically, depending on the manufacturing process and the like, it is necessary to set the sampling period ST to several thousand to several tens of thousands times the oscillation period RT of the ring oscillator (RO) in some cases.

仮に、リングオシレータ(RO)の発振周期RT=1000ps、すなわちリングオシレータ(RO)が1GHzで発振するよう設計されている場合、サンプリング周期STは、例えば、その一万倍以上が必要となる。
この場合、例えば、サンプリングクロックは、100KHz以下となるよう設計する必要がある。
If the oscillation period RT of the ring oscillator (RO) RT = 1000 ps, that is, the ring oscillator (RO) is designed to oscillate at 1 GHz, the sampling period ST needs to be 10,000 times or more, for example.
In this case, for example, the sampling clock needs to be designed to be 100 KHz or less.

乱数発生装置の具体的な利用例としては、例えば暗号処理装置の実行する暗号処理に用いる乱数を生成する構成があるが、このような構成において必要となる乱数は128ビットや256ビットといった多数のビット列となる。暗号処理装置に供給する乱数を生成する乱数生成部では、このように128ビットや256ビット等の多数のビット列を規則性のないランダムな値として短時間に生成することが要求される。   As a specific use example of the random number generation device, for example, there is a configuration for generating a random number used for the cryptographic processing executed by the cryptographic processing device. The random number required in such a configuration is a large number of 128 bits or 256 bits. It becomes a bit string. The random number generation unit that generates random numbers to be supplied to the cryptographic processing apparatus is required to generate a large number of bit strings such as 128 bits and 256 bits in a short time as random values having no regularity.

例えば上記の100KHzのサンプリングクロックを利用した場合、128ビットの乱数列を生成するためには、1.28msの時間を要し、256ビットの乱数列を生成するためには、2.56msの時間を要する。すなわち、非常に長い時間待つことが必要となる。このように、図1に示すリングオシレータ(RO)を持つ乱数生成装置の基本構成を利用した場合、十分なランダム性を有する乱数を取得するために必要な時間が非常に長くなるという大きな問題がある。   For example, when the above sampling clock of 100 KHz is used, a time of 1.28 ms is required to generate a 128-bit random number sequence, and a time of 2.56 ms is required to generate a 256-bit random number sequence. Cost. That is, it is necessary to wait for a very long time. As described above, when the basic configuration of the random number generation device having the ring oscillator (RO) shown in FIG. 1 is used, there is a big problem that the time required for obtaining a random number having sufficient randomness becomes very long. is there.

[2.本開示の乱数生成装置の構成と処理について]
[2−1.本開示の乱数生成装置の概要]
以下、上述したリングオシレータ(RO)を用いた乱数生成装置の基本構成における問題点を解決する本開示の乱数生成装置の構成と処理について説明する。
[2. Configuration and processing of random number generation device of present disclosure]
[2-1. Overview of the random number generation device of the present disclosure]
Hereinafter, the configuration and processing of the random number generation device of the present disclosure that solves the problems in the basic configuration of the random number generation device using the ring oscillator (RO) described above will be described.

以下に説明する本開示の乱数生成装置は、サンプリング対象となる出力、具体的には、例えば図1に示すDFF40に対する入力(D入力)の発振自体を高速化させることで、より短時間で十分なランダム性を持つ乱数を出力可能とした構成を持つ。
具体的には、図1に示すリングオシレータ(RO)20の構成を変更して、DFF40に対する入力(D入力)の発振の高速化を実現している。
The random number generation device according to the present disclosure to be described below is sufficient in a shorter time by speeding up the output to be sampled, specifically, the oscillation of the input (D input) to the DFF 40 shown in FIG. It has a configuration that can output random numbers with randomness.
Specifically, the configuration of the ring oscillator (RO) 20 shown in FIG. 1 is changed to realize high-speed oscillation of the input (D input) to the DFF 40.

図1に示すリングオシレータ(RO)20を変更して、以下のような構成とする。
奇数本の奇数段インバータチェーンにおける出力同士、または奇数本の奇数段インバータチェーンと一本以上の偶数段インバータチェーンにおける出力同士をXORし、さらにその結果を各インバータチェーンへの入力とする。この構成により、DFFに対する入力(D入力)の発振を高速化させ、より短時間で十分なランダム性を持つ乱数を出力(Q出力)させる。
The ring oscillator (RO) 20 shown in FIG. 1 is changed to have the following configuration.
The outputs of the odd-numbered odd-numbered inverter chains or the outputs of the odd-numbered odd-numbered inverter chains and one or more even-numbered inverter chains are XORed, and the result is used as an input to each inverter chain. With this configuration, the oscillation of the input to the DFF (D input) is accelerated, and a random number with sufficient randomness is output (Q output) in a shorter time.

[2−2.本開示の乱数生成装置の構成例と処理について]
図3以下を参照して本開示の乱数生成装置の構成例と処理について説明する。
[2-2. Configuration example and processing of random number generation device of present disclosure]
A configuration example and processing of the random number generation device of the present disclosure will be described with reference to FIG.

図3に示す乱数生成装置100は、以下の構成要素を有する。
(1)各々、複数のインバータを直列接続したm本のインバータチェーン110〜130、
(2)m本のインバータチェーンの出力を並列入力し、出力をD型フリップフロップ160のD入力部に入力するとともにm本のインバータチェーンにフィードバック入力(回帰入力)する構成を持つm本入力XOR素子150、
(3)XOR素子150の出力をD入力部に入力し、サンプリングクロックの立ち上がり位置のD入力部信号を出力(Q出力)する出力制御部として機能するD型フリップフロップ(DFF)160、
(4)D型フリップフロップ(DFF)160に対してサンプリングクロック信号を入力するサンプリングクロック140、
これらの構成を有する。
The random number generation device 100 shown in FIG. 3 has the following components.
(1) m inverter chains 110 to 130 each including a plurality of inverters connected in series;
(2) m-input XOR having a configuration in which the outputs of m inverter chains are input in parallel and the output is input to the D input portion of the D-type flip-flop 160 and feedback input (regression input) is input to the m inverter chains. Element 150,
(3) A D-type flip-flop (DFF) 160 that functions as an output control unit that inputs the output of the XOR element 150 to the D input unit and outputs (Q output) the D input unit signal at the rising position of the sampling clock;
(4) a sampling clock 140 for inputting a sampling clock signal to a D-type flip-flop (DFF) 160;
It has these configurations.

なお、図にはインバータチェーンとして、1,2,m本目の3本のみのインバータチェーンを代表して示しているが、3〜m−1本目のインバータチェーンは図においては省略して示したものであり、図3の乱数生成装置100は、m本のインバータチェーンを有する。なお、mは2以上の整数であるとともに、インバータチェーンの構成に応じた条件を満た数とすることが必要となる。この条件については後述する。   In the figure, as an inverter chain, only three inverter chains of 1, 2, m are representatively shown, but the third to m-1 inverter chains are omitted in the figure. The random number generation device 100 in FIG. 3 has m inverter chains. In addition, m is an integer of 2 or more, and it is necessary to satisfy the condition according to the configuration of the inverter chain. This condition will be described later.

図に示す3本のインバータチェーンは以下の構成である。
(1本目)r1段のインバータ:インバータ111−1〜インバータ111−r1を直列接続したインバータチェーン110、
(2本目)r2段のインバータ:インバータ121−1〜インバータ121−r2を直列接続したインバータチェーン120、
(m本目)rm段のインバータ:インバータ131−1〜インバータ131−rmを直列接続したインバータチェーン130、
この他、3〜m−1本目のインバータチェーンを有する。
The three inverter chains shown in the figure have the following configuration.
(First) r1 stage inverter: inverter chain 110 in which inverters 111-1 to 111-r1 are connected in series;
(Second) r2 stage inverter: inverter chain 120 in which inverters 121-1 to 121-r2 are connected in series;
(Mth) rm stage inverter: inverter chain 130 in which inverters 131-1 to 131-rm are connected in series;
In addition, it has a third to m-1th inverter chains.

図3に示すように、各々ri(i=1、…、m)段のインバータチェーンをm本利用し、各インバータチェーン110〜130の出力をXOR素子150に入力して、m本のインバータチェーンの出力値の排他的論理和(XOR)を行い、排他的論理和(XOR)結果を、出力制御部としてのDFF160に入力(D入力)する。
さらに、XOR素子150における(XOR)結果の信号をインバータチェーン110〜130へとフィードバック入力(回帰入力)する。
As shown in FIG. 3, m inverter chains each using ri (i = 1,..., M) stages are used, and the outputs of the inverter chains 110 to 130 are input to the XOR element 150. The XOR of the output values is performed, and the exclusive OR (XOR) result is input (D input) to the DFF 160 serving as an output control unit.
Further, the (XOR) result signal in the XOR element 150 is fed back to the inverter chains 110 to 130 (regression input).

なお、XOR素子150は、m本のインバータチェーン110〜130のm個の出力中に含まれる[1]の数が奇数(1,3,5・・・)の場合は[1]を出力し、m本のインバータチェーン110〜130のm個の出力中に含まれる[1]の数が0または偶数(0,2,4・・・)の場合は[0]を出力する素子である。   The XOR element 150 outputs [1] when the number of [1] included in the m outputs of the m inverter chains 110 to 130 is an odd number (1, 3, 5,...). , An element that outputs [0] when the number of [1] included in the m outputs of the m inverter chains 110 to 130 is 0 or an even number (0, 2, 4,...).

ここで、m本のインバータチェーンに関しては、
(A)m本全てを奇数段インバータチェーンで構成した構成(タイプA)、
(B)奇数段インバータチェーンと、偶数段インバータチェーンを組み合わせた構成(タイプB)、
これらの2種類のタイプのいずれかとする。
なお、インバータチェーンの本数(m)は、上記のタイプA,Bのいずれのインバータチェーン構成を採用するかによって制約が異なる。
以下、それぞれのタイプを持つ乱数生成装置の詳細構成例について説明する。
Here, for m inverter chains,
(A) A configuration (type A) in which all m pieces are composed of odd-numbered inverter chains.
(B) Configuration (type B) combining an odd-numbered inverter chain and an even-numbered inverter chain,
One of these two types is assumed.
The number of inverter chains (m) has different restrictions depending on which of the above type A and B inverter chain configurations is employed.
Hereinafter, a detailed configuration example of a random number generation device having each type will be described.

[2−3.m本全てを奇数段インバータチェーンで構成した構成(タイプA)について]
まず、m本全てを奇数段インバータチェーンで構成した構成(タイプA)の構成例について説明する。
[2-3. A configuration (type A) in which all m are configured with odd-numbered inverter chains]
First, a configuration example of a configuration (type A) in which all m pieces are configured by odd-numbered inverter chains will be described.

図3に示す乱数生成装置を、m本の奇数段インバータチェーンのみを利用して構成する場合、
1〜m本各々におけるインバータの段数(直列接続数)ri(i=1、・・・、m)は、奇数とする。
さらに、インバータチェーンの本数mも、奇数にする必要がある。
When the random number generator shown in FIG. 3 is configured using only m odd-numbered inverter chains,
The number of inverter stages (number of series connections) ri (i = 1,..., M) in each of 1 to m is an odd number.
Furthermore, the number m of inverter chains must also be an odd number.

これは、mが偶数であった場合、発振開始時における各インバータチェーンの出力値が同一の値となるため、XOR後の値が常に0となり、発振しなくなってしまうためである。   This is because when m is an even number, the output value of each inverter chain at the start of oscillation becomes the same value, so the value after XOR is always 0, and oscillation does not occur.

前述したように、XOR素子は、m本のインバータチェーン110〜130のm個の出力中に含まれる[1]の数が奇数(1,3,5・・・)の場合は[1]を出力し、m本のインバータチェーン110〜130のm個の出力中に含まれる[1]の数が0または偶数(0,2,4・・・)の場合は[0]を出力する素子である。
従って、mが偶数であり、発振開始時における各インバータチェーンの出力値が同一の値、すなわちオール0またはオール1である場合、XOR素子の出力はいずれの場合も常に同じ値である0となってしまい、発振しなくなってしまうためである。
As described above, when the number of [1] included in the m outputs of the m inverter chains 110 to 130 is an odd number (1, 3, 5...), The XOR element uses [1]. An element that outputs [0] when the number of [1] included in m outputs of the m inverter chains 110 to 130 is 0 or an even number (0, 2, 4,...). is there.
Therefore, when m is an even number and the output value of each inverter chain at the start of oscillation is the same value, that is, all 0 or all 1, the output of the XOR element is always 0 which is always the same value. This is because oscillation does not occur.

なお、m本全てを奇数段インバータチェーンで構成した場合の各インバータチェーンに構成するインバータの段数riは、同一の値であってもよいが、各々異なる値を選択することが望ましい。これは、各インバータチェーンの各々に多様なジッタを発生させる可能性を高めるためである。   Note that the number of inverter stages ri in each inverter chain when all m are configured with odd-numbered inverter chains may be the same value, but it is desirable to select different values. This is to increase the possibility of generating various jitters in each inverter chain.

奇数段インバータチェーンのみを利用した構成を持つ乱数生成装置200の構成例を図4に示す。
図4に示す乱数生成装置200は、以下の構成のインバータチェーンを有する。
インバータチェーンの本数:m=3、
1本目のインバータチェーンのインバータ段数:r1=3、
2本目のインバータチェーンのインバータ段数:r2=5、
3本目のインバータチェーンのインバータ段数:r3=7、
図4に示す乱数生成装置200は、上記設定のインバータチェーン構成を有する。
FIG. 4 shows a configuration example of a random number generation device 200 having a configuration using only odd-numbered inverter chains.
A random number generation device 200 shown in FIG. 4 has an inverter chain having the following configuration.
Number of inverter chains: m = 3
Number of inverter stages in the first inverter chain: r1 = 3
Number of inverter stages in the second inverter chain: r2 = 5
Number of inverter stages in the third inverter chain: r3 = 7
The random number generation device 200 shown in FIG. 4 has an inverter chain configuration set as described above.

図4に示す乱数生成装置200の全体構成について説明する。
乱数生成装置200は、以下の構成要素を有する。
(1)各々、複数のインバータを直列接続した3本のインバータチェーン201〜203、
(2)3本のインバータチェーンの出力を並列入力し、出力をD型フリップフロップ206のD入力部に入力するとともに3本のインバータチェーン201〜203に回帰入力する構成を持つ3本入力XOR素子205、
(3)XOR素子205の出力をD入力部に入力し、サンプリングクロックの立ち上がり位置のD入力部信号を出力(Q出力)する出力制御部として機能するD型フリップフロップ(DFF)206、
(4)D型フリップフロップ(DFF)206に対してサンプリングクロック信号を入力するサンプリングクロック204、
これらの構成を有する。
The overall configuration of the random number generation device 200 shown in FIG. 4 will be described.
The random number generation device 200 has the following components.
(1) Three inverter chains 201 to 203 each having a plurality of inverters connected in series,
(2) A three-input XOR element having a configuration in which the outputs of three inverter chains are input in parallel, the output is input to the D input portion of the D-type flip-flop 206, and the three inverter chains 201 to 203 are regressed. 205,
(3) a D-type flip-flop (DFF) 206 that functions as an output control unit that inputs the output of the XOR element 205 to the D input unit and outputs (Q output) the D input unit signal at the rising position of the sampling clock;
(4) a sampling clock 204 for inputting a sampling clock signal to a D-type flip-flop (DFF) 206;
It has these configurations.

なお、3本のインバータチェーン201〜203は、以下の構成である。
(1本目)3段のインバータを直列接続したインバータチェーン201、
(2本目)5段のインバータを直列接続したインバータチェーン202、
(3本目)7段のインバータを直列接続したインバータチェーン203、
The three inverter chains 201 to 203 have the following configuration.
(First) Inverter chain 201 in which three stages of inverters are connected in series,
(Second) Inverter chain 202 in which five stages of inverters are connected in series,
(Third) Inverter chain 203 in which seven stages of inverters are connected in series,

図4に示すように、各々3,5,7段のインバータチェーンを3本利用し、各インバータチェーン201〜203の出力をXOR素子205に入力して、3本のインバータチェーンの出力値の排他的論理和(XOR)を行い、排他的論理和(XOR)結果をDFF206に入力(D入力)する。
さらに、XOR素子205における(XOR)結果の信号をインバータチェーン201〜203へとフィードバック入力(回帰入力)する。
As shown in FIG. 4, three inverter chains of 3, 5, and 7 stages are used, and the outputs of the inverter chains 201 to 203 are input to the XOR element 205 to exclude the output values of the three inverter chains. The logical OR (XOR) is performed, and the exclusive OR (XOR) result is input to the DFF 206 (D input).
Further, the (XOR) result signal in the XOR element 205 is fed back to the inverter chains 201 to 203 (regression input).

D型フリップフロップ(DFF)206には、サンプリングクロック204が入力され、入力するサンプリングクロック204のクロック信号に応じて、D型フリップフロップ(DFF)206に対する入力値(D入力)がサンプリングされて出力(Q出力)される。この出力値が乱数として利用される。   A sampling clock 204 is input to the D-type flip-flop (DFF) 206, and an input value (D input) to the D-type flip-flop (DFF) 206 is sampled and output according to the clock signal of the input sampling clock 204. (Q output). This output value is used as a random number.

なお、XOR素子205は、3本のインバータチェーン201〜203の3個の出力中に含まれる[1]の数が奇数(1,3)の場合は[1]を出力し、3本のインバータチェーン201〜203の3個の出力中に含まれる[1]の数が0または偶数(0,2)の場合は[0]を出力する素子である。   The XOR element 205 outputs [1] when the number of [1] included in the three outputs of the three inverter chains 201 to 203 is an odd number (1, 3), and outputs three inverters. When the number of [1] included in the three outputs of the chains 201 to 203 is 0 or an even number (0, 2), the element outputs [0].

[2−4.奇数段インバータチェーンと、偶数段インバータチェーンを組み合わせた構成(タイプB)について]
次に、奇数段インバータチェーンと、偶数段インバータチェーンを組み合わせた構成(タイプB)の構成例について説明する。
[2-4. Configuration combining odd-numbered inverter chains and even-numbered inverter chains (Type B)]
Next, a configuration example of a configuration (type B) in which an odd-numbered inverter chain and an even-numbered inverter chain are combined will be described.

奇数段インバータチェーンと、偶数段インバータチェーンを組み合わせた構成(タイプB)では、奇数段インバータチェーンの本数を奇数本とする。
この制約がある。
インバータチェーンの総数mは、奇数、偶数いずれの設定としてもよいが、全インバータチェーンに含まれる奇数段インバータチェーンの本数を奇数本とする。
In a configuration (type B) in which an odd-numbered inverter chain and an even-numbered inverter chain are combined, the number of odd-numbered inverter chains is an odd number.
There is this limitation.
The total number m of inverter chains may be set to odd or even, but the number of odd-numbered inverter chains included in all inverter chains is odd.

ただし、例えば図3に示すm本のインバータチェーンを有する乱数生成装置100において、m本のインバータチェーンのうち、奇数個のインバータを直列接続した「奇数段インバータチェーン」が奇数本、存在するなら、残りのインバータチェーンは、偶数個のインバータを直列接続した「偶数段インバータチェーン」としてもよい。   However, for example, in the random number generation device 100 having m inverter chains shown in FIG. 3, if there are an odd number of “odd-stage inverter chains” in which an odd number of inverters are connected in series among the m inverter chains, The remaining inverter chain may be an “even-numbered inverter chain” in which an even number of inverters are connected in series.

なお、複数の「奇数段インバータチェーン」を利用する場合、各インバータチェーンの段数は同一であってもよいが、異なる値を選択することが望ましい。一方、複数の「偶数段インバータチェーン」を含む場合、各「偶数段インバータチェーン」の段数(直列接続インバータ数)は任意の偶数を選択することが可能である。   When using a plurality of “odd number inverter chains”, the number of stages in each inverter chain may be the same, but it is desirable to select different values. On the other hand, when a plurality of “even-numbered inverter chains” are included, any even number can be selected as the number of stages (the number of inverters connected in series) of each “even-numbered inverter chain”.

奇数段と偶数段のインバータチェーンを組み合わせて利用した構成の具体的構成例を図5に示す。
図5に示す乱数生成装置300は、以下の構成のインバータチェーンを有する。
インバータチェーンの本数:m=2、
1本目のインバータチェーンのインバータ段数:r1=3、
2本目のインバータチェーンのインバータ段数:r2=4、
図5に示す乱数生成装置300は、上記設定のインバータチェーン構成を有する。
FIG. 5 shows a specific configuration example of a configuration using a combination of odd-numbered and even-numbered inverter chains.
A random number generation device 300 illustrated in FIG. 5 includes an inverter chain having the following configuration.
Number of inverter chains: m = 2
Number of inverter stages in the first inverter chain: r1 = 3
Number of inverter stages in the second inverter chain: r2 = 4
A random number generation device 300 shown in FIG. 5 has an inverter chain configuration set as described above.

図5に示す乱数生成装置300の全体構成について説明する。
乱数生成装置300は、以下の構成要素を有する。
(1)各々、複数のインバータを直列接続した2本のインバータチェーン301〜302、
(2)2本のインバータチェーンの出力を並列入力し、出力をD型フリップフロップ306のD入力部に入力するとともに2本のインバータチェーン301〜302に回帰入力する構成を持つ2本入力XOR素子305、
(3)XOR素子305の出力をD入力部に入力し、サンプリングクロックの立ち上がり位置のD入力部信号を出力(Q出力)する出力制御部として機能するD型フリップフロップ(DFF)306、
(4)D型フリップフロップ(DFF)306に対してサンプリングクロック信号を入力するサンプリングクロック304、
これらの構成を有する。
The overall configuration of the random number generation device 300 shown in FIG. 5 will be described.
The random number generation device 300 includes the following components.
(1) Two inverter chains 301 to 302 each having a plurality of inverters connected in series,
(2) A two-input XOR element having a configuration in which the outputs of two inverter chains are input in parallel, the output is input to the D input portion of the D-type flip-flop 306, and the two inverter chains 301 to 302 are regressed. 305,
(3) a D-type flip-flop (DFF) 306 that functions as an output control unit that inputs the output of the XOR element 305 to the D input unit and outputs (Q output) the D input unit signal at the rising position of the sampling clock;
(4) a sampling clock 304 for inputting a sampling clock signal to a D-type flip-flop (DFF) 306;
It has these configurations.

なお、2本のインバータチェーン301〜302は、以下の構成である。
(1本目)3段のインバータを直列接続したインバータチェーン301、
(2本目)4段のインバータを直列接続したインバータチェーン302、
The two inverter chains 301 to 302 have the following configuration.
(First) Inverter chain 301 in which three stages of inverters are connected in series,
(Second) Inverter chain 302 in which four stages of inverters are connected in series,

図5に示すように、各々3,4段のインバータチェーンを2本利用し、各インバータチェーン301〜302の出力をXOR素子305に入力して、2本のインバータチェーンの出力値の排他的論理和(XOR)を行い、排他的論理和(XOR)結果をDFF306に入力(D入力)する。
さらに、XOR素子305における(XOR)結果の信号をインバータチェーン301〜302へとフィードバック入力(回帰入力)する。
As shown in FIG. 5, two inverter chains of three and four stages are used, and the outputs of the inverter chains 301 to 302 are input to the XOR element 305, and the exclusive logic of the output values of the two inverter chains is used. Sum (XOR) is performed, and an exclusive OR (XOR) result is input to DFF 306 (D input).
Further, the (XOR) result signal in the XOR element 305 is fed back to the inverter chains 301 to 302 (regression input).

D型フリップフロップ(DFF)306には、サンプリングクロック304が入力され、入力するサンプリングクロック304のクロック信号に応じて、D型フリップフロップ(DFF)306に対する入力値(D入力)がサンプリングされて出力(Q出力)される。この出力値が乱数として利用される。   A sampling clock 304 is input to the D-type flip-flop (DFF) 306, and an input value (D input) to the D-type flip-flop (DFF) 306 is sampled and output according to the clock signal of the input sampling clock 304. (Q output). This output value is used as a random number.

なお、XOR素子305は、2本のインバータチェーン301〜302の2個の出力中に含まれる[1]の数が奇数(1)の場合は[1]を出力し、2本のインバータチェーン301〜302の2個の出力中に含まれる[1]の数が0または偶数(0,2)の場合は[0]を出力する素子である。   The XOR element 305 outputs [1] when the number of [1] included in the two outputs of the two inverter chains 301 to 302 is an odd number (1), and outputs two inverter chains 301. The element that outputs [0] when the number of [1] included in the two outputs of ~ 302 is 0 or an even number (0, 2).

[2−5.サンプリング対象信号の発振周期とサンプリング値について]
先に、図1、図2を参照して説明した1本のインバータチェーンによって構成されるリングオシレータ(RO)を利用した乱数生成装置は、1本のインバータチェーンによって構成されるリングオシレータ(RO)を発振させて、その出力値をサンプリングしている。
[2-5. Oscillation period and sampling value of sampling target signal]
The random number generation device using the ring oscillator (RO) configured by one inverter chain described with reference to FIGS. 1 and 2 is a ring oscillator (RO) configured by one inverter chain. The output value is sampled.

この1本のインバータチェーン構成を用いた場合、ジッタの影響により発振波形にずれを生じさせ、かつそのずれがサンプリング時の値(High(1)/Low(0))に十分なランダム性を発揮させるためには、リングオシレータ(RO)の発振周期に対して非常に小さいジッタを十分な数、蓄積する必要があった。従って、リングオシレータ(RO)の発振周期に対して十分長いサンプリング周期を設定する必要が生じていた。   When this single inverter chain configuration is used, a deviation occurs in the oscillation waveform due to the effect of jitter, and the deviation exhibits sufficient randomness for the sampling value (High (1) / Low (0)). In order to achieve this, it is necessary to accumulate a sufficient number of very small jitters with respect to the oscillation period of the ring oscillator (RO). Therefore, it is necessary to set a sufficiently long sampling period with respect to the oscillation period of the ring oscillator (RO).

これに対して、図3〜図5を参照して説明した本開示に従った乱数生成装置は、2本以上のm本のインバータチェーンを並列に接続して、m本のインバータチェーンの出力をXOR素子に入力して、XOR素子の出力をサンプリングするとともに、各インバータチェーンにフィードバック入力する構成としている。   On the other hand, the random number generation device according to the present disclosure described with reference to FIGS. 3 to 5 connects two or more m inverter chains in parallel and outputs m inverter chains. It is configured to input to the XOR element, sample the output of the XOR element, and input feedback to each inverter chain.

この構成により、サンプリング対象となるXOR素子の出力の発振周期自体を短くすることを可能としている。
すなわち、本開示の乱数生成装置は、サンプリング対象となる信号であるXOR素子の出力信号の発振そのものを高速にし、サンプリング周期を短く設定しても、十分なジッタの蓄積による出力値(=サンプリング値)のランダム性を確保することを可能としている。
With this configuration, it is possible to shorten the oscillation period itself of the output of the XOR element to be sampled.
In other words, the random number generation device according to the present disclosure increases the output value (= sampling value) even if the oscillation of the output signal of the XOR element, which is the signal to be sampled, is accelerated and the sampling period is set short. ) Can be secured.

この理由について、図6、図7を参照して説明する。図6は、先に説明した図2(2)と同様のジッタのある発振信号のサンプリング処理例を示す図である。
図6には、
(a)サンプリング対象信号(図3〜図5の構成ではXOR素子の出力)
(b)サンプリングクロック
これらの各信号を示している。
(a)サンプリング対象信号の発振周期=RT、
(b)サンプリングクロックの周期=ST
とする。
The reason for this will be described with reference to FIGS. FIG. 6 is a diagram illustrating an example of sampling processing of an oscillation signal having jitter similar to that of FIG.
In FIG.
(A) Sampling target signal (the output of the XOR element in the configurations of FIGS. 3 to 5)
(B) Sampling clock These signals are shown.
(A) Sampling target signal oscillation cycle = RT,
(B) Sampling clock cycle = ST
And

図6に示すERTi,ESTjは以下の位置を示す。
ERTiは、(a)サンプリング対象信号の発振波形のi番目のエッジ(0,1の変化点)、
ESTjは、サンプリングクロックの波形のj番目のエッジ(0,1の変化点)、
これらを示している。
ERTi and ESTj shown in FIG. 6 indicate the following positions.
ERTi is (a) the i-th edge (0, 1 change point) of the oscillation waveform of the sampling target signal,
ESTj is the jth edge (0, 1 change point) of the waveform of the sampling clock,
These are shown.

サンプリング対象信号の発振周期RTにおけるHigh/Low区間を各々RT/2、
サンプリング周期ST=2RT、
とし、
サンプリング開始位置t0が、
t0=ERT0+RT/4、
すなわち、発振周期RTのHigh区間における中心点、となる場合を考える。
High / Low intervals in the oscillation cycle RT of the sampling target signal are RT / 2,
Sampling cycle ST = 2RT,
age,
Sampling start position t0 is
t0 = ERT0 + RT / 4,
That is, consider the case where the center point of the oscillation period RT is in the High section.

次のサンプリング点は、サンプリングクロックのEST2のタイミングであり、図6に示す(t1)である。
t1において、ジッタによってエッジの取り得る範囲がRT/4以上まで広がらない限り、サンプリングされる値は変化しない。
時刻t0のサンプリング開始後、最初の値が取得されるサンプリングクロックのEST2のタイミングのサンプリング時刻t1は、
t1=t0+ST=t0+2RT、
となる。
図に示すように、このサンプリング時刻t1において、ジッタによってエッジの取り得る範囲がRT/4以上まで広がらない限り、サンプリングされる値は変化しない。
The next sampling point is the timing of the sampling clock EST2, which is (t1) shown in FIG.
At t1, the sampled value does not change unless the possible range of the edge is increased to RT / 4 or more due to jitter.
After the start of sampling at time t0, the sampling time t1 at the timing of EST2 of the sampling clock from which the first value is acquired is
t1 = t0 + ST = t0 + 2RT,
It becomes.
As shown in the figure, at the sampling time t1, the value to be sampled does not change unless the range that the edge can take is increased to RT / 4 or more due to jitter.

図に示すように、(a)サンプリング対象信号出力の波形に応じて[0],[1],[0]の出力が得られるが、サンプリング時刻t1では、サンプリングクロックのサンプリングタイミングEST2からの矢印401に従った位置の(a)サンプリング対象信号の波形に応じて出力が得られる。   As shown in the figure, (a) outputs [0], [1], [0] are obtained according to the waveform of the sampling target signal output, but at the sampling time t1, an arrow from the sampling timing EST2 of the sampling clock An output is obtained according to (a) the waveform of the sampling target signal at the position according to 401.

全くジッタがなければサンプリングクロックのサンプリングタイミングEST2からの矢印401に従った位置の(a)サンプリング対象信号はHighの位置であり、出力[1]が得られる。
しかし、(a)サンプリング対象信号がジッタの影響でずれている場合、例えば−RT/4以上のずれ、あるいは+RT/4以上のずれが発生している場合は、サンプリングクロックのサンプリングタイミングEST2からの矢印401に従った位置の(a)サンプリング対象信号はLowの位置であり、出力[0]が得られる。
If there is no jitter, the (a) sampling target signal at the position according to the arrow 401 from the sampling timing EST2 of the sampling clock is at the High position, and output [1] is obtained.
However, (a) when the sampling target signal is shifted due to jitter, for example, when a shift of −RT / 4 or more, or a shift of + RT / 4 or more occurs, the sampling clock from the sampling timing EST2 The (a) sampling target signal at the position according to the arrow 401 is at the Low position, and an output [0] is obtained.

このように、サンプリング時刻t1において、ジッタによってエッジの取り得る範囲がRT/4以上まで広がらない限り、サンプリングされる値は変化しない。   In this way, at the sampling time t1, the sampled value does not change unless the possible range of the edge is expanded to RT / 4 or more due to jitter.

次に、図7に、(a)サンプリング対象信号(図3〜図5の構成ではXOR素子の出力)の発振周波数を2倍にした場合の発振信号のサンプリング処理例を示す。
図7には、図6と同様、
(a)サンプリング対象信号(図3〜図5の構成ではXOR素子の出力)
(b)サンプリングクロック
これらの各信号を示している。
(a)サンプリング対象信号の発振周期=RT/2、
(b)サンプリングクロックの周期=ST
とする。
Next, FIG. 7 shows an example of sampling processing of the oscillation signal when (a) the oscillation frequency of the sampling target signal (the output of the XOR element in the configurations of FIGS. 3 to 5) is doubled.
In FIG. 7, as in FIG.
(A) Sampling target signal (the output of the XOR element in the configurations of FIGS. 3 to 5)
(B) Sampling clock These signals are shown.
(A) Oscillation period of sampling target signal = RT / 2,
(B) Sampling clock cycle = ST
And

図7に示す例では、
サンプリング周期ST=2RT、
としている。
サンプリング開始位置t0は、
t0=ERT0+RT/8、
すなわち、図6と同様、発振周期RT/2のHigh区間における中心点とする。
In the example shown in FIG.
Sampling cycle ST = 2RT,
It is said.
Sampling start position t0 is
t0 = ERT0 + RT / 8,
That is, as in FIG. 6, the center point in the High section of the oscillation period RT / 2.

次のサンプリング点は、サンプリングクロックのEST2のタイミングであり、図7に示す(t1)である。
図7においては、サンプリング時間(t1)において、ジッタによってエッジの取り得る範囲がRT/8以上まで広がれば、サンプリングされる値が変化する。
時刻t0のサンプリング開始後、最初の値が取得されるサンプリングクロックのEST2のタイミングのサンプリング時刻t1は、
t1=t0+ST=t0+2RT、
となる。
図に示すように、このサンプリング時刻t1において、ジッタによってエッジの取り得る範囲がRT/8以上、広がればサンプリングされる値は変化する。
The next sampling point is the timing of the sampling clock EST2, which is (t1) shown in FIG.
In FIG. 7, if the range that the edge can take is increased to RT / 8 or more due to jitter at the sampling time (t1), the sampled value changes.
After the start of sampling at time t0, the sampling time t1 at the timing of EST2 of the sampling clock from which the first value is acquired is
t1 = t0 + ST = t0 + 2RT,
It becomes.
As shown in the figure, at the sampling time t1, if the range that the edge can take is increased by RT / 8 or more due to jitter, the sampled value changes.

図に示すように、(a)サンプリング対象信号出力の波形に応じて[0],[1],[0]の出力が得られるが、サンプリング時刻t1では、サンプリングクロックのサンプリングタイミングEST2からの矢印402に従った位置の(a)サンプリング対象信号の波形に応じて出力が得られる。   As shown in the figure, (a) outputs [0], [1], [0] are obtained according to the waveform of the sampling target signal output, but at the sampling time t1, an arrow from the sampling timing EST2 of the sampling clock An output is obtained according to the waveform of the sampling target signal at the position according to 402.

全くジッタがなければサンプリングクロックのサンプリングタイミングEST2からの矢印402に従った位置の(a)サンプリング対象信号はHighの位置であり、出力[1]が得られる。
しかし、(a)サンプリング対象信号がジッタの影響でずれている場合、例えば−RT/8以上のずれ、あるいは+RT/8以上のずれが発生している場合は、サンプリングクロックのサンプリングタイミングEST2からの矢印402に従った位置の(a)サンプリング対象信号はLowの位置であり、出力[0]が得られる。
If there is no jitter, the (a) sampling target signal at the position according to the arrow 402 from the sampling timing EST2 of the sampling clock is at the High position, and the output [1] is obtained.
However, (a) when the sampling target signal is shifted due to jitter, for example, when a shift of −RT / 8 or more or a shift of + RT / 8 or more occurs, the sampling clock from the sampling timing EST2 The (a) sampling target signal at the position according to the arrow 402 is at the Low position, and an output [0] is obtained.

このように、サンプリング時刻t1において、ジッタによってエッジの取り得る範囲がRT/8以上まで広がればサンプリングされる値が変化する。
これは、先の図6の設定の半分のジッタで出力の変化が発生することを意味する。
In this way, at the sampling time t1, the value to be sampled changes if the range that the edge can take is expanded to RT / 8 or more due to jitter.
This means that a change in output occurs with a jitter that is half of the setting shown in FIG.

このように、(a)サンプリング対象信号(図3〜図5の構成ではXOR素子の出力)の発振を二倍にする、即ち発振周期をRT/2にした場合、High/Low区間は各々RT/4となり、ジッタの蓄積によって、RT/8以上のジッタ蓄積が発生すれば、サンプリングされる値が変更され得ることになる。
これは、同一の確率で0,1を変化させるために必要なジッタ量が少なくてすむことを意味する。
In this way, (a) when the oscillation of the sampling target signal (the output of the XOR element in the configurations of FIGS. 3 to 5) is doubled, that is, when the oscillation period is set to RT / 2, the High / Low period is set to RT. If jitter accumulation of RT / 8 or more occurs due to the accumulation of jitter, the value to be sampled can be changed.
This means that the amount of jitter required to change 0 and 1 with the same probability can be reduced.

このように(a)サンプリング対象信号(図3〜図5の構成ではXOR素子の出力)の発振周期を短くすることで、短時間に多くのジッタを蓄積可能となり、出力信号としての0と1の発生確率を均等に近づけることが可能となり、結果として、サンプリング周期を短くすることが可能となる。   As described above, (a) by shortening the oscillation period of the sampling target signal (in the configurations of FIGS. 3 to 5, the output of the XOR element), it is possible to accumulate a large amount of jitter in a short time, and 0 and 1 as output signals. It is possible to make the occurrence probability close to uniform, and as a result, the sampling cycle can be shortened.

[2−6.従来構成と本開示構成の発振周期の比較と効果について]
本開示の構成では、複数のインバータチェーンを利用し、これらの出力をXORすることによって高速な発振を生成するとともに、さらにその発振を各インバータチェーンの入力に回帰させることによって、より高速な発振の生成を実現している。
本開示の構成において、サンプリング対象となるXOR素子の出力の発振が、先に図1、図2を参照して説明した構成よりも高速になることを、図8を参照して説明する。
[2-6. Comparison and Effect of Oscillation Periods of Conventional Configuration and Disclosure Configuration]
In the configuration of the present disclosure, a plurality of inverter chains are used, and a high-speed oscillation is generated by XORing these outputs, and further, the oscillation is returned to the input of each inverter chain, thereby generating a higher-speed oscillation. Generation is realized.
In the configuration of the present disclosure, it will be described with reference to FIG. 8 that the oscillation of the output of the XOR element to be sampled becomes faster than the configuration described with reference to FIGS.

図8には、
(1)従来構成のサンプリング処理例、
(2)本開示構成のサンプリング処理例、
これら2つのサンプリング処理例を対比して示している。
In FIG.
(1) Sampling processing example of conventional configuration,
(2) An example of sampling processing of the disclosed configuration;
These two sampling processing examples are shown in comparison.

なお、
(1)従来構成のサンプリング処理例は、図1に示す構成、すなわち、3段のインバータチェーンからなるリングオシレータ(RO)を用いた基本構成におけるサンプリング処理例である。
(2)本開示構成のサンプリング処理例は、図5に示す構成、すなわち、
3段のインバータチェーン301と、
4段のインバータチェーン302、
これら2本のインバータチェーンの出力をXOR素子305に入力し、
XOR素子305の出力をサンプリングしかつ各インバータチェーン301,302に回帰入力する構成におけるサンプリング処理例である。
In addition,
(1) An example of sampling processing of the conventional configuration is an example of sampling processing in the configuration shown in FIG. 1, that is, the basic configuration using a ring oscillator (RO) composed of a three-stage inverter chain.
(2) The sampling processing example of the configuration of the present disclosure has the configuration shown in FIG.
A three-stage inverter chain 301;
4-stage inverter chain 302,
The outputs of these two inverter chains are input to the XOR element 305,
This is a sampling processing example in a configuration in which the output of the XOR element 305 is sampled and regressed to each inverter chain 301 and 302.

図8には、
(1)従来構成のサンプリング処理例として、
(1a)図1に示すリングオシレータ(RO)20の出力信号波形(RO出力)、
(1b)図1に示すサンプリングクロック30の信号波形(sampling clock)、
これらを示している。
また、(2)本開示構成のサンプリング処理例として、
(2a)図5に示す3段インバータチェーン301の出力に対応するXOR素子305の第1入力信号波形(XOR第1入力)、
(2b)図5に示す4段インバータチェーン302の出力に対応するXOR素子305の第2入力信号波形(XOR第2入力)、
(2c)図5に示すXOR素子305の出力信号波形(XOR出力)、
これらを示している。
In FIG.
(1) As an example of sampling processing of the conventional configuration,
(1a) Output signal waveform (RO output) of the ring oscillator (RO) 20 shown in FIG.
(1b) A signal waveform (sampling clock) of the sampling clock 30 shown in FIG.
These are shown.
In addition, (2) as an example of sampling processing of the disclosed configuration,
(2a) a first input signal waveform (XOR first input) of the XOR element 305 corresponding to the output of the three-stage inverter chain 301 shown in FIG.
(2b) a second input signal waveform (XOR second input) of the XOR element 305 corresponding to the output of the four-stage inverter chain 302 shown in FIG.
(2c) Output signal waveform (XOR output) of the XOR element 305 shown in FIG.
These are shown.

なお、図1、図5に示す構成において用いられるインバータの遅延値は全て同一の値dであるとし、配線遅延およびジッタの影響による波形のずれは考えないものとする。   It is assumed that the delay values of the inverters used in the configurations shown in FIGS. 1 and 5 are all the same value d, and that the waveform shift due to the influence of wiring delay and jitter is not considered.

図8の(1)従来構成のサンプリング処理例に示す(1b)サンプリングクロック30の信号波形の周期数を基準として考察する。
図8において、(1a)は、図1に示すリングオシレータ(RO)20の出力信号波形を表している。
図1に示すリングオシレータ(RO)20の段数は3段であり、図8(1a)の波形は、インバータの遅延3段分(3d)毎にHigh/Lowが反転する波形となっている。
The number of periods of the signal waveform of the sampling clock 30 shown in (1) example of sampling processing of the conventional configuration in FIG. 8 is considered as a reference.
In FIG. 8, (1a) represents an output signal waveform of the ring oscillator (RO) 20 shown in FIG.
The number of stages of the ring oscillator (RO) 20 shown in FIG. 1 is three, and the waveform of FIG. 8 (1a) is a waveform in which High / Low is inverted every three delay stages (3d) of the inverter.

ここで、先に説明した図2と同様、図8(1b)に示すサンプリングクロックのサンプリング周期STを、図8(1a)に示すリングオシレータ(RO)の周期RTの2倍、すなわち、
ST=2RT
とする。
Here, similarly to FIG. 2 described above, the sampling cycle ST of the sampling clock shown in FIG. 8 (1b) is twice the cycle RT of the ring oscillator (RO) shown in FIG. 8 (1a), that is,
ST = 2RT
And

この設定において、サンプリングクロックの1つのサンプリング周期である1ST内には、リングオシレータ(RO)の周期RTの2周期分(2RT)が含まれることとなる。   In this setting, 1ST, which is one sampling period of the sampling clock, includes two periods (2RT) of the ring oscillator (RO) period RT.

次に、図8(2)の本開示に従ったサンプリング処理例について考察する。
図8(2)には、以下の各波形を示している。
(2a)図5に示す3段インバータチェーン301の出力に対応するXOR素子305の第1入力信号波形(XOR第1入力)、
(2b)図5に示す4段インバータチェーン302の出力に対応するXOR素子305の第2入力信号波形(XOR第2入力)、
(2c)図5に示すXOR素子305の出力信号波形(XOR出力)、
これらを示している。
Next, consider a sampling process example according to the present disclosure of FIG.
FIG. 8 (2) shows the following waveforms.
(2a) a first input signal waveform (XOR first input) of the XOR element 305 corresponding to the output of the three-stage inverter chain 301 shown in FIG.
(2b) a second input signal waveform (XOR second input) of the XOR element 305 corresponding to the output of the four-stage inverter chain 302 shown in FIG.
(2c) Output signal waveform (XOR output) of the XOR element 305 shown in FIG.
These are shown.

図5に示すように、3段インバータチェーン301、および4段インバータチェーン302には、XOR素子305における排他的論理和(XOR)後の信号が再度、入力される。   As shown in FIG. 5, the signal after the exclusive OR (XOR) in the XOR element 305 is input to the 3-stage inverter chain 301 and the 4-stage inverter chain 302 again.

このフィードバック入力(回帰入力)によって、
図8に示す、
(2a)XOR第1入力、
(2b)XOR第2入力、
これらの発振波形は、各々、
(2c)XOR出力において形成された周期の影響を受ける。
With this feedback input (regression input)
As shown in FIG.
(2a) XOR first input,
(2b) XOR second input,
Each of these oscillation waveforms is
(2c) affected by the period formed at the XOR output.

例えば、図8に示す時刻t0の(2c)XOR出力における信号[High]が、
図5に示す3段インバータチェーン301、および4段インバータチェーン302に入力されることにより、
(2a)XOR第1入力では、t0+3d後(図に示す位置P)、
(2b)XOR第2入力では、t0+4d後(図に示す位置q)、
これらの各位置でその影響が表れる。
For example, the signal [High] at the (2c) XOR output at time t0 shown in FIG.
By being input to the three-stage inverter chain 301 and the four-stage inverter chain 302 shown in FIG.
(2a) In the first XOR input, after t0 + 3d (position P shown in the figure),
(2b) In the second XOR input, after t0 + 4d (position q shown in the figure),
The effect appears at each of these positions.

(2a)XOR第1入力は、図5に示す3段インバータチェーン301の出力であり、3段インバータチェーン301の先頭の[High]の値は、3段のインバータを通過して[Low]として出力される。この位置が、t0+3d後であり、図に示す位置Pである。   (2a) The first XOR input is the output of the three-stage inverter chain 301 shown in FIG. 5, and the first [High] value of the three-stage inverter chain 301 passes through the three-stage inverter as [Low]. Is output. This position is t0 + 3d later and is a position P shown in the figure.

また、(2b)XOR第2入力は、図5に示す4段インバータチェーン302の出力であり、4段インバータチェーン302の先頭の[High]の値は、4段のインバータを通過して[High]として出力される。この位置が、t0+4d後であり、図に示す位置qである。   Further, (2b) XOR second input is an output of the four-stage inverter chain 302 shown in FIG. 5, and the value of [High] at the head of the four-stage inverter chain 302 passes through the four-stage inverter and becomes [High]. ] Is output. This position is t0 + 4d later and is the position q shown in the figure.

また、これらの波形、(2a)XOR第1入力と、(2b)XOR第2入力は、図5に示すXOR素子305に入力されて排他的論理和(XOR)演算がなされるため、(2a)XOR第1入力と、(2b)XOR第2入力の差分として、(2c)XOR出力における時刻t0+3dからt0+4dの部分に新たな周期が形成される。
以下、同様にして、これらの新たな周期による影響が各インバータチェーンに入力され、その結果によってまた新たな周期が(2c)XOR出力に形成される。
Since these waveforms, (2a) XOR first input and (2b) XOR second input are input to the XOR element 305 shown in FIG. 5 and are subjected to exclusive OR (XOR) operation, (2a ) As a difference between the XOR first input and (2b) XOR second input, a new period is formed in the portion of (2c) XOR output from time t0 + 3d to t0 + 4d.
Similarly, the influence of these new cycles is input to each inverter chain, and a new cycle is formed in the (2c) XOR output according to the result.

このように、複数のインバータチェーンを利用し、その出力をXORするとともに、XOR後の発振を各々のインバータチェーンへとフィードバック(回帰入力)することによって、インバータチェーン間における遅延差の影響を周期として生成することが可能となる。   In this way, by using a plurality of inverter chains, XORing the outputs and feeding back the oscillation after XOR to each inverter chain (regression input), the influence of the delay difference between the inverter chains is taken as a period. Can be generated.

図8(1)の(1b)に示す従来方式のサンプリングクロックの周期STの1ST内のリングオシレータ(RO)の出力の周期は2、すなわち、
ST=2RT
であるのに対し、
図8(2)に示す例では、サンプリング対象である(2c)XOR出力は、図8(1b)に示すサンプリングクロックの1ST区間であるEST0からEST2までの間に4周期(図に示す[1]〜[4])設定されている。
The period of the output of the ring oscillator (RO) within 1ST of the period ST of the conventional sampling clock shown in (1b) of FIG.
ST = 2RT
Whereas
In the example shown in FIG. 8 (2), the (2c) XOR output to be sampled has four periods (1 to 1 shown in the figure) between EST0 and EST2, which is the 1ST section of the sampling clock shown in FIG. 8 (1b). ] To [4]) are set.

図8(1b)のサンプリングクロックの1ST区間において発生する図8(2)に示す(2c)XOR出力の周期数は様々に変動するが、サンプリングクロックの1ST区間において発生する平均的な周期数は、図8(1)に示す(1a)のリングオシレータ(RO)の周期数(=2)より多くなる。   The period number of (2c) XOR output shown in FIG. 8 (2) generated in the 1ST section of the sampling clock in FIG. 8 (1b) varies variously, but the average period number generated in the 1ST section of the sampling clock is More than the number of cycles (= 2) of the ring oscillator (RO) of (1a) shown in FIG.

このように、図3〜図5を参照して説明した構成では、異なるジッタを発生させる複数のインバータチェーンの出力をXOR素子に入力してXOR素子の出力をサンプリングし、かつ各インバータチェーンにフィードバックすることで、XOR素子の出力の発振周期を高めている。
従って、乱数として取得するXOR素子出力をより高速な発振信号として生成することが可能となり、ジッタに基づくランダム性をより短時間で実現することが可能となり、結果として短時間のサンプリング周期を設定してもランダム性の高い乱数出力を得ることが可能となる。
As described above, in the configuration described with reference to FIGS. 3 to 5, the outputs of a plurality of inverter chains that generate different jitters are input to the XOR elements, and the outputs of the XOR elements are sampled and fed back to the inverter chains. As a result, the oscillation cycle of the output of the XOR element is increased.
Therefore, the XOR element output acquired as a random number can be generated as a faster oscillation signal, and randomness based on jitter can be realized in a shorter time. As a result, a short sampling period is set. However, a random output with high randomness can be obtained.

[3.その他の実施例について]
[3−1.インバータの数を削減した実施例について]
上述した図3〜図5を参照して説明した乱数生成装置の構成では、複数のインバータチェーンを利用している。
従って、図1を参照して説明した従来型の1本のインバータチェーンによって構成される装置に比較して必要となるインバータの数は増加する。
例えば、6本のインバータチェーンを有する乱数生成装置の構成例を図9に示す。
[3. About other embodiments]
[3-1. Example with a reduced number of inverters]
In the configuration of the random number generation device described with reference to FIGS. 3 to 5 described above, a plurality of inverter chains are used.
Therefore, the number of inverters required is increased as compared with the conventional apparatus constituted by one inverter chain described with reference to FIG.
For example, FIG. 9 shows a configuration example of a random number generation device having six inverter chains.

図9に示す乱数生成装置400は、以下の構成のインバータチェーンを有する。
インバータチェーンの本数:m=6、
1本目のインバータチェーンのインバータ段数:r1=3、
2本目のインバータチェーンのインバータ段数:r2=4、
3本目のインバータチェーンのインバータ段数:r3=5、
4本目のインバータチェーンのインバータ段数:r4=6、
5本目のインバータチェーンのインバータ段数:r5=7、
6本目のインバータチェーンのインバータ段数:r6=8、
図9に示す乱数生成装置400は、上記設定のインバータチェーン構成を有する。
A random number generation device 400 shown in FIG. 9 has an inverter chain having the following configuration.
Number of inverter chains: m = 6
Number of inverter stages in the first inverter chain: r1 = 3
Number of inverter stages in the second inverter chain: r2 = 4
Number of inverter stages in the third inverter chain: r3 = 5
Number of inverter stages in the fourth inverter chain: r4 = 6
Number of inverter stages in the fifth inverter chain: r5 = 7,
Number of inverter stages in the sixth inverter chain: r6 = 8
A random number generation device 400 shown in FIG. 9 has an inverter chain configuration set as described above.

図9に示す乱数生成装置400に用いられるインバータの数は、
3+4+5+6+7+8=33
となる。
このように、本開示に従った乱数生成装置を構成しようとすると、インバータの数が従来構成、例えば図1に示す乱数生成装置10に比較して増加してしまう。
The number of inverters used in the random number generation device 400 shown in FIG.
3 + 4 + 5 + 6 + 7 + 8 = 33
It becomes.
Thus, when it is going to comprise the random number generator according to this indication, the number of inverters will increase compared with the conventional composition, for example, random number generator 10 shown in FIG.

インバータ数の増加は、実装コストの増大に直結するため、できる限り利用するインバータ数を低減することが望ましい。
以下、インバータ数を削減した実施例について説明する。
Since an increase in the number of inverters directly leads to an increase in mounting cost, it is desirable to reduce the number of inverters used as much as possible.
Hereinafter, an embodiment in which the number of inverters is reduced will be described.

インバータ数を削減するためには、複数のインバータチェーンにおいて、同一段数にあるインバータを共有すればよい。
ただし、無秩序に共有した場合、単独のインバータに対して前段のインバータ出力が複数入力される等の状況が発生し得る。この場合、各インバータチェーンにおける発振そのものが実行されない可能性がある。
従って、インバータ数を削減するためには、発振可能な状態を保ちつつ、各段におけるインバータを共有する必要がある。
In order to reduce the number of inverters, it is only necessary to share inverters in the same number of stages in a plurality of inverter chains.
However, in the case of random sharing, there may occur a situation in which a plurality of preceding inverter outputs are input to a single inverter. In this case, the oscillation itself in each inverter chain may not be executed.
Therefore, in order to reduce the number of inverters, it is necessary to share the inverters at each stage while maintaining the oscillation enabled state.

図10に発振可能な状態を維持し、各段のインバータを共有した乱数生成装置の構成例を示す。
図10に示す乱数生成装置500は、m本のインバータチェーンを、分岐数として1及び2を含む多段多分木として再構成している。
この構成により、XOR素子出力の発振を維持しながら、インバータの共有を行うものである。
FIG. 10 shows a configuration example of a random number generation device that maintains an oscillating state and shares an inverter at each stage.
The random number generation device 500 shown in FIG. 10 reconfigures m inverter chains as a multistage multi-tree including 1 and 2 as the number of branches.
With this configuration, the inverter is shared while maintaining the oscillation of the XOR element output.

具体的には、XOR素子をルートノードとし、各インバータチェーンにおける最終段をリーフノードとして設定した上で、各インバータを多段多分木におけるノードとして取り扱うことにより、インバータの共有と削減を実現する。   Specifically, the sharing and reduction of inverters is realized by setting the XOR element as a root node and setting the final stage in each inverter chain as a leaf node and then treating each inverter as a node in a multistage multi-tree.

図10に示す乱数生成装置500は、図9に示す構成と同様のインバータチェーン構成を少ないインバータで実現している。
すなわち、図10に示す乱数生成装置500は、
インバータチェーンの本数:m=6、
1本目のインバータチェーンのインバータ段数:r1=3、
2本目のインバータチェーンのインバータ段数:r2=4、
3本目のインバータチェーンのインバータ段数:r3=5、
4本目のインバータチェーンのインバータ段数:r4=6、
5本目のインバータチェーンのインバータ段数:r5=7、
6本目のインバータチェーンのインバータ段数:r6=8、
これらのインバータチェーンを持つ構成である。
このように、図10に示す乱数生成装置500は、図9に示す乱数生成装置400と同様、上記設定のインバータチェーン構成を有する。
A random number generation device 500 shown in FIG. 10 realizes an inverter chain configuration similar to the configuration shown in FIG. 9 with a small number of inverters.
That is, the random number generation device 500 shown in FIG.
Number of inverter chains: m = 6
Number of inverter stages in the first inverter chain: r1 = 3
Number of inverter stages in the second inverter chain: r2 = 4
Number of inverter stages in the third inverter chain: r3 = 5
Number of inverter stages in the fourth inverter chain: r4 = 6
Number of inverter stages in the fifth inverter chain: r5 = 7,
Number of inverter stages in the sixth inverter chain: r6 = 8
It is a configuration having these inverter chains.
As described above, the random number generation device 500 shown in FIG. 10 has the inverter chain configuration set as described above, similarly to the random number generation device 400 shown in FIG.

ただし、図10に示す乱数生成装置500は、一部のインバータを各インバータチェーンで共通に利用する構成としている。具体的には以下のインバータを共有している。
インバータ501は、1〜6本目のインバータチェーンにおいて共通に利用する共有インバータである。
インバータ502は、1〜3本目のインバータチェーンにおいて共通に利用する共有インバータである。
インバータ503は、4〜6本目のインバータチェーンにおいて共通に利用する共有インバータである。
インバータ504〜506は、4〜5本目のインバータチェーンにおいて共通に利用する共有インバータである。
However, the random number generation device 500 shown in FIG. 10 has a configuration in which some inverters are commonly used in each inverter chain. Specifically, the following inverters are shared.
The inverter 501 is a shared inverter that is commonly used in the first to sixth inverter chains.
The inverter 502 is a shared inverter that is commonly used in the first to third inverter chains.
The inverter 503 is a shared inverter that is commonly used in the fourth to sixth inverter chains.
The inverters 504 to 506 are shared inverters commonly used in the fourth to fifth inverter chains.

このように、一部のインバータを複数のインバータチェーンで共通に利用する構成としている。この構成によって、必要とするインバータの数を削減している。   In this way, some inverters are configured to be shared by a plurality of inverter chains. With this configuration, the number of required inverters is reduced.

1〜6本目のインバータチェーンの出力がXOR素子521に入力され、XOR素子521において、インバータチェーンの出力値の排他的論理和(XOR)を行い、排他的論理和(XOR)結果を出力制御部として機能するDFF522に入力(D入力)する。
さらに、XOR素子521における(XOR)結果の信号を6本のインバータチェーンの共有インバータ501へとフィードバック入力(回帰入力)する。
The outputs of the first to sixth inverter chains are input to the XOR element 521. The XOR element 521 performs exclusive OR (XOR) of the output values of the inverter chain, and outputs the exclusive OR (XOR) result as an output control unit. Is input to the DFF 522 functioning as (D input).
Further, the (XOR) result signal in the XOR element 521 is fed back (regressed) to the shared inverter 501 of the six inverter chains.

D型フリップフロップ(DFF)522には、サンプリングクロック511が入力され、入力するサンプリングクロック511のクロック信号に応じて、D型フリップフロップ(DFF)522に対する入力値(D入力)がサンプリングされて出力(Q出力)される。この出力値が乱数として利用される。   A sampling clock 511 is input to the D-type flip-flop (DFF) 522, and an input value (D input) to the D-type flip-flop (DFF) 522 is sampled and output according to the clock signal of the input sampling clock 511. (Q output). This output value is used as a random number.

この図10に示す乱数生成装置500は、先に図5を参照して説明した奇数段インバータチェーンと、偶数段インバータチェーンを組み合わせた構成(タイプB)に相当する。   The random number generation device 500 shown in FIG. 10 corresponds to a configuration (type B) in which the odd-numbered inverter chain described above with reference to FIG. 5 and the even-numbered inverter chain are combined.

図10に示す乱数生成装置500は、XOR素子521をルートノードとし、m=6個のリーフ(leaf)に至るまでの分岐数を、1段目1、2段目2、3段目3及び2、4段目1、5段目1、6段目2及び1、7段目1、8段目1、として設定している。これにより、先に図9を参照して説明した構成においては33個のインバータを利用しているのに対し、図10に示す乱数生成装置500は、必要なインバータの数を21個へと減少させることが可能となる。
なお、各段における分岐数は、設計者が実装コストを鑑みた上で、多段多分木の構成を逸脱しない範囲で自由に設定できる。
The random number generation device 500 shown in FIG. 10 uses the XOR element 521 as a root node and determines the number of branches up to m = 6 leaves as the first stage, the first stage 2, the third stage 3, and 2, 4th stage 1, 5th stage 1, 6th stage 2 and 1, 7th stage 1, 8th stage 1 are set. As a result, the configuration described above with reference to FIG. 9 uses 33 inverters, whereas the random number generator 500 shown in FIG. 10 reduces the number of necessary inverters to 21. It becomes possible to make it.
Note that the number of branches at each stage can be freely set within a range that does not deviate from the configuration of the multistage multi-tree, in consideration of the implementation cost by the designer.

[3−2.インバータをNAND素子に置き換えた実施例について]
上述した実施例では、インバータチェーンを構成する素子は全てインバータ(NOT素子)を利用していた。
このインバータ(NOT素子)の代わりにNAND素子を利用する構成としてもよい。
[3-2. Example in which inverter is replaced with NAND element]
In the embodiment described above, all the elements constituting the inverter chain use inverters (NOT elements).
Instead of this inverter (NOT element), a NAND element may be used.

図11に、インバータチェーンを構成するインバータ(NOT素子)の一部をNAND素子に置き換えた構成を持つ乱数生成装置600の構成例を示す。
インバータ(NOT素子)は、1入力1出力であり、入力を反転、すなわち、入力[1]に対して出力[0]を生成し、入力[0]に対して出力[1]を生成する素子である。
一方NAND素子は、2入力1出力であり、2つの入力が共に[1]である場合に出力[0]を生成し、それ以外はすべて[1]を出力する素子である。
FIG. 11 shows a configuration example of a random number generation device 600 having a configuration in which a part of an inverter (NOT element) constituting an inverter chain is replaced with a NAND element.
The inverter (NOT element) has one input and one output and inverts the input, that is, generates an output [0] with respect to the input [1] and generates an output [1] with respect to the input [0]. It is.
On the other hand, the NAND element is an element that has two inputs and one output, generates an output [0] when both inputs are [1], and outputs all other [1].

図11には、m本のインバータチェーン601〜603を設定した乱数生成装置600を示している。
この構成は、基本的には、先に図3を参照して説明した構成と同様の構成であるが、各インバータチェーン601〜603の先頭のインバータをNAND素子に置き換えている。図に示すNAND素子611〜613である。
FIG. 11 shows a random number generation device 600 in which m inverter chains 601 to 603 are set.
This configuration is basically the same as the configuration described above with reference to FIG. 3, but the top inverter of each inverter chain 601 to 603 is replaced with a NAND element. NAND elements 611 to 613 shown in the figure.

NAND素子611〜613の入力の一方は、XOR素子631からのフィードバック信号(回帰信号)であり、もう一方の信号は、外部から入力する発振制御信号621である。   One of the inputs of the NAND elements 611 to 613 is a feedback signal (regression signal) from the XOR element 631, and the other signal is an oscillation control signal 621 input from the outside.

発振制御信号621は、例えば、乱数生成装置600を起動する際に、ONすなわち出力[1]をNAND素子611〜613に入力する。
この処理によって、各インバータチェーン601〜603とXOR素子621によって構成される回路が発振を開始する。
The oscillation control signal 621 is turned on, that is, the output [1] is input to the NAND elements 611 to 613 when the random number generation device 600 is started, for example.
By this process, the circuit constituted by the inverter chains 601 to 603 and the XOR element 621 starts to oscillate.

なお、図には1,2,m本目の3本のみを示しているが、3〜m−1本目は省略しており、m本のインバータチェーンを有する。   Although only three of the first, second, and mths are shown in the figure, the third to m-1th are omitted, and m inverter chains are provided.

図に示す3本のインバータチェーンは以下の構成である。
(1本目)1つのNAND素子とr1−1個のインバータを直列接続したインバータチェーン601、
(2本目)1つのNAND素子とr2−1個のインバータを直列接続したインバータチェーン602、
(m本目)1つのNAND素子とrm−1個のインバータを直列接続したインバータチェーン603、
この他、3〜m−1本目のインバータチェーンを同様に1つのNAND素子と1以上のインバータとの直列接続構成を有する。
The three inverter chains shown in the figure have the following configuration.
(First) Inverter chain 601 in which one NAND element and r1-1 inverters are connected in series,
(Second) Inverter chain 602 in which one NAND element and r2-1 inverters are connected in series,
(Mth) Inverter chain 603 in which one NAND element and rm−1 inverters are connected in series,
In addition, the third to m−1th inverter chains have a configuration in which one NAND element and one or more inverters are connected in series.

その他の構成と処理は、先に図3を参照して説明した処理と同様である。
すなわち、各インバータチェーン601〜603の出力をXOR素子631に入力して、m本のインバータチェーンの出力値の排他的論理和(XOR)を行い、排他的論理和(XOR)結果を出力制御部として機能するDFF632に入力(D入力)する。
さらに、XOR素子631における(XOR)結果の信号をインバータチェーン601〜603へとフィードバック入力(回帰入力)する。
Other configurations and processes are the same as those described above with reference to FIG.
That is, the outputs of the inverter chains 601 to 603 are input to the XOR element 631 to perform exclusive OR (XOR) of the output values of the m inverter chains, and the exclusive OR (XOR) result is output to the output control unit. Is input (D input) to the DFF 632 functioning as
Further, the (XOR) result signal in the XOR element 631 is fed back to the inverter chains 601 to 603 (regression input).

D型フリップフロップ(DFF)632には、サンプリングクロック622が入力され、入力するサンプリングクロック622のクロック信号に応じて、D型フリップフロップ(DFF)632に対する入力値(D入力)がサンプリングされて出力(Q出力)される。この出力値が乱数として利用される。   A sampling clock 622 is input to the D-type flip-flop (DFF) 632, and an input value (D input) to the D-type flip-flop (DFF) 632 is sampled and output according to the clock signal of the input sampling clock 622. (Q output). This output value is used as a random number.

なお、m本のインバータチェーンに関しては、
(A)m本全てを奇数段インバータチェーンで構成した構成(タイプA)、
(B)奇数段インバータチェーンと、偶数段インバータチェーンを組み合わせた構成(タイプB)、
これらの2種類のタイプのいずれかとする。
なお、インバータチェーンの本数(m)は、上記のタイプA,Bのいずれのインバータチェーン構成を採用するかによって制約が異なる。
これは、先に、図4、図5を参照して説明したと同様の制約となる。
For m inverter chains,
(A) A configuration (type A) in which all m pieces are composed of odd-numbered inverter chains.
(B) Configuration (type B) combining an odd-numbered inverter chain and an even-numbered inverter chain,
One of these two types is assumed.
The number of inverter chains (m) has different restrictions depending on which of the above type A and B inverter chain configurations is employed.
This is the same restriction as described above with reference to FIGS.

具体的には、
m本の奇数段インバータチェーンのみを利用して構成する場合(タイプA)、インバータチェーンの本数:mもまた、奇数にする。
また、奇数段インバータチェーンと、偶数段インバータチェーンを組み合わせた構成(タイプB)では、インバータチェーンの総数mは、奇数、偶数いずれの設定としてもよいが、全インバータチェーンに含まれる奇数段インバータチェーンの本数を奇数本とする。
これらの制約に従って、インバータチェーンを設定する。
In particular,
When the configuration is made by using only m odd-numbered inverter chains (type A), the number of inverter chains: m is also set to an odd number.
Further, in the configuration (type B) in which the odd-numbered inverter chain and the even-numbered inverter chain are combined, the total number m of the inverter chains may be set to either odd or even, but the odd-numbered inverter chain included in all the inverter chains The odd number of.
The inverter chain is set according to these restrictions.

なお、図11に示す構成例では、NAND素子を各インバータチェーンの先頭に設定した例を示しているが、NAND素子の設定位置は、各インバータチェーンの先頭に限らず、任意の位置に設定してよい。また、各インバータチェーン内の複数のインバータをNAND素子に置き換えてもよい。
なお、NAND素子に対する入力は、1つは、発振制御信号とし、もう1つはXOR素子からのフィードバック信号、あるいは直列接続されたインバータまたはNAND素子の出力とする。
The configuration example shown in FIG. 11 shows an example in which the NAND element is set at the head of each inverter chain. However, the setting position of the NAND element is not limited to the head of each inverter chain, and is set at an arbitrary position. It's okay. Further, a plurality of inverters in each inverter chain may be replaced with NAND elements.
One input to the NAND element is an oscillation control signal, and the other is a feedback signal from the XOR element, or an output of an inverter or NAND element connected in series.

[4.暗号処理装置の構成例について]
最後に、上述した乱数生成処理を実行する乱数生成部を備えた暗号処理装置の構成例について説明する。
上述した実施例に従った乱数生成処理を実行する乱数生成部を備えた暗号処理装置は、暗号処理を実行する様々な情報処理装置に搭載可能である。具体的には、PC、TV、レコーダ、プレーヤ、通信機器、さらに、RFID、スマートカード、センサネットワーク機器、各種認証モジュール、健康、医療機器、自立型ネットワーク機器等、例えばデータ処理や通信処理に伴う暗号処理を実行する様々な機器において利用可能である。
[4. About configuration example of cryptographic processor]
Finally, a configuration example of a cryptographic processing apparatus including a random number generation unit that executes the random number generation process described above will be described.
The cryptographic processing device including the random number generation unit that executes the random number generation processing according to the above-described embodiment can be mounted on various information processing devices that execute the cryptographic processing. Specifically, PCs, TVs, recorders, players, communication devices, RFIDs, smart cards, sensor network devices, various authentication modules, health, medical devices, self-supporting network devices, etc., for example, accompanying data processing and communication processing It can be used in various devices that execute cryptographic processing.

暗号処理装置の一例としてのICモジュール700の構成例を図12に示す。図12に示すICモジュール700は、上記の様々な機器に搭載することが可能である。   A configuration example of an IC module 700 as an example of a cryptographic processing apparatus is shown in FIG. The IC module 700 shown in FIG. 12 can be mounted on the various devices described above.

図12に示すCPU(Central processing Unit)701は、暗号処理の開始や、終了、データの送受信の制御、各構成部間のデータ転送制御、その他の各種プログラムを実行するプロセッサである。メモリ702は、CPU701が実行するプログラム、あるいは演算パラメータなどの固定データを格納するROM(Read−Only−Memory)、CPU701の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるRAM(Random Access Memory)等からなる。また、メモリ702は暗号処理に必要な鍵データや、暗号処理において適用する変換テーブル(置換表)や変換行列に適用するデータ等の格納領域として使用可能である。なおデータ格納領域は、耐タンパ構造を持つメモリとして構成されることが好ましい。   A CPU (Central processing Unit) 701 shown in FIG. 12 is a processor that executes the start and end of cryptographic processing, control of data transmission / reception, data transfer control between each component, and other various programs. The memory 702 includes a ROM (Read-Only-Memory) that stores programs executed by the CPU 701 or fixed data such as calculation parameters, a program executed in the processing of the CPU 701, and a parameter storage area that changes as appropriate in the program processing, It consists of RAM (Random Access Memory) used as a work area. The memory 702 can be used as a storage area for key data necessary for encryption processing, data to be applied to a conversion table (substitution table) or conversion matrix applied in the encryption processing, and the like. The data storage area is preferably configured as a memory having a tamper resistant structure.

暗号処理部703は、上記において説明した乱数生成処理によって生成した乱数を適用した暗号処理、復号処理を実行する。なお、ここでは、暗号処理手段を個別モジュールとした例を示したが、このような独立した暗号処理モジュールを設けず、例えば暗号処理プログラムをROMに格納し、CPU701がROM格納プログラムを読み出して実行するように構成してもよい。   The encryption processing unit 703 executes encryption processing and decryption processing using the random number generated by the random number generation processing described above. Here, an example is shown in which the cryptographic processing means is an individual module, but such an independent cryptographic processing module is not provided, for example, a cryptographic processing program is stored in the ROM, and the CPU 701 reads and executes the ROM stored program. You may comprise.

乱数生成部704は、上述した実施例に従った乱数生成処理を実行する。例えば、暗号処理に必要となる鍵の生成などにおいて必要となる乱数の生成処理を実行する。   The random number generation unit 704 executes random number generation processing according to the above-described embodiment. For example, a random number generation process necessary for generating a key necessary for the encryption process is executed.

送受信部705は、外部とのデータ通信を実行するデータ通信処理部であり、例えばリーダライタ等、ICモジュールとのデータ通信を実行し、ICモジュール内で生成した暗号文の出力、あるいは外部のリーダライタ等の機器からのデータ入力などを実行する。   The transmission / reception unit 705 is a data communication processing unit that performs data communication with the outside. For example, the data transmission / reception unit 705 performs data communication with an IC module such as a reader / writer, and outputs ciphertext generated in the IC module or an external reader. Data input from devices such as writers is executed.

なお、暗号処理装置は、入力データとしての平文を暗号化する暗号化処理に適用可能であるのみならず、入力データとしての暗号文を平文に復元する復号処理にも適用可能である。
暗号化処理、復号処理、双方の処理において、上述した実施例において説明した構成を適用することが可能である。
Note that the cryptographic processing apparatus is applicable not only to encryption processing for encrypting plaintext as input data, but also to decryption processing for restoring ciphertext as input data to plaintext.
The configurations described in the above-described embodiments can be applied to both the encryption process and the decryption process.

[5.本開示の構成のまとめ]
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
[5. Summary of composition of the present disclosure]
As described above, the embodiments of the present disclosure have been described in detail with reference to specific embodiments. However, it is obvious that those skilled in the art can make modifications and substitutions of the embodiments without departing from the gist of the present disclosure. In other words, the present invention has been disclosed in the form of exemplification, and should not be interpreted in a limited manner. In order to determine the gist of the present disclosure, the claims should be taken into consideration.

なお、本明細書において開示した技術は、以下のような構成をとることができる。
(1)インバータまたはNAND素子を複数、直列接続した複数のインバータチェーンと、
前記複数のインバータチェーン各々の出力を入力して、入力値に対する排他的論理和(XOR)演算を実行する排他的論理和(XOR)素子と、
前記排他的論理和(XOR)素子の出力を、サンプリングクロックに応じて出力する出力制御部を有し、
前記排他的論理和(XOR)素子の生成した排他的論理和(XOR)演算結果を前記複数のインバータチェーンにフィードバック入力し、前記出力制御部の出力信号を乱数として出力する乱数生成装置。
The technology disclosed in this specification can take the following configurations.
(1) A plurality of inverter chains in which a plurality of inverters or NAND elements are connected in series;
An exclusive OR (XOR) element that inputs an output of each of the plurality of inverter chains and performs an exclusive OR (XOR) operation on an input value;
An output controller that outputs an output of the exclusive OR (XOR) element according to a sampling clock;
A random number generation device that feeds back an exclusive OR (XOR) operation result generated by the exclusive OR (XOR) element to the plurality of inverter chains and outputs an output signal of the output control unit as a random number.

(2)前記複数のインバータチェーンは、奇数個のインバータまたはNAND素子を直列接続した奇数段インバータチェーンを奇数本有する構成である前記(1)に記載の乱数生成装置。
(3)前記複数のインバータチェーンは、奇数本の奇数段インバータチェーンのみによって構成されている前記(2)に記載の乱数生成装置。
(4)前記複数のインバータチェーンは、奇数本の奇数段のインバータチェーンと、偶数個のインバータまたはNAND素子を直列接続した偶数段インバータチェーンを1本以上有する構成である前記(2)に記載の乱数生成装置。
(2) The random number generation device according to (1), wherein the plurality of inverter chains have an odd number of odd-numbered inverter chains in which an odd number of inverters or NAND elements are connected in series.
(3) The random number generation device according to (2), wherein the plurality of inverter chains are configured by only an odd number of odd-numbered inverter chains.
(4) The plurality of inverter chains according to (2), wherein the plurality of inverter chains have an odd number of odd-numbered inverter chains and one or more even-numbered inverter chains in which an even number of inverters or NAND elements are connected in series. Random number generator.

(5)前記出力制御部は、前記前記排他的論理和(XOR)素子の出力と、サンプリングクロック信号を入力して前記前記排他的論理和(XOR)素子の出力を、サンプリングクロックに応じて出力するD型フリップフロップ(DFF)である前記(1)〜(4)いずれかに記載の乱数生成装置。
(6)前記複数のインバータチェーンの構成素子は、NAND素子を含まないインバータのみによって構成されている前記(1)〜(5)ていずれかに記載の乱数生成装置。
(5) The output control unit inputs an output of the exclusive OR (XOR) element and a sampling clock signal, and outputs an output of the exclusive OR (XOR) element according to the sampling clock. The random number generation device according to any one of (1) to (4), wherein the random number generation device is a D-type flip-flop (DFF).
(6) The random number generation device according to any one of (1) to (5), wherein the constituent elements of the plurality of inverter chains are configured only by an inverter not including a NAND element.

(7)前記複数のインバータチェーンの構成素子は、前記XOR素子からのフィードバック入力と、発振制御信号の2つの入力部を持つNAND素子を含む構成である前記(1)〜(6)いずれかに記載の乱数生成装置。
(8)前記複数のインバータチェーンの構成素子は、インバータからの入力と発振制御信号の2つの入力部を持つNAND素子を含む構成である前記(1)〜(6)いずれかに記載の乱数生成装置。
(7) The constituent elements of the plurality of inverter chains include a NAND element having two inputs of a feedback input from the XOR element and an oscillation control signal. The random number generator described.
(8) The random number generator according to any one of (1) to (6), wherein the constituent elements of the plurality of inverter chains include a NAND element having two inputs of an inverter and an oscillation control signal. apparatus.

(9)前記複数のインバータチェーンの一部のインバータまたはNAND素子は、複数のインバータチェーンの共有構成である前記(1)〜(8)いずれかに記載の乱数生成装置。
(10)前記複数のインバータチェーンの一部のインバータまたはNAND素子の共有構成は、多段多分木の構成法に従って構成されている前記(9)に記載の乱数生成装置。
(9) The random number generation device according to any one of (1) to (8), wherein some inverters or NAND elements of the plurality of inverter chains have a shared configuration of the plurality of inverter chains.
(10) The random number generation device according to (9), wherein a shared configuration of some inverters or NAND elements in the plurality of inverter chains is configured according to a multistage multi-tree configuration method.

(11)前記(1)〜(10)いずれかの構成を有する乱数生成部と、
前記乱数生成部の生成した乱数を適用した暗号処理を実行する暗号処理部と、
を有する暗号処理装置。
(11) a random number generator having the configuration of any one of (1) to (10);
A cryptographic processing unit that executes cryptographic processing using the random number generated by the random number generating unit;
A cryptographic processing apparatus.

上述したように、本開示の一実施例の構成によれば、短時間でランダム性の高い乱数生成を実現する乱数生成装置が実現される。
具体的には、インバータまたはNAND素子を複数、直列接続した複数のインバータチェーンと、複数のインバータチェーン各々の出力を入力して入力値に対する排他的論理和(XOR)演算を実行するXOR素子と、XOR素子の出力を、サンプリングクロックに応じて出力する出力制御部を有し、XOR素子の生成したXOR演算結果を複数のインバータチェーンにフィードバック入力し、出力制御部の出力信号を乱数として出力する。この構成により、高速な発振周期を持つXOR素子出力に基づいて短時間でランダム性の高い乱数の生成、出力を行うことが可能となる。
As described above, according to the configuration of an embodiment of the present disclosure, a random number generation device that realizes random number generation with high randomness in a short time is realized.
Specifically, a plurality of inverter chains in which a plurality of inverters or NAND elements are connected in series, an XOR element that inputs an output of each of the plurality of inverter chains and performs an exclusive OR (XOR) operation on an input value; An output control unit that outputs the output of the XOR element according to the sampling clock is fed back to the plurality of inverter chains, and the output signal of the output control unit is output as a random number. With this configuration, it is possible to generate and output a random number with high randomness in a short time based on an XOR element output having a high-speed oscillation period.

10 乱数生成装置
20 リングオシレータ(RO)
21〜23 インバータ
30 サンプリングクロック
40 D型フリップフロップ(DFF)
100 乱数生成装置
110,120,130 インバータチェーン
111,121,131 インバータ
140 サンプリングクロック
150 XOR素子
160 D型フリップフロップ(DFF)
200 乱数生成装置
201,202,203 インバータチェーン
204 サンプリングクロック
205 XOR素子
206 D型フリップフロップ(DFF)
300 乱数生成装置
301,302 インバータチェーン
304 サンプリングクロック
305 XOR素子
306 D型フリップフロップ(DFF)
400 乱数生成装置
500 乱数生成装置
501〜506 インバータ
511 サンプリングクロック
521 XOR素子
522 D型フリップフロップ(DFF)
600 乱数生成装置
601,602,603 インバータチェーン
611〜613 NAND素子
621 発振制御信号
622 サンプリングクロック
631 XOR素子
632 D型フリップフロップ(DFF)
700 ICモジュール
701 CPU(Central processing Unit)
702 メモリ
703 暗号処理部
704 乱数生成部
705 送受信部
10 Random number generator 20 Ring oscillator (RO)
21-23 Inverter 30 Sampling clock 40 D-type flip-flop (DFF)
DESCRIPTION OF SYMBOLS 100 Random number generator 110,120,130 Inverter chain 111,121,131 Inverter 140 Sampling clock 150 XOR element 160 D type flip-flop (DFF)
DESCRIPTION OF SYMBOLS 200 Random number generator 201,202,203 Inverter chain 204 Sampling clock 205 XOR element 206 D-type flip-flop (DFF)
300 random number generator 301, 302 inverter chain 304 sampling clock 305 XOR element 306 D-type flip-flop (DFF)
400 Random Number Generator 500 Random Number Generator 501 to 506 Inverter 511 Sampling Clock 521 XOR Element 522 D-type Flip-Flop (DFF)
600 random number generator 601 602 603 inverter chain 611-613 NAND element 621 oscillation control signal 622 sampling clock 631 XOR element 632 D-type flip-flop (DFF)
700 IC module 701 CPU (Central processing Unit)
702 Memory 703 Encryption processing unit 704 Random number generation unit 705 Transmission / reception unit

Claims (11)

インバータまたはNAND素子を複数、直列接続した複数のインバータチェーンと、
前記複数のインバータチェーン各々の出力を入力して、入力値に対する排他的論理和(XOR)演算を実行する排他的論理和(XOR)素子と、
前記排他的論理和(XOR)素子の出力を、サンプリングクロックに応じて出力する出力制御部を有し、
前記排他的論理和(XOR)素子の生成した排他的論理和(XOR)演算結果を前記複数のインバータチェーンにフィードバック入力し、前記出力制御部の出力信号を乱数として出力する乱数生成装置。
A plurality of inverters or NAND elements, a plurality of inverter chains connected in series;
An exclusive OR (XOR) element that inputs an output of each of the plurality of inverter chains and performs an exclusive OR (XOR) operation on an input value;
An output controller that outputs an output of the exclusive OR (XOR) element according to a sampling clock;
A random number generation device that feeds back an exclusive OR (XOR) operation result generated by the exclusive OR (XOR) element to the plurality of inverter chains and outputs an output signal of the output control unit as a random number.
前記複数のインバータチェーンは、
奇数個のインバータまたはNAND素子を直列接続した奇数段インバータチェーンを奇数本有する構成である請求項1に記載の乱数生成装置。
The plurality of inverter chains are
The random number generation device according to claim 1, wherein the random number generation device has an odd number of odd-numbered inverter chains in which an odd number of inverters or NAND elements are connected in series.
前記複数のインバータチェーンは、
奇数本の奇数段インバータチェーンのみによって構成されている請求項2に記載の乱数生成装置。
The plurality of inverter chains are
The random number generation device according to claim 2, comprising only an odd number of odd-numbered inverter chains.
前記複数のインバータチェーンは、
奇数本の奇数段のインバータチェーンと、偶数個のインバータまたはNAND素子を直列接続した偶数段インバータチェーンを1本以上有する構成である請求項2に記載の乱数生成装置。
The plurality of inverter chains are
3. The random number generation device according to claim 2, wherein the random number generation device has a configuration in which an odd number of odd-numbered inverter chains and one or more even-numbered inverter chains in which an even number of inverters or NAND elements are connected in series.
前記出力制御部は、
前記前記排他的論理和(XOR)素子の出力と、サンプリングクロック信号を入力して前記前記排他的論理和(XOR)素子の出力を、サンプリングクロックに応じて出力するD型フリップフロップ(DFF)である請求項1に記載の乱数生成装置。
The output control unit
A D-type flip-flop (DFF) that inputs an output of the exclusive OR (XOR) element and a sampling clock signal and outputs an output of the exclusive OR (XOR) element in accordance with the sampling clock. The random number generation device according to claim 1.
前記複数のインバータチェーンの構成素子は、NAND素子を含まないインバータのみによって構成されている請求項1に記載の乱数生成装置。   The random number generation device according to claim 1, wherein the constituent elements of the plurality of inverter chains are configured only by inverters that do not include NAND elements. 前記複数のインバータチェーンの構成素子は、前記XOR素子からのフィードバック入力と、発振制御信号の2つの入力部を持つNAND素子を含む構成である請求項1に記載の乱数生成装置。   2. The random number generation device according to claim 1, wherein the constituent elements of the plurality of inverter chains include a NAND element having two inputs of a feedback input from the XOR element and an oscillation control signal. 前記複数のインバータチェーンの構成素子は、インバータからの入力と発振制御信号の2つの入力部を持つNAND素子を含む構成である請求項1に記載の乱数生成装置。   2. The random number generation device according to claim 1, wherein the constituent elements of the plurality of inverter chains include a NAND element having two inputs of an input from an inverter and an oscillation control signal. 前記複数のインバータチェーンの一部のインバータまたはNAND素子は、複数のインバータチェーンの共有構成である請求項1に記載の乱数生成装置。   The random number generation device according to claim 1, wherein some inverters or NAND elements of the plurality of inverter chains have a shared configuration of the plurality of inverter chains. 前記複数のインバータチェーンの一部のインバータまたはNAND素子の共有構成は、多段多分木の構成法に従って構成されている請求項9に記載の乱数生成装置。   10. The random number generation device according to claim 9, wherein a shared configuration of a part of the plurality of inverter chains, that is, an inverter or a NAND element, is configured according to a multistage multi-tree configuration method. 前記請求項1〜10いずれかの構成を有する乱数生成部と、
前記乱数生成部の生成した乱数を適用した暗号処理を実行する暗号処理部と、
を有する暗号処理装置。
A random number generator having the configuration according to any one of claims 1 to 10;
A cryptographic processing unit that executes cryptographic processing using the random number generated by the random number generating unit;
A cryptographic processing apparatus.
JP2012045016A 2012-03-01 2012-03-01 Random number generator and encryption processing device Pending JP2013182097A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012045016A JP2013182097A (en) 2012-03-01 2012-03-01 Random number generator and encryption processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012045016A JP2013182097A (en) 2012-03-01 2012-03-01 Random number generator and encryption processing device

Publications (1)

Publication Number Publication Date
JP2013182097A true JP2013182097A (en) 2013-09-12

Family

ID=49272780

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012045016A Pending JP2013182097A (en) 2012-03-01 2012-03-01 Random number generator and encryption processing device

Country Status (1)

Country Link
JP (1) JP2013182097A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108242268A (en) * 2017-07-18 2018-07-03 嘉兴太美医疗科技有限公司 A kind of clinical investigation subject randomized grouping and the wrong identification and correcting method of therapy distribution
US10101968B2 (en) 2016-11-24 2018-10-16 Samsung Electronics Co., Ltd. Random number generators and methods of generating random numbers using adjustable meta-stable voltage

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10101968B2 (en) 2016-11-24 2018-10-16 Samsung Electronics Co., Ltd. Random number generators and methods of generating random numbers using adjustable meta-stable voltage
CN108242268A (en) * 2017-07-18 2018-07-03 嘉兴太美医疗科技有限公司 A kind of clinical investigation subject randomized grouping and the wrong identification and correcting method of therapy distribution

Similar Documents

Publication Publication Date Title
KR101987141B1 (en) Random number generator
US7797361B2 (en) System and method for generating random numbers using parity feedback
JP5295357B2 (en) Bit sequence generation method and apparatus
US8410857B2 (en) Apparatus and method for generating a random bit sequence
CN108768619B (en) Working method of strong PUF circuit based on ring oscillator
US9405510B2 (en) Random number generator
CN106775583A (en) A kind of production method of high-speed, true random-number
CN103946909B (en) Device intrinsic information generating apparatus and device intrinsic information generation method
US9792089B2 (en) Random number generator using an incrementing function
US8166086B2 (en) Method and circuit for generating random numbers, and computer program product therefor
US9612801B2 (en) Power supply for ring-oscillator based true random number generator and method of generating true random numbers
CN103546283A (en) Random bit stream generator with guaranteed minimum period
US20130346459A1 (en) Method for generating random numbers
US20020186086A1 (en) Random number generator
US9858042B1 (en) Configurable ring oscillator
US20150193206A1 (en) Method for generating an output of a random source of a random generator
JP2013182097A (en) Random number generator and encryption processing device
CN208063163U (en) Delay element, delay line and circuit
JP6423270B2 (en) Random number generation apparatus and random number generation method
TWI579763B (en) Storage circuit with random number generation mode
US10140096B1 (en) Preventing ring oscillator phase-lock
JP5171420B2 (en) Pseudo random number generator
Li et al. A novel transition effect ring oscillator based true random number generator for a security SoC
JP6379032B2 (en) Random number generation device and random number generation method
JP5119417B2 (en) Pseudo random number generator