This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2020-019948, filed on Feb. 7, 2020; the entire contents of which are incorporated herein by reference.
Embodiments described herein relate generally to an encryption device, a decryption device, an encryption method, a decryption method, an encryption program product, and a decryption program product.
Cryptography is a technique widely used for protecting the confidentiality and authenticity of information in a networked society in which people communicate with a large amount of information such as e-mails exchanged over a network. However, even the RSA cryptography and elliptic curve cryptography, which are currently widely accepted versions of the technique, cannot be free of a potential risk of decipherment by a practical quantum computer expected to appear in the near future.
An encryption device according to an embodiment includes one or more hardware processors configured to: acquire a public key including a multivariable indeterminate equation X(x1, . . . , xl) and an identification polynomial f(t), the multivariable indeterminate equation X(x1, . . . , xl) having, as coefficients, elements of a ring Fp[t]/g(t) (where Fp[t] represents a univariate polynomial ring on a finite field Fp and g(t) represents a modular polynomial); disperse and embed a message m as coefficients of a plurality of plaintext polynomial factors mi(x1, . . . , xl) (i=1, . . . , k) having, as coefficients, polynomials with a limited degree among the elements of the ring Fp[t]/g(t); generate a plaintext polynomial M(x1, . . . , xl) by multiplying the plaintext polynomial factors mi(x1, . . . , xl) (i=1, . . . , k); randomly generate a random polynomial r(x1, . . . , xl) having, as a coefficient, an element of the ring Fp[t]/g(t); randomly generate a noise polynomial e(x1, . . . , xl) having, as coefficients, polynomials with a limited degree among the elements of the ring Fp[t]/g(t); and generate a ciphertext c(x1, . . . , xl)=Epk(M,f,r,e;X) by executing encryption processing of performing an operation including at least one of adding, subtracting, and multiplying the identification polynomial f(t), the random polynomial r(x1, . . . , xl), the noise polynomial e(x1, . . . , xl), and the multivariable indeterminate equation X(x1, . . . , xl) to, from, or by the plaintext polynomial M(x1, . . . , xl).
Embodiments of an encryption device, a decryption device, an encryption method, a decryption method, an encryption program product, and a decryption program product will be described in detail below with reference to the accompanying drawings.
Cryptographic technology can be roughly divided into common-key cryptographic technology and public-key cryptographic technology. Common-key cryptography is a cryptographic method based on a data scrambling algorithm. The common-key cryptography enables high-speed encryption/decryption, whereas secret communication and authentication communication can only be performed between two parties each being given a common key in advance. Public-key cryptography is a cryptographic method based on a mathematical algorithm. The public-key cryptography is not as fast as encryption/decryption as common-key cryptography, but it does not require pre-key sharing. Public-key cryptography enables authentication communication by performing secret communication using the public key disclosed by the destination and applying a digital signature using the sender's private key (to prevent impersonation).
For this reason, common-key cryptography is mainly used to encrypt information that needs to be decrypted in real time after reception, such as pay digital broadcasting, and a method is adopted to deliver the decryption key separately used by a key distribution system called a conditional access system only to subscribers. By contrast, online sites on the Internet require encryption to protect customer information (credit card numbers, addresses, and the like) from eavesdropping, but it is not always possible to issue an encryption key in advance; and therefore, public-key cryptography is often used.
Typical examples of public-key cryptography include RSA cryptography and elliptic curve cryptography. In RSA cryptography, the difficulty of the prime factorization problem serves as the basis of security, and the power residue operation is used as the encryption operation. In elliptic curve cryptography, the difficulty of the discrete logarithm problem on an elliptic curve serves as the basis of security, and the point operation on the elliptic curve is used for the encryption operation. For these methods of public-key cryptography, although a attack method for a specific public key has been proposed, a general attack method is not known. Thus, attack methods for a serious problem regarding security have not been found so far except a attack method by a quantum computer described later.
Other examples of public-key cryptography include knapsack cryptosystem (known as NP problem) with the difficulty of the knapsack problem serving as the basis of security, and cryptosystems based on multivariate polynomials configured by using a field extension theory and with the solution problem of a system of equations serving as the basis of security. However, with respect to the knapsack cryptosystem, the attack method is already known in almost all instances, and it cannot be said that the security it provides is quite doubtful.
Although a powerful attack method is known for cryptosystems based on multivariate polynomials, there are also instances in which known attack methods do not work, and thus deterioration in security has become but not become decisive yet. However, the key size required to avoid known decryption methods has increased, which come to be seen as a problem.
The RSA cryptography and elliptic curve cryptography, which are currently widely accepted versions of the technique, cannot be free of a potential risk of decipherment by a practical quantum computer expected to appear in the near future. A quantum computer is a computer that can perform massively parallel computation (based on a principle different from the present computers) by utilizing a physical phenomenon called entanglement known in quantum mechanics. The quantum computer is a virtual computer the operation of which has been confirmed only at the experimental level so far, but research and development for its implementation are underway. In 1994, Shor showed that an algorithm for efficiently solving prime factorization and discrete logarithm problems can be constructed, using this quantum computer. That is, when the quantum computer becomes available, the RSA cryptography based on the prime factorization and the elliptic curve cryptography based on the discrete logarithm problem (on the elliptic curve) will be decrypted.
Under such circumstances, research on public-key cryptography, which has the possibility of maintaining safety even if a quantum computer becomes available, has been conducted in recent years. Lattice-based cryptography is an example of public-key cryptography that is still considered feasible at present and difficult to decipher even with a quantum computer. Lattice-based cryptography is a type of public-key cryptography the security of which is based on the problem of finding the closest point, among the points other than an original, to the origin (shortest vector problem) in the discrete n-dimensional vector space (linear space) called lattice.
The shortest vector problem is an NP-hard problem, but since it is a linear problem, small-sized problems can be easily solved. Therefore, the number of dimensions for achieving security is increased, and the key size of a public key, a private key, or the like is increased. Furthermore, public-key cryptography requires a larger circuit scale and takes a longer processing time than common-key cryptography, so that there is a problem in that it cannot be implemented in a low power environment, such as a mobile terminal, or it takes a long processing time even if it is implemented. For this reason, there is a demand for public-key cryptography that can be realized even in a low power environment.
In general, public-key cryptography is configured to find difficult-to-calculate problems (such as the prime factorization problem and discrete logarithm problem), and decipher a ciphertext (without knowing the private key) in such a way that is equivalent to solving the difficult-to-calculate problems. However, conversely, even if one problem that is difficult to calculate is defined, it is not always possible to easily construct public-key cryptography that uses that problem as the basis of security. This is because when the security is based on a problem that is too difficult to calculate, the problem of generating a key will also be difficult and cannot be configured. On the other hand, when the problem is made easy enough to enable key generation, deciphering the key will become easy accordingly.
Creativity is thus required to configure public-key cryptography in finding a difficult-to-calculate problems and changing it into a problem with a fine balance such that the problem is easy enough to generate a key but not easy to decipher (without knowing the generated private key). Since such a configuration is difficult to make, only several examples of public-key cryptography have been proposed so far. Under such circumstances, public-key cryptography (JP 2010-204466 A) is proposed, using an algebraic surface that cannot be efficiently deciphered even with a calculation by a quantum computer and that is expected to be processed at high speed even in a low power environment.
The public-key cryptography disclosed in JP 2010-204466-A has a private key as two sections corresponding to an algebraic surface X(x,y,t) and a public key as the algebraic surface X(x,y,t), and includes polynomial generation means and encryption means. The polynomial generation means performs processing of embedding a plaintext m in a plaintext polynomial m(x,y,t) and generating a random polynomial h(x,y,t), s1(x,y,t), s2(x,y,t), r1(x,y,t), r2(x,y,t) of three variables x, y, t. The encryption means generates two ciphertexts c1=Epk(m,s1,r1,h,X), c2=Epk(m,s2,r2,h,X) from the plaintext polynomial m(x,y,t) through encryption processing of performing operation including at least one of addition, subtraction, and multiplication of each polynomial and a definition expression X(x,y,t). The public-key cryptography disclosed in JP 2010-204466-A was deciphered since there were two ciphertexts without any noise term, although the ciphertexts had nonlinearity.
In the following, in view of such a current situation, an embodiment will explain public-key cryptography that has the possibility of ensuring security even if a practical quantum computer appears and that can eliminate vulnerability. Specifically, public-key cryptography that can eliminate vulnerability is constructed by hiding a private key in a nonlinear polynomial so that one ciphertext can have a nonlinear structure and adding noise.
Explanation of Algebra
First of all, the algebra used in the embodiment will be defined. To begin with, Z represents a set of integers, and Zq represents the coset of the integer Z corresponding to a natural number q. As a coset, Zq is generally expressed as Zq={[0], [1], . . . , [q−1]}. The elements of Zq satisfy the following properties, so that operations of addition, subtraction, and multiplication can be defined.
[a]+[b]=[a+b]
[a]−[b]=[a-b]
[a]·[b]=[ab]
A set is referred to as a ring, which enables the operations of addition, subtraction, and multiplication to be defined as described above and satisfies associativity. The ring includes additive identify 0 as well as an inverse element [−x] that results in 0 when added to an element x other than 0.
The division operation can be defined only for [b] with an element [x] satisfying [b][x]=[x][b]=[1]. When such an element [x] exists, the element [x] is referred to as an inverse element of [b] and is expressed as [b−1] Thus, the division [a]/[b] for [b] with the inverse element is calculated by multiplying [a] by the inverse element [b−1] satisfying [b]·[b−1]=[1] ([a]·[b−1]).
The element [b] in Zq has the inverse element [b−1] under a necessary and sufficient condition GCD(b,q)=1. Specifically, the element [b] in Zq has the inverse element [b−1] only when b and q are coprime (relatively prime). For example, when q is 5 and b is 3, these numbers are coprime, and thus the inverse element is obtained as [3−1]=[2]. However, when q is 6, GCD(3,6)=3 holds, the numbers are not relatively prime, and thus the division cannot be defined due to the lack of the inverse element.
Meanwhile, [0] represents a set of numbers that can be divided by q without a remainder. It can be more explicitly expressed as [0]={ . . . , −2q, −q, 0, q, 2q, . . . }. All the elements of the set [0] results in the same answer in the calculation defined with Zq. Thus, for the sake of simplicity, the calculation is assumed to be performed using a single element (representative element) in the set [0]. The representative element may be any element included in this set (due to the feature described above), and is set to be 0 in the embodiment. Similarly, the smallest integers in [1] and [2] (1 and 2, respectively) are used as the representative element, and {0, 1, . . . , q−1} is used as the representative for Zq.
When q is a prime number, all representative elements other than 0 are coprime to q, whereby division can be defined. Thus, when q is a prime number, addition, subtraction, multiplication and division can be defined with Zq. Such a set that is a commutative ring with elements other than 0 having inverse elements is known as a field. In particular, a field, such as Zq where q is a prime number, including a limited number of elements is referred to as a finite field. The finite field is either a field with the number of elements therein being a prime number or a field with the number of elements being a prime power, and the former is referred to as a prime field. Note that Zq mentioned herein is a prime field.
Next, the notation and definitions related to polynomials will be described. First of all, Z[t] represents a set of univariate polynomials, where an integer Z is a coefficient, and t is a polynomial variable. Furthermore, Zq[t] represents a set of polynomials, where a factor ring Zq is a coefficient. It should be quite obvious addition, subtraction, and multiplication can both be defined with Z[t] and Zq[t]. However, division of polynomials cannot be defined, except for the polynomials including constant terms only, due to the lack of inverse element.
Next, explanation will be given on a coset in a case where a polynomial ring Zq[t] is divided by a polynomial tn−1. For example, when n=3 and q=5, t3 is congruent with 1 (the same element in the coset). Thus, an element with a degree not larger than n−1, which can be expressed by t3+2t2+4t+2=2t2+4t+3, can be obtained. Generally, a coset represented by terms with a degree not larger than n−1 only is obtained (because to is congruent with 1). A univariate polynomial with a residue such as tn−1 is referred to as a modular
polynomial.
Specifically, with the modlar polynomial t3−1, the addition and subtraction are performed as follows.
(t2+3t+4)+(3t2+3t+2)=4t2+t+1
(t2+3t+4)−(3t2+3t+2)=3t2+2
The multiplication is performed as follows.
It can be seen that the normal Zq[t] is performed and then congruence between t3 and 1 is reflected. Furthermore, multiplication and addition (or subtraction) can be combined as follows.
This set is expressed as Zq[t]/(tn−1) and abbreviated as Rq,n. Note that Rq,n is a ring and enables the division to be defined (an element f(t) in Rq,n may have an inverse element) depending on the elements, that is, under a necessary and sufficient condition GCD(f(t),tn−1)=1
For example, when R5,3 (=Z5[t]/(t3−1)) is given, (t2+t+2) and (t3−1) are coprime, enabling calculation (t2+2t+3)−1=2t2+4 by using the extended Euclidean algorithm. Thus, based on the formula (t2+2t+3) (2t2+4)=1, (2t2+4) can be confirmed as the inverse element of (t2+2t+3). Meanwhile, t2−1 has a common factor t−1 with t3−1, and thus has no inverse element.
When a modular polynomial g(t) is an irreducible polynomial on Fq, the inverse element of the elements other than 0 in Rq,n can be calculated, whereby a field is obtained. This field is referred to as an extension field of the finite field Fp and is a finite field with pn elements. The original finite field Fp has p elements and is referred to as a prime field.
In the embodiment, the ring Rp,n and a bivariate polynomial ring Rp,n[x,y] on the ring Rp,n, the finite field Fp, and a univariate polynomial ring Fp[t] on Fp are mainly used as the algebra. In addition, a subset of the ring Rp,n is defined by the following Formula (1) as a polynomial coefficient.
Rp,d={μ(t)∈Rp,n|deg μ(t)≤d} (1)
It should be noted that Rp,d itself does not form a ring, Rp,n is substantially expressed by the following Formula (2), and the degree is substantially n−1.
Rp,n={μ(t)∈deg Rp,n|deg μ(t)≤n−1} (2)
Notation of Bivariate Polynomial
Next, terms and symbols for bivariate polynomials will be defined. First of all, a bivariate polynomial on the ring R is expressed by the following Formula (3).
In Formula (3), τi,j is an element of the ring R. A set Γξ is a set of x and y exponents (i,j) of non-zero monomial expressions in a polynomial ξ(x,y), and is referred to as a term set of the bivariate polynomial ξ(x,y).
For example, a term set of the polynomial on Z7 in the following Formula (4) is expressed by the following Formula (5).
ζ(x,y)=5x3y2+3x2y3+xy2+4x+1 (4)
Γξ={(3,2),(2,3),(1,2),(1,0),(0,0)} (5)
The number of elements of Γξ matches the number of monomials of the bivariate polynomial ξ(x,y). In the following, ξ(x,y) that is clearly a bivariate polynomial may be simply written as ξ.
The product γξη of two term sets Γξ and Γη is defined as in the following Formula (6).
Γξη={(i1+i2,j1+j2)|(i1,j1)∈Γξ(i2,j2)∈Γη} (6)
This means the term set of the polynomial ξ(x,y)η(x,y). When a term set Γ is given, a set of bivariate polynomials on the ring R including this term set is defined as in the following Formula (7). The sign on the left side of Formula (7) represents the bivariate polynomial on the ring R.
Note that the sign/R on the left side of Formula (7) may be omitted when the coefficient ring R is explicit.
Indeterminate Equation and its Solution Problem
An indeterminate equation can be defined as an equation with the number of variables being larger than the number of expressions (included in the equation). The indeterminate equations feature a small number of constraints and a high degree of freedom of solution, and thus in many cases yield a plurality of (in some cases, like its name, indeterminate number of) solutions if any. In fact, the indeterminate equations with an integer coefficient yield innumerable real (or complex) solutions, some of which can be easily obtained as an approximate solution. Unfortunately, this does not usually work for equations that solution of which is in a discrete set such as an integer solution of an indeterminate equation with an integer coefficient, or a solution (on a finite field) of an indeterminate equation on a finite field. Therefore, some theoretical means for narrowing down is required. However, it has been known that generally, whether there is a solution cannot be determined with such means for narrowing down performed for a limited number of times (unsolvable problem).
An indeterminate equation cryptosystem proposed in the embodiment has the following definitions, based on the fact that a solution problem for an indeterminate equation X(x,y)=0 defined on the univariate polynomial ring F[t] has been proven to be one of the unsolvable problems.
Definition 1 (Solution problem for indeterminate equation on univariate polynomial ring Fp[t])
A problem of obtaining a solution ux(t), uy(t) on Fp[t] when the indeterminate equation X(x,y)=0 defined on the univariate polynomial ring Fp[t] is given is referred to as a solution problem for an indeterminate equation on the univariate polynomial Fp[t].
This problem is one of the unsolvable problems for which an absence of a general solution algorithm has been proven.
In the following embodiment, a key generation algorithm and an encryption/decryption algorithm for the indeterminate equation cryptosystem will be described. In the system, plaintexts are distributed and embedded in factors mi(x,y) (i=1, . . . k) of a bivariate polynomial m(x,y) on Fp[t] referred to as a plaintext polynomial. Specifically, in the system, the plaintext polynomial is composed of a product structure (nonlinear structure) expressed by the following Formula (8).
With the product structure (nonlinear structure) of the above Formula (8), in the decryption, the plaintexts cannot be restored until the factor mi(x,y) (i=1, . . . , k) is obtained through factorization after m(x,y) has been restored. In the following, for the sake of simplicity, the degree of x,y of mi(x,y) is set to be 1, and an explanation is given only on a plaintext polynomial with a factor only including polynomials that can be expressed as mi(x,y)=mx,i(t)x+my,i(t)y+m1,i(t).
Furthermore, the following algorithms are provided with example numerical values of a small size. It should be noted that values of a small size are used for the sake of understanding, and the safety of the encryption cannot be guaranteed with such values.
System Parameter
System parameters, which include the following parameters 1. to 8. used in the algorithms, are for guaranteeing security and decryptability.
1. Term set ΓX of a (nonlinear) indeterminate equation X(x,y) expressed by the following Formula (9)
In Formula (9), ΓX includes (0,0).
Example: ΓX={(2,0),(1,1),(0,2),(1,0),(0,1),(0,0)}
2. Random polynomial term set Γr expressed by the following Formula (10)
In Formula (10), Γr includes (0,0).
Example: Γr={(1,0),(0,1),(0,0)}
Furthermore, parameters expressed by the following Formulae (11) to (13) are derived from ΓX and Γr.
DK=max{i+j|(i,j)∈ΓX} (11)
Dr=max{i+j|(i,j)∈Γr} (12)
De=max{i+j|(i,j)∈ΓXr} (13)
In this example, DX is 2, Dr is 1, and Dc is 3. These DX and Dr respectively represent the total degrees of the indeterminate equation X and a random polynomial r. When DX is equal to or larger than 2 as in this embodiment, a nonlinear indeterminate equation is obtained.
3. Prime number p indicating the size of the prime field Fp
Example: p=7
4. Maximum value dm of the degree of each coefficient included in a plaintext polynomial factor mi(x,y) (i=1, . . . , k)
As described above, the plaintext polynomial factor can be expressed as mi(x,y)=mx,i(t)x+my,i(t)y+m1,i(t), whereby ds is expressed as in the following Formula (14).
ds≥maxi=1D
In Formula (14), Dm represents the number of plaintext polynomial factors.
Example: dm=1,Dm=2
5. Maximum value de of the degree of the coefficients included in a noise polynomial e(x,y)
Example: de=2
6. Degree ds of the indeterminate equation
Example: ds=4
Note that ds=degux(t)=deguy(t) holds. The following Formula (15) needs to be satisfied to enable decryption.
ds≥2(dm+1) (15)
7, Degree df of an identification polynomial f(t)
This df satisfies the condition expressed by the following Formula (16) to enable decryption.
df>Dm(ds+de) (16)
Example: df=11>Dm(ds+de)=10
8. Degree n of the modular polynomial g(t) in Rp,n(=Fp[t]/g(t))
Note that g(t) does not necessarily be an irreducible polynomial on Fp. This n satisfies the condition expressed by the following Formula (17) to enable decryption.
n>df(DX+Dr)ds+de (17)
Example: n=27(>11+(2+1)·4+=24)
The above-described p, DX, Dr, dm, and de can be independently set, and the remaining ds, df, and n can be determined in accordance with p, DX, Dr, dm, and dc. Actually, ds, df, and n are in subordination relationship based on the above-described Formulae (15) to (17), whereby dm<ds<<df<n holds.
Private Key
1. Minimum solution u of the indeterminate equation X expressed by the following Formula (18)
u:(x,y)=(ux(t),uy(t)),ux(t),uy(t)∈Rp,d (18)
Example: The private key n is expressed by the following Formula (19) when ds=4 and p=7.
(ux(t),uy(t))=(t4+4t3+5t2t+4,2t4+5t3+t2+t+4 (19)
Public Key
1. Indeterminate equation X(x,y) expressed by the following Formula (20)
X(x,y)=Σ(i,j)∈Γ
Here, the solution of X=0 includes the private key u. Specifically, X(ux(t),uy(t))=0.
Key Generation
The following processing is executed by using the system parameters p, ds, n, ΓX, and Γr as inputs.
Private Key Generation
The polynomials ux(t) and uy(t) of Fp[t] are uniformly and randomly generated under the condition degux(t)=deguy(t)=ds.
Example: The polynomials ux(t) and uy(t) are expressed by Formula (19) described above when p=7 and ds=4, for example.
Public Key Generation
1. Terms other than a constant term a00(t) are uniformly and randomly generated from the term set ΓX of the indeterminate equation. The specific generation method is as follows.
(a) X=0 (substitute X with an initial value 0)
(b) Perform the following for each element (i,j) (other than (0,0)) of ΓX.
i. Uniformly and randomly generate a polynomial aij(t) with the degree not larger than ds from Fp[t].
ii. X=X+aij(t)xiyj (substitute the expression on the right side into X)
Example: When ds=4 and ΓX={(2,0),(1,1),(0,2),(1,0),(0,1),(0,0)}, the X(x,y) generated is expressed by the following Formula (21) for example.
X(x,y)=(5t4+3t2+2t26t+6)x2±(2t4+t3+4t23t+1)xy+(t4+2t3+t2+3t+4)y2+(5t4+2t3+3t+3)x+(2t4+3t3+2t2+2t)y (21)
2. The constant term a00(t) is calculated with the following Formula (22).
Example: In the above example, a00(t) is represented by the following Formula (23), and X is represented by the following Formula (24).
a00(1)=6t12+t11+4t01+t8+6t7+6t6+4t5+2t4+5t3+4t2+2t+6 (23)
(5t4+3t3+2t2+6t+6)x2+(2t4+t3+4t23t+1)xy+(t4+2t3+t2+3t+4)y2+(5t4+2t3+3t+3)x+(2t4+3t3+2t2+2t)y+6t12+t11+4t10+t8+6t7+6t6+4t5+2t4+5t3+4t2+2t+6 (24)
3. The degree of the constant term a00(t) to ds or less.
The indeterminate equation X(x,y) has (x,y)=(ux(t),uy(t)) at the zero point. Thus, a polynomial X′(x,y)=X(x,y)−Y(x,y) resulting from addition/subtraction using another polynomial Y(x,y) with the same zero point, also has the same zero point. Therefore, a00(t)=Q(t)ux(t)2+R(t)(degR(t)<2d) holds, where Q(t) represents a quotient obtained by dividing a00(t) by ux(t)2 and R(t) represents the residue. Thus, (x,y)=(ux(t),uy(t)) is the solution of −Q(t)x2+a00(t)−R(t)=0. Thus, calculation of X′(x,y)=X(x,y)−Y(x,y) with Y(x,y)=−Q(t)x2+a00(t)−R(t) results in X′(x,y)=X(x,y)+Q(t)x2−R(t) with dega00(t)>degR(t). Thus, a polynomial with a constant term having smaller degree is obtained. By repeating this by setting X′(x,y) to X(x,y) each time, dega00(t) becomes smaller than ds.
In the case of this example, X is expressed by the following Formula (25).
X=X(x,y)=(6t4+t3+2t2+2t+3)x2+(2t4+t3+4t2+3t+1)xy+(t4+2t3+t2+3t+4)y2+(5t4+3t3+6t2+5t+1)x+(2t4+3t3+2t22t)y+4t3+2t2+3t+1 (25)
With the degree of the polynomials serving as coefficients thus equalized, X(x,y) can be regarded as an element of Fp[t]/(t5−1).
Encryption
Next, the encryption processing according to the embodiment will be described.
Plaintext Embedding
In the embodiment, the plaintext polynomial for embedding the plaintext has the product structure as expressed in the above Formula (8), and thus direct embedding is not an option. Therefore, an encryption device of the embodiment disperses and embeds plaintext into plaintext polynomial factors mi(x,y) (i=1, . . . , Dm). The factor mi(x,y) of the plaintext polynomial can be expressed as mi(x,y)=mx,i(t)x+my,i(t)y+m1,i(t) as described above. The degree of each of the coefficients mx,i(t), my,i(t), and m1,i(t) is dm. The encryption device of the embodiment performs p-adic expansion on a plaintext M as expressed by the following Formula (26).
M=(ad
Here, the plaintext M is embedded as in the following Formula (27).
ad
When p=7 and dm=1 are given, the encryption device of the embodiment disperses and embeds a plaintext (3,4,2,4,2,4)(7) as a factor of a plaintext polynomial. For example, when Dm=2, the plaintext (3,4,2,4,2,4)(7) may be dispersed to result in m1=(1,4,2,3,6,4)(7) and m2=(3,1,1,6,5,1)(7). The plaintext is restored by obtaining the product mrm2=(3,4,2,4,2,4)(7) for each vector element. The plaintext may be dispersed to a plurality of elements in this manner as follows for example.
When dispersing a plaintext m to m1, . . . , and mDm, the encryption device of the embodiment generates m1, . . . , mDm-1 as random data with the same size as the plaintext m, and generates mm as m·(m1·m2, . . . , mDm-1)−1. Here, (m1·m2, . . . , mDm-1)−1 is defined as an array of multiplied inverse elements of the respective elements of vector
Encryption Algorithm
1. The plaintext is dispersed and embedded to the factors mi(x,y) (i=1, . . . , Dm) of the plaintext polynomial with the degree dm in the manner described above. The dispersion resulting in m1=(1,4,2,3,6,4)(7) and m2=(3,1,1,6,5,1)(7) is achieved by the following.
m1(x,y)=(t+4)x+(2t+3)y+6t+4
m2(x,y)=(3t+1)x+(t+6)y+5t+1
2. Generation of random polynomial r(x,y)
A bivariant random polynomial r(x,y) is generated from a random polynomial term set Γr. The specific generation method is as follows.
(a) r=0 (substitute initial value 0 for r)
(b) The following is executed for each (i,j) in Γr.
i. A polynomial rij(t) with the degree n−1 is uniformly and randomly generated from Rp,n.
ii. r=r+rij(t)xiyi (substitute the expression on the right side into r)
Example: When p=7, n=27, and Dr=1, the random polynomial r generated is expressed by the following Formula (28), for example.
r=(2t26+5t25+3t24+2t23+t22+t21+t20+4t19+5t17+2t16+2t15+6t14+3t13+t12+2t10+3t9+4t8+4t7+3t6+2t5+6t4+t3+t2+4t+3)x+2t26+4t25+3t24+5t23+t22+t21+3t20+4t18+4t17+2t16+3t13+3t12+5t11+2t10+5t9+5t8+5t7+5t6+t5+6t4+4t3+t2+t2)y+2t26+6t25+3t24+3t23+4t21+3t20+3t19+6t18+5t17+3t16+2t15+4t14+4t13+2t12+6t11+6t10+2t9+2t8+4t7+t6÷2t5+3t4+6t3+3t2+2t+1 (28)
3. Generation of noise polynomial e(x,y)
A noise polynomial e(x,y) is generated from the noise polynomial form Γe. The specific generation method is as follows.
(a) e=0 (substitute initial value 0 for e)
(b) The following is executed for each OD in Γe.
i. Polynomial eij(t) with the degree de is uniformly and randomly generated from Rp,de.
ii. e=e+eij(t)xiyi (substitute the expression on the right side into e)
Example: When p=7, n=27, Dr=1, and de=2, the noise polynomial e generated is expressed by the following Formula (29), for example.
e=(3t2+5t+3)x3+(5t2+5t)x2y+(2t2+2t)xy2+(4t2+6t+6)y3+(t2+5t+6)x2+(t2+2t)xy+(6t2+5t+1)y2+(6t2+6t+1)x+(2t2+2t+1)y+3t2+3t+3 (29)
4. Generation of ciphertext c(x,y)
A ciphertext c(x,y)=Epk(M,f,r,e;X) is calculated with the following Formula (30).
c(x,y)=m1(x,y)m2(x,y) . . . mD
Example: In this case, the ciphertext c is expressed by the following Formula (31).
c=(2t26+4t25+t23+6t22÷3t21+3t20+t19+3t18+5t17÷3t16+4t15+3t14+2r13÷t12÷3t10+6t9+4t8+5t6+2t5+2t4+5t3+3t2+3t+5)x3+(t26+4t25÷2t24+6t23+2t22+6t19+5t18+2t17+t16+2t15+3t14+4t136t10+2t9+4t8+t7+t6+3t5+5t3+2t+3)x2y+(t26+3t24+6t22+6t21+3t20+t19+2t18+3t17+3t16+3t14+2t12+t10+4t9+t8+2t7+6t6+5t5+3t4+3t3+2t2+3t+5)xy2+(6t26+5t25+5t24+2t23+t421+5t20+6t19+2t18+4t17+3t16+3t14+t13+t12+5t11+4t9+4t8+2t7+2t6+4t5+2t4+t3+2t2+6t+5)y3+(6t26+3t25+6t24+6t22+t21+6t20+5t19+t17+t16+t15+5t14+5t11+6t10+6t9+6t8+2t7+2t6+4t5+3t4+4t3+3t2+t+5)x2+(2t25+3t24÷t23+3t22+6t21+4t20+6t19+6t18+÷4t17+2t16+5t15+6t13+3t12+3t11+t10+5t9+t8+6t7+t6+5t5+t4+5t3+6t2+6t+3)xy+(3t26+5t25+4t24+3t23+t22+t21÷t20+2t19+6t18+4t17+5t16+3t15+2t14+2t13+t12+2t11+4t10+6t9+4t8+t7+3t6+2t5÷4t3+2t2+4t)y2+(6t26+4t25+3t23+3t22+4t21+6t20+6t19+4t18+5t17+3t14+6t13+6t12+t11+t10+4t9+4t8+4t7+2t6+t5÷5t4÷t3+5t2+6t+1)x+(4t26+5t25+6t24+3t23+3t22+3t21+3t20+t18+5t17+3t15+2t13+6t11+2t10+6t8+2t7+5t6+6t5+2t4+4t3+5)y+3t26+2t23+2t22+t21+2t20+t19+6t17+5t16+2t15+2t14+3t13+3t12+t11+t10+5t9+3t8+t7+4t6+t5+6t4+t5+6t4+3t3+2t2+3t+2 (31)
Decryption
Next, decryption processing of the embodiment will be described.
It is to be noted that substitution of minimum solution u:(x,y)=(ux(t),uy(t)) into the indeterminate equation X(x,y) results in X(ux(t),uy(t))=0.
Decryption Algorithm
The decryption algorithm is as follows.
1. Substitution of solution
The following Formulation (32) is calculated with the solution u substituted into c(x,y).
c(ux(t),uy(t)=m1(ux(t),uy(t))m2(ux(t)) . . . mD
Here, degc(ux(t),uy(t))<n holds due to the condition for obtaining n (Formula (17) described above). This means that the result is the same regardless of whether c(ux(t),uy(t)) is an element of Rp,n or an element of Fp[t]. Thus, in the following, c(ux(t),uy(t)) is regarded as an element of Fp[t]. In this example, this results in the following Formula (33).
c(ux(t),uy(t))=t25+6t24+2t23+t22+6t21+6t20+t19+2t18+2t16+2t14+t13+6t11+2t10·2t9+3t8+2t7+t6+5t5+4t4+3t3+t2+4t+1 (33)
2. Product of plaintext polynomials m1(ux(t),uy(t))m2(ux(t), uy(t)), . . . , mk(ux(t),uy(t)) is obtained using c(ux(t),uy(t)) mod f(t). This is because the condition (Formula (16) described above) guarantees the following Formula (34)
c(ux(t),uy(t))mod f(t)=m(ux(t),uy(t)) (34)
In this example, the product of plaintext polynomials is expressed by the following Formula (35).
m(ux(t),uy(t))=4t10+4t9+5t8+4t7+t6+6t5+6t4+4t3+2t2+4t+4 (35)
3. Factorization of m(ux(t),uy(t))
In this example, this is implemented with the following Formula (36).
4(t+1)(t+4)(t4+t3+t2+5)(t4+2t3+2t2+6) (36)
4. The plaintext polynomials are restored from the combination of factors obtained in step 3.
In this example, (3t+5)x+(6t+2)y+4t+5 is restored from the factor (t+1)(t4+t3+t2+5). Furthermore, (2t+3)x+(3t+4)y+t+3 is restored from the factor (t+4)(t4+2t3+2t2+2t+6). Thus, there are two combinations of factors and one of these needs to be designated.
Restoration of Plaintext Polynomial Factor
Next, an explanation will be given on how the factor combination is designated and how the restoration is performed. A method for restoring the plaintext polynomial factor mi(x,y) from mi(ux(t),uy(t)) obtained in step 4 of the above decryption algorithm will be described. Here, for the sake of description, an algorithm for restoring the factor m(x,y) of the plaintext polynomial from m(ux(t),uy(t)) without subscripts will be described.
It is assumed that a correct m(ux(t),uy(t)) (that is, one corresponding to the correct plaintext polynomial m(x,y)) is obtained. In this case, the plaintext polynomial is obtained by the following Formula (37).
m(x,y)=mx(t)x+my(t)y+m1(t) (37)
Here, since degmx(t), degmy(t), degm1(t)≤dm holds, this can be further expressed as in the following Formula (38).
Thus, a formula obtained by substitution with the private key (x,y)=(ux(t),uy(t)) is substituted with mx,i, my,i, m1,i(i=0, . . . ,dm) serving as variables is compared with m(ux(t),uy(t)) (the following Formula (39)).
As described above, Formula (39) has the variable on the right side only and has no variable on the left side, whereby simultaneous equations are obtained through coefficient comparison between the right and left sides. Moreover, since the variables on the right side are not multiplied by each other, simultaneous linear equations are obtained. The plaintext polynomial can be restored by solving them.
It can be understood that the number of equations derived from Formula (39) described above is ds+dm+1, based on the fact that the number of variables is 3(dm+1) and that the formula is a plaintext polynomial in the form expressed by Formula (37) described above. Considering the fact that the number of equations needs to be equal to or larger than the number of variables, ds≥2(dm+1) needs to be satisfied to obtain a one single solution (the above Formula (15)). Here, a failure to obtain such a solution indicates that m(ux(t),uy(t)) is incorrect, and thus the factor is discarded.
Narrowing Down Plaintext Polynomial Factors
Next, using the example of the embodiment, a detailed description will be given on a method of extracting candidates of the factor m(ux(t),uy(t)) corresponding to the plaintext polynomial factor from factors obtained by factorizing M(ux(t),uy(t)) and narrowing down the candidates.
To begin with, the degree of the factor m(ux(t),uy(t)) is ds+dm and thus is fifth degree, since ds=4 and dm=1 hold in this example. Furthermore, the factorization is as expressed by the following Formula (40), and thus the pair of factors is as expressed in one of the following Formulae (41) and (42).
m(ux(t),uy(t))=4(t+1)(t+4)(t4+t3+t2+5)(t4+2t3+2t2+2t+6) (40)
2(t+4)(t4+2t3+2t2+2t+6),2(t+1)(t4+t3+t2+5) (41)
2(t+4)(t4+t3+t2+5),2(t+1)(t4+2t3+2t2+2t+6) (42)
Actual restoration of the plaintext using the above-described Formula (41) results in the following Formula (43). The following Formula (43) matches the quadruple of the plaintext polynomial factor used for the encryption.
(4t+6)x+(6t+1)y+2t+6,(6t+3)x+(5t+4)y+t+3 (43)
On the other hand, restoration of the plaintext using the above-described Formula (42) results in the following Formula (44). The following Formula (44) does not match any constant multiple of the plaintext polynomial factor used for the encryption.
3x+(t+6)y+3t+4,(t+3)x+(4t+2)y+6t+6 (44)
The actual restoration of the plaintext using the above-described Formula (43) results in (4,6,6,1,2,6) (6,3,5,4,1,3)=(3,4,2,4, 2,4) matching the original plaintext. On the other hand, the restoration of the plaintext using the above-described Formula (44) results in (0,3,1,6,3,4) (1,3,4,2,6,6)=(0,2,4,5,4,3) not matching the plaintext. For identifying these, the embodiment introduces an authenticator in plaintext.
The authenticator is originally used to confirm the validity of the message, but is used herein to identify the correct plaintext. There are various types of authenticators, but a simple example is used herein. Specifically, an authenticator (a5,a6)=(a1+a3+4,a2+a4+3) is defined for a plaintext (a1,a2,a3,a4) that uses an element of F7, and is a part of a plaintext (a1,a2,a3,a4,a5,a6).
Thus, the authenticator ((a5,a6)) of the embodiment is calculated from the original encryption target data (the plaintext (a1,a2,a3,a4)) through a predetermined calculation. The message m includes the encryption target data (plaintext (a1,a2,a3,a4)) and the authenticator ((a5,a6)).
When this authenticator is applied to this example, an authenticator for a plaintext (3,4,2,4) restored using the above-described Formula (43) is (2,4) which matches the authenticator (2,4) in the decryption result. On the other hand, the authenticator for plaintext (0,2,4,5) restored using the above-described Formula (44) is (1,3), which does not match the authenticator (4,3) in the decryption result. Thus, the plaintext (3,4,2,4,2,4) restored from the above Formula (43) is obtained as the decryption result.
In this example, a relatively simple combination is obtained because the degrees of the factors of m(ux(t),uy(t)) are each (1,1,4,4). When the degree of the factors is (1,1,2,2,2,2) for example, more complex combination is obtained. In such a case, an algorithm for solving a partial sum problem is used (but will not be described in detail herein). The partial sum problem is solved to obtain a partial sequence with which a certain number N is obtained by selecting from and adding up some elements in a sequence of natural numbers a1, a2, . . . , a1 with the length l. In this example, N is 5, and the solution of the problem is to obtain a partial sequence with the sum being 5 with no overlapping.
Here, there are factors corresponding to the respective numbers in the sequence (1,1,2,2,2,2), and thus to distinguish them, the elements are numbered to be [1,2,3,4,5,6]. For example, [1,3,4] corresponds to a sequence (1,2,2) a sum of which is 5. Furthermore, [2,5,6] also results in the sum of 5. A combination of these is one candidate. Furthermore, there is a combination of [2,3,6] paired with [1,4,5] corresponding to this. The partial sum problem is generally an NP-hard problem. Still, it has been known that problems of such a small size can be solved in a relatively short period of time.
Variation
In the following, some variations of the embodiment will be described.
Variation in Noise Polynomial
In the above-described embodiment, the noise polynomial has no constraint other than the constraint that the coefficient of a univariate polynomial, which is a coefficient, is limited to de, but as a variation, it may be expanded to a structure with the same product as the plaintext polynomial. Specifically, the noise polynomial is defined as in the following Formula (45).
In the case of the present embodiment, under the condition ds≥2(de+1), decryption can be implemented in a manner that is the same as that for restoring the plaintext, so that e(x,y) is obtained. With this and the product M(x,y) of the plaintext polynomial factor that has been obtained, r(x,y) is obtained from the following Formula (46).
r(x>y)=(c(w,y)−f(t)e(x,y)−M(x,y))/X(x,y) (46)
Such a configuration actually provides many benefits. First of all, with the noise polynomial e(x,y) restored in addition to the plaintext polynomial M(x,y), combinations can be narrowed down to those enabling the division in the above-described Formula (46), even when each polynomial has ambiguity. In fact, X(x,y) is a bivariate polynomial that is least likely to hold with a combination of incorrect M(x,y) and e(x,y) (this will result in a residue of a certain value), whereby decryption result candidates can be narrowed down. This means that the authenticator is not required.
Furthermore, with such a configuration, the plaintext can be also embedded in e(x,y) and r(x,y) randomly generated in the present embodiment. Furthermore, data of a large volume can be encrypted at once. Still furthermore, when the ciphertext is altered it is less likely to be decryptable, thus the configuration is also effective in terms of alteration detection.
Change of roles between plaintext polynomial and noise polynomial The ciphertext c in the above-described embodiment has the form of the following Formula (47).
c=Πi=1kmi+Xr+f(t)e (47)
The roles may be changed between the first term and the third term of the above Formula (47) to obtain a form as in the following Formula (48).
c=f(t)Πi=1kmi+Xr+e (48)
With the form of Formula (48) above, the plaintext polynomial can have a higher degree than the noise polynomial, meaning that a larger plaintext can be embedded with the degree of the plaintext polynomial factor increased. Specifically, when the degree of the plaintext polynomial factor is the first degree, data of |3p(dm+1)| bits can be embedded.
When the degree is the second degree, data of |6p(dm+1)| bits which is approximately the double can be embedded.
On the other hand, for decryption, simultaneous equations are obtained as expressed in the above-described Formula (39). The number of equations is 2ds+dm+1 and the number of variables is 6(dm+1). Thus, the condition of ds≥5(dm+1)/2 needs to be satisfied for obtained the solution.
Variation Regarding Encryption Operation
The ciphertext c in the above-described embodiment in the form of the above Formula (47) can have four types of variations with different combinations of signs (+ or −) of the random polynomial and the noise polynomial, as in the form expressed by the following Formula (49).
c=Πi=1kmi±Xr±f(t)e (49)
In the case described in the embodiment, the random polynomial and the noise polynomial both have + signs. The decryption can be implemented as in the case in the embodiment also when the ciphertext c is generated with the other three types of variations.
Variation Regarding Variables
Throughout the embodiment, the explanation has been given on the bivariate polynomial on Rp,n. The encryption algorithm, the decryption algorithm, and the key generation algorithm as in the embodiment can also be obtained with other general 1 variables (multivariate polynomials). Even when the variables increase to be more than three, an indeterminate equation that solution problem for which is difficult to calculate is obtained as long as there is one indeterminate equation X(x1, . . . , xl). Generally, an increase in variables leads to a problem harder to solve, resulting in higher security. Thus, the increase enables the key size to be reduced, and also enables plaintext with a larger size to be embedded. Still, since there will be more coefficients to be restored, the system parameter needs to be changed to ds=1(dm+1).
In the case of multivariable, in an encryption device 10, the public-key acquisition unit 2 acquires a public key including, for example, a multivariable indeterminate equation X(x1, . . . , xl) and an identification polynomial f(t). The multivariable indeterminate equation X(x1, . . . , xl) has, as coefficients, elements of a ring Fp[t]/g(t) (where Fp[t] represents a univariate polynomial ring on a finite field Fp and g(t) represents a modular polynomial). A plaintext embedding unit 3 disperses and embeds a message m as coefficients of a plurality of plaintext polynomial factors mi(x1, . . . , xl)=1, k) having, as coefficients, polynomials with a limited degree among the elements of the ring Fp[t]/g(t). The polynomial operation unit 8 generates a plaintext polynomial M(x1, . . . , xl) resulting from multiplying the plaintext polynomial factors mi(x1, . . . , xl) (i=1, k). The first polynomial generation unit randomly generates a random polynomial r(x1, . . . , xl) having, as a coefficient, an element of the ring Fp[t]/g(t), whereas the second polynomial generation unit randomly generates a noise polynomial e(x1, . . . , xl) having, as coefficients, polynomials with a limited degree among the elements of the ring Fp[t]/g(t). The first and second polynomial generation units may be implemented by one functional block like the above-mentioned polynomial generation unit 6, or may be implemented separately. The encryption unit 5 generates a ciphertext c(x1, . . . , xl)=Epk(M,f,r,e;X) by executing encryption processing (corresponding to Formula (30) described above) of performing an operation including at least one of adding, subtracting, and multiplying the identification polynomial f(t), the random polynomial r(x1, . . . , xl), the noise polynomial e(x1, . . . , xl), and the multivariable indeterminate equation X(x1, . . . , xl) to, from, or by the plaintext polynomial M(x1, . . . , xl).
In the case of being multivariable, in a decryption device 20, for example, a key acquisition unit 22 acquires a public key including an identification polynomial f(t) and a multivariable indeterminate equation X(x1, . . . , xl) having, as coefficients, elements of a ring Fp[t]/g(t) (where Fp[t] represents a univariate polynomial ring on a finite field Fp and g(t) represents a modular polynomial), and acquires, as a private key, a zero point u(x1, . . . , xl)=(ux1(t), . . . , uxl(t)) of the multivariable indeterminate equation X(x1, . . . , xl). A zero-point substitution unit 24 substitutes the zero point u into a ciphertext c(x1, . . . , xl) to generate a univariate polynomial h(t). A polynomial calculation unit 25 obtains a univariate polynomial μ(t) as a remainder of division of the univariate polynomial h(t) by the identification polynomial f(t). A factorization unit 26 acquires a first factor by factorizing the univariate polynomial μ(t) on the finite field Fp. A combination calculation unit 28 obtains, by combining the first factor, a second factor resulting from substituting the zero point u into a factor of a plaintext polynomial that is a product of a plurality of plaintext polynomial factors mi(x1, . . . , xl) (i=1, . . . , k) having, as coefficients, polynomials with a limited degree among elements of the ring Fp[t]/g(t). A plaintext polynomial factor restoration unit 29 restores the plaintext polynomial factor mi(x1, . . . , xl) by: deriving simultaneous linear equations by using the second factor and the zero point u; and solving the simultaneous linear equations. A decryption unit 23 extracts a plaintext vector from the plaintext polynomial factors m (x1, . . . , xl) and calculates a product of elements of the plaintext vector to decrypt a message m. A plaintext inspection unit 30 extracts an authenticator from the message m and verifies the authenticator. A plaintext output unit 31 outputs, as a decryption result, the message m for which the verification of the authenticator has succeeded.
Variation Regarding Coefficient of Indeterminate Equation
The coefficient of the indeterminate equation X(x,y) that is the public key of the embodiment is selected from the polynomial set Rp, ds with ds (<n) representing the degree. This configuration is for making the degree of the coefficient of each term of the public key follow the reduction of the public key size which is one of tasks for achieving quantum-resistant cryptography. Still, in high-end applications where the public key size needs not to be limited, Rp,n may be used for the sake of higher security. For lower-end application, the coefficient for terms other than the constant term may even be smaller. This configuration enables further reduction of the public key size and easier implementation.
The above variations (modifications) can be implemented independently from each other, and thus, some of or all these may be used in combination.
Specific Configurations
Next, specific configurations and operating methods of an encryption device, a decryption device, and a key generation device using public-key cryptography according to the present embodiment will be described.
First, the configuration and the flow of processing of the encryption device of the present embodiment will be described along the flowchart illustrated in
The encryption device 10 of the embodiment includes a plaintext acquisition unit 1, a public-key acquisition unit 2, a plaintext embedding unit 3, a storage unit 4, an encryption unit 5, a polynomial generation unit 6, a random value generation unit 7, a polynomial operation unit 8, and a ciphertext output unit 9.
As shown in
Next, the public-key acquisition unit 2 acquires a public key including a bivariate indeterminate equation X(x,y) and an identification polynomial f(t) (step S2). The public-key acquisition unit 2 acquires a public key from another device such as a key generation device described later.
Next, the plaintext embedding unit 3 acquires system parameters p, Dm, and dm from the storage unit 4 (step S3).
Subsequently, the plaintext embedding unit 3 divides the plaintext m input from the plaintext acquisition unit 1 into 3(dm+1) sub-blocks of |p|−1 bits (|p| is the bit length of p). The plaintext embedding unit 3 divides each sub-block into Dm plaintext fragments (step S4).
It should be noted that any division method may be used as long as it allows restoration when Dm plaintext fragments are complete, and examples thereof include a method using a product for each element of a vector.
The plaintext embedding unit 3 sequentially embeds plaintext fragments in Dm plaintext polynomial factors (step S5). In this embodiment, since the plaintext polynomial factors are a linear expression, mi(x,y)=mx,i(t)x+my,i(t)y+m1,i(t) (i=1, . . . , Dm), where the degree of each coefficient mx,i(t), my,i(t), and m1,i(t) is dm, and the coefficients of these polynomials are elements of Fp. The plaintext embedding unit 3 embeds the plaintext fragments in each of the plaintext polynomial factors of the linear expression to generate a plaintext polynomial factors m1(x,y), . . . , mDm(x,y)
As described above, the block size of the cryptographic method of the present embodiment is 3(|p|−1)(dm+1). When a plaintext larger than this size is input, it is divided into this block size and then each block is encrypted.
The plaintext embedding unit 3 inputs the generated Dm plaintext polynomial factors to the encryption unit 5.
Upon receiving the public key from the public-key acquisition unit 2, the encryption unit 5 acquires from the storage unit 4 system parameters p, Γr, de, ds, and n that match the public key. The encryption unit extracts a non-zero term from the public key X(x,y) to calculate a term set ΓX of X(x,y), and calculates ΓXΓr, thereby deriving a term set Γc of a noise polynomial e(x,y).
In addition, the encryption unit 5 inputs the system parameters p, n, and Fr to the polynomial generation unit 6 to instruct the polynomial generation unit 6 to generate a random polynomial r(x,y) having a polynomial of the n−1th order according to the term set Γr as a coefficient. The polynomial generation unit 6 instructs the random value generation unit 7 to generate integers from 0 to p−1 which is a coefficient of the coefficient rij(t) by a required number (n #Γr in this case), and generates r(x,y) based on these integers (step S6). Note that #Fr represents the number of elements of the set Fr.
The encryption unit 5 continues to generate the noise polynomial e(x,y) by the same method as the method of generating the random polynomial r(x,y) based on the system parameters p, de and a noise polynomial form Γe (step S7).
Finally, the encryption unit 5 generates, by using the following Formula (50), a ciphertext c(x,y) from the random polynomial r(x,y), the noise polynomial e(x,y), the public key (X(x,y), f(t)), and the Dm plaintext polynomial factors m1(x,y), . . . , mDm(x,y) (step S8). The encryption unit 5 inputs the ciphertext c(x,y) to the ciphertext output unit 9.
c(x,y)=m1(x,y), . . . ,mD
The ciphertext output unit 9 outputs the ciphertext c(x,y) as an output of the encryption device 10 (if necessary, after transforming it according to a predetermined format) (step S9).
Next, the configuration and the flow of processing of the decryption device of the present embodiment will be described along the flowchart illustrated in
The decryption device 20 of the embodiment includes a ciphertext acquisition unit 21, a key acquisition unit 22, a decryption unit 23, a zero-point substitution unit 24, a polynomial calculation unit 25, a factorization unit 26, a storage unit 27, a combination calculation unit 28, a plaintext polynomial factor restoration unit 29, a plaintext inspection unit 30, and a plaintext output unit 31.
As shown in
Next, the key acquisition unit 22 acquires the public key (X(x,y), f(t)) and a private key (zero point u: (ux(t), uy(t))) (step S22). The key acquisition unit 22 acquires a public key (X(x,y), f(t)) from another device or the like via, for example, a network, and acquires the private key (zero point u: (ux(t),uy(t))) from the storage unit 27 in the decryption device or the like.
Next, the decryption unit 23 receives the ciphertext c(x,y) from the ciphertext acquisition unit 21 and receives the public key (X(x,y), f(t)) and the private key (zero point u: (ux(t), uy(t))) from the key acquisition unit 22. Then decryption processing is started.
The decryption unit 23 inputs the ciphertext c(x,y) and the zero point u to the zero-point substitution unit 24. The zero-point substitution unit 24 substitutes the zero point u into c(x,y) and calculates h(t) (step S23). The zero-point substitution unit 24 inputs h(t) to the decryption unit 23.
Next, upon receiving h(t) from the zero-point substitution unit 24, the decryption unit 23 inputs h(t) into the polynomial calculation unit 25. Upon receiving h(t) from the decryption unit 23, the polynomial calculation unit 25 calculates h(t) mod f(t) and inputs the calculation result of h(t) mod f(t) to the decryption unit 23 (step S24).
Next, upon receiving the calculation result of h(t) mod f(t) from the polynomial calculation unit 25, the decryption unit 23 inputs the calculation result to the factorization unit 26. Upon receiving the calculation result of h(t) mod f(t) (residue μ(0) from the decryption unit 23, the factorization unit 26 executes the factorization of the calculation result (step S25), and inputs the result of the factorization to the decryption unit 23 as an ordered factor array of factors.
Next, the decryption unit 23 extracts system parameters ds and dm from the storage unit 27, extracts the degree of each factor from the factor array input from the factorization unit 26, and generates a corresponding degree array. Furthermore, the decryption unit 23 inputs the degree array and N(=ds+dm) corresponding to the degree of the plaintext polynomial factors to the combination calculation unit 28. The combination calculation unit 28 extracts all combinations of factors (factor series) the degree of which is exactly N (step S26), and inputs a list of the factor series to the decryption unit 23.
Upon receiving the list of the factor series from the combination calculation unit 28, the decryption unit 23 extracts the factor series from the list and inputs it to the plaintext polynomial factor restoration unit 29, together with the zero point u and the system parameters ds and dm. The plaintext polynomial factor restoration unit 29 restores plaintext polynomial factors m1(x,y), . . . , mDm(x,y) from the factor series input from the decryption unit 23, the zero point u, and the system parameter dm by the above method (step S27), and inputs the plaintext polynomial factors to the decryption unit 23.
Upon receiving the plaintext polynomial factors m1(x,y), . . . , mDm(x,y) from the plaintext polynomial factor restoration unit 29, the decryption unit 23 extracts the plaintext divided from the coefficients of the plaintext polynomial factors and restores the plaintext m (step S28), and inputs the plaintext m to the plaintext inspection unit 30.
The plaintext inspection unit 30 inspects the above-mentioned authenticator included in the plaintext m, and determines pass/fail (step S29). The plaintext inspection unit 30 inputs the pass/fail determination result to the decryption unit 23.
When the pass/fail determination result is a pass (step S29: OK), the plaintext output unit 31 outputs m as a decryption result (step S32), and the decryption processing ends.
On the other hand, when the pass/fail determination result is a failure (step S29: NG), the decryption unit 23 determines whether there is a next plaintext polynomial factor candidate (step S30). When there is a next plaintext polynomial factor candidate (step S30: Yes), the decryption unit 23 extracts the next plaintext polynomial factor candidate (step S31), and returns to the process in step S27.
When there is no next plaintext polynomial factor candidate (step S30, No), the plaintext output unit 31 outputs an error indicating a decryption failure (step S33), and the decryption processing ends. As a cause of the decryption failure, it is conceivable that the ciphertext was broken or tampered with on the communication path.
Next, the configuration and the flow of processing of the key generation device of the present embodiment will be described along the flowchart illustrated in
A key generation device 40 of the embodiment includes a system parameter acquisition unit 41, a control unit 42, a polynomial generation unit 43, a random value generation unit 44, an indeterminate equation generation unit 45, a polynomial operation unit 46, and a key output unit 47.
As shown in
The system parameter acquisition unit 41 inputs the system parameters to the control unit 42. The control unit 42 performs the following processing in cooperation with other processing units based on the system parameters input from the system parameter acquisition unit 41.
First, the control unit 42 inputs p and ds among the system parameters input from the system parameter acquisition unit 41 to the polynomial generation unit 43, and instructs the generation of two polynomials ux(t), uy(t) included in Rp,ds. Next, the polynomial generation unit 43 instructs the random value generation unit 44 to generate 2(ds+1) integers from 0 to p−1. The random value generation unit 44 generates 2(ds+1) random numbers from 0 to p−1 using a pseudo random number generator or the like, and inputs the random numbers to the polynomial generation unit. The polynomial generation unit 43 generates polynomials ux(t) and uy(t) having 2(ds+1) random numbers input from the random value generation unit 44 as coefficients (step S42), and inputs the polynomials ux(t) and uy(t) to the control unit 42.
The control unit 42 holds (stores), as a private key, the polynomials ux(t) and uy(t) received from the polynomial generation unit 43.
The control unit 42 also generates a public key (indeterminate equation X(x,y) represented by the following Formula (51)).
X(x,y)=Σ(i,j)∈Γxaij(t)xiyj (51)
The control unit 42 extracts a coefficient aij(t) other than the constant term of X(x,y) from Rp,ds in order to generate the public key. Specifically, the control unit 42 inputs the parameters p and ds to the polynomial generation unit 43, as in the case of generating the above-described polynomials ux(t) and uy(t), and instructs the generation of #Γx−1 polynomials included in Rp,ds. The polynomial generation unit 43 generates a polynomial coefficient using the random value generation unit 44, and generates 2(ds+1) polynomials having the coefficient. The polynomial generation unit 43 inputs 2(ds+1) polynomials to the control unit 42.
The control unit 42 inputs the polynomials generated by the polynomial generation unit 43, the system parameters p, Γx, ds, and the private key ux(t), uy(t) to the indeterminate equation generation unit 45.
The indeterminate equation generation unit 45 generates, by using the polynomial operation unit 46, an indeterminate equation X′(x,y) having no constant (step S43). The indeterminate equation generation unit 45 calculates a constant term a00(t)=−X′(ux(t),uy(t)) by substituting the private key (polynomials ux(t) and uy(t)) into the variables x and y of X′(x,y) (step S44).
Next, the indeterminate equation generation unit 45 performs processing of reducing the degree of the constant term a00(t) (step S45).
An example of this processing of reducing the degree will be described in detail with reference to
The basic principle is to use the private key (zero point) for replacement with an indeterminate equation with a smaller degree of a constant term having the same zero point, and the theoretical background is as described above.
For simplicity, it is assumed in the following description that X(x,y) includes all terms of x′ (i=1, . . . , degX). As shown in
Now, returning to
Next, the indeterminate equation generation unit 45 generates an indeterminate equation by X(x,y)=X′(x,y)+a00(t) (step S46).
It is shown that the generated X(x,y) has the same zero point (ux(t), uy(t)) as the original indeterminate equation X′(x,y)+a00(t). To this end, it is necessary to show that the indeterminate equation obtained in each step has the zero point (ux(t),uy(t)). The indeterminate equation obtained in each step is X′(x,y)+ai0′(t)x′+(a00(t) mod ux(t)′). Substituting the zero point (ux(t),uy(t)) into this equation gives the following Formula (52), which shows that the zero point is obtained.
X′(ux(t),uy(t))+a′i0(t)ux(t)i+(a00(t)mod ux(t)i)=X′(ux(t),uy(t))+a00(t)=0 (52)
The indeterminate equation X(x,y) thus generated is output from the indeterminate equation generation unit to the control unit 42. The control unit 42 inputs the system parameters p and df to the polynomial generation unit 43 in order to generate the identification polynomial f(t) included in Rp,df. The polynomial generation unit 43 generates the identification polynomial f(t) using the random value generation unit 44, similarly to the above-described processing of generating ux(t), uy(t) (step S47), and outputs the identification polynomial to the control unit.
The control unit 42 inputs the generated public key (X(x,y), f(t)) and private key (ux(t), uy(t)) to the key output unit 47. The key output unit 47 outputs the public key (X(x,y), f(t)) and the private key (ux(t), uy(t)) input from the control unit 42 to the outside of the key generation device (step S48).
Finally, a specific configuration regarding variations will be described. The variation in the noise polynomial is a variation that provides a structure of the product of the noise polynomial (Formula (45) described above) and can be restored in decryption. Therefore, in the above encryption algorithm, as shown in
c(x,y)=m1(x,y) . . . mD
As shown in
As shown in
Next, the plaintext polynomial factor restoration unit 29 determines whether q(x,y) can be divided by the public key X(x,y) (step S105). When the correct plaintext polynomial factors and noise polynomials are obtained here, q(x,y)/X(x,y)=r(x,y) should be able to be calculated from the ciphertext formula. Therefore, when q(x,y) is divided by the public key X(x,y) (step S105: Yes), the plaintext polynomial factor restoration unit 29 actually finds r(x,y) (step S106) and restores the plaintext m from the obtained plaintext polynomial factors (step S107), and outputs the plaintext m (step S108).
On the other hand, when q(x,y) is not divided by the public key X(x,y) (step S105: No), the plaintext polynomial factor restoration unit 29 extracts the following series of plaintext polynomial factors and noise polynomial factors (steps S109 and S110), and the same process is repeated (
In this variation, the ambiguity of the plaintext polynomial factors is removed by restoring the polynomials r(x,y), e1(x,y), . . . ,ek(x,y) generated during encryption. For this reason, the authenticator used in the present embodiment is not required.
A variation that replaces the roles of the plaintext polynomial and the noise polynomial is to change the ciphertext generation formula in the encryption device 10, and also in the decryption device 20, h(t)=c(ux(t),uy(t)) is calculated, and then m1(ux(t),uy(0), . . . , mDm(ux(t),uy(t)) is calculated by h(t)/f(t), and the subsequent process can be performed in the same manner.
It should be noted that the combination with variations in the noise polynomial can also be implemented by the same modification. As for the variation regarding the encryption operation, the only change is to replace the addition in the ciphertext with a subtraction. Therefore, this change can be naturally reflected on the encryption device 10 and the decryption device 20 of the present embodiment.
Regarding the variation regarding variables, only the number of variables in the encryption algorithm, the decryption algorithm, and the key generation algorithm is needed to change from the present embodiment. That is, this can be implemented simply by obvious changes such as changes in the variables x and y to variables x1, . . . , xl and changes in the private key to be substituted into these variables to (ux1(t), . . . , uxl(t)).
The variation regarding the coefficients of the indeterminate equation aims to more flexibly change the way for obtaining the degrees of the coefficients of the indeterminate equation, which serves as a public key. Therefore, this can be implemented by selecting and adopting another polynomial set such as from Rp,ds to Rp,n, n as a set for selecting coefficients other than the constant term of the indeterminate equation in the key generation algorithm. However, when Rp,n is selected, the degree reduction algorithm of the constant term described in the present embodiment is not required because the degrees of all the coefficients are n−1 or smaller due to the modular polynomial g(t).
Consideration on Security
The security of the public-key cryptography of the present invention implemented in the embodiment will be considered below.
Linear Algebraic Attack
A consideration will be given while regarding that this is a problem of obtaining a product M of the polynomials mi (i=1, . . . , k) in a set Fm/Rp,dm, in a case where a public key X, f and a corresponding polynomial Y (=m1m2 . . . mk+Xr+f·e) on Rp,n are given. In fact, when M is obtained correctly, the polynomial mi (i=1, . . . , k) can be obtained, and the cryptosystem can be broken.
Here, for the sake of simplicity, a discussion will be made under the condition expressed in the following Formula (54).
deg mi(x,y)=1(i=1,2)
deg e(x,y)=2
Γm={(1,0),(0,1),(0,0)}
Dx=Dr=dm=de=1 (54)
Here, M, r, e, and Y can be expressed as in the following Formula (55).
M(x,y)=M20x2+M11xy+M02y2+M10x+M01y+M00
r(x,y)=r10x+r01+r00
e(x,y)=e20x2+e11xy+e02y2+e10x+e01y+e00
Y(x,y)=d20x2+d11xy+d02y2+d10x+d01y+d00 (55)
The ciphertext c(x,y) can be expressed as in the following Formula (56).
The linear algebraic attack refers to an attack of obtaining M, r, and e, with simultaneous equations obtained by calculating the right side with coefficients Mij, rij, and cij, of M, r, and e, being unknown and performing coefficient comparison with terms xiyi on the left side. Here, the simultaneous equations of the following Formula (58) can be derived from the following Formula (57).
X(x,y)r(x,y)=a10r10x2+(a10r01+a01r10)xy+a01r01y2(a10r00+a00r10)x+(a01r00+a00r01)y+a00r00 (57)
M20+a10r10+fe20=d20
M11+a10r01+a01r10+fe11=d11
M02=a01r01+fe20=d02
M10+a10r00+a00r10+fe10=d10
M01+a01r00+a00r01+fe01=d01
M00+a00r00+fe00=d00 (58)
The number of variables is 15, and the number of equations in the simultaneous linear equations is 6, so that 9 dimensional solution spaces are obtained. Generally, a #Γr+#Γe dimensional solution space is obtained with the number of variables being #Γm+#Γr+#Γe and the number of equations being #Γm.
However, when the equations on Rp,n as expressed in the above-described Formula (58) is considered as equations on Fp, there will be 6n equations. On the other hand, the numbers of the corresponding variables Mij, rij, and eij are respectively in Rp,Dmdm, Rp,n, and Rp,de. Thus, the numbers of these variables are 18, 3n, and 12, and thus the total number of variables is 3n+30 under the condition of the above-described Formula (54). Since n is 21 in this example, the number of equations is 93 and the number of variables is 126. In the general sense, this means that there is no solution space. Still, since it is known that there is at least one solution here, a desired solution is likely to be obtained.
Generally, the number of variables included in eij(element of p,de) is expressed as in the following Formula (59).
The number of variables included in rij (element of p,n) is n·Dr+2CDr=n·(Dr+2)(Dr+1)/2, and the number of variables included in Mij (element of Rp,2dm) is 3(2dm+1). On the other hand, the number of equations is as expressed in the following Formula (60).
Dx+Dr+2C2·n=(DX+Dr+2)(DX+Dr+1)·n/2 (60)
Taking into consideration the system parameter constraints by the above Formulas (15) to (17), among the independent parameters DX, Dr, dm, de, DX is fixed and Dr, de are increased to be included in rij. As the number of variables to be calculated approaches the number of expressions and the number of variables included in eij increases, the number of variables as a whole exceeds the number of expressions and becomes indeterminate. Actually,
degmi(x,y)=1(i=1, . . . ,k)
DX=2
With reference to
Local Attack
Now, an attack that partially solves the simultaneous equations in the above-described Formula (58) is considered. For example, it is examined whether only the first equation M20+a10Γ10+fe20=d20 of the simultaneous equations of the above-described Formula (58) can be solved. When this is solved, the plaintext polynomial partial information M20 can be acquired. However, the equation is obviously indefinite because the number of variables is 2dm+de+n+2 and the number of equations is n. This is always the case regardless of which equation is picked up, as long as only a single equation is picked up.
Thus, a consideration will now be given on a case where a combination of a plurality of equations is picked up. For example, in a case of the following combination, r10 and r00 with the largest number of variables overlap.
M20±a10r10+fe20=d20
M10+a10r00+a00r10+fe10=d10
M00+a00r00+fe00=d00
Thus, the number of variables is 2n+(DX+Dr+1)(dm+2de+2) and the number of equations is 3n. Therefore, the number of variables can be expected to exceed the number of equations by increasing de with DX fixed as in the case of the analysis on the linear algebraic attack. In fact, it has been confirmed that the calculation using the parameters that are the same as those in
Key Restoration Attack
In this cryptographic method, the private key is a solution included in Rp,ds among solutions of the indeterminate equation X(x,y)=0 with the coefficient ring Rp,n(=Fp/g(t)). Thus, it is possible to break the cryptosystem by obtaining the private key.
Here, it can be understood that n>(DX+1)ds holds considering that Dr, dm, and de≥1 holds and from the condition in the above-described Formula (17). This means that degX(vx(t),vy(t))<n always holds when a pair of polynomials (x,y)=(vx(t),vy(t)) with the degree being the same as that of the solution to be obtained (ds) are substituted into the X(x,y) as the polynomial on Fp[t]. Thus, a problem of obtaining a solution with the degree ds among solutions of the indeterminate equation X(x,y)=0 with the coefficient ring Rp,n(=Fp/g(t)) is equivalent to a problem of obtaining a solution on Fp[t] of X(x,y)=0. In fact, when the former solution can be obtained, then the latter solution is obtained, and vice versa. Thus, the key restoration attack results in a section finding problem.
Finally, an example of the hardware configuration of the encryption device 10, the decryption device 20, and the key generation device 40 of the embodiment will be described.
Example of Hardware Configuration
The encryption device 10, the decryption device 20, and the key generation device 40 of the embodiment include a control device 301, a main storage device 302, an auxiliary storage device 303, a display device 304, an input device 305, and a communication device 306. The control device 301, the main storage device 302, the auxiliary storage device 303, the display device 304, the input device 305, and the communication device 306 are connected to each other via a bus 310.
The control device 301 executes a program loaded on to the main storage device 302 from the auxiliary storage device 303. The main storage device 302 is a memory such as a Read Only Memory (ROM) and a Random Access Memory (RAM). The auxiliary storage device 303 is a Hard Disk Drive (HDD), a Solid State Drive (SSD), a memory card, or the like.
The display device 304 displays display information. The display device 304 is, for example, a liquid crystal display or the like. The input device 305 is an interface for operating a computer. The input device 305 is, for example, a keyboard or a mouse. When the computer is a smart device such as a smartphone or a tablet terminal, the display device 304 and the input device 305 are, for example, touch panels. The communication device 306 is an interface for communicating with other devices.
A program executed by a computer is recorded as a file in an installable format or an executable format, in a computer-readable storage medium such as a CD-ROM, a memory card, a CD-R, and a Digital Versatile Disc (DVD).
Furthermore, the program executed by the computer may be provided while being stored on a computer connected to a network such as the Internet and downloaded via the network. Furthermore, the program executed by the computer may be configured to be provided or distributed over a network such as the Internet, without being downloaded.
Furthermore, the program executed by the computer may be configured to be provided by being embedded in advance in a ROM or the like.
The program executed by the computer has a module configuration including functional blocks that can also be implemented by a program, among the functional configurations (functional blocks) of the encryption device 10, the decryption device 20, and the key generation device 40 of the embodiment. As the actual hardware, each functional block is loaded onto the main storage device 302, with the control device 301 reading a program from a storage medium and executing the program. Thus, the above functional blocks are generated on the main storage device 302.
Note that some of or all the functional blocks described above may be implemented by hardware such as an Integrated Circuit (IC) instead of being implemented by software.
When implementing the functions using a plurality of processors, each processor may implement one of the functions, or may implement two or more of the functions.
Furthermore, the computer implementing the encryption device 10, the decryption device 20, and the key generation device 40 of the embodiment may operate in any appropriate mode. For example, the encryption device 10 (the decryption device 20, the key generation device 40) may be implemented by a single computer. Furthermore, for example, the encryption device 10, the decryption device 20, and the key generation device 40 may be operated as a cloud system on the network.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
Number | Date | Country | Kind |
---|---|---|---|
JP2020-019948 | Feb 2020 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
7773747 | Akiyama | Aug 2010 | B2 |
7787623 | Akiyama | Aug 2010 | B2 |
8522033 | Sakumoto | Aug 2013 | B2 |
20020001383 | Kasahara | Jan 2002 | A1 |
20070061572 | Imai | Mar 2007 | A1 |
20070110232 | Akiyama | May 2007 | A1 |
20080019511 | Akiyama | Jan 2008 | A1 |
20090185680 | Akiyama | Jul 2009 | A1 |
20100054480 | Schneider | Mar 2010 | A1 |
20100226496 | Akiyama | Sep 2010 | A1 |
20100329447 | Akiyama | Dec 2010 | A1 |
20130089201 | Sakumoto | Apr 2013 | A1 |
20150172258 | Komano | Jun 2015 | A1 |
20160119120 | Wang | Apr 2016 | A1 |
20180034630 | Rietman | Feb 2018 | A1 |
20190312728 | Poeppelmann | Oct 2019 | A1 |
Number | Date | Country |
---|---|---|
2010-204466 | Sep 2010 | JP |
Entry |
---|
Takagi et al., The Multi-variable Modular Polynomial and Its Applications to Cryptography, Dec. 16, 1996, ISAAC, pp. 386-396 (Year: 1996). |
Number | Date | Country | |
---|---|---|---|
20210248928 A1 | Aug 2021 | US |