JP2014075082A - Random number generator and random number generation method - Google Patents
Random number generator and random number generation method Download PDFInfo
- Publication number
- JP2014075082A JP2014075082A JP2012223160A JP2012223160A JP2014075082A JP 2014075082 A JP2014075082 A JP 2014075082A JP 2012223160 A JP2012223160 A JP 2012223160A JP 2012223160 A JP2012223160 A JP 2012223160A JP 2014075082 A JP2014075082 A JP 2014075082A
- Authority
- JP
- Japan
- Prior art keywords
- random number
- test
- sequence
- cpu
- number generation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
Description
本発明は、乱数を生成する乱数生成器および乱数生成方法に関する。 The present invention relates to a random number generator and a random number generation method for generating a random number.
乱数生成器は、暗号解読を試みる攻撃者が推定、および、再現できない情報を生成する目的で使用される。たとえば、セキュリティの分野では、公開鍵、秘密鍵、又は一度限り有効な鍵を含む共通鍵などの鍵生成や、暗号通信時に通信相手のみに送信する秘密情報の生成など、様々な暗号プロトコルに乱数生成器は用いられている。 The random number generator is used for the purpose of generating information that cannot be estimated and reproduced by an attacker trying to decrypt. For example, in the security field, random numbers are used for various cryptographic protocols, such as generating keys such as public keys, secret keys, or common keys including one-time valid keys, and generating secret information that is sent only to the communication partner during cryptographic communication. A generator is used.
理想的な乱数には、ランダムな現象が求められる。ここでランダムな現象とは、ある現象において、それぞれの事象が他の事象とは独立に発生することを言う。 An ideal random number requires a random phenomenon. Here, the random phenomenon means that each event occurs independently of other events in a certain phenomenon.
一般的に、このランダムな現象を作り出す乱数生成器として、放射線や熱雑音や、温度、電圧、周波数などの物理現象を使用したものを真性乱数生成器、乱数のように見えるが実際には暗号理論を使用して確定的な計算によって生成する擬似乱数生成器(特許文献1)などが用いられる。 Generally, as a random number generator that creates this random phenomenon, a random number generator that uses physical phenomena such as radiation, thermal noise, temperature, voltage, frequency, etc. looks like a true random number generator, but it is actually a cryptographic A pseudo-random number generator (Patent Document 1) generated by deterministic calculation using theory is used.
この点、擬似乱数生成器は、ある入力値に対して一意に確定する値を生成する。したがって、高度なセキュリティが要求される場合には利用しにくいという問題点がある。一方、真性乱数生成器は、ランダム性を物理現象に求めるため、乱数に高いランダム性を得ることが可能である。 In this regard, the pseudo-random number generator generates a value that is uniquely determined for a certain input value. Therefore, there is a problem that it is difficult to use when high security is required. On the other hand, since a true random number generator obtains randomness as a physical phenomenon, it is possible to obtain high randomness in random numbers.
一方、真性乱数生成器は、物理現象に律速して乱数が生成されるため、当該乱数生成器を利用する際の環境条件(規定動作範囲)が設けられている。温度や電圧、周波数に代表される環境条件を変化させて規定動作範囲外で乱数生成器を動作させた場合、その出力値は偏る可能性があるため環境条件を監視するセンサ回路を設けて乱数を保証している。 On the other hand, since an intrinsic random number generator generates random numbers at a rate limited to a physical phenomenon, environmental conditions (specified operating range) when using the random number generator are provided. If the random number generator is operated outside the specified operating range by changing environmental conditions such as temperature, voltage, and frequency, the output value may be biased. Guarantee.
しかしながら、当該環境条件を監視するためのセンサ回路を設けることはチップのコストを増大させることになる。 However, providing a sensor circuit for monitoring the environmental conditions increases the cost of the chip.
上記のような問題を解決するためになされたものであって、簡易な方式でランダム性の高い乱数を保証することが可能な乱数生成器および乱数生成方法を提供することを目的とする。 An object of the present invention is to provide a random number generator and a random number generation method, which have been made to solve the above problems, and can guarantee a random number with high randomness by a simple method.
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。 Other problems and novel features will become apparent from the description of the specification and the accompanying drawings.
一実施例によれば、乱数生成器は、物理乱数発生部と、乱数検定部と、圧縮部とを備える。物理乱数発生部は、第1の乱数生成の指示に従って物理現象に起因して乱数を生成する。乱数検定部は、物理乱数発生部で生成された所定長の第1の乱数列に対して乱数検定処理を実行する。圧縮部は、乱数検定処理の検定結果に基づいて前記物理乱数発生部で生成された前記所定長の第1の乱数列を第2の乱数列に圧縮して出力する。 According to one embodiment, the random number generator includes a physical random number generation unit, a random number test unit, and a compression unit. The physical random number generation unit generates a random number due to a physical phenomenon in accordance with the first random number generation instruction. The random number test unit performs a random number test process on the first random number sequence having a predetermined length generated by the physical random number generation unit. The compression unit compresses the first random number sequence of the predetermined length generated by the physical random number generation unit based on the test result of the random number test process into a second random number sequence and outputs the second random number sequence.
一実施例によれば、物理乱数発生部で生成された所定長の第1の乱数列に対して乱数検定処理を実行し、その検定結果に基づいて圧縮した第2の乱数列を出力するためランダム性の高い乱数を保証することが可能である。 According to one embodiment, a random number test process is performed on a first random number sequence of a predetermined length generated by a physical random number generator, and a second random number sequence compressed based on the test result is output. It is possible to guarantee a random number with high randomness.
本実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。 This embodiment will be described in detail with reference to the drawings. In the drawings, the same or corresponding parts are denoted by the same reference numerals, and description thereof will not be repeated.
(実施の形態1)
図1は、本実施の形態1に従う乱数生成システムの構成を説明する図である。
(Embodiment 1)
FIG. 1 is a diagram illustrating a configuration of a random number generation system according to the first embodiment.
図1を参照して、本実施の形態1に従う乱数生成システムは、CPU(Central Processing Unit)10と、乱数を生成して出力する乱数生成ユニット20と、メモリ15と、バス5とを含む。
Referring to FIG. 1, the random number generation system according to the first embodiment includes a CPU (Central Processing Unit) 10, a random
CPU10は、バス5を介して乱数生成ユニット20、メモリ15とデータの授受が可能に設けられている。
The
メモリ15には、CPU10が当該乱数生成システムを制御するために必要なプログラムが格納されており、当該プログラムを読み込むことにより各種の処理が実行される。
The
CPU10は、乱数生成ユニット20を制御し、乱数の生成が必要な場合に乱数生成ユニット20に対して物理乱数生成コマンドおよび乱数検定コマンドを出力する。
The
乱数生成ユニット20は、物理乱数生成コマンドおよび乱数検定コマンドを受けて乱数を生成および検定し、CPU10に所望の乱数列を出力する。
The random
乱数生成ユニット20は、乱数生成ユニット20内の各部を制御する制御回路22と、物理乱数生成器24と、圧縮回路26と、乱数検定回路28とを含む。
The random
制御回路22は、CPU10からのバス5を介する物理乱数生成コマンドを受けて物理乱数生成器24に乱数生成要求を出力する。また、制御回路22は、CPU10からのバス5を介する乱数検定コマンドを受けて乱数検定回路28に乱数検定要求を出力する。制御回路22はステータスレジスタを有しており、このステータスレジスタを通して物理乱数生成器24と乱数検定回路28のステータスをCPU10が知ることが出来る。ステータスレジスタは乱数生成完了フラグ、乱数検定完了フラグにより構成されている。
The
物理乱数生成器24は、温度、電圧、周波数などの物理現象を利用した乱数発生器(真性乱数生成器)であり、制御回路22からの乱数生成要求に応じて乱数生成を開始し、乱数生成が完了するとその旨を制御回路22に通知する。本例においては、一例として2万ビットの乱数列(第1の乱数列)を生成する。
The physical
圧縮回路26は、物理乱数生成器24で生成された乱数列の入力を受けて、入力されたデータを任意の長さに圧縮する機能を有し、圧縮結果を内部のレジスタに保存する。
The
乱数検定回路28は、物理乱数生成器24で生成された乱数列の入力を受けて、入力されたデータを統計処理して内部のレジスタに保存し、制御回路22からの乱数検定要求に従って乱数検定処理を実行する機能を有し、所定の検定結果を保存する。
The random
次に、本実施の形態1に従う乱数生成ユニット20の動作について説明する。
制御回路22は、CPU10からの物理乱数生成コマンドおよび乱数検定コマンドに従って、乱数生成要求および乱数検定要求をそれぞれ物理乱数生成器24および乱数検定回路28に出力する。
Next, the operation of the random
The
物理乱数生成器24は、乱数生成要求に従って乱数を生成し、生成された乱数列は、圧縮回路26と乱数検定回路28とに入力される。また、物理乱数生成器24は、乱数生成完了を制御回路22に通知する。これにより、制御回路22のステータスレジスタは、乱数生成完了フラグを有効とする。
The physical
圧縮回路26は、入力された第1の乱数列全体に対して所定の圧縮処理を実行して所望の長さの第2の乱数列に圧縮する。
The
乱数検定回路28は、物理乱数生成器24で生成された乱数の入力を受けて、乱数検定に必要な統計処理結果を内部のレジスタに保存するとともに、乱数検定要求に従い所定の検定方式に基づく乱数検定処理を実行して、その検定結果を保存する。そして、統計処理に基づく所定の乱数検定が終了するとその旨を制御回路22に通知する。
The random
制御回路22は、乱数検定回路28からの乱数検定の終了の通知を受けて、ステータスレジスタ内の乱数検定完了フラグを有効とする。
The
CPU10は、ステータスレジスタの乱数検定完了フラグが有効であることを確認し、乱数検定結果の読み出しコマンドを出力する。制御回路22は、乱数検定結果の読み出しコマンドの要求に従って読み出し要求を乱数検定回路28に出力する。乱数検定回路28は、制御回路22からの指示に従い検定結果をバス5を介してCPU10に出力する。
The
図2は、本実施の形態1に従う乱数生成システムの乱数生成のフローについて説明するフロー図である。ここでは、CPU10における処理が示されている。当該処理は、例えば、乱数を使用するアプリ(例えば、データ通信する際の鍵生成用)からの要求に従って開始されるものとする。なお、当該フローを実行するためのプログラムは、メモリ15に格納されているものとし、当該メモリ15に格納されているプログラムを読み込むことにより実現されるものとする。
FIG. 2 is a flowchart illustrating a flow of random number generation in the random number generation system according to the first embodiment. Here, processing in the
図2を参照して、まず、CPU10は、物理乱数生成コマンドおよび乱数検定コマンドを発行する(ステップS2)。具体的には、CPU10は、、物理乱数生成コマンドおよび乱数検定コマンドを発行して、バス5を介して乱数生成ユニット20に出力する。
Referring to FIG. 2, first,
次に、CPU10は、乱数検定が完了したかどうかを判断する(ステップS4)。具体的には、CPU10が制御回路22のステータスレジスタ内の乱数検定完了フラグを読み出して、検定が完了しているかどうかを判断する。
Next, the
CPU10は、乱数検定が完了したと判断した場合(ステップS4においてYES)には、次のステップS6に進む。
When
次に、CPU10は、乱数検定結果がOKかNGかを判断する(ステップS6)。具体的には、CPU10は、乱数検定回路28からの乱数検定結果の読み出しを実行するように制御回路22に対して乱数検定結果の読み出しコマンドを出力する。制御回路22は、乱数検定結果の読み出しコマンドの要求に従って乱数検定回路28に対して乱数検定結果をCPU10に対して出力するように読み出し要求を出力する。乱数検定回路28は、制御回路22からの読み出し要求に従ってCPU10に対して乱数検定結果をバス5を介して出力する。CPU10は、これにより乱数検定結果を判断する。
Next, the
ステップS6において、CPU10は、乱数検定結果がOKである場合には、乱数の読み出しを実行する(ステップS8)。そして処理を終了する(エンド)。
In step S6, when the random number test result is OK, the
具体的には、CPU10は、制御回路22に対して乱数を出力するように読み出しコマンドを出力する。制御回路22は、CPU10からの読み出しコマンドの要求に従って、圧縮回路26に対してCPU10に対して圧縮した乱数列(第2の乱数列)を出力するように読み出し要求を出力する。
Specifically, the
圧縮回路26は、制御回路22からの読み出し要求に従ってCPU10に対して圧縮した乱数列(第2の乱数列)をバス5を介して出力する。
The
CPU10は、圧縮回路26から出力された乱数列を受けて、アプリと協働して使用する。具体的には、当該乱数列(第2の乱数列)を一例として、データ通信用の鍵として用いることが可能である。
The
一方、ステップS6において、CPU10は、乱数検定結果がNGである場合には、NGが規定回数に達したかどうかを判断する(ステップS10)。
On the other hand, when the random number test result is NG in step S6, the
ステップS10において、CPU10は、NGが規定回数に達したと判断した場合(ステップS10においてYES)には、動作不可と判断する(ステップS12)。そして、処理を終了する(エンド)。この場合には、乱数の生成が適正にできないとして処理を終了する。
In step S10, when
ステップS10において、CPU10は、NGが規定回数に達していないと判断した場合(ステップS10においてNO)には、ステップS2に戻り、上記の乱数生成の処理を再開する。なお、規定回数は予め所定回数に定められているものとする。
In step S10, when
また、ステップS10の判断をすることなく動作不可と判断するようにしても良い。
本実施の形態1に従う方式は、物理乱数生成器24で生成された乱数列(第1の乱数列)に対して乱数検定回路28で乱数検定をパス(OK判定)した場合に圧縮回路26で圧縮された第2の乱数列がCPU10に出力される。
Further, it may be determined that the operation is impossible without performing the determination in step S10.
In the method according to the first embodiment, when the random
すなわち、乱数検定をパスした第1の乱数列を圧縮した第2の乱数列であるためランダム性の高い乱数を保証することが可能であり、真性乱数生成器が正常に動作しているかどうかを判断するためのセンサ回路を設ける必要がなく簡易な構成で実現することが可能である。 That is, since it is the second random number sequence obtained by compressing the first random number sequence that has passed the random number test, it is possible to guarantee a random number with high randomness, and whether or not the true random number generator is operating normally. It is not necessary to provide a sensor circuit for the determination, and it can be realized with a simple configuration.
なお、本例においては、CPU10が制御回路22に乱数生成コマンドおよび乱数検定コマンドをともに出力して物理乱数生成器24における乱数生成と、乱数検定回路28における乱数検定を並列的に実行する場合について説明したが、物理乱数生成器24における乱数生成が完了した後に、乱数検定回路28における乱数検定を実行するようにしても良い。その場合には、例えば、CPU10は、制御回路22に乱数検定コマンドを出力して、制御回路22における乱数生成完了フラグが有効であることを確認した後に、次に、制御回路22に乱数検定コマンドを出力するようにしても良い。以降の実施例についても同様である。
In this example, the
なお、本例においては、乱数検定回路28で乱数検定処理を実行する場合について説明したが、たとえば、CPU10と協働して乱数検定処理を実行するようにしても良い。具体的には、乱数の統計的データを検出する検出回路を乱数生成ユニット20側に設け、当該統計的データを用いて乱数検定処理の判定部分についてはCPU10を用いてソフト的(メモリ15に格納されている乱数検定用のプログラムを用いて)に実行するようにしても良い。当該構成により、種々の検定方式をCPU10が実行することにより乱数生成ユニット20の構成を簡易にすることが可能である。また、各種の検定を実行するための乱数検定用のプログラムをメモリ15に複数格納しておくことにより、乱数の使用用途のセキュリティレベルに従って検定方式を選択することも可能である。以降の実施例についても同様である。
In this example, the case where the random
また、本例においては、乱数生成ユニット20の外部にCPU10がバス5を介して接続され、CPU10の指示に従って制御回路22を介して圧縮回路26から乱数が出力される構成について説明したが、例えば、CPU10の機能と制御回路22の機能とを合わせて1つの制御回路として乱数生成ユニット20内に設ける構成とすることも可能である。あるいは、乱数生成ユニット20内の制御回路22の機能をCPU10が実行するようにしても良い。
In this example, the
<乱数検定処理>
乱数検定回路28で実行される種々の乱数検定処理について説明する。なお、全ての乱数検定を実行する必要は無く使用用途等に応じて適切な検定を適宜実行するようにすればよい。
<Randomness test processing>
Various random number test processes executed by the random
具体的には、情報処理設備調達基準FIPS(Federal Information Processing Standards)のうち、FIPS PUB140−2が挙げられる。当該基準には、2値数列20000ビット中に現れる、1の値の数を数えて統計量を判定するモノビットテストがある。また、2値数列20000ビットを4ビットずつのセルに区切り、全部で5000個のセルを作り、そして、セルのパターン0〜15についての出現数をカウントして統計量を判定するポーカーテストがある。また、2値数列20000ビット内に現れた同じ数値の続き(連)の個数をカウントして、統計量を判定するランズテストがある。また、2値数列20000ビット中に現れる連のうち最長の連の長さを調べるロングランズテスト等の検定方式が種々ある。 Specifically, FIPS PUB140-2 is mentioned among information processing equipment procurement standards FIPS (Federal Information Processing Standards). The standard includes a monobit test that determines the statistic by counting the number of 1 values that appear in a binary sequence 20000 bits. There is also a poker test in which a binary sequence of 20000 bits is divided into 4-bit cells to create a total of 5000 cells, and the statistics are determined by counting the number of appearances of cell patterns 0 to 15 . In addition, there is a lands test in which a statistic is determined by counting the number of consecutive (sequential) numbers that appear in a binary sequence 20000 bits. There are various test methods such as a long-runs test for examining the length of the longest run among the runs appearing in the binary sequence 20000 bits.
また、別の乱数検定処理として、米国商務省標準技術局(NIST)が公開しているNIST Special Publication 800−22を用いることも可能である。乱数列の0と1との割合がおおよそ同じになっているかを調べる頻度検定、乱数列が生成した行列のランクの偏りを調べる2値行列ランク検定がある。また、0と1からなる乱数列を±1の実数値系列と見なし、離散フーリエ変換を行い、周波数成分に分解する。そして、その各周波数成分の絶対値が閾値を超えない割合を求めることにより乱数列のランダム性を調べるDFT検定がある。乱数列をブロック毎に分割し、テンプレートが適合する回数を調べるテンプレート適合検定、乱数列の一様性を調べるユニバーサル統計量検定、線形複雑度を求めて乱数列の周期性を調べる線形複雑度検定、mビットパターンが均等に現われているかを検定するエントロピー検定等、その他規格に基づく種々の検定方式を適用することが可能である。 Further, as another random number test process, it is possible to use NIST Special Publication 800-22 published by the National Institute of Standards and Technology (NIST). There are a frequency test for checking whether the ratio of 0 and 1 in the random number sequence is approximately the same, and a binary matrix rank test for checking the bias of the rank of the matrix generated by the random number sequence. Also, a random number sequence consisting of 0 and 1 is regarded as a real value series of ± 1, and discrete Fourier transform is performed to decompose it into frequency components. There is a DFT test in which the randomness of a random number sequence is examined by obtaining a ratio at which the absolute value of each frequency component does not exceed a threshold. Random number sequence is divided into blocks, template fit test to check the number of times the template fits, universal statistic test to check the uniformity of the random number sequence, linear complexity test to check the periodicity of the random number sequence by finding the linear complexity Various test methods based on other standards such as an entropy test for testing whether m-bit patterns appear evenly can be applied.
<圧縮処理>
圧縮回路26における圧縮処理について説明する。
<Compression processing>
A compression process in the
具体的には、ラングレス符号化、ハフマン符号化、Lempel−Ziv圧縮方式等を用いて圧縮することが可能である。 Specifically, it is possible to perform compression using Langless coding, Huffman coding, Lempel-Ziv compression method, or the like.
また、暗号化回路を用いて第1の乱数列を圧縮させることも可能である。具体的には、共通鍵暗号方式の暗号ブロック連鎖(CBC(Cipher Block Chaining))モードに従う暗号化処理を実行して第1の乱数列を圧縮させる。 It is also possible to compress the first random number sequence using an encryption circuit. Specifically, an encryption process according to a cipher block chaining (CBC (Cipher Block Chaining)) mode of the common key cryptosystem is executed to compress the first random number sequence.
暗号ブロック連鎖モードとは、2値数列をブロック毎に分割し、1つ前の暗号化したブロックと暗号化対象の現在の平文のブロックとの排他的OR論理演算をとってから暗号化鍵でこのブロックの暗号化を行う。そして、結果の暗号文は次のブロックとの排他的OR論理演算に使われる。このように前のブロックと次々に連鎖させて暗号データを生成する方式である。なお、ブロックの最初はその前のブロックがないので初期ベクトル(IV:Initial Vector)を与えて排他的OR論理演算を実行する。また、圧縮長に応じてブロック長を変化させるようにしても良い。 In the cipher block chaining mode, a binary number sequence is divided into blocks, an exclusive OR logical operation is performed on the previous encrypted block and the current plaintext block to be encrypted, and then the encryption key is used. This block is encrypted. The resulting ciphertext is then used for an exclusive OR logic operation with the next block. In this way, encryption data is generated by chaining with the previous block one after another. Since there is no previous block at the beginning of the block, an exclusive vector is executed by giving an initial vector (IV). Further, the block length may be changed according to the compression length.
また、ハッシュ演算回路を用いて第1の乱数列を圧縮させることも可能である。具体的には、所望のビット長を出力するためのハッシュ関数を予め用意し、当該ハッシュ関数に第1の乱数列を入力してハッシュ演算処理により圧縮させるようにしても良い。 It is also possible to compress the first random number sequence using a hash calculation circuit. Specifically, a hash function for outputting a desired bit length may be prepared in advance, and a first random number sequence may be input to the hash function and compressed by hash calculation processing.
(実施の形態2)
図3は、本実施の形態2に従う乱数生成システムの構成を説明する図である。
(Embodiment 2)
FIG. 3 is a diagram illustrating a configuration of a random number generation system according to the second embodiment.
図3を参照して、本実施の形態2に従う乱数生成システムは、乱数生成ユニット20を乱数生成ユニット21に置換した点が異なる。
Referring to FIG. 3, the random number generation system according to the second embodiment is different in that random
乱数生成ユニット21は、乱数生成ユニット20と比較して、さらに決定論的乱数生成器30を含めるとともに制御回路22を制御回路23に置換した点が異なる。その他の構成については図1で説明した内容と同様であるのでその詳細な説明は繰り返さない。
The random
決定論的乱数生成器30は、計算式を用いて入力値を撹拌し、その結果を内部のレジスタに保存する。入力値としては、圧縮回路26のレジスタの値と、決定論的乱数生成器のレジスタの値とのいずれかより選択可能に設けられている。
The deterministic
次に、本実施の形態2に従う乱数生成ユニット21の動作について説明する。
制御回路23は、CPU10からの物理乱数生成コマンドに従って、乱数生成要求を物理乱数生成器24に出力する。また、制御回路23は、CPU10からのバス5を介する乱数検定コマンドを受けて乱数検定回路28に乱数検定要求を出力する。制御回路23はステータスレジスタを有しており、このステータスレジスタを通して物理乱数生成器24と乱数検定回路28のステータスをCPU10が知ることが出来る。ステータスレジスタは乱数生成完了フラグ、乱数検定完了フラグにより構成されている。
Next, the operation of the random
The
物理乱数生成器24は、乱数生成要求に従って乱数を生成し、生成された乱数列は、圧縮回路26と乱数検定回路28とに入力される。また、物理乱数生成器24は、乱数生成完了を制御回路23に通知する。
The physical
圧縮回路26は、入力された第1の乱数列全体に対して所定の圧縮処理を実行して所望の長さの第2の乱数列に圧縮する。
The
乱数検定回路28は、物理乱数生成器24で生成された乱数の入力を受けて、乱数検定に必要な統計処理結果を内部のレジスタに保存し、制御回路23からの乱数検定要求に従い所定の検定方式に基づく乱数検定処理を実行して、その検定結果を保存する。そして、統計処理に基づく所定の乱数検定が終了するとその旨を制御回路22に通知する。制御回路23は、乱数検定回路28からの乱数検定の終了の通知を受けて、ステータスレジスタ内の乱数検定完了フラグを有効とする。
The random
CPU10は、ステータスレジスタの乱数検定完了フラグが有効であることを確認し、乱数検定結果の読み出しコマンドを出力する。制御回路23は、乱数検定結果の読み出しコマンドの要求に従って読み出し要求を乱数検定回路28に出力する。乱数検定回路28は、制御回路23からの指示に従い検定結果をバス5を介してCPU10に出力する。
The
図4は、本実施の形態2に従う乱数生成システムの乱数生成のフローについて説明するフロー図である。ここでは、CPU10における処理が示されている。当該処理は、例えば、乱数を使用するアプリ(例えば、データ通信する際の鍵生成用)からの要求に従って開始されるものとする。なお、当該フローを実行するためのプログラムは、メモリ15に格納されているものとし、当該メモリ15に格納されているプログラムを読み込むことにより実現されるものとする。
FIG. 4 is a flowchart illustrating a random number generation flow of the random number generation system according to the second embodiment. Here, processing in the
図4を参照して、まず、CPU10は、物理乱数生成コマンドおよび乱数検定コマンドを発行する(ステップS2)。具体的には、CPU10は、物理乱数生成コマンドおよび乱数検定コマンドを発行して、バス5を介して乱数生成ユニット20に出力する。
Referring to FIG. 4, first,
次に、CPU10は、乱数検定が完了したかどうかを判断する(ステップS4)。具体的には、CPU10が制御回路22のステータスレジスタ内の乱数検定完了フラグを読み出して、検定が完了しているかどうかを判断する。
Next, the
CPU10は、乱数検定が完了したと判断した場合(ステップS4においてYES)には、次のステップS6に進む。
When
そして、次に、CPU10は、乱数検定結果がOKかNGかを判断する(ステップS6)。具体的には、CPU10は、乱数検定回路28からの乱数検定結果の読み出しを実行するように制御回路23に対して乱数検定結果の読み出しコマンドを出力する。制御回路23は、乱数検定結果の読み出しコマンドの要求に従って乱数検定回路28に対して乱数検定結果をCPU10に対して出力するように読み出し要求を出力する。乱数検定回路28は、制御回路23からの読み出し要求に従ってCPU10に対して乱数検定結果をバス5を介して出力する。CPU10は、これにより乱数検定結果を判断する。
Next, the
ステップS6において、CPU10は、乱数検定結果がOKである場合には、決定論的乱数生成コマンドを発行する(ステップS20)。具体的には、CPU10は、決定論的乱数生成コマンドを発行して、バス5を介して乱数生成ユニット21に出力する。制御回路23は、CPU10からの決定論的乱数生成コマンドに従って、圧縮回路26に圧縮した乱数列を出力するように指示するとともに、乱数生成要求を決定論的乱数生成器30に出力する。これにより決定論的乱数生成器30は、圧縮回路26からの乱数列の入力を受けて乱数を生成する。
In step S6, if the random number test result is OK, the
そして、次に、CPU10は、乱数の読み出しを実行する(ステップS22)。具体的には、CPU10は、制御回路23に対して乱数を出力するように読み出しコマンドを出力する。制御回路22は、CPU10からの読み出しコマンドの要求に従って、決定論的乱数生成器30に対してCPU10に対して圧縮した乱数列(第3の乱数列)を出力するように読み出し要求を出力する。
Next, the
決定論的乱数生成器30は、制御回路23からの読み出し要求に従ってCPU10に対して生成した乱数列(第3の乱数列)をバス5を介して出力する。
The deterministic
CPU10は、決定論的乱数生成器30から出力された乱数列を受けて、アプリと協働して使用する。具体的には、当該乱数列(第2の乱数列)を一例として、データ通信用の鍵として用いることが可能である。
The
次に、CPU10は、乱数生成の要求が有るかどうかを判断する(ステップS24)。具体的には、例えば、乱数を使用するアプリ(例えば、データ通信する際の鍵生成用)から再び乱数生成の要求が有るかどうかを判断する。
Next, the
ステップS24において、乱数生成の要求が有ると判断した場合(ステップS24においてYES)には、ステップS20に戻る。すなわち、決定論的乱数生成コマンドを発行する。具体的には、CPU10は、決定論的乱数生成コマンドを発行して、バス5を介して乱数生成ユニット21に出力する。制御回路23は、CPU10からの決定論的乱数生成コマンドに従って、決定論的乱数生成器30の内部のレジスタに格納されている値を入力値として指示するとともに、乱数生成要求を決定論的乱数生成器30に出力する。これにより決定論的乱数生成器30は、内部のレジスタに格納されている値を入力値として乱数を再生成する。以降の処理については上記で説明したのと同様である。
If it is determined in step S24 that there is a request for random number generation (YES in step S24), the process returns to step S20. That is, a deterministic random number generation command is issued. Specifically, the
すなわち、CPU10は、乱数の読み出しを実行し、CPU10は、決定論的乱数生成器30から出力された乱数列をアプリと協働して使用する。
That is, the
一方、ステップS6において、CPU10は、乱数検定結果がNGである場合には、NGが規定回数に達したかどうかを判断する(ステップS10)。
On the other hand, when the random number test result is NG in step S6, the
ステップS10において、CPU10は、NGが規定回数に達したと判断した場合(ステップS10においてYES)には、動作不可と判断する(ステップS12)。そして、処理を終了する(エンド)。乱数の生成が適正にできないとして処理を終了する。
In step S10, when
ステップS10において、CPU10は、NGが規定回数に達していないと判断した場合(ステップS10においてNO)には、ステップS2に戻り、上記の乱数生成の処理を再開する。なお、規定回数は予め所定回数に定められているものとする。
In step S10, when
また、ステップS10の判断をすることなく動作不可と判断するようにしても良い。
すなわち、1回目の乱数生成については、圧縮回路26で圧縮された乱数列を入力として決定論的乱数生成器30で乱数を生成するが、2回目以降については、決定論的乱数生成器30で生成された乱数列を入力値として用いて、新たな乱数を生成するため2回目以降の乱数の生成に関しては高速な乱数列の生成が可能である。
Further, it may be determined that the operation is impossible without performing the determination in step S10.
That is, for the first random number generation, the random number sequence compressed by the
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は、実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。 As mentioned above, the invention made by the present inventor has been specifically described based on the embodiments. However, the present invention is not limited to the embodiments, and various modifications can be made without departing from the scope of the invention. Needless to say.
5 バス、10 CPU、15 メモリ、20,21 乱数生成ユニット、22,23 制御回路、24 物理乱数生成器、26 圧縮回路、28 乱数検定回路、30 決定論的乱数生成器。 5 bus, 10 CPU, 15 memory, 20, 21 random number generation unit, 22, 23 control circuit, 24 physical random number generator, 26 compression circuit, 28 random number test circuit, 30 deterministic random number generator.
Claims (6)
前記物理乱数発生部で生成された所定長の第1の乱数列に対して乱数検定処理を実行するための乱数検定部と、
前記乱数検定処理の検定結果に基づいて前記物理乱数発生部で生成された前記所定長の第1の乱数列を第2の乱数列に圧縮して出力するための圧縮部とを備える、乱数生成器。 A physical random number generator for generating a random number due to a physical phenomenon according to a first random number generation instruction;
A random number test unit for executing a random number test process on the first random number sequence of a predetermined length generated by the physical random number generation unit;
Random number generation comprising: a compression unit for compressing and outputting the first random number sequence of the predetermined length generated by the physical random number generation unit based on the test result of the random number verification process into a second random number sequence vessel.
前記暗号回路は、共通鍵暗号方式のCBC(Cipher Block Chaining)モードに従う暗号化処理を実行する、請求項1記載の乱数生成器。 The compression unit includes an encryption circuit that outputs a second random number sequence encrypted with respect to the first random number sequence of the predetermined length,
The random number generator according to claim 1, wherein the encryption circuit executes an encryption process according to a CBC (Cipher Block Chaining) mode of a common key cryptosystem.
第1の乱数生成の指示に従って物理現象に起因して乱数を生成するステップと、
生成された所定長の第1の乱数列に対して乱数検定処理を実行するステップと、
前記乱数検定処理の検定結果に基づいて生成された前記所定長の第1の乱数列を第2の乱数列に圧縮して出力するステップとを備える、乱数生成方法。 A random number generation method in a random number generator,
Generating a random number due to a physical phenomenon in accordance with a first random number generation instruction;
Performing a random number test process on the generated first random number sequence of a predetermined length;
And a step of compressing and outputting the first random number sequence of the predetermined length generated based on the test result of the random number test process into a second random number sequence.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012223160A JP2014075082A (en) | 2012-10-05 | 2012-10-05 | Random number generator and random number generation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012223160A JP2014075082A (en) | 2012-10-05 | 2012-10-05 | Random number generator and random number generation method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014075082A true JP2014075082A (en) | 2014-04-24 |
Family
ID=50749177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012223160A Pending JP2014075082A (en) | 2012-10-05 | 2012-10-05 | Random number generator and random number generation method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014075082A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016081247A (en) * | 2014-10-15 | 2016-05-16 | 富士通株式会社 | Quality testing method of physical random number generation circuit, random number generator, and electronic device |
JP2016085774A (en) * | 2014-10-24 | 2016-05-19 | 株式会社メガチップス | Storage device and method for testing reliability of the storage device |
JP2016085337A (en) * | 2014-10-24 | 2016-05-19 | 株式会社メガチップス | Semiconductor device, semiconductor storage device, and reliability test of semiconductor device |
JP2018147092A (en) * | 2017-03-02 | 2018-09-20 | 国立研究開発法人情報通信研究機構 | Physical random number distillation device and method |
US10096379B2 (en) | 2014-10-24 | 2018-10-09 | Megachips Corporation | Memory device and method for testing reliability of memory device |
WO2020079841A1 (en) * | 2018-10-19 | 2020-04-23 | 日本電気株式会社 | Random number quality management method and device |
JP2021022378A (en) * | 2019-07-25 | 2021-02-18 | ▲しゃーん▼碼科技股▲ふん▼有限公司 | Random number generator and method for generating output random number |
CN112861121A (en) * | 2020-12-23 | 2021-05-28 | 工业信息安全(四川)创新中心有限公司 | Method and device for realizing maximum 1 and 0 run detection merging optimization in block |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000194537A (en) * | 1998-12-24 | 2000-07-14 | Nec Corp | Method and device for generating physical random number |
JP2000276330A (en) * | 1999-03-26 | 2000-10-06 | Syst Kogaku Kk | Random number generating device equipped with fault judging function |
JP2003131867A (en) * | 2001-08-15 | 2003-05-09 | Syst Kogaku Kk | Random number generation device |
JP2005003745A (en) * | 2003-06-09 | 2005-01-06 | Sony Corp | Device, method, and program for generating random number, and cipher processor |
JP2005526299A (en) * | 2001-07-27 | 2005-09-02 | ヒューレット・パッカード・カンパニー | Method and apparatus for generating a random bit string using an environmental sensor |
JP2008197847A (en) * | 2007-02-09 | 2008-08-28 | Toshiba Corp | Random number inspection device and inspection method therefor |
WO2010134197A1 (en) * | 2009-05-22 | 2010-11-25 | 株式会社 東芝 | Random number generation circuit and encryption circuit using the same |
-
2012
- 2012-10-05 JP JP2012223160A patent/JP2014075082A/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000194537A (en) * | 1998-12-24 | 2000-07-14 | Nec Corp | Method and device for generating physical random number |
JP2000276330A (en) * | 1999-03-26 | 2000-10-06 | Syst Kogaku Kk | Random number generating device equipped with fault judging function |
JP2005526299A (en) * | 2001-07-27 | 2005-09-02 | ヒューレット・パッカード・カンパニー | Method and apparatus for generating a random bit string using an environmental sensor |
JP2003131867A (en) * | 2001-08-15 | 2003-05-09 | Syst Kogaku Kk | Random number generation device |
JP2005003745A (en) * | 2003-06-09 | 2005-01-06 | Sony Corp | Device, method, and program for generating random number, and cipher processor |
JP2008197847A (en) * | 2007-02-09 | 2008-08-28 | Toshiba Corp | Random number inspection device and inspection method therefor |
WO2010134197A1 (en) * | 2009-05-22 | 2010-11-25 | 株式会社 東芝 | Random number generation circuit and encryption circuit using the same |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016081247A (en) * | 2014-10-15 | 2016-05-16 | 富士通株式会社 | Quality testing method of physical random number generation circuit, random number generator, and electronic device |
JP2016085774A (en) * | 2014-10-24 | 2016-05-19 | 株式会社メガチップス | Storage device and method for testing reliability of the storage device |
JP2016085337A (en) * | 2014-10-24 | 2016-05-19 | 株式会社メガチップス | Semiconductor device, semiconductor storage device, and reliability test of semiconductor device |
US10096379B2 (en) | 2014-10-24 | 2018-10-09 | Megachips Corporation | Memory device and method for testing reliability of memory device |
JP2018147092A (en) * | 2017-03-02 | 2018-09-20 | 国立研究開発法人情報通信研究機構 | Physical random number distillation device and method |
WO2020079841A1 (en) * | 2018-10-19 | 2020-04-23 | 日本電気株式会社 | Random number quality management method and device |
JPWO2020079841A1 (en) * | 2018-10-19 | 2021-09-24 | 日本電気株式会社 | Random number quality control method and equipment |
JP2021022378A (en) * | 2019-07-25 | 2021-02-18 | ▲しゃーん▼碼科技股▲ふん▼有限公司 | Random number generator and method for generating output random number |
JP7006887B2 (en) | 2019-07-25 | 2022-01-24 | ▲しゃーん▼碼科技股▲ふん▼有限公司 | Random number generator and how to generate output random numbers |
US11876899B2 (en) | 2019-07-25 | 2024-01-16 | PUFsecurity Corporation | Random number generator and method of generating output random number |
CN112861121A (en) * | 2020-12-23 | 2021-05-28 | 工业信息安全(四川)创新中心有限公司 | Method and device for realizing maximum 1 and 0 run detection merging optimization in block |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2014075082A (en) | Random number generator and random number generation method | |
US10142103B2 (en) | Hardware assisted fast pseudorandom number generation | |
US20150149519A1 (en) | Apparatus and method for generating physical random numbers | |
AU2021200062A1 (en) | Systems and computer-implemented methods for generating pseudo random numbers | |
Shamir et al. | Guaranteeing the diversity of number generators | |
CN112580114A (en) | Information processing method, device, equipment and storage medium | |
Srilaya et al. | Performance evaluation for des and AES algorithms-an comprehensive overview | |
Rouaf et al. | Performance Evaluation of Encryption Algorithms in Mobile Devices | |
Subramanian et al. | Adaptive counter clock gated S-Box transformation based AES algorithm of low power consumption and dissipation in VLSI system design | |
Kanso et al. | Irregularly decimated chaotic map (s) for binary digits generations | |
Yu et al. | On designing PUF-based TRNGs with known answer tests | |
Zhang et al. | Randomness properties of stream ciphers for wireless communications | |
Măluţan et al. | Hermes, a proposed lightweight block cipher used for limited resource devices | |
El-Fotouh et al. | Statistical testing for disk encryption modes of operations | |
Dubrova | Energy-efficient cryptographic primitives | |
Répás | Performance Analysis of Encryption Capabilities of ARM-based Single Board Microcomputers | |
CN113271202B (en) | Data encryption method and device | |
TWI782540B (en) | Physical unclonable function based true random number generator and method for generating true random numbers | |
CN112912838B (en) | Random number generation device and method | |
EP4366232A1 (en) | Secure and fast bit unpacking for dilithium | |
Akhila et al. | Implementation of Modified Dual-Coupled Linear Congruential Generator in Data Encryption Standard Algorithm | |
Surapaneni et al. | Implementation of BIST Technique in an Aes for a Cryptocore | |
Bohl et al. | Nonlinear compression functions using the misr approach for security purposes in automotive applications | |
CN118054908A (en) | Communication device for use in challenge-response round and corresponding method of operation | |
WO2001073542A1 (en) | Random number generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150811 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160708 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160719 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170131 |