JP2014075082A - Random number generator and random number generation method - Google Patents

Random number generator and random number generation method Download PDF

Info

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
Application number
JP2012223160A
Other languages
Japanese (ja)
Inventor
Seimuro Nagano
清武郎 長野
Atsuo Yamaguchi
敦男 山口
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2012223160A priority Critical patent/JP2014075082A/en
Publication of JP2014075082A publication Critical patent/JP2014075082A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a random number generator capable of assuring a random number with high randomness by a simple method.SOLUTION: A random number generator comprises a physical random number generation unit, a random number testing unit, and a compression unit. The physical random number generation unit generates random numbers due to a physical phenomenon in accordance with a first random number generation instruction. The random number testing unit executes random number testing processing on a first random number sequence with a predetermined length generated by the physical random number generation unit. The compression unit compresses the first random number sequence with the predetermined length generated by the physical random number generation unit into a second random number sequence on the basis of a testing result of the random number testing processing, and outputs it.

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.

特開2009−3495号公報JP 2009-3495 A

一方、真性乱数生成器は、物理現象に律速して乱数が生成されるため、当該乱数生成器を利用する際の環境条件(規定動作範囲)が設けられている。温度や電圧、周波数に代表される環境条件を変化させて規定動作範囲外で乱数生成器を動作させた場合、その出力値は偏る可能性があるため環境条件を監視するセンサ回路を設けて乱数を保証している。   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.

本実施の形態1に従う乱数生成システムの構成を説明する図である。It is a figure explaining the structure of the random number generation system according to the first embodiment. 本実施の形態1に従う乱数生成システムの乱数生成のフローについて説明するフロー図である。It is a flowchart explaining the flow of the random number generation of the random number generation system according to the first embodiment. 本実施の形態2に従う乱数生成システムの構成を説明する図である。It is a figure explaining the structure of the random number generation system according to this Embodiment 2. 本実施の形態2に従う乱数生成システムの乱数生成のフローについて説明するフロー図である。It is a flowchart explaining the flow of the random number generation of the random number generation system according to the second embodiment.

本実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。   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 number generation unit 20 that generates and outputs a random number, a memory 15, and a bus 5.

CPU10は、バス5を介して乱数生成ユニット20、メモリ15とデータの授受が可能に設けられている。   The CPU 10 is provided so as to be able to exchange data with the random number generation unit 20 and the memory 15 via the bus 5.

メモリ15には、CPU10が当該乱数生成システムを制御するために必要なプログラムが格納されており、当該プログラムを読み込むことにより各種の処理が実行される。   The memory 15 stores a program necessary for the CPU 10 to control the random number generation system, and various processes are executed by reading the program.

CPU10は、乱数生成ユニット20を制御し、乱数の生成が必要な場合に乱数生成ユニット20に対して物理乱数生成コマンドおよび乱数検定コマンドを出力する。   The CPU 10 controls the random number generation unit 20 and outputs a physical random number generation command and a random number verification command to the random number generation unit 20 when generation of a random number is necessary.

乱数生成ユニット20は、物理乱数生成コマンドおよび乱数検定コマンドを受けて乱数を生成および検定し、CPU10に所望の乱数列を出力する。   The random number generation unit 20 receives and generates a random number in response to a physical random number generation command and a random number verification command, and outputs a desired random number sequence to the CPU 10.

乱数生成ユニット20は、乱数生成ユニット20内の各部を制御する制御回路22と、物理乱数生成器24と、圧縮回路26と、乱数検定回路28とを含む。   The random number generation unit 20 includes a control circuit 22 that controls each part in the random number generation unit 20, a physical random number generator 24, a compression circuit 26, and a random number test circuit 28.

