(19)
(11)EP 3 232 319 B1

(12)EUROPEAN PATENT SPECIFICATION

(45)Mention of the grant of the patent:
07.10.2020 Bulletin 2020/41

(21)Application number: 16737363.8

(22)Date of filing:  13.01.2016
(51)International Patent Classification (IPC): 
G06F 7/58(2006.01)
G09C 1/00(2006.01)
(86)International application number:
PCT/JP2016/050803
(87)International publication number:
WO 2016/114292 (21.07.2016 Gazette  2016/29)

(54)

RANDOM NUMBER GENERATION APPARATUS, RANDOM NUMBER GENERATION METHOD AND PROGRAM

ZUFALLSZAHLENERZEUGUNGSVORRICHTUNG, ZUFALLSZAHLENERZEUGUNGSVERFAHREN UND PROGRAMM

DISPOSITIF DE GÉNÉRATION DE NOMBRES ALÉATOIRES, PROCÉDÉ DE GÉNÉRATION DE NOMBRES ALÉATOIRES ET PROGRAMME


(84)Designated Contracting States:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

(30)Priority: 14.01.2015 JP 2015004886

(43)Date of publication of application:
18.10.2017 Bulletin 2017/42

(73)Proprietor: Nippon Telegraph and Telephone Corporation
Tokyo 100-8116 (JP)

(72)Inventor:
  • IKARASHI, Dai
    Musashino-shi, Tokyo 180-8585 (JP)

(74)Representative: MERH-IP Matias Erny Reichl Hoffmann Patentanwälte PartG mbB 
Paul-Heyse-Strasse 29
80336 München
80336 München (DE)


(56)References cited: : 
JP-A- S54 107 640
JP-A- 2000 122 851
JP-A- 2004 038 020
US-B1- 6 298 360
JP-A- S58 181 350
JP-A- 2000 122 851
US-A1- 2006 040 731
  
  • Sakanobe Kazunori: "INFORMATION RANDOMIZING METHOD AND STORAGE MEDIUM RECORDING PROGRAM OF THE METHOD" In: "INFORMATION RANDOMIZING METHOD AND STORAGE MEDIUM RECORDING PROGRAM OF THE METHOD", 28 April 2000 (2000-04-28), XP055490161, pages 1-10, * paragraph [0014] - paragraph [0025] *
  
Note: Within nine months from the publication of the mention of the grant of the European patent, any person may give notice to the European Patent Office of opposition to the European patent granted. Notice of opposition shall be filed in a written reasoned statement. It shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention).


Description

[TECHNICAL FIELD]



[0001] The present invention relates to a random number generation technique, and in particular to a technique for generating a random number belonging to a predetermined set.

[BACKGROUND ART]



[0002] There is a random number generation method in which n random bits are generated, a decimal representation value "a" corresponding to a binary representation value with the n random bits as values of its digits is compared to "p-1" in magnitude, the process is performed again if a>p-1 is satisfied, and, otherwise, "a" is adopted as a random number (see, for example, Non-patent literature 1). When "p" is a prime number, a random number on a prime field can be generated.

[0003] In Patent literature 1, positive original integer data x that varies within a predetermined range is input, positive random integer data randomly selected within a range of which the upper limit is equal to or larger than the maximum value of the original integer data is obtained, and a random integer is obtained by a logical product operation between the original integer data and the random integer data. In one example, the original integer data x is "11101010", which includes Mersenne numbers "111" and "1".

[PRIOR ART LITERATURE]


[NON-PATENT LITERATURE]



[0004] Non-patent literature 1: Buchmann, Johannes A., "Introduction to Cryptography - Cryptographic Algorithm, Signature and Authentication, and Mathematical Foundation Thereof', Springer-Verlag, July 2001, P114.

[PATENT LITERATURE]



[0005] Patent literature 1: JP 2000 122851 A

[SUMMARY OF THE INVENTION]


[PROBLEMS TO BE SOLVED BY THE INVENTION]



[0006] In the method described above, when the number of elements of p represented by a binary number is small for n, the random number generation probability extremely decreases, and the random number generation speed decreases.

[0007] A theme of the present invention is to generate a random number belonging to a predetermined set at a high speed.

[MEANS TO SOLVE THE PROBLEMS]



[0008] In view of the above problems, the present invention provides random number generation apparatus and methods having the features of the respective independent claims. Preferred embodiments are described in the dependent claims.

[0009] In one example, a first sequence that comprises values of digits of a random number represented by a binary number as elements is obtained, and a third sequence is obtained which is results of elementwise logical product operation between the first sequence and a second sequence that comprises values of digits of one or more Mersenne numbers represented by one or more binary numbers and a zero value as elements.

[0010] The invention is defined by the appended claims.

[EFFECTS OF THE INVENTION]



[0011] Thereby, it is possible to generate a random number belonging to a predetermined set at a high speed.

[BRIEF DESCRIPTION OF THE DRAWINGS]



[0012] 

Fig. 1 is a block diagram illustrating a functional configuration of a random generation apparatus of embodiments;

Fig. 2A is a flow diagram illustrating a random generation method of the embodiments;

Fig. 2B is a flow diagram illustrating an equality determination process; and

Figs. 3A to 3C are diagrams illustrating first to third sequences of the embodiments.


[DETAILED DESCRIPTION OF THE EMBODIMENTS]



[0013] Embodiments of the present invention will be described below.

<Outline>



[0014] In the embodiments, a random number belonging to a predetermined set is generated as described below. First, a "first sequence" which comprises values of digits of a random number represented by a binary number (a binary random number) as elements is obtained (a random number acquiring step). This random number may be a uniform random number or may not be a uniform random number. The concept of a "random number" includes a genuine random number and a pseudo-random number. The random number may be generated in advance or may be generated when the "first sequence" is obtained. The "first sequence" may comprise only the values of the digits of the random number represented by a binary number as elements or may furthermore comprise other elements. Next, a "third sequence", which is results of elementwise logical product operation (elementwise AND operation results, for example, bit AND operation results) between the "first sequence" and a "second sequence, is obtained (a logical product operation step). Here, the "second sequence" is a sequence which comprises values of digits of one or more Mersenne numbers pi (i=0,...,N-1; N is an integer of 1 or more) represented by one or more binary numbers, and zero values as elements. The number of elements of the "second sequence" is, for example, the same as the number of elements of the "first sequence". The "second sequence" may comprise only the values of the digits of the Mersenne number(s) pi and the zero values as the elements or may furthermore comprise other elements (for example, a fixed value, attribute information and the like). The Mersenne number pi is an integer which satisfies 2n(i)-1, and the Mersenne number pi represented by a binary number is a sequence 1 ... 1 which is constituted by n(i) 1's. Here, n(i) is a particular positive integer. An example of pi is a Mersenne prime. For example, at the time of n(i)=2,3,5,7,13,17,19,31,61 or the like, pi is a Mersenne prime. The "third sequence" is a sequence obtained by masking the "first sequence" with the "second sequence" and is a sequence which comprises a random number ti with n(i) digits represented by a binary number. The random number ti can be treated as a random number on a factor ring (a residue class) modulo the Mersenne number pi. Especially, when pi is a Mersenne prime, the random number ti can be treated as a random number on a residue field (a prime field) modulo the Mersenne number pi. On the factor ring modulo the Mersenne number pi, pi=2n(i)-1 and 0 are the same value (2n(i)-1 mod(2n(i)-1)=0), and N random numbers ti (i=0,...,N-1) comprised in the "third sequence" can be "necessarily" treated as random numbers on the factor ring modulo the Mersenne number pi. Therefore, it is possible to generate a random number on a factor ring at a higher speed in comparison with prior arts in which the random number generation probability decreases depending on an environment.

[0015] However, since pi and 0 are treated as the same value on the factor ring modulo pi (0 is an equivalence class of pi), the random number ti is not necessarily a uniform random number. That is, when the random number represented by the "first sequence" is a uniform random number, each of the probabilities of ti being 0,1,...,pi is 1/2n(i), and the probability of ti being pi or 0 is 1/2n(i)-1. Therefore, on the factor ring described above, the generation probability of 0 (in other words, the generation probability of pi) is 1/2n(i)-1, and the generation probabilities of other random numbers are 1/2n(i). In order to obtain a uniform random number on the factor ring, it is only necessary to discard a generated random number and perform the random number acquiring step and the logical product operation step again when ti=pi is satisfied. In other words, the processes of the random number acquiring step and the logical product operation step can be executed again when the "first sequence" comprises a "first subsequence", a "second subsequence" comprised in the "second sequence" indicates any Mersenne number pi, the "third sequence" comprises a "third subsequence" which is results of elementwise logical product operation between the "first subsequence" and the "second subsequence", and the "second subsequence" matches the "third subsequence". In such a configuration also, the probability of ti=pi being satisfied (the probability of the "second subsequence" and the "third subsequence" matching each other) is only about 1/2n(i)-1, and it is possible to generate a uniform random number on a factor ring at a high speed.

[0016] Otherwise, the random number acquiring step and the logical product operation step may be performed again when ti=0 is satisfied. In other words, the processes of the random number acquiring step and the logical product operation step may be executed again when elements of the "third subsequence" are constituted by zeros (when the "third subsequence" is a zero vector). Thereby, it is also possible to generate a uniform random number on a factor ring at a high speed.

[0017] Further, when it is assumed that N is an integer of 2 or more and that the "second sequence" is a sequence which comprises values of digits of a plurality of Mersenne numbers pi represented by binary numbers, and zero values as elements, a plurality of random numbers on factor rings can be generated by parallel processes, and random number generation at a higher speed becomes possible. The numbers of digits (bit lengths) n(i) of the Mersenne numbers pi represented by binary numbers may be mutually the same or may not be the same.

