JPWO2017150672A1 - Random number generator, random number generation method, and computer program - Google Patents

Random number generator, random number generation method, and computer program Download PDF

Info

Publication number
JPWO2017150672A1
JPWO2017150672A1 JP2018503400A JP2018503400A JPWO2017150672A1 JP WO2017150672 A1 JPWO2017150672 A1 JP WO2017150672A1 JP 2018503400 A JP2018503400 A JP 2018503400A JP 2018503400 A JP2018503400 A JP 2018503400A JP WO2017150672 A1 JPWO2017150672 A1 JP WO2017150672A1
Authority
JP
Japan
Prior art keywords
variables
random number
polynomial
update
target variable
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.)
Granted
Application number
JP2018503400A
Other languages
Japanese (ja)
Other versions
JP6851085B2 (en
Inventor
淳 岩▲崎▼
淳 岩▲崎▼
梅野 健
健 梅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyoto University
Original Assignee
Kyoto University
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 Kyoto University filed Critical Kyoto University
Publication of JPWO2017150672A1 publication Critical patent/JPWO2017150672A1/en
Application granted granted Critical
Publication of JP6851085B2 publication Critical patent/JP6851085B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system

Abstract

乱数発生装置100は、複数の変数を記憶する記憶部120と、複数の変数それぞれを更新する複数の更新式の演算を実行し、複数の変数の更新値を記憶部120へ出力する演算部130と、複数の変数の少なくともいずれか一つの変数に基づいて、乱数を生成する生成器110と、を備える。更新式は、更新式によって更新される対象変数の置換多項式と、複数の変数に含まれる対象変数以外の他の変数と、を含み、更新式によって対象変数を繰り返し更新したときの周期性が、一筆書き周期性である。  Random number generating apparatus 100 has a storage unit 120 that stores a plurality of variables, and a calculation unit 130 that executes a plurality of update expressions that update each of the plurality of variables, and outputs update values of the plurality of variables to storage unit 120. And a generator 110 that generates a random number based on at least one of a plurality of variables. The update formula includes a permutation polynomial of the target variable updated by the update formula and variables other than the target variable included in the plurality of variables, and the periodicity when the target variable is repeatedly updated by the update formula is One-stroke periodicity.

Description

本発明は、乱数発生装置等に関するものである。   The present invention relates to a random number generator and the like.

特許文献1は、置換多項式を用いた乱数発生装置を開示している。   Patent Document 1 discloses a random number generator using a permutation polynomial.

特許第3806762号公報Japanese Patent No. 3806762

一般に、乱数には、高い乱数性が望まれる。置換多項式の値を用いて生成される乱数の乱数性を高くするための一つのアプローチは、置換多項式の次数を大きくすることである。しかし、置換多項式の次数が大きくなると、演算器による演算時間の増大を招き易い。   Generally, high randomness is desired for random numbers. One approach for increasing the randomness of the random number generated using the value of the permutation polynomial is to increase the order of the permutation polynomial. However, when the degree of the permutation polynomial is increased, the calculation time by the calculator tends to increase.

このため、次数を大きくするのとは別のアプローチで、高い乱数性を容易に得ることが望まれる。   For this reason, it is desirable to easily obtain high randomness by an approach different from increasing the order.

一の観点からみた本発明は、乱数発生装置である。乱数発生装置は、複数の変数それぞれを更新する複数の更新式の演算を実行する。更新式は、更新式によって更新される対象変数の置換多項式と、複数の変数に含まれる対象変数以外の他の変数と、を含む。更新式は、更対象変数を繰り返し更新したときの周期性が、一筆書き周期性である。本発明によれば、一筆書き多項式と同様の長周期が得られ、高い乱数性が容易に得られる。   From one viewpoint, the present invention is a random number generator. The random number generator executes a plurality of update-type operations for updating each of the plurality of variables. The update formula includes a permutation polynomial of the target variable that is updated by the update formula and variables other than the target variable included in the plurality of variables. In the update formula, the periodicity when the update target variable is repeatedly updated is a one-stroke writing periodicity. According to the present invention, a long period similar to a one-stroke polynomial is obtained, and high randomness is easily obtained.

他の観点からみた本発明は、乱数を生成する方法である。他の観点からみた本発明は、コンピュータを乱数発生装置として機能させるためのコンピュータプログラムである。コンピュータプログラムは、コンピュータ読み取り可能な記録媒体に記憶される。   From another viewpoint, the present invention is a method for generating a random number. From another viewpoint, the present invention is a computer program for causing a computer to function as a random number generator. The computer program is stored in a computer-readable recording medium.

置換多項式の軌道を示す図である。It is a figure which shows the locus | trajectory of a substitution polynomial. 一筆書き多項式の軌道を示す図である。It is a figure which shows the locus | trajectory of a single stroke polynomial. 乱数発生装置のブロック図である。It is a block diagram of a random number generator.

[1.用語] [1. the term]

[1.1 置換多項式]
置換多項式F(X)は、有限集合上でXの置換を与える多項式である。置換多項式は、有限集合において全単射を与える。置換多項式による変数Xの値の変化を示す軌道は、必ず、周期軌道になる。すなわち、置換多項式による変数Xの値の変化は、周期性を持つ。
[1.1 Permutation polynomial]
The permutation polynomial F (X) is a polynomial that gives permutation of X over a finite set. A permutation polynomial gives bijection in a finite set. The trajectory indicating the change in the value of the variable X due to the permutation polynomial is necessarily a periodic trajectory. That is, the change in the value of the variable X by the replacement polynomial has periodicity.

[1.2 2冪剰余環]
2冪剰余環は、以下のように表される有限集合である。本明細書では、以下のように表される2冪剰余環を、「冪指数wの2冪剰余環」というものとする。wは、任意の非負整数である。
なお、計算途中で値が集合の範囲外に出たら、”mod 2”をとる。modは、剰余演算子である。
[1.2 Two power surplus ring]
A two-residue remainder ring is a finite set expressed as follows. In the present specification, a 2-power residue ring represented as follows is referred to as a “2-power residue ring with a power index w”. w is an arbitrary non-negative integer.
If the value goes out of the range of the set during the calculation, “mod 2 w ” is taken. mod is a remainder operator.

[1.3 2冪剰余環上置換多項式]
2冪剰余環上置換多項式は、2冪剰余環上で置換を与える置換多項式である。2冪剰余環上置換多項式は、整数係数多項式である。すなわち、2冪剰余環上置換多項式F(X)は、F(X) mod 2が、冪指数wの2冪剰余環上で全単射を与える整数係数多項式であり、以下のようにも定義される。
[1.3 Permutation polynomial over 2 冪 remainder ring]
The permutation polynomial on the 2-power residue ring is a permutation polynomial that gives substitution on the 2-power residue ring. The permutation polynomial over the two-residue ring is an integer coefficient polynomial. In other words, the permutation polynomial F (X) on the 2-power residue ring is an integer coefficient polynomial in which F (X) mod 2 w gives bijection on the 2-power residue ring with a power exponent w, and Defined.

例えば、冪指数3の2冪剰余環上における、置換多項式F(X)=2X+X+1の軌道は、図1(a)に示すように、周期軌道になる。すなわち、F(0) mod 2=1であり、F(1) mod 2=4であり、F(4) mod 2=5であり、F(5) mod 2=0である。For example, the trajectory of the permutation polynomial F a (X) = 2X 2 + X + 1 on the two-residue ring with the power exponent 3 becomes a periodic trajectory as shown in FIG. That is, F a (0) mod 2 3 = 1, F a (1) mod 2 3 = 4, F a (4) mod 2 3 = 5, and F a (5) mod 2 3 = 0.

また、置換多項式F(X)=2X+X+1は、図1(b)に示す別の周期軌道も持つ。すなわち、F(2) mod 2=3であり、F(3) mod 2=6であり、F(6) mod 2=7であり、F(7) mod 2=2である。Further, the substitution polynomial F a (X) = 2X 2 + X + 1 also has another periodic trajectory shown in FIG. That is, F a (2) mod 2 3 = 3, F a (3) mod 2 3 = 6, F a (6) mod 2 3 = 7, and F a (7) mod 2 3 = 2.

[1.4 一筆書き周期性と一筆書き多項式]
一筆書き周期性とは、多項式F(X)が成す1本の軌道(1周期の軌道)が、2冪剰余環のすべての要素をめぐることをいう。軌道が一筆書き周期性を持つ多項式を、一筆書き多項式という。一筆書き多項式は、以下のように定義される。
[1.4 One-stroke periodicity and one-stroke polynomial]
One-stroke periodicity means that one trajectory (one period trajectory) formed by the polynomial F (X) goes around all elements of the 2-fold remainder ring. A polynomial whose orbit has a single stroke periodicity is called a single stroke polynomial. A one-stroke polynomial is defined as follows.

図2は、冪指数3の2冪剰余環={0,1,2,3,4,5,6,7}上における、一筆書き多項式F(X)=4X+X+1の軌道を示している。図2に示す軌道は、周期軌道であり、1周期の軌道が、{0,1,2,3,4,5,6,7}のすべての要素を1回ずつ通過している。したがって、F(X)による2冪剰余環上の軌道は、一筆書き周期性を持ち、F(X)は一筆書き多項式である。図1と図2との対比からも明らかなように、一筆書き周期性がある場合、軌道の周期は最大となり、周期長は2となる。長い周期は、乱数発生において有利である。FIG. 2 shows the trajectory of the one-stroke polynomial F b (X) = 4X 2 + X + 1 on the 2 power remainder ring with {3, {2, 1, 3, 4, 5, 6, 7}. Yes. The trajectory shown in FIG. 2 is a periodic trajectory, and one cycle trajectory passes through all elements {0, 1, 2, 3, 4, 5, 6, 7} once. Therefore, the trajectory on the 2-fold remainder ring by F b (X) has a one-stroke writing periodicity, and F b (X) is a one-stroke writing polynomial. As is clear from the comparison between FIG. 1 and FIG. 2, when there is a one-stroke writing periodicity, the period of the orbit is maximum and the period length is 2 w . A long period is advantageous for random number generation.

置換多項式F(X)が、一筆書き多項式である必要十分条件は、
がすべて成り立つことである。上記の必要十分条件は、
係数aと1とは法2に関して合同であり、
係数aと1とは法2に関して合同であり、
添え字が1以上であるすべての係数a,a,a,・・・の和と1とは、法4に関して合同であり、
添え字が3以上の奇数であるすべての係数a,a,a,・・・の和と2aとは、法4に関して合同であることを示す。
The necessary and sufficient condition that the permutation polynomial F (X) is a one-stroke polynomial is:
Is all true. The above necessary and sufficient conditions are:
The coefficients a 0 and 1 are congruent with respect to modulus 2,
The coefficients a 1 and 1 are congruent with respect to modulus 2,
The sum of all the coefficients a 1 , a 2 , a 3 ,... With subscript 1 or more and 1 are congruent with respect to modulus 4.
The sum of all the coefficients a 3 , a 5 , a 7 ,... Whose subscript is an odd number of 3 or more and 2a 2 are congruent with respect to modulus 4.

一筆書き多項式は、長周期であるという観点では乱数の生成に有利であるが、時間発展(変数Xの時間的変化)が単純となり、十分な乱数性を得るのが困難な場合がある。したがって、単なる一筆書き多項式単体は、乱数の生成に不利な面も有する。   A one-stroke polynomial is advantageous for generating random numbers from the viewpoint of a long period, but temporal development (temporal change of the variable X) is simplified, and it may be difficult to obtain sufficient randomness. Therefore, a simple one-stroke polynomial has a disadvantage in generating random numbers.

[2.実施形態の概要] [2. Outline of Embodiment]

[第1項]
実施形態に係る乱数発生装置は、
複数の変数を記憶する記憶部と、
複数の前記変数それぞれを更新する複数の更新式の演算を実行し、複数の前記変数の更新値を前記記憶部へ出力する演算部と、
複数の前記変数の少なくともいずれか一つの変数に基づいて、乱数を生成する生成器と、
を備える。
前記更新式は、
前記更新式によって更新される対象変数の置換多項式と、複数の前記変数に含まれる前記対象変数以外の他の変数と、を含み、
前記更新式によって前記対象変数を繰り返し更新したときの周期性が、一筆書き周期性である。
[Section 1]
The random number generator according to the embodiment
A storage unit for storing a plurality of variables;
A calculation unit that executes calculation of a plurality of update expressions for updating each of the plurality of variables, and outputs update values of the plurality of variables to the storage unit;
A generator that generates a random number based on at least one of the plurality of variables;
Is provided.
The update formula is
A substitution polynomial of the target variable updated by the update formula, and other variables other than the target variable included in the plurality of variables,
The periodicity when the target variable is repeatedly updated by the update formula is the one-stroke writing periodicity.

第1項の乱数発生装置によれば、乱数の生成に用いられる変数を更新する更新式は、更新式によって更新される対象変数以外の他の変数も含むので、対象変数の置換多項式の次数を大きくしなくても、乱数性を高くすることができる。しかも、更新式は一筆書き周期性を持つので、長い周期を得ることができる。   According to the random number generator of the first term, the update expression for updating the variable used for generating the random number includes other variables besides the target variable updated by the update expression. Randomness can be increased without increasing the size. Moreover, since the update formula has a one-stroke writing periodicity, a long cycle can be obtained.

[第2項]
前記更新式は、前記対象変数の前記置換多項式と、前記他の変数と、の和を含むことができる。
[Section 2]
The update formula may include a sum of the permutation polynomial of the target variable and the other variable.

[第3項]
前記対象変数の前記置換多項式は、前記対象変数に乗じられる係数部分であって、多項式で表される前記係数部分を含み、前記他の変数は、前記係数部分に含まれていてもよい。
[Section 3]
The permutation polynomial of the target variable may be a coefficient part multiplied by the target variable, including the coefficient part represented by a polynomial, and the other variable may be included in the coefficient part.

[第4項]
前記置換多項式は、一筆書き多項式であるのが好ましい。
[Section 4]
The permutation polynomial is preferably a one-stroke polynomial.

[第5項]
実施形態に係る方法は、
演算部が、記憶部に記憶された複数の変数それぞれを更新する複数の更新式の演算を実行すること、
前記演算部が、複数の前記変数の更新値を記憶部へ出力すること、
生成器が、複数の前記変数の少なくともいずれか一つの変数に基づいて、乱数を生成すること、
を含む。
前記更新式は、
前記更新式によって更新される対象変数の置換多項式と、複数の前記変数に含まれる前記対象変数以外の他の変数と、を含み、
前記更新式によって前記対象変数を繰り返し更新したときの周期性が、一筆書き周期性である。
[Section 5]
The method according to the embodiment includes:
The calculation unit performs a plurality of update-type calculations for updating each of the plurality of variables stored in the storage unit;
The operation unit outputs updated values of the plurality of variables to a storage unit;
A generator generates a random number based on at least one variable of the plurality of variables;
including.
The update formula is
A substitution polynomial of the target variable updated by the update formula, and other variables other than the target variable included in the plurality of variables,
The periodicity when the target variable is repeatedly updated by the update formula is the one-stroke writing periodicity.

[第6項]
実施形態に係るコンピュータプログラムは、
コンピュータを、
複数の変数を記憶する記憶部、
複数の前記変数それぞれを更新する複数の更新式の演算を実行し、複数の前記変数の更新値を前記記憶部へ出力する演算部、及び
複数の前記変数の少なくともいずれか一つの変数に基づいて、乱数を生成する生成器
として機能させるためのコンピュータプログラムである。
前記更新式は、
前記更新式によって更新される対象変数の置換多項式と、複数の前記変数に含まれる前記対象変数以外の他の変数と、を含み、
前記更新式によって前記対象変数を繰り返し更新したときの周期性が、一筆書き周期性である。
[Section 6]
The computer program according to the embodiment is
Computer
A storage unit for storing a plurality of variables;
Based on at least one of the plurality of variables, an arithmetic unit that executes a plurality of update formula operations for updating each of the plurality of variables, and outputs update values of the plurality of variables to the storage unit This is a computer program for functioning as a generator for generating random numbers.
The update formula is
A substitution polynomial of the target variable updated by the update formula, and other variables other than the target variable included in the plurality of variables,
The periodicity when the target variable is repeatedly updated by the update formula is the one-stroke writing periodicity.

[3.実施形態の詳細] [3. Details of Embodiment]

[3.1 乱数発生装置の構成]
図3は、実施形態に係る乱数発生装置100を示している。乱数発生装置100は、例えば、乱数を発生させるための演算を実行する演算回路を備えたハードウェアによって構成されている。乱数発生装置100は、乱数発生コンピュータプログラムがインストールされたコンピュータであってもよい。コンピュータは、乱数発生コンピュータプログラムを実行することによって、乱数発生装置100として機能する。
[3.1 Configuration of random number generator]
FIG. 3 shows a random number generation device 100 according to the embodiment. The random number generation device 100 is configured by, for example, hardware including an arithmetic circuit that executes an operation for generating a random number. The random number generation device 100 may be a computer in which a random number generation computer program is installed. The computer functions as the random number generation device 100 by executing a random number generation computer program.

乱数発生装置100は、乱数を生成する生成器110を備えている。生成器110は、変数xから乱数を生成する。実施形態に係る生成器110は、n個(nは2以上の整数)の変数x,・・・,xに基づいて、乱数を生成する。ここで、変数x,・・・,xは、それぞれ、wビットの符号なし変数である。wは、任意の非負整数であり、例えば64である。以下では、変数xの時間発展を表すxの表記を用いることもある。xは、時刻tにおける変数xの値を示す。The random number generation device 100 includes a generator 110 that generates a random number. The generator 110 generates a random number from the variable x. The generator 110 according to the embodiment generates a random number based on n (n is an integer of 2 or more) variables x 1 ,..., X n . Here, the variables x 1 ,..., X n are w-bit unsigned variables. w is an arbitrary non-negative integer, for example, 64. In the following, the notation xt representing the time evolution of the variable x may be used. x t represents the value of the variable x at time t.

乱数発生装置100は、n個の変数を記憶する記憶部120と、n個の変数を更新する演算を実行する演算部130と、を備える。記憶部120は、n個の変数を記憶するためのn個の記憶領域120−1,・・・,120−nを有する。各記憶領域120−1,・・・,120−nの大きさは、wビットである。   The random number generation device 100 includes a storage unit 120 that stores n variables, and a calculation unit 130 that executes a calculation for updating the n variables. The storage unit 120 has n storage areas 120-1,..., 120-n for storing n variables. The size of each storage area 120-1,..., 120-n is w bits.

演算部130は、n個の記憶領域120−1,・・・,120−nに対応する、n個の演算器130−1,・・・,130−nを有している。各演算器130−1,・・・,130−nは、対応する記憶領域120−1,・・・,120−nに記憶された変数x,・・・,xを更新するため更新式本体G,・・・,Gの演算を実行する。更新式本体G,・・・,Gは、後述する更新式から”mod 2”を除いた部分をいう。The computing unit 130 has n computing units 130-1,..., 130-n corresponding to n storage areas 120-1,. Each calculator 130-1, ..., 130-n, the corresponding storage areas 120-1, ..., 120-n variables x 1 stored in, ..., to update the x n Update The calculation of the expression bodies G 1 ,..., G n is executed. The update formula bodies G 1 ,..., G n are portions obtained by removing “mod 2 w ” from the update formula described later.

各演算器130−1,・・・,130−nが演算の対象とする変数xを、対象変数とよぶ。例えば、演算器130−1にとっての対象変数は、変数xであり、演算器130−nにとっての対象変数は、変数xである。A variable x that is a target of calculation by each of the calculators 130-1,..., 130-n is referred to as a target variable. For example, the target variable for the calculator 130-1, a variable x 1, target variable for the computing unit 130-n is a variable x n.

各演算器130−1,・・・,130−nは、対象変数の更新のため、記憶部120から対象変数を取得する。例えば、演算器130−1は、記憶領域120−1から変数xを対象変数として取得し、演算器130−nは、記憶領域120−nから変数xを対象変数として取得する。Each computing unit 130-1,..., 130-n acquires the target variable from the storage unit 120 in order to update the target variable. For example, calculator 130-1 obtains the variable x 1 as the target variable from the storage area 120-1, calculator 130-n obtains the variable x n as the target variable from the storage area 120-n.

各演算器130−1,・・・,130−nは、対象変数だけでなく、記憶部120から他の変数も取得する。他の変数は、複数の変数x,・・・,xに含まれる変数であって、対象変数以外の変数である。他の変数は、1つであってもよいし、複数であってもよい。各演算器130は、複数の変数x,・・・,xすべてを取得してもよい。例えば、演算器130−1は、記憶領域120−2から変数xなどを他の変数として取得し、演算器130−nは、記憶領域120−1から変数xなどを他の変数として取得する。Each of the calculators 130-1,..., 130-n acquires not only the target variable but also other variables from the storage unit 120. The other variables are variables included in the plurality of variables x 1 ,..., X n and are variables other than the target variable. There may be one or more other variables. Each computing unit 130 may acquire all of the plurality of variables x 1 ,..., X n . For example, calculator 130-1 acquires from the storage area 120-2 and the variable x 2 as other variables, computing unit 130-n may acquire the variables x 1 as the other variables from the storage area 120-1 To do.

各演算器130−1,・・・,130−nが取得した他の変数は、対象変数とともに、対象変数の更新に用いられる。すなわち、更新式は、対象変数と他の変数とを含む式である。更新式の例については後述する。   Other variables acquired by the respective arithmetic units 130-1,..., 130-n are used for updating the target variable together with the target variable. In other words, the update expression is an expression including the target variable and other variables. An example of the update formula will be described later.

各演算器130−1,・・・,130−nは、更新式本体G,・・・,Gの演算結果R−1,・・・,R−nを出力する。演算結果R−1,・・・,R−nのビット数は、wビットを超えることがある。各演算結果R−1,・・・,R−nの下位wビットが、変数x ,・・・,x の更新値x t+1,・・・,x t+1となる。各演算結果R−1,・・・,R−nから、それらの下位wビットを取り出すことは、数学的には、各演算結果R−1,・・・,R−nに対して、”mod 2”の演算を行うことと等価である。本実施形態では、剰余演算を行う必要がないため、演算を高速化できる。Each calculator 130-1, ···, 130-n, the update type body G 1, · · ·, the operation result R-1 of G n, · · ·, and outputs the R-n. The number of bits of the calculation results R-1, ..., Rn may exceed w bits. Each calculation result R-1, ···, are lower w bits of R-n, the variable x 1 t, ···, updated values x 1 t + 1 of x n t, ···, the x n t + 1. Mathematically, taking out the lower w bits from each operation result R-1,..., Rn means that for each operation result R-1,. This is equivalent to performing the operation mod 2 w ″. In the present embodiment, since it is not necessary to perform a remainder operation, the operation can be speeded up.

更新値x t+1,・・・,x t+1は、演算部130から記憶部120へ出力される。更新値x t+1,・・・,x t+1は、記憶領域120−1,・・・,120−nに上書きされる。Update values x 1 t + 1 ,..., X n t + 1 are output from the calculation unit 130 to the storage unit 120. The update values x 1 t + 1 ,..., X n t + 1 are overwritten on the storage areas 120-1,.

本実施形態では、生成器110は、時刻t+1において演算部130から出力された1又は複数の変数xt+1から、乱数発生に用いられる出力系列t+1を生成し、その出力系列t+1から時刻t+1における乱数t+1を生成する。生成器110の構成は、1又は複数の変数xから乱数を生成する所定の演算を行うものであれば、特に限定されない。生成器110が変数から乱数を生成する演算は、複数の変数x全部又は一部を如何様に組み合わせた演算であってもよいし、複数の変数xのうちの1つの変数だけを用いた演算であってもよい。なお、生成器110は、変数xの更新値が記憶部120に上書きされてから、変数xを記憶部120から読み出して乱数を生成してもよい。In the present embodiment, the generator 110 generates an output sequence t + 1 used for random number generation from one or more variables x t + 1 output from the arithmetic unit 130 at time t + 1, and the random number at time t + 1 from the output sequence t + 1. t + 1 is generated. The configuration of the generator 110 is not particularly limited as long as it performs a predetermined operation for generating a random number from one or a plurality of variables x. The operation for generating random numbers from the variables by the generator 110 may be an operation in which some or all of a plurality of variables x are combined in any way, or an operation using only one variable among the plurality of variables x. It may be. The generator 110 may generate a random number by reading the variable x from the storage unit 120 after the updated value of the variable x is overwritten in the storage unit 120.

実施形態に係る生成器110は、排他的論理和演算部111を備える。排他的論理和演算部111は、n個の変数x,・・・,xの排他的論理演算を行う。排他的論理和演算部111の出力の所定上位ビット(例えば、上位16ビット)が、出力系列t+1となる。生成器110は、出力系列t+1を用いて乱数t+1を生成し、生成された乱数数t+1を出力する。なお、排他的論理和演算部111は、N個の変数x,・・・,xそれぞれの上位ビットに対する排他的論理和演算を行っても良い。また、生成器110は、出力系列を乱数として出力してもよい。The generator 110 according to the embodiment includes an exclusive OR operation unit 111. The exclusive OR operation unit 111 performs an exclusive logical operation on n variables x 1 ,..., X n . A predetermined upper bit (for example, upper 16 bits) of the output of the exclusive OR operation unit 111 is an output sequence t + 1 . The generator 110 generates a random number t + 1 using the output sequence t + 1 , and outputs the generated random number t + 1 . The exclusive OR operation unit 111 may perform an exclusive OR operation on the upper bits of each of the N variables x 1 ,..., X n . The generator 110 may output the output sequence as a random number.

[3.2 更新式の第1例]
n個の変数x,・・・,xそれぞれ更新するn個の更新式の第1例は、以下のとおりである。
[3.2 First example of update formula]
A first example of n update expressions for updating each of the n variables x 1 ,..., x n is as follows.

各更新式の右辺は、”mod 2”の部分と、”mod 2”以外の部分である更新式本体と、を有する。例えば、変数xの更新式の更新式本体Gは、変数xの更新式のうち、”mod 2”以外の部分である”F(x (i))+c1,1 (i)+c1,2 (i)+c1,3 (i)+・・・+c1,n (i)”の部分である。他の変数x,・・・,xについても同様である。The right side of each update formula has a “mod 2 w ” portion and an update formula body that is a portion other than “mod 2 w ”. For example, update equation updating expression body G 1 variables x 1, out of the update equation variables x 1, a "mod 2 w" other parts "F 1 (x 1 (i )) + c 1,1 x 1 (i) + c 1,2 x 2 (i) + c 1,3 x 3 (i) +... + C 1, n x n (i) ”. The same applies to the other variables x 2 ,..., X n .

更新式本体は、対応する演算器によって演算される。例えば、更新式本体Gは、演算器130−1によって演算される。更新式本体Gは、対象変数xの置換多項式としての一筆書き多項式F(x (i))、と、付加多項式c1,1 (i)+c1,2 (i)+c1,3 (i)+・・・+c1,n (i)と、の和として表される。付加多項式は、少なくとも一つの他の変数(対象変数x以外の変数)x,・・・xを含む。付加多項式は、対象変数xを含んでも良い。第1例において、付加多項式は、付加多項式に含まれる複数の変数xに関して、ck,lを係数とした線形結合となっている。なお、本明細書において、多項式は、単項式を含む。以上の更新式本体Gについての説明は、他の変数x,・・・,xについての更新式本体G,・・・,Gにおいても同様である。The updatable body is computed by a corresponding computing unit. For example, update equation body G 1 is calculated by the computing unit 130-1. The update formula body G 1 includes a one-stroke polynomial F 1 (x 1 (i) ) as a permutation polynomial of the target variable x 1 and an additional polynomial c 1,1 x 1 (i) + c 1,2 x 2 (i ) + C 1,3 x 3 (i) +... + C 1, n x n (i) . The additional polynomial includes at least one other variable (variable other than the target variable x 1 ) x 2 ,... X n . Additional polynomial may include a target variable x 1. In the first example, the additional polynomial is a linear combination with ck, l as coefficients for a plurality of variables x included in the additional polynomial. Note that in this specification, a polynomial includes a monomial. Description of the above update equations body G 1 is other variables x 2, · · ·, update expression body G 2 for x n, · · ·, is the same in G n.

更新式の第1例では、各一筆書き多項式に付加多項式が付加されているが、各更新式全体における一筆書き周期性が維持されている。   In the first example of the update equation, an additional polynomial is added to each one-stroke polynomial, but the one-stroke periodicity in each update equation is maintained.

更新式の第1例において、一筆書き周期性を持つための条件は、以下のとおりである。
・係数ck,l(k=1,2,・・・,n,l=1,2,・・・,n)はすべて偶数(偶数は0を含む、以下同様)である。
・任意のkに対して、ck,1,ck,2,・・・,ck,nのうち、4で割り切れないものの個数は偶数である。
In the first example of the update formula, the conditions for having one-stroke periodicity are as follows.
The coefficients c k, l (k = 1, 2,..., N, l = 1, 2,..., N) are all even numbers (even numbers include 0, and so on).
For any k, the number of c k, 1 , c k, 2 ,..., C k, n that is not divisible by 4 is an even number.

なお、付加多項式中の”+”、及び、付加多項式と置換多項式(一筆書き多項式)との和をとるための”+”は、算術和演算である必要はなく、排他的論理和演算であってもよい。また、複数の”+”に対応する演算として、算術和演算と排他的論理和演算とが混在してもよい。算術和演算と排他的論理和演算とが混在する場合には、両演算の優先順位を適宜決めればよい。   Note that “+” in the addition polynomial and “+” for taking the sum of the addition polynomial and the permutation polynomial (one-stroke polynomial) need not be an arithmetic sum operation, but an exclusive OR operation. May be. Also, arithmetic operations and exclusive OR operations may be mixed as operations corresponding to a plurality of “+”. When arithmetic sum operation and exclusive OR operation coexist, priority of both operations may be determined as appropriate.

更新式の第1例は、以下の点で有用である。まず、各更新式は一筆書き周期性を持つため、各変数の周期は、2という長周期になることが保証される。すなわち、以下が成り立つ。
なお、長周期性は、疑似乱数発生器やストリーム暗号において重要な性質である。
The first example of the update formula is useful in the following points. First, since each update formula has a one-stroke writing periodicity, the period of each variable is guaranteed to be a long period of 2 w . That is, the following holds.
Note that long periodicity is an important property in pseudorandom number generators and stream ciphers.

更新式の第1例の時間発展は、単なる一筆書き多項式単体の時間発展より複雑な挙動となるため有利である。更新式の第1例では、各更新式の次数は2に抑えられているが、次数を高くしなくても、時間発展の複雑な挙動が得られる。次数の増加は、演算負荷が大きい乗算の増加を招くが、更新式の第1例では、各更新式の次数を低く抑えられて有利である。   The time evolution in the first example of the update formula is advantageous because it has a more complicated behavior than the time evolution of a simple one-stroke polynomial alone. In the first example of the update formula, the order of each update formula is suppressed to 2, but a complicated behavior of time evolution can be obtained without increasing the order. The increase in the degree causes an increase in multiplication with a large calculation load. However, in the first example of the update formula, the order of each update formula can be suppressed low, which is advantageous.

また、更新式の第1例は、一筆多項式に付加多項式が付加されているが、一筆書き多項式と同様に、実質的に除算を行う必要がない。つまり、剰余算はデジタルコンピュータ上では無視できるという一筆書き多項式の優れた点が維持されている。   In the first example of the update formula, an additional polynomial is added to the one-stroke polynomial, but it is not necessary to divide substantially as in the one-stroke polynomial. In other words, the superiority of the one-stroke polynomial that the remainder calculation can be ignored on a digital computer is maintained.

n個の更新式を並列に演算することで、すなわち、各演算器130−1,・・・,130−nが並列に演算することで、変数の数が増加しても演算時間の増加を抑えることができる。   By calculating n update expressions in parallel, that is, by calculating each of the calculators 130-1,..., 130-n in parallel, the calculation time can be increased even if the number of variables increases. Can be suppressed.

係数ck,lの値として、2の冪乗のものを選択すると、更新式中では乗算として表現されているck,lk,lを、変数xk,lのビットシフト操作で実現できるため、より高速化が可能である。また、係数ck,lの値としては、上記の条件を満たす限り、様々な値を採用できる。したがって、乱数発生装置としての設計の自由度が高くなる。When a power of 2 is selected as the value of the coefficient c k, l , c k, l x k, l expressed as multiplication in the update formula is realized by a bit shift operation of the variable x k, l Therefore, higher speed is possible. As the values of the coefficients ck, l , various values can be adopted as long as the above conditions are satisfied. Therefore, the degree of freedom of design as a random number generator increases.

[3.3 更新式の第1例の評価]
更新式の第1例の乱数性を評価するため、以下のn個の更新式を用いた。
[3.3 Evaluation of first example of renewal formula]
In order to evaluate the randomness of the first example of the update formula, the following n update formulas were used.

評価は、図1の乱数発生装置における演算部130が上記のn個の更新式を演算するようにコンピュータを機能させるプログラムを、コンピュータに実行させて行った。乱数発生装置として機能させたコンピュータのプロセッサは、1.3GHz Intel Core i5である。なお、評価は、n個の更新式の演算を並列化せずに行った。   The evaluation was performed by causing the computer to execute a program that causes the computer to operate so that the arithmetic unit 130 in the random number generation device of FIG. The computer processor that functions as the random number generator is 1.3 GHz Intel Core i5. The evaluation was performed without parallelizing n update expressions.

評価において、生成部110は、演算部130が出力した変数x,x,x,x,x,xの排他的論理和をとり、その結果を、48ビット右シフトさせた16ビットの値(出力系列)を評価系列として生成する。すなわち、生成部110は、以下の演算を行う。
In the evaluation, the generation unit 110 performs exclusive OR of the variables x 1 , x 2 , x 3 , x 4 , x 5 , x 6 output from the calculation unit 130, and right-shifts the result by 48 bits. A 16-bit value (output series) is generated as an evaluation series. That is, the generation unit 110 performs the following calculation.

乱数性の評価は、以下を1セットとして40セット行った。
1.x,x,x,x,x,x,a,a,a,a,a,a,b,b,b,b,b,bの値をランダムに決める。
2.「1.」で決めた値をセットした乱数発生装置を実行させ、生成された評価系列から10ビットの乱数を生成する。
3.得られた乱数10ビットの乱数を、10ビットの乱数1000本とする。1000本の乱数を、米国商務省標準技術局(NIST) SP 800−22で定義される乱数検定にかける。
Randomness was evaluated by 40 sets with the following as one set.
1. x 1, x 2, x 3 , x 4, x 5, x 6, a 1, a 2, a 3, a 4, a 5, a 6, b 1, b 2, b 3, b 4, b 5 , B 6 are determined at random.
2. "1." to execute the random number generator which sets the value determined by, for generating a 109-bit random number generated evaluated sequence.
3. The resulting random number 109-bit random number, and 1000 10 6-bit random number. 1000 random numbers are subjected to a random number test as defined by the National Institute of Standards and Technology (NIST) SP 800-22.

表1は、乱数検定結果を示している。
Table 1 shows the random number test results.

NIST SP 800−22は、188項目のテストで構成されている。188項目すべてについて合格したのは、40セット中26セットであった。理想的な乱数の場合に、188項目すべてをクリアするセット数の理論値は、標準偏差の範囲で、40セット中21セットから27セットである。また、すべての項目に合格しなかった14セットについても、理想的な乱数が十分にとり得る成績である。よって、乱数性に関し良好な結果が得られていることがわかる。   NIST SP 800-22 consists of 188 tests. 26 out of 40 sets passed all 188 items. In the case of an ideal random number, the theoretical value of the number of sets that clears all 188 items is in the range of standard deviation from 21 to 27 out of 40 sets. Moreover, it is the result which an ideal random number can take sufficiently also about 14 sets which did not pass all the items. Therefore, it can be seen that good results are obtained with respect to randomness.

また、評価では、3Gbps以上の実行速度が得られており、実行速度の観点からも良好な結果が得られた。   In the evaluation, an execution speed of 3 Gbps or more was obtained, and a good result was obtained from the viewpoint of execution speed.

[3.4 更新式の第2例]
N個の変数x,・・・,xそれぞれ更新するN個の更新式の第2例は、以下のとおりである。
[3.4 Second example of update formula]
A second example of the N update expressions for updating each of the N variables x 1 ,..., X N is as follows.

なお、第2例中の”+”も、算術和演算である必要はなく、排他的論理和演算であってもよい。また、複数の”+”に対応する演算として、算術和演算と排他的論理和演算とが混在してもよい。算術和演算と排他的論理和演算とが混在する場合には、両演算の優先順位を適宜決めればよい。   Note that “+” in the second example is not necessarily an arithmetic sum operation, and may be an exclusive OR operation. Also, arithmetic operations and exclusive OR operations may be mixed as operations corresponding to a plurality of “+”. When arithmetic sum operation and exclusive OR operation coexist, priority of both operations may be determined as appropriate.

更新式の第2例は、第1例を包含する形式で定義されている。つまり、全係数ci,j,k,lのうち、添え字jが0かつ添え字lが1(他の添え字i,kは、0でもよいし0でなくてよい)である係数ci,0,k,1以外のものすべてを0にすると、
となり、第1例に対応する。
The second example of the update formula is defined in a format including the first example. That is, among all the coefficients c i, j, k, l, the coefficient c with the subscript j being 0 and the subscript l being 1 (other subscripts i and k may be 0 or 0). If everything except i, 0, k, 1 is set to 0,
This corresponds to the first example.

第2例においても、各変数x,・・・,xの更新式は、一筆書き周期性を有する。第2例においても、各更新式の右辺は、”mod 2”の部分と、”mod 2”以外の部分である更新式本体と、を有する。第2例でも、更新式本体は、対象変数の置換多項式(一筆書き多項式)と、付加多項式としての和として表されるが、第2例では、付加多項式が含まれていなくても良い。第2例では、置換多項式の係数部分(対象変数に乗じられる部分)が、対象変数以外の他の変数を含む多項式で表される。Also in the second example, the update formula for each variable x 1 ,..., X N has a one-stroke writing periodicity. Also in the second example, the right side of each updating formula has a “mod 2 w ” portion and an updating formula body that is a portion other than “mod 2 w ”. Also in the second example, the update formula body is represented as a sum of the permutation polynomial (one-stroke polynomial) of the target variable and the additional polynomial, but in the second example, the additional polynomial may not be included. In the second example, the coefficient part of the permutation polynomial (the part to be multiplied by the target variable) is represented by a polynomial including variables other than the target variable.

以下は、第2例の具体例を示している。
The following shows a specific example of the second example.

例えば、変数xの更新式は、”mod264”以外の更新式本体Gを有している。更新式本体Gにおいて、対象変数xのための一筆書き多項式に相当するのは、”2{x (t)+{4x (t)+3}x (t)+1”の部分であり、付加多項式に相当するのが、”4x (t)”の部分である。更新式本体Gの付加多項式は、他の変数としてx (t)を有する。For example, the update formula for the variable x 1 has an update formula body G 1 other than “mod 2 64 ”. In the update formula body G 1 , the one-stroke polynomial for the target variable x 1 is “2 {x 1 (t) } 2 + {4x 3 (t) +3} x 1 (t) +1”. The portion, which corresponds to the additional polynomial, is the portion “4x 2 (t) ”. The additional polynomial of the update formula body G 1 has x 2 (t) as another variable.

更新式本体Gの一筆書き多項式においては、x (t)の係数が、定数ではなく、他の変数x (t)を含んでいる。したがって、一筆書き多項式の係数が時間的に変化し、更新式の時間発展が、第1例よりも複雑になる。他の変数x〜xの更新式についても同様である。In the one-stroke polynomial of the update formula body G 1 , the coefficient of x 1 (t) is not a constant but includes another variable x 3 (t) . Therefore, the coefficient of the one-stroke polynomial changes with time, and the time evolution of the update formula becomes more complicated than in the first example. The same applies to the update formulas of the other variables x 2 to x 8 .

また、第2例は、第1例を包含しており、第1例と同様の有用性が得られる。さらに、第2例では、置換多項式(一筆書き多項式)の係数部分を他の変数によって変化させることができるため、係数部分が、時間的に値が変化しない定数を含んでいてもその値は小さくてよい。したがって、値が変化しない定数に大きなメモリを割り当てなくても良くなり、メモリ効率が向上する。   Further, the second example includes the first example, and the same utility as the first example can be obtained. Furthermore, in the second example, since the coefficient portion of the permutation polynomial (single-stroke polynomial) can be changed by other variables, even if the coefficient portion includes a constant whose value does not change with time, the value is small. It's okay. Therefore, it is not necessary to allocate a large memory to a constant whose value does not change, and the memory efficiency is improved.

[3.5 更新式の第2例の評価]
更新式の第2例の乱数性の評価を、上記の具体例として示したn個の更新式を用いて行った。
[3.5 Evaluation of second example of renewal formula]
Evaluation of the randomness of the second example of the update formula was performed using the n update formulas shown as the above specific examples.

評価の方法は、第1例の評価方法とほぼ同様である。第2例では、52セットについて評価した。また、第2例では、各変数が64ビットであり、各変数の上位32ビットを出力系列生成に用いた。   The evaluation method is substantially the same as the evaluation method of the first example. In the second example, 52 sets were evaluated. In the second example, each variable is 64 bits, and the upper 32 bits of each variable are used for output sequence generation.

第2例の場合、実行速度の最高値は、4936.824780Mpbsとなり、暗号化速度に換算すると、2.16cycle/Byteとなり、非常に高い速度が得られている。   In the case of the second example, the maximum value of the execution speed is 4936.824780 Mpbs, which is 2.16 cycle / byte when converted into the encryption speed, and a very high speed is obtained.

第2例の場合、NIST SP 800−22で定義される乱数検定の結果は、52セット中、40セットが、188項目すべてについて合格した。第2例においても良好な乱数性が確認された。   In the case of the 2nd example, as for the result of the random number test defined by NIST SP 800-22, 40 sets out of 52 sets passed for all 188 items. Good randomness was also confirmed in the second example.

本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。   The present invention is not limited to the above embodiment, and various modifications can be made.

100 乱数発生装置
110 生成器
120 記憶部
130 演算部
100 random number generator 110 generator 120 storage unit 130 calculation unit

Claims (6)

複数の変数を記憶する記憶部と、
複数の前記変数それぞれを更新する複数の更新式の演算を実行し、複数の前記変数の更新値を前記記憶部へ出力する演算部と、
複数の前記変数の少なくともいずれか一つの変数に基づいて、乱数を生成する生成器と、
を備え、
前記更新式は、
前記更新式によって更新される対象変数の置換多項式と、複数の前記変数に含まれる前記対象変数以外の他の変数と、を含み、
前記更新式によって前記対象変数を繰り返し更新したときの周期性が、一筆書き周期性である
乱数発生装置。
A storage unit for storing a plurality of variables;
A calculation unit that executes calculation of a plurality of update expressions for updating each of the plurality of variables, and outputs update values of the plurality of variables to the storage unit;
A generator that generates a random number based on at least one of the plurality of variables;
With
The update formula is
A substitution polynomial of the target variable updated by the update formula, and other variables other than the target variable included in the plurality of variables,
The random number generator according to claim 1, wherein the periodicity when the target variable is repeatedly updated by the update formula is a one-stroke writing periodicity.
前記更新式は、前記対象変数の前記置換多項式と、前記他の変数と、の和を含む
請求項1記載の乱数発生装置。
The random number generation device according to claim 1, wherein the update formula includes a sum of the permutation polynomial of the target variable and the other variable.
前記対象変数の前記置換多項式は、前記対象変数に乗じられる係数部分であって、多項式で表される前記係数部分を含み、前記他の変数は、前記係数部分に含まれる
請求項1又は2に記載の乱数発生装置。
The permutation polynomial of the target variable is a coefficient part to be multiplied by the target variable, and includes the coefficient part represented by a polynomial, and the other variable is included in the coefficient part. The random number generator described.
前記置換多項式は、一筆書き多項式である
請求項1〜3のいずれか1項に記載の乱数発生装置。
The random number generator according to claim 1, wherein the permutation polynomial is a one-stroke polynomial.
演算部が、記憶部に記憶された複数の変数それぞれを更新する複数の更新式の演算を実行すること、
前記演算部が、複数の前記変数の更新値を記憶部へ出力すること、
生成器が、複数の前記変数の少なくともいずれか一つの変数に基づいて、乱数を生成すること、
を含み、
前記更新式は、
前記更新式によって更新される対象変数の置換多項式と、複数の前記変数に含まれる前記対象変数以外の他の変数と、を含み、
前記更新式によって前記対象変数を繰り返し更新したときの周期性が、一筆書き周期性である
乱数発生方法。
The calculation unit performs a plurality of update-type calculations for updating each of the plurality of variables stored in the storage unit;
The operation unit outputs updated values of the plurality of variables to a storage unit;
A generator generates a random number based on at least one variable of the plurality of variables;
Including
The update formula is
A substitution polynomial of the target variable updated by the update formula, and other variables other than the target variable included in the plurality of variables,
The random number generation method, wherein the periodicity when the target variable is repeatedly updated by the update formula is a one-stroke writing periodicity.
コンピュータを、
複数の変数を記憶する記憶部、
複数の前記変数それぞれを更新する複数の更新式の演算を実行し、複数の前記変数の更新値を前記記憶部へ出力する演算部、及び
複数の前記変数の少なくともいずれか一つの変数に基づいて、乱数を生成する生成器
として機能させるためのコンピュータプログラムであって、
前記更新式は、
前記更新式によって更新される対象変数の置換多項式と、複数の前記変数に含まれる前記対象変数以外の他の変数と、を含み、
前記更新式によって前記対象変数を繰り返し更新したときの周期性が、一筆書き周期性である
コンピュータプログラム。
Computer
A storage unit for storing a plurality of variables;
Based on at least one of the plurality of variables, an arithmetic unit that executes a plurality of update formula operations for updating each of the plurality of variables, and outputs update values of the plurality of variables to the storage unit A computer program for functioning as a generator for generating random numbers,
The update formula is
A substitution polynomial of the target variable updated by the update formula, and other variables other than the target variable included in the plurality of variables,
A computer program in which the periodicity when the target variable is repeatedly updated by the update formula is a one-stroke writing periodicity.
JP2018503400A 2016-03-03 2017-03-02 Random number generator, random number generation method and computer program Active JP6851085B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016041564 2016-03-03
JP2016041564 2016-03-03
PCT/JP2017/008294 WO2017150672A1 (en) 2016-03-03 2017-03-02 Random number generation device, random number generation method, and computer program

Publications (2)

Publication Number Publication Date
JPWO2017150672A1 true JPWO2017150672A1 (en) 2018-12-27
JP6851085B2 JP6851085B2 (en) 2021-03-31

Family

ID=59743078

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018503400A Active JP6851085B2 (en) 2016-03-03 2017-03-02 Random number generator, random number generation method and computer program

Country Status (2)

Country Link
JP (1) JP6851085B2 (en)
WO (1) WO2017150672A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099408A (en) * 2000-09-21 2002-04-05 Hitachi Kokusai Electric Inc Generating apparatus of random numbers using a plurality of generating polynomial expression
JP2005107910A (en) * 2003-09-30 2005-04-21 National Institute Of Information & Communication Technology Random number generating device, random number generating method and its program
WO2005073842A1 (en) * 2004-01-30 2005-08-11 Victor Company Of Japan, Limited Pseudo random number generation device and pseudo random number generation program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099408A (en) * 2000-09-21 2002-04-05 Hitachi Kokusai Electric Inc Generating apparatus of random numbers using a plurality of generating polynomial expression
JP2005107910A (en) * 2003-09-30 2005-04-21 National Institute Of Information & Communication Technology Random number generating device, random number generating method and its program
WO2005073842A1 (en) * 2004-01-30 2005-08-11 Victor Company Of Japan, Limited Pseudo random number generation device and pseudo random number generation program

Also Published As

Publication number Publication date
WO2017150672A1 (en) 2017-09-08
JP6851085B2 (en) 2021-03-31

Similar Documents

Publication Publication Date Title
JP4408712B2 (en) Multi-precision data product-sum operation processing circuit and Montgomery product-sum operation circuit
Mauerer et al. A modular framework for randomness extraction based on Trevisan's construction
JP5449576B2 (en) Arithmetic device, elliptic scalar multiplication method for arithmetic device, elliptic scalar multiplication program, remainder arithmetic method for arithmetic device, and remainder arithmetic program
JP7292297B2 (en) probabilistic rounding logic
Adikari et al. A Fast Hardware Architecture for Integer to\tauNAF Conversion for Koblitz Curves
Katzman et al. Rings of Frobenius operators
Krishna et al. Efficient reversible logic synthesis via isomorphic subgraph matching
WO2017150672A1 (en) Random number generation device, random number generation method, and computer program
Rodríguez et al. Application-specific processor for piecewise linear functions computation
Keliris et al. Investigating large integer arithmetic on Intel Xeon Phi SIMD extensions
JPWO2009020216A1 (en) Calculation method and calculation device
US10387492B2 (en) Information processing system, information processing method, and program
JP6057725B2 (en) Information processing device
JP4709685B2 (en) Pseudorandom number generation device, pseudorandom number generation method, pseudorandom number generation program, encryption device, and decryption device
JP4547534B2 (en) Pseudorandom number generator strength evaluation device and encryption device
KR20000000770A (en) Device for multiplying modular
Neves et al. Engineering nonlinear pseudorandom number generators
JP5822757B2 (en) Stream cipher encryption apparatus, stream cipher decryption apparatus, stream cipher encryption method, stream cipher decryption method, and program
Cortés Vega A general method for to decompose modular multiplicative inverse operators over Group of units
Foster Accelerating homomorphic encryption in the cloud environment through high-level synthesis and reconfigurable resources
Adriaans A simple information theoretical proof of the Fueter-P\'olya Conjecture
Stoll Documentation for the ratpoints program
JP2017058501A (en) Hash function calculation device and method
KR100761132B1 (en) Apparatus and method for computing SHA-1
Nicolaide Considerations on certain Theorems of the Galois Theory

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180820

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200203

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210302

R150 Certificate of patent or registration of utility model

Ref document number: 6851085

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250