制御回路22は、CPU10からのバス5を介する物理乱数生成コマンドを受けて物理乱数生成器24に乱数生成要求を出力する。また、制御回路22は、CPU10からのバス5を介する乱数検定コマンドを受けて乱数検定回路28に乱数検定要求を出力する。制御回路22はステータスレジスタを有しており、このステータスレジスタを通して物理乱数生成器24と乱数検定回路28のステータスをCPU10が知ることが出来る。ステータスレジスタは乱数生成完了フラグ、乱数検定完了フラグにより構成されている。   The control circuit 22 receives a physical random number generation command from the CPU 10 via the bus 5 and outputs a random number generation request to the physical random number generator 24. The control circuit 22 receives a random number test command from the CPU 10 via the bus 5 and outputs a random number test request to the random number test circuit 28. The control circuit 22 has a status register, and the CPU 10 can know the status of the physical random number generator 24 and the random number test circuit 28 through this status register. The status register includes a random number generation completion flag and a random number test completion flag.

物理乱数生成器24は、温度、電圧、周波数などの物理現象を利用した乱数発生器(真性乱数生成器)であり、制御回路22からの乱数生成要求に応じて乱数生成を開始し、乱数生成が完了するとその旨を制御回路22に通知する。本例においては、一例として2万ビットの乱数列(第1の乱数列)を生成する。   The physical random number generator 24 is a random number generator (intrinsic random number generator) that utilizes physical phenomena such as temperature, voltage, and frequency, and starts random number generation in response to a random number generation request from the control circuit 22. Is completed, the control circuit 22 is notified of this. In this example, a 20,000-bit random number sequence (first random number sequence) is generated as an example.

圧縮回路26は、物理乱数生成器24で生成された乱数列の入力を受けて、入力されたデータを任意の長さに圧縮する機能を有し、圧縮結果を内部のレジスタに保存する。   The compression circuit 26 has a function of receiving the random number sequence generated by the physical random number generator 24 and compressing the input data to an arbitrary length, and stores the compression result in an internal register.

乱数検定回路28は、物理乱数生成器24で生成された乱数列の入力を受けて、入力されたデータを統計処理して内部のレジスタに保存し、制御回路22からの乱数検定要求に従って乱数検定処理を実行する機能を有し、所定の検定結果を保存する。   The random number test circuit 28 receives the input of the random number sequence generated by the physical random number generator 24, statistically processes the input data, stores it in an internal register, and performs a random number test according to the random number test request from the control circuit 22 It has a function to execute processing, and stores a predetermined test result.

次に、本実施の形態1に従う乱数生成ユニット20の動作について説明する。
制御回路22は、CPU10からの物理乱数生成コマンドおよび乱数検定コマンドに従って、乱数生成要求および乱数検定要求をそれぞれ物理乱数生成器24および乱数検定回路28に出力する。
Next, the operation of the random number generation unit 20 according to the first embodiment will be described.
The control circuit 22 outputs a random number generation request and a random number verification request to the physical random number generator 24 and the random number verification circuit 28, respectively, according to the physical random number generation command and the random number verification command from the CPU 10.

物理乱数生成器24は、乱数生成要求に従って乱数を生成し、生成された乱数列は、圧縮回路26と乱数検定回路28とに入力される。また、物理乱数生成器24は、乱数生成完了を制御回路22に通知する。これにより、制御回路22のステータスレジスタは、乱数生成完了フラグを有効とする。   The physical random number generator 24 generates a random number in accordance with the random number generation request, and the generated random number sequence is input to the compression circuit 26 and the random number test circuit 28. The physical random number generator 24 notifies the control circuit 22 of completion of random number generation. As a result, the status register of the control circuit 22 validates the random number generation completion flag.

圧縮回路26は、入力された第1の乱数列全体に対して所定の圧縮処理を実行して所望の長さの第2の乱数列に圧縮する。   The compression circuit 26 performs a predetermined compression process on the entire input first random number sequence to compress it into a second random number sequence having a desired length.

