WO2005109379A1 - 暗号システム、暗号装置、復号装置、プログラムおよび集積回路 - Google Patents

暗号システム、暗号装置、復号装置、プログラムおよび集積回路 Download PDF

Info

Publication number
WO2005109379A1
WO2005109379A1 PCT/JP2005/008144 JP2005008144W WO2005109379A1 WO 2005109379 A1 WO2005109379 A1 WO 2005109379A1 JP 2005008144 W JP2005008144 W JP 2005008144W WO 2005109379 A1 WO2005109379 A1 WO 2005109379A1
Authority
WO
WIPO (PCT)
Prior art keywords
ring
generate
encryption
polynomial
decryption
Prior art date
Application number
PCT/JP2005/008144
Other languages
English (en)
French (fr)
Inventor
Yuichi Futa
Motoji Ohmori
Masato Yamamichi
Original Assignee
Matsushita Electric Industrial Co., Ltd.
Yamamichi, Masami
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co., Ltd., Yamamichi, Masami filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to US10/592,387 priority Critical patent/US7773746B2/en
Priority to EP05736530A priority patent/EP1746561A1/en
Priority to JP2006512975A priority patent/JP4786531B2/ja
Publication of WO2005109379A1 publication Critical patent/WO2005109379A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Definitions

  • Encryption system Encryption system, encryption device, decryption device, program, and integrated circuit
  • the present invention relates to encryption technology as information security technology, and more particularly to encryption that does not cause a decryption error.
  • This public key forms a pair with the secret key of the communication destination receiving device and is made public in the system. Then, the transmitting device encrypts the data content to be communicated with the public key acquired as described above and transmits the data. On the other hand, the receiving device receives the communication content data encrypted as described above. Then, the receiving device decrypts the encrypted communication content data with its own secret key to obtain the original communication content data.
  • NTRU trademark of NTR-Credit Systems, Inc.
  • This NTRU encryption uses a polynomial operation that can be operated at a higher speed than RSA (Rivest Shamir Adleman) encryption, which performs modular exponentiation under a certain modulus, and elliptic curve encryption, which performs scalar multiplication of points on an elliptic curve. And decryption. For this reason, processing can be performed at a higher speed than conventional public key cryptography, and encryption and decryption can be performed in a practical time by software processing.
  • RSA Ramir Adleman
  • the NTRU cipher has non-negative integer parameters: N, p, q, df, dg, d. The meaning of these parameters is explained below.
  • the NTRU cryptosystem is a public key cryptosystem that performs encryption and decryption by a polynomial operation.
  • the dimension of the polynomial handled by the NTRU cipher is determined by the above parameter N.
  • the polynomial handled by the NTRU encryption is an integer coefficient polynomial of degree (N-1) or less with respect to the above parameter N.
  • N 5
  • a polynomial such as X'4 + X'3 + l
  • X'a means X to the power of a.
  • the public key h, secret key f, plaintext m, random number!:, And ciphertext c used at the time of encryption or decryption are all expressed as polynomials of degree (N-1) or less. .
  • N degree
  • parameters p and q which are integers of 2 or more, are used.
  • the coefficients of the appearing polynomial take the remainder modulo p and q. As described in Non-Patent Document 2, these parameters p and q need to be disjoint.
  • the polynomial f is selected such that df coefficients are 1, and (df-1) coefficients are 1, and other coefficients are 0. That is, the polynomial f is a polynomial of degree (N-1) or less, and has N coefficients from order 0 (constant term) to degree (N-1). Of the N coefficients, the polynomial f is set so that df coefficients are 1, and (df-1) coefficients are 1 and (N-2df + 1) coefficients are 0. To be elected.
  • the polynomial g is selected so that dg coefficients are 1, dg coefficients are 1, and other coefficients are 0.
  • the polynomial r which is a random number, is selected such that d coefficients are 1, d coefficients are 1, and other coefficients are 0.
  • n Fq X g (mod q
  • a secret key is (f, Fp) and a public key is h.
  • the remainder as the i-th coefficient of the polynomial X (0 ⁇ i ⁇ N— 1). That is, a polynomial in which each coefficient of y is subjected to mod q operation (operation for obtaining remainder when divided by q, remainder operation by modulo q) so that it falls within the range of 0 to (q-1) , And a polynomial X.
  • a plaintext polynomial m is encrypted, and a ciphertext polynomial c is calculated.
  • a random number r which is a polynomial as described above, is randomly generated. That is, the random number r is a polynomial of degree (N-1) or less, and there are N coefficients from order 0 (constant term) to degree (N-1). Of these N coefficients, d Is chosen so that the number of coefficients is 1, the number of d coefficients is 1, and the number of (N-2d) coefficients is 0.
  • a polynomial c that is a ciphertext is decrypted, and a polynomial m ′ that is a decrypted text is calculated.
  • a polynomial f which is a part of the secret key
  • (mod q *) is different from the above-mentioned (mod q) operation in that the i-th order coefficient of the polynomial (f X c) is set in the range of ⁇ qZ2> + l to qZ2> Is the remainder of the division by the modulus q so that it fits in the i-th coefficient of the polynomial a (0 ⁇ i ⁇ N— 1). That is, if the coefficient is a value between qZ2> and q-1, the coefficient force is also adjusted to fall within the above range by subtracting q.
  • this operation (mod p *) is performed so that the i-th coefficient of the polynomial (Fp Xb) falls within the range of ⁇ 1 pZ2> + l to pZ2>.
  • This is an operation in which the remainder when divided by the modulus p is used as the i-th coefficient of the polynomial m '.
  • n p , Fq X g (mod q)
  • the NTRU cipher described above encrypts plaintext using a public key to generate a ciphertext, and decrypts ciphertext using a regular secret key to generate a decryption text. May differ from the original plaintext (for example, see Non-Patent Document 2). If a decryption failure occurs, this will happen!
  • the probability of occurrence of a decryption error varies depending on the method of taking the above-mentioned parameters, but any of the parameters disclosed in the document has a probability of about 10 ′′ ( ⁇ 5). It is known that a decoding error occurs (for example, see Non-Patent Document 3).
  • NTRUEncrypt which is a new NTRU encryption scheme described below, has been proposed (for example, see Non-Patent Document 4).
  • Non-Patent Document 4 The NTRUEncrypt method is described in detail in Non-Patent Document 4, and a detailed description thereof will be omitted here, but will be briefly described below.
  • NTRUEncrypt has non-negative integer parameters: N, p, q, df, dg, d.
  • N, p, q, df, dg, d (251, 2, 239, 72, 72, 72) as a parameter of NTRUEncrypt.
  • the meanings of the parameters df, dg, and d are different from those of NTRU encryption.
  • NTRUEncrypt is a public key cryptosystem that performs encryption and decryption by polynomial operations, similar to NTRU encryption.
  • the polynomials handled by NTRUEncrypt are integer coefficient polynomials of order (N-1) or less for the above parameter N.
  • a polynomial f that is a part of the secret key handled by NTRUEncrypt
  • a polynomial g that is used together with the polynomial f when generating the polynomial h that is the public key
  • a polynomial r that is a random number used when encrypting the plaintext are as follows: They are determined by the parameters df, dg and d, respectively.
  • a polynomial f of degree (N ⁇ 1) or less is selected such that df coefficients are 1 and other coefficients are 0.
  • the dg number of coefficients is 1 and the other coefficients are 0 (N-1) or less.
  • a term is chosen.
  • a polynomial of degree (N-1) or less such that d coefficients are 1 and other coefficients are 0 is selected.
  • n p , Fq X g (mod q)
  • the secret key is (f, Fp) and the public key is a polynomial h.
  • the random number r described above is randomly generated. That is, using a parameter d, a polynomial of degree (N-1) or less such that d coefficients are 1 and other coefficients are 0 is randomly selected as a random number r.
  • a polynomial obtained by performing a mod q operation so that each coefficient of the polynomial (rXh + m) falls within the range of 0 to (q-1) is defined as a polynomial c. It is an operation.
  • n Fq X g (mod q
  • (mod q **) is different from the (mod q) operation described above in that the i-th coefficient of the polynomial (f Xc) is divided by the modulus q so that it falls within the section of the appropriate width q.
  • the remainder of the polynomial a is calculated as the i-th coefficient of the polynomial a (0 ⁇ i ⁇ N— 1).
  • a specific calculation method is defined in Non-Patent Document 4 by an algorithm called “center 1” or “center2”.
  • a (l) indicates the value when 1 is substituted for the variable x of the polynomial A.
  • This operation is a process performed to reduce the decoding error occurrence probability.
  • a method of constructing a polynomial f by an equation for example, see Non-Patent Document 4.
  • FpXf l (mod p)
  • the polynomial multiplication with the polynomial Fp performed in the decoding process becomes unnecessary,
  • This NTRUEncrypt is a method in which a decoding error is less likely to occur than NTRU encryption by performing processing to reduce the decoding error occurrence probability at the time of decoding.
  • the decoding error occurrence probability is 2 '(-100
  • the decoding error probability is 0, that is, there is no known method that does not generate any decoding error.
  • both the NTRU encryption and the NTRUEncrypt represent operations using polynomials! /
  • Patent Document 1 expresses this as an element of a general ring R. Specifically, the above polynomial is an element of the ring R, and p and q are ideals of the ring R.
  • Patent Document 1 JP-T-2000-516733
  • Non-patent Document 1 Tatsuaki Okamoto, Hiroshi Yamamoto, ⁇ Modern Cryptography '', Series Z Mathematics in Information Science, Industrial Books, 1997.
  • Patent Document 2 Jeffery Hoffstein, Jill Pipher, and Joseph H. Silverman, "NTRU: A ring based public key cryptosystem, Lecture Notes in Computer Science, 1423, pp. 267—288, Springer—Verlag, 1998 .
  • Non-Patent Document 3 Joseph H. Silverman, "NTRU Crypto systems Technical Report # 011, Version 2, Wraps, Gaps, and Lattice Constants", [online], March 15, 2001, [Searched on December 15, 2003 ], Internet URL: http://www.ntru.com/cryptlab/pdf/NTRUTechO11-v2.pdf
  • Non-Patent Document 4 Joseph H. Silverman, W. Whyte, "NTRU Cryptosystem ms Technical Report # 018, Version 1, Estimating Decryption Failure Probabilities for NTRUEncrypt", [online], 2003, [Searched on December 15, 2003 ], Internet URL: http: // www. Ntru. Com / cryptolab / pdf / NTRUTechO 18.pdf>
  • Non-Patent Document 5 NTRU Cryptosystems, Inc., "The NTRU Public Key Cryptosystem-A tutorial", [online], [Search December 15, 2003], Internet ⁇ net ⁇ URL: http: // www. Ntru com / cryptlab / pdf / ntrututorials.pdf>
  • Non-Patent Document 6 Nick Howgrave-Graham, Joseph H. Silverman, and William Whyte, "NTRU Cryptosystems Technical Report # 004, Version 2, A Meet—In—The—Middle Attack on an NTRU Private Key", [online] , 2003, [Searched December 15, 2003], Internet URL: h ttp: Z / www. Ntru. Com / cryptlab / pdf / NTRUTe chO 18.pdf> fhe NTRU Public Key Cryptosystem-A tutorial ", [online], [searched on December 15, 2003], Internet URL: http: // www. ntru. com / cryptola b / pdf / NTRUTech004v2. pdf>
  • Patent Document 7 Jeffery Hoffstein, Joseph H. Silverman, and William Whyte, "NTRU Cryptosystems Technical Report # 012, Version 2, Estimated Breaking Times for NTRU Lattices ,, [online], 2003, [December 2003 15th search], Internet URL: http: // www. Ntru. Com / cryptolab / pdf / NTRUTechO 12v2.
  • the decoding error occurrence probability is not 0, so when applied to an encrypted communication system in which encrypted communication is performed between a transmitting device and a receiving device, the content of data transmitted by the transmitting device.
  • the signal may not be obtained correctly by the receiving device.
  • the present invention solves the above-mentioned conventional problems, and furthermore, by newly configuring the NTRU encryption method which is faster than the NTRUEncrypt method, and applying the newly configured NTRU encryption method to the encryption system,
  • the primary purpose is to provide a high-speed encryption system.
  • a second object is to provide a cryptographic system that can always be obtained correctly by a receiving device.
  • an encryption system comprises: an encryption device that encrypts plaintext to generate an encrypted text according to a predetermined encryption method; A decryption device that decrypts the decrypted text to generate a decrypted text, the decryption device comprising: a ring R that is a set of N-dimensional arrays in which addition, subtraction, and multiplication are defined; For the ideals p and q of the ring R, the elements f and g of the ring R and the element Fq which is the reciprocal of f (mod q) (where a (mod b) is the remainder of dividing a by b ), And an element Fp, which is the reciprocal of f (mod p), and an element h, which is the product and modulus of the element g and the element Fq as q, is generated as a public key, and the element f And a key generation unit that generates information capable of obtaining the original Fp as
  • the encryption device includes an encryption unit that encrypts the plaintext using the public key and an element r randomly selected from the ring R to generate the encrypted text.
  • the element f, the element g, the element!:, All elements of the plaintext N-dimensional array are 0 or 1, the ideal p and the ideal q are relatively prime, and the ideal q is q (2 "k) * R (where is the result of multiplying 1 ⁇ 2 by k times, and * represents multiplication of ring R).
  • q is defined as described above. Therefore, when q is an integer, q is a power of 2, and the remainder operation (mod q operation) by the modulo q can be performed by a bit mask operation. Therefore, the cryptographic system can perform processing at high speed.
  • the key generation unit generates the element f based on a non-negative integer df defining the number of elements whose value of the N-dimensional array is 1, and the element g is a value of the N-dimensional array. Is the number of elements where The element r is generated based on a non-negative integer dg, and the element r is selected based on a non-negative integer d specifying the number of elements whose value of the N-dimensional array is 1.
  • the error condition information may be a conditional expression representing a condition for preventing a decoding error from occurring.
  • the above conditional expression is expressed as Min (dg, d) + df ⁇ (qg—l) Zp (where, Min (a, b) represents the smaller of a and b! /, The number of the two). is there.
  • the present invention can be realized as an encryption method using the characteristic means included in the encryption system as a step, which can be realized as a cryptographic system having such characteristic means, or as an encryption method. It can also be realized as a program that causes a computer to function as characteristic means included in the encryption device and the decryption device that constitute the system. Needless to say, such a program can be distributed via a recording medium such as a CD-ROM (Compact Disc-Read Only Memory) or a communication network such as the Internet.
  • a recording medium such as a CD-ROM (Compact Disc-Read Only Memory) or a communication network such as the Internet.
  • a new NTRU encryption method capable of processing at a higher speed than the conventional fastest NTRUEncrypt method is newly configured, and the NTRU encryption method is applied to encrypted communication, thereby enabling processing at a higher speed than before.
  • a simple encryption system can be configured.
  • the data content transmitted by the encryption device can always be decrypted.
  • a cryptographic system that can be obtained correctly can be configured.
  • FIG. 1 is a block diagram showing a configuration of a cryptographic communication system according to Embodiment 1 of the present invention.
  • FIG. 2 is a block diagram showing a configuration of an encryption device according to Embodiment 1.
  • FIG. 3 is a flowchart showing an operation of the encryption device according to the first embodiment.
  • FIG. 4 is a block diagram showing a configuration of a decoding device according to Embodiment 1.
  • FIG. 5 is a flowchart showing an operation of the decoding device according to the first embodiment.
  • FIG. 6 is a flowchart showing an operation of the entire cryptographic communication system according to the first embodiment.
  • FIG. 7 is a block diagram showing a configuration of a cryptographic communication system according to Embodiment 2 of the present invention.
  • FIG. 8 is a block diagram showing a configuration of an encryption device according to Embodiment 2.
  • FIG. 9 is a block diagram showing a configuration of a decoding device according to Embodiment 2.
  • FIG. 10 is a flowchart showing an operation of the entire cryptographic communication system according to Embodiment 2.
  • FIG. 11 is a block diagram showing a configuration of a cryptographic communication system according to Embodiment 3.
  • FIG. 12 is a block diagram showing a configuration of an encryption device according to Embodiment 3.
  • FIG. 13 is a block diagram showing a configuration of a decoding device according to Embodiment 3.
  • FIG. 14 is a flowchart showing an operation of the entire cryptographic communication system according to Embodiment 3.
  • a new NTRU encryption method capable of processing at a higher speed than the conventional fastest NTRUEncryption method is newly configured, and the newly configured NTRU encryption method is used.
  • this newly configured NTRU encryption method capable of processing at higher speed than the conventional NTRU encryption method is referred to as “first modified NTRU encryption method”.
  • the first modified NTRU encryption method will be described focusing on the difference from the conventional NTRUEncrypt method.
  • the first modified NTRU encryption method is modified so that it can process at higher speed than the conventional NTRUEncryp.
  • First Modified NTRU Encryption Parameter has non-negative integer parameters, N, p, q, df, dg, d
  • n Fq X g (mod q
  • a binary polynomial m of coefficient power ⁇ or 1 which is a plaintext is encrypted, and a polynomial c which is a ciphertext is calculated.
  • a polynomial r which is a random number as described above, is randomly generated. That is, the random number r is a polynomial of degree (N-1) or less, and there are N coefficients from the 0th order (constant term) to the (N-1) th order. Of these N coefficients, d The number of coefficients is 1, the number of d is 1, and the number of (N-2d) coefficients is 0, and a random number r is selected at random.
  • a polynomial obtained by performing a mod q operation so that each coefficient of the polynomial (p'rXh + m) falls within the range of 0 to (q-1) is referred to as a polynomial c and Is an operation to be performed.
  • a polynomial c which is an encrypted text
  • a polynomial m ′ which is a decrypted text
  • (mod q *) is different from the (mod q) operation described above in that the i-th order coefficient of the polynomial (f X c) is set in the range of ⁇ qZ2> + l to qZ2> Is the remainder of the division by modulo q so that it fits in the i-th coefficient of the polynomial a (0 ⁇ i ⁇ N— 1). That is, when the coefficient is q ⁇ 1 from qZ2>, the coefficient force is also adjusted to fall within the above range by subtracting q. here
  • this operation (mod p *) is performed so that the i-th coefficient of the polynomial (Fp X b) falls within the range of ⁇ 1 pZ2> + l to pZ2>.
  • This is an operation in which the remainder when divided by the modulus p is used as the i-th coefficient of the polynomial m '.
  • the first modified NTRU encryption method can perform faster processing than the conventional NTRUEncrypt method, and the difference from the conventional NTRU encryption and NTRUEncrypt method is explained. Will be described.
  • the secret key is a polynomial f
  • the polynomial g and the random number is a polynomial! :
  • a plaintext polynomial m a binary polynomial whose coefficient is 0 or 1 is used.
  • the mod q operation of the coefficient is an operation that takes only the lower 8 bits by a bit mask operation. realizable.
  • the calculation of mod p must be performed only at the time of decryption, and the NTRUEncrypt needs a calculation to reduce the probability of occurrence of decryption errors. Offsets the calculated calories of p.
  • the first modified NTRU encryption method is faster than NTRUEncrypt.
  • Non-Patent Document 2 As described in Non-Patent Document 2, as a method of attacking NTRU encryption and NTRUEncrypt, a brute force attack on polynomials f, g, and r and an attack using the LLL algorithm (latt ice based attack) are known. ing.
  • Non-Patent Document 7 describes that the security against LLL attacks depends on the number of coefficients, not 0, of polynomials f and g. Therefore, if df and dg are selected so that the number of non-zero coefficients is sufficiently large, there is no problem in security.
  • p is set to 3 first
  • q is set to 256 so that it can be realized by an operation that takes only the lower 8 bits in the mod q operation power of the coefficient in the bit mask operation.
  • FIG. 1 is a diagram showing an overall configuration of a cryptographic communication system 1 according to Embodiment 1 of the present invention. First, an outline of the cryptographic communication system 1 will be described with reference to FIG.
  • the cryptographic communication system 1 is a system for performing plaintext m cryptographic communication, and the cryptographic device 1
  • a decryption device 20 and the encryption device 10 and the decryption device 20 are interconnected via a communication path 30.
  • the cryptographic device 10 In the cryptographic communication system 1, the cryptographic device 10 generates a ciphertext c by encrypting the plaintext m input from the outside using the above-described first modified NTRU cryptosystem. The data is transmitted to the decryption device 20 via the path 30.
  • the decryption device 20 decrypts the cipher text c received from the encryption device 10 via the communication path 30, generates a decrypted text m ′, and outputs the decrypted text m ′.
  • the encryption communication system 1 includes an encryption device 10 and a decryption device 20, and the encryption device 10 and the decryption device 20 are mutually connected via a communication path 30.
  • the encryption device 10 includes a parameter storage unit 11, a public key storage unit 12, and an encryption unit 13.
  • the parameter storage unit 11 stores, for example, a RAM (Random Access Memory) or an EEPROM (EEPROM).
  • It is composed of a memory such as an electrically erasable programmable read only memory, and can be accessed from the encryption unit 13 described later.
  • the parameters, p, q, df, dg, d) (251, 3,
  • the public key storage unit 12 is configured by a memory such as a microcomputer and a RAM, for example, and is accessible from an encryption unit 13 described later.
  • the public key storage unit 12 acquires the public key h of the decryption device 20 via the communication path 30 in advance and stores it.
  • the encryption unit 13 is configured by, for example, a microcomputer, and can access the parameter storage unit 11 and the public key storage unit 12.
  • the encryption unit 13 reads the parameter ⁇ , the parameter q, and the parameter d from the parameter storage unit 11, and reads the public key h from the public key storage unit 12.
  • the encryption unit 13 receives a plaintext m whose coefficient is 0 or 1 and whose external force is expressed by a polynomial of degree (N-1) or less with respect to the parameter N.
  • the encryption unit 13 uses the parameter and the parameter d to calculate a polynomial r of degree (N-1) or less such that d coefficients are 1 and other coefficients are 0.
  • N-1 degree 1
  • d coefficients are 1 and other coefficients are 0.
  • the encryption unit 13 converts the plaintext m into a polynomial! :, Using the public key h, the parameter N, and the parameter q, perform encryption processing of the first modified NTRU encryption method, and generate a ciphertext c.
  • the encryption unit 13 transmits the generated cipher text c to the decryption device 20 via the communication path 30.
  • a plaintext m represented by a polynomial of degree (N-1) or less is input to the parameter N from outside, the following processing is performed, and the first modified NTRU described above is performed.
  • the plaintext m is encrypted using an encryption method to generate a ciphertext c, which is transmitted to the decryption device 20 via the communication path 30.
  • the encryption unit 13 reads the parameter N, the parameter q, and the parameter d from the parameter storage unit 11 and reads the public key h from the public key storage unit 12. Is read (step S101).
  • the encryption unit 13 uses the parameter and the parameter d so that the d coefficients are 1 and the other coefficients are 0, and the polynomial r of degree (N-1) or less is used. Randomly (Step
  • the encryption unit 13 generates a polynomial! :, Public key h, parameter N
  • the first modified NTRU cryptosystem is subjected to encryption processing to generate a ciphertext c (step S103).
  • the encryption unit 13 transmits the generated cipher text c to the decryption device 20 via the communication path 30 and ends the process (Step S104).
  • the decryption device 20 includes a parameter storage unit 21, a key generation unit 22, a secret key storage unit 23, and a decryption unit 24. [0141]
  • Parameter storage unit 21 (1) Parameter storage unit 21
  • the nomometer storage unit 21 is configured by a memory such as an EEPROM, for example, and is accessible from a key generation unit 22 and a decryption unit 24 described later.
  • the parameter storage unit 21 previously stores the same parameters (N, p, q, df, dg, d) as the parameter storage unit 11 of the encryption device 10.
  • the parameters (p, q, df, dg, d) (251, 3, 256, 72, 72, 72) are written in advance! /.
  • the key generation unit 22 is configured by, for example, a microcomputer, and generates a secret key (f, Fp) and a public key h of the first modified NTRU cryptosystem.
  • the key generation unit 22 reads the parameter N, the parameter q, the parameter df, and the parameter dg from the parameter storage unit 21, and uses the parameter N and the parameter df to obtain df coefficients of 1 and other Select a polynomial f represented by a polynomial of degree (N-1) or less so that the coefficient becomes 0.
  • df non-overlapping df random values Ri (l ⁇ i ⁇ df) ranging from 0 to (N-1) are selected, and the coefficient of the Rith order (l ⁇ i ⁇ df) is 1, Other coefficients can be realized by setting them to 0.
  • the key generation unit 22 uses the parameter N and the parameter dg so that the dg coefficients are 1 and the other coefficients are 0, so that the polynomial of degree (N-1) or less is used.
  • N the polynomial of degree
  • the key generation unit 22 performs the key generation process of the first modified NTRU encryption method described above.
  • the key generation unit 22 publishes the polynomial h as a public key, stores it in advance so that the cryptographic device 10 can obtain it, and stores the pair (f, Fp) of the polynomial f and Fp in the secret key storage unit 23. I do.
  • the secret key storage unit 23 is configured by a memory such as a RAM, for example, and is accessible from the key generation unit 22 and a decryption unit 24 described later.
  • the secret key storage unit 23 stores the pair (f, Fp) of the polynomial f and Fp generated by the key generation unit 22 in advance.
  • the decryption unit 24 is composed of, for example, a microcomputer, and can access the parameter storage unit 21 and the secret key storage unit 23.
  • the decryption unit 24 reads the parameter N, the parameter p, and the parameter q from the parameter storage unit 21, and reads the pair (f, Fp) of the polynomial f and Fp from the secret key storage unit 23. .
  • the decryption unit 24 receives the cipher text c expressed by a polynomial of degree (N-1) or less for the parameter N from the encryption device 10 via the communication path 30.
  • the decryption unit 24 uses the polynomials f and Fp, which are the secret keys, the parameter N, the parameter p, and the parameter q for the ciphertext c, and performs the first modified NTRU encryption method. Perform decryption processing to generate decrypted text m '.
  • decryption unit 24 outputs the generated decrypted text m 'to the outside.
  • the decryption device 20 stores the same parameters as those of the encryption device 10 in advance, and generates a pair (f, Fp) of a polynomial f and Fp that is a secret key of the decryption device 20 and a polynomial h that is a public key. Then, the public key h is made public so that the encryption device 10 can acquire it in advance, and the secret key (f, Fp) is stored in the secret key storage unit 23.
  • a decrypted text m ′ is generated using the high-speed NTRU encryption method described above, and output to the outside.
  • the decryption unit 24 reads the meter N, the parameter p, and the parameter q from the meter storage unit 21.
  • the secret key (f, Fp) is read from the secret key storage unit 23 (step SI31).
  • the decryption unit 24 uses the polynomials f and Fp, which are secret keys, the parameter N, the parameter p, and the parameter q, for the ciphertext c to generate the first modified NTRU cryptosystem. To generate a decrypted text m ′ (step S132).
  • the decryption unit 24 outputs the generated decrypted text m 'to the outside, and ends the process (Step S133). ⁇ Operation of Cryptographic Communication System 1>
  • the key generation unit 22 reads the parameter N, the parameter q, the parameter df, and the parameter dg from the parameter storage unit 21, and uses the parameter N and the parameter df to obtain df coefficients of 1. Then, a polynomial f represented by a polynomial of degree (N-1) or less is selected so that the other coefficients become 0 (step S162).
  • the key generation unit 22 uses the parameter N and the parameter dg to determine that the dg coefficients are 1.
  • a polynomial g represented by a polynomial of degree (N-1) or less is selected so that the other coefficients become 0 (step S163).
  • the key generation unit 22 performs the above-described key generation processing of the first modified NTRU encryption method to generate a polynomial h (step S164).
  • the key generation unit 22 publishes the polynomial h as a public key so that the cryptographic device 10 can obtain it, and uses the pair (f, Fp) of the polynomial f and Fp as a secret key and stores the secret key in the secret key storage unit. This is stored in 23 (Step S165).
  • the public key storage unit 12 acquires and stores the public key h of the decryption device 20 via the communication path 30 (Step S166).
  • the encryption unit 13 reads the parameter N, the parameter q, and the parameter d from the parameter storage unit 11, and stores the public key.
  • the public key h is read from the storage unit 12 (step S167).
  • the encryption unit 13 uses the parameter d to calculate a polynomial r of (N-1) dimension or less such that d coefficients are 1 and other coefficients are 0. Choose randomly (step S168).
  • the encryption unit 13 generates a polynomial! :, Using the public key h, the parameter N, and the parameter q, perform the encryption processing of the first modified NTRU encryption method to generate a ciphertext c (step S169).
  • the encryption unit 13 transmits the generated cipher text c to the decryption device 20 via the communication path 30 (Step S170).
  • the decryption unit 24 reads the parameter N, the parameter p, and the parameter q from the parameter storage unit 21.
  • the secret key (f, Fp) is read from the secret key storage unit 23 (step S171).
  • the decryption unit 24 adds the secret keys polynomials f and Fp,
  • a decryption process of the first modified NTRU encryption method is performed to generate a decrypted text m ′ (step S172).
  • the decryption unit 24 outputs the generated decrypted text m 'to the outside and ends the process (Step S173).
  • the decoding device 20 generates polynomials f and g, whose coefficients are binary values of 0 or 1, in step S162 and step S163 using the parameters in advance,
  • a polynomial h that is a public key is generated based on these polynomials.
  • processing can be performed at a higher speed than the NTRUEncrypt method.
  • processing can be performed at a higher speed than the NTRUEncrypt method.
  • decoding since a decoding error does not occur in principle, unlike NTRUEncrypt, a process for reducing the decoding error occurrence probability is unnecessary, and thus decoding may be performed as follows.
  • a polynomial is used in the decryption processing of the NTRU cipher. Eliminates the need for polynomial multiplication with the expression Fp. In this case, since the polynomial multiplication with the polynomial Fp which is a part of the secret key is unnecessary, the secret key may be a polynomial f which is not (f, Fp).
  • the NTRUE ncrypt method is improved, and the NTRU encryption method is newly configured so that a decryption error does not occur in principle.
  • Encrypted communication is performed using the NTRU encryption method (hereinafter, this newly configured NTRU encryption method in which a decryption error does not occur in principle is referred to as “second modified NTRU encryption method”).
  • the modified NTRU encryption 2 is a modification of the conventional NTRUEncrypt method such that a decoding error does not occur in principle.
  • the modified NTRU encryption 2 differs from the conventional NTRUEncrypt in that parameters are generated so as to satisfy a conditional expression EFC1 described later.
  • the variant NTRU cipher 2 has non-negative integer parameters, N, p, q, df, dg, d.
  • N non-negative integer parameters
  • n Fq X g (mod q
  • the secret key is (f, Fp) and the public key is h.
  • a binary polynomial m of coefficient power ⁇ or 1 which is a plaintext is encrypted, and a polynomial c which is a ciphertext is calculated.
  • the above-described polynomial r is randomly generated. That is, the random number r is a polynomial of degree (N-1) or less, and a force with N coefficients from the 0th order (constant term) to the (N-1) th order. Of these N coefficients, d
  • the polynomial r is randomly selected such that the coefficient of is 1, the d coefficients are 1, and the (N-2d) coefficients are 0.
  • decoding is performed as follows.
  • a polynomial c that is a ciphertext is decrypted, and a polynomial m ′ that is a decryption text is calculated.
  • a polynomial f which is a part of the secret key
  • the second modified NTRU encryption method unlike the conventional NTRUEncrypt method, a process for reducing the probability of occurrence of a decoding error, such as an algorithm called centerl or center2 described in Non-Patent Document 4, is described. Don't do it.
  • the second modified NTRU cryptosystem does not generate a decryption error in principle.
  • the second modified NTRU cryptosystem using parameters satisfying C1 explains that a decryption error does not occur in principle.
  • the NTRU encryption method is a modification of the conventional NTRUEncrypt method such that a decoding error does not occur in principle.
  • Non-Patent Document 2 In order to explain conditions for preventing a decryption error from occurring in NTRUEncrypt, first, conditions for preventing a decryption error from occurring in the NTRU encryption described in Non-Patent Document 2 will be described.
  • Non-Patent Document 2 discloses a polynomial calculated at the time of decryption processing.
  • (mod q *) is the remainder obtained by dividing the i-th coefficient of the polynomial c X f by the modulus q so that the remainder falls within the range of ⁇ 1 qZ2> +1 to qZ2>.
  • This is an operation to set the i-th coefficient of the polynomial a. That is, a polynomial obtained by multiplying the polynomial c and the polynomial f is obtained, and the respective coefficients are subjected to mod q operation so as to be within the range of ⁇ qZ2> + l to qZ2>. Is an operation to be performed.
  • this polynomial a is calculated from the relational expression between plaintext m and ciphertext c and the relational expression between polynomial f which is a part of secret key and public key h. ,
  • the polynomial a is a polynomial obtained by performing a mod q operation on each coefficient of the polynomial p′rXg + fXm so as to be within the range of ⁇ qZ2 to qZ2! /.
  • NTRUEncrypt does not disclose conditions for preventing a decoding error from occurring, but as described above, if all coefficients of the polynomial p'rXg + fXm fall within the range of 0 to (q ⁇ 1), The decoding process can be performed correctly, and no decoding error occurs. This is For the following reasons.
  • a ciphertext c is obtained by using a polynomial f that is a part of a secret key
  • a polynomial obtained by multiplying the polynomial c by the polynomial f is obtained, and a polynomial obtained by performing a mod q operation so that each coefficient falls within a range of 0 to (q ⁇ 1) is defined as a polynomial a. It is.
  • this polynomial a is calculated from the relational expression between plaintext m and ciphertext c and the relational expression between polynomial f which is a part of secret key and public key h. ,
  • the polynomial a is a polynomial obtained by performing a mod q operation on each coefficient of the polynomial p'rXg + fXm so as to be within the range of 0 to (q ⁇ 1)! /.
  • the polynomial! which is a random number
  • the polynomials f and g, and the polynomial m which is plaintext are polynomials whose coefficients are 0 or 1. Therefore, p'rXg + f Xm is a polynomial whose coefficient is 0 or a positive value.
  • the second modified NTRU encryption method is a modification of the conventional NTRUEncrypt method so that parameters are set to satisfy conditional expression EFC1. In this way, a decoding error is prevented from occurring in principle.
  • the k-th coefficient of the polynomial r X g is represented by a (k) where the k-th coefficient of the polynomial a is
  • the random number r is a polynomial in which d coefficients are 1 and other coefficients are 0, and the polynomial g is dg coefficients in 1 and other coefficients Is a polynomial with zero.
  • the maximum value of the coefficient of the polynomial rXg is Min (dg, d).
  • the maximum value of the coefficient of the polynomial p'rXg is obtained by multiplying the maximum value of the coefficient of the polynomial rXg by p, and thus becomes p'Min (dg, d).
  • the maximum value of the coefficient of the polynomial fx m is df.
  • the parameters of the second modified NTRU cryptosystem should generate the parameters that satisfy the conditional expression EFC1 described above.
  • FIG. 7 is a diagram illustrating an entire configuration of the cryptographic communication system lb according to Embodiment 2 of the present invention. First, the outline of the cryptographic communication system lb will be described with reference to FIG.
  • This cryptographic communication system lb is a system for performing encrypted communication of plaintext m, and is a cryptographic device.
  • the encryption device 10b and the decryption device 20b are connected to each other via a communication path 30.
  • the cryptographic device 10b encrypts the plaintext m input from the outside using the above-mentioned second modified NTRU cryptosystem to generate a cryptogram c, and The signal is transmitted to the decoding device 20b via the communication path 30.
  • the decryption device 20b decrypts the encrypted text c received from the encryption device 10b via the communication path 30, generates and outputs a decrypted text m ′.
  • the encryption communication system lb includes an encryption device 10b and a decryption device 20b.
  • the encryption device 10b and the decryption device 20b are connected to each other via a communication path 30.
  • the encryption device 10b includes a parameter storage unit lib, a public key storage unit 12, and an encryption unit 13b.
  • the parameter storage unit 1 lb is configured by a memory such as a RAM or an EEPROM, for example, and is accessible from an encryption unit 13b described later.
  • the parameter storage unit l ib preliminarily considers parameters that satisfy the above-mentioned conditional expression EFC1.
  • the parameters ( ⁇ , ⁇ , q, df, dg, d) (251, 2, 239, 63, 63, 63) are written in advance!
  • the encryption unit 13b is constituted by, for example, a microcomputer, and can access the parameter storage unit 1 lb and the public key storage unit 12.
  • the encryption key unit 13b performs encryption processing of the second modified NTRU encryption method to generate a ciphertext c. It is different from Kabubu 13
  • the decryption device 20b includes a parameter storage unit 21b, a key generation unit 22b, a secret key storage unit 23, and a decryption unit 24b.
  • the parameter storage unit 21b is configured by a memory such as a RAM or an EEPROM, for example, and is accessible from a key generation unit 22b and a decryption unit 24b, which will be described later.
  • the parameter storage unit 21b stores the same parameters as the parameter storage unit l ib of the encryption device 10b.
  • the key generation unit 22b is configured by, for example, a microcomputer, and is error-free. Generate a secret key f and a public key h of the NTRU encryption.
  • the key generation unit 22b is different from the key generation unit 22 that performs the key generation process of the second modified NTRU cryptosystem instead of performing the key generation process of the first modified NTRU cryptosystem.
  • the decryption unit 24b is composed of, for example, a microcomputer, and can access the parameter storage unit 21b and the secret key storage unit 23.
  • the decryption unit 24b performs the decryption process of the second modified NTRU cryptosystem instead of performing the decryption process of the first modified NTRU cryptosystem, and generates a decrypted text m '. This is different from the decryption unit 24.
  • the parameter storage unit 1lb and the parameter storage unit 21b store parameters satisfying the conditional expression EFC1 in advance (step S261).
  • the key generation unit 22b reads the parameter N, the parameter q, the parameter df, and the parameter dg from the parameter storage unit 21b, and uses the parameter and the parameter df to obtain df coefficient powers, and A polynomial f represented by a polynomial of degree (N-1) or less is selected so that the other coefficients become 0 (step S262).
  • the key generation unit 22b uses the parameter N and the parameter dg so that the dg coefficients are 1 and the other coefficients are 0, so that the A polynomial g represented by a polynomial is selected (step S263).
  • the key generation unit 22b performs the above-described key generation processing of the second modified NTRU encryption method.
  • the key generation unit 22b publishes the polynomial h as a public key so that the cryptographic device 10b can obtain it, and stores the pair (f, Fp) of the polynomial f and Fp as a secret key in the secret key storage. It is stored in the part 23 (Step S265).
  • the public key storage unit 12 acquires and stores the public key h of the decryption device 20b via the communication path 30 (Step S266).
  • the encryption key unit 13b reads the parameters N, q, and d from the parameter storage unit l ib and The public key h is read from the storage unit 12 (step S267).
  • the encryption unit 13b uses the parameter N and the parameter d so that the d coefficients are 1 and the other coefficients are 0, so that a polynomial of degree (N-1) or less is used. Choose r at random (Step
  • the encryption unit 13b generates a random number! :, Using the public key h, the parameter, and the parameter q, perform encryption processing of the second modified NTRU encryption method to generate a ciphertext c (step S269).
  • the encryption unit 13b transmits the generated cipher text c to the decryption device 20b via the communication path 30 (Step S270).
  • the parameter / parameter p and parameter q are read from the parameter storage unit 21b, and the secret key (f, Fp) is read from the secret key storage unit 23 (step S271).
  • the decryption unit 24b adds the secret keys polynomials f and Fp,
  • Step S272 a decryption process of the second modified NTRU cryptosystem is performed to generate a decrypted text m ′ (Step S272).
  • the decryption unit 24b outputs the generated decrypted text m ′ to the outside, and ends the process (Step S273).
  • step S261 the encryption device 10b and the decryption device 20b store parameters that satisfy the conditional expression EFC1.
  • the decoding device 20b generates polynomials f and g, whose coefficients are binary values of 0 or 1, in step S262 and step S263 using these parameters in advance.
  • step S267 the encryption device 10b generates a polynomial r whose coefficient is a binary value of 0 or 1, and in step S268, a parameter and a public key h satisfying the conditional expression EFC1. And a random number r, encrypt plaintext m, which is a binary polynomial with coefficient 0 or 1, Issue c is being generated.
  • the decryption device 20b uses the parameters that satisfy the stored conditional expression EFC1 and the polynomials f and Fp that are the secret keys in step S271 Pokoo! / Is generated.
  • conditional expression EFC1 is shared between the encryption device 10b and the decryption device 20b, and the encryption / reception communication is performed using this parameter.
  • conditional expression EFC1 no decoding error occurs in principle, and the decrypted text m 'is always the same as the plaintext m.
  • the NTRUE ncrypt method is improved, and a NTRU encryption method that does not generate a decryption error in principle and can perform high-speed processing is newly configured.
  • the encrypted communication is performed using the newly configured NTRU encryption method.
  • this newly configured NTRU encryption method in which a decryption error does not occur in principle will be referred to as "third modified NTRU encryption method.” ).
  • the NTRU encryption method is a modification of the conventional NTRUEncrypt method so that decryption errors do not occur in principle and high-speed processing is possible.
  • This is different from the conventional NTRUEncrypt in that a polynomial whose coefficient is a binary value of 0 or 1 is selected as a polynomial m, and a parameter is generated so as to satisfy a conditional expression EFC2 described later.
  • the NTRU cryptosystem has non-negative integer parameters, N, p, q, df, dg, d.
  • the meaning of these parameters is the same as that of the conventional NTRUEncrypt method.
  • k an integer of 2 or more.
  • the polynomials f and g, and the polynomial r that is a random number use a polynomial that is a binary value of coefficient power O or 1. This is different from the conventional NTRUEncrypt method in that parameters p, q, df, dg, and d are selected so as to satisfy the following conditional expression EFC2.
  • the polynomials f and g are randomly generated using the norameters df and dg.
  • the secret key is a polynomial f and the public key is h.
  • the binary polynomial m of coefficient power ⁇ or 1 which is plaintext is encrypted, and the polynomial c which is ciphertext is calculated.
  • the above-described polynomial r is randomly generated. That is, the random number r is a polynomial of degree (N-1) or less, and a force with N coefficients from the 0th order (constant term) to the (N-1) th order. Of these N coefficients, d The polynomial r is randomly selected such that the coefficient of is 1, the d coefficients are 1, and the (N-2d) coefficients are 0.
  • a polynomial c that is a cipher text is decrypted and a polynomial m ′ that is a decryption text is calculated.
  • a polynomial f which is a part of the secret key
  • the third modified NTRU encryption method using the parameters satisfying the conditional expression EFC2 described above does not generate a decryption error in principle.
  • the third modified NTRU encryption method modifies the conventional NTRUEncrypt method so that parameters are set to satisfy conditional expression EFC2. In this way, a decoding error is prevented from occurring in principle.
  • the maximum value of the coefficient of the polynomial p′rXg is p-Min (dg, d).
  • the maximum value of the coefficient of the polynomial FXm is df.
  • FIG. 11 is a diagram illustrating an entire configuration of the cryptographic communication system lc according to Embodiment 3 of the present invention. First, an outline of the cryptographic communication system lc will be described with reference to FIG.
  • This cryptographic communication system lc is a system for performing encrypted communication of plaintext m
  • the cryptographic device 10c encrypts the plaintext m input from the outside using the above-described third modified NTRU cryptosystem to generate a cryptogram c.
  • the data is transmitted to the decoding device 20c via the communication path 30.
  • the decryption device 20c decrypts the cipher text c received from the encryption device 10c via the communication path 30, generates a decrypted text m ', and outputs the decrypted text m'.
  • the encryption communication system lc includes an encryption device 10c and a decryption device 20c.
  • the encryption device 10c and the decryption device 20c are mutually connected via a communication path 30.
  • the encryption device 10c includes a parameter storage unit 11c, a public key storage unit 12,
  • the parameter storage unit 1lc is configured by a memory such as a RAM or an EEPROM, for example, and is accessible from an encryption unit 13c described later.
  • the parameters satisfying the conditional expression EFC2 are stored in advance.
  • the parameters (N, p, q, df, dg, d) (251, 3, 256, 42, 42, 42) are taken into account in advance! .
  • the encryption unit 13c is constituted by, for example, a microcomputer, and can access the parameter storage unit 11c and the public key storage unit 12.
  • the encryption key unit 13c performs encryption processing of the third modified NTRU encryption method to generate a ciphertext c. It is different from Kabubu 13
  • the decryption device 20c includes a parameter storage unit 21c, a key generation unit 22c, a secret key storage unit 23, and a decryption unit 24c.
  • the parameter storage unit 21c is composed of a memory such as a RAM or an EEPROM, for example, and is accessible from a key generation unit 22c and a decryption unit 24c, which will be described later.
  • the parameter storage unit 21c has the same parameters as the parameter storage unit 11c of the encryption unit 10c.
  • the key generation unit 22c is formed of, for example, a microcomputer, and generates a polynomial f that is a secret key and a polynomial h that is a public key in the third modified NTRU encryption scheme.
  • the key generation unit 22c is different from the key generation unit 22 that performs the key generation process of the third modified NTRU cryptosystem instead of performing the key generation process of the first modified NTRU cryptosystem.
  • the decryption unit 24c is composed of, for example, a microcomputer, and can access the parameter storage unit 21c and the secret key storage unit 23.
  • the decryption unit 24c performs the decryption process of the third modified NTRU encryption system instead of performing the decryption process of the first modified NTRU encryption system, and generates a decrypted text m '. This is different from the decryption unit 24.
  • step S361 a parameter that satisfies conditional expression EFC2 is stored in advance (step S361).
  • the key generation unit 22c uses the parameter N and the parameter dg so that the dg coefficients are 1 and the other coefficients are 0, so that the Select a polynomial g represented by a polynomial (step S363).
  • the key generation unit 22c performs the above-described key generation processing of the third modified NTRU encryption method.
  • a public key polynomial h is generated (step S364).
  • the key generation unit 22c publishes the polynomial h as a public key so that the cryptographic device 10c can acquire it, and stores the polynomial f as a secret key in the secret key storage unit 23 (step S365).
  • the public key storage unit 12 acquires and stores the public key h of the decryption device 20c via the communication path 30 (Step S366).
  • the encryption key unit 13c reads the parameters N, q, and d from the parameter storage unit 11c, and stores the public key.
  • the public key h is read from the part 12 (step S367).
  • the encryption unit 13c uses the parameter N and the parameter d so that the d coefficients are 1 and the other coefficients are 0, and the polynomial of degree (N-1) or less is used. Choose r at random (Step
  • the encryption unit 13c performs encryption processing of the third modified NTRU encryption method on the plaintext m using the random number!:, The public key h, the parameter N, and the parameter q. Then, a ciphertext c is generated (step S369).
  • the encryption unit 13c transmits the generated cipher text c to the decryption device 20c via the communication path 30 (Step S370).
  • the decryption unit 24c receives the ciphertext c from the encryption device 10c via the communication path 30,
  • step S371 the parameter / parameter p and parameter q are read from the parameter storage unit 21c, and the secret key f is read from the secret key storage unit 23 (step S371).
  • the decryption unit 24c performs the decryption process of the third modified NTRU encryption scheme on the ciphertext c using the secret key f, the parameter p, and the parameter q. Then, a decrypted text m 'is generated (step S372).
  • the decryption unit 24c outputs the generated decrypted text m ′ to the outside, and ends the process (Step S373).
  • step S361 the encryption device 10c and the decryption device 20c
  • the decryption device 20c generates a secret key f and a polynomial g whose coefficients are binary values of 0 or 1 in steps S362 and S363 using the parameters in advance, and in step S364 , A public key h is generated based on these polynomials.
  • the decrypted text m ' is generated using various parameters.
  • the third modified NT that does not generate a decoding error in principle and can perform high-speed processing
  • the RU encryption method can be configured, and the third modified NTRU encryption method is applied to the encryption communication system, so that the data contents transmitted by the encryption device can always be obtained correctly by the decryption device, and the processing speed is faster than before.
  • a possible cryptographic communication system can be provided.
  • the cryptographic communication system 1 includes a key generation device capable of communicating with the encryption device 10 and the decryption device 20 via a dedicated communication path, in addition to the capability of the decryption device 20 performing the key generation process.
  • the key generation device performs the key generation process, and the encryption device 10 obtains the public key h from the key generation device via the dedicated communication path and stores the public key h.
  • the decryption device 20 obtains a part of the secret key or the polynomial f which is the secret key itself from the key generation device via the dedicated communication path, and stores it in the secret key storage unit 23 in advance. You may memorize it.
  • the communication path 30 may be used instead of the dedicated communication path.
  • a force expressing an operation using a polynomial may be expressed as an element of a general ring R as in Patent Document 1.
  • a polynomial may be an element of the ring R
  • p and q may be ideals of the ring R.
  • 3 is the zero element 0 plus the unit element 1 three times.
  • 2 "k is the unit element of the multiplicative group. This is the result of multiplying the order 1 by 2 times k times.
  • dg, d is the element g, r is the number of elements when represented by an N-dimensional array is 1, and df is the number of elements when f or F is represented by an N-dimensional array is 1. And no decoding error occurs.
  • the conditional expression may be pg X Min (dg, d) + 1 + pg X df or qg! / ⁇ .
  • the present invention may be the method described above. Further, the present invention may be a computer program that realizes these methods by a computer, or may be a digital signal that also has the power of the computer program.
  • the present invention provides a computer-readable recording medium for storing the computer program or the digital signal, for example, a semiconductor memory, a hard disk drive, a CD-ROM.
  • Each functional block in the block diagrams is typically realized as an LSI which is an integrated circuit. These may be individually formed into one chip, or may be formed into one chip so as to include a part or all of them.
  • LSIs are sometimes called ICs, system LSIs, super LSIs, and ultra LSIs depending on the degree of integration.
  • the method of circuit integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor.
  • Programmable FPGA Field
  • the encryption communication system, the encryption device, and the decryption device according to the present invention perform processing at a higher speed than in the past.
  • the present invention has the effect of being able to control the transmission of data, or preventing the occurrence of a decryption error in principle, and is useful as a cryptographic communication system for key distribution and content distribution.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

 従来より高速処理可能な暗号通信システムは、暗号装置と復号装置とを備えており、p=3かつq=2^k(k:2以上の整数)となるパラメータを、暗号装置と復号装置との間で共有している(S161)。復号装置は、このパラメータを用いて公開鍵および秘密鍵を作成する(S162~S165)。暗号装置は、復号装置の公開鍵を用いて平文の暗号化を行なう(S166~S170)。復号装置は、復号装置の秘密鍵を用いて暗号文を復号化する(S171~S173)。                                                                                 

Description

明 細 書
暗号システム、暗号装置、復号装置、プログラムおよび集積回路 技術分野
[0001] 本発明は、情報セキュリティ技術としての暗号技術に関し、特に、復号エラーが発 生しない暗号に関するものである。
背景技術
[0002] 従来、送信装置と受信装置との間で秘匿通信を実現する方法として、公開鍵暗号 を用いた暗号ィ匕通信が提案されている。従来の暗号化通信について簡単に説明す ると、送信装置が、通信内容を受信装置の公開鍵を用いて暗号ィ匕して送信し、受信 装置は、暗号化された通信内容を受信し、それを自身の秘密鍵を用いて復号して元 の通信内容を得る方法である(例えば、非特許文献 1参照)。ここで、公開鍵の値から 秘密鍵の値を計算するのは困難である。この方法を用いる一般的な暗号通信システ ムでは、送信装置及び受信装置は、ともに複数存在する。まず、送信装置は、通信 先受信装置の公開鍵を取得する。この公開鍵は、通信先受信装置が有する秘密鍵 と対になるものであり当該システムにおいて公開されている。そして、送信装置は、通 信すべきデータ内容を上記のように取得した公開鍵で暗号化して送信する。一方、 受信装置は、上記のように暗号化された通信内容データを受信する。そして、受信装 置は、暗号化された通信内容データを、自身の有する秘密鍵で復号して元の通信内 容データを得る。
[0003] 1996年、高速処理が可能な公開鍵暗号として、 NTRU (ェヌティーアールュ一 ·ク リブトシステムズ'インコーポレーテッドの商標)暗号が提案された (例えば、非特許文 献 2参照)。この NTRU暗号は、ある法の下でべき乗剰余演算を行う RSA(Rivest Shamir Adleman)暗号や楕円曲線上の点のスカラ倍演算を行う楕円曲線暗号に 比べ、高速に演算可能な多項式演算により暗号化と復号化とを行う。このため、従来 の公開鍵暗号よりも高速に処理することが可能で、ソフトウェア処理でも実用的な時 間で暗号化及び復号化の処理が可能ある。
[0004] 従って、公開鍵暗号に NTRU暗号を用いた暗号通信システムでは、従来の公開鍵 暗号を用いた暗号通信システムよりも、送信装置及び受信装置の処理が高速に行え るという利点がある。
[0005] この NTRU暗号方式については、非特許文献 2に詳しく述べられているので、ここ では詳細な説明を省略するが、以下に簡単に説明する。
[0006] <NTRU暗号方式 >
(l) NTRU暗号のパラメータ
NTRU暗号は、非負整数のパラメータ、 N、 p、 q、 df、 dg、 dを持つ。以下に、これら のパラメータの意味を説明する。
[0007] (i)パラメータ N
NTRU暗号は、多項式の演算により暗号化と復号ィ匕を行う公開鍵暗号方式である 。 NTRU暗号で扱う多項式の次元は、上記パラメータ Nにより決まる。
[0008] NTRU暗号で扱う多項式は、上記パラメータ Nに対し、(N— 1)次以下の整数係数 多項式であり、例えば N = 5のとき、 X'4+X'3 + l等の多項式である。ここで、「X'a 」は Xの a乗を意味することとする。また、暗号ィ匕時あるいは復号ィ匕時に用いられる公 開鍵 h、秘密鍵 f、平文 m、乱数!:、暗号文 cはいずれも、(N— 1)次以下の多項式とし て表現される。
[0009] そして、多項式演算は、上記パラメータ Nに対し、「: ΤΝ= 1」という関係式を用いて 、演算結果が常に (N—1)次以下の多項式になるように演算される。例えば、 Ν = 5 の場合、多項式 X"4+X"2+ lと多項式 Χ"3+Χの積は、多項式と多項式の積を「X 」、整数と多項式の積 (あるいは整数と整数の積)を「·」とすると、「Χ'5 = 1」という関 係から、
(X"4+X"2+ l) X (Χ"3+Χ)
=Χ"7 + 2·Χ"5 + 2·Χ"3+Χ
=Χ"2 Χ 1 + 2· 1 + 2·Χ"3+Χ
= 2·Χ"3+Χ"2+Χ+ 2
t 、うように、常に (N—1)次元以下の多項式になるように計算される。
[0010] (ii)パラメータ p、q
NTRU暗号では、 2以上の整数であるパラメータ p、 qが用いられる。 NTRU暗号で 出現する多項式の係数は、 p、 qを法とした剰余を取る。非特許文献 2に記載の通り、 このパラメータ p、 qは互いに素となる必要がある。
[0011] (iii)パラメータ df、 dg、 d
NTRU暗号で扱う秘密鍵の一部である多項式 f、公開鍵である多項式 hを生成する ときに多項式 fと共に用 、る多項式 g、及び平文を暗号化するときに用いる乱数である 多項式 rの選び方は、それぞれパラメータ df、 dg、及び dにより決まる。
[0012] まず、多項式 fは、 df個の係数が 1であり、かつ(df— 1)個の係数が 1であり、かつ 他の係数は 0となるように選ばれる。すなわち、多項式 fは (N— 1)次以下の多項式で あり、 0次(定数項)から (N—1)次までの N個の係数を有する。この N個の係数のうち 、 df個の係数が 1であり、かつ(df— 1)個の係数が 1であり、かつ(N— 2df+ l)個 の係数が 0となるように多項式 fが選ばれる。
[0013] そして、多項式 gは、 dg個の係数が 1であり、かつ dg個の係数が 1であり、かつ他 の係数が 0となるように選ばれる。また、乱数である多項式 rは、 d個の係数が 1であり 、かつ d個の係数が 1であり、かつ他の係数が 0となるように選ばれる。
[0014] 非特許文献 2には、 NTRU暗号のパラメータの例として、(N, p, q, df, dg, d) = ( 107, 3, 64, 15, 12, 5)、(N, p, q, df, dg, d) = (167, 3, 128, 61, 20, 18)、 ( N, p, q, df, dg, d) = (503, 3, 256, 216, 72, 55)の 3つの f列力 ^挙げ、られて! /、る
[0015] (2) NTRU暗号の鍵生成
NTRU暗号では、上述したように、パラメータ dfおよび dgを用いてランダムに多項 式 fおよび多項式 gがそれぞれ生成される。そして非特許文献 2に記載の通り、 Fq X f = l (mod q)なる関係を有する多項式 Fqを用いて、
n=Fq X g (mod qノ
により、多項式 hが生成される。ここで、 a (mod b)は aを bで除したときの剰余を示す
[0016] また、 NTRU暗号では、秘密鍵を (f , Fp)、公開鍵を hとする。
[0017] ここで、「x=y(mod q)」は、多項式 yの第 i次の係数を剰余が 0から q— 1の範囲に 収まるようにするために、法 qで割ったときの剰余を多項式 Xの第 i次の係数とする演 算である(0≤i≤N— 1)。すなわち、 yの各係数を、 0から (q— 1)の範囲に収まるよう に mod q演算(qで除したときの剰余を求める演算、法 qでの剰余演算)を施した多 項式を、多項式 Xとする演算である。
[0018] (3) NTRU暗号の喑号ィ匕
NTRU暗号の暗号化では、平文である多項式 mを暗号化し、暗号文である多項式 cを計算する。まず、上述したような多項式である乱数 rをランダムに生成する。すなわ ち、乱数 rは (N—1)次以下の多項式であり、 0次(定数項)から (N— 1)次まで N個の 係数があるが、この N個の係数のうち、 d個の係数が 1であり、かつ d個の係数が 1 であり、かつ (N— 2d)個の係数が 0となるように、ランダムに多項式ほ L数) rを選ぶ。
[0019] そして、この乱数 rと公開鍵 hとを用いて、係数が 0、 1もしくはー1である(N—1)次 以下の平文 mに対し、
c = p 'r X h + numod q)
により、暗号文 cを生成する。
[0020] この演算は、上述した通り、多項式 (p 'r X h+m)の各係数を、 0から(q— 1)の範囲 に収まるように mod q演算を施した多項式を、多項式 cとする演算である。
[0021] (4) NTRU暗号の復号ィ匕
NTRU暗号の復号化では、暗号文である多項式 cを復号化し、復号文である多項 式 m'を計算する。復号ィ匕時には、まず、暗号文 cに対し、秘密鍵の一部である多項 式 fを用いて、
a = f X c (mod q * J
により多項式 aを計算する。
[0022] ここで、(mod q * )は、上述の(mod q)演算と異なり、多項式 (f X c)の第 i次の係 数を、〈― qZ2〉 + lからく qZ2〉の範囲に収まるように法 qで割ったときの剰余を、多 項式 aの第 i次の係数とする演算である (0≤i≤N— 1)。すなわち、係数がく qZ2〉か ら q—1までの間の値である場合は、係数力も qを減算して、上記範囲に収まるよう調 整する。ここで、〈x〉は、 X以下の数の中で最も大きい数を示す。例えば、 <- 1/2> = 1である。
[0023] 次に、多項式 aに対し、ノ メータ pを用いて、 b = a (mod p)
により、多項式 bを生成する。
[0024] そして、多項式 bに対し、秘密鍵の一部である多項式 Fpを用いて、
m =Fp X b (mod p水)
により、復号文 m'を計算する。
[0025] なお、この(mod p * )という演算は、上述した通り、多項式(Fp X b)の第 i次の係 数を、〈一 pZ2〉 + lからく pZ2〉の範囲に収まるように法 pで割ったときの剰余を、多 項式 m'の第 i次の係数とする演算である。
[0026] なお、この NTRU暗号に関して、上述のパラメータは全て p = 3となるパラメータで あるが、このパラメータの他に p = 2となるパラメータも開示されている(例えば、非特 許文献 3参照)。なお、非特許文献 2に記載の通り、 p = 3の場合は、平文 mは係数が 0、 1もしくは 1の 3値である多項式である力 p = 2の場合は、平文 mは係数が 0もし くは 1の 2値である多項式である。そして、秘密鍵である多項式 f、多項式 g、乱数 rは、 p = 2か p = 3かに関わらず係数が 0、 1もしくは— 1の 3値である多項式である。
[0027] また、この NTRU暗号に関して、鍵生成処理において、
n=p,Fq X g (mod q)
を満たすように、公開鍵 hを生成し、暗号化処理を
c=rX h+m (mod q)
により行う方法も開示されている (例えば、非特許文献 5参照)。
[0028] しかしながら、上述した NTRU暗号は、公開鍵を用いて平文を暗号化して暗号文 を生成し、正規の秘密鍵を用いて暗号文を復号して復号文を生成しても、復号文が 元の平文と異なる場合が発生する (例えば、非特許文献 2参照)。このことを復号エラ 一 (decryption failure)が発生すると!/、う。非特許文献 2に記載の NTRU暗号は、 上述したパラメータの取り方により復号エラーの発生確率が変わるが、当該文献に開 示されているパラメータではいずれも、 10" (— 5)程度の確率で復号エラーが発生す ることが知られている (例えば、非特許文献 3参照)。
[0029] これに対し、近年、パラメータを後述するパラメータに限定し、復号化時に復号エラ 一発生確率を低減させる計算を追加することにより、復号エラー確率を 2" (— 100) 以下にする新しい NTRU暗号方式である NTRUEncryptと呼ばれる方式が提案さ れている(例えば、非特許文献 4参照)。
[0030] この NTRUEncrypt方式については、非特許文献 4に詳しく述べられているので、 ここでは詳細な説明を省略するが、以下に簡単に説明する。
[0031] < NTRUEncrypt方式 >
(1) NTRUEncryptのパラメータ
NTRUEncryptでは、非負整数のパラメータ、 N、 p、 q、 df、 dg、 dを持つ。非特許 文献 4には、 NTRUEncryptのノ ラメータとして(N, p, q, df, dg, d) = (251, 2, 2 39, 72, 72, 72)というパラメータのみが開示されている。 NTRUEncryptでは、こ れらのパラメータのうち、パラメータ df、 dg、 dの意味が NTRU暗号と異なる。
[0032] 以下に、上述の NTRU暗号との差異点を中心に、これらのパラメータの意味を説明 する。
[0033] (i)パラメータ N
NTRUEncryptは、 NTRU暗号と同様、多項式の演算により暗号化と復号化を行 う公開鍵暗号方式である。 NTRU暗号と同様、 NTRUEncryptで扱う多項式は、上 記パラメータ Nに対し、(N—1)次以下の整数係数多項式であり、多項式演算は、 X" N= 1という関係式を用いて、演算結果が常に (N— 1)次以下の多項式になるように 演算される。
[0034] (ii)パラメータ p、q
NTRUEncryptでは、上述の通り p = 2、かつ q = 239となるパラメータ p、 qを用い る。このパラメータ p、 qは互いに素となっている。
[0035] (iii)パラメータ df、 dg、 d
NTRUEncryptで扱う秘密鍵の一部である多項式 f、公開鍵である多項式 hを生成 するときに多項式 fと共に用いる多項式 g、及び平文を暗号ィ匕するときに用いる乱数 である多項式 rの選び方は、それぞれパラメータ df、 dg、 dにより決まる。
[0036] まず、 df個の係数が 1であり、かつ他の係数は 0となるような(N— 1)次以下の多項 式 fが選ばれる。
[0037] そして、 dg個の係数が 1であり、かつ他の係数は 0となるような(N—1)次以下の多 項式が選ばれる。また、乱数 rとして、同様に、 d個の係数が 1であり、かつ他の係数は 0となるような (N— 1)次以下の多項式が選ばれる。
[0038] すなわち、 NTRU暗号では、多項式 f、 g、 rとして、係数が 0、 1もしくは 1である多 項式を選んでいたのに対し、 NTRUEncryptでは、多項式 f、 g、 rとして、係数が 0も しくは 1である多項式を選ぶ点が NTRU暗号と異なる。
[0039] (2) NTRUEncryptの鍵生成
NTRUEncryptでは、上述したように、パラメータ df、 dgを用いてランダムに多項式 f、 gを生成する。そして非特許文献 4に記載の通り、 Fq X f= l (mod
q)となる多項式 Fqを用いて、
n=p,Fq X g (mod q)
により、多項式 hを生成する。また、 NTRUEncryptでは、秘密鍵を (f, Fp)、公開鍵 を多項式 hとする。
[0040] (3) NTRUEncryptの暗号化
NTRUEncryptでは、まず、上述したような乱数 rをランダムに生成する。すなわち 、パラメータ dを用いて d個の係数が 1であり、かつ他の係数は 0となるような(N— 1) 次以下の多項式をランダムに選び、乱数 rとする。
[0041] そして、この乱数 rと公開鍵 hを用いて、係数が 0もしくは 1である (N—1)次以下の 平文 mに対し、
c=rX h+m (mod q)
により、暗号文 cを生成する。
[0042] この演算は、上述した通り、多項式 (r X h+m)の各係数を、 0から(q— 1)の範囲に 収まるように mod q演算を施した多項式を、多項式 cとする演算である。
[0043] なお、 NTRU暗号の説明で述べた通り、鍵生成処理にお!、て、
n=Fq X g (mod qノ
を満たすように、公開鍵 hを生成し、暗号化処理を、
c = p'r X h + numod q)
により行っても、暗号文 cの値は同一となるため、本質的な違いはない。
[0044] (4) NTRUEncryptの復号化 復号ィ匕時には、まず、暗号文 cに対し、秘密鍵の一部である多項式 fを用いて、 a = f Xc(mod q水水)
により多項式 aを計算する。
[0045] ここで、(mod q* *)は、上述の(mod q)演算と異なり、多項式(f Xc)の第 i次の 係数を適切な幅 qの区間に収まるように法 qで割ったときの剰余を、多項式 aの第 i次 の係数とする演算である (0≤i≤N— 1)。具体的な演算方法は、非特許文献 4に、 ce nter 1もしくは center2と呼ばれるアルゴリズムで規定されて!、る。
[0046] 以下に、 center2のアルゴリズムを示す。
[0047] (center2アルゴリズム)
Stepl:A=fXc(mod q)とし、 11= (A(l)— pXdXdg)Z(dr (― 1) mod q) mod qを計算する。ここで、 A(l)は多項式 Aの変数 xに 1を代入したときの値を示 す。
[0048] Step2 :11がく(N— q) /2) + 1からく(N + q) /2)の範囲に入るよう IIに qの倍数を 足して調整したときの値を 12とする(当然、 12 = 11 mod qを満たす)。
[0049] Step 3 :J = df XI2+pXdX dgを計算する。
[0050] Step4:Aの各係数が 0ZN— qZ2〉 +1から 0ZN + qZ2〉の範囲に入るように、 各係数に qの倍数を足して調整した後の多項式を a ( = fX c (mod q * * ) )とする。
[0051] この演算は、復号エラー発生確率を減少させるために行う処理である。
[0052] 次に、多項式 aに対し、ノ メータ pを用いて、
b = a(mod p)
により、多項式 bを生成する。
[0053] そして、多項式 bに対し、秘密鍵の一部である多項式 Fpを用いて、
m =Fp Xb (mod p)
により、復号文 m'を生成する。
[0054] なお、この NTRUEncryptに関して、 df個の係数が 1であり、かつ他の係数は 0とな るような (N— 1)次以下の多項式 Fを選び、 f = 1 +p 'Fと 、う式により多項式 fを構成 する方式も開示されている (例えば、非特許文献 4参照)。この方式は、非特許文献 4 に記載の通り、多項式 fが f=l+p'Fという形であるために、 FpXf=l(mod p)とな る多項式 Fpは Fp = 1 (mod p)となるので、復号化処理で行う多項式 Fpとの多項式 乗算が不要となり、
m,=a (mod p)
により、復号文 mを生成できる。
[0055] この NTRUEncryptは、復号化時に復号エラー発生確率を減少させる処理を行う ことにより、 NTRU暗号よりも復号エラーが発生しにくくした方式ではある力 その復 号エラー発生確率は 2' (— 100)以下ということし力示されておらず、復号エラー発生 確率が 0、すなわち、復号エラーを全く発生させない方法については知られていない
[0056] なお、 NTRU暗号及び NTRUEncrypt共に多項式を用いて演算を表現して!/、る
1S 特許文献 1ではこれを一般の環 Rの元として表現している。具体的には、上記の 多項式を環 Rの元とし、 p、 qを環 Rのイデアルとしている。
[0057] 特許文献 1 :特表 2000— 516733号公報
非特許文献 1 :岡本龍明、山本博資、「現代暗号」、シリーズ Z情報科学の数学、産 業図書、 1997.
特許文献 2: Jeff ery Hoff stein, Jill Pipher, and Joseph H. Silverma n, "NTRU: A ring based public key crypto system , Lecture Not es in Computer Science, 1423, pp. 267— 288, Springer— Verlag, 1998.
非特許文献 3 :Joseph H. Silverman, "NTRU Crypto systems Technical Report # 011, Version 2, Wraps, Gaps, and Lattice Constants" , [online]、 2001年 3月 15曰、 [2003年 12月 15曰検索]、インターネットく URL : http: / / www. ntru. com/ cryptolab/ pdf / NTRUTechO 11― v2. pdf
>
非特許文献 4:Joseph H. Silverman, W. Whyte, "NTRU Cryptosyste ms Technical Report # 018, Version 1, Estimating Decryption Fa ilure Probabilities for NTRUEncrypt", [online] , 2003年、 [2003年 12 月 15日検索]、インターネットく URL : http: //www. ntru. com/cryptolab /pdf /NTRUTechO 18. pdf >
非特許文献 5 : NTRU Cryptosystems, Inc. , "The NTRU Public Key Cryptosystem - A Tutorial", [online]、 [2003年 12月 15日検索]、インタ ~~ネット < URL : http: / / www. ntru. com/ cryptolab/ pdf/ ntrututorial s. pdf >
非特許文献 6 : Nick Howgrave― Graham, Joseph H. Silverman, and William Whyte, "NTRU Cryptosystems Technical Report # 004, V ersion 2, A Meet— In— The— Middle Attack on an NTRU Private Key", [online]、 2003年、 [2003年 12月 15曰検索]、インターネットく URL : h ttp:Z / www. ntru. com/ cryptolab/ p df / NTRUTe chO 18. pdf > fhe NTRU Public Key Cryptosystem - A Tutorial", [online]、 [2003年 12月 15日検索]、インターネットく URL : http: //www. ntru. com/cryptola b/pdf/NTRUTech004v2. pdf >
特許文献 7 : Jeff ery Hoff stein, Joseph H. Silverman, and William Whyte, "NTRU Cryptosystems Technical Report # 012, Version 2 , Estimated Breaking Times for NTRU Lattices ,,, [online]、 2003 年、 [2003年 12月 15日検索]、インターネットく URL : http : //www. ntru. co m/cryptolab/pdf /NTRUTechO 12v2. pdf >
発明の開示
発明が解決しょうとする課題
[0058] しかしながら、上述した NTRUEncrypt方式では、 qが 2以外の素数であるため、暗 号ィ匕処理及び復号ィヒ処理で行う多項式係数の法 qでの剰余演算が NTRU暗号方 式に比べて容易にできない。このため、 NTRU暗号方式と比べて暗号化処理及び 復号化処理の処理速度が遅くなる、という課題がある。
[0059] また、上述した NTRUEncrypt方式では、復号エラー発生確率は 0ではないため、 送信装置と受信装置の間で暗号化通信を行う暗号通信システムに適用した場合、送 信装置が送信したデータ内容が、受信装置で正しく得られない場合がある、という課 題がある。 [0060] 本発明は、前記従来の課題を解決するもので、 NTRUEncrypt方式より高速な N TRU暗号方式を新たに構成し、新たに構成した NTRU暗号方式を暗号システム〖こ 適用することで、さらに高速な暗号システムを提供することを第 1の目的とする。
[0061] また、復号エラーが原理的に発生しな 、NTRU暗号方式を新たに構成し、新たに 構成した NTRU暗号方式を暗号システムに適用することで、送信装置が送信したデ ータ内容が、常に受信装置で正しく得られるような暗号システムを提供することを第 2 の目的とする。
課題を解決するための手段
[0062] 上記目的を達成するために、本発明に係る暗号システムは、所定の暗号方式に従 V、平文を暗号化して暗号文を生成する暗号装置と、前記所定の暗号方式に従!、前 記復号文を復号化して復号文を生成する復号装置とを備える暗号システムであって 、前記復号装置は、加算、減算、乗算が定義された N次元配列の集合である環 Rと、 前記環 Rのイデアル p、 qに対し、前記環 Rの元 f、 gと、 f (mod q)の逆数である元 Fq と(ここで a (mod b)は、 aを bで割った余りを示す。)、 f (mod p)の逆数である元 Fp とを生成し、前記元 gおよび前記元 Fqの積と法を qとして合同である元 hを公開鍵とし て生成し、前記元 fおよび前記元 Fpを得ることのできる情報を秘密鍵として生成する 鍵生成部と、前記秘密鍵を使用して前記暗号文を復号化して前記復号文を生成す る復号化部とを備え、前記暗号装置は、前記公開鍵及び前記環 Rからランダムに選 択した元 rを使用して前記平文を暗号化して前記暗号文を生成する暗号化部を備え 、前記元 f、前記元 g、前記元!:、前記平文である N次元配列のすべての要素は 0もし くは 1であり、前記イデアル pと前記イデアル qとは互いに素であり、前記イデアル qは q= (2"k) *Rである(ただし、 は 1〖こ 2を k回掛けた結果であり、 *は環 Rの乗算 を表す)ことを特徴とする。
[0063] qを上述のように、定義している。このため、 qが整数の場合には、 qは 2のべき乗とな り、法 qでの剰余演算 (mod q演算)をビットマスク演算により行なうことができる。よつ て、暗号システムは、高速に処理を行なうことができる。
[0064] また、前記鍵生成部は、前記元 fは、 N次元配列の値が 1となる要素の数を規定す る非負整数 dfに基づき生成され、前記元 gは、 N次元配列の値が 1となる要素の数を 規定する非負整数 dgに基づき生成され、前記元 rは、 N次元配列の値が 1となる要素 の数を規定する非負整数 dに基づき選択され、前記イデアル pは、前記環 Rの元 pgに 対し p = pg *Rであり、前記イデアル qは、前記環の元 qgに対し q = qg *Rであり、前 記次元 N、前記元 pg、前記元 qg、前記非負整数 df、前記非負整数 dg、前記非負整 数 dは、復号エラー発生有無を判定するエラー条件情報に基づいていてもよい。さら に、前記エラー条件情報は、復号エラーが発生しないための条件を表す条件式であ つてもよい。具体的には、前記条件式は、 Min(dg, d) +df< (qg— l)Zp (ただし、 Min (a, b)は aと bの小さ!/、方の数を表す)である。
[0065] 上述の条件式を満たすようにパラメータを設定すると、実施の形態において後述す るように、多項式 p 'r X g + f X mの全ての係数が 0から(q— 1)の範囲に収まることに なり、復号エラーは発生が発生しない。
[0066] なお、本発明は、このような特徴的な手段を備える暗号システムとして実現すること ができるだけでなぐ暗号システムに含まれる特徴的な手段をステップとする暗号方 法として実現したり、暗号システムを構成する暗号装置および復号装置に含まれる特 徴的な手段としてコンピュータを機能させるプログラムとして実現したりすることもでき る。そして、そのようなプログラムは、 CD-ROM (Compact Disc-Read Only Memory )等の記録媒体やインターネット等の通信ネットワークを介して流通させることができる のは言うまでもない。
発明の効果
[0067] 本発明によると、従来最速の NTRUEncrypt方式よりも高速処理可能な NTRU暗 号方式を新たに構成し、また、この NTRU暗号方式を暗号通信に適用することで、 従来よりも高速処理可能な暗号システムを構成することできる。
[0068] また、復号エラーが原理的に発生しな 、NTRU暗号方式を構成し、また、この NT RU暗号方式を暗号システムに適用することで、暗号装置が送信したデータ内容が、 常に復号装置で正しく得られるような暗号システムを構成することできる。
[0069] さらに、復号エラーが原理的に発生せず、かつ高速処理可能な NTRU暗号方式を 構成し、また、この NTRU暗号方式を暗号システムに適用することで、暗号装置が送 信したデータ内容が、常に復号装置で正しく得られ、従来よりも高速処理可能な暗号 システムを構成することできるようになった。
[0070] 以上により、従来達成できなかった暗号システム、暗号装置及び復号装置を提供 することができ、その実用的価値は大きい。
図面の簡単な説明
[0071] [図 1]図 1は、本発明の実施の形態 1に係る暗号通信システムの構成を示すブロック 図である。
[図 2]図 2は、実施の形態 1に係る暗号装置の構成を示すブロック図である。
[図 3]図 3は、実施の形態 1に係る暗号装置の動作を示すフローチャートである。
[図 4]図 4は、実施の形態 1に係る復号装置の構成を示すブロック図である。
[図 5]図 5は、実施の形態 1に係る復号装置の動作を示すフローチャートである。
[図 6]図 6は、実施の形態 1に係る暗号通信システム全体の動作を示すフローチヤ一 トである。
[図 7]図 7は、本発明の実施の形態 2に係る暗号通信システムの構成を示すブロック 図である。
[図 8]図 8は、実施の形態 2に係る暗号装置の構成を示すブロック図である。
[図 9]図 9は、実施の形態 2に係る復号装置の構成を示すブロック図である。
[図 10]図 10は、実施の形態 2に係る暗号通信システム全体の動作を示すフローチヤ ートである。
[図 11]図 11は、実施の形態 3に係る暗号通信システムの構成を示すブロック図であ る。
[図 12]図 12は、実施の形態 3に係る暗号装置の構成を示すブロック図である。
[図 13]図 13は、実施の形態 3に係る復号装置の構成を示すブロック図である。
[図 14]図 14は、実施の形態 3に係る暗号通信システム全体の動作を示すフローチヤ ートである。
符号の説明
[0072] 1, lb, lc 暗号通信システム
10, 10b, 10c 暗号装置
11, l ib, 11c, 21, 21b, 21c ノ ラメータ記憶部 12 公開鍵記憶部
13, 13b, 13c 暗号ィ匕部
20, 20b, 20c 復号装置
22, 22b, 22c 鍵生成部
23 秘密鍵記憶部
24, 24b, 24c 復号ィ匕部
30 通信路
発明を実施するための最良の形態
[0073] 以下本発明の実施の形態について、図面を参照しながら説明する。
[0074] (実施の形態 1)
本実施の形態 1に係る暗号通信システム、暗号装置及び復号装置では、従来にお いて最速である NTRUEncrypt方式よりも高速処理可能な NTRU暗号方式を新た に構成し、この新たに構成した NTRU暗号方式を用いて暗号ィ匕通信を行う(以降、こ の新たに構成した、従来よりも高速処理可能な NTRU暗号方式を「第 1の変形 NTR U暗号方式」と呼ぶ)。
[0075] そのため、最初に高速 NTRU暗号方式について説明を行う。
[0076] 以下、従来の NTRUEncrypt方式との差異点を中心に第 1の変形 NTRU暗号方 式について説明する。
[0077] <第 1の変形 NTRU暗号方式 >
第 1の変形 NTRU暗号方式は、従来の NTRUEncryp りも高速処理可能となる ように改変したものである。
[0078] 第 1の変形 NTRU暗号方式は、パラメータとして p = 3、 q = 2"k(k: 2以上の整数) となるパラメータを用いつつ、多項式 f、 g、乱数である多項式 r及び平文である多項 式 mとして、係数が 0もしくは 1の 2値である多項式を選ぶ点が従来の NTRUEncryp tと異なる。なお、パラメータ pは、ノ メータ qと互いに素になるような値であればよぐ 3以外の値であってもよ!/、。
[0079] 以下、この第 1の変形 NTRU暗号方式について説明を行う。
[0080] (1)第 1の変形 NTRU暗号方式のパラメータ 第 1の変形 NTRU暗号方式は、非負整数のパラメータ、 N、 p、 q、 df、 dg、 dを持つ
[0081] これらのパラメータの意味は、従来の NTRUEncrypt方式と同じである力 p = 3力 つ q = 2"k (k: 2以上の整数)となるパラメータを生成し、 p = 3として 、るにも拘わらず 、多項式 f、 g、 rとして係数が 0もしくは 1の 2値である多項式を用いる点力 従来の N TRUEncryptと異なる。
[0082] (2)第 1の変形 NTRU暗号方式の鍵生成
第 1の変形 NTRU暗号方式では、上述したように、ノ ラメータ df、 dgを用いてランダ ムに多項式 f、多項式 gを生成する。具体的には、 df個の係数が 1であり、それ以外の 係数が 0である多項式 fを生成し、 dg個の係数が 1であり、それ以外の係数力^である 多項式 gを生成する。そして非特許文献 2に記載の通り、 Fq X f = 1 (mod q)となる 多項式 Fqを用いて、
n=Fq X g (mod qノ
により、多項式 hを生成する。秘密鍵を (f, Fp)、公開鍵を hとする。
[0083] ここで、 x=y (mod q)は、多項式 yの第 i次の係数を、剰余が 0から q— 1の範囲に 収まるように法 qで割ったときの剰余を、多項式 Xの第 i次の係数とする演算である(0 ≤i≤N—l)。すなわち、 yの各係数を、 0から(q—l)の範囲に収まるように mod q 演算を施した多項式を、多項式 Xとする演算である。
[0084] (3)第 1の変形 NTRU暗号方式の喑号ィ匕
第 1の変形 NTRU暗号方式の暗号化では、平文である係数力^もしくは 1の 2値で ある多項式 mを暗号化し、暗号文である多項式 cを計算する。まず、上述したような乱 数である多項式 rをランダムに生成する。すなわち、乱数 rは (N— 1)次以下の多項式 であり、第 0次 (定数項)から第 (N—1)次まで N個の係数があるが、この N個の係数 のうち、 d個の係数が 1であり、かつ d個の係数が 1であり、かつ(N— 2d)個の係数 は 0となるよう〖こ、ランダムに乱数 rを選ぶ。
[0085] そして、この乱数 rと公開鍵 hを用いて、係数が 0、 1もしくはー1である (N—1)次以 下の平文 mに対し、
c = p'r X h + numod q) により、暗号文 cを生成する。
[0086] この演算は、上述した通り、多項式 (p 'rX h+m)の各係数を、 0から(q— 1)の範囲 に収まるように mod q演算を施した多項式を、多項式 cとする演算である。
[0087] 第 1の変形 NTRU暗号方式は、 p = 3としているにも拘わらず、係数が 0もしくは 1の
2値である多項式を用いる点力 従来の NTRUEncryptと異なる。
[0088] (4)第 1の変形 NTRU暗号方式の復号ィ匕
第 1の変形 NTRU暗号方式の復号ィ匕では、暗号文である多項式 cを復号ィ匕し、復 号文である多項式 m'を計算する。復号ィ匕時には、まず、暗号文 cに対し、秘密鍵の 一部である多項式 fを用いて、
a = f X c (mod q * J
により多項式 aを計算する。
[0089] ここで、(mod q * )は、上述の(mod q)演算と異なり、多項式 (f X c)の第 i次の係 数を、〈― qZ2〉 + lからく qZ2〉の範囲に収まるように法 qで割ったときの剰余を、多 項式 aの第 i次の係数とする演算である (0≤i≤N— 1)。すなわち、係数がく qZ2〉か ら q— 1である場合は、係数力も qを減算して、上記範囲に収まるよう調整する。ここで
、〈x〉は、 X以下の数の中で最も大きい数を示す。例えば、〈一 1Z2〉 =— 1である。
[0090] 次に、多項式 aに対し、ノ ラメータ pを用いて、
b = a (mod p)
により、多項式 bを生成する。
[0091] そして、多項式 bに対し、秘密鍵の一部である多項式 Fpを用いて、
m =Fp X b (mod p水)
により、復号文 m'を計算する。
[0092] なお、この(mod p * )という演算は、上述した通り、多項式(Fp X b)の第 i次の係 数を、〈一 pZ2〉 + lからく pZ2〉の範囲に収まるように法 pで割ったときの剰余を、多 項式 m'の第 i次の係数とする演算である。
[0093] <従来技術と第 1の変形 NTRU暗号方式との差異点 >
以下、第 1の変形 NTRU暗号方式が、従来の NTRUEncrypt方式よりも高速処理 が可能であることを説明し、従来の NTRU暗号及び NTRUEncrypt方式との差異 について説明する。
[0094] (NTRUEncryptとの比較)
NTRUEncryptでは、上述した通り、秘密鍵である多項式 f、多項式 g、乱数である 多項式!:、平文である多項式 mとして、係数が 0もしくは 1である 2値の多項式を用いる 力 パラメータとしては、 p = 2かつ q = 239となるパラメータしか開示されていない。
[0095] 今、 NTRUEncryptの鍵生成、暗号化及び復号化における主な演算には、例えば c=rX h+m (mod q)
というように、多項式の係数の mod q演算を行う演算が含まれる。
[0096] この際、 NTRUEncryptでは q = 239なのに対し、第 1の変开 NTRU暗号方式で は、 q = 2"k(k: 2以上の整数)であるために、第 1の変形 NTRU暗号方式では、 mod q演算を、ビットマスク演算で高速に処理することができる。
[0097] 例えば、第 1の変形 NTRU暗号方式のパラメータ qが q = 256 ( = 2"8)の場合には 、係数の mod q演算は、ビットマスク演算にて下位 8ビットのみをとる演算で実現でき る。
[0098] NTRUEncryptでは、 p = 2である力 第 1の変形 NTRU暗号方式は p = 3であり、 mod pの計算については、 NTRUEncryptの方が高速に行える。しかし、 mod p の計算は復号ィ匕時のみに行うことと、 NTRUEncryptには復号エラー発生確率低減 のための計算が必要であるが、第 1の変形 NTRU暗号方式では不要であるため、 m od pの計算量増カロと相殺する。
[0099] したがって、暗号化及び復号化を含めた全体としては、第 1の変形 NTRU暗号方 式は、 NTRUEncryptより高速である。
[0100] (従来技術との差異)
従来の NTRU暗号では、 p = 3となるパラメータに対して、多項式 f、 g、乱数である 多項式!:、平文である多項式 mに、係数が 0、 1もしくは 1である 3値の多項式を用い ている(p = 2の場合は、これらの多項式のうち、平文 m以外に係数が 0、 1もしくはー1 である 3値の多項式を用いる。また、 p≠2、 3の場合は、多項式 f、 g、 rに 0、 1もしくは 1である 3値の多項式を用い、 mに〈一 pZ2〉 + lからく pZ2〉の範囲の整数を係数 にもつ P値の多項式を用いる)。
[0101] 一方、従来の NTRUEncryptでは、 p = 2となるパラメータに対して、多項式 f、 g、 乱数である多項式!:、平文である多項式 mに、係数が 0もしくは 1である 2値の多項式 を用いている。
[0102] そのため、 NTRU暗号では、 p = 3となるパラメータに対しては、多項式 f、 g、乱数 である多項式!:、平文である多項式 mとして、 3値の多項式を用いることが通常であり、 上述した第 1の変形 NTRU暗号方式のように、 p = 3の場合に、これらの多項式として 2値の多項式を用いた場合に、暗号の安全性にどのような影響が生じるかは開示さ れていなかった。
[0103] し力しながら、今、 p = 3となるパラメータに対して、多項式 f、 g、乱数である多項式 r 、平文である多項式 mとして係数が 0もしくは 1となる 2値の多項式を用いても、従来の NTRU暗号及び NTRUEncryptと同様、パラメータを適切に選択すれば、安全性 に問題は起こらない。以下にそのことを説明する。
[0104] NTRU暗号及び NTRUEncryptに対する攻撃方法としては、非特許文献 2に記 載の通り、多項式 f、 g、 rに対する総当り攻撃と、 LLLアルゴリズムを用いた攻撃 (latt ice based attack)が知られている。
[0105] 今、総当り攻撃に対する安全性は、非特許文献 2や非特許文献 6に記載の通り、多 項式 f、 g、 rのとり得る値の総数に依存する。そのため、 p = 3となるパラメータに対して 、これらの多項式として 3値の多項式を用いる代わりに、 2値の多項式を用いたとして も、これらの多項式のとり得る値の総数が十分大きくなるように、パラメータ df、 dg、 d を選択すれば安全性に問題は発生しな 、。
[0106] また、 LLL攻撃に対する安全性は、多項式 f、 gの 0でな 、係数の数に依存すること 力 非特許文献 7に記載されている。そのため、 0でない係数の数が十分大きくなるよ うに、 df、 dgを選択すれば、安全性に問題は発生しない。
[0107] <変形 NTRU暗号方式のパラメータの生成方法 >
ここでは、上述した第 1の変形 NTRU暗号方式のパラメータの生成方法の一例を 挙げる。
[0108] 上述した通り、第 1の変形 NTRU暗号方式のパラメータは、 p = 3、かつ q = 2'k(k: 2以上の整数)となるパラメータを生成すればよい。
[0109] そのため、ここでは、まず p = 3とし、係数の mod q演算力 ビットマスク演算にて下 位 8ビットのみをとる演算で実現可能となるよう、 q = 256とする。
[0110] そして、 df=dg = dとして、上述した総当り攻撃および LLL攻撃に対する安全性が 規定の値以上となるように、 N、 df、 dg、 dの値を生成する。
[0111] なお、これはパラメータの生成方法の一例であり、 p = 3、かつ q = 2"k(k: 2以上の 整数)となるパラメータを生成すれば、他の生成方法でもよい。
[0112] 以降では、この生成方法により生成された、(N, p, q, df, dg, d) = (251, 3, 256
, 72, 72, 72)というパラメータを用いた場合の説明を行う。
[0113] 以上、第 1の変形 NTRU暗号方式について説明を行った力 以降、本実施の形態 に係る暗号通信システム、暗号装置及び復号装置について説明を行う。
[0114] <暗号通信システム 1の概要 >
図 1は、本発明の実施の形態 1における暗号通信システム 1の全体構成を示す図で ある。最初に、同図を用いて暗号通信システム 1の概要を説明する。
[0115] この暗号通信システム 1は、平文 mの暗号ィ匕通信を行うシステムであり、暗号装置 1
0と、復号装置 20とから構成されており、暗号装置 10と復号装置 20とは通信路 30を 介して相互に接続されて!ヽる。
[0116] そして、この暗号通信システム 1は、暗号装置 10と復号装置 20との間で、第 1の変 形 NTRUB音号方式のノ ラメータとして、 (N, p, q, df, dg, d) = (251, 3, 256, 72
, 72, 72)を共有している。
[0117] この暗号通信システム 1において、暗号装置 10は、外部から入力された平文 mを、 上述した、第 1の変形 NTRU暗号方式を用いて暗号ィ匕して暗号文 cを生成し、通信 路 30を介して復号装置 20に送信する。
[0118] そして、復号装置 20は、通信路 30を介して暗号装置 10から受信した暗号文 cを復 号して復号文 m'を生成して出力する。
[0119] 以上が、暗号通信システム 1の概要である力 以下、暗号通信システム 1の構成を 述べた後、その動作について説明する。
[0120] <暗号通信システム 1の構成 > 暗号通信システム 1は、図 1に示すように、暗号装置 10と、復号装置 20とから構成 され、暗号装置 10と復号装置 20とは通信路 30を介して相互に接続されて 、る。
[0121] 以下、これらの構成要素について詳細に説明を行う。
[0122] <暗号装置 10の構成 >
暗号装置 10は、図 2に示すように、パラメータ記憶部 11と、公開鍵記憶部 12と、暗 号ィ匕部 13とから構成される。
[0123] (1)パラメータ記憶部 11
パラメータ記憶部 11は、例えば RAM (Random Access Memory)や EEPROM (
Electrically Erasable Programmable Read Only Memoryリのよつなメモリで構成されて おり、後述する暗号ィ匕部 13からアクセス可能なものである。
[0124] パラメータ記憶部 11は、 p = 3かつ q = 2"k (k: 2以上の整数)となるパラメータを予 め記憶している。ここでは、上述の通り、パラメータ , p, q, df, dg, d) = (251, 3,
256, 72, 72, 72)を予め記'隐して!/ヽるものとする。
[0125] (2)公開鍵記憶部 12
公開鍵記憶部 12は、例えばマイクロコンピュータ及び RAMのようなメモリで構成さ れており、後述する暗号化部 13からアクセス可能なものである。
[0126] 公開鍵記憶部 12は、予め通信路 30を介して復号装置 20の公開鍵 hを取得して記
'1思して V、る。
[0127] (3)暗号化部 13
暗号化部 13は、例えばマイクロコンピュータによって構成されており、パラメータ記 憶部 11及び公開鍵記憶部 12にアクセス可能である。
[0128] 暗号化部 13は、パラメータ記憶部 11からパラメータ Ν、パラメータ q、ノ ラメータ dを 読み取り、公開鍵記憶部 12から、公開鍵 hを読み取る。
[0129] そして、暗号ィ匕部 13は、外部力もパラメータ Nに対し、(N— 1)次以下の多項式で 表される、係数が 0もしくは 1である平文 mを受け取る。
[0130] そして、暗号化部 13は、パラメータおパラメータ dを用いて、 d個の係数が 1であり、 かつ他の係数が 0となるように、(N— 1)次以下の多項式 rをランダムに選ぶ。これは、 例えば、 0から N— 1までの範囲の重複しない d個の乱数値 Ri (l≤i≤d)を選び、第 R i次( 1≤ i≤ d)の係数を 1とし、他の係数は 0とすることで実現できる。
[0131] そして、暗号化部 13は、平文 mに対し、乱数である多項式!:、公開鍵 h、パラメータ N、パラメータ qを用いて、第 1の変形 NTRU暗号方式の暗号化処理を行い、暗号文 cを生成する。
[0132] そして、暗号化部 13は、生成した暗号文 cを通信路 30を介して復号装置 20へ送信 する。
[0133] <暗号装置 10の動作 >
ここでは、上述した暗号装置 10の動作について説明する。
[0134] 暗号装置 10は、 p = 3かつ q = 2"k (k: 2以上の整数)となるパラメータを予め記憶し ており、復号装置 20の公開鍵 hを公開鍵記憶部 12に予め記憶している。そして、外 部から、パラメータ Nに対し (N— 1)次以下の多項式で表される平文 mが入力される と、以下に示す処理を行い、上述した第 1の変形 NTRU暗号方式を用いて平文 mを 暗号化して暗号文 cを生成し、通信路 30を介して復号装置 20に送信する。
[0135] 以下、図 3に示すフローチャートを用いて説明する。
[0136] 最初に、暗号化部 13は、外部から平文 mが入力されると、パラメータ記憶部 11から ノ ラメータ N、ノ ラメータ q、パラメータ dを読み取り、公開鍵記憶部 12から、公開鍵 h を読み取る(ステップ S 101)。
[0137] 次に、暗号化部 13は、パラメータおパラメータ dを用いて、 d個の係数が 1であり、 かつ他の係数が 0となるように、(N—1)次以下の多項式 rをランダムに選ぶ (ステップ
S102)。
[0138] 次に、暗号化部 13は、平文 mに対し、乱数である多項式!:、公開鍵 h、パラメータ N
、ノ ラメータ qを用いて、第 1の変形 NTRU暗号方式の暗号ィ匕処理を行い、暗号文 c を生成する(ステップ S 103)。
[0139] 次に、暗号化部 13は、生成した暗号文 cを、通信路 30を介して復号装置 20へ送信 して処理を終了する(ステップ S 104)。
[0140] <復号装置 20の構成 >
復号装置 20は、図 4に示すように、パラメータ記憶部 21と、鍵生成部 22と、秘密鍵 記憶部 23と、復号化部 24とから構成される。 [0141] (1)パラメータ記憶部 21
ノラメータ記憶部 21は、例えば EEPROMのようなメモリで構成されており、後述す る鍵生成部 22及び復号ィ匕部 24からアクセス可能なものである。
[0142] パラメータ記憶部 21は、暗号装置 10のパラメータ記憶部 11と同一のパラメータ (N , p, q, df, dg, d)を予め記憶している。ここでは、上述の通り、パラメータお, p, q, df, dg, d) = (251, 3, 256, 72, 72, 72)を予め記'隐して!/、るものとする。
[0143] (2)鍵生成部 22
鍵生成部 22は、例えばマイクロコンピュータによって構成されており、第 1の変形 N TRU暗号方式の秘密鍵 (f, Fp)及び公開鍵 hを生成する。
[0144] 鍵生成部 22は、パラメータ記憶部 21からパラメータ N、パラメータ q、ノ ラメータ df、 パラメータ dgを読み取り、パラメータ N、パラメータ dfを用いて、 df個の係数が 1であり 、かつその他の係数が 0となるように、(N— 1)次以下の多項式で表される多項式 fを 選ぶ。これは、例えば、 0から(N— 1)までの範囲の重複しない df個の乱数値 Ri (l≤ i≤df)を選び、第 Ri次(l≤i≤df)の係数を 1とし、他の係数は 0とすることで実現でき る。
[0145] そして、鍵生成部 22は、パラメータ N、パラメータ dgを用いて、 dg個の係数が 1であ り、かつその他の係数は 0となるように、(N— 1)次以下の多項式で表される多項式 g を選ぶ。
[0146] そして、鍵生成部 22は、上述した第 1の変形 NTRU暗号方式の鍵生成処理を行い
、多項式 Fp及び hを生成する。
[0147] そして、鍵生成部 22は、多項式 hを公開鍵として公開し、予め暗号装置 10が取得 できるよう〖こし、多項式 fと Fpの対 (f, Fp)を秘密鍵記憶部 23に記憶する。
[0148] (3)秘密鍵記憶部 23
秘密鍵記憶部 23は、例えば RAMのようなメモリで構成されており、鍵生成部 22及 び後述する復号ィ匕部 24からアクセス可能なものである。
[0149] 秘密鍵記憶部 23は、予め鍵生成部 22が生成した多項式 fと Fpの対 (f , Fp)を記憶 している。
[0150] (4)復号化部 24 復号ィ匕部 24は、例えばマイクロコンピュータによって構成されており、パラメータ記 憶部 21及び秘密鍵記憶部 23にアクセス可能である。
[0151] 復号ィ匕部 24は、パラメータ記憶部 21から、ノ ラメータ N、ノ ラメータ p、ノ ラメータ q を読み取り、秘密鍵記憶部 23から、多項式 fと Fpの対 (f, Fp)を読み取る。
[0152] そして、復号ィ匕部 24は、通信路 30を介して暗号装置 10からパラメータ Nに対し、 ( N— 1)次以下の多項式で表される、暗号文 cを受け取る。
[0153] そして、復号ィ匕部 24は、暗号文 cに対し、秘密鍵である多項式 f及び Fp、ノ ラメータ N、ノ ラメータ p、ノ ラメータ qを用いて、第 1の変形 NTRU暗号方式の復号化処理を 行い、復号文 m'を生成する。
[0154] そして、復号ィ匕部 24は、生成した復号文 m'を外部へ出力する。
[0155] <復号装置 20の動作 >
ここでは、上述した復号装置 20の動作にっ 、て説明する。
[0156] 復号装置 20は、暗号装置 10と同一のパラメータを予め記憶しており、復号装置 20 の秘密鍵である多項式 f及び Fpの対 (f, Fp)と公開鍵である多項式 hを生成し、公開 鍵 hを公開して予め暗号装置 10が取得できるようにし、秘密鍵 (f, Fp)を秘密鍵記憶 部 23に記憶している。そして、復号装置 20は、通信路 30を介して暗号装置 10から、 ノ メータ Nに対し (N—1)次以下の多項式で表される暗号文 cを受信すると、以下 に示す処理を行い、上述した高速 NTRU暗号方式を用いて復号文 m'を生成し、外 部へ出力する。
[0157] 以下、図 5に示すフローチャートを用いて説明する。
[0158] 最初に、復号ィ匕部 24は、通信路 30を介して暗号装置 10から暗号文多項式 cを受 信すると、ノ メータ記憶部 21から、ノ メータ N、ノラメータ p、パラメータ qを読み取 り、秘密鍵記憶部 23から、秘密鍵 (f, Fp)を読み取る (ステップ SI 31)。
[0159] 次に、復号ィ匕部 24は、暗号文 cに対し、秘密鍵である多項式 f及び Fp、ノ メータ N、ノ ラメータ p、ノ ラメータ qを用いて、第 1の変形 NTRU暗号方式の復号化処理を 行い、復号文 m'を生成する (ステップ S132)。
[0160] 次に、復号ィ匕部 24は、生成した復号文 m'を外部へ出力して処理を終了する (ステ ップ S 133)。 [0161] <暗号通信システム 1の動作 >
以上、暗号通信システム 1の構成について説明した力 ここでは、暗号通信システ ム 1の全体の動作について、図 6に示すフローチャートを用いて説明する。
[0162] 最初に、パラメータ記憶部 11及びパラメータ記憶部 21は、 p = 3かつ q= 2"kとなる ノ ラメータを予め記憶して 、る (ステップ S 161)。
[0163] 次に、鍵生成部 22は、パラメータ記憶部 21からパラメータ N、パラメータ q、パラメ一 タ df、パラメータ dgを読み取り、パラメータ N、パラメータ dfを用いて、 df個の係数が 1 であり、かつその他の係数が 0となるように、(N— 1)次以下の多項式で表される多項 式 fを選ぶ(ステップ S 162)。
[0164] 次に、鍵生成部 22は、パラメータ N、パラメータ dgを用いて、 dg個の係数が 1であり
、かつその他の係数は 0となるように、(N— 1)次以下の多項式で表される多項式 gを 選ぶ(ステップ S 163)。
[0165] 次に、鍵生成部 22は、上述した第 1の変形 NTRU暗号方式の鍵生成処理を行い、 多項式 hを生成する(ステップ S 164)。
[0166] 次に、鍵生成部 22は、多項式 hを公開鍵として公開し、暗号装置 10が取得できるよ うにし、多項式 f及び Fpの対 (f, Fp)を秘密鍵として秘密鍵記憶部 23に記憶する (ス テツプ S 165)。
[0167] 次に、公開鍵記憶部 12は、通信路 30を介して復号装置 20の公開鍵 hを取得して 記憶する(ステップ S 166)。
[0168] 次に、暗号化部 13は、外部力 係数が 0もしくは 1である平文 mが入力されると、パ ラメータ記憶部 11からパラメータ N、ノ ラメータ q、パラメータ dを読み取り、公開鍵記 憶部 12から、公開鍵 hを読み取る (ステップ S 167)。
[0169] 次に、暗号化部 13は、パラメータ パラメータ dを用いて、 d個の係数が 1であり、 かつ他の係数が 0となるように、(N—1)次元以下の多項式 rをランダムに選ぶ (ステツ プ S168)。
[0170] 次に、暗号化部 13は、平文 mに対し、乱数である多項式!:、公開鍵 h、パラメータ N 、ノ ラメータ qを用いて、第 1の変形 NTRU暗号方式の暗号ィ匕処理を行い、暗号文 c を生成する(ステップ S169)。 [0171] 次に、暗号化部 13は、生成した暗号文 cを通信路 30を介して復号装置 20へ送信 する(ステップ S 170)。
[0172] 次に、復号ィ匕部 24は、通信路 30を介して暗号装置 10から暗号文 cを受信すると、 ノ ラメータ記憶部 21から、ノ ラメータ N、ノ ラメータ p、パラメータ qを読み取り、秘密鍵 記憶部 23から、秘密鍵 (f, Fp)を読み取る (ステップ S171)。
[0173] 次に、復号ィ匕部 24は、暗号文 cに対し、秘密鍵である多項式 f及び Fp、ノ メータ
N、ノ ラメータ p、ノ ラメータ qを用いて、第 1の変形 NTRU暗号方式の復号化処理を 行い、復号文 m'を生成する (ステップ S 172)。
[0174] 次に、復号ィ匕部 24は、生成した復号文 m'を外部へ出力して処理を終了する (ステ ップ S 173)。
[0175] <暗号通信システム 1の動作検証 >
まず、暗号装置 10及び復号装置 20は、ステップ S161において、 p = 3かつ q = 2' k (k: 2以上の整数)となるパラメータを記憶して 、る。
[0176] そして、復号装置 20が、予め、このパラメータを用いて、ステップ S162及びステツ プ S163において、係数が 0もしくは 1の 2値である、多項式 f及び gを生成し、ステップ
S 164において、これらの多項式を基に公開鍵である多項式 hを生成している。
[0177] そして、暗号装置 10では、ステップ S168にて、係数が 0もしくは 1の 2値である多項 式 rを生成し、ステップ S 169〖こて、 p = 3力つ q = 2 (k: 2以上の整数)となるパラメ ータと公開鍵 hと乱数 rを用いて、係数が 0もしくは 1の 2値である平文 mを暗号ィ匕して 暗号文 cを生成している。
[0178] そして、復号装置 20では、ステップ S172において、秘密鍵である多項式 f及び Fp と記憶して 、る p = 3かつ q = 2"k(k: 2以上の整数)となるパラメータを用いて、復号 文 m'を生成している。
[0179] 力かる構成によれば、 p = 3かつ q = 2"kとなるパラメータに対して、多項式 f、 g、乱 数である多項式!:、平文である多項式 mとして、 2値の多項式を用いているので、第 1 の変形 NTRU暗号方式を用いて暗号ィ匕通信を行うことができる。
[0180] なお、上述の第 1の変形 NTRU暗号方式の説明で述べた通り、 NTRUEncrypt方 式よりも高速処理可能となる。 [0181] これにより、従来の NTRUEncrypt方式よりも高速処理可能な第 1の変形 NTRU 暗号方式を新たに構成することができ、また、この第 1の変形 NTRU暗号方式を暗号 通信に適用し、従来よりも高速処理可能な暗号通信システムを提供することができる
[0182] <変形例 >
なお、上記に説明した実施の形態は、本発明の実施の形態の一例であり、本発明 はこの実施の形態に何ら限定されるものではなぐその主旨を逸脱しない範囲におい て種々なる態様で実施し得るものである。以下のような場合も本発明に含まれる。
[0183] (1)暗号通信システム 1では、第 1の変形 NTRU暗号方式のパラメータとして、 p = 3かつ q = 2"k (k: 2以上の整数) t 、う条件を満たすパラメータを用いて 、るが、さら に、後述する条件式 EFC1を満たすパラメータを用いてもょ ヽ。
[0184] これにより、後述する通り復号エラーが原理的に発生しなくなるため、暗号装置が 送信したデータ内容が、常に復号装置で正しく得られるような暗号通信システムを実 現することができる。
[0185] なお、このとき、復号エラーが原理的に発生しないため、 NTRUEncryptと異なり、 復号エラー発生確率を減少させる処理が不要であるため、以下のように復号化を行 つてもよい。
[0186] まず、暗号文 cに対し、秘密鍵の一部である多項式 fを用いて、
a = f X c (mod qノ
により多項式 aが計算される。
[0187] そして、この多項式 aに対し、 NTRUEncryptと同様にして、復号エラー発生確率 を低減させる処理が行なわれ、復号文 m'が生成される。
[0188] (2)暗号通信システム 1では、第 1の変形 NTRU暗号方式の秘密鍵の一部である 多項式 fとして、 df個の係数が 1で、かつその他の係数は 0である、(N— 1)次以下の 多項式を選んでいる力 NTRUEncrypt方式と同様、 df個の係数が 1で、かつその 他の係数は 0である、(N— 1)次以下の多項式 Fを用いて、 f= l +p 'Fにより多項式 f を選んでもよい。
[0189] これ〖こより、 NTRUEncrvpt方式と同様、 NTRU暗号の復号化処理で行う、多項 式 Fpとの多項式乗算が不要となる。また、この場合、秘密鍵の一部である多項式 Fp との多項式乗算が不要であるため、秘密鍵は (f, Fp)ではなぐ多項式 fとしてもよい
[0190] (実施の形態 2)
本実施の形態 2に係る暗号通信システム、暗号装置及び復号装置では、 NTRUE ncrypt方式を改良して、復号エラーが原理的に発生しな 、NTRU暗号方式を新た に構成し、この新たに構成した NTRU暗号方式を用いて暗号ィ匕通信を行う(以降、こ の新たに構成した、復号エラーが原理的に発生しない NTRU暗号方式を、「第 2の 変形 NTRU暗号方式」と呼ぶ)。
[0191] そのため、最初に、第 2の変形 NTRU暗号方式について説明を行う。
[0192] 以下、従来の NTRUEncrypt方式との差異点を中心に、第 2の変形 NTRU暗号 方式について説明する。
[0193] <第 2の変形 NTRU暗号方式 >
変形 NTRU暗号 2は、従来の NTRUEncrypt方式を復号エラーが原理的に発生 しな 、ように改変したものである。
[0194] 変形 NTRU暗号 2は、後述する条件式 EFC1を満たすようにパラメータを生成する 点が従来の NTRUEncryptと異なる。
[0195] 以下、この変形 NTRU暗号 2について説明を行う。
[0196] (1)第 2の変形 NTRU暗号方式のパラメータ
変形 NTRU暗号 2は、非負整数のパラメータ、 N、 p、 q、 df、 dg、 dを持つ。これらの パラメータの意味は、従来の NTRUEncrypt方式と同じである力 以下の条件式 EF
C1を満たすようにパラメータ p、 q、 df、 dg、 dを選ぶ点が従来の NTRUEncrypt方式 と異なる。
[0197] EFCl :p -Min (dg, d) +df< q
[0198] この条件式 EFC1を満たすパラメータを用いれば、後述する通り、復号エラーが原 理的に発生しな 、ようにすることができる。
[0199] (2)第 2の変形 NTRU暗号方式の鍵生成
第 2の変形 NTRU暗号方式では、上述したように、ノラメータ df、 dgを用いてランダ ムに多項式 f、多項式 gを生成する。そして非特許文献 2に記載の通り、 Fq X f= l (m od q)となる多項式 Fqを用いて、
n=Fq X g (mod qノ
により、多項式 hを生成する。ここで、秘密鍵を (f, Fp)、公開鍵を hとする。
[0200] (3)第 2の変形 NTRU暗号方式の喑号ィ匕
第 2の変形 NTRU暗号方式の暗号化では、平文である係数力^もしくは 1の 2値で ある多項式 mを暗号化し、暗号文である多項式 cを計算する。まず、上述したような多 項式 rをランダムに生成する。すなわち、乱数 rは (N—1)次以下の多項式であり、第 0次(定数項)から第 (N—1)次まで N個の係数がある力 この N個の係数のうち、 d個 の係数が 1であり、かつ d個の係数が 1であり、かつ(N— 2d)個の係数は 0となるよ うに、ランダムに多項式 rを選ぶ。
[0201] そして、この乱数 rと公開鍵 hを用いて、係数が 0、 1もしくはー1である (N—1)次以 下の平文 mに対し、
c = p'r X h + numod q)
により、暗号文 cを生成する。
[0202] (4)第 2の変形 NTRU暗号方式の復号ィ匕
第 2の変形 NTRU暗号方式では、後述する通り、復号エラーが原理的に発生しな いため、 NTRUEncryptと異なり、復号エラー発生確率を減少させる処理が不要で ある。
[0203] そのため、以下のように復号ィ匕を行う。
[0204] 第 2の変形 NTRU暗号方式の復号化では、暗号文である多項式 cを復号化し、復 号文である多項式 m'を計算する。復号ィ匕時には、まず、暗号文 cに対し、秘密鍵の 一部である多項式 fを用いて、
a = f X c (mod q * J
により多項式 aを計算する。
[0205] 次に、多項式 aに対し、ノ メータ pを用いて、
b = a (mod p)
により、多項式 bを生成する。 [0206] そして、多項式 bに対し、秘密鍵の一部である多項式 Fpを用いて、 m =Fp X b (mod p水)
により、復号文 m'を計算する。
[0207] 以上のように、第 2の変形 NTRU暗号方式では、従来の NTRUEncrypt方式と異 なり、非特許文献 4に記載の centerlもしくは center2と呼ばれるアルゴリズムのよう な復号エラー発生確率を減少させる処理は行わな 、。
[0208] <復号エラーが原理的に発生しない理由 >
以下、第 2の変形 NTRU暗号方式は復号エラーが原理的に発生しないことを説明 する。
[0209] まず、復号エラーが発生しな 、ための条件にっ 、て述べた後、上述した条件式 EF
C1を満たすパラメータを用いる第 2の変形 NTRU暗号方式は、復号エラーが原理的 に発生しな 、ことを説明する。
[0210] (復号エラーが発生しないための条件)
第 2の変形 NTRU暗号方式は、従来の NTRUEncrypt方式を復号エラーが原理 的に発生しな 、ように改変したものである。
[0211] 今、 NTRUEncryptにおいて復号エラーが発生しないための条件は開示されてい ない。しかしながら、多項式 p 'r X g + f X mの全ての係数が 0から(q— 1)の範囲に収 まっていれば、正しく復号処理を行うことができ、復号エラーは発生しない。
[0212] 以下に、その理由を説明する。
[0213] (i) NTRU暗号方式の場合
NTRUEncryptにお ヽて復号エラーが発生しな 、ための条件を説明するため、ま ず非特許文献 2に記載の NTRU暗号にぉ 、て復号エラーが発生しな 、ための条件 について述べる。
[0214] NTRU暗号に関しては、非特許文献 2に、復号処理時において計算される多項式
(p 'r X g + f X m)の係数すべてが、— qZ2から qZ2の範囲に収まっていれば、正し く復号処理を行うことができ、復号エラーが発生しないことが記載されている。これは 以下の理由による。
[0215] 今、非特許文献 2に記載の NTRU暗号の復号処理では、まず暗号文 cに対し、秘 密鍵の一部である多項式 fを用いて、
a = cXf (mod q*)
により多項式 aを演算する。ここで (mod q * )は、多項式 c X fの第 i次の係数を、剰 余が〈一 qZ2〉 +1からく qZ2〉の範囲に収まるように法 qで割ったときの剰余を、多項 式 aの第 i次の係数とする演算である。すなわち、多項式 cと多項式 fの乗算結果の多 項式を求め、その各係数を、〈― qZ2〉 + lからく qZ2〉の範囲に収まるように mod q 演算を施した多項式を、多項式 aとする演算である。
[0216] このとき、この多項式 aの値は、非特許文献 2に記載の通り、平文 mと暗号文 cの関 係式及び秘密鍵の一部である多項式 fと公開鍵 hの関係式から、
a = cXf (mod q*J
= (p-rXh+m) Xf(mod q*)
=ρτ Xg+f Xm(mod q水)
となる。すなわち、多項式 aは、多項式 p'rXg + f Xmの各係数を— qZ2から qZ2の 範囲に収まるように mod q演算を施した多項式となって!/、る。
[0217] ここで、 NTRU暗号では、乱数!:、多項式 f、 g及び平文 mは、係数が 0、 1もしくは
1となる多項式である。そのため、 p'rXg+f Xmは、その係数が負の値となる可能性 がある多項式である。
[0218] 今、この負の係数値を取り得る多項式 p'rXg + f Xmの全ての係数が— qZ2から q Z2の範囲に収まっていれば、多項式 p'r Xg+f Xm (mod q*)の値は、多項式 ρ· rXg+fX mの値と等しくなるため、多項式 aの値は、
a = pT Xg + f Xm(mod q水)
=pTXg+iXm
となる。すると、非特許文献 2に記載の通り、その後の復号処理において正しく平文 mを復元することができるので、復号エラーは発生しな!、。
[0219] (ii)NTRUEncrypt方式の場合
一方、 NTRUEncryptでは、復号エラーが発生しないための条件は開示されてい ないが、上述した通り、多項式 p'rXg + fXmの全ての係数が 0から(q— 1)の範囲に 収まっていれば、正しく復号処理を行うことができ、復号エラーは発生しない。これは 、以下の理由による。
[0220] 今、復号アルゴリズム Dでは、非特許文献 4に記載の通り、まず、暗号文 cに対し、 秘密鍵の一部である多項式 fを用いて、
a = cXf (mod qノ
により多項式 aを演算する。この演算は、多項式 cと多項式 fの乗算結果の多項式を求 め、その各係数を、 0から (q—1)の範囲に収まるように mod q演算を施した多項式 を、多項式 aとする演算である。
[0221] このとき、この多項式 aの値は、非特許文献 4に記載の通り、平文 mと暗号文 cの関 係式及び秘密鍵の一部である多項式 fと公開鍵 hの関係式から、
a = cXf (mod qノ
Figure imgf000033_0001
となる。すなわち、多項式 aは、多項式 p'rXg + f Xmの各係数を 0から(q— 1)の範 囲に収まるように mod q演算を施した多項式となって!/、る。
[0222] ここで、 NTRUEncryptでは、乱数である多項式!:、多項式 f、 g及び平文である多 項式 mは、係数が 0もしくは 1となる多項式である。そのため、 p'rXg+f Xmは、その 係数が 0もしくは正の値となる多項式である。
[0223] 今、この多項式 p'rXg+f Xmの全ての係数力 ^から(q— 1)の範囲に収まってい れば、多項式 p'rXg + f Xm(mod q)の値は、多項式 p'r Xg + f Xmの値と等しく なるため、多項式 aの値は、
a = pT Xg + f Xm(mod q)
=pTXg+iXm
となる。すると、非特許文献 2に記載の NTRU暗号と同様に、その後の復号処理にお V、て正しく平文 mを復元することができるので、復号エラーは発生しな!、。
[0224] (条件式 EFC1を満たすパラメータを用いれば復号エラーが発生しなくなる理由) 第 2の変形 NTRU暗号方式は、条件式 EFC1を満たすようにパラメータを設定する よう、従来の NTRUEncrypt方式を改変し、復号エラーが原理的に発生しないように したものである。
[0225] 以下、条件式 EFC1を満たすようにパラメータを設定すれば、多項式 p'rXg+f X mの全ての係数が、 0から (q— 1)の範囲に収まり、復号エラーは発生しなくなることを 説明する。
[0226] まず、多項式 p'rXgを考える。
[0227] ここで、多項式 r X gの k次の係数は、多項式 aの k次の係数を a (k)で表すと、
(rXg) (k)
=r(0)-g(k)+r(l)-g(k-l)+...
+r(N— l)'g(k—(N— 1) (mod N))
である(多項式と多項式の乗算方法については、例えば、非特許文献 2参照)。
[0228] 上述した通り、乱数 rは、 d個の係数が 1であり、かつ他の係数は 0となる多項式であ り、多項式 gは、 dg個の係数が 1であり、かつ他の係数は 0となる多項式である。
[0229] すると、多項式 r X gの係数 (r X g) (k)の値は、
rXg(k)
=r(0)-g(k)+r(l)-g(k-l)+...
+r(N— l)'g(k—(N— 1) (mod N))
= l-g(il)+l-g(i2)+... +l-g(id)
+ 0-g(jl)+0-g(j2)+... +0-g(j(N-d))
= l-g(il)+l-g(i2)+... +l-g(id)
というように、 d個の l'g(in)という項(l≤n≤d)で表される。
[0230] 今、 d≤dgの場合、 g(in)が全て 1である場合が考えられ(l≤n≤d≤dg)、このとき
(rXg) (k)は最大値を取り、その値は高々 dである。
[0231] なお、 d>dgの場合、 g(in)が全て 1である場合はあり得ないため、 g(in)のうち dg 個が 1であり、(d— dg)個が 0である場合に (rXg) (k)は最大値を取り、その値は高 々 dgである。
[0232] 以上により、多項式 rXgの係数の最大値は Min(dg, d)である。
[0233] 従って、多項式 p'rXgの係数の最大値は、多項式 rXgの係数の最大値に pを乗じ たものとなるので、 p'Min(dg, d)となる。
[0234] 次に、多項式 fx mを考える。
[0235] ここで、多項式 fx mの第 k次の係数を考えると、多項式 fは df個の係数が 1であり、 かつ他の係数は 0となる多項式であるので、上述の議論と同様に、
fXm(k)
=f (0) -m(k) +f (1) -m(k-l) +...
+f(N— l)'m(k—(N— 1) (mod N))
= l-m(il)+l-m(i2)+... +l-m(idf)
というように、 df個の l'm(in)という項(l≤n≤df)で表される。
[0236] 今、平文である多項式 mは係数が 0もしくは 1であるので、 m(in)が全て 1である場 合が考えられ(l≤n≤df)、このとき (fXm) (k)は最大値を取り、その値は高々 dfで ある。
[0237] 以上により、多項式 fx mの係数の最大値は dfである。
[0238] 以上をまとめると、多項式 8+£ 111の係数の最大値は高々、
p-Min(dg, d)+df
である。
[0239] そして、係数の最大値が q— 1以下であれば、多項式 p'rXg+f Xmの全ての係数 が 0から(q— 1)の範囲に収まって 、ることになるので、復号エラーは発生しな!、。
[0240] すなわち、復号エラーが原理的に発生しないためには、
p-Min(dg, d)+df<q
となるようにすればよく、下記条件式 EFC1が導かれる。
[0241] EFCl:p-Min(dg, d)+df<q
[0242] <第 2の変形 NTRU暗号方式のパラメータ生成方法 >
ここでは、上述した第 2の変形 NTRU暗号方式のパラメータの生成方法の一例を 挙げる。
[0243] 上述した通り、第 2の変形 NTRU暗号方式のパラメータは、上述した条件式 EFC1 を満たすパラメータを生成すればょ ヽ。
[0244] そのため、ここでは、まず p = 2とし、 pと互 ヽに素となるよう、 q = 239とする。
[0245] そして、 df=dg = dとして、上述した条件式 EFC1を満たすように、 df、 dg、 dの値を 生成する。そして、上述した総当り攻撃および LLL攻撃に対する安全性が規定の値 以上となるように、 Nの値を生成する。 [0246] なお、これはパラメータの生成方法の一例であり、条件式 EFC1を満たすようにパラ メータを生成すれば、他の生成方法でもよい。
[0247] 以降では、この生成方法により生成された、 (N, p, q, df, dg, d) = (251, 2, 239
, 63, 63, 63)というパラメータを用いた場合の説明を行う。
[0248] 以上、第 2の変形 NTRU暗号方式にっ 、て説明を行ったが、以降、本実施の形態 に係る暗号通信システム、暗号装置及び復号装置について説明を行う。
[0249] <暗号通信システム lbの概要 >
図 7は、本発明の実施の形態 2における暗号通信システム lbの全体構成を示す図 である。最初に、同図を用いて暗号通信システム lbの概要を説明する。
[0250] この暗号通信システム lbは、平文 mの暗号化通信を行うシステムであり、暗号装置
10bと、復号装置 20bとから構成されており、暗号装置 10bと復号装置 20bとは通信 路 30を介して相互に接続されて 、る。
[0251] そして、この暗号通信システム lbは、暗号装置 10bと復号装置 20bとの間で、第 2 の変形 NTRU暗号方式のパラメータとして、 (N, p, q, df, dg, d) = (251, 2, 239
, 63, 63, 63)を共有している。
[0252] この暗号通信システム lbにおいて、暗号装置 10bは、外部から入力された平文 m を、上述した、第 2の変形 NTRU暗号方式を用いて暗号ィ匕して暗号文 cを生成し、通 信路 30を介して復号装置 20bに送信する。
[0253] そして、復号装置 20bは、通信路 30を介して暗号装置 10bから受信した暗号文 cを 復号して復号文 m'を生成して出力する。
[0254] 以上が、暗号通信システム lbの概要である力 以下、暗号通信システム 1との差異 点を中心に、その構成及び動作について説明する。
[0255] <暗号通信システム lbの構成 >
暗号通信システム lbは、図 7に示すように、暗号装置 10bと、復号装置 20bとから 構成され、暗号装置 10bと復号装置 20bとは通信路 30を介して相互に接続されて 、 る。
[0256] 以下、これらの構成要素について暗号通信システム 1との差異点を中心に説明する [0257] <暗号装置 10bの構成 >
暗号装置 10bは、図 8に示すように、パラメータ記憶部 l ibと、公開鍵記憶部 12と、 暗号化部 13bとから構成される。
[0258] 以下、これらの構成要素について、暗号装置 10との差異点を中心に説明する。
[0259] (1)パラメータ記憶部 l ib
パラメータ記憶部 1 lbは、例えば RAMや EEPROMのようなメモリで構成されてお り、後述する暗号化部 13bからアクセス可能なものである。
[0260] ノ メータ記憶部 l ibは、上述した条件式 EFC1を満たすようなパラメータを予め記 '慮して 、る。ここで ίま、上述の通り、ノ ラメータ(Ν, ρ, q, df, dg, d) = (251, 2, 239 , 63, 63, 63)を予め記'隐して!/、るものとする。
[0261] (2)暗号化部 13b
暗号ィ匕部 13bは、例えばマイクロコンピュータによって構成されており、パラメータ記 憶部 1 lb及び公開鍵記憶部 12にアクセス可能である。
[0262] 暗号ィ匕部 13bは、第 1の変形 NTRU暗号方式の暗号ィ匕処理を行う代わりに、第 2 の変形 NTRU暗号方式の暗号化処理を行い、暗号文 cを生成する点力 暗号化部 1 3と異なる。
[0263] <復号装置 20bの構成 >
復号装置 20bは、図 9に示すように、パラメータ記憶部 21bと、鍵生成部 22bと、秘 密鍵記憶部 23と、復号化部 24bとから構成される。
[0264] 以下、これらの構成要素について、復号装置 20との差異点を中心に説明する。
[0265] (1)パラメータ記憶部 21b
パラメータ記憶部 21bは、例えば RAMや EEPROMのようなメモリで構成されてお り、後述する鍵生成部 22b及び復号ィ匕部 24bからアクセス可能なものである。
[0266] ノ ラメータ記憶部 21bは、暗号装置 10bのパラメータ記憶部 l ibと同一のパラメータ
(N, p, q, df, dg, d)を予め記憶している。ここでは、上述の通り、パラメータお, p, q, df, dg, d) = (251, 2, 239, 63, 63, 63)を予め記'隐して!/、るものとする。
[0267] (2)鍵生成部 22b
鍵生成部 22bは、例えばマイクロコンピュータによって構成されており、エラーフリー NTRU暗号の秘密鍵 f及び公開鍵 hを生成する。
[0268] 鍵生成部 22bは、第 1の変形 NTRU暗号方式の鍵生成処理を行う代わりに、第 2 の変形 NTRU暗号方式の鍵生成処理を行う点力 鍵生成部 22と異なる。
[0269] (3)復号化部 24b
復号ィ匕部 24bは、例えばマイクロコンピュータによって構成されており、パラメータ記 憶部 21b及び秘密鍵記憶部 23にアクセス可能である。
[0270] 復号ィ匕部 24bは、第 1の変形 NTRU暗号方式の復号ィ匕処理を行う代わりに、第 2 の変形 NTRU暗号方式の復号化処理を行い、復号文 m'を生成する点が、復号ィ匕 部 24と異なる。
[0271] <暗号通信システム lbの動作 >
以上、暗号通信システム lbの構成について説明した力 ここでは、暗号通信システ ム lbの全体の動作について、図 10に示すフローチャートを用いて説明する。
[0272] 最初に、パラメータ記憶部 1 lb及びパラメータ記憶部 21bは、条件式 EFC1を満た すパラメータを予め記憶して 、る (ステップ S261)。
[0273] 次に、鍵生成部 22bは、パラメータ記憶部 21bからパラメータ N、ノ ラメータ q、パラ メータ df、パラメータ dgを読み取り、パラメータおパラメータ dfを用いて、 df個の係数 力 であり、かつその他の係数が 0となるように、(N— 1)次以下の多項式で表される 多項式 fを選ぶ (ステップ S 262)。
[0274] 次に、鍵生成部 22bは、パラメータ N、パラメータ dgを用いて、 dg個の係数が 1であ り、かつその他の係数は 0となるように、(N— 1)次以下の多項式で表される多項式 g を選ぶ(ステップ S 263)。
[0275] 次に、鍵生成部 22bは、上述した第 2の変形 NTRU暗号方式の鍵生成処理を行 ヽ
、多項式 Fp及び hを生成する(ステップ S264)。
[0276] 次に、鍵生成部 22bは、多項式 hを公開鍵として公開し、暗号装置 10bが取得でき るよう〖こし、多項式 fと Fpの対 (f, Fp)を秘密鍵として秘密鍵記憶部 23に記憶する (ス テツプ S 265)。
[0277] 次に、公開鍵記憶部 12は、通信路 30を介して復号装置 20bの公開鍵 hを取得して 記憶する(ステップ S 266)。 [0278] 次に、暗号ィ匕部 13bは、外部から係数が 0もしくは 1である平文 mが入力されると、 ノ ラメータ記憶部 l ibからパラメータ N、パラメータ q、パラメータ dを読み取り、公開鍵 記憶部 12から、公開鍵 hを読み取る (ステップ S267)。
[0279] 次に、暗号化部 13bは、パラメータ N、パラメータ dを用いて、 d個の係数が 1であり、 かつ他の係数が 0となるように、(N—1)次以下の多項式 rをランダムに選ぶ (ステップ
S268)。
[0280] 次に、暗号ィ匕部 13bは、平文 mに対し、乱数!:、公開鍵 h、パラメータおノ メータ q を用いて、第 2の変形 NTRU暗号方式の暗号化処理を行い、暗号文 cを生成する( ステップ S 269)。
[0281] 次に、暗号化部 13bは、生成した暗号文 cを通信路 30を介して復号装置 20bへ送 信する (ステップ S 270)。
[0282] 次に、復号化部 24bは、通信路 30を介して暗号装置 10bから暗号文 cを受信すると
、ノ ラメータ記憶部 21bから、パラメータおノ ラメータ p、パラメータ qを読み取り、秘 密鍵記憶部 23から、秘密鍵 (f, Fp)を読み取る (ステップ S271)。
[0283] 次に、復号ィ匕部 24bは、暗号文 cに対し、秘密鍵である多項式 f及び Fp、パラメータ
N、パラメータ p、パラメータ qを用いて、第 2の変形 NTRU暗号方式の復号化処理を 行い、復号文 m'を生成する (ステップ S272)。
[0284] 次に、復号化部 24bは、生成した復号文 m'を外部へ出力して処理を終了する (ス テツプ S273)。
[0285] <暗号通信システム lbの動作検証 >
まず、暗号装置 10b及び復号装置 20bは、ステップ S261において、条件式 EFC1 を満たすようなパラメータを記憶して 、る。
[0286] そして、復号装置 20bが、予め、このパラメータを用いて、ステップ S262及びステツ プ S263において、係数が 0もしくは 1の 2値である、多項式 f及び gを生成し、ステップ
S264において、これらの多項式を基に公開鍵である多項式 hを生成している。
[0287] そして、暗号装置 10bでは、ステップ S267にて、係数が 0もしくは 1の 2値である多 項式 rを生成し、ステップ S268にて、条件式 EFC1を満たすようなパラメータと公開鍵 hと乱数 rを用いて、係数が 0もしくは 1の 2値の多項式である平文 mを暗号ィ匕して暗 号文 cを生成している。
[0288] そして、復号装置 20bでは、ステップ S271〖こお!/、て、秘密鍵である多項式 f及び F pと記憶している条件式 EFC1を満たすようなパラメータを用いて、復号文 m'を生成 している。
[0289] 力かる構成によれば、条件式 EFC1を満たすパラメータを、暗号装置 10bと復号装 置 20bとの間で共有し、このパラメータを用いて暗号ィ匕通信を行っているため、上述 の条件式 EFC1の説明で述べた通り、復号エラーは原理的に起こらず、復号文 m' は必ず平文 mと同一となる。
[0290] これにより、復号エラーが原理的に発生しない第 2の変形 NTRU暗号方式を構成 することができ、また、第 2の変形 NTRU暗号方式を暗号通信システムに適用し、暗 号装置が送信したデータ内容が、常に復号装置で正しく得られるような暗号通信シス テムを提供することができる。
[0291] <変形例>
なお、上記に説明した実施の形態は、本発明の実施の形態の一例であり、本発明 はこの実施の形態に何ら限定されるものではなぐその主旨を逸脱しない範囲におい て種々なる態様で実施し得るものである。以下のような場合も本発明に含まれる。
[0292] (1)暗号通信システム lbでは、第 2の変形 NTRU暗号方式のパラメータとして p = 2となるパラメータを用いている力 条件式 EFC1を満たせば他のパラメータでもよぐ たとえば、 p = 3となるパラメータを用いてもよい。また、上述の実施の形態では、条件 式 EFC1を満たすパラメータとしてパラメータ(N, p, q, df, dg, d) = (251, 2, 239 , 63, 63, 63)を用いて説明を行なった力 NTRUEncrypt方式で採用されている ノラメータ(N, p, q, df, dg, d) = (251, 2, 239, 72, 72, 72)であっても、条件式 EFC 1を満たすため、このパラメータを用いてもよい。
[0293] (2)暗号通信システム lbでは、第 2の変形 NTRU暗号方式の秘密鍵の一部である 多項式 fとして、 df個の係数が 1で、かつその他の係数は 0である、(N— 1)次以下の 多項式を選んでいる力 NTRUEncrypt方式と同様、 df個の係数が 1で、かつその 他の係数は 0である、(N—1)次元以下の多項式 Fを用いて、 f= l +p 'Fにより秘密 鍵 fを選び、後述する条件式 EFC2を満たすようなパラメータを生成するようにしても よい。この場合は、秘密鍵を (f, Fp)ではなぐ多項式 fとしてもよい。
[0294] これ〖こより、 NTRUEncrypt方式と同様、 NTRU暗号の復号化処理で行う、多項 式 Fpとの多項式乗算が不要となる。なお、後述する通り条件式 EFC2を満たすような ノ メータが生成されるので、復号エラーが原理的に発生せず、実施の形態 2と同様 に、暗号装置が送信したデータ内容が、常に復号装置で正しく得られるような暗号通 信システムを実現することができる。
[0295] (実施の形態 3)
本実施の形態 3に係る暗号通信システム、暗号装置及び復号装置では、 NTRUE ncrypt方式を改良して、復号エラーが原理的に発生せず、かつ高速処理可能な N TRU暗号方式を新たに構成し、この新たに構成した NTRU暗号方式を用いて暗号 化通信を行う(以降、この新たに構成した、復号エラーが原理的に発生しない NTRU 暗号方式を、「第 3の変形 NTRU暗号方式」と呼ぶ)。
[0296] そのため、最初に、第 3の変形 NTRU暗号方式について説明を行う。
[0297] 以下、従来の NTRUEncrypt方式との差異点を中心に、第 3の変形 NTRU暗号 方式について説明する。
[0298] <第 3の変形 NTRU暗号方式 >
第 3の変形 NTRU暗号方式は、従来の NTRUEncrypt方式を復号エラーが原理 的に発生せず、かつ高速処理可能なように改変したものである。
[0299] 第 3の変形 NTRU暗号方式は、パラメータとして p = 3、 q = 2"k(k: 2以上の整数) となるパラメータを用いつつ、多項式 f、 g、乱数である多項式 r及び平文である多項 式 mとして、係数が 0もしくは 1の 2値である多項式を選ぶ点、及び後述する条件式 E FC2を満たすようにパラメータを生成する点が従来の NTRUEncryptと異なる。
[0300] 以下、この第 3の変形 NTRU暗号方式について説明を行う。
[0301] (1)第 3の変形 NTRU暗号方式のパラメータ
第 3の変形 NTRU暗号方式は、非負整数のパラメータ、 N、 p、 q、 df、 dg、 dを持つ 。これらのパラメータの意味は、従来の NTRUEncrypt方式と同じである力 p = 3力 つ q = 2"k (k: 2以上の整数)となるパラメータを生成し、 p = 3として 、るにも拘わらず 、多項式 f、 g、乱数である多項式 rとして係数力Oもしくは 1の 2値である多項式を用い る点、及び以下の条件式 EFC2を満たすようにパラメータ p、 q、 df、 dg、 dを選ぶ点が 従来の NTRUEncrypt方式と異なる。
[0302] EFC2 : Min (dg, d) +df< (q- l) /p
[0303] このように、 p = 3というパラメータを用いるにも拘わらず、多項式 f、 g、乱数である多 項式 rとして係数が 0もしくは 1の 2値である多項式を用いることで、従来の NTRUEnc ryp りも高速処理可能となるようにできる。
[0304] また、この条件式 EFC2を満たすパラメータを用いれば、後述する通り、復号エラー が原理的に発生しな 、ようにすることができる。
[0305] (2)第 3の変形 NTRU暗号方式の鍵生成
第 3の変形 NTRU暗号方式では、上述したように、ノラメータ df、 dgを用いてランダ ムに多項式 f、多項式 gを生成する。ここで、多項式 fは、 df個の係数が 1で、かつその 他の係数は 0である、(N— 1)次以下の多項式 Fを用いて、 f= l +p 'Fにより多項式 f を選ぶ。
[0306] そして非特許文献 2に記載の通り、 Fq X f= l (mod q)となる多項式 Fqを用いて、 n=Fq X g (mod qノ
により、多項式 hを生成する。ここで、秘密鍵を多項式 f、公開鍵を hとする。
[0307] (3)第 3の変形 NTRU暗号方式の喑号ィ匕
第 3の変形 NTRU暗号方式の暗号化では、平文である係数力^もしくは 1の 2値で ある多項式 mを暗号化し、暗号文である多項式 cを計算する。まず、上述したような多 項式 rをランダムに生成する。すなわち、乱数 rは (N—1)次以下の多項式であり、第 0次(定数項)から第 (N—1)次まで N個の係数がある力 この N個の係数のうち、 d個 の係数が 1であり、かつ d個の係数が 1であり、かつ(N— 2d)個の係数は 0となるよ うに、ランダムに多項式 rを選ぶ。
[0308] そして、この乱数 rと公開鍵 hを用いて、係数が 0、 1もしくはー1である (N—1)次以 下の平文 mに対し、
c = p'r X h + numod q)
により、暗号文 cを生成する。
[0309] (4)第 3の変形 NTRU暗号方式の復号ィ匕 第 3の変形 NTRU暗号方式では、後述する通り、復号エラーが原理的に発生しな いため、 NTRUEncryptと異なり、復号エラー発生確率を減少させる処理が不要で ある。
[0310] そのため、以下のように復号ィ匕を行う。
[0311] 第 3の変形 NTRU暗号方式の復号ィ匕では、暗号文である多項式 cを復号ィ匕し、復 号文である多項式 m'を計算する。復号ィ匕時には、まず、暗号文 cに対し、秘密鍵の 一部である多項式 fを用いて、
a = f X c (mod q * J
により多項式 aを計算する。
[0312] 次に、多項式 aに対し、パラメータ pを用いて、
b = a (mod p)
により、多項式 bを生成する。
[0313] そして、非特許文献 4に記載の通り、秘密鍵である多項式 f力f= l +p 'Fという形で あるために、 Fp X f= l (mod p)となる多項式 Fpは Fp = 1 (mod p)となるので、復 号化処理で行う、多項式 Fpとの多項式乗算が不要となるので、
m =a (mod p *ノ
により、復号文 m'を生成する。
[0314] 以上のように、第 3の変形 NTRU暗号方式では、従来の NTRUEncrypt方式と異 なり、非特許文献 4に記載の centerlもしくは center2と呼ばれるアルゴリズムのよう な復号エラー発生確率を減少させる処理は行わな 、。
[0315] <復号エラーが原理的に発生しない理由 >
以下、上述した条件式 EFC2を満たすパラメータを用いる第 3の変形 NTRU暗号 方式は、復号エラーが原理的に発生しないことを説明する。
[0316] (条件式 EFC2を満たすパラメータを用いれば復号エラーが発生しなくなる理由) 第 3の変形 NTRU暗号方式は、条件式 EFC2を満たすようにパラメータを設定する よう、従来の NTRUEncrypt方式を改変し、復号エラーが原理的に発生しないように したものである。
[0317] 以下、条件式 EFC2を満たすようにパラメータを設定すれば、多項式 p 'r X g+f X mの全ての係数が、 0から (q— 1)の範囲に収まり、復号エラーは発生しなくなることを 説明する。
[0318] まず、多項式 p'rXgを考えると、上述した通り、多項式 p'rXgの係数の最大値は、 p-Min(dg, d)となる。
[0319] 次に、多項式 fx mを考える。
[0320] 今、秘密鍵である多項式 fは f= 1 +p 'Fなので、
fXm
= (l+p-F) Xm
=m+p.FXm
である。
[0321] ここで、多項式 FXmの第 k次の係数を考えると、多項式 Fは df個の係数が 1であり 、かつ他の係数は 0となる多項式であるので、上述の議論と同様に、
FXm(k)
=F(0) -m(k) +F(1) -m(k-l) +...
+F(N— l)'m(k—(N— 1) (mod N))
= l-m(il)+l-m(i2)+... +l-m(idf)
というように、 df個の l'm(in)という項(l≤n≤df)で表される。
[0322] 今、平文である多項式 mは係数が 0もしくは 1であるので、 m(in)が全て 1である場 合が考えられ(l≤n≤df)、このとき (FXm) (k)は最大値を取り、その値は高々 dfで ある。
[0323] 以上により、多項式 FXmの係数の最大値は dfである。
[0324] 従って、平文である多項式 mの係数の最大値は 1であり、 p 'FXmの係数の最大値 は、 p'dfとなるので、多項式 f Xm(=m+p'FXm)の係数の最大値は、 1+p'dfと なる。
[0325] 以上をまとめると、多項式 p'rXg +fXmの係数の最大値は高々、
p-Min(dg, d)+l+p-df
である。
[0326] そして、係数の最大値が q— 1以下であれば、多項式 p'rXg +fXmの全ての係数 が 0から(q— 1)の範囲に収まって 、ることになるので、復号エラーは発生しな!、。
[0327] すなわち、復号エラーが原理的に発生しないためには、
p -Min (dg, d) + l +p-df< q
となるようにすればよぐこの式を変形すると、下記条件式 EFC2が導かれる。
[0328] EFC2 : Min (dg, d) +df< (q- l) /p
<第 3の変形 NTRU暗号方式のパラメータ生成方法 >
ここでは、上述した第 3の変形 NTRU暗号方式のパラメータの生成方法の一例を 挙げる。
[0329] 上述した通り、第 3の変形 NTRU暗号方式のパラメータは、 p = 3かつ q = 2"k (k: 2 以上の整数)とし、上述した条件式 EFC2を満たすパラメータを生成すればよい。
[0330] そのため、ここでは、まず p = 3とし、 pと互いに素となりかつ係数の mod q演算が、 ビットマスク演算にて下位 8ビットのみをとる演算で実現可能となるよう、 q = 256とする
[0331] そして、 df=dg = dとして、上述した条件式 EFC2を満たすように、 df、 dg、 dの値を 生成する。そして、上述した総当り攻撃および LLL攻撃に対する安全性が規定の値 以上となるように、 Nの値を生成する。
[0332] なお、これはパラメータの生成方法の一例であり、条件式 EFC2を満たすようにパラ メータを生成すれば、他の生成方法でもよい。
[0333] 以降では、この生成方法により生成された、(N, p, q, df, dg, d) = (251, 3, 256
, 42, 42, 42)というパラメータを用いた場合の説明を行う。
[0334] 以上、第 3の変形 NTRU暗号方式にっ 、て説明を行ったが、以降、本実施の形態 に係る暗号通信システム、暗号装置及び復号装置について説明を行う。
[0335] <暗号通信システム lcの概要 >
図 11は、本発明の実施の形態 3における暗号通信システム lcの全体構成を示す 図である。最初に、同図を用いて暗号通信システム lcの概要を説明する。
[0336] この暗号通信システム lcは、平文 mの暗号化通信を行うシステムであり、暗号装置
10cと、復号装置 20cとから構成されており、暗号装置 10cと復号装置 20cとは通信 路 30を介して相互に接続されて 、る。 [0337] そして、この暗号通信システム lcは、暗号装置 10cと復号装置 20cとの間で、第 3 の変形 NTRU暗号方式のパラメータとして、 (N, p, q, df, dg, d) = (251, 3, 256
, 42, 42, 42)を共有している。
[0338] この暗号通信システム lcにおいて、暗号装置 10cは、外部から入力された平文 m を、上述した、第 3の変形 NTRU暗号方式を用いて暗号ィ匕して暗号文 cを生成し、通 信路 30を介して復号装置 20cに送信する。
[0339] そして、復号装置 20cは、通信路 30を介して暗号装置 10cから受信した暗号文 cを 復号して復号文 m'を生成して出力する。
[0340] 以上が、暗号通信システム lcの概要である力 以下、暗号通信システム 1との差異 点を中心に、その構成及び動作について説明する。
[0341] <暗号通信システム lcの構成 >
暗号通信システム lcは、図 11に示すように、暗号装置 10cと、復号装置 20cとから 構成され、暗号装置 10cと復号装置 20cとは通信路 30を介して相互に接続されて 、 る。
[0342] 以下、これらの構成要素について暗号通信システム 1との差異点を中心に説明する
[0343] <暗号装置 10cの構成 >
暗号装置 10cは、図 12に示すように、パラメータ記憶部 11cと、公開鍵記憶部 12と
、暗号ィ匕部 13cとから構成される。
[0344] 以下、これらの構成要素について、暗号装置 10との差異点を中心に説明する。
[0345] (1)パラメータ記憶部 11c
パラメータ記憶部 1 lcは、例えば RAMや EEPROMのようなメモリで構成されてお り、後述する暗号化部 13cからアクセス可能なものである。
[0346] パラメータ記憶部 11cは、上述したように、 p = 3かつ q = 2"k (k : 2以上の整数)とし
、条件式 EFC2を満たすようなパラメータを予め記憶している。ここでは、上述の通り、 ノ ラメータ(N, p, q, df, dg, d) = (251, 3, 256, 42, 42, 42)を予め記'慮して! /、る ものとする。
[0347] (2)暗号化部 13c 暗号ィ匕部 13cは、例えばマイクロコンピュータによって構成されており、ノ ラメータ記 憶部 11 c及び公開鍵記憶部 12にアクセス可能である。
[0348] 暗号ィ匕部 13cは、第 1の変形 NTRU暗号方式の暗号ィ匕処理を行う代わりに、第 3 の変形 NTRU暗号方式の暗号化処理を行い、暗号文 cを生成する点力 暗号化部 1 3と異なる。
[0349] <復号装置 20cの構成 >
復号装置 20cは、図 13に示すように、パラメータ記憶部 21cと、鍵生成部 22cと、秘 密鍵記憶部 23と、復号化部 24cとから構成される。
[0350] 以下、これらの構成要素について、復号装置 20との差異点を中心に説明する。
[0351] (1)パラメータ記憶部 21c
パラメータ記憶部 21cは、例えば RAMや EEPROMのようなメモリで構成されてお り、後述する鍵生成部 22c及び復号ィ匕部 24cからアクセス可能なものである。
[0352] ノ ラメータ記憶部 21cは、暗号ィ匕部 10cのパラメータ記憶部 11cと同一のパラメータ
(N, p, q, df, dg, d)を予め記憶している。ここでは、上述の通り、パラメータお, p, q, df, dg, d) = (251, 3, 256, 42, 42, 42)を予め記'隐して!/、るものとする。
[0353] (2)鍵生成部 22c
鍵生成部 22cは、例えばマイクロコンピュータによって構成されており、第 3の変形 NTRU暗号方式の秘密鍵である多項式 f及び公開鍵である多項式 hを生成する。
[0354] 鍵生成部 22cは、第 1の変形 NTRU暗号方式の鍵生成処理を行う代わりに、第 3 の変形 NTRU暗号方式の鍵生成処理を行う点力 鍵生成部 22と異なる。
[0355] (3)復号化部 24c
復号ィ匕部 24cは、例えばマイクロコンピュータによって構成されており、ノ ラメータ記 憶部 21c及び秘密鍵記憶部 23にアクセス可能である。
[0356] 復号ィ匕部 24cは、第 1の変形 NTRU暗号方式の復号ィ匕処理を行う代わりに、第 3 の変形 NTRU暗号方式の復号化処理を行い、復号文 m'を生成する点が、復号ィ匕 部 24と異なる。
[0357] <暗号通信システム lcの動作 >
以上、暗号通信システム lcの構成について説明した力 ここでは、暗号通信システ ム lcの全体の動作について、図 14に示すフローチャートを用いて説明する。
[0358] 最初に、パラメータ記憶部 11c及びパラメータ記憶部 21cは、 p = 3かつ q = 2"k (k:
2以上の整数)であり、条件式 EFC2を満たすパラメータを予め記憶している (ステツ プ S361)。
[0359] 次に、鍵生成部 22cは、ノ ラメータ記憶部 21cからパラメータ N、パラメータ q、パラメ ータ df、パラメータ dgを読み取り、パラメータおパラメータ dfを用いて、 df個の係数 力 であり、かつその他の係数が 0となるように、(N— 1)次以下の多項式で表される 多項式 Fを選び、 f = 1 + p 'Fにより秘密鍵 fを生成する(ステップ S 362)。
[0360] 次に、鍵生成部 22cは、パラメータ N、パラメータ dgを用いて、 dg個の係数が 1であ り、かつその他の係数は 0となるように、(N— 1)次以下の多項式で表される多項式 g を選ぶ(ステップ S363)。
[0361] 次に、鍵生成部 22cは、上述した第 3の変形 NTRU暗号方式の鍵生成処理を行い
、公開鍵である多項式 hを生成する (ステップ S364)。
[0362] 次に、鍵生成部 22cは、多項式 hを公開鍵として公開し、暗号装置 10cが取得でき るようにし、多項式 fを秘密鍵として秘密鍵記憶部 23に記憶する (ステップ S365)。
[0363] 次に、公開鍵記憶部 12は、通信路 30を介して復号装置 20cの公開鍵 hを取得して 記憶する(ステップ S 366)。
[0364] 次に、暗号ィ匕部 13cは、外部から係数が 0もしくは 1である平文 mが入力されると、 ノ ラメータ記憶部 11cからパラメータ N、パラメータ q、パラメータ dを読み取り、公開鍵 記憶部 12から、公開鍵 hを読み取る (ステップ S367)。
[0365] 次に、暗号化部 13cは、パラメータ N、パラメータ dを用いて、 d個の係数が 1であり、 かつ他の係数が 0となるように、(N—1)次以下の多項式 rをランダムに選ぶ (ステップ
S368)。
[0366] 次に、暗号ィ匕部 13cは、平文 mに対し、乱数!:、公開鍵 h、ノ ラメータ N、ノ ラメータ q を用いて、第 3の変形 NTRU暗号方式の暗号化処理を行い、暗号文 cを生成する( ステップ S369)。
[0367] 次に、暗号化部 13cは、生成した暗号文 cを通信路 30を介して復号装置 20cへ送 信する (ステップ S370)。 [0368] 次に、復号化部 24cは、通信路 30を介して暗号装置 10cから暗号文 cを受信すると
、ノ ラメータ記憶部 21cから、パラメータおパラメータ p、パラメータ qを読み取り、秘 密鍵記憶部 23から、秘密鍵 fを読み取る (ステップ S371)。
[0369] 次に、復号ィ匕部 24cは、暗号文 cに対し、秘密鍵 f、パラメータおノ メータ p、パラ メータ qを用いて、第 3の変形 NTRU暗号方式の復号ィ匕処理を行い、復号文 m'を生 成する(ステップ S372)。
[0370] 次に、復号ィ匕部 24cは、生成した復号文 m'を外部へ出力して処理を終了する (ス テツプ S373)。
[0371] <暗号通信システム lcの動作検証 >
まず、暗号装置 10c及び復号装置 20cは、ステップ S361において、 p = 3かつ q =
2"k (k: 2以上の整数)であり、条件式 EFC2を満たすようなパラメータを記憶している
[0372] そして、復号装置 20cが、予め、このパラメータを用いて、ステップ S362及びステツ プ S363において、係数が 0もしくは 1の 2値である、秘密鍵 f及び多項式 gを生成し、 ステップ S364において、これらの多項式を基に公開鍵 hを生成している。
[0373] そして、暗号装置 10cでは、ステップ S368にて、係数が 0もしくは 1の 2値である多 項式 rを生成し、ステップ S369〖こて、 p = 3かつ q = 2"k (k: 2以上の整数)であり、条 件式 EFC2を満たすようなパラメータと公開鍵 hと乱数 rを用いて、係数が 0もしくは 1 の 2値である平文 mを暗号化して暗号文 cを生成している。
[0374] そして、復号装置 20cでは、ステップ S372〖こおいて、秘密鍵 fと記憶している p = 3 かつ q = 2"k (k: 2以上の整数)であり条件式 EFC2を満たすようなパラメータを用い て、復号文 m'を生成している。
[0375] 力かる構成によれば、 p = 3かつ q = 2"k(k: 2以上の整数)であり、条件式 EFC2を 満たすパラメータを、暗号装置 10cと復号装置 20cとの間で共有し、このパラメータを 用いて暗号ィ匕通信を行っているため、上述した通り、従来の NTRUEncryp りも高 速処理可能となるようにできる。また、上述の条件式 EFC2の説明で述べた通り、復 号エラーは原理的に起こらず、復号文 m'は必ず平文 mと同一となる。
[0376] これにより、復号エラーが原理的に発生せず、かつ高速処理可能な第 3の変形 NT RU暗号方式を構成することができ、また、第 3の変形 NTRU暗号方式を暗号通信シ ステムに適用し、暗号装置が送信したデータ内容が、常に復号装置で正しく得られ、 従来よりも高速処理可能な暗号通信システムを提供することができる。
[0377] (その他の変形例)
なお、上記に説明した実施の形態は、本発明の実施の形態の一例であり、本発明 はこの実施の形態に何ら限定されるものではなぐその主旨を逸脱しない範囲におい て種々なる態様で実施し得るものである。上述した変形例に加え、以下のような場合 も本発明に含まれる。
[0378] (1)暗号通信システム 1、 lb、 lcにおいては、パラメータ生成方法の一例、及びこ のパラメータ生成方法により生成したパラメータの具体例を示している力 これは、パ ラメータ生成方法の説明で述べた通り、他の生成方法でもよぐまた、条件を満たせ ば他のパラメータでもよぐこれに限定されない。
[0379] (2)暗号通信システム 1では、暗号装置 10と復号装置 20との間で、同一のパラメ一 タとして、 (N, p, q, df, dg, d) = (251, 3, 256, 42, 42, 42)を共有して! /、る力 暗号装置 10で、このパラメータのうち、暗号ィ匕処理に必要なもののみを保持するよう にしてもよいし、復号装置 20で、鍵生成処理及び復号ィ匕処理に必要なもののみを保 持するようにしてちょい。
[0380] (3)暗号通信システム 1では、復号装置 20が鍵生成処理を行っていた力 さらに専 用通信路を介して暗号装置 10及び復号装置 20と通信可能な鍵生成装置を備え、 復号装置 20が鍵生成処理を行うのに代えて、鍵生成装置が鍵生成処理を行い、暗 号装置 10が、鍵生成装置から専用通信路を介して、公開鍵 hを取得して公開鍵記憶 部 12に予め記憶しておき、復号装置 20が、鍵生成装置から専用通信路を介して、 秘密鍵の一部または秘密鍵そのものである多項式 fを取得して秘密鍵記憶部 23に予 め記憶しておいてもよい。なお、専用通信路に代えて通信路 30を用いてもよい。
[0381] (4)実施の形態 1から 3では、多項式を用いて演算を表現している力 特許文献 1の ようにこれを一般の環 Rの元として表現してもよい。具体的には、多項式を環 Rの元と し、 p、 qを環 Rのイデアルとしてもよい。さらに実施の形態 1から 3の p、 qをイデアル p = pg'R、 q = qg'Rとしてもよい。具体的には、実施の形態 1から 3において、 p = 3、 q = 2'kである場合に、 p = 3 'R、 q= (2"k) 'Rであってもよい。このとき、 2は環 Rにお ける 2であり、環 Rにおける加法群の零元 0に乗法群の単位元 1を 2回足したものであ る。同様に 3は零元 0に単位元 1を 3回足したものである。さらに、 2"kは乗法群の単 位元 1に 2を k回掛けたものである。
[0382] また、 dg、 dを元 g、 rを N次元配列で表現したときの要素が 1である個数、 dfを fまた は Fを N次元配列で表現したときの要素が 1である個数とし、復号エラーが発生しな
V、条件式を pg X Min (dg, d) + 1 + pg X dfく qgとしてもよ!/ヽ。
[0383] (5)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンビュ ータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプ ログラム力もなるデジタル信号であるとしてもよい。
[0384] また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ 読み取り可能な記録媒体、例えば、半導体メモリ、ハードディスクドライブ、 CD— RO
M、 DVD-ROM, DVD— RAM等に記録したものとしてもよい。
[0385] (6)上記実施の形態及び変形例をそれぞれ組み合わせるとしてもよ!/ヽ。
[0386] (7)また、ブロック図(図 2や図 4など)の各機能ブロックは典型的には集積回路であ る LSIとして実現される。これらは個別に 1チップ化されても良いし、一部又は全てを 含むように 1チップィ匕されても良 、。
[0387] なお、 LSIは集積度の違いにより、 IC、システム LSI、スーパー LSI、ウルトラ LSIと 呼称されることちある。
[0388] また、集積回路化の手法は LSIに限るものではなぐ専用回路又は汎用プロセッサ で実現してもよい。 LSI製造後に、プログラムすることが可能な FPGA (Field
Programmable Gate Array)や、 LSI内部の回路セルの接続や設定を再構成可能なリ コンフィギユラブル ·プロセッサを利用しても良 、。
[0389] さらには、半導体技術の進歩又は派生する別技術により LSIに置き換わる集積回 路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積ィ匕を行って もよい。別技術としてバイオ技術等が可能性としてありえる。
産業上の利用可能性
[0390] 本発明にかかる暗号通信システム、暗号装置及び復号装置は、従来よりも高速処 理可能であるという効果、あるいは、復号エラーを原理的に発生させないようにできる t 、う効果を有し、鍵配送やコンテンツ配信等の暗号通信システム等として有用であ る。

Claims

請求の範囲
[1] 所定の暗号方式に従!、平文を暗号化して暗号文を生成する暗号装置と、前記所 定の暗号方式に従い前記復号文を復号化して復号文を生成する復号装置とを備え る暗号システムであって、
前記復号装置は、
加算、減算、乗算が定義された N次元配列の集合である環 Rと、前記環 Rのイデア ル 、 qに対し、前記環 Rの元 f、 gと、 f (mod q)の逆数である元 Fqと(ここで a (mod b)は、 aを bで割った余りを示す。 )、 f (mod p)の逆数である元 Fpとを生成し、前記 元 gおよび前記元 Fqの積と法を qとして合同である元 hを公開鍵として生成し、前記 元 fおよび前記元 Fpを得ることのできる情報を秘密鍵として生成する鍵生成部と、 前記秘密鍵を使用して前記暗号文を復号化して前記復号文を生成する復号化部 とを備え、
前記暗号装置は、
前記公開鍵及び前記環 Rからランダムに選択した元 rを使用して前記平文を暗号化 して前記暗号文を生成する暗号化部を備え、
前記元 f、前記元 g、前記元!:、前記平文である N次元配列のすべての要素は 0もし くは 1であり、前記イデアル pと前記イデアル qとは互いに素であり、前記イデアル qは q= (2"k) *Rである(ただし、 は 1〖こ 2を k回掛けた結果であり、 *は環 Rの乗算 を表す)
ことを特徴とする暗号システム。
[2] 前記イデアル pは p = 3 * Rである
ことを特徴とする請求項 1記載の暗号システム。
[3] 前記環 Rは多項式環である
ことを特徴とする請求項 1記載の暗号システム。
[4] 前記復号化部は、さらに前記復号文を生成する過程で出現する前記環 Rの元に対 し、復号エラー発生確率が低くなるような処理を施す
ことを特徴とする請求項 1記載の暗号システム。
[5] 前記復号エラー発生確率が低くなるような処理は、 NTRU暗号方式における cent erlアルゴリズムまたは center2アルゴリズムである
ことを特徴とする請求項 4記載の暗号システム。
[6] 前記鍵生成部は、
前記元 fは、 N次元配列の値が 1となる要素の数を規定する非負整数 dfに基づき生 成され、
前記元 gは、 N次元配列の値が 1となる要素の数を規定する非負整数 dgに基づき 生成され、
前記元 rは、 N次元配列の値が 1となる要素の数を規定する非負整数 dに基づき選 択され、
前記イデアル Pは、前記環 Rの元 pgに対し p = pg *Rであり、前記イデアル qは、前 記環の元 qgに対し q = qg * Rであり、
前記次元 N、前記元 pg、前記元 qg、前記非負整数 df、前記非負整数 dg、前記非 負整数 dは、復号エラー発生有無を判定するエラー条件情報に基づいている ことを特徴とする、請求項 1に記載の暗号システム。
[7] 前記エラー条件情報は、復号エラーが発生しな 、ための条件を表す条件式である ことを特徴とする、請求項 6に記載の暗号システム。
[8] 前記条件式は、 Min (dg, d) +df< (qg— l)Zp (ただし、 Min (a, b)は aと bの小さ い方の数を表す)である
ことを特徴とする、請求項 7に記載の暗号システム(ただし、 Min (a, b)は aと bの小 さい方の数を表す)。
[9] 前記非負整数 dfは、前記元 fの N次元配列の要素の値が 1となる要素の数を規定 するのに代えて、前記環 Rの元 Fの N次元配列の要素の値が 1となる要素の数を規 定し、
前記イデアル Pは、前記環 Rの元 pgに対し p=pg *Rであり、
前記秘密鍵は前記環 Rの元(1 + pg * F)である
ことを特徴とする、請求項 1に記載の暗号システム。
[10] 前記所定の暗号方式は、 NTRU暗号方式である
ことを特徴とする請求項 1に記載の暗号システム。
[11] 所定の暗号方式に従!、平文を暗号化して暗号文を生成する暗号装置であって、 公開鍵及び加算、減算、乗算が定義された N次元配列の集合である環 Rからランダ ムに選択した元 rを使用して前記平文を暗号化して前記暗号文を生成する暗号化部 を備え、
前記所定の暗号方式は、
前記環 Rと、前記環 Rのイデアル p、 qに対し、前記環 Rの元 f、 gと、 f (mod q)の逆 数である元 Fqと、 f (mod p)の逆数である元 Fpとを生成し、前記元 gおよび前記元 F qの積と法を qとして合同である元 hを公開鍵として生成し、前記元 fおよび前記元 Fp を得ることのできる情報を秘密鍵として生成する鍵生成ステップと、
前記公開鍵及び前記環 Rからランダムに選択した元 rを使用して前記平文を暗号化 して前記暗号文を生成する暗号化ステップと、
前記秘密鍵を使用して前記暗号文を復号化して前記復号文を生成する復号化ス テツプとを含む方法により平文の暗号化および暗号文の復号化が行なわれる暗号方 式であり、
前記元 f、前記元 g、前記元!:、前記平文である N次元配列のすべての要素は 0もし くは 1であり、前記イデアル pと前記イデアル qとは互いに素であり、前記イデアル qは q= (2"k) *Rである
ことを特徴とする、暗号装置。
[12] 前記イデアル pは p = 3 * Rである
ことを特徴とする請求項 11記載の暗号装置。
[13] 前記環 Rは多項式環である
ことを特徴とする請求項 11記載の暗号装置。
[14] 前記元 fは、 N次元配列の値が 1となる要素の数を規定する非負整数 dfに基づき生 成され、
前記元 gは、 N次元配列の値が 1となる要素の数を規定する非負整数 dgに基づき 生成され、
前記元 rは、 N次元配列の値が 1となる要素の数を規定する非負整数 dに基づき選 択され、 前記イデアル Pは、前記環 Rの元 pgに対し p=pg *Rであり、前記イデアル qは、前 記環の元 qgに対し q = qg * Rであり、
前記次元 N、前記元 pg、前記元 qg、前記非負整数 df、前記非負整数 dg、前記非 負整数 dは、復号エラー発生有無を判定するエラー条件情報に基づいている ことを特徴とする請求項 11記載の暗号装置。
[15] 前記エラー条件情報は、復号エラーが発生しないための条件を表す条件式である ことを特徴とする請求項 14記載の暗号装置。
[16] 前記条件式は、 Min (dg, d) +df< (qg— l)Zp (ただし、 Min (a, b)は aと bの小さ い方の数を表す)である
ことを特徴とする請求項 15記載の暗号装置。
[17] 前記所定の暗号方式は、 NTRU暗号方式である
ことを特徴とする請求項 11記載の暗号装置。
[18] 所定の暗号方式に従!、暗号文を復号化して復号文を生成する復号装置であって、 加算、減算、乗算が定義された N次元配列の集合である環 Rと、前記環 Rのイデア ル p、qに対し、前記環 Rの元 f、gと、 f (mod q)の逆数である元 Fqと、 f (mod p)の 逆数である元 Fpとを生成し、前記元 gおよび前記元 Fqの積と法を qとして合同である 元 hを公開鍵として生成し、前記元 fおよび前記元 Fpを得ることのできる情報を秘密 鍵として生成する鍵生成部と、
前記秘密鍵を使用して前記暗号文を復号化して前記復号文を生成する復号化部 とを備え、
前記所定の暗号方式は、
加算、減算、乗算が定義された N次元配列の集合である環 Rと、前記環 Rのイデア ル p、qに対し、前記環 Rの元 f、gと、 f (mod q)の逆数である元 Fqと、 f (mod p)の 逆数である元 Fpとを生成し、前記元 gおよび前記元 Fqの積と法を qとして合同である 元 hを公開鍵として生成し、前記元 fおよび前記元 Fpを得ることのできる情報を秘密 鍵として生成する鍵生成ステップと、
前記公開鍵及び前記環 Rからランダムに選択した元 rを使用して前記平文を暗号化 して前記暗号文を生成する暗号化ステップと、 前記秘密鍵を使用して前記暗号文を復号化して前記復号文を生成する復号化ス テツプとを含む方法により平文の暗号化および暗号文の復号化が行なわれる暗号方 式であり、
前記元 f、前記元 g、前記元!:、前記平文である N次元配列のすべての要素は 0もし くは 1であり、前記イデアル pと前記イデアル qとは互いに素であり、前記イデアル qは q= (2"k) *Rである
ことを特徴とする復号装置。
[19] 前記イデアル pは p = 3 * Rである
ことを特徴とする請求項 18記載の復号装置。
[20] 前記環 Rは多項式環である
ことを特徴とする請求項 18記載の復号装置。
[21] 前記復号化部は、さらに前記復号文を生成する過程で出現する前記環 Rの元に対 し、前記復号文が前記平文と等しくなる確率が高くなるような処理を施す
ことを特徴とする請求項 18記載の復号装置。
[22] 前記前記復号文が前記平文と等しくなる確率が高くなるような処理は、 NTRU暗号 方式における center 1アルゴリズムまたは center2アルゴリズムである
ことを特徴とする請求項 21記載の復号装置。
[23] 前記元 fは、 N次元配列の値が 1となる要素の数を規定する非負整数 dfに基づき生 成され、
前記元 gは、 N次元配列の値が 1となる要素の数を規定する非負整数 dgに基づき 生成され、
前記元 rは、 N次元配列の値が 1となる要素の数を規定する非負整数 dに基づき選 択され、
前記イデアル Pは、前記環 Rの元 pgに対し p=pg *Rであり、前記イデアル qは、前 記環の元 qgに対し q = qg * Rであり、
前記次元 N、前記元 pg、前記元 qg、前記非負整数 df、前記非負整数 dg、前記非 負整数 dは、復号エラー発生有無を判定するエラー条件情報に基づいている ことを特徴とする請求項 18に記載の復号装置。
[24] 前記エラー条件情報は、復号エラーが発生しな 、ための条件を表す条件式である ことを特徴とする請求項 23記載の復号装置。
[25] 前記条件式は、 Min (dg, d) +df< (qg— l)Zp (ただし、 Min (a, b)は aと bの小さ い方の数を表す)である
ことを特徴とする、請求項 24記載の復号装置。
[26] 前記非負整数 dfは、前記元 fの N次元配列の要素の値が 1となる要素の数を規定 するのに代えて、前記環 Rの元 Fの N次元配列の要素の値が 1となる要素の数を規 定し、
前記イデアル Pは、前記環 Rの元 pgに対し p=pg *Rであり、
前記秘密鍵は前記環 Rの元(1 + pg * F)である
ことを特徴とする、請求項 18に記載の復号装置。
[27] 前記所定の暗号方式は、 NTRU暗号方式である
ことを特徴とする請求項 18記載の復号装置。
[28] 平文を暗号化して暗号文を生成し、かつ前記復号文を復号化して復号文を生成す る暗号方法であって、
公開鍵及び加算、減算、乗算が定義された N次元配列の集合である環 Rと、前記 環 Rのイデアル p、 qに対し、前記環 Rの元 f、 gと、 f (mod q)の逆数である元 Fqと、 f ( mod p)の逆数である元 Fpとを生成し、前記元 gおよび前記元 Fqの積と法を qとして 合同である元 hを公開鍵として生成し、前記元 fおよび前記元 Fpを得ることのできる情 報を秘密鍵として生成する鍵生成ステップと、
前記公開鍵及び前記環 Rからランダムに選択した元 rを使用して前記平文を暗号化 して前記暗号文を生成する暗号化ステップと、
前記秘密鍵を使用して前記暗号文を復号化して前記復号文を生成する復号化ス テツプとを含むことを特徴とする暗号方法。
[29] コンピュータを、所定の暗号方式に従い平文を暗号化して暗号文を生成する暗号 装置として機能させるためのプログラムであって、
公開鍵及び加算、減算、乗算が定義された N次元配列の集合である環 Rからランダ ムに選択した元 rを使用して前記平文を暗号化して前記暗号文を生成する暗号化部 としてコンピュータを機能させ、
前記所定の暗号方式は、
前記環 Rと、前記環 Rのイデアル p、 qに対し、前記環 Rの元 f、 gと、 f (mod q)の逆 数である元 Fqと、 f (mod p)の逆数である元 Fpとを生成し、前記元 gおよび前記元 F qの積と法を qとして合同である元 hを公開鍵として生成し、前記元 fおよび前記元 Fp を得ることのできる情報を秘密鍵として生成する鍵生成ステップと、
前記公開鍵及び前記環 Rからランダムに選択した元 rを使用して前記平文を暗号化 して前記暗号文を生成する暗号化ステップと、
前記秘密鍵を使用して前記暗号文を復号化して前記復号文を生成する復号化ス テツプとを含む方法により平文の暗号化および暗号文の復号化が行なわれる暗号方 式であり、
前記元 f、前記元 g、前記元!:、前記平文である N次元配列のすべての要素は 0もし くは 1であり、前記イデアル pと前記イデアル qとは互いに素であり、前記イデアル qは q= (2"k) *Rである
ことを特徴とするプログラム。
コンピュータを、所定の暗号方式に従 、暗号文を復号化して復号文を生成する復 号装置として機能させるためのプログラムであって、
加算、減算、乗算が定義された N次元配列の集合である環 Rと、前記環 Rのイデア ル p、qに対し、前記環 Rの元 f、gと、 f (mod q)の逆数である元 Fqと、 f (mod p)の 逆数である元 Fpとを生成し、前記元 gおよび前記元 Fqの積と法を qとして合同である 元 hを公開鍵として生成し、前記元 fおよび前記元 Fpを得ることのできる情報を秘密 鍵として生成する鍵生成部と、
前記秘密鍵を使用して前記暗号文を復号化して前記復号文を生成する復号化部 としてコンピュータを機能させ、
前記所定の暗号方式は、
加算、減算、乗算が定義された N次元配列の集合である環 Rと、前記環 Rのイデア ル p、qに対し、前記環 Rの元 f、gと、 f (mod q)の逆数である元 Fqと、 f (mod p)の 逆数である元 Fpとを生成し、前記元 gおよび前記元 Fqの積と法を qとして合同である 元 hを公開鍵として生成し、前記元 fおよび前記元 Fpを得ることのできる情報を秘密 鍵として生成する鍵生成ステップと、
前記公開鍵及び前記環 Rからランダムに選択した元 rを使用して前記平文を暗号化 して前記暗号文を生成する暗号化ステップと、
前記秘密鍵を使用して前記暗号文を復号化して前記復号文を生成する復号化ス テツプとを含む方法により平文の暗号化および暗号文の復号化が行なわれる暗号方 式であり、
前記元 f、前記元 g、前記元!:、前記平文である N次元配列のすべての要素は 0もし くは 1であり、前記イデアル pと前記イデアル qとは互いに素であり、前記イデアル qは q= (2"k) *Rである
ことを特徴とするプログラム。
所定の暗号方式に従い平文を暗号化して暗号文を生成する集積回路であって、 公開鍵及び加算、減算、乗算が定義された N次元配列の集合である環 Rからランダ ムに選択した元 rを使用して前記平文を暗号化して前記暗号文を生成する暗号化部 を備え、
前記所定の暗号方式は、
前記環 Rと、前記環 Rのイデアル p、 qに対し、前記環 Rの元 f、 gと、 f (mod q)の逆 数である元 Fqと、 f (mod p)の逆数である元 Fpとを生成し、前記元 gおよび前記元 F qの積と法を qとして合同である元 hを公開鍵として生成し、前記元 fおよび前記元 Fp を得ることのできる情報を秘密鍵として生成する鍵生成ステップと、
前記公開鍵及び前記環 Rからランダムに選択した元 rを使用して前記平文を暗号化 して前記暗号文を生成する暗号化ステップと、
前記秘密鍵を使用して前記暗号文を復号化して前記復号文を生成する復号化ス テツプとを含む方法により平文の暗号化および暗号文の復号化が行なわれる暗号方 式であり、
前記元 f、前記元 g、前記元!:、前記平文である N次元配列のすべての要素は 0もし くは 1であり、前記イデアル pと前記イデアル qとは互いに素であり、前記イデアル qは q= (2"k) *Rである ことを特徴とする集積回路。
所定の暗号方式に従い暗号文を復号化して復号文を生成する集積回路であって、 加算、減算、乗算が定義された N次元配列の集合である環 Rと、前記環 Rのイデア ル p、qに対し、前記環 Rの元 f、gと、 f (mod q)の逆数である元 Fqと、 f (mod p)の 逆数である元 Fpとを生成し、前記元 gおよび前記元 Fqの積と法を qとして合同である 元 hを公開鍵として生成し、前記元 fおよび前記元 Fpを得ることのできる情報を秘密 鍵として生成する鍵生成部と、
前記秘密鍵を使用して前記暗号文を復号化して前記復号文を生成する復号化部 とを備え、
前記所定の暗号方式は、
加算、減算、乗算が定義された N次元配列の集合である環 Rと、前記環 Rのイデア ル p、qに対し、前記環 Rの元 f、gと、 f (mod q)の逆数である元 Fqと、 f (mod p)の 逆数である元 Fpとを生成し、前記元 gおよび前記元 Fqの積と法を qとして合同である 元 hを公開鍵として生成し、前記元 fおよび前記元 Fpを得ることのできる情報を秘密 鍵として生成する鍵生成ステップと、
前記公開鍵及び前記環 Rからランダムに選択した元 rを使用して前記平文を暗号化 して前記暗号文を生成する暗号化ステップと、
前記秘密鍵を使用して前記暗号文を復号化して前記復号文を生成する復号化ス テツプとを含む方法により平文の暗号化および暗号文の復号化が行なわれる暗号方 式であり、
前記元 f、前記元 g、前記元!:、前記平文である N次元配列のすべての要素は 0もし くは 1であり、前記イデアル pと前記イデアル qとは互いに素であり、前記イデアル qは q= (2"k) *Rである
ことを特徴とする集積回路。
PCT/JP2005/008144 2004-05-12 2005-04-28 暗号システム、暗号装置、復号装置、プログラムおよび集積回路 WO2005109379A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US10/592,387 US7773746B2 (en) 2004-05-12 2005-04-28 Encryption system, encryption device, decryption device, program, and integrated circuit
EP05736530A EP1746561A1 (en) 2004-05-12 2005-04-28 Encryption system, encryption device, decryption device, program, and integrated circuit
JP2006512975A JP4786531B2 (ja) 2004-05-12 2005-04-28 暗号システム、暗号装置、復号装置、プログラムおよび集積回路

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004-142022 2004-05-12
JP2004142022 2004-05-12

Publications (1)

Publication Number Publication Date
WO2005109379A1 true WO2005109379A1 (ja) 2005-11-17

Family

ID=35320424

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/008144 WO2005109379A1 (ja) 2004-05-12 2005-04-28 暗号システム、暗号装置、復号装置、プログラムおよび集積回路

Country Status (6)

Country Link
US (1) US7773746B2 (ja)
EP (1) EP1746561A1 (ja)
JP (1) JP4786531B2 (ja)
KR (1) KR20070011293A (ja)
CN (1) CN100535962C (ja)
WO (1) WO2005109379A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1954548B (zh) * 2005-04-18 2010-07-21 松下电器产业株式会社 签名生成装置及签名验证装置
KR100742093B1 (ko) * 2007-05-10 2007-07-24 인하대학교 산학협력단 엔티알유 암호화 및 복호화를 위한 다항식 컨볼루션 연산방법
CN101321058B (zh) * 2007-06-07 2010-12-15 管海明 一种用于编码和译码数字消息的方法和系统
EP2174445B1 (en) 2007-07-17 2016-09-07 Certicom Corp. Method of providing text representation of a cryptographic value
JP2009278223A (ja) * 2008-05-13 2009-11-26 Panasonic Corp 電子証明システム及び秘匿通信システム
US8045708B2 (en) * 2008-05-21 2011-10-25 Apple Inc. Discrete key generation method and apparatus
CN105337737B (zh) * 2014-07-03 2018-11-20 华为技术有限公司 公钥加密通信方法和装置
US9942031B2 (en) * 2014-09-03 2018-04-10 Research Foundation Of The City University Of New York System and method for private-key fully homomorphic encryption and private search between rings
EP3573040B1 (en) * 2017-01-20 2021-07-21 Nippon Telegraph and Telephone Corporation Secure computation system, secure computation device, secure computation method, and program
CN107592203A (zh) * 2017-09-25 2018-01-16 深圳技术大学筹备办公室 一种基于格的聚合签名方法及其系统
CN109450634B (zh) * 2018-10-18 2020-03-31 南京大学 Rsa公钥分解和解密方法及系统
KR102160294B1 (ko) * 2019-02-15 2020-09-28 주식회사 크립토랩 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법
WO2020166879A1 (en) 2019-02-15 2020-08-20 Crypto Lab Inc. Apparatus for performing threshold design on secret key and method thereof
CN110175067B (zh) * 2019-03-05 2023-06-13 广东电网有限责任公司信息中心 一种移动应用立体防御方法和系统
CN113391576A (zh) * 2020-03-13 2021-09-14 苏州拉普斯自动化有限公司 一种基于物联网的信息物理系统及方法
CN111767532A (zh) * 2020-06-12 2020-10-13 上海橙群微电子有限公司 编程器鉴权方法和鉴权系统
US11522674B1 (en) * 2021-09-09 2022-12-06 Aires Investment Holdings Private Limited Encryption, decryption, and key generation apparatus and method involving diophantine equation and artificial intelligence
KR102600166B1 (ko) * 2021-12-02 2023-11-08 조선대학교산학협력단 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치 및 방법
KR102595938B1 (ko) * 2021-12-02 2023-10-30 조선대학교산학협력단 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998008323A1 (en) * 1996-08-19 1998-02-26 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
WO2001093496A1 (en) * 2000-06-01 2001-12-06 Tao Group Limited A method of protecting a cryptosystem from a multiple transmission attack
WO2001093495A1 (en) * 2000-06-01 2001-12-06 Tao Group Limited Decryption of cipher polynomials
JP2004341502A (ja) * 2003-04-24 2004-12-02 Matsushita Electric Ind Co Ltd パラメータ生成装置、暗号化システム、復号化システム、暗号装置、復号装置、暗号化方法、復号化方法、およびプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1569378A4 (en) * 2002-12-03 2006-08-02 Matsushita Electric Ind Co Ltd TOGETHER FOR USING KEYS, PRODUCING EQUIPMENT FOR SHARED KEYS, AND RESTORING KEYS TO SHARED KEYS
CN1778066B (zh) 2003-04-24 2011-10-12 松下电器产业株式会社 参数生成设备,加密系统,解密系统,加密设备,解密设备,加密方法,解密方法,及其程序

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998008323A1 (en) * 1996-08-19 1998-02-26 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
WO2001093496A1 (en) * 2000-06-01 2001-12-06 Tao Group Limited A method of protecting a cryptosystem from a multiple transmission attack
WO2001093495A1 (en) * 2000-06-01 2001-12-06 Tao Group Limited Decryption of cipher polynomials
JP2004341502A (ja) * 2003-04-24 2004-12-02 Matsushita Electric Ind Co Ltd パラメータ生成装置、暗号化システム、復号化システム、暗号装置、復号装置、暗号化方法、復号化方法、およびプログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Efficient Embedde Security Standerds(EESS) EESS#1: Implementation Aspects of NTRUEncrypt and NTRUSign.", CONSORTIUM FOR EFFICIENT EMBEDDED SECURITY., 27 June 2003 (2003-06-27), XP002990917, Retrieved from the Internet <URL:URL:http://grouper.ieee.org/groups/1363/lattPK/submissions.html> [retrieved on 20050818] *
HOFFSTEIN J. AND SILVERMAN J. ET AL: "Optimization for NTRU.", PUBLIC-KEY CRYPTOGRAPHY AND COMPUTATIONAL NUMBER THEORY., 11 September 2000 (2000-09-11) - 15 September 2000 (2000-09-15), XP002990916, Retrieved from the Internet <URL:URL:http://www.ntru.com/cryptolab/articles.htm#2000_1> [retrieved on 20050818] *
SILVERMANN J.H. AND WHYTE W. ET AL: "NTRU Cryptosystems Technical Report Report#18, Version 1: Estimating Decryption Failure Probabilities for NTRU Encrypt.", 27 March 2003 (2003-03-27), XP002990918, Retrieved from the Internet <URL:URL:http://grouper.ieee.org/groups/1363/lattPK/submissions.html> [retrieved on 20050818] *

Also Published As

Publication number Publication date
US7773746B2 (en) 2010-08-10
KR20070011293A (ko) 2007-01-24
JPWO2005109379A1 (ja) 2008-03-21
EP1746561A1 (en) 2007-01-24
CN1922643A (zh) 2007-02-28
JP4786531B2 (ja) 2011-10-05
US20070274518A1 (en) 2007-11-29
CN100535962C (zh) 2009-09-02

Similar Documents

Publication Publication Date Title
WO2005109379A1 (ja) 暗号システム、暗号装置、復号装置、プログラムおよび集積回路
JP4620669B2 (ja) 署名生成装置、署名検証装置、それらの方法、および集積回路
KR101610917B1 (ko) 암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템
US20060093136A1 (en) Implementation of a switch-box using a subfield method
WO2007080633A1 (ja) 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号演算装置及び楕円曲線暗号パラメータ生成プログラム及び楕円曲線暗号演算プログラム
KR20050087815A (ko) 키공유 시스템, 공유키 생성장치 및 공유키 복원장치
JP4611305B2 (ja) 情報伝達システム、暗号装置及び復号装置
KR101024768B1 (ko) 파라미터 생성 장치, 암호 시스템, 복호 시스템, 암호장치, 복호 장치, 암호화 방법, 복호화 방법, 및 그프로그램
US20100046745A1 (en) Encrypting apparatus, decrypting apparatus, cryptocommunication system, and methods and computer program products therefor
JP2007036364A (ja) タイム装置、暗号化装置、復号化装置、暗号化/復号化システム
JP2009193024A (ja) 復号化処理装置、暗号処理システム、復号化処理方法およびプログラム
US20100046741A1 (en) Apparatus, method, and computer program product for decrypting, and apparatus, method, and computer program product for encrypting
US11288985B2 (en) Encryption device, decryption device, encryption method, decryption method, encryption program product, and decryption program product
US7321658B2 (en) Padding application method ensuring security of cryptosystem and encryptor/decryptor
JP5354994B2 (ja) 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム
JP4685621B2 (ja) 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム
JP4567364B2 (ja) パラメータ生成装置、暗号化システム、復号化システム、暗号装置、暗号化方法、復号化方法、およびプログラム
JP2002023626A (ja) 公開鍵暗号方法および公開鍵暗号を用いた通信システム
JP2010049214A (ja) 暗号化装置、復号装置、暗号文検証装置、暗号化方法、復号方法及びプログラム
JP2003233306A (ja) 公開鍵暗号安全性評価方法及び装置及び公開鍵暗号安全性評価プログラム及び公開鍵暗号安全性評価プログラムを格納した記憶媒体
JP2010002525A (ja) 文書・平文空間写像装置、平文空間・文書写像装置、方法及びプログラム
JP2010068293A (ja) 秘密情報を用いて演算する装置、方法およびプログラム

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006512975

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2005736530

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020067016741

Country of ref document: KR

Ref document number: 200580005536.1

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 10592387

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Ref document number: DE

WWP Wipo information: published in national office

Ref document number: 2005736530

Country of ref document: EP

Ref document number: 1020067016741

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 10592387

Country of ref document: US