[0018] In the case of generating uniform random numbers on a factor ring by such parallel processes, it is possible to (1) simultaneously determine whether ti=pi is satisfied or not for i=0,...,N-1 by a batch equality determination, (2) obtain an aggregate determination result x indicating, for any i, whether ti=pi is satisfied or not by a sum operation or a product operation of the equality determination results xi (i=0,...,N-1), and (3) perform the random number acquiring step and the logical product operation step again when the aggregate determination result x indicates, for any i, that ti=pi is satisfied. In other words, (1) each of the equality determination results xi (i=0,...,N-1) indicating whether or not a plurality of "second subsequences" match a plurality of "third subsequences", respectively, is obtained by the batch determination of equality, (2) an aggregate determination result x indicating whether any "second subsequence" and "third subsequence" match each other or not is obtained by a sum operation or a product operation of the plurality of equality determination results xi, and (3) when the aggregate determination result x indicates that any "second subsequence" and "third subsequence" match each other, the random number acquiring step and the logical product operation step may be executed again. Here, the "first sequence" comprises a plurality of "first subsequences"; the plurality of "second subsequences" comprised in the "second sequence" indicate values of digits of the respective Mersenne numbers pi; the "third sequence" comprises the plurality of "third subsequences"; and the plurality of "third subsequences" are results ti of elementwise logical product operation between the respective "first subsequences" and the respective "second subsequences". Here, the operation amounts of the batch determination of equality, the sum operation and the production operation are small. Further, as described above, the probability of ti=pi being satisfied is about 1/2n(i)-1, and the probability of ti=pi being satisfied for any i is low. Therefore, it is possible to generate a uniform random number on a factor ring at a higher speed.

[0019] Otherwise, (4) determinations about whether ti=0 is satisfied or not are simultaneously performed for i=0,...,N-1 by a batch determination of equality, (5) an aggregate determination result x indicating, for any i, whether ti=0 is satisfied or not is obtained by a sum operation or a product operation of equality determination results xi (i=0,...,N-1) of the batch determination of equality, and (6) when the aggregate equality determination result x indicates that ti=0 is satisfied for any i, the random number acquiring step and the logical product operation step may performed again. In other words, (4) each of the plurality of equality determination results xi (i=0,...,N-1) indicating whether elements of each of the plurality of "third subsequences" are constituted by zeros or not is obtained by the batch determination of equality, (5) the aggregate determination result x indicating whether elements of any "third subsequence" are constituted by zeros or not is obtained by a sum operation or a product operation of the plurality of the equality determination results xi, and (6) when the aggregate determination result x indicates that elements of any "third subsequence" are constituted by zeros, the processes of the random number acquiring step and the logical product operation step may be executed again. In this case also, it is possible to generate a uniform random number on a factor ring at a high speed.

[FIRST EMBODIMENT]



[0020] Next, a first embodiment will be described. In the present embodiment, description will be made on a case where pi is a Mersenne prime.

<Configuration>



[0021] As illustrated in Fig. 1, a random number generation apparatus 1 of the present embodiment has a binary random number generator 11, storage 12, an inputting unit 13, a mask generator 14, a random number acquiring unit 15, a logical product arithmetic unit 16 and an outputting unit 18. The random number generation apparatus 1 is, for example, an apparatus configured by a general-purpose or dedicated computer provided with a processor (a hardware processor) such as a CPU (central processing unit), memories such as a RAM (random-access memory) and a ROM (read-only memory), and the like executing a predetermined program. The computer may be provided with one processor and one memory or may be provided with a plurality of processors and a plurality of memories. The program may be installed in the computer or may be recorded in the ROM or the like in advance. Further, a part or all of the processing units may be configured with the use of an electronic circuit (a circuitry) which realizes processing functions without using a program, instead of an electronic circuit which realizes a functional configuration by a program being read like a CPU. Further, the electronic circuit constituting one apparatus may comprise a plurality of CPUs.

<Process>



[0022] In the present embodiment, each of the "first sequence", "second sequence" and "third sequence" is treated as a vector constituted by L elements, and it is assumed that the random number generation apparatus 1 performs an operation with n-bit precision. Here, L is a positive integer larger than the total number of elements n(0)+...+n(N-1) of Mersenne primes p0,...,pN-1 represented by binary numbers. Here, L may be a constant or may be specified according to inputted Mersenne primes p0,...,pN-1. When an assumed magnitude of the Mersenne primes p0,...,pN-1 is specified in advance, L can be a constant.

[0023] As illustrated in Fig. 2A, information identifying Mersenne primes p0,...,pN-1 is inputted to the inputting unit 13 first. An example of this information is the Mersenne primes p0,...,pN-1 themselves, n(0),...,n(N-1) or the like. The information identifying the Mersenne primes p0,...,pN-1 is sent to the mask generator 14 (step S13).

[0024] The mask generator 14 obtains and outputs a vector M ∈ {0,1}L (the second sequence), the vector M being constituted by L elements including values of digits of the Mersenne primes p0,...,pN-1 represented by binary numbers and a zero value (zero values). Figs. 3A to 3C show specific examples of the vector M. The example of Fig. 3A is an example of n(0)=...=n(N-1)=7. In the vector M of this example, the top z elements (z=L-(n(0)+...+n(N-1))) are 0, and all the remaining elements are 1. In other words, following the top subsequence zero constituted by z 0's, the Mersenne primes pN-1,...,p0 represented by binary numbers are arranged. The example of Fig. 3B is also an example of n(0)=...=n(N-1)=7. In this example, however, one Mersenne prime pi (i=N-1,...,0) represented by a binary number is arranged following one element zero of 0, and 0's and Mersenne primes pi represented by binary numbers are alternately arranged. In Fig. 3C, following the top subsequence zero constituted by z 0's, the Mersenne primes pN-1,...,p0 represented by binary numbers are arranged. Here, all the Mersenne pN-1,...,p0 are not the same. Likewise, in the example of Fig. 3B, all the Mersenne pN-1,...,p0 may not be the same. The generated vector M is sent to the logical product arithmetic unit 16 (step S14).

[0025] The random number acquiring unit 15 determines whether a binary random number vector r ∈ {0,1}L (the first sequence) remains in the storage 12, the binary random number vector r being an L-bit binary random number vector constituted by L elements (step S12). If the binary random number vector r remains, the random number acquiring unit 15 reads the binary random number vector r from the storage 12 and outputs it (step S15). The read binary random number vector r is deleted from the storage 12. On the other hand, if the binary random number vector r does not remain, the binary random number generator 11 generates an L-bit binary random number vector r ∈ {0,1}L and stores it into the storage 12, and the random number acquiring unit 15 reads the binary random number vector r from the storage 12 and outputs it (step S15). It is desirable that the binary random number generator 11 generates a plurality of binary random number vectors r by parallel processes and stores them into the storage 12 to speed up processing. The outputted binary random number vectors r are sent to the logical product arithmetic unit 16.

[0026] The logical product arithmetic unit 16 performs elementwise logical product operations (bit AND operations) between the binary random number vector r and the vector M to obtain and output a vector t ∈ {0,1}L (the third sequence) which is a result of the operation. When the j-th element of the vector M (j=0,...,L-1) is 0, the j-th element of the vector t is 0. When the j-th element of the vector M is 1, the j-th element of the vector t is the j-th element of the binary random number vector r. That is, the vector t is a vector obtained by masking the binary random number vector r with the vector M. An element sequence (a subsequence) of the vector t corresponding to an element sequence of a Mersenne prime pi represented by a binary number, which is comprised in the vector M, is represented by a subsequence ti. For example, when the Mersenne prime pi represented by a binary number is an element sequence of the j1-th element to the j2-th element of the vector M, the subsequence ti is an element sequence of the j1-th element to the j2-th element of the vector t. For example, in the case of the example of Fig. 3A, the top z elements of the binary random number vector r is a subsequence rN constituted by (rN,Z-1,...,rN,0) ∈ {0,1}z. However, since all the top z elements of the vector M are 0, all the top z elements of the vector t are also 0. Since all the subsequent elements of the vector M are 1, the subsequent subsequences tN-1,...,t0 (ti is a subsequence constituted by ti,6,...,ti,0 ∈ {0,1}7) of the vector t are subsequences rN-1,...,r0 (ri is a subsequence constituted by ri,6,...,ri,0 ∈ {0,1}7) of the binary random number vector r. For example, in the case of the example of Fig. 3B, the binary random number vector r is constituted by subsequences rN-1,...,r0 (ri is a subsequence constituted by ri,7,...,ri,0 ∈ {0,1}7). Since the vector M has N subsequences of 01111111 constituted by 0 and 1111111, the subsequences tN-1,...,t0 (ti is a subsequence constituted by ti,6,...,ti,0 ∈ {0,1}7) of the vector t are the subsequences rN-1,...,r0 (ri is a subsequence constituted by ri,6,...,ri,0 ∈ {0,1}7) of the binary random number vector r. For example, in the example of Fig. 3C, all the top z elements of the vector M are 0, and all the remaining elements are 1. Therefore, all the top z elements of the vector t are 0, and the subsequent subsequences tN-1,...,t0 are the subsequences rN-1,...,r0 of the binary random number vector r. The obtained vector t is sent to the outputting unit 18 (step S16).

[0027] The outputting unit 18 may output the vector t as it is or may output only the subsequences tN-1,...,t0 comprised in the vector t. Each subsequence ti (i=0,...,N-1) is treated as a random number on a residue field (a prime field) modulo the Mersenne prime pi (step S18). If a random number on the prime field is further required, the process from steps S13 to S18 or the process of S11 to S18 can be repeated.

<Characteristics of the present embodiment>