乱数検定回路28は、物理乱数生成器24で生成された乱数の入力を受けて、乱数検定に必要な統計処理結果を内部のレジスタに保存するとともに、乱数検定要求に従い所定の検定方式に基づく乱数検定処理を実行して、その検定結果を保存する。そして、統計処理に基づく所定の乱数検定が終了するとその旨を制御回路22に通知する。   The random number test circuit 28 receives the random number generated by the physical random number generator 24, stores the statistical processing result necessary for the random number test in an internal register, and also generates a random number based on a predetermined test method according to the random number test request. Execute the test process and save the test result. Then, when the predetermined random number test based on the statistical processing is completed, the control circuit 22 is notified of this.

制御回路22は、乱数検定回路28からの乱数検定の終了の通知を受けて、ステータスレジスタ内の乱数検定完了フラグを有効とする。   The control circuit 22 receives the notification of the end of the random number test from the random number test circuit 28, and validates the random number test completion flag in the status register.

CPU10は、ステータスレジスタの乱数検定完了フラグが有効であることを確認し、乱数検定結果の読み出しコマンドを出力する。制御回路22は、乱数検定結果の読み出しコマンドの要求に従って読み出し要求を乱数検定回路28に出力する。乱数検定回路28は、制御回路22からの指示に従い検定結果をバス5を介してCPU10に出力する。   The CPU 10 confirms that the random number test completion flag in the status register is valid, and outputs a read command for the random number test result. The control circuit 22 outputs a read request to the random number test circuit 28 in accordance with a request for a read command for the random number test result. The random number test circuit 28 outputs a test result to the CPU 10 via the bus 5 in accordance with an instruction from the control circuit 22.

図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 CPU 10 is shown. For example, the processing is started in accordance with a request from an application that uses random numbers (for example, for key generation for data communication). It is assumed that the program for executing the flow is stored in the memory 15 and realized by reading the program stored in the memory 15.

図2を参照して、まず、CPU10は、物理乱数生成コマンドおよび乱数検定コマンドを発行する(ステップS2)。具体的には、CPU10は、、物理乱数生成コマンドおよび乱数検定コマンドを発行して、バス5を介して乱数生成ユニット20に出力する。   Referring to FIG. 2, first, CPU 10 issues a physical random number generation command and a random number test command (step S2). Specifically, the CPU 10 issues a physical random number generation command and a random number test command, and outputs them to the random number generation unit 20 via the bus 5.

次に、CPU10は、乱数検定が完了したかどうかを判断する(ステップS4)。具体的には、CPU10が制御回路22のステータスレジスタ内の乱数検定完了フラグを読み出して、検定が完了しているかどうかを判断する。   Next, the CPU 10 determines whether or not the random number test has been completed (step S4). Specifically, the CPU 10 reads the random number test completion flag in the status register of the control circuit 22 and determines whether the test is completed.

CPU10は、乱数検定が完了したと判断した場合(ステップS4においてYES)には、次のステップS6に進む。   When CPU 10 determines that the random number test is completed (YES in step S4), the process proceeds to next step S6.

次に、CPU10は、乱数検定結果がOKかNGかを判断する(ステップS6)。具体的には、CPU10は、乱数検定回路28からの乱数検定結果の読み出しを実行するように制御回路22に対して乱数検定結果の読み出しコマンドを出力する。制御回路22は、乱数検定結果の読み出しコマンドの要求に従って乱数検定回路28に対して乱数検定結果をCPU10に対して出力するように読み出し要求を出力する。乱数検定回路28は、制御回路22からの読み出し要求に従ってCPU10に対して乱数検定結果をバス5を介して出力する。CPU10は、これにより乱数検定結果を判断する。   Next, the CPU 10 determines whether the random number test result is OK or NG (step S6). Specifically, the CPU 10 outputs a random number test result read command to the control circuit 22 so as to read the random number test result from the random number test circuit 28. The control circuit 22 outputs a read request so as to output the random number test result to the CPU 10 to the random number test circuit 28 in accordance with the request for the read command for the random number test result. The random number test circuit 28 outputs a random number test result to the CPU 10 via the bus 5 in accordance with a read request from the control circuit 22. Thus, the CPU 10 determines the random number test result.

