WO2017150672A1 - 乱数発生装置、乱数発生方法及びコンピュータプログラム - Google Patents
乱数発生装置、乱数発生方法及びコンピュータプログラム Download PDFInfo
- Publication number
- WO2017150672A1 WO2017150672A1 PCT/JP2017/008294 JP2017008294W WO2017150672A1 WO 2017150672 A1 WO2017150672 A1 WO 2017150672A1 JP 2017008294 W JP2017008294 W JP 2017008294W WO 2017150672 A1 WO2017150672 A1 WO 2017150672A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- variables
- random number
- polynomial
- update
- update formula
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
Definitions
- the present invention relates to a random number generator and the like.
- Patent Document 1 discloses a random number generator using a permutation polynomial.
- the present invention from one viewpoint is a random number generator.
- the random number generation device 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 updated by the update formula and other variables other than the target variable included in the plurality of variables.
- 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.
- the present invention from another viewpoint is a method for generating a random number.
- 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.
- 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.
- a two-residue remainder ring is a finite set expressed as follows.
- 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.
- 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.
- 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.
- 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.
- 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.
- F b (X) is a one-stroke writing polynomial.
- 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.
- the one-stroke polynomial is advantageous for generating random numbers from the viewpoint of a long period, but the time evolution (temporal change of the variable X) becomes simple, and it may be difficult to obtain sufficient randomness. Therefore, a simple one-stroke polynomial has a disadvantage in generating random numbers.
- 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.
- 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.
- the update formula may include a sum of the permutation polynomial of the target variable and the other variable.
- 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.
- the permutation polynomial is preferably a one-stroke polynomial.
- 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.
- 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.
- 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.
- 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 .
- the variables x 1 ,..., X n are w-bit unsigned variables.
- w is an arbitrary non-negative integer, for example, 64.
- 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.
- 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.
- the computing unit 130 has n computing units 130-1,..., 130-n corresponding to n storage areas 120-1,. Each of the arithmetic units 130-1,..., 130-n is updated to update the variables x 1 ,..., X n stored in the corresponding storage areas 120-1,.
- 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.
- the variable x that each of the calculators 130-1,..., 130-n is a calculation target is called a target variable.
- target variable for the computing unit 130-n is a variable x n.
- Each of the computing units 130-1,..., 130-n acquires the target variable from the storage unit 120 for updating the target variable.
- 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.
- Each of the computing units 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 .
- 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.
- the update expression is an expression including the target variable and other variables. An example of the update formula will be described later.
- the number of bits of the operation 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.
- the lower w bits are extracted from 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.
- Update values x 1 t + 1 ,..., X n t + 1 are output from the calculation unit 130 to the storage unit 120.
- the updated values x 1 t + 1 ,..., X n t + 1 are overwritten on the storage areas 120-1,.
- 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.
- the generator 110 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.
- each update formula has a “mod 2 w ” portion and an update formula body that is a portion other than “mod 2 w ”.
- the updatable body is computed by a corresponding computing unit.
- 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.
- the additional polynomial is a linear combination with ck, l as coefficients for a plurality of variables x included in the additional polynomial.
- 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.
- the conditions for having one-stroke periodicity are as follows.
- the number of c k, 1 , c k, 2 ,..., C k, n that is not divisible by 4 is an even number.
- 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.
- the time evolution of 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.
- 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.
- the order of each update formula can be suppressed low, which is advantageous.
- an additional polynomial is added to the one-stroke polynomial, but it is not necessary to divide substantially like 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.
- Evaluation was performed by causing the computer to execute a program that causes the computer to function so that the calculation unit 130 in the random number generation device of FIG. 1 calculates the n update expressions.
- 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.
- 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.
- 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 randomness test as defined by the National Institute of Standards and Technology (NIST) SP 800-22.
- Table 1 shows the random number test results.
- NIST SP 800-22 consists of 188 test items. 26 out of 40 sets passed all 188 items.
- 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.
- “+” 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.
- 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.
- the update formula for each variable x 1 ,..., X N has a one-stroke writing periodicity.
- 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 ”.
- 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.
- 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.
- the update formula for the variable x 1 has an update formula body G 1 other than “mod 2 64 ”.
- 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.
- 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 equations for the other variables x 2 to x 8 .
- the second example includes the first example, and the same usefulness 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.
- the evaluation method is almost the same as the evaluation method of the first example.
- 52 sets were evaluated.
- each variable is 64 bits, and the upper 32 bits of each variable are used for output sequence generation.
- 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.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
乱数発生装置100は、複数の変数を記憶する記憶部120と、複数の変数それぞれを更新する複数の更新式の演算を実行し、複数の変数の更新値を記憶部120へ出力する演算部130と、複数の変数の少なくともいずれか一つの変数に基づいて、乱数を生成する生成器110と、を備える。更新式は、更新式によって更新される対象変数の置換多項式と、複数の変数に含まれる対象変数以外の他の変数と、を含み、更新式によって対象変数を繰り返し更新したときの周期性が、一筆書き周期性である。
Description
本発明は、乱数発生装置等に関するものである。
特許文献1は、置換多項式を用いた乱数発生装置を開示している。
一般に、乱数には、高い乱数性が望まれる。置換多項式の値を用いて生成される乱数の乱数性を高くするための一つのアプローチは、置換多項式の次数を大きくすることである。しかし、置換多項式の次数が大きくなると、演算器による演算時間の増大を招き易い。
このため、次数を大きくするのとは別のアプローチで、高い乱数性を容易に得ることが望まれる。
一の観点からみた本発明は、乱数発生装置である。乱数発生装置は、複数の変数それぞれを更新する複数の更新式の演算を実行する。更新式は、更新式によって更新される対象変数の置換多項式と、複数の変数に含まれる対象変数以外の他の変数と、を含む。更新式は、更対象変数を繰り返し更新したときの周期性が、一筆書き周期性である。本発明によれば、一筆書き多項式と同様の長周期が得られ、高い乱数性が容易に得られる。
他の観点からみた本発明は、乱数を生成する方法である。他の観点からみた本発明は、コンピュータを乱数発生装置として機能させるためのコンピュータプログラムである。コンピュータプログラムは、コンピュータ読み取り可能な記録媒体に記憶される。
[1.用語]
[1.1 置換多項式]
置換多項式F(X)は、有限集合上でXの置換を与える多項式である。置換多項式は、有限集合において全単射を与える。置換多項式による変数Xの値の変化を示す軌道は、必ず、周期軌道になる。すなわち、置換多項式による変数Xの値の変化は、周期性を持つ。
置換多項式F(X)は、有限集合上でXの置換を与える多項式である。置換多項式は、有限集合において全単射を与える。置換多項式による変数Xの値の変化を示す軌道は、必ず、周期軌道になる。すなわち、置換多項式による変数Xの値の変化は、周期性を持つ。
[1.2 2冪剰余環]
2冪剰余環は、以下のように表される有限集合である。本明細書では、以下のように表される2冪剰余環を、「冪指数wの2冪剰余環」というものとする。wは、任意の非負整数である。
なお、計算途中で値が集合の範囲外に出たら、”mod 2w”をとる。modは、剰余演算子である。
2冪剰余環は、以下のように表される有限集合である。本明細書では、以下のように表される2冪剰余環を、「冪指数wの2冪剰余環」というものとする。wは、任意の非負整数である。
[1.3 2冪剰余環上置換多項式]
2冪剰余環上置換多項式は、2冪剰余環上で置換を与える置換多項式である。2冪剰余環上置換多項式は、整数係数多項式である。すなわち、2冪剰余環上置換多項式F(X)は、F(X) mod 2wが、冪指数wの2冪剰余環上で全単射を与える整数係数多項式であり、以下のようにも定義される。
2冪剰余環上置換多項式は、2冪剰余環上で置換を与える置換多項式である。2冪剰余環上置換多項式は、整数係数多項式である。すなわち、2冪剰余環上置換多項式F(X)は、F(X) mod 2wが、冪指数wの2冪剰余環上で全単射を与える整数係数多項式であり、以下のようにも定義される。
例えば、冪指数3の2冪剰余環上における、置換多項式Fa(X)=2X2+X+1の軌道は、図1(a)に示すように、周期軌道になる。すなわち、Fa(0) mod 23=1であり、Fa(1) mod 23=4であり、Fa(4) mod 23=5であり、Fa(5) mod 23=0である。
また、置換多項式Fa(X)=2X2+X+1は、図1(b)に示す別の周期軌道も持つ。すなわち、Fa(2) mod 23=3であり、Fa(3) mod 23=6であり、Fa(6) mod 23=7であり、Fa(7) mod 23=2である。
[1.4 一筆書き周期性と一筆書き多項式]
一筆書き周期性とは、多項式F(X)が成す1本の軌道(1周期の軌道)が、2冪剰余環のすべての要素をめぐることをいう。軌道が一筆書き周期性を持つ多項式を、一筆書き多項式という。一筆書き多項式は、以下のように定義される。
一筆書き周期性とは、多項式F(X)が成す1本の軌道(1周期の軌道)が、2冪剰余環のすべての要素をめぐることをいう。軌道が一筆書き周期性を持つ多項式を、一筆書き多項式という。一筆書き多項式は、以下のように定義される。
図2は、冪指数3の2冪剰余環={0,1,2,3,4,5,6,7}上における、一筆書き多項式Fb(X)=4X2+X+1の軌道を示している。図2に示す軌道は、周期軌道であり、1周期の軌道が、{0,1,2,3,4,5,6,7}のすべての要素を1回ずつ通過している。したがって、Fb(X)による2冪剰余環上の軌道は、一筆書き周期性を持ち、Fb(X)は一筆書き多項式である。図1と図2との対比からも明らかなように、一筆書き周期性がある場合、軌道の周期は最大となり、周期長は2wとなる。長い周期は、乱数発生において有利である。
置換多項式F(X)が、一筆書き多項式である必要十分条件は、
がすべて成り立つことである。上記の必要十分条件は、
係数a0と1とは法2に関して合同であり、
係数a1と1とは法2に関して合同であり、
添え字が1以上であるすべての係数a1,a2,a3,・・・の和と1とは、法4に関して合同であり、
添え字が3以上の奇数であるすべての係数a3,a5,a7,・・・の和と2a2とは、法4に関して合同であることを示す。
係数a0と1とは法2に関して合同であり、
係数a1と1とは法2に関して合同であり、
添え字が1以上であるすべての係数a1,a2,a3,・・・の和と1とは、法4に関して合同であり、
添え字が3以上の奇数であるすべての係数a3,a5,a7,・・・の和と2a2とは、法4に関して合同であることを示す。
一筆書き多項式は、長周期であるという観点では乱数の生成に有利であるが、時間発展(変数Xの時間的変化)が単純となり、十分な乱数性を得るのが困難な場合がある。したがって、単なる一筆書き多項式単体は、乱数の生成に不利な面も有する。
[2.実施形態の概要]
[第1項]
実施形態に係る乱数発生装置は、
複数の変数を記憶する記憶部と、
複数の前記変数それぞれを更新する複数の更新式の演算を実行し、複数の前記変数の更新値を前記記憶部へ出力する演算部と、
複数の前記変数の少なくともいずれか一つの変数に基づいて、乱数を生成する生成器と、
を備える。
前記更新式は、
前記更新式によって更新される対象変数の置換多項式と、複数の前記変数に含まれる前記対象変数以外の他の変数と、を含み、
前記更新式によって前記対象変数を繰り返し更新したときの周期性が、一筆書き周期性である。
実施形態に係る乱数発生装置は、
複数の変数を記憶する記憶部と、
複数の前記変数それぞれを更新する複数の更新式の演算を実行し、複数の前記変数の更新値を前記記憶部へ出力する演算部と、
複数の前記変数の少なくともいずれか一つの変数に基づいて、乱数を生成する生成器と、
を備える。
前記更新式は、
前記更新式によって更新される対象変数の置換多項式と、複数の前記変数に含まれる前記対象変数以外の他の変数と、を含み、
前記更新式によって前記対象変数を繰り返し更新したときの周期性が、一筆書き周期性である。
第1項の乱数発生装置によれば、乱数の生成に用いられる変数を更新する更新式は、更新式によって更新される対象変数以外の他の変数も含むので、対象変数の置換多項式の次数を大きくしなくても、乱数性を高くすることができる。しかも、更新式は一筆書き周期性を持つので、長い周期を得ることができる。
[第2項]
前記更新式は、前記対象変数の前記置換多項式と、前記他の変数と、の和を含むことができる。
前記更新式は、前記対象変数の前記置換多項式と、前記他の変数と、の和を含むことができる。
[第3項]
前記対象変数の前記置換多項式は、前記対象変数に乗じられる係数部分であって、多項式で表される前記係数部分を含み、前記他の変数は、前記係数部分に含まれていてもよい。
前記対象変数の前記置換多項式は、前記対象変数に乗じられる係数部分であって、多項式で表される前記係数部分を含み、前記他の変数は、前記係数部分に含まれていてもよい。
[第4項]
前記置換多項式は、一筆書き多項式であるのが好ましい。
前記置換多項式は、一筆書き多項式であるのが好ましい。
[第5項]
実施形態に係る方法は、
演算部が、記憶部に記憶された複数の変数それぞれを更新する複数の更新式の演算を実行すること、
前記演算部が、複数の前記変数の更新値を記憶部へ出力すること、
生成器が、複数の前記変数の少なくともいずれか一つの変数に基づいて、乱数を生成すること、
を含む。
前記更新式は、
前記更新式によって更新される対象変数の置換多項式と、複数の前記変数に含まれる前記対象変数以外の他の変数と、を含み、
前記更新式によって前記対象変数を繰り返し更新したときの周期性が、一筆書き周期性である。
実施形態に係る方法は、
演算部が、記憶部に記憶された複数の変数それぞれを更新する複数の更新式の演算を実行すること、
前記演算部が、複数の前記変数の更新値を記憶部へ出力すること、
生成器が、複数の前記変数の少なくともいずれか一つの変数に基づいて、乱数を生成すること、
を含む。
前記更新式は、
前記更新式によって更新される対象変数の置換多項式と、複数の前記変数に含まれる前記対象変数以外の他の変数と、を含み、
前記更新式によって前記対象変数を繰り返し更新したときの周期性が、一筆書き周期性である。
[第6項]
実施形態に係るコンピュータプログラムは、
コンピュータを、
複数の変数を記憶する記憶部、
複数の前記変数それぞれを更新する複数の更新式の演算を実行し、複数の前記変数の更新値を前記記憶部へ出力する演算部、及び
複数の前記変数の少なくともいずれか一つの変数に基づいて、乱数を生成する生成器
として機能させるためのコンピュータプログラムである。
前記更新式は、
前記更新式によって更新される対象変数の置換多項式と、複数の前記変数に含まれる前記対象変数以外の他の変数と、を含み、
前記更新式によって前記対象変数を繰り返し更新したときの周期性が、一筆書き周期性である。
実施形態に係るコンピュータプログラムは、
コンピュータを、
複数の変数を記憶する記憶部、
複数の前記変数それぞれを更新する複数の更新式の演算を実行し、複数の前記変数の更新値を前記記憶部へ出力する演算部、及び
複数の前記変数の少なくともいずれか一つの変数に基づいて、乱数を生成する生成器
として機能させるためのコンピュータプログラムである。
前記更新式は、
前記更新式によって更新される対象変数の置換多項式と、複数の前記変数に含まれる前記対象変数以外の他の変数と、を含み、
前記更新式によって前記対象変数を繰り返し更新したときの周期性が、一筆書き周期性である。
[3.実施形態の詳細]
[3.1 乱数発生装置の構成]
図3は、実施形態に係る乱数発生装置100を示している。乱数発生装置100は、例えば、乱数を発生させるための演算を実行する演算回路を備えたハードウェアによって構成されている。乱数発生装置100は、乱数発生コンピュータプログラムがインストールされたコンピュータであってもよい。コンピュータは、乱数発生コンピュータプログラムを実行することによって、乱数発生装置100として機能する。
図3は、実施形態に係る乱数発生装置100を示している。乱数発生装置100は、例えば、乱数を発生させるための演算を実行する演算回路を備えたハードウェアによって構成されている。乱数発生装置100は、乱数発生コンピュータプログラムがインストールされたコンピュータであってもよい。コンピュータは、乱数発生コンピュータプログラムを実行することによって、乱数発生装置100として機能する。
乱数発生装置100は、乱数を生成する生成器110を備えている。生成器110は、変数xから乱数を生成する。実施形態に係る生成器110は、n個(nは2以上の整数)の変数x1,・・・,xnに基づいて、乱数を生成する。ここで、変数x1,・・・,xnは、それぞれ、wビットの符号なし変数である。wは、任意の非負整数であり、例えば64である。以下では、変数xの時間発展を表すxtの表記を用いることもある。xtは、時刻tにおける変数xの値を示す。
乱数発生装置100は、n個の変数を記憶する記憶部120と、n個の変数を更新する演算を実行する演算部130と、を備える。記憶部120は、n個の変数を記憶するためのn個の記憶領域120-1,・・・,120-nを有する。各記憶領域120-1,・・・,120-nの大きさは、wビットである。
演算部130は、n個の記憶領域120-1,・・・,120-nに対応する、n個の演算器130-1,・・・,130-nを有している。各演算器130-1,・・・,130-nは、対応する記憶領域120-1,・・・,120-nに記憶された変数x1,・・・,xnを更新するため更新式本体G1,・・・,Gnの演算を実行する。更新式本体G1,・・・,Gnは、後述する更新式から”mod 2w”を除いた部分をいう。
各演算器130-1,・・・,130-nが演算の対象とする変数xを、対象変数とよぶ。例えば、演算器130-1にとっての対象変数は、変数x1であり、演算器130-nにとっての対象変数は、変数xnである。
各演算器130-1,・・・,130-nは、対象変数の更新のため、記憶部120から対象変数を取得する。例えば、演算器130-1は、記憶領域120-1から変数x1を対象変数として取得し、演算器130-nは、記憶領域120-nから変数xnを対象変数として取得する。
各演算器130-1,・・・,130-nは、対象変数だけでなく、記憶部120から他の変数も取得する。他の変数は、複数の変数x1,・・・,xnに含まれる変数であって、対象変数以外の変数である。他の変数は、1つであってもよいし、複数であってもよい。各演算器130は、複数の変数x1,・・・,xnすべてを取得してもよい。例えば、演算器130-1は、記憶領域120-2から変数x2などを他の変数として取得し、演算器130-nは、記憶領域120-1から変数x1などを他の変数として取得する。
各演算器130-1,・・・,130-nが取得した他の変数は、対象変数とともに、対象変数の更新に用いられる。すなわち、更新式は、対象変数と他の変数とを含む式である。更新式の例については後述する。
各演算器130-1,・・・,130-nは、更新式本体G1,・・・,Gnの演算結果R-1,・・・,R-nを出力する。演算結果R-1,・・・,R-nのビット数は、wビットを超えることがある。各演算結果R-1,・・・,R-nの下位wビットが、変数x1
t,・・・,xn
tの更新値x1
t+1,・・・,xn
t+1となる。各演算結果R-1,・・・,R-nから、それらの下位wビットを取り出すことは、数学的には、各演算結果R-1,・・・,R-nに対して、”mod 2w”の演算を行うことと等価である。本実施形態では、剰余演算を行う必要がないため、演算を高速化できる。
更新値x1
t+1,・・・,xn
t+1は、演算部130から記憶部120へ出力される。更新値x1
t+1,・・・,xn
t+1は、記憶領域120-1,・・・,120-nに上書きされる。
本実施形態では、生成器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から読み出して乱数を生成してもよい。
実施形態に係る生成器110は、排他的論理和演算部111を備える。排他的論理和演算部111は、n個の変数x1,・・・,xnの排他的論理演算を行う。排他的論理和演算部111の出力の所定上位ビット(例えば、上位16ビット)が、出力系列t+1となる。生成器110は、出力系列t+1を用いて乱数t+1を生成し、生成された乱数数t+1を出力する。なお、排他的論理和演算部111は、N個の変数x1,・・・,xnそれぞれの上位ビットに対する排他的論理和演算を行っても良い。また、生成器110は、出力系列を乱数として出力してもよい。
各更新式の右辺は、”mod 2w”の部分と、”mod 2w”以外の部分である更新式本体と、を有する。例えば、変数x1の更新式の更新式本体G1は、変数x1の更新式のうち、”mod 2w”以外の部分である”F1(x1
(i))+c1,1x1
(i)+c1,2x2
(i)+c1,3x3
(i)+・・・+c1,nxn
(i)”の部分である。他の変数x2,・・・,xnについても同様である。
更新式本体は、対応する演算器によって演算される。例えば、更新式本体G1は、演算器130-1によって演算される。更新式本体G1は、対象変数x1の置換多項式としての一筆書き多項式F1(x1
(i))、と、付加多項式c1,1x1
(i)+c1,2x2
(i)+c1,3x3
(i)+・・・+c1,nxn
(i)と、の和として表される。付加多項式は、少なくとも一つの他の変数(対象変数x1以外の変数)x2,・・・xnを含む。付加多項式は、対象変数x1を含んでも良い。第1例において、付加多項式は、付加多項式に含まれる複数の変数xに関して、ck,lを係数とした線形結合となっている。なお、本明細書において、多項式は、単項式を含む。以上の更新式本体G1についての説明は、他の変数x2,・・・,xnについての更新式本体G2,・・・,Gnにおいても同様である。
更新式の第1例では、各一筆書き多項式に付加多項式が付加されているが、各更新式全体における一筆書き周期性が維持されている。
更新式の第1例において、一筆書き周期性を持つための条件は、以下のとおりである。
・係数ck,l(k=1,2,・・・,n,l=1,2,・・・,n)はすべて偶数(偶数は0を含む、以下同様)である。
・任意のkに対して、ck,1,ck,2,・・・,ck,nのうち、4で割り切れないものの個数は偶数である。
・係数ck,l(k=1,2,・・・,n,l=1,2,・・・,n)はすべて偶数(偶数は0を含む、以下同様)である。
・任意のkに対して、ck,1,ck,2,・・・,ck,nのうち、4で割り切れないものの個数は偶数である。
なお、付加多項式中の”+”、及び、付加多項式と置換多項式(一筆書き多項式)との和をとるための”+”は、算術和演算である必要はなく、排他的論理和演算であってもよい。また、複数の”+”に対応する演算として、算術和演算と排他的論理和演算とが混在してもよい。算術和演算と排他的論理和演算とが混在する場合には、両演算の優先順位を適宜決めればよい。
更新式の第1例は、以下の点で有用である。まず、各更新式は一筆書き周期性を持つため、各変数の周期は、2wという長周期になることが保証される。すなわち、以下が成り立つ。
なお、長周期性は、疑似乱数発生器やストリーム暗号において重要な性質である。
更新式の第1例の時間発展は、単なる一筆書き多項式単体の時間発展より複雑な挙動となるため有利である。更新式の第1例では、各更新式の次数は2に抑えられているが、次数を高くしなくても、時間発展の複雑な挙動が得られる。次数の増加は、演算負荷が大きい乗算の増加を招くが、更新式の第1例では、各更新式の次数を低く抑えられて有利である。
また、更新式の第1例は、一筆多項式に付加多項式が付加されているが、一筆書き多項式と同様に、実質的に除算を行う必要がない。つまり、剰余算はデジタルコンピュータ上では無視できるという一筆書き多項式の優れた点が維持されている。
n個の更新式を並列に演算することで、すなわち、各演算器130-1,・・・,130-nが並列に演算することで、変数の数が増加しても演算時間の増加を抑えることができる。
係数ck,lの値として、2の冪乗のものを選択すると、更新式中では乗算として表現されているck,lxk,lを、変数xk,lのビットシフト操作で実現できるため、より高速化が可能である。また、係数ck,lの値としては、上記の条件を満たす限り、様々な値を採用できる。したがって、乱数発生装置としての設計の自由度が高くなる。
評価は、図1の乱数発生装置における演算部130が上記のn個の更新式を演算するようにコンピュータを機能させるプログラムを、コンピュータに実行させて行った。乱数発生装置として機能させたコンピュータのプロセッサは、1.3GHz Intel Core i5である。なお、評価は、n個の更新式の演算を並列化せずに行った。
評価において、生成部110は、演算部130が出力した変数x1,x2,x3,x4,x5,x6の排他的論理和をとり、その結果を、48ビット右シフトさせた16ビットの値(出力系列)を評価系列として生成する。すなわち、生成部110は、以下の演算を行う。
乱数性の評価は、以下を1セットとして40セット行った。
1.x1,x2,x3,x4,x5,x6,a1,a2,a3,a4,a5,a6,b1,b2,b3,b4,b5,b6の値をランダムに決める。
2.「1.」で決めた値をセットした乱数発生装置を実行させ、生成された評価系列から109ビットの乱数を生成する。
3.得られた乱数109ビットの乱数を、106ビットの乱数1000本とする。1000本の乱数を、米国商務省標準技術局(NIST) SP 800-22で定義される乱数検定にかける。
1.x1,x2,x3,x4,x5,x6,a1,a2,a3,a4,a5,a6,b1,b2,b3,b4,b5,b6の値をランダムに決める。
2.「1.」で決めた値をセットした乱数発生装置を実行させ、生成された評価系列から109ビットの乱数を生成する。
3.得られた乱数109ビットの乱数を、106ビットの乱数1000本とする。1000本の乱数を、米国商務省標準技術局(NIST) SP 800-22で定義される乱数検定にかける。
NIST SP 800-22は、188項目のテストで構成されている。188項目すべてについて合格したのは、40セット中26セットであった。理想的な乱数の場合に、188項目すべてをクリアするセット数の理論値は、標準偏差の範囲で、40セット中21セットから27セットである。また、すべての項目に合格しなかった14セットについても、理想的な乱数が十分にとり得る成績である。よって、乱数性に関し良好な結果が得られていることがわかる。
また、評価では、3Gbps以上の実行速度が得られており、実行速度の観点からも良好な結果が得られた。
なお、第2例中の”+”も、算術和演算である必要はなく、排他的論理和演算であってもよい。また、複数の”+”に対応する演算として、算術和演算と排他的論理和演算とが混在してもよい。算術和演算と排他的論理和演算とが混在する場合には、両演算の優先順位を適宜決めればよい。
更新式の第2例は、第1例を包含する形式で定義されている。つまり、全係数ci,j,k,lのうち、添え字jが0かつ添え字lが1(他の添え字i,kは、0でもよいし0でなくてよい)である係数ci,0,k,1以外のものすべてを0にすると、
となり、第1例に対応する。
第2例においても、各変数x1,・・・,xNの更新式は、一筆書き周期性を有する。第2例においても、各更新式の右辺は、”mod 2w”の部分と、”mod 2w”以外の部分である更新式本体と、を有する。第2例でも、更新式本体は、対象変数の置換多項式(一筆書き多項式)と、付加多項式としての和として表されるが、第2例では、付加多項式が含まれていなくても良い。第2例では、置換多項式の係数部分(対象変数に乗じられる部分)が、対象変数以外の他の変数を含む多項式で表される。
例えば、変数x1の更新式は、”mod264”以外の更新式本体G1を有している。更新式本体G1において、対象変数x1のための一筆書き多項式に相当するのは、”2{x1
(t)}2+{4x3
(t)+3}x1
(t)+1”の部分であり、付加多項式に相当するのが、”4x2
(t)”の部分である。更新式本体G1の付加多項式は、他の変数としてx2
(t)を有する。
更新式本体G1の一筆書き多項式においては、x1
(t)の係数が、定数ではなく、他の変数x3
(t)を含んでいる。したがって、一筆書き多項式の係数が時間的に変化し、更新式の時間発展が、第1例よりも複雑になる。他の変数x2~x8の更新式についても同様である。
また、第2例は、第1例を包含しており、第1例と同様の有用性が得られる。さらに、第2例では、置換多項式(一筆書き多項式)の係数部分を他の変数によって変化させることができるため、係数部分が、時間的に値が変化しない定数を含んでいてもその値は小さくてよい。したがって、値が変化しない定数に大きなメモリを割り当てなくても良くなり、メモリ効率が向上する。
[3.5 更新式の第2例の評価]
更新式の第2例の乱数性の評価を、上記の具体例として示したn個の更新式を用いて行った。
更新式の第2例の乱数性の評価を、上記の具体例として示したn個の更新式を用いて行った。
評価の方法は、第1例の評価方法とほぼ同様である。第2例では、52セットについて評価した。また、第2例では、各変数が64ビットであり、各変数の上位32ビットを出力系列生成に用いた。
第2例の場合、実行速度の最高値は、4936.824780Mpbsとなり、暗号化速度に換算すると、2.16cycle/Byteとなり、非常に高い速度が得られている。
第2例の場合、NIST SP 800-22で定義される乱数検定の結果は、52セット中、40セットが、188項目すべてについて合格した。第2例においても良好な乱数性が確認された。
本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。
100 乱数発生装置
110 生成器
120 記憶部
130 演算部
110 生成器
120 記憶部
130 演算部
Claims (6)
- 複数の変数を記憶する記憶部と、
複数の前記変数それぞれを更新する複数の更新式の演算を実行し、複数の前記変数の更新値を前記記憶部へ出力する演算部と、
複数の前記変数の少なくともいずれか一つの変数に基づいて、乱数を生成する生成器と、
を備え、
前記更新式は、
前記更新式によって更新される対象変数の置換多項式と、複数の前記変数に含まれる前記対象変数以外の他の変数と、を含み、
前記更新式によって前記対象変数を繰り返し更新したときの周期性が、一筆書き周期性である
乱数発生装置。 - 前記更新式は、前記対象変数の前記置換多項式と、前記他の変数と、の和を含む
請求項1記載の乱数発生装置。 - 前記対象変数の前記置換多項式は、前記対象変数に乗じられる係数部分であって、多項式で表される前記係数部分を含み、前記他の変数は、前記係数部分に含まれる
請求項1又は2に記載の乱数発生装置。 - 前記置換多項式は、一筆書き多項式である
請求項1~3のいずれか1項に記載の乱数発生装置。 - 演算部が、記憶部に記憶された複数の変数それぞれを更新する複数の更新式の演算を実行すること、
前記演算部が、複数の前記変数の更新値を記憶部へ出力すること、
生成器が、複数の前記変数の少なくともいずれか一つの変数に基づいて、乱数を生成すること、
を含み、
前記更新式は、
前記更新式によって更新される対象変数の置換多項式と、複数の前記変数に含まれる前記対象変数以外の他の変数と、を含み、
前記更新式によって前記対象変数を繰り返し更新したときの周期性が、一筆書き周期性である
乱数発生方法。 - コンピュータを、
複数の変数を記憶する記憶部、
複数の前記変数それぞれを更新する複数の更新式の演算を実行し、複数の前記変数の更新値を前記記憶部へ出力する演算部、及び
複数の前記変数の少なくともいずれか一つの変数に基づいて、乱数を生成する生成器
として機能させるためのコンピュータプログラムであって、
前記更新式は、
前記更新式によって更新される対象変数の置換多項式と、複数の前記変数に含まれる前記対象変数以外の他の変数と、を含み、
前記更新式によって前記対象変数を繰り返し更新したときの周期性が、一筆書き周期性である
コンピュータプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018503400A JP6851085B2 (ja) | 2016-03-03 | 2017-03-02 | 乱数発生装置、乱数発生方法及びコンピュータプログラム |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016041564 | 2016-03-03 | ||
| JP2016-041564 | 2016-03-03 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2017150672A1 true WO2017150672A1 (ja) | 2017-09-08 |
Family
ID=59743078
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2017/008294 Ceased WO2017150672A1 (ja) | 2016-03-03 | 2017-03-02 | 乱数発生装置、乱数発生方法及びコンピュータプログラム |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP6851085B2 (ja) |
| WO (1) | WO2017150672A1 (ja) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002099408A (ja) * | 2000-09-21 | 2002-04-05 | Hitachi Kokusai Electric Inc | 複数の生成多項式を用いた乱数生成装置 |
| JP2005107910A (ja) * | 2003-09-30 | 2005-04-21 | National Institute Of Information & Communication Technology | 乱数発生装置、乱数発生方法およびプログラム |
| WO2005073842A1 (ja) * | 2004-01-30 | 2005-08-11 | Victor Company Of Japan, Limited | 擬似乱数生成装置および擬似乱数生成プログラム |
-
2017
- 2017-03-02 JP JP2018503400A patent/JP6851085B2/ja active Active
- 2017-03-02 WO PCT/JP2017/008294 patent/WO2017150672A1/ja not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002099408A (ja) * | 2000-09-21 | 2002-04-05 | Hitachi Kokusai Electric Inc | 複数の生成多項式を用いた乱数生成装置 |
| JP2005107910A (ja) * | 2003-09-30 | 2005-04-21 | National Institute Of Information & Communication Technology | 乱数発生装置、乱数発生方法およびプログラム |
| WO2005073842A1 (ja) * | 2004-01-30 | 2005-08-11 | Victor Company Of Japan, Limited | 擬似乱数生成装置および擬似乱数生成プログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2017150672A1 (ja) | 2018-12-27 |
| JP6851085B2 (ja) | 2021-03-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Hutter et al. | Fast multi-precision multiplication for public-key cryptography on embedded microprocessors | |
| Nguyen et al. | Fast NEON-based multiplication for lattice-based NIST post-quantum cryptography finalists | |
| JP2005209095A (ja) | 多倍長データ積和演算処理回路及びモンゴメリ積和剰余演算回路 | |
| KR20200134281A (ko) | 추계학적 반올림 로직 | |
| Itabashi et al. | Efficient modular polynomial multiplier for ntt accelerator of crystals-kyber | |
| Jalali et al. | NEON SIKE: Supersingular isogeny key encapsulation on ARMv7 | |
| Reddy et al. | Mnhoka-ppa efficient m-term non-homogeneous hybrid overlap-free karatsuba multiplier for gf (2 n) polynomial multiplier | |
| JP5193358B2 (ja) | 多項式データ処理演算 | |
| US10387492B2 (en) | Information processing system, information processing method, and program | |
| Keliris et al. | Investigating large integer arithmetic on Intel Xeon Phi SIMD extensions | |
| JP5147085B2 (ja) | 演算方法及び演算装置 | |
| JP6851085B2 (ja) | 乱数発生装置、乱数発生方法及びコンピュータプログラム | |
| JP5794385B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
| JP6057725B2 (ja) | 情報処理装置 | |
| Vassalos et al. | Residue-to-Binary Converter for the New RNS Moduli Set $\{2^{2n}-2,\2^{n}-1,\2^{n}+ 1\} $ | |
| JP4177125B2 (ja) | 演算装置及び演算装置の演算方法 | |
| Bhattacharyya et al. | Polynomial hashing over prime order fields | |
| Liu et al. | Multiprecision multiplication on armv8 | |
| JP2015114434A (ja) | ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム | |
| Rodríguez-Henríquez et al. | A parallel version of the Itoh-Tsujii multiplicative inversion algorithm | |
| Neves et al. | Engineering nonlinear pseudorandom number generators | |
| Tao et al. | Cognizant resource balancing in montgomery modular multiplication optimization for dsp | |
| JP2007503036A (ja) | モジュラ乗算を行うための方法、および2nビットの数を使用してユークリッド乗算を行うための方法 | |
| Adriaans | A simple information theoretical proof of the Fueter-P\'olya Conjecture | |
| Nguyen et al. | Cryptography Finalists |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 2018503400 Country of ref document: JP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17760135 Country of ref document: EP Kind code of ref document: A1 |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 17760135 Country of ref document: EP Kind code of ref document: A1 |







