The present invention relates to an inverse-image sampling device, an inverse-image sampling method, and an inverse-image sampling program used in a trapdoor one-way function construction method, and particularly to an inverse-image sampling device, an inverse-image sampling method, and an inverse-image sampling program that generate random numbers used for lattice cipher and signature in parallel.
The trapdoor one-way function (hereinafter, also referred to as “trapdoor function”) is a function generated in a procedure including a key generation process, a function computation process, and an inverse-image sampling process. The trapdoor function is used particularly in a public key cryptographic scheme or an electronic signature scheme.
A cipher or signature using a lattice is a cipher system having an efficiency based on simplicity of computation or homomorphism based on linearity of a basic operation. Furthermore, as a cipher for which an attack method using a quantum computer has not been found yet, cipher or signature using a lattice is currently under research and development.
A typical construction method of a trapdoor function in cipher and signature using a lattice is described in Non Patent Literature (NPL) 1. Hereinafter, the construction method described in NPL 1 will be described.
In the construction method described in NPL 1, a computing operation is performed by Zq=Z/qZ (in other words, mod q). Character q is an integer of a power of 2 represented by 2K (K is a natural number). In addition, Z is a symbol representing a set of whole integers.
First, description will be made on a primitive lattice matrix that plays an important role in the construction method described in NPL 1. The primitive lattice matrix is expressed as follows.
Furthermore, for the primitive lattice matrix G expressed by the equation (1), a basis matrix S of a dual primitive lattice is, for example, a matrix expressed as described below.
An equation GS=0 is satisfied in a relation between G and S defined as described above.
A set defined by {Σni=1Zai{right arrow over ( )}} for vectors a1{right arrow over ( )} to an{right arrow over ( )} is referred to as “lattice.” Character i indicates one of integers 1 to n representing the order of the vectors. In the lattice, a sum of vectors Zai{right arrow over ( )} is computed over 1 to n.
Although the symbols “-,” “{right arrow over ( )},” “˜,” and the like used in the text of this description should be each originally placed right above the previous character, they are placed right after the character as described above due to restrictions of a text notation. In each equation, these symbols are placed in the original positions.
Moreover, vectors a1{right arrow over ( )} to an{right arrow over ( )} are referred to as “basis vectors for a lattice” or simply referred to as “bases.” Generally, a lattice generated on the basis of a matrix A=(a1{right arrow over ( )}, a2{right arrow over ( )}, ---, an{right arrow over ( )}) represents a lattice {Σni=1Zai{right arrow over ( )}}. Hereinafter, the lattice {Σni=1Zai{right arrow over ( )}} is described as A(A). In addition, A is referred to as “basis matrix.”
With the use of the above basis matrix, the key generation process, the function computation process, and the inverse-image sampling process are performed. The following describes the content of the key generation process, the content of the function computation process, and the content of the inverse-image sampling process.
First, the content of the key generation process is described. The key generation process is performed to output a matrix to be a public key and a matrix to be a trapdoor at the time of input of a parameter “param=(K, N, q=2K, M−=O(NK), M=M−+NK, σ=ω((log N)1/2, α)).” Incidentally, the trapdoor is equivalent to confidential information corresponding to the public key.
In addition, N∈Z is a security parameter. Moreover, O and ω are Landau symbols. O(NK) in M−=O(NK) means a function in which M− is suppressed to NK or lower even in the case of “N→∞.” Furthermore, a is a parameter satisfying the following conditional expression.
1/α>σ·ω(√{square root over ((log N)))} [MATH. 3]
First, a generation process of the matrix A, which is to be a public key, is described. The public key is configured as described below as a matrix having respective components as Zq.
[MATH. 4]
A=(Ā|ĀT+HG) Equation (3)
As described in equation (3), a notation (E|F) for matrices E and F means that the matrices E and F are arranged side by side. In addition, A− in the equation (3) is a matrix that is uniformly sampled from ZqN×M−. Specifically, A− is a matrix with N rows and M− columns having Zq components.
H in the equation (3) represents a regular matrix of ZqN×N. In other words, H is a regular matrix with N rows and N columns having Zq components.
Moreover, T∈ZM−×NK of the equation (3) is a matrix in which each column vector is generated from a discrete Gaussian distribution on ZM− having a variance value of σ, which is described below, and is a matrix referred to as “trapdoor.” A function determined according to a real number σ∈R (R is a symbol representing a set of the whole real numbers) will be defined as described below.
Particularly, φ(x) satisfying σ=1 is denoted by ρ(x). The discrete Gaussian distribution on ZN having a variance value of σ is a distribution wherein an integer value u∈ZN is output with a probability φ(u)/Σ∞j=−∞ φ(j). Hereinafter, a discrete Gaussian distribution on ZN having a variance value of a is denoted by DZN,σ. In the key generation process, the matrix A to be a public key and the matrix T to be a trapdoor are output.
In the function computation process, a parameter “param” is input and an arbitrary v{right arrow over ( )}∈ZqN is output.
The inverse-image sampling process includes procedures described below. Incidentally, the regular matrix H described in the generation process of the matrix A to be a public key does not have an influence in the subsequent processes even if the regular matrix H is considered to be an identity matrix. In the subsequent processes, the regular matrix H is considered to be an identify matrix for simplicity.
Symbols and definitions used in the inverse-image sampling process are described below. With respect to a matrix B having a linearly independent column vector, B+ is assumed to be a matrix satisfying an equation “(BB+)B=B.”
Furthermore, for a matrix B∈Rn×m, span(B) is assumed to be {Bx{right arrow over ( )}:x{right arrow over ( )}∈Rm}. Moreover, Σ is determined to be equal to BBt (Σ=BBt) and “B=Σ1/2” is described for ∈. Furthermore, a distorted Gaussian function ρB(x{right arrow over ( )}):Rn→(0,1] is defined as follows.
Moreover, a probability distribution on A+c{right arrow over ( )} is defined as follows.
A distribution following the equation (5) is defined as a distorted Gaussian distribution. Hereinafter, the content of the inverse-image sampling process is described. In the inverse-image sampling process, the following precomputation process is performed, first.
Incidentally, I in equation (6) is an identity matrix. After the precomputation process, steps described below are performed. With reference to
Inputs are assumed to be v{right arrow over ( )}, a public key A, s∈R, r∈R, ΣG=2 or 51/2. v{right arrow over ( )} is a vector output in the function computation process. Moreover, s is an arbitrary parameter. Furthermore, r is equal to ω((log N)1/2) (r=ω((log N)1/2).
Inverse-Image Sampling STEP 1
A perturbation vector p{right arrow over ( )}←DZm,rΣis adopted. p{right arrow over ( )} shown in
Inverse-Image Sampling STEP 2
A vector u{right arrow over ( )}←v{right arrow over ( )}-Ap{right arrow over ( )} is computed. There are Ap{right arrow over ( )} and u{right arrow over ( )} in
Inverse-Image Sampling STEP 3
A vector z{right arrow over ( )}←DAu→⊥(G), rΣG is computed. Specifically, the vector z{right arrow over ( )} is equivalent to an output including random numbers following a discrete Gaussian distribution on a lattice Au→⊥(G), which has a variance value of rΣG. The definition of the lattice is as follows.
[MATH. 9]
A
{right arrow over (u)}
⊥(G):={{right arrow over (z)}:G{right arrow over (z)}={right arrow over (u)}∈Zqn}
Inverse-Image Sampling STEP 4
The following vector is computed. The computed vector is a short vector that is transformed to u{right arrow over ( )} when A shown in
Inverse-Image Sampling STEP 5
The following vector is computed. The computed vector is an “output” vector shown in
The execution of the above steps, the inverse-image sampling STEP 1 to the inverse-image sampling STEP 5, completes the inverse-image sampling process. Hereinafter, the inverse-image sampling STEP 3 is described in detail from among the inverse-image sampling STEP 1 to the inverse-image sampling STEP 5.
In the inverse-image sampling STEP 3, random numbers following a discrete Gaussian distribution with the center on a lattice described below as the origin are generated, where u{right arrow over ( )}=(u1, . . . , un).
In the inverse-image sampling STEP 3, a set of random numbers (x01, . . . , xK−11) following a discrete Gaussian distribution with the center on (u1, 0, . . . , 0)t+A(S) as the origin, a set of random numbers (x02, . . . , XK−12) following a discrete Gaussian distribution with the center on (u2, 0, . . . , 0)t+A(S) as the origin, . . . , and a set of random numbers (x0n, . . . , xK−1n) following a discrete Gaussian distribution with the center on (un, 0, . . . , 0)t+A(S) as the origin are generated in parallel to each other. The number of elements of each of (u1, 0, . . . , 0)t, (u2, 0, . . . , 0)t, and (un, 0, . . . , 0)t is K.
Moreover, in the inverse-image sampling STEP 3, (x01, . . . , xK−11, x02, . . . , xK−12, . . . , x0n, . . . , xK−1n) is generated as an output. Incidentally, S is a basis matrix of a dual primitive lattice.
As a method of computing the random numbers following the discrete Gaussian distribution with the center on (u, 0, . . . , 0)t+A(S) as the origin, there is used the method described in NPL 2, for example.
NPL 1: Daniele Micciancio, Chris Peikert, “Trapdoors for Lattices: Simpler, Tighter, Faster, Smaller,” EUROCRYPTO 2012, pp. 700-718.
NPL 2: C. Gentry, Peikert, and Vaikuntanathan, “How to use a short basis trapdoors for hard lattices and cryptographic constructions,” National Science Foundation 2008, pp. 1-41.
Although the above has described a method of generating random numbers following a discrete Gaussian distribution with the center as the origin, the inverse-image sampling STEP 3 of the inverse-image sampling process described in NPL 1 also requires sequential generation of random numbers following each of discrete Gaussian distributions having different centers.
The reason for that is because the center of the discrete Gaussian distribution followed by random numbers generated in the next process in a loop is determined on the basis of random numbers generated in the current process in the loop. In the case where random numbers following each of discrete Gaussian distributions having different centers are sequentially generated, the random numbers are not generated in parallel and therefore the inverse-image sampling process is not performed at high speed problematically.
Therefore, an object of the present invention is to provide an inverse-image sampling device, an inverse-image sampling method, and an inverse-image sampling program capable of sampling arbitrary values, in parallel, as random numbers following discrete Gaussian distributions having different centers to solve the above problem.
According to the present invention, there is provided an inverse-image sampling device including: a grouping means that extracts basis vectors from a set of basis vectors for a lattice having a predetermined relationship with a matrix used to generate a public key, and that groups the basis vectors such that a predetermined condition is satisfied; and a sampling means that samples, for at least one group, the same number of arbitrary values as the number of a plurality of basis vectors included in that group, in parallel for the individual basis vectors, onto a lattice constituted by the plurality of basis vectors, the arbitrary values serving as random numbers following a discrete Gaussian distribution, wherein the predetermined condition is that each of the basis vectors included in a group is orthogonal to the other basis vectors included in the same group and is also orthogonal to Gram-Schmidt basis vectors, which are vectors obtained by orthogonalizing the other basis vectors by Gram-Schmidt orthogonalization.
According to the present invention, there is provided an inverse-image sampling method including the steps of: extracting basis vectors from a set of basis vectors for a lattice having a predetermined relationship with a matrix used to generate a public key, and grouping the basis vectors such that a predetermined condition is satisfied; and sampling, for at least one group, the same number of arbitrary values as the number of a plurality of basis vectors included in that group, in parallel for the individual basis vectors, onto a lattice constituted by the plurality of basis vectors, the arbitrary values serving as random numbers following a discrete Gaussian distribution, wherein the predetermined condition is that each of the basis vectors included in a group is orthogonal to the other basis vectors included in the same group and is also orthogonal to Gram-Schmidt basis vectors, which are vectors obtained by orthogonalizing the other basis vectors by Gram-Schmidt orthogonalization.
According to the present invention, there is provided an inverse-image sampling program for causing a computer to perform: a grouping process of extracting basis vectors from a set of basis vectors for a lattice having a predetermined relationship with a matrix used to generate a public key, and of grouping the basis vectors such that a predetermined condition is satisfied; and a sampling process of sampling, for at least one group, the same number of arbitrary values as the number of a plurality of basis vectors included in that group, in parallel for the individual basis vectors, onto a lattice constituted by the plurality of basis vectors, the arbitrary values serving as random numbers following a discrete Gaussian distribution, wherein the predetermined condition is that each of the basis vectors included in a group is orthogonal to the other basis vectors included in the same group and is also orthogonal to Gram-Schmidt basis vectors, which are vectors obtained by orthogonalizing the other basis vectors by Gram-Schmidt orthogonalization.
The present invention enables sampling of arbitrary values, in parallel, as random numbers following discrete Gaussian distributions having different centers.
Hereinafter, an exemplary embodiment of the present invention will be described with reference to appended drawings. Incidentally, a computing operation is performed by Zq=Z/qZ also in this exemplary embodiment.
First, the configuration of the sampling process on a dual primitive lattice of this exemplary embodiment will be simply described. First, description is made on a method of generating random numbers following a discrete Gaussian distribution on a lattice A(B) having a general form, which is not limited to a dual primitive lattice, having c{right arrow over ( )} as the center. Note that, however, B=(b1{right arrow over ( )}, . . . , bn{right arrow over ( )}) is satisfied.
In the loop of the fourth to ninth lines of the algorithm shown in
When a matrix basis bi{right arrow over ( )} is orthogonal to a Gram-Schmidt basis of each of the matrix bases bi+1{right arrow over ( )}, . . . , bi+j{right arrow over ( )} in the algorithm shown in
Specifically, a process of sampling with a sequential loop of (i+j) to i is equal to a process of computing a sampling result with a sequential loop of (i+j) to (i+1) and a sampling result of i in parallel and outputting a sum of the sampling results.
In this exemplary embodiment, the data structure of the basis matrix S of the dual primitive lattice is divided so that the above characteristics are utilized. The basis vectors constituting the basis matrix S is divided into groups so that a predetermined condition is satisfied.
The predetermined condition is that each of the basis vectors included in the group is orthogonal to the other basis vectors included in the same group and is also orthogonal to Gram-Schmidt basis vectors, which are vectors obtained by orthogonalizing the other basis vectors by
Gram-Schmidt orthogonalization.
For example, the basis matrix S=(a1{right arrow over ( )}, . . . , aK{right arrow over ( )}) of the dual primitive lattice are divided into the Levels (groups) as described below.
Basis vector set of Level 0={ai{right arrow over ( )}:i=20*(odd number)},
Basis vector set of Level 1={ai{right arrow over ( )}:i=21*(odd number)},
Basis vector set of Level 2={ai{right arrow over ( )}:i=22*(odd number)}, . . .
In addition, the basis belonging to each Level satisfies a condition of being orthogonal to all Gram-Schmidt bases of other bases in the same Level. The method of dividing the basis vectors constituting the basis matrix S is not limited to the above method.
For example, in the case where the basis vector set of a predetermined Level is {b1{right arrow over ( )}, b2{right arrow over ( )}, b3{right arrow over ( )}}, the following relationship is established between the basis vectors.
[MATH. 13]
{right arrow over (b)}1⊥{{tilde over ({right arrow over (b)})}2, {tilde over ({right arrow over (b)})}3}{right arrow over (b)}2⊥{{tilde over ({right arrow over (b)})}1, {tilde over ({right arrow over (b)})}3}{right arrow over (b)}3⊥{{tilde over ({right arrow over (b)})}2, {tilde over ({right arrow over (b)})}1} Equation (7)
In other words, the parallel computation of the sampling process is able to be performed in the same Level. Incidentally, the sampling process for a basis set that does not satisfy the above condition is performed in a sequential manner.
Therefore, the algorithm of this exemplary embodiment is as described below, the algorithm instead serving as the process of fourth to ninth lines in the algorithm shown in
Proposed Algorithm STEP 0
First, as a precomputation process, a Level division of basis vectors constituting the basis matrix of the dual primitive lattice is performed such that the predetermined condition is satisfied.
Level j=a1j, . . . , aI(j)j} (0≤j≤L(K))
Proposed Algorithm STEP 1
Subsequently, the following computation is performed from j=0 corresponding to the lowest Level to j=L(K) corresponding to the highest Level. Note that K indicates the dimension of S.
The last vector (0, . . . , 0, 2)t is included in the Level L(K), which is the highest Level.
Description will be made on a concrete example of enabling a parallel computation in the same Level, by using a basis vector set of the aforementioned predetermined Level. Specifically, description will be made on an example of a sampling process for a case of i+j=3 and i+1=1.
In the sampling process following the algorithm shown in
Coefficients α1 to coefficient α3 correspond to random numbers. Furthermore, the vector (d{right arrow over ( )}-c{right arrow over ( )}) corresponds to a vector z{right arrow over ( )} computed in the inverse-image sampling STEP 3. Since the equation (7) is satisfied in this example, the following relationship is established, for example.
MATH. 16]
{right arrow over (c)}
2
,{tilde over ({right arrow over (b)})}
2
=({right arrow over (c)}−α1{right arrow over (b)}3),{tilde over ({right arrow over (b)})}2={right arrow over (c)},{tilde over ({right arrow over (b)})}2−α1{right arrow over (b)}3,{tilde over ({right arrow over (b)})}2={right arrow over (c)},{tilde over ({right arrow over (b)})}2
In other words, even if c2{right arrow over ( )} is not given, a coefficient α2, which is a random number following the discrete Gaussian distribution, is computed. Similarly, the following relationship is established.
In other words, even if c2{right arrow over ( )} and c1{right arrow over ( )} are not given, a coefficient α3, which is a random number following the discrete Gaussian distribution, is computed. Therefore, the coefficients α1 to α3 are computed in parallel, by which a vector d{right arrow over ( )} is computed at high speed.
[Description of Configuration]
The data structure generation unit 1100 has a function of generating a data structure optimum for a basis matrix of a dual primitive lattice.
As shown in
The configuration example of the data structure generation unit 1100 shown in
In other words, a user is able to previously give a dividing method into respective Levels to the parallel inverse-image sampling device 1000. In the case where the dividing method into respective Levels is previously given, each data set extraction means extracts a data set according to the given dividing method into the respective Levels.
Each data set extraction means has a function of extracting a data set of each Level. For example, the zeroth data set extraction means 1110 extracts a data set of Level 0, {a10, . . . , aI(0)0}.
Moreover, each Gram-Schmidt basis computation means has a function of computing a Gram-Schmidt basis for a data set of each Level. For example, the Gram-Schmidt basis computation means 1120 computes a Gram-Schmidt basis for a data set of Level 0, {10, . . . , a{tilde over ( )}I(0)0}.
The Level parallel computation unit 1200 has a function of computing random numbers following a discrete Gaussian distribution for each Level in parallel.
As shown in
The output unit 1300 has a function of outputting random numbers or the like computed by the Level parallel computation unit 1200.
[Description of Operation]
Hereinafter, description will be made on an operation in which the parallel inverse-image sampling device 1000 of this exemplary embodiment samples random numbers as arbitrary values on a dual primitive lattice, with reference to
In this example, symbols are defined as follows with N∈Z as a security parameter.
[MATH. 18]
K∈N, q=2K, σ=ω(√{square root over (log N)}) Equation (9)
First, the data structure generation unit 1100 receives input data. Subsequently, the zeroth data set extraction means 1110 to the K-th data set extraction means 111K acquire data sets of respective Levels according to, for example, a given dividing method into respective Levels (step S100). The process of step S100 corresponds to a process of grouping in such a way that a predetermined condition is satisfied.
Subsequently, the zeroth data set extraction means 1110 inputs the extracted data set of Level 0 into the Gram-Schmidt basis computation means 1120. The Gram-Schmidt basis computation means 1120 then computes a Gram-Schmidt basis for the data set of Level 0 (step S110).
Subsequently, the Gram-Schmidt basis computation means 1120 inputs the computed Gram-Schmidt basis into other all Gram-Schmidt basis computation means and the zeroth parallel computation means 1210.
Similarly, the first data set extraction means 1111 inputs an extracted data set of Level 1 into the Gram-Schmidt basis computation means 1121. The Gram-Schmidt basis computation means 1121 then computes the Gram-Schmidt basis for the data set of Level 1 (step S111).
Subsequently, the Gram-Schmidt basis computation means 1121 inputs the computed Gram-Schmidt basis into other all Gram-Schmidt basis computation means and a first parallel computation means 1211.
Similarly, the K-th data set extraction means 111K inputs the extracted data set of Level L(K) into the Gram-Schmidt basis computation means 112K. The Gram-Schmidt basis computation means 112K then computes the Gram-Schmidt basis for the data set of Level L(K) (step S11K).
Subsequently, the Gram-Schmidt basis computation means 112K inputs the computed Gram-Schmidt basis into other all Gram-Schmidt basis computation means and the K-th parallel computation means 121K. The processes of the above steps S100 to S11K constitute the precomputation process.
Subsequently, the parallel inverse-image sampling device 1000 generates random numbers following the discrete Gaussian distribution on the dual primitive lattice. First, the zeroth parallel computation means 1210 receives u0{right arrow over ( )} from the input means (not shown). Incidentally, u0{right arrow over ( )} corresponds to c{right arrow over ( )} in the algorithm shown in
Subsequently, the zeroth parallel computation means 1210 generates, in parallel, random numbers following a discrete Gaussian distribution with u0{right arrow over ( )} on the lattice of Level 0 as the center (step S120). After generating the random numbers, the zeroth parallel computation means 1210 inputs an output value u1{right arrow over ( )} into the first parallel computation means 1211.
Subsequently, the first parallel computation means 1211 receives u1{right arrow over ( )} from the zeroth parallel computation means 1210. The first parallel computation means 1211 generates, in parallel, random numbers following a discrete Gaussian distribution with u1{right arrow over ( )} on the lattice of Level 1 as the center (step S121). The first parallel computation means 1211 inputs an output value u2{right arrow over ( )} into a second parallel computation means 1212.
Hereinafter, the respective parallel computation means sequentially perform the processes corresponding to the process of step S120. Finally, the K-th parallel computation means 121K receives uL(K){right arrow over ( )} from a (K−1)th parallel computation means 121(K−1). The K-th parallel computation means 121K generates, in parallel, random numbers following a discrete Gaussian distribution with uL(K){right arrow over ( )} on the lattice of Level L(K) as the center (step S12K).
Unless the basis vector of Level L(K) satisfies the condition of being orthogonal to other all Gram-Schmidt bases in the same Level, the K-th parallel computation means 121K sequentially generates random numbers following the discrete Gaussian distribution.
The K-th parallel computation means 121K inputs uL(K)+1{right arrow over ( )} into the output unit 1300. After the output unit 1300 outputs uL(K)+1{right arrow over ( )}, the parallel inverse-image sampling device 1000 ends the sampling process.
Incidentally, a device (not shown) other than the parallel inverse-image sampling device 1000 subtracts u0{right arrow over ( )} from the output uL(K)+1{right arrow over ( )} to find a linear sum of random numbers and bases. The process of finding the linear sum of random numbers and bases corresponds to a process of computing a vector z{right arrow over ( )} in the inverse-image sampling STEP 3. Moreover, the parallel inverse-image sampling device 1000 may find the linear sum of random numbers and bases.
The object of the present invention is to increase the speed of the sampling process by optimizing the data structure of the basis matrix S of the dual primitive lattice so as to enable the execution of a parallel computation.
An inverse-image sampling process of a trapdoor one-way function requires generation of random numbers following a discrete Gaussian distribution on a predetermined lattice, which is referred to as “dual primitive lattice.” In this exemplary embodiment, an algorithm for optimizing the data structure of the basis matrix of the dual primitive lattice is introduced into a process of generating random numbers.
With the introduction of the algorithm for optimizing the data structure, an algorithm for generating random numbers on the dual primitive lattice described in NPL 1 is partially rewritten to an algorithm enabling the execution of a parallel computation. In other words, a high-speed inverse-image sampling process is implemented.
The following describes a reason for the implementation of the high-speed inverse-image sampling process. In a general method of outputting random numbers following the discrete Gaussian distribution on the dual primitive lattice, there is used an algorithm for generating random numbers following a discrete Gaussian distribution on a general lattice, which is not limited to the dual primitive lattice.
In the algorithm for generating random numbers following the discrete Gaussian distribution on the general lattice, the random numbers are output after sequentially performing procedures for a discrete Gaussian distribution on integers for each basis vector on the lattice as an output target.
If there is a predetermined type of orthogonality relation between basis vectors, a procedure for the discrete Gaussian distribution is performed in parallel between the basis vectors having the orthogonality relation. In other words, the procedure for the discrete Gaussian distribution need not be sequentially performed.
For utilization of the above characteristics, the parallel inverse-image sampling device 1000 of this exemplary embodiment performs level division of the basis vectors so that the above orthogonality relation is satisfied within the same level, particularly for the basis matrix of the dual primitive lattice.
If the algorithm for generating random numbers following the discrete Gaussian distribution is performed after the execution of the above processes, a parallel computation of random numbers can be performed within the same level, thereby enabling execution of a high-speed inverse-image sampling process. If the level division is performed for Level 0 to Level N, the processing time of the inverse-image sampling process is almost proportional to log2N.
The parallel inverse-image sampling device 1000 of this exemplary embodiment may be implemented by, for example, a central processing unit (CPU) that performs processing according to a program stored in a non-transitory storage medium. Specifically, the data structure generation unit 1100, the Level parallel computation unit 1200, and the output unit 1300 may be implemented by the CPU that performs processes according to a program control, for example. Furthermore, the parallel inverse-image sampling device 1000 of this exemplary embodiment may be a data processor.
Furthermore, the respective units of the parallel inverse-image sampling device 1000 of this exemplary embodiment may be implemented by hardware circuits. For example, the data structure generation unit 1100, the Level parallel computation unit 1200, and the output unit 1300 are each implemented by large scale integration (LSI). Alternatively, these units may be implemented by a single LSI.
Subsequently, the outline of the present invention will be described.
The configuration enables the inverse-image sampling device to sample arbitrary values, in parallel, as random numbers following discrete Gaussian distributions having different centers. The sampled arbitrary values are used to generate an inverse image of a trapdoor one-way function.
Furthermore, the basis vectors for the lattice may be vectors each having a non-zero component of (2, −1).
According to the above configuration, the inverse-image sampling device is able to sample arbitrary values as random numbers following a discrete Gaussian distribution in parallel for each of the bases constituting the basis matrix of a dual primitive lattice.
Moreover, the sampling means 12 may acquire an arbitrary vector and sample arbitrary values as random numbers following a discrete Gaussian distribution with an element of the acquired arbitrary vector as the center and may output a vector composed of the sampled arbitrary values and a plurality of basis vectors included in the group.
The above configuration enables the inverse-image sampling device to generate an inverse image of a trapdoor one-way function.
Furthermore, the inverse-image sampling device 10 may include a plurality of sampling means 12 and the plurality of sampling means may include a sampling means that receives an input of a vector output from another sampling means.
The above configuration enables the inverse-image sampling device to generate the inverse image of the trapdoor one-way function at higher speed.
Furthermore, the inverse-image sampling device 10 may include a generation means that generates a Gram-Schmidt basis vector of the basis vector included in the group (for example, the Gram-Schmidt basis computation means 1120 to the Gram-Schmidt basis computation means 112K), and the sampling means 12 may sample arbitrary values by using the generated Gram-Schmidt basis vector.
The above configuration enables the inverse-image sampling device to sample arbitrary values as random numbers following discrete Gaussian distributions having different centers at higher speed.
Furthermore, the inverse-image sampling device 10 may include the same number of generation means as the number of groups generated by the grouping means 11 with grouping.
The above configuration enables the inverse-image sampling device to sample arbitrary values as random numbers following discrete Gaussian distributions having different centers at higher speed.
Although the present invention has been described with reference to the exemplary embodiments and examples hereinabove, the present invention is not limited thereto. A variety of changes, which can be understood by those skilled in the art, may be made in the configuration and details of the present invention within the scope thereof.
10 Inverse-image sampling device
11 Grouping means
12 Sampling means
1000 Parallel inverse-image sampling device
1100 Data structure generation unit
1110 Zeroth data set extraction means
1111 First data set extraction means
111K K-th data set extraction means
1120 to 112K Gram-Schmidt basis computation means
1200 Level parallel computation unit
1210 Zeroth parallel computation means
1211 First parallel computation means
121K K-th parallel computation means
1300 Output unit
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2017/018030 | 5/12/2017 | WO | 00 |