ステップS6において、CPU10は、乱数検定結果がOKである場合には、乱数の読み出しを実行する(ステップS8)。そして処理を終了する(エンド)。   In step S6, when the random number test result is OK, the CPU 10 executes random number reading (step S8). Then, the process ends (END).

具体的には、CPU10は、制御回路22に対して乱数を出力するように読み出しコマンドを出力する。制御回路22は、CPU10からの読み出しコマンドの要求に従って、圧縮回路26に対してCPU10に対して圧縮した乱数列(第2の乱数列)を出力するように読み出し要求を出力する。   Specifically, the CPU 10 outputs a read command so as to output a random number to the control circuit 22. The control circuit 22 outputs a read request so as to output a compressed random number sequence (second random number sequence) to the CPU 10 to the compression circuit 26 in accordance with a read command request from the CPU 10.

圧縮回路26は、制御回路22からの読み出し要求に従ってCPU10に対して圧縮した乱数列(第2の乱数列)をバス5を介して出力する。   The compression circuit 26 outputs a compressed random number sequence (second random number sequence) to the CPU 10 via the bus 5 in accordance with a read request from the control circuit 22.

CPU10は、圧縮回路26から出力された乱数列を受けて、アプリと協働して使用する。具体的には、当該乱数列(第2の乱数列)を一例として、データ通信用の鍵として用いることが可能である。   The CPU 10 receives the random number sequence output from the compression circuit 26 and uses it in cooperation with the application. Specifically, the random number sequence (second random number sequence) can be used as a key for data communication as an example.

一方、ステップS6において、CPU10は、乱数検定結果がNGである場合には、NGが規定回数に達したかどうかを判断する(ステップS10)。   On the other hand, when the random number test result is NG in step S6, the CPU 10 determines whether or not NG has reached the specified number of times (step S10).

ステップS10において、CPU10は、NGが規定回数に達したと判断した場合(ステップS10においてYES)には、動作不可と判断する(ステップS12)。そして、処理を終了する(エンド)。この場合には、乱数の生成が適正にできないとして処理を終了する。   In step S10, when CPU 10 determines that NG has reached the specified number of times (YES in step S10), CPU 10 determines that operation is not possible (step S12). Then, the process ends (END). In this case, it is determined that random number generation cannot be properly performed, and the process ends.

ステップS10において、CPU10は、NGが規定回数に達していないと判断した場合(ステップS10においてNO)には、ステップS2に戻り、上記の乱数生成の処理を再開する。なお、規定回数は予め所定回数に定められているものとする。   In step S10, when CPU 10 determines that NG has not reached the specified number of times (NO in step S10), it returns to step S2 and restarts the random number generation process. The specified number of times is set to a predetermined number in advance.

また、ステップ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 number test circuit 28 passes a random number test (OK determination) to the random number sequence (first random number sequence) generated by the physical random number generator 24, the compression circuit 26 The compressed second random number sequence is output to the CPU 10.

すなわち、乱数検定をパスした第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 CPU 10 outputs a random number generation command and a random number verification command to the control circuit 22 and executes the random number generation in the physical random number generator 24 and the random number verification in the random number verification circuit 28 in parallel. As described above, the random number test in the random number test circuit 28 may be executed after the random number generation in the physical random number generator 24 is completed. In that case, for example, the CPU 10 outputs a random number test command to the control circuit 22, confirms that the random number generation completion flag in the control circuit 22 is valid, and then sends the random number test command to the control circuit 22. May be output. The same applies to the following embodiments.