[0028] In the case of generating a random number on a prime field by a magnitude comparison between values represented by a binary random number vector r and a prime number p as done conventionally, if the number of elements of p represented by a binary number is small for the number of elements L of the binary random number vector r, the probability of random number generation on the prime field extremely decreases, and the random number generation speed decreases. For example, when the binary random number vector r indicates a uniform random number, and the number of elements of p represented by a binary number is L-1, the probability of random number generation on the prime field is 50% when p is a Mersenne prime and is below 50% when p is a prime number other than a Mersenne prime. This success probability decreases more when parallel processes are performed. For example, if it is attempted to generate 1000 prime numbers in parallel when the success probability is about 50%, the failure probability is about 99.9%, and the performance extremely decreases with only little success.

[0029] In comparison, since it is possible to certainly generate a random number on a prime field in the present embodiment, it is possible to generate a random number on a prime field at a high speed. Furthermore, the success probability does not decrease even if random number generation is performed by performing elementwise logical production operations (N≥2) simultaneously in parallel. Therefore, random numbers on prime fields can be generated at a higher speed by such parallel processes. Further, a lot of computers can perform bit AND operations (elementwise logical product operations) in parallel at a high speed and can efficiently implement the method of the present embodiment. Furthermore, the bit AND operation of the present embodiment can be executed by an L-bit register and can reduce the storage capacity in comparison with a method performing magnitude comparison such as a conventional one.

[SECOND EMBODIMENT]



[0030] In the present embodiment, a uniform random number on a prime field is generated. Description will be made below mainly on points different from the matters described so far. As for the matters already described, the same reference numerals for the matters will be used, and description thereof will be omitted.

<Configuration>



[0031] As illustrated in Fig. 1, a random number generation apparatus 2 of the present embodiment has a binary random number generator 11, storage 12, an inputting unit 13, a mask generator 14, a random number acquiring unit 15, a logical product arithmetic unit 16, a determiner 27 and an outputting unit 18. The random number generation apparatus 2 may be configured, for example, by a predetermined program being read into the computer described above, or at least a part of components of the random number generation apparatus 2 may be configured only by hardware.

<Process>



[0032] The process of steps S11 to S16 is the same as that of the first embodiment. In the second embodiment, however, the Mersenne primes pi inputted to the inputting unit 13 and the vector t obtained at step S16 are inputted to the determiner 27. The determiner 27 determines whether any subsequence ti comprised in the vector t matches the Mersenne prime pi (i=0,...,N-1) (an equality determination) (step S27). If ti=pi is satisfied for any of i=0,...,N-1, the determiner 27 discards the vector t (t is rejected) and returns the process to step S12. On the other hand, ti≠pi is satisfied for all of i=0,...,N-1, the vector t is outputted to the outputting unit 18 (t is accepted). The subsequent process is the same as that of the first embodiment.

[0033] Though the determination of equality at step S27 may be performed independently for each i, batch processing may be performed as illustrated in Fig. 2B. In the example of Fig. 2B, a batch equality determiner of the determiner 27 simultaneously determines whether ti=pi is satisfied or not for all of i=0,...,N-1 (a batch determination of equality) to obtain a sequence of equality determination results xi. Here, xi=2k-1 is satisfied in the case of ti=pi, and xi=0 is satisfied in the case of ti≠pi; and k is a positive integer and satisfies 0<k×N≤L (step S271). Next, an aggregate arithmetic unit of the determiner 27 performs an aggregate OR operation (a sum operation) of the equality determination results xi (i=0,...,N-1) to obtain an aggregate determination result x which is a result of the operation. Here, when any equality determination result xi (i=0,...,N-1) is 2k-1 (when any equality determination result xi is not 0), x=2k'-1 is satisfied; and, when all the equality determination results xi (i=0,...,N-1) are 0, x=0 is satisfied. Here, k' is a positive integer and satisfies 0<k'≤L. Here, k=k' may be satisfied, or k≠k' may be satisfied (step S272). After that, the aggregate determiner of the determiner 27 determines whether x=0 is satisfied or not (step S273). Here, if x=2k-1 is satisfied, the aggregate determiner discards the vector t (t is rejected) (step S274) and returns the process to step S12. On the other hand, if x=0 is satisfied, the aggregate determiner sends the vector t to the outputting unit 18 (t is accepted) (step S275).

[0034] In addition, the batch equality determiner may set xi=0 when ti=pi is satisfied and set xi=2k-1 when ti≠pi is satisfied, and the aggregate arithmetic unit may perform an aggregate AND operation (a product operation) of xi (i=0,...,N-1) to obtain an aggregate determination result x which is a result of the operation. Here, when any equality determination result xi (i=0,...,N-1) is 0, x=0 is satisfied; and, when all the equality determination results xi (i=0,...,N-1) are 2k-1, x=2k'-1 is satisfied. In this case, if x=0 is satisfied, the aggregate determiner discards the vector t (t is rejected) and returns the process to step S12. On the other hand, if x=2k-1 is satisfied, the aggregate determiner sends the vector t to the outputting unit 18 (t is accepted).

<Characteristics of the present embodiment>



[0035] As described before, if the binary random number vector r indicates a uniform random number, each subsequence ti is a uniform random number on a residue field (a prime field) modulo the Mersenne prime pi. The probability of ti=pi being satisfied is about 1/2n(i)-1, and the probability of success is high irrespective of the magnitude of L. Since random number generation almost certainly succeeds in the present embodiment also, the success probability does not decrease almost at all even if the determination of equality for the subsequence ti (i=0,...,N-1) are simultaneously performed in parallel, and the probability of rejection at step S27 is low. For example, when p=261-1 (that is, n(i)=61) is satisfied, the probability of failure in simultaneous generation in parallel of 1000 is 1/251 which is sufficiently low, and overhead of redoing is extremely small. Therefore, by performing batch processing of the equality determination of step S27 as described above, it is possible to obtain a uniform random number on a prime field at a higher speed. That is, operation cost of the batch determination of equality and aggregate OR operation (or aggregate AND operation) described above is low. For example, in the case of L=256, a lot of computers can perform the processes in 1 clock. Further, a lot of current computers are provided with a branch prediction function and starts processing with a branch having more actual results, prior to performing branch calculation. Therefore, when the probability of redoing is low, the number of clocks required for conditional branch is substantially zero. Further, since the Mersenne primes p0,...,pN-1 comprised in the vector M ∈ {0,1}L, which is a mask, are identical with criteria for determination of equality, a register in which the vector M has been stored for a mask process can be used for the process of determination of equality also, and the processes can be realized with a small number of registers. Further, there is also an advantage that the determination of equality is more efficient in comparison with the magnitude comparison used in conventional systems (for the number of bits n, a circuit scale O(n)/depth O(n) or a circuit scale O(nlog n)/depth O(log n) in the case of the magnitude comparison but a circuit scale O(n)/depth O(logn) in the case of the determination of equality).

[THIRD EMBODIMENT]



[0036] In the present embodiment also, a uniform random number on a prime field is generated. Description will be made below mainly on points different from the matters described so far. As for the matters already described, the same reference numerals for the matters will be used, and description thereof will be omitted.

<Configuration>



[0037] As illustrated in Fig. 1, a random number generation apparatus 3 of the present embodiment has a binary random number generator 11, storage 12, an inputting unit 13, a mask generator 14, a random number acquiring unit 15, a logical product arithmetic unit 16, a determiner 37 and an outputting unit 18. The random number generation apparatus 3 may be configured, for example, by a predetermined program being read into the computer described above, or at least a part of components of the random number generation apparatus 3 may be configured only by hardware.

<Process>



[0038] The process of steps S11 to S16 is the same as that of the first embodiment. In the third embodiment, however, the vector t obtained at step S16 is inputted to the determiner 37. The determiner 37 determines whether any subsequence ti comprised in the vector t is a zero vector (ti=0) or not (step S37). If ti=0 is satisfied for any of i=0,...,N-1, the determiner 37 discards the vector t (t is rejected) and returns the process to step S12. On the other hand, ti≠0 is satisfied for all of i=0,...,N-1, the vector t is outputted to the outputting unit 18 (t is accepted). The subsequent process is the same as that of the first embodiment.

[0039] Similarly to the second embodiment, though the determination of equality at step S37 may be independently performed for each i, batch processing may be performed as illustrated in Fig. 2B. In the example of Fig. 2B, a batch equality determiner of the determiner 37 simultaneously determines whether ti=0 is satisfied or not for all of i=0,...,N-1 (a batch determination of equality) to obtain a sequence of equality determination results xi. Here, xi=2k-1 is satisfied in the case of ti=0, and xi=0 is satisfied in the case of ti≠0 (step S371). The subsequent steps S272 to S275 are the same as those of the second embodiment.

[0040] In addition, the batch equality determiner may set xi}=0 when ti=0 is satisfied and set xi=2k-1 when ti≠0 is satisfied, and the aggregate arithmetic unit may perform an aggregate AND operation (a product operation) of xi (i=0,...,N-1) to obtain an aggregate determination result x which is a result of the operation. However, when any equality determination result xi (i=0,...,N-1) is 0, x=0 is satisfied; and, when all the equality determination results xi (i=0,...,N-1) are 2k-1, x=2k'-1 is satisfied. In this case, if x=0 is satisfied, the aggregate determiner discards the vector t (t is rejected) and returns the process to step S12. On the other hand, if x=2k-1 is satisfied, the aggregate determiner sends the vector t to the outputting unit 18 (t is accepted).

<Characteristics of the present embodiment>



[0041] In the present embodiment also, it is possible to generate a uniform random number on a prime field at a high speed similarly to the second embodiment.

[Other modifications and the like]