なお、本例においては、乱数検定回路28で乱数検定処理を実行する場合について説明したが、たとえば、CPU10と協働して乱数検定処理を実行するようにしても良い。具体的には、乱数の統計的データを検出する検出回路を乱数生成ユニット20側に設け、当該統計的データを用いて乱数検定処理の判定部分についてはCPU10を用いてソフト的(メモリ15に格納されている乱数検定用のプログラムを用いて)に実行するようにしても良い。当該構成により、種々の検定方式をCPU10が実行することにより乱数生成ユニット20の構成を簡易にすることが可能である。また、各種の検定を実行するための乱数検定用のプログラムをメモリ15に複数格納しておくことにより、乱数の使用用途のセキュリティレベルに従って検定方式を選択することも可能である。以降の実施例についても同様である。   In this example, the case where the random number test circuit 28 executes the random number test process has been described. However, for example, the random number test process may be executed in cooperation with the CPU 10. Specifically, a detection circuit for detecting statistical data of random numbers is provided on the random number generation unit 20 side, and the determination part of the random number test process using the statistical data is stored in software (stored in the memory 15) using the CPU 10. The program may be executed using a random number test program that is provided. With this configuration, it is possible to simplify the configuration of the random number generation unit 20 by the CPU 10 executing various test methods. Further, by storing a plurality of random number test programs for executing various tests in the memory 15, it is possible to select a test method according to the security level of the usage of random numbers. The same applies to the following embodiments.

また、本例においては、乱数生成ユニット20の外部にCPU10がバス5を介して接続され、CPU10の指示に従って制御回路22を介して圧縮回路26から乱数が出力される構成について説明したが、例えば、CPU10の機能と制御回路22の機能とを合わせて1つの制御回路として乱数生成ユニット20内に設ける構成とすることも可能である。あるいは、乱数生成ユニット20内の制御回路22の機能をCPU10が実行するようにしても良い。   In this example, the CPU 10 is connected to the outside of the random number generation unit 20 via the bus 5 and the random number is output from the compression circuit 26 via the control circuit 22 according to the instruction of the CPU 10. The function of the CPU 10 and the function of the control circuit 22 may be combined and provided in the random number generation unit 20 as one control circuit. Alternatively, the CPU 10 may execute the function of the control circuit 22 in the random number generation unit 20.

<乱数検定処理>
乱数検定回路28で実行される種々の乱数検定処理について説明する。なお、全ての乱数検定を実行する必要は無く使用用途等に応じて適切な検定を適宜実行するようにすればよい。
<Randomness test processing>
Various random number test processes executed by the random number test circuit 28 will be described. Note that it is not necessary to execute all random number tests, and an appropriate test may be executed as appropriate according to the intended use.

具体的には、情報処理設備調達基準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 compression circuit 26 will be described.

具体的には、ラングレス符号化、ハフマン符号化、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 number generation unit 20 is replaced with random number generation unit 21.

乱数生成ユニット21は、乱数生成ユニット20と比較して、さらに決定論的乱数生成器30を含めるとともに制御回路22を制御回路23に置換した点が異なる。その他の構成については図1で説明した内容と同様であるのでその詳細な説明は繰り返さない。   The random number generation unit 21 is different from the random number generation unit 20 in that a deterministic random number generator 30 is further included and the control circuit 22 is replaced with a control circuit 23. Since the other configuration is the same as that described in FIG. 1, detailed description thereof will not be repeated.

決定論的乱数生成器30は、計算式を用いて入力値を撹拌し、その結果を内部のレジスタに保存する。入力値としては、圧縮回路26のレジスタの値と、決定論的乱数生成器のレジスタの値とのいずれかより選択可能に設けられている。   The deterministic random number generator 30 agitates the input value using a calculation formula and stores the result in an internal register. The input value is selectable from either the register value of the compression circuit 26 or the register value of the deterministic random number generator.

次に、本実施の形態2に従う乱数生成ユニット21の動作について説明する。
制御回路23は、CPU10からの物理乱数生成コマンドに従って、乱数生成要求を物理乱数生成器24に出力する。また、制御回路23は、CPU10からのバス5を介する乱数検定コマンドを受けて乱数検定回路28に乱数検定要求を出力する。制御回路23はステータスレジスタを有しており、このステータスレジスタを通して物理乱数生成器24と乱数検定回路28のステータスをCPU10が知ることが出来る。ステータスレジスタは乱数生成完了フラグ、乱数検定完了フラグにより構成されている。
Next, the operation of the random number generation unit 21 according to the second embodiment will be described.
The control circuit 23 outputs a random number generation request to the physical random number generator 24 in accordance with a physical random number generation command from the CPU 10. Further, the control circuit 23 receives a random number test command from the CPU 10 via the bus 5 and outputs a random number test request to the random number test circuit 28. The control circuit 23 has a status register, and the CPU 10 can know the status of the physical random number generator 24 and the random number test circuit 28 through this status register. The status register includes a random number generation completion flag and a random number test completion flag.

物理乱数生成器24は、乱数生成要求に従って乱数を生成し、生成された乱数列は、圧縮回路26と乱数検定回路28とに入力される。また、物理乱数生成器24は、乱数生成完了を制御回路23に通知する。   The physical random number generator 24 generates a random number in accordance with the random number generation request, and the generated random number sequence is input to the compression circuit 26 and the random number test circuit 28. Further, the physical random number generator 24 notifies the control circuit 23 of completion of random number generation.

圧縮回路26は、入力された第1の乱数列全体に対して所定の圧縮処理を実行して所望の長さの第2の乱数列に圧縮する。   The compression circuit 26 performs a predetermined compression process on the entire input first random number sequence to compress it into a second random number sequence having a desired length.

乱数検定回路28は、物理乱数生成器24で生成された乱数の入力を受けて、乱数検定に必要な統計処理結果を内部のレジスタに保存し、制御回路23からの乱数検定要求に従い所定の検定方式に基づく乱数検定処理を実行して、その検定結果を保存する。そして、統計処理に基づく所定の乱数検定が終了するとその旨を制御回路22に通知する。制御回路23は、乱数検定回路28からの乱数検定の終了の通知を受けて、ステータスレジスタ内の乱数検定完了フラグを有効とする。   The random number test circuit 28 receives the random number generated by the physical random number generator 24, stores the statistical processing result required for the random number test in an internal register, and performs a predetermined test according to the random number test request from the control circuit 23. A random number test process based on the method is executed and the test result is saved. Then, when the predetermined random number test based on the statistical processing is completed, the control circuit 22 is notified of this. In response to the notification of the end of the random number test from the random number test circuit 28, the control circuit 23 validates the random number test completion flag in the status register.

CPU10は、ステータスレジスタの乱数検定完了フラグが有効であることを確認し、乱数検定結果の読み出しコマンドを出力する。制御回路23は、乱数検定結果の読み出しコマンドの要求に従って読み出し要求を乱数検定回路28に出力する。乱数検定回路28は、制御回路23からの指示に従い検定結果をバス5を介してCPU10に出力する。   The CPU 10 confirms that the random number test completion flag in the status register is valid, and outputs a read command for the random number test result. The control circuit 23 outputs a read request to the random number test circuit 28 in accordance with a request for a read command for the random number test result. The random number test circuit 28 outputs the test result to the CPU 10 via the bus 5 in accordance with an instruction from the control circuit 23.

図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 CPU 10 is shown. For example, the processing is started in accordance with a request from an application that uses random numbers (for example, for key generation for data communication). It is assumed that the program for executing the flow is stored in the memory 15 and realized by reading the program stored in the memory 15.

図4を参照して、まず、CPU10は、物理乱数生成コマンドおよび乱数検定コマンドを発行する(ステップS2)。具体的には、CPU10は、物理乱数生成コマンドおよび乱数検定コマンドを発行して、バス5を介して乱数生成ユニット20に出力する。   Referring to FIG. 4, first, CPU 10 issues a physical random number generation command and a random number test command (step S2). Specifically, the CPU 10 issues a physical random number generation command and a random number verification command, and outputs them to the random number generation unit 20 via the bus 5.