[0042] The present invention is not limited to the embodiments described above. For example, the Mersenne primes pi may be set in a random number generation apparatus in advance. In this case, step S13 and the inputting unit 13 can be omitted. Furthermore, the vector M may be set in the random number generation apparatus in advance. In this case, step S14 and the mask generator 14 can be furthermore omitted. Further, the binary random number vector r may be stored in the storage 12 in advance. Further, Mersenne numbers which are composite numbers may be used instead of Mersenne primes. For example, all of the Mersenne numbers p0,...,pN-1 may be composite numbers or the Mersenne numbers p0,...,pN-1 may comprise prime numbers and composite numbers.

[0043] The various processes described above are not only executed in order of the description. They may be executed in parallel or individually according to processing capacity of an apparatus to execute the processes or as necessary.

[0044] In the case of realizing the configuration described above by a computer, processing content of a function which each apparatus should have is written in a program. By executing the program on the computer, the processing functions described above are realized on the computer. The program in which the processing content is written can be recorded in a computer-readable recording medium. An example of the computer-readable recording medium is a non-transitory recording medium. Examples of such a recording medium are a magnetic recording device, an optical disk, a magneto-optical recording medium, a semiconductor memory and the like.

[0045] Distribution of this program is performed, for example, by sales, transfer, lending and the like of a portable recording medium such as a DVD and a CD-ROM in which the program is recorded. Furthermore, a configuration is also possible in which the program is stored in a storage device of a server computer to distribute the program by transferring the program from the server computer to other computers via a network.

[0046] For example, a computer which executes such a program stores the program recorded in the portable recording medium or transferred from the server computer into its storage device once. At the time of executing a process, the computer reads the program stored in its recording device and executes a process in accordance with the read program. As another form of executing this program, it is also possible for the computer to read the program directly from the portable recording medium and execute the process in accordance with the program, and, furthermore, it is also possible for the computer to, each time a program is transferred to the computer from the server computer, execute a process in accordance with the received program in order. A configuration is also possible in which the program is not transferred from the server computer to the computer is not performed, but the processes described above are executed by a so-called ASP (Application Service Provider) type service for realizing a processing function only by an instruction to execute the program and acquisition of a result.

[0047] Although the processing functions of the present apparatus are realized by causing a predetermined program to be executed on a computer in the above embodiment, at least a part of the processing functions may be realized by hardware.

[INDUSTRIAL APPLICABILITY]



[0048] The present invention can be used for various cryptography techniques, for example, secret sharing, secret calculation, public key cryptography, symmetric key cryptography, digital signature and the like.

[DESCRIPTION OF REFERENCE NUMERALS]



[0049] 1-3: random number generation apparatus


Claims

1. A random number generation apparatus (1, 2, 3) comprising:

a random number acquiring unit (15) adapted to obtain a first sequence that comprises values of digits of a random number represented by a binary number as elements, the random number being a uniform random number; and

a logical product arithmetic unit (16) adapted to obtain a third sequence that is the result of an elementwise logical product operation between the first sequence and a second sequence that comprises values of digits of one or more Mersenne numbers pi represented by one or more binary numbers and a zero value as elements, each of the first sequence, the second sequence, and the third sequence being constituted by L elements,

wherein:

the first sequence comprises a first subsequence; a second subsequence comprised in the second sequence indicates any of the one or more Mersenne numbers pi;

the third sequence comprises a third subsequence that is the result of an elementwise logical product operation between the first subsequence and the second subsequence; and the processes of the random number acquiring unit and the logical product arithmetic unit are executed again when the second subsequence matches the third subsequence, otherwise the third sequence comprising one or more random numbers ti on a factor ring modulo the one or more Mersenne numbers pi is output.


 
2. A random number generation apparatus (1, 2, 3) comprising:

a random number acquiring unit (15) adapted to obtain a first sequence that comprises values of digits of a random number represented by a binary number as elements, the random number being a uniform random number; and

a logical product arithmetic unit (16) adapted to obtain a third sequence that is the result of an elementwise logical product operation between the first sequence and a second sequence that comprises values of digits of one or more Mersenne numbers pi represented by one or more binary numbers and a zero value as elements, each of the first sequence, the second sequence, and the third sequence being constituted by L elements,

wherein:

the first sequence comprises a first subsequence; a second subsequence comprised in the second sequence indicates any of the one or more Mersenne numbers pi;

the third sequence comprises a third subsequence that is the result of an elementwise logical product operation between the first subsequence and the second subsequence; and the processes of the random number acquiring unit and the logical product arithmetic unit are executed again when elements of the third subsequence are constituted by zeros, otherwise the third sequence comprising one or more random numbers ti on a factor ring modulo the one or more Mersenne numbers pi is output.


 
3. The random number generation apparatus (1, 2, 3) according to claim 1 or 2, wherein the second sequence comprises the values of the digits of the one or more Mersenne numbers pi.
 
4. A random number generation apparatus (1, 2, 3) comprising:

a random number acquiring unit (15) adapted to obtain a first sequence that comprises values of digits of a random number represented by a binary number as elements, the random number being a uniform random number; and

a logical product arithmetic unit (16) adapted to obtain a third sequence that is the result of an elementwise logical product operation between the first sequence and a second sequence that comprises values of digits of a plurality of Mersenne numbers pi represented by one or more binary numbers and a zero value as elements, wherein the second sequence comprises the values of the digits of the plurality of Mersenne numbers pi, each of the first sequence, the second sequence, and the third sequence being constituted by L elements,

wherein:

the first sequence comprises a plurality of first subsequences; a plurality of second subsequences comprised in the second sequence indicate values of digits of the respective plurality of Mersenne numbers pi; the third sequence comprises a plurality of third subsequences; and the plurality of third subsequences are results of elementwise logical product operations between the respective first subsequences and the respective second subsequences; and

the random number generation apparatus comprises a determiner (27) adapted to obtain each of a plurality of equality determination results indicating whether or not the plurality of second subsequences match the plurality of third subsequences, respectively, by a batch determination of equality; to obtain an aggregate determination result indicating whether any second subsequence and third subsequence match each other or not by a sum operation or a product operation of the plurality of equality determination results; and to cause the processes of the random number acquiring unit and the logical product arithmetic unit to be executed again when the aggregate determination result indicates that any second subsequence and third subsequence match each other, otherwise the third sequence comprising one or more random numbers ti on a factor ring modulo the plurality of Mersenne numbers pi is output.


 
5. A random number generation apparatus (1, 2, 3) comprising:

a random number acquiring unit (15) adapted to obtain a first sequence that comprises values of digits of a random number represented by a binary number as elements, the random number being a uniform random number; and

a logical product arithmetic unit (16) adapted to obtain a third sequence that is the result of an elementwise logical product operation between the first sequence and a second sequence that comprises values of digits of a plurality of Mersenne numbers pi represented by one or more binary numbers and a zero value as elements, wherein the second sequence comprises the values of the digits of the plurality of Mersenne numbers pi, each of the first sequence, the second sequence, and the third sequence being constituted by L elements,

wherein:

the first sequence comprises a plurality of first subsequences; a plurality of second subsequences comprised in the second sequence indicate values of digits of the respective plurality of Mersenne numbers pi; the third sequence comprises a plurality of third subsequences; and the plurality of third subsequences are results of elementwise logical product operations between the respective first subsequences and the respective second subsequences; and

the random number generation apparatus comprises a determiner (37) adapted to obtain each of a plurality of equality determination results indicating whether elements of each of the plurality of third subsequences are constituted by zeros or not by a batch determination of equality; to obtain an aggregate determination result indicating whether elements of any of the third subsequences are constituted by zeros or not by a sum operation or a product operation of the plurality of equality determination results; and to cause the processes of the random number acquiring unit and the logical product arithmetic unit to be executed again when the aggregate determination result indicates that elements of any of the third subsequences are constituted by zeros, otherwise the third sequence comprising one or more random numbers ti on a factor ring modulo the plurality of Mersenne numbers pi is output.


 
6. The random number generation apparatus (1, 2, 3) according to any of claims 1 to 5, wherein at least a part of the Mersenne numbers are Mersenne primes.
 
7. A random number generation method comprising:

a random number acquiring step of obtaining, by a random number acquiring unit (15), a first sequence that comprises values of digits of a random number represented by a binary number as elements, the random number being a uniform random number; and

a logical product operation step of obtaining, by a logical product arithmetic unit (16), a third sequence that is the result of an elementwise logical product operation between the first sequence and a second sequence that comprises values of digits of one or more Mersenne numbers pi represented by one or more binary numbers and a zero value as elements, each of the first sequence, the second sequence, and the third sequence being constituted by L elements,

wherein:

the first sequence comprises a first subsequence; a second subsequence comprised in the second sequence indicates any of the one or more Mersenne numbers pi;

the third sequence comprises a third subsequence that is the result of an elementwise logical product operation between the first subsequence and the second subsequence; and the random number acquiring step and the logical product operation step are executed again when the second subsequence matches the third subsequence, otherwise the third sequence comprising one or more random numbers ti on a factor ring modulo the one or more Mersenne numbers pi is output.


 
8. A random number generation method comprising:

a random number acquiring step of obtaining, by a random number acquiring unit (15), a first sequence that comprises values of digits of a random number represented by a binary number as elements, the random number being a uniform random number; and

a logical product operation step of obtaining, by a logical product arithmetic unit (16), a third sequence hat is the result of an elementwise logical product operation between the first sequence and a second sequence that comprises values of digits of one or more Mersenne numbers pi represented by one or more binary numbers and a zero value as elements, each of the first sequence, the second sequence, and the third sequence being constituted by L elements,

wherein:

the first sequence comprises a first subsequence; a second subsequence comprised in the second sequence indicates any of the one or more Mersenne numbers pi;

the third sequence comprises a third subsequence that is the result of an elementwise logical product operation between the first subsequence and the second subsequence; and the random number acquiring step and the logical product operation step are executed again when elements of the third subsequence are constituted by zeros, otherwise the third sequence comprising one or more random numbers ti on a factor ring modulo the one or more Mersenne numbers pi is output.


 
9. A random number generation method comprising:

a random number acquiring step of obtaining, by a random number acquiring unit (15), a first sequence that comprises values of digits of a random number represented by a binary number as elements, the random number being a uniform random number; and

a logical product operation step of obtaining, by a logical product arithmetic unit (16), a third sequence that is the result of an elementwise logical product operation between the first sequence and a second sequence that comprises values of digits of a plurality of Mersenne numbers pi represented by one or more binary numbers and a zero value as elements, wherein the second sequence comprises the values of the digits of the plurality of Mersenne numbers pi, each of the first sequence, the second sequence, and the third sequence being constituted by L elements,

wherein:

the first sequence comprises a plurality of first subsequences; a plurality of second subsequences comprised in the second sequence indicate values of digits of the respective plurality of Mersenne numbers pi; the third sequence comprises a plurality of third subsequences; and the plurality of third subsequences are results of elementwise logical product operations between the respective first subsequences and the respective second subsequences; and

the random number generation method comprises a determining step of obtaining each of a plurality of equality determination results indicating whether or not the plurality of second subsequences match the plurality of third subsequences, respectively, by a batch determination of equality; obtaining an aggregate determination result indicating whether any second subsequence and third subsequence match each other or not by a sum operation or a product operation of the plurality of equality determination results; and causing the random number acquiring step and the logical product operation step to be executed again when the aggregate determination result indicates that any second subsequence and third subsequence match each other, otherwise the third sequence comprising one or more random numbers ti on a factor ring modulo the plurality of Mersenne numbers pi is output.


 
10. A random number generation method comprising:

a random number acquiring step of obtaining, by a random number acquiring unit (15), a first sequence that comprises values of digits of a random number represented by a binary number as elements, the random number being a uniform random number; and

a logical product operation step of obtaining, by a logical product arithmetic unit (16), a third sequence that is the result of an elementwise logical product operation between the first sequence and a second sequence that comprises values of digits of a plurality of Mersenne numbers pi represented by one or more binary numbers and a zero value as elements, wherein the second sequence comprises the values of the digits of the plurality of Mersenne numbers pi, each of the first sequence, the second sequence, and the third sequence being constituted by L elements,

wherein:

the first sequence comprises a plurality of first subsequences; a plurality of second subsequences comprised in the second sequence indicate values of digits of the respective plurality of Mersenne numbers pi; the third sequence comprises a plurality of third subsequences; and the plurality of third subsequences are results of elementwise logical product operations between the respective first subsequences and the respective second subsequences; and

the random number generation method comprises a determining step of obtaining each of a plurality of equality determination results indicating whether elements of each of the plurality of third subsequences are constituted by zeros or not by a batch determination of equality; obtaining an aggregate determination result indicating whether elements of any of the third subsequences are constituted by zeros or not by a sum operation or a product operation of the plurality of equality determination results; and causing the random number acquiring step and the logical product operation step to be executed again when the aggregate determination result indicates that elements of any of the third subsequences are constituted by zeros, otherwise the third sequence comprising one or more random numbers ti on a factor ring modulo the plurality of Mersenne numbers pi is output.


 
11. A program for causing a computer to execute the steps of the random number generation method according to any of claims 7 to 10.
 


Ansprüche

1. Zufallszahlenerzeugungsvorrichtung (1, 2, 3), umfassend:

eine Zufallszahlenerfassungseinheit (15), die angepasst ist, eine erste Sequenz zu erfassen, die Ziffernwerte einer Zufallszahl, die durch eine Binärzahl dargestellt ist, als Elemente umfasst, wobei die Zufallszahl eine einheitliche Zufallszahl ist; und

eine Logikproduktarithmetikeinheit (16), angepasst, eine dritte Sequenz zu erfassen, die das Ergebnis einer elementeweisen Logikproduktoperation zwischen der ersten Sequenz und einer zweiten Sequenz ist, die Ziffernwerte einer oder mehrerer Mersenne-Zahlen pi, die durch eine oder mehrere Binärzahlen dargestellt sind, und einen Nullwert als Elemente umfasst, wobei jede aus der ersten Sequenz, der zweiten Sequenz und der dritten Sequenz aus L Elementen zusammengesetzt sind, wobei:

die erste Sequenz eine erste Untersequenz umfasst;

eine zweite Untersequenz, die in der zweiten Sequenz umfasst ist, eine der einen oder mehreren Mersenne-Zahlen pi anzeigt;

die dritte Sequenz eine dritte Untersequenz umfasst, die das Ergebnis einer elementweisen Logikproduktoperation zwischen der ersten Untersequenz und der zweiten Untersequenz ist; und die Prozesse der Zufallszahlenerfassungseinheit und der Logikproduktarithmetikeinheit erneut ausgeführt werden, wenn die zweite Untersequenz der dritten Untersequenz entspricht, wobei andernfalls die dritte Sequenz, die eine oder mehrere Zufallszahlen ti umfasst, auf einem Faktorring modulo der einen oder mehreren Mersenne-Zahlen pi ausgegeben wird.


 
2. Zufallszahlenerzeugungsvorrichtung (1, 2, 3), umfassend:

eine Zufallszahlenerfassungseinheit (15), die angepasst ist, eine erste Sequenz zu erfassen, die Ziffernwerte einer Zufallszahl, die durch eine Binärzahl dargestellt ist, als Elemente umfasst, wobei die Zufallszahl eine einheitliche Zufallszahl ist; und

eine Logikproduktarithmetikeinheit (16), angepasst, eine dritte Sequenz zu erfassen, die das Ergebnis einer elementeweisen Logikproduktoperation zwischen der ersten Sequenz und einer zweiten Sequenz ist, die Ziffernwerte einer oder mehrerer Mersenne-Zahlen pi, die durch eine oder mehrere Binärzahlen dargestellt sind, und einen Nullwert als Elemente umfasst, wobei jede aus der ersten Sequenz, der zweiten Sequenz und der dritten Sequenz aus L Elementen zusammengesetzt sind, wobei:

die erste Sequenz eine erste Untersequenz umfasst;

eine zweite Untersequenz, die in der zweiten Sequenz umfasst ist, eine der einen oder mehreren Mersenne-Zahlen pi anzeigt;

die dritte Sequenz eine dritte Untersequenz umfasst, die das Ergebnis einer elementweisen Logikproduktoperation zwischen der ersten Untersequenz und der zweiten Untersequenz ist; und die Prozesse der Zufallszahlenerfassungseinheit und der Logikproduktarithmetikeinheit erneut ausgeführt werden, wenn Elemente der dritten Untersequenz aus Nullen zusammengesetzt sind, wobei andernfalls die dritte Sequenz, die eine oder mehrere Zufallszahlen ti umfasst, auf einem Faktorring modulo einer oder mehrerer Mersenne-Zahlen pi ausgegeben wird.


 
3. Zufallszahlenerzeugungsvorrichtung (1, 2, 3) nach Anspruch 1 oder 2, wobei die zweite Sequenz die Werte der Ziffern der einen oder der mehreren Mersenne-Zahlen pi umfasst.
 
4. Zufallszahlenerzeugungsvorrichtung (1, 2, 3), umfassend:
eine Zufallszahlenerfassungseinheit (15), angepasst, eine erste Sequenz zu erfassen, die Ziffernwerte einer Zufallszahl, die durch eine Binärzahl dargestellt ist, als Elemente umfasst, wobei die Zufallszahl eine einheitliche Zufallszahl ist; und eine Logikproduktarithmetikeinheit (16), angepasst, eine dritte Sequenz zu erfassen, die das Ergebnis einer elementweisen Logikproduktoperation zwischen der ersten Sequenz und einer zweiten Sequenz ist, die Ziffernwerte mehrerer Mersenne-Zahlen pi, die durch eine oder mehrere Binärzahlen dargestellt werden, und einen Nullwert als Elemente umfasst, wobei die zweite Sequenz die Werte der Ziffern der mehreren Mersenne-Zahlen pi umfasst, wobei die erste Sequenz, die zweite Sequenz und die dritte Sequenz jeweils aus L Elementen zusammengesetzt sind, wobei:

die erste Sequenz mehrere erste Untersequenzen umfasst; mehrere zweite Untersequenzen, die in der zweiten Sequenz umfasst sind, Ziffernwerte der jeweiligen mehreren Mersenne-Zahlen pi anzeigen; die dritte Sequenz mehrere dritte Untersequenzen umfasst;

und die mehreren dritten Untersequenzen Ergebnisse von elementweisen Logikproduktoperationen zwischen den jeweiligen ersten Untersequenzen und den jeweiligen zweiten Untersequenzen sind; und

die Zufallszahlenerzeugungsvorrichtung einen Bestimmer (27) umfasst, der angepasst ist, jedes von mehreren Gleichheitsbestimmungsergebnissen zu erfassen, die durch eine Batchbestimmung der Gleichheit anzeigen, ob die mehreren zweiten Untersequenzen jeweils den mehreren dritten Untersequenzen entsprechen oder nicht; ein Sammelbestimmungsergebnis zu erfassen, das durch eine Summenoperation oder eine Produktoperation der mehreren Gleichheitsbestimmungsergebnisse anzeigt, ob eine zweite Untersequenz und eine dritte Untersequenz einander entsprechen oder nicht; und die Prozesse der Zufallszahlenerfassungseinheit und der Logikproduktarithmetikeinheit erneut ausführen zu lassen, wenn das Sammelbestimmungsergebnis anzeigt, dass eine zweite Untersequenz und eine dritte Untersequenz einander entsprechen, wobei anderenfalls die dritte Sequenz, die eine oder mehrere Zufallszahlen ti umfasst, auf einem Faktorring modulo der mehreren Mersenne-Zahlen pi ausgegeben wird.


 
5. Zufallszahlenerzeugungsvorrichtung (1, 2, 3), umfassend:

eine Zufallszahlenerfassungseinheit (15), die angepasst ist, eine erste Sequenz zu erfassen, die Ziffernwerte einer Zufallszahl, die durch eine Binärzahl dargestellt ist, als Elemente umfasst, wobei die Zufallszahl eine einheitliche Zufallszahl ist; und

eine Logikproduktarithmetikeinheit (16), angepasst, eine dritte Sequenz zu erfassen, die das Ergebnis einer elementeweisen Logikproduktoperation zwischen der ersten Sequenz und einer zweiten Sequenz ist, die Ziffernwerte mehrerer Mersenne-Zahlen pi, die durch eine oder mehrere Binärzahlen dargestellt sind, und einen Nullwert als Elemente umfasst, wobei die zweite Sequenz die Ziffernwerte der mehreren Mersenne-Zahlen pi umfasst, wobei jede aus der ersten Sequenz, der zweiten Sequenz und der dritten Sequenz aus L Elementen zusammengesetzt ist, wobei:

die erste Sequenz mehrere erste Untersequenzen umfasst; mehrere zweite Untersequenzen, die in der zweiten Sequenz umfasst sind, Ziffernwerte der jeweiligen mehreren Mersenne-Zahlen pi anzeigen; die dritte Sequenz mehrere dritte Untersequenzen umfasst;

und die mehreren dritten Untersequenzen Ergebnisse von elementweisen Logikproduktoperationen zwischen den jeweiligen ersten Untersequenzen und den jeweiligen zweiten Untersequenzen sind; und

die Zufallszahlenerzeugungsvorrichtung einen Bestimmer (37) umfasst, der angepasst ist, jedes von mehreren Gleichheitsbestimmungsergebnissen zu erfassen, die durch eine Batchbestimmung der Gleichheit anzeigen, ob Elemente jeder der mehreren dritten Untersequenzen aus Nullen zusammengesetzt sind oder nicht; ein Sammelbestimmungsergebnis zu erfassen, das durch eine Summenoperation oder eine Produktoperation der mehreren Gleichheitsbestimmungsergebnisse anzeigt, ob Elemente einer der dritten Untersequenzen aus Nullen zusammengesetzt sind oder nicht; und die Prozesse der Zufallszahlenerfassungseinheit und der Logikproduktarithmetikeinheit erneut ausführen zu lassen, wenn das Sammelbestimmungsergebnis anzeigt, dass Elemente einer der dritten Untersequenzen aus Nullen zusammengesetzt sind, wobei anderenfalls die dritte Sequenz, die eine oder mehrere Zufallszahlen ti umfasst, auf einem Faktorring modulo der mehreren Mersenne-Zahlen pi ausgegeben wird.


 
6. Zufallszahlenerzeugungsvorrichtung (1, 2, 3) nach einem der Ansprüche 1 bis 5, wobei mindestens einige der Mersenne-Zahlen Mersenne-Primzahlen sind.
 
7. Zufallszahlenerzeugungsverfahren, umfassend:

einen Zufallszahlenerfassungsschritt des Erfassens einer ersten Sequenz, die Ziffernwerte einer Zufallszahl, die durch eine Binärzahl dargestellt ist, als Elemente umfasst, durch eine Zufallszahlenerfassungseinheit (15), wobei die Zufallszahl eine einheitliche Zufallszahl ist; und

einen Logikoperationsschritt des Erfassens einer dritten Sequenz, die das Ergebnis einer elementeweisen Logikproduktoperation zwischen der ersten Sequenz und einer zweiten Sequenz ist, die Ziffernwerte einer oder mehrerer Mersenne-Zahlen pi, die durch eine oder mehrere Binärzahlen dargestellt sind, und einen Nullwert als Elemente umfasst, durch eine Logikproduktarithmetikeinheit (16) wobei jede aus der ersten Sequenz, der zweiten Sequenz und der dritten Sequenz aus L Elementen zusammengesetzt sind, wobei:

die erste Sequenz eine erste Untersequenz umfasst;

eine zweite Untersequenz, die in der zweiten Sequenz umfasst ist, eine der einen oder mehreren Mersenne-Zahlen pi anzeigt;

die dritte Sequenz eine dritte Untersequenz umfasst, die das Ergebnis einer elementweisen Logikproduktoperation zwischen der ersten Untersequenz und der zweiten Untersequenz ist; und der Zufallszahlenerfassungsschritt und der Logikproduktoperationsschritt werden erneut ausgeführt, wenn die zweite Untersequenz der dritten Untersequenz entspricht, wobei andernfalls die dritte Sequenz, die eine oder mehrere Zufallszahlen ti umfasst, auf einem Faktorring modulo der einen oder mehreren Mersenne-Zahlen pi ausgegeben wird.


 
8. Zufallszahlenerzeugungsverfahren, umfassend:

einen Zufallszahlenerfassungsschritt des Erfassens einer ersten Sequenz, die Ziffernwerte einer Zufallszahl, die durch eine Binärzahl dargestellt ist, als Elemente umfasst, durch eine Zufallszahlenerfassungseinheit (15), wobei die Zufallszahl eine einheitliche Zufallszahl ist; und

einen Logikoperationsschritt des Erfassens einer dritten Sequenz, die das Ergebnis einer elementeweisen Logikproduktoperation zwischen der ersten Sequenz und einer zweiten Sequenz ist, die Ziffernwerte einer oder mehrerer Mersenne-Zahlen pi, die durch eine oder mehrere Binärzahlen dargestellt sind, und einen Nullwert als Elemente umfasst, durch eine Logikproduktarithmetikeinheit (16) wobei jede aus der ersten Sequenz, der zweiten Sequenz und der dritten Sequenz aus L Elementen zusammengesetzt sind, wobei:

die erste Sequenz eine erste Untersequenz umfasst;

eine zweite Untersequenz, die in der zweiten Sequenz umfasst ist, eine der einen oder mehreren Mersenne-Zahlen pi anzeigt;

die dritte Sequenz eine dritte Untersequenz umfasst, die das Ergebnis einer elementweisen Logikproduktoperation zwischen der ersten Untersequenz und der zweiten Untersequenz ist; und der Zufallszahlenerfassungsschritt und der Logikproduktarithmetikoperationsschritt erneut ausgeführt werden, wenn Elemente der dritten Untersequenz aus Nullen zusammengesetzt sind, wobei andernfalls die dritte Sequenz, die eine oder mehrere Zufallszahlen ti umfasst, auf einem Faktorring modulo der einen oder mehreren Mersenne-Zahlen pi ausgegeben wird.


 
9. Zufallszahlenerzeugungsverfahren, umfassend:

einen Zufallszahlenerfassungsschritt des Erfassens einer ersten Sequenz, die Ziffernwerte einer Zufallszahl, die durch eine Binärzahl dargestellt ist, als Elemente umfasst, durch eine Zufallszahlenerfassungseinheit (15), wobei die Zufallszahl eine einheitliche Zufallszahl ist; und

einen Logikproduktoperationsschritt, um durch eine Logikproduktarithmetikeinheit (16) eine dritte Sequenz zu erfassen, die das Ergebnis einer elementeweisen Logikproduktoperation zwischen der ersten Sequenz und einer zweiten Sequenz ist, die Ziffernwerte mehrerer Mersenne-Zahlen pi, die durch eine oder mehrere Binärzahlen dargestellt sind, und einen Nullwert als Elemente umfasst, wobei die zweite Sequenz die Ziffernwerte der mehreren Mersenne-Zahlen pi umfasst, wobei jede aus der ersten Sequenz, der zweiten Sequenz und der dritten Sequenz aus L Elementen zusammengesetzt ist, wobei:

die erste Sequenz mehrere erste Untersequenzen umfasst; mehrere zweite Untersequenzen, die in der zweiten Sequenz umfasst sind, Ziffernwerte der jeweiligen mehreren Mersenne-Zahlen pi anzeigen; die dritte Sequenz mehrere dritte Untersequenzen umfasst;

und die mehreren dritten Untersequenzen Ergebnisse von elementweisen Logikproduktoperationen zwischen den jeweiligen ersten Untersequenzen und den jeweiligen zweiten Untersequenzen sind; und

das Zufallszahlenerzeugungsverfahren einen Bestimmungsschritt des Erfassens jedes von mehreren Gleichheitsbestimmungsergebnissen umfasst, die durch eine Batchbestimmung der Gleichheit anzeigen, ob die mehreren zweiten Untersequenzen jeweils den mehreren dritten Untersequenzen entsprechen oder nicht; des Erfassens eines Sammelbestimmungsergebnisses, das durch eine Summenoperation oder eine Produktoperation der mehreren Gleichheitsbestimmungsergebnisse anzeigt, ob eine zweite Untersequenz und eine dritte Untersequenz einander entsprechen oder nicht; und des erneuten Ausführens des Zufallszahlenerfassungsschritts und des Logikproduktoperationsschritts, wenn das Sammelbestimmungsergebnis anzeigt, dass eine zweite Untersequenz und eine dritte Untersequenz einander entsprechen, wobei anderenfalls die dritte Sequenz, die eine oder mehrere Zufallszahlen ti umfasst, auf einem Faktorring modulo der mehreren Mersenne-Zahlen pi ausgegeben wird.


 
10. Zufallszahlenerzeugungsverfahren, umfassend:

einen Zufallszahlenerfassungsschritt des Erfassens einer ersten Sequenz, die Ziffernwerte einer Zufallszahl, die durch eine Binärzahl dargestellt ist, als Elemente umfasst, durch eine Zufallszahlenerfassungseinheit (15), wobei die Zufallszahl eine einheitliche Zufallszahl ist; und

einen Logikproduktoperationsschritt des Erfassens einer dritten Sequenz, die das Ergebnis einer elementeweisen Logikproduktoperation zwischen der ersten Sequenz und einer zweiten Sequenz ist, die Ziffernwerte mehrerer Mersenne-Zahlen pi, die durch eine oder mehrere Binärzahlen dargestellt sind, und einen Nullwert als Elemente umfasst, durch eine Logikproduktarithmetikeinheit (16), wobei die zweite Sequenz die Ziffernwerte der mehreren Mersenne-Zahlen pi umfasst, wobei jede aus der ersten Sequenz, der zweiten Sequenz und der dritten Sequenz aus L Elementen zusammengesetzt ist, wobei:

die erste Sequenz mehrere erste Untersequenzen umfasst; mehrere zweite Untersequenzen, die in der zweiten Sequenz umfasst sind, Ziffernwerte der jeweiligen mehreren Mersenne-Zahlen pi anzeigen; die dritte Sequenz mehrere dritte Untersequenzen umfasst;

und die mehreren dritten Untersequenzen Ergebnisse von elementweisen Logikproduktoperationen zwischen den jeweiligen ersten Untersequenzen und den jeweiligen zweiten Untersequenzen sind; und

das Zufallszahlenerzeugungsverfahren einen Bestimmungsschritt des Erfassens jedes von mehreren Gleichheitsbestimmungsergebnissen umfasst, die durch eine Batchbestimmung der Gleichheit anzeigen, ob Elemente jeder der mehreren dritten Untersequenzen aus Nullen zusammengesetzt sind oder nicht; des Erfassens eines Sammelbestimmungsergebnisses, das durch eine Summenoperation oder eine Produktoperation der mehreren Gleichheitsbestimmungsergebnisse anzeigt, ob Elemente einer der dritten Untersequenzen aus Nullen zusammengesetzt sind oder nicht; und des erneuten Ausführenlassens der Prozesse des Zufallszahlenerfassungsschrittes und des Logikproduktoperationsschritts, wenn das Sammelbestimmungsergebnis anzeigt, dass Elemente einer der dritten Untersequenzen aus Nullen zusammengesetzt sind, wobei anderenfalls die dritte Sequenz, die eine oder mehrere Zufallszahlen ti umfasst, auf einem Faktorring modulo der mehreren Mersenne-Zahlen pi ausgegeben wird.


 
11. Programm, um einen Computer zu veranlassen, die Schritte des Zufallszahlenerzeugungsverfahrens nach einem der Ansprüche 7 bis 10 auszuführen.
 


Revendications

1. Appareil de génération de nombre aléatoire (1, 2, 3) comprenant :

une unité d'acquisition de nombre aléatoire (15) conçue pour obtenir une première séquence qui comprend des valeurs de chiffres d'un nombre aléatoire représenté par un nombre binaire en tant qu'éléments, le nombre aléatoire étant un nombre aléatoire uniforme ; et

une unité arithmétique de produit logique (16) conçue pour obtenir une troisième séquence qui est le résultat d'une opération de produit logique au niveau des éléments entre la première séquence et une deuxième séquence qui comprend des valeurs de chiffres d'un ou de plusieurs nombres de Mersenne pi représentés par un ou plusieurs nombres binaires et une valeur zéro en tant qu'éléments, chacune de la première séquence, de la deuxième séquence, et de la troisième séquence étant constituée de L éléments,

dans lequel :

la première séquence comprend une première sous-séquence ; une deuxième sous-séquence comprise dans la deuxième séquence indique l'un quelconque desdits un ou plusieurs nombres de Mersenne pi ;

la troisième séquence comprend une troisième sous-séquence qui est le résultat d'une opération de produit logique au niveau des éléments entre la première sous-séquence et la deuxième sous-séquence ; et les processus de l'unité d'acquisition de nombre aléatoire et de l'unité arithmétique de produit logique sont exécutés de nouveau lorsque la deuxième sous-séquence correspond à la troisième sous-séquence, autrement la troisième séquence comprenant un ou plusieurs nombres aléatoires ti sur un anneau factoriel modulo lesdits un ou plusieurs nombres de Mersenne pi est sortie.


 
2. Appareil de génération de nombre aléatoire (1, 2, 3) comprenant :

une unité d'acquisition de nombre aléatoire (15) conçue pour obtenir une première séquence qui comprend des valeurs de chiffres d'un nombre aléatoire représenté par un nombre binaire en tant qu'éléments, le nombre aléatoire étant un nombre aléatoire uniforme ; et

une unité arithmétique de produit logique (16) conçue pour obtenir une troisième séquence qui est le résultat d'une opération de produit logique au niveau des éléments entre la première séquence et une deuxième séquence qui comprend des valeurs de chiffres d'un ou de plusieurs nombres de Mersenne pi représentés par un ou plusieurs nombres binaires et une valeur zéro en tant qu'éléments, chacune de la première séquence, de la deuxième séquence, et de la troisième séquence étant constituée de L éléments,

dans lequel :

la première séquence comprend une première sous-séquence ; une deuxième sous-séquence comprise dans la deuxième séquence indique l'un quelconque desdits un ou plusieurs nombres de Mersenne pi ;

la troisième séquence comprend une troisième sous-séquence qui est le résultat d'une opération de produit logique au niveau des éléments entre la première sous-séquence et la deuxième sous-séquence ; et les processus de l'unité d'acquisition de nombre aléatoire et de l'unité arithmétique de produit logique sont exécutés de nouveau lorsque les éléments de la troisième sous-séquence sont constitués de zéros, autrement la troisième séquence comprenant un ou plusieurs nombres aléatoires ti sur un anneau factoriel modulo lesdits un ou plusieurs nombres de Mersenne pi est sortie.


 
3. Appareil de génération de nombre aléatoire (1, 2, 3) selon la revendication 1 ou 2, dans lequel la deuxième séquence comprend les valeurs des chiffres desdits un ou plusieurs nombres de Mersenne pi.
 
4. Appareil de génération de nombre aléatoire (1, 2, 3) comprenant :

une unité d'acquisition de nombre aléatoire (15) conçue pour obtenir une première séquence qui comprend des valeurs de chiffres d'un nombre aléatoire représenté par un nombre binaire en tant qu'éléments, le nombre aléatoire étant un nombre aléatoire uniforme ; et

une unité arithmétique de produit logique (16) conçue pour obtenir une troisième séquence qui est le résultat d'une opération de produit logique au niveau des éléments entre la première séquence et une deuxième séquence qui comprend des valeurs de chiffres d'une pluralité de nombres de Mersenne pi représentés par un ou plusieurs nombres binaires et une valeur zéro en tant qu'éléments, dans lequel la deuxième séquence comprend les valeurs des chiffres de la pluralité de nombres de Mersenne pi, chacune de la première séquence, de la deuxième séquence, et de la troisième séquence étant constituée de L éléments,

dans lequel :

la première séquence comprend une pluralité de premières sous-séquences ; une pluralité de deuxièmes sous-séquences comprises dans la deuxième séquence indiquent des valeurs de chiffres de la pluralité respective de nombres de Mersenne pi ; la troisième séquence comprend une pluralité de troisièmes sous-séquences ; et la pluralité de troisièmes sous-séquences sont les résultats d'opérations de produit logique au niveau des éléments entre les premières sous-séquences respectives et les deuxièmes sous-séquences respectives ; et

l'appareil de génération de nombre aléatoire comprend un dispositif de détermination (27) conçu pour obtenir chacun d'une pluralité de résultats de détermination d'égalité indiquant si, oui ou non, la pluralité de deuxièmes sous-séquences correspondent à la pluralité de troisièmes sous-séquences, respectivement, par une détermination d'égalité de lots ; pour obtenir un résultat de détermination d'agrégat indiquant si une deuxième sous-séquence et une troisième sous-séquence quelconques correspondent l'une à l'autre ou non par une opération de somme ou une opération de produit de la pluralité de résultats de détermination d'égalité ; et pour provoquer l'exécution des processus de l'unité d'acquisition de nombre aléatoire et de l'unité arithmétique de produit logique de nouveau lorsque le résultat de détermination d'agrégat indique qu'une deuxième sous-séquence et une troisième sous-séquence quelconques correspondent l'une à l'autre, autrement la troisième séquence comprenant un ou plusieurs nombres aléatoires ti sur un anneau factoriel modulo la pluralité de nombres de Mersenne pi est sortie.


 
5. Appareil de génération de nombre aléatoire (1, 2, 3) comprenant :

une unité d'acquisition de nombre aléatoire (15) conçue pour obtenir une première séquence qui comprend des valeurs de chiffres d'un nombre aléatoire représenté par un nombre binaire en tant qu'éléments, le nombre aléatoire étant un nombre aléatoire uniforme ; et

une unité arithmétique de produit logique (16) conçue pour obtenir une troisième séquence qui est le résultat d'une opération de produit logique au niveau des éléments entre la première séquence et une deuxième séquence qui comprend des valeurs de chiffres d'une pluralité de nombres de Mersenne pi représentés par un ou plusieurs nombres binaires et une valeur zéro en tant qu'éléments, dans lequel la deuxième séquence comprend les valeurs des chiffres de la pluralité de nombres de Mersenne pi,

chacune de la première séquence, de la deuxième séquence, et de la troisième séquence étant constituée de L éléments,

dans lequel :

la première séquence comprend une pluralité de premières sous-séquences ; une pluralité de deuxièmes sous-séquences comprises dans la deuxième séquence indiquent des valeurs de chiffres de la pluralité respective de nombres de Mersenne pi ; la troisième séquence comprend une pluralité de troisièmes sous-séquences ; et la pluralité de troisièmes sous-séquences sont les résultats d'opérations de produit logique au niveau des éléments entre les premières sous-séquences respectives et les deuxièmes sous-séquences respectives ; et

l'appareil de génération de nombre aléatoire comprend un dispositif de détermination (37) conçu pour obtenir chacun d'une pluralité de résultats de détermination d'égalité indiquant si des éléments de chacune de la pluralité de troisièmes sous-séquences sont constitués de zéros ou non par une détermination d'égalité de lots ; pour obtenir un résultat de détermination d'agrégat indiquant si des éléments de l'une quelconque des troisièmes sous-séquences sont constitués de zéros ou non par une opération de somme ou une opération de produit de la pluralité de résultats de détermination d'égalité ; et pour provoquer l'exécution des processus de l'unité d'acquisition de nombre aléatoire et de l'unité arithmétique de produit logique de nouveau lorsque le résultat de détermination d'agrégat indique que des éléments de l'une quelconque des troisièmes sous-séquences sont constitués de zéros, autrement la troisième séquence comprenant un ou plusieurs nombres aléatoires ti sur un anneau factoriel modulo la pluralité de nombres de Mersenne pi est sortie.


 
6. Appareil de génération de nombre aléatoire (1, 2, 3) selon l'une quelconque des revendications 1 à 5, dans lequel au moins une partie des nombres de Mersenne sont des nombres premiers de Mersenne.
 
7. Procédé de génération de nombre aléatoire comprenant :

une étape d'acquisition de nombre aléatoire pour obtenir, par une unité d'acquisition de nombre aléatoire (15), une première séquence qui comprend des valeurs de chiffres d'un nombre aléatoire représenté par un nombre binaire en tant qu'éléments, le nombre aléatoire étant un nombre aléatoire uniforme ; et

une étape d'opération de produit logique pour obtenir, par une unité arithmétique de produit logique (16), une troisième séquence qui est le résultat d'une opération de produit logique au niveau des éléments entre la première séquence et une deuxième séquence qui comprend des valeurs de chiffres d'un ou de plusieurs nombres de Mersenne pi représentés par un ou plusieurs nombres binaires et une valeur zéro en tant qu'éléments, chacune de la première séquence, de la deuxième séquence, et de la troisième séquence étant constituée de L éléments,

dans lequel :

la première séquence comprend une première sous-séquence ; une deuxième sous-séquence comprise dans la deuxième séquence indique l'un quelconque desdits un ou plusieurs nombres de Mersenne pi ;

la troisième séquence comprend une troisième sous-séquence qui est le résultat d'une opération de produit logique au niveau des éléments entre la première sous-séquence et la deuxième sous-séquence ; et l'étape d'acquisition de nombre aléatoire et l'étape d'opération de produit logique sont exécutées de nouveau lorsque la deuxième sous-séquence correspond à la troisième sous-séquence, autrement la troisième séquence comprenant un ou plusieurs nombres aléatoires ti sur un anneau factoriel modulo lesdits un ou plusieurs nombres de Mersenne pi est sortie.


 
8. Procédé de génération de nombre aléatoire comprenant :

une étape d'acquisition de nombre aléatoire pour obtenir, par une unité d'acquisition de nombre aléatoire (15), une première séquence qui comprend des valeurs de chiffres d'un nombre aléatoire représenté par un nombre binaire en tant qu'éléments, le nombre aléatoire étant un nombre aléatoire uniforme ; et

une étape d'opération de produit logique pour obtenir, par une unité arithmétique de produit logique (16), une troisième séquence qui est le résultat d'une opération de produit logique au niveau des éléments entre la première séquence et une deuxième séquence qui comprend des valeurs de chiffres d'un ou de plusieurs nombres de Mersenne pi représentés par un ou plusieurs nombres binaires et une valeur zéro en tant qu'éléments, chacune de la première séquence, de la deuxième séquence, et de la troisième séquence étant constituée de L éléments,

dans lequel :

la première séquence comprend une première sous-séquence ; une deuxième sous-séquence comprise dans la deuxième séquence indique l'un quelconque desdits un ou plusieurs nombres de Mersenne pi ;

la troisième séquence comprend une troisième sous-séquence qui est le résultat d'une opération de produit logique au niveau des éléments entre la première sous-séquence et la deuxième sous-séquence ; et l'étape d'acquisition de nombre aléatoire et l'étape d'opération de produit logique sont exécutées de nouveau lorsque des éléments de la troisième sous-séquence sont constitués de zéros, autrement la troisième séquence comprenant un ou plusieurs nombres aléatoires ti sur un anneau factoriel modulo lesdits un ou plusieurs nombres de Mersenne pi est sortie.


 
9. Procédé de génération de nombre aléatoire comprenant :

une étape d'acquisition de nombre aléatoire pour obtenir, par une unité d'acquisition de nombre aléatoire (15), une première séquence qui comprend des valeurs de chiffres d'un nombre aléatoire représenté par un nombre binaire en tant qu'éléments, le nombre aléatoire étant un nombre aléatoire uniforme ; et

une étape d'opération de produit logique pour obtenir, par une unité arithmétique de produit logique (16), une troisième séquence qui est le résultat d'une opération de produit logique au niveau des éléments entre la première séquence et une deuxième séquence qui comprend des valeurs de chiffres d'une pluralité de nombres de Mersenne pi représentés par un ou plusieurs nombres binaires et une valeur zéro en tant qu'éléments, dans lequel la deuxième séquence comprend les valeurs des chiffres de la pluralité de nombres de Mersenne pi, chacune de la première séquence, de la deuxième séquence, et de la troisième séquence étant constituée de L éléments,

dans lequel :

la première séquence comprend une pluralité de premières sous-séquences ; une pluralité de deuxièmes sous-séquences comprises dans la deuxième séquence indiquent des valeurs de chiffres de la pluralité respective de nombres de Mersenne pi ; la troisième séquence comprend une pluralité de troisièmes sous-séquences ; et la pluralité de troisièmes sous-séquences sont des résultats d'opérations de produit logique au niveau des éléments entre les premières sous-séquences respectives et les deuxièmes sous-séquences respectives ; et

le procédé de génération de nombre aléatoire comprend une étape de détermination pour obtenir chacun d'une pluralité de résultats de détermination d'égalité indiquant si, oui ou non, la pluralité de deuxièmes sous-séquences correspondent à la pluralité de troisièmes sous-séquences, respectivement, par une détermination d'égalité de lots ; obtenir un résultat de détermination d'agrégat indiquant si une deuxième sous-séquence et une troisième sous-séquence quelconques correspondent l'une à l'autre ou non par une opération de somme ou une opération de produit de la pluralité de résultats de détermination d'égalité ; et provoquer l'exécution de l'étape d'acquisition de nombre aléatoire et de l'étape d'opération de produit logique de nouveau lorsque le résultat de détermination d'agrégat indique qu'une deuxième sous-séquence et une troisième sous-séquence quelconques correspondent l'une à l'autre, autrement la troisième séquence comprenant un ou plusieurs nombres aléatoires ti sur un anneau factoriel modulo la pluralité de nombres de Mersenne pi est sortie.


 
10. Procédé de génération de nombre aléatoire comprenant :

une étape d'acquisition de nombre aléatoire pour obtenir, par une unité d'acquisition de nombre aléatoire (15), une première séquence qui comprend des valeurs de chiffres d'un nombre aléatoire représenté par un nombre binaire en tant qu'éléments, le nombre aléatoire étant un nombre aléatoire uniforme ; et

une étape d'opération de produit logique pour obtenir, par une unité arithmétique de produit logique (16), une troisième séquence qui est le résultat d'une opération de produit logique au niveau des éléments entre la première séquence et une deuxième séquence qui comprend des valeurs de chiffres d'une pluralité de nombres de Mersenne pi représentés par un ou plusieurs nombres binaires et une valeur zéro en tant qu'éléments, dans lequel la deuxième séquence comprend les valeurs des chiffres de la pluralité de nombres de Mersenne pi, chacune de la première séquence, de la deuxième séquence, et de la troisième séquence étant constituée de L éléments,

dans lequel :

la première séquence comprend une pluralité de premières sous-séquences ; une pluralité de deuxièmes sous-séquences comprises dans la deuxième séquence indiquent des valeurs de chiffres de la pluralité respective de nombres de Mersenne pi ; la troisième séquence comprend une pluralité de troisièmes sous-séquences ; et la pluralité de troisièmes sous-séquences sont des résultats d'opérations de produit logique au niveau des éléments entre les premières sous-séquences respectives et les deuxièmes sous-séquences respectives ; et

le procédé de génération de nombre aléatoire comprend une étape de détermination pour obtenir chacun d'une pluralité de résultats de détermination d'égalité indiquant si des éléments de chacune de la pluralité de troisièmes sous-séquences sont constitués de zéros ou non par une détermination d'égalité de lots ; obtenir un résultat de détermination d'agrégat indiquant si des éléments de l'une quelconque des troisièmes sous-séquences sont constitués de zéros ou non par une opération de somme ou une opération de produit de la pluralité de résultats de détermination d'égalité ; et provoquer l'exécution de l'étape d'acquisition de nombre aléatoire et de l'étape d'opération de produit logique de nouveau lorsque le résultat de détermination d'agrégat indique que des éléments de l'une quelconque des troisièmes sous-séquences sont constitués de zéros, autrement la troisième séquence comprenant un ou plusieurs nombres aléatoires ti sur un anneau factoriel modulo la pluralité de nombres de Mersenne pi est sortie.


 
11. Programme pour amener un ordinateur à exécuter les étapes du procédé de génération de nombre aléatoire selon l'une quelconque des revendications 7 à 10.
 




Drawing














Cited references

REFERENCES CITED IN THE DESCRIPTION



This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.

Patent documents cited in the description




Non-patent literature cited in the description