次に、CPU10は、乱数検定が完了したかどうかを判断する(ステップS4)。具体的には、CPU10が制御回路22のステータスレジスタ内の乱数検定完了フラグを読み出して、検定が完了しているかどうかを判断する。   Next, the CPU 10 determines whether or not the random number test has been completed (step S4). Specifically, the CPU 10 reads the random number test completion flag in the status register of the control circuit 22 and determines whether the test is completed.

CPU10は、乱数検定が完了したと判断した場合(ステップS4においてYES)には、次のステップS6に進む。   When CPU 10 determines that the random number test is completed (YES in step S4), the process proceeds to next step S6.

そして、次に、CPU10は、乱数検定結果がOKかNGかを判断する(ステップS6)。具体的には、CPU10は、乱数検定回路28からの乱数検定結果の読み出しを実行するように制御回路23に対して乱数検定結果の読み出しコマンドを出力する。制御回路23は、乱数検定結果の読み出しコマンドの要求に従って乱数検定回路28に対して乱数検定結果をCPU10に対して出力するように読み出し要求を出力する。乱数検定回路28は、制御回路23からの読み出し要求に従ってCPU10に対して乱数検定結果をバス5を介して出力する。CPU10は、これにより乱数検定結果を判断する。   Next, the CPU 10 determines whether the random number test result is OK or NG (step S6). Specifically, the CPU 10 outputs a random number test result read command to the control circuit 23 so as to read the random number test result from the random number test circuit 28. The control circuit 23 outputs a read request so as to output the random number test result to the CPU 10 to the random number test circuit 28 in accordance with the request for the read command for the random number test result. The random number test circuit 28 outputs a random number test result to the CPU 10 via the bus 5 in accordance with a read request from the control circuit 23. Thus, the CPU 10 determines the random number test result.

ステップ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 CPU 10 issues a deterministic random number generation command (step S20). Specifically, the CPU 10 issues a deterministic random number generation command and outputs it to the random number generation unit 21 via the bus 5. The control circuit 23 instructs the compression circuit 26 to output the compressed random number sequence in accordance with the deterministic random number generation command from the CPU 10 and outputs a random number generation request to the deterministic random number generator 30. Thus, the deterministic random number generator 30 receives the input of the random number sequence from the compression circuit 26 and generates a random number.

そして、次に、CPU10は、乱数の読み出しを実行する(ステップS22)。具体的には、CPU10は、制御回路23に対して乱数を出力するように読み出しコマンドを出力する。制御回路22は、CPU10からの読み出しコマンドの要求に従って、決定論的乱数生成器30に対してCPU10に対して圧縮した乱数列(第3の乱数列)を出力するように読み出し要求を出力する。   Next, the CPU 10 reads out random numbers (step S22). Specifically, the CPU 10 outputs a read command so as to output a random number to the control circuit 23. In response to a read command request from the CPU 10, the control circuit 22 outputs a read request so as to output a compressed random number sequence (third random number sequence) to the CPU 10 to the deterministic random number generator 30.

決定論的乱数生成器30は、制御回路23からの読み出し要求に従ってCPU10に対して生成した乱数列(第3の乱数列)をバス5を介して出力する。   The deterministic random number generator 30 outputs a random number sequence (third random number sequence) generated to the CPU 10 in accordance with a read request from the control circuit 23 via the bus 5.

CPU10は、決定論的乱数生成器30から出力された乱数列を受けて、アプリと協働して使用する。具体的には、当該乱数列(第2の乱数列)を一例として、データ通信用の鍵として用いることが可能である。   The CPU 10 receives the random number sequence output from the deterministic random number generator 30 and uses it in cooperation with the application. Specifically, the random number sequence (second random number sequence) can be used as a key for data communication as an example.

次に、CPU10は、乱数生成の要求が有るかどうかを判断する(ステップS24)。具体的には、例えば、乱数を使用するアプリ(例えば、データ通信する際の鍵生成用)から再び乱数生成の要求が有るかどうかを判断する。   Next, the CPU 10 determines whether there is a request for random number generation (step S24). Specifically, for example, it is determined whether there is a request for random number generation again from an application that uses random numbers (for example, for key generation for data communication).

ステップ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 CPU 10 issues a deterministic random number generation command and outputs it to the random number generation unit 21 via the bus 5. In accordance with a deterministic random number generation command from the CPU 10, the control circuit 23 instructs a value stored in a register inside the deterministic random number generator 30 as an input value, and requests a random number generation request for deterministic random number generation. To the device 30. As a result, the deterministic random number generator 30 regenerates a random number using the value stored in the internal register as an input value. Subsequent processing is the same as described above.

すなわち、CPU10は、乱数の読み出しを実行し、CPU10は、決定論的乱数生成器30から出力された乱数列をアプリと協働して使用する。   That is, the CPU 10 executes reading of random numbers, and the CPU 10 uses the random number sequence output from the deterministic random number generator 30 in cooperation with the application.

一方、ステップS6において、CPU10は、乱数検定結果がNGである場合には、NGが規定回数に達したかどうかを判断する(ステップS10)。   On the other hand, when the random number test result is NG in step S6, the CPU 10 determines whether or not NG has reached the specified number of times (step S10).

ステップS10において、CPU10は、NGが規定回数に達したと判断した場合(ステップS10においてYES)には、動作不可と判断する(ステップS12)。そして、処理を終了する(エンド)。乱数の生成が適正にできないとして処理を終了する。   In step S10, when CPU 10 determines that NG has reached the specified number of times (YES in step S10), CPU 10 determines that operation is not possible (step S12). Then, the process ends (END). The process is terminated because the random number cannot be properly generated.

ステップS10において、CPU10は、NGが規定回数に達していないと判断した場合(ステップS10においてNO)には、ステップS2に戻り、上記の乱数生成の処理を再開する。なお、規定回数は予め所定回数に定められているものとする。   In step S10, when CPU 10 determines that NG has not reached the specified number of times (NO in step S10), it returns to step S2 and restarts the random number generation process. The specified number of times is set to a predetermined number in advance.

また、ステップ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 compression circuit 26 is input and the deterministic random number generator 30 generates a random number, but the second and subsequent random numbers are generated by the deterministic random number generator 30. Since a new random number is generated using the generated random number sequence as an input value, a high-speed random number sequence can be generated for the second and subsequent random number generation.

以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は、実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。   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の乱数列に対して乱数検定処理を実行するための乱数検定部と、
前記乱数検定処理の検定結果に基づいて前記物理乱数発生部で生成された前記所定長の第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.
前記圧縮部で圧縮された第2の乱数列に基づいて所定のアルゴリズムに従う第3の乱数列を生成するための決定論的乱数生成部をさらに備える、請求項1記載の乱数生成器。   The random number generator according to claim 1, further comprising a deterministic random number generator for generating a third random number sequence according to a predetermined algorithm based on the second random number sequence compressed by the compression unit. 前記決定論的乱数生成部は、第2の乱数生成の指示に従って、生成された第3の乱数列に基づいて第4の乱数列を生成する、請求項2記載の乱数生成器。   3. The random number generator according to claim 2, wherein the deterministic random number generation unit generates a fourth random number sequence based on the generated third random number sequence in accordance with a second random number generation instruction. 前記圧縮部は、前記所定長の第1の乱数列に対して暗号化処理した第2の乱数列を出力する暗号回路を含み、
前記暗号回路は、共通鍵暗号方式の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の乱数列に対してハッシュ演算処理により第2の乱数列を出力するハッシュ演算回路を含む、請求項1記載の乱数生成器。   The random number generator according to claim 1, wherein the compression unit includes a hash calculation circuit that outputs a second random number sequence by hash calculation processing on the first random number sequence of the predetermined length. 乱数生成器における乱数生成方法であって、
第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.
JP2012223160A 2012-10-05 2012-10-05 Random number generator and random number generation method Pending JP2014075082A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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