JP2013156348A - Encryption key generation method, encryption key generation device and encryption key generation program - Google Patents

Encryption key generation method, encryption key generation device and encryption key generation program Download PDF

Info

Publication number
JP2013156348A
JP2013156348A JP2012015396A JP2012015396A JP2013156348A JP 2013156348 A JP2013156348 A JP 2013156348A JP 2012015396 A JP2012015396 A JP 2012015396A JP 2012015396 A JP2012015396 A JP 2012015396A JP 2013156348 A JP2013156348 A JP 2013156348A
Authority
JP
Japan
Prior art keywords
encryption key
bit length
dimensions
calculated
encryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012015396A
Other languages
Japanese (ja)
Other versions
JP5768732B2 (en
Inventor
Masaya Yasuda
雅哉 安田
Jun Yajima
純 矢嶋
Takeshi Shimoyama
武司 下山
Atsushi Kogure
淳 小暮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012015396A priority Critical patent/JP5768732B2/en
Publication of JP2013156348A publication Critical patent/JP2013156348A/en
Application granted granted Critical
Publication of JP5768732B2 publication Critical patent/JP5768732B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To generate an encryption key that has safety against a lattice reduction attack.SOLUTION: An encryption key generation device 1 selects dimensionality of a matrix and each bit length of elements of the matrix which are respectively used as an encryption key. And, the device 1 uses the selected dimensionality and bit length to calculate a Hermitian factor and a key parameter for a lattice reduction algorithm, and determines whether or not a product, which is obtained by multiplying the Hermitian factor by a coefficient to be calculated from the dimensionality and bit length whose possibility of success in a lattice reduction attack is equal to or less than a predetermined value, is greater than the key parameter. And then, the device 1 uses the selected dimensionality and bit length to generate the encryption key when the product of the Hermitian factor and the coefficient is determined to be greater than the key parameter.

Description

本発明は、暗号鍵生成方法、暗号鍵生成装置および暗号鍵生成プログラムに関する。   The present invention relates to an encryption key generation method, an encryption key generation device, and an encryption key generation program.

従来、暗号化したままで平文に対するデータ操作を行える準同型暗号の技術が知られている。例えば、平文同士を加算した後に暗号化した結果と、各平文の暗号文同士を加算した結果とが一致する準同型暗号の一例として、Additive ElGamal暗号方式が知られている。また、平文同士を積算した後に暗号化した結果と、各平文の暗号文同士を積算した結果とが一致する準同型暗号の一例として、RSA暗号方式が知られている。   2. Description of the Related Art Conventionally, a homomorphic encryption technique that can perform data operations on plain text while being encrypted is known. For example, the Additive ElGamal cryptosystem is known as an example of a homomorphic encryption in which the result of encryption after adding plaintexts and the result of adding the ciphertexts of each plaintext match. Also, an RSA encryption method is known as an example of a homomorphic encryption in which a result obtained by accumulating plaintexts after being encrypted and a result obtained by accumulating ciphertexts of each plaintext match.

以下、準同型暗号に用いる秘密鍵および公開鍵を生成する暗号鍵生成装置の一例について説明する。例えば、暗号鍵生成装置は、秘密鍵として用いる行列の次元の数nと、各要素のビット長tとを選択する。そして、暗号鍵生成装置は、各成分の絶対値がtビット以下の整数となるn次元の乱数ベクトルv=(v、v、…vn−1)を生成する。その後、暗号鍵生成装置は、生成した乱数ベクトルvから以下の式(1)に示す行列Vを生成し、生成した行列Vを秘密鍵とする。 Hereinafter, an example of an encryption key generation apparatus that generates a secret key and a public key used for homomorphic encryption will be described. For example, the encryption key generation device selects the number n of matrix dimensions used as the secret key and the bit length t of each element. Then, the encryption key generation device generates an n-dimensional random number vector v = (v 0 , v 1 ,... V n−1 ) in which the absolute value of each component is an integer of t bits or less. Thereafter, the encryption key generation device generates a matrix V shown in the following equation (1) from the generated random vector v, and uses the generated matrix V as a secret key.

Figure 2013156348
Figure 2013156348

また、暗号鍵生成装置は、行列Vに対して行基本変形を施し、エルミート標準形である行列Bを生成する。そして、暗号鍵生成装置は、生成した行列Bを公開鍵とする。   Further, the encryption key generation device performs row basic transformation on the matrix V to generate a matrix B that is Hermitian normal form. Then, the encryption key generation apparatus uses the generated matrix B as a public key.

特開2011−145512号公報JP 2011-145512 A

C. Gentry, “Fully Homomorphic encryption using ideal lattices”, STOC 2009, pp. 169-178, 2009.C. Gentry, “Fully Homomorphic encryption using ideal lattices”, STOC 2009, pp. 169-178, 2009. C. Gentry and S. Halevi, “Implementing Gentry’s Fully Homomorphic Encryption Scheme”, EUROCRYPT 2011, LNCS 6632, pp. 129-148, 2011.C. Gentry and S. Halevi, “Implementing Gentry ’s Fully Homomorphic Encryption Scheme”, EUROCRYPT 2011, LNCS 6632, pp. 129-148, 2011. 矢嶋純、安田雅哉、下山武司、小暮淳、「Gentry準同型暗号に対するLLL攻撃実験について」、コンピュータセキュリティシンポジウム2011論文集、3号、pp. 576 581, 2011.Jun Yajima, Masaya Yasuda, Takeshi Shimoyama, Satoshi Kogure, “LLL Attack Experiments on Gentry Homomorphic Encryption”, Proceedings of Computer Security Symposium 2011, No. 3, pp. 576 581, 2011. 矢嶋純、安田雅哉、下山武司、小暮淳、「Gentry準同型暗号に対するLLL攻撃実験(II)」信学技報, vol. 111, no. 285, ISEC2011-36, pp. 13-17, 2011.Jun Yajima, Masaya Yasuda, Takeshi Shimoyama, Satoshi Kogure, "LLL Attack Experiments on Gentry Homomorphic Cryptography (II)", IEICE Technical Report, vol. 111, no. 285, ISEC2011-36, pp. 13-17, 2011. 安田雅哉、矢嶋純、下山武司、小暮淳、「格子版完全準同型暗号の安全性について」信学技報, vol. 111, no. 204, ISEC2011-33, pp. 43-50, 2011.Masaya Yasuda, Jun Yajima, Takeshi Shimoyama, Satoshi Kogure, “On the Security of Lattice Version Homomorphic Encryption”, IEICE Technical Report, vol. 111, no. 204, ISEC2011-33, pp. 43-50, 2011.

しかしながら、上述した準同型暗号の技術では、次元の数nと各要素のビット長tとが適切に選択されなかった場合は、公開鍵と暗号文とに格子縮約アルゴリズムを適用して平文を求める格子縮約攻撃により、暗号文が容易に解読されてしまうという問題がある。   However, in the above-described homomorphic encryption technique, if the number n of dimensions and the bit length t of each element are not properly selected, a plaintext is applied by applying a lattice reduction algorithm to the public key and the ciphertext. There is a problem that the ciphertext is easily deciphered by the desired lattice contraction attack.

ここで、生成した暗号鍵と公開鍵とが格子縮約攻撃に対して安全性を有するか判別するため、実際に格子縮約攻撃を行うことで、暗号の解読が可能か否かを検証する手法も考えられる。しかし、暗号鍵と公開鍵を生成する度に、格子縮約攻撃を行う場合は、膨大な計算量が必要となるため、計算資源や計算時間の観点から非現実的である。   Here, in order to determine whether the generated encryption key and public key are safe against the lattice contraction attack, it is verified whether the decryption of the cipher can be performed by actually performing the lattice contraction attack. A method is also conceivable. However, when a lattice contraction attack is performed each time an encryption key and a public key are generated, an enormous amount of calculation is required, which is unrealistic from the viewpoint of calculation resources and calculation time.

本願に開示の技術は、1つの側面では、格子縮約攻撃に対して安全性を有する暗号鍵を生成する。   In one aspect, the technology disclosed in the present application generates a cryptographic key that is secure against a lattice contraction attack.

1つの側面では、暗号鍵生成装置は、暗号鍵として用いられる行列の次元数と当該行列の各要素のビット長とを選択する。また、暗号鍵生成装置は、選択した次元数とビット長とを用いて、格子縮約アルゴリズムのエルミートファクタとキーパラメータとを算出し、格子縮約攻撃の成功率が所定の値以下となる次元数とビット長から算出される係数と算出したエルミートファクタとの積が、算出したキーパラメータよりも大きいか否かを判別する。そして、暗号鍵生成装置は、エルミートファクタと係数との積がキーパラメータよりも大きいと判別した場合には、選択した次元数とビット長とを用いて、暗号鍵を生成する
In one aspect, the encryption key generation apparatus selects the number of dimensions of a matrix used as the encryption key and the bit length of each element of the matrix. Further, the encryption key generation device calculates the Hermitian factor and key parameter of the lattice contraction algorithm using the selected number of dimensions and bit length, and the dimension for which the success rate of the lattice contraction attack is a predetermined value or less. It is determined whether or not the product of the coefficient calculated from the number and the bit length and the calculated Hermite factor is larger than the calculated key parameter. When it is determined that the product of the Hermite factor and the coefficient is larger than the key parameter, the encryption key generation device generates an encryption key using the selected number of dimensions and bit length.

1つの側面では、格子縮約攻撃に対して安全性を有する暗号鍵を生成する。   In one aspect, a cryptographic key that is secure against lattice reduction attacks is generated.

図1は、暗号鍵生成装置の機能構成の一例を説明するための図である。FIG. 1 is a diagram for explaining an example of a functional configuration of an encryption key generation apparatus. 図2は、n=256の際にLLLアルゴリズムを用いた格子縮約攻撃の実験結果を説明するための図である。FIG. 2 is a diagram for explaining an experimental result of a lattice contraction attack using the LLL algorithm when n = 256. 図3は、n=512の際にLLLアルゴリズムを用いた格子縮約攻撃の実験結果を説明するための図である。FIG. 3 is a diagram for explaining the experimental result of the lattice contraction attack using the LLL algorithm when n = 512. 図4は、n=512の際にBKZアルゴリズムを用いた格子縮約攻撃の実験結果を説明するための図である。FIG. 4 is a diagram for explaining an experimental result of a lattice contraction attack using the BKZ algorithm when n = 512. 図5は、LLLアルゴリズムを用いた格子縮約攻撃に対する安全な入力パラメータ(n、t)の範囲を説明するための図である。FIG. 5 is a diagram for explaining a range of safe input parameters (n, t) against a lattice contraction attack using the LLL algorithm. 図6は、BKZアルゴリズムを用いた格子縮約攻撃に対する安全な入力パラメータ(n、t)の範囲を説明するための図である。FIG. 6 is a diagram for explaining a range of safe input parameters (n, t) against a lattice contraction attack using the BKZ algorithm. 図7は、暗号パラメータ生成部が実行する処理の流れを説明するためのフローチャートである。FIG. 7 is a flowchart for explaining the flow of processing executed by the encryption parameter generation unit. 図8は、安全性判定部が実行する処理の流れを説明するためのフローチャートである。FIG. 8 is a flowchart for explaining the flow of processing executed by the safety determination unit. 図9は、暗号鍵生成部が実行する処理の流れを説明するためのフローチャートである。FIG. 9 is a flowchart for explaining the flow of processing executed by the encryption key generation unit. 図10は、暗号鍵生成プログラムを実行するコンピュータの一例を説明するための図である。FIG. 10 is a diagram illustrating an example of a computer that executes an encryption key generation program.

以下に添付図面を参照して本願に係る暗号鍵生成方法、暗号鍵生成装置および暗号鍵生成プログラムについて説明する。   Hereinafter, an encryption key generation method, an encryption key generation apparatus, and an encryption key generation program according to the present application will be described with reference to the accompanying drawings.

以下の実施例1では、暗号鍵生成装置の一例を説明する。なお、暗号鍵生成装置は、少なくとも、格子縮約攻撃に対して安全性を有する秘密鍵と公開鍵との組を生成する装置である。   In Example 1 below, an example of an encryption key generation apparatus will be described. Note that the encryption key generation apparatus is an apparatus that generates a pair of a secret key and a public key that are at least secure against a lattice contraction attack.

まず、暗号鍵生成装置が生成する公開鍵と秘密鍵とについて説明する。公開鍵とは、公開鍵暗号方式において、平文の暗号化を行う際に用いられ、平文の送信元に対して配布される暗号鍵であり、行列形式で表される。また、秘密鍵とは、公開鍵暗号方式において、平文の復号化を行う際に用いられ、平文の送信先が保持する暗号鍵であり、行列形式で表される。   First, the public key and secret key generated by the encryption key generation device will be described. The public key is an encryption key that is used when encrypting plaintext in the public key cryptosystem and is distributed to a plaintext transmission source, and is expressed in a matrix format. The secret key is an encryption key that is used when plaintext is decrypted in the public key cryptosystem and is held by the plaintext transmission destination, and is expressed in a matrix form.

なお、公開鍵は、秘密鍵となる行列のエルミート標準形となる行列である。なお、エルミート標準形とは、ある整数行列に対して整数乗の行基本変形を施すことで得られる下三角行列、または、上三角行列である。   The public key is a matrix that is Hermitian standard form of a matrix that is a secret key. The Hermite normal form is a lower triangular matrix or an upper triangular matrix obtained by subjecting a certain integer matrix to an integer power row transformation.

次に、2つの情報処理装置が、公開鍵と暗号鍵とを用いて、公開鍵暗号方式による暗号文の送受信を行う例について説明する。なお、以下の説明においては、暗号文の送信先となる情報処理装置は、従来の方式を用いて秘密鍵Vおよび公開鍵Bを生成する暗号鍵生成装置を有するものとする。例えば、送信先の情報処理装置は、公開鍵Bと秘密鍵Vとを生成し、暗号文の送信元となる情報処理装置に公開鍵Bを送付する。   Next, an example will be described in which two information processing apparatuses perform transmission / reception of ciphertext using a public key cryptosystem using a public key and an encryption key. In the following description, it is assumed that the information processing apparatus that is the transmission destination of the ciphertext has an encryption key generation apparatus that generates a secret key V and a public key B using a conventional method. For example, the information processing apparatus that is the transmission destination generates the public key B and the secret key V, and sends the public key B to the information processing apparatus that is the ciphertext transmission source.

一方、送信元の情報処理装置は、各成分が「0」又は「1」となるn次元の乱数ベクトルu=(u、u、…、un−1)を選択する。次に、送信元の情報処理装置は、フレッシュ暗号文となるベクトルa=2u+beを生成する。ここでeは、e=(1、0、…0)を満たすベクトルである。次に、送信元の情報処理装置は、以下の式(2)を用いて、暗号文cを生成し、生成した暗号文cを送信する。ここで、式(2)のB−1とは、公開鍵Bの逆行列である。また、式(2)中の[a×B−1]とは、a×B−1に最も近い整数値を示す関数である。 On the other hand, the transmission source information processing apparatus selects an n- dimensional random vector u = (u 0 , u 1 ,..., U n−1 ) in which each component is “0” or “1”. Next, the source information processing apparatus generates a vector a = 2u + be 1 that is a fresh ciphertext. Here, e 1 is a vector satisfying e 1 = (1, 0,... 0). Next, the information processing apparatus of the transmission source generates a ciphertext c using the following formula (2), and transmits the generated ciphertext c. Here, B −1 in Expression (2) is an inverse matrix of the public key B. Moreover, [a × B −1 ] in the formula (2) is a function indicating an integer value closest to a × B −1 .

Figure 2013156348
Figure 2013156348

一方、送信先の情報処理装置は、暗号文cを取得した場合には、以下の式(3)を用いて、n次元ベクトルa’を生成する。そして、送信先の情報処理装置は、生成したn次元ベクトルa’の第1成分となるa’を取得し、取得したa’を2で除算した余りを暗号文cの復号結果として取得する。 On the other hand, when the information processing apparatus of the transmission destination acquires the ciphertext c, it generates an n-dimensional vector a ′ using the following equation (3). Then, the destination information processing apparatus acquires a 0 ′ that is the first component of the generated n-dimensional vector a ′, and acquires the remainder obtained by dividing the acquired a 0 ′ by 2 as the decryption result of the ciphertext c To do.

Figure 2013156348
Figure 2013156348

次に、数値例を用いて、秘密鍵と公開鍵とを用いた暗号化および復号化の例を説明する。なお、以下の例では、送信先の情報処理装置が次元数n=4、ビット長t=7の秘密鍵および公開鍵を生成し、送信元の情報処理装置が平文b=1を送信する例について説明する。   Next, an example of encryption and decryption using a secret key and a public key will be described using numerical examples. In the following example, the destination information processing device generates a secret key and a public key having a dimension number n = 4 and a bit length t = 7, and the source information processing device transmits plaintext b = 1. Will be described.

例えば、送信先の情報処理装置は、秘密鍵および公開鍵を生成するためのパラメータとして、次元数n=4、ビット長t=7を選択する。このような場合には、送信元の情報処理装置は、絶対値が7ビット以下の整数となる4次元の乱数ベクトルvを生成する。詳細な数値例を挙げると、送信元の情報処理装置は、v=(112、99、−125、77)を生成する。このような場合には、送信元の情報処理装置は、以下の式(4)で示す秘密鍵Vを生成する。   For example, the information processing apparatus of the transmission destination selects the number of dimensions n = 4 and the bit length t = 7 as parameters for generating a secret key and a public key. In such a case, the source information processing apparatus generates a four-dimensional random vector v whose absolute value is an integer of 7 bits or less. To give a detailed numerical example, the transmission source information processing apparatus generates v = (112, 99, −125, 77). In such a case, the transmission source information processing apparatus generates a secret key V expressed by the following equation (4).

Figure 2013156348
Figure 2013156348

次に、送信元の情報処理装置は、式(4)で示す秘密鍵Vのエルミート標準形を算出することで、以下の式(5)で示す公開鍵Bを生成する。その後、送信元の情報処理装置は、生成した公開鍵Bを送信元の情報処理装置に配布する。   Next, the information processing apparatus of the transmission source generates a public key B represented by the following equation (5) by calculating the Hermitian standard form of the secret key V represented by the equation (4). Thereafter, the transmission source information processing apparatus distributes the generated public key B to the transmission source information processing apparatus.

Figure 2013156348
Figure 2013156348

一方、送信元の情報処理装置は、成分が「0」または「1」となる4次元の乱数ベクトルとしてu=(1、0、1、1)を選択し、フレッシュ暗号文a=2u+be=(3、0、2、2)を計算する。そして、送信元の情報処理装置は、以下の式(6)に示すように、通知された公開鍵Bを用いて、平文b=1から暗号文c=(−199178684、0、0、0)を生成し、生成した暗号文cを送信元の情報処理装置へ送信する。 On the other hand, the transmission source information processing apparatus selects u = (1, 0, 1, 1) as a four-dimensional random vector whose component is “0” or “1”, and fresh ciphertext a = 2u + be 1 = Calculate (3, 0, 2, 2). Then, as shown in the following formula (6), the transmission source information processing apparatus uses the notified public key B to convert the plaintext b = 1 to the ciphertext c = (− 199178684, 0, 0, 0). And the generated ciphertext c is transmitted to the information processing apparatus of the transmission source.

Figure 2013156348
Figure 2013156348

このような場合には、送信先の情報処理装置は、式(3)を用いて暗号文cからa’=(3、0、2、2)を算出する。さらに、送信先の情報処理装置は、a’=(3、0、2、2)の第1成分となる「3」を取得し、取得した「3」を2で割った余り「1」を復号結果として取得する。なお、上述した例については、フレッシュ暗号文aと式(3)を用いて暗号文cから算出されるa’とが一致するため、暗号化および復号化を適切に行える。   In such a case, the information processing apparatus of the transmission destination calculates a ′ = (3, 0, 2, 2) from the ciphertext c using Expression (3). Furthermore, the information processing apparatus of the transmission destination acquires “3” that is the first component of a ′ = (3, 0, 2, 2), and obtains the remainder “1” obtained by dividing the acquired “3” by 2 Obtained as a decryption result. In the above-described example, since the fresh ciphertext a and a ′ calculated from the ciphertext c using Equation (3) match, encryption and decryption can be performed appropriately.

しかしながら、上述した例では、送信先の情報処理装置が選択する次元数nとビット長tとが適切ではない場合に、LLLアルゴリズムやBKZアルゴリズムを用いた格子縮約攻撃によって、暗号文と公開鍵Bから容易に平文bを取得できるという問題がある。また、秘密鍵Vと公開鍵Bとを生成するたびに、格子縮約攻撃を実行し、安全性を検証する手法は、計算資源や計算時間の観点から非現実的である。   However, in the above-described example, when the dimension number n and the bit length t selected by the information processing apparatus of the transmission destination are not appropriate, the ciphertext and the public key are obtained by a lattice contraction attack using the LLL algorithm or the BKZ algorithm. There is a problem that plaintext b can be easily acquired from B. In addition, a method of executing a lattice contraction attack and verifying security each time the secret key V and the public key B are generated is unrealistic from the viewpoint of calculation resources and calculation time.

一方、実施例1に開示する暗号鍵生成装置は、秘密鍵Vと公開鍵Bとを生成するたびに格子縮約攻撃を実行せずとも、格子縮約攻撃に対する安全性を有する秘密鍵Vと公開鍵Bとを生成できる。以下、このような暗号鍵生成装置について図1を用いて説明する。   On the other hand, the encryption key generating apparatus disclosed in the first embodiment does not execute the lattice contraction attack every time the secret key V and the public key B are generated, and has a secret key V that is secure against the lattice contraction attack. A public key B can be generated. Hereinafter, such an encryption key generation apparatus will be described with reference to FIG.

図1は、暗号鍵生成装置の機能構成の一例を説明するための図である。図1に示すように、暗号鍵生成装置1は、暗号パラメータ生成部10、安全性判定部11、暗号鍵生成部12を有する。また、暗号鍵生成装置1は、入力装置2および出力装置3と接続する。   FIG. 1 is a diagram for explaining an example of a functional configuration of an encryption key generation apparatus. As illustrated in FIG. 1, the encryption key generation device 1 includes an encryption parameter generation unit 10, a security determination unit 11, and an encryption key generation unit 12. The encryption key generation device 1 is connected to the input device 2 and the output device 3.

入力装置2は、暗号鍵生成装置1に生成させる秘密鍵の次元数nとビット長tと解読成功確率pとを利用者が入力するための装置であり、例えば、キーボードやマウス等の装置である。ここで、解読成功確率pとは、暗号鍵生成装置1に生成させる秘密鍵および公開鍵による暗号化に対して許容する格子縮約攻撃の成功確率を示す。   The input device 2 is a device for the user to input the dimensionality n, the bit length t, and the decryption success probability p of the secret key to be generated by the encryption key generation device 1, for example, a device such as a keyboard or a mouse. is there. Here, the decryption success probability p indicates the success probability of the lattice contraction attack allowed for encryption with the secret key and the public key generated by the encryption key generation device 1.

出力装置3は、暗号鍵生成装置1が生成した秘密鍵および公開鍵を出力するための装置である。なお、図1に示す例では、暗号鍵生成装置1は、生成した秘密鍵および公開鍵を出力装置3に出力するが、実施例は、これに限定されるものではない。例えば、暗号鍵生成装置1は、公開鍵のみを出力するとともに、出力した公開鍵によって暗号化された暗号文を復号する復号化装置に対して秘密鍵を出力することとしてもよい。   The output device 3 is a device for outputting a secret key and a public key generated by the encryption key generation device 1. In the example illustrated in FIG. 1, the encryption key generation device 1 outputs the generated secret key and public key to the output device 3, but the embodiment is not limited to this. For example, the encryption key generation device 1 may output only the public key and output the secret key to the decryption device that decrypts the ciphertext encrypted by the output public key.

暗号パラメータ生成部10は、入力装置から次元数nとビット長tと解読成功確率pとを受信すると、受信した次元数nとビット長tと解読成功確率pとを安全性判定部11に通知する。また、安全性判定部11は、通知された次元数nとビット長tから生成される秘密鍵と公開鍵に対する格子縮約攻撃の成功率が通知された解読成功確率p以下となるか否かを判別し、判別結果を暗号パラメータ生成部10に通知する。   When the cryptographic parameter generation unit 10 receives the dimension number n, the bit length t, and the decryption success probability p from the input device, it notifies the security judgment unit 11 of the received dimension number n, bit length t, and decryption success probability p. To do. In addition, the security determination unit 11 determines whether the success rate of the lattice contraction attack for the secret key and the public key generated from the notified dimension number n and the bit length t is equal to or lower than the notified decryption success probability p. And the encryption parameter generation unit 10 is notified of the determination result.

このため、暗号パラメータ生成部10は、安全性判定部11から格子縮約攻撃の成功率が解読成功確率p以下となる旨の通知として「Yes」を受付けると、安全性判定部11に通知した次元数nとビット長tとを暗号鍵生成部12に通知する。また、暗号鍵生成部12は、暗号パラメータ生成部10から次元数nとビット長tとの通知を受付けた場合には、通知された次元数nとビット長tとを用いて、秘密鍵Vと公開鍵Bとを生成し、生成した秘密鍵Vと公開鍵Bとを暗号パラメータ生成部10に出力する。その後、暗号パラメータ生成部10は、暗号鍵生成部12が出力した秘密鍵Vと公開鍵Bとを出力装置3に出力する。   For this reason, when the encryption parameter generation unit 10 receives “Yes” as a notification that the success rate of the lattice contraction attack is equal to or less than the decryption success probability p from the security determination unit 11, the encryption parameter generation unit 10 notifies the security determination unit 11. The encryption key generation unit 12 is notified of the dimension number n and the bit length t. In addition, when the encryption key generation unit 12 receives the notification of the dimension number n and the bit length t from the encryption parameter generation unit 10, the encryption key generation unit 12 uses the notified dimension number n and the bit length t to generate the secret key V And the public key B are generated, and the generated secret key V and public key B are output to the encryption parameter generation unit 10. Thereafter, the encryption parameter generation unit 10 outputs the secret key V and the public key B output from the encryption key generation unit 12 to the output device 3.

一方、暗号パラメータ生成部10は、安全性判定部11から格子縮約攻撃の成功率が解読成功確率pよりも大きい旨の通知として「No」を受付けると、新たな次元数nとビット長tとを選択し、新たに選択した次元数nとビット長tと解読成功確率pとを安全性判定部11に通知する。例えば、暗号パラメータ生成部10は、前回通知したビット長tから1デクリメントした値を新たなビット長tとし、安全性判定部11に通知する。   On the other hand, when the encryption parameter generation unit 10 receives “No” from the security determination unit 11 as a notification that the success rate of the lattice contraction attack is larger than the decryption success probability p, the new dimension number n and the bit length t And the newly selected number of dimensions n, bit length t, and decoding success probability p are notified to the security judgment unit 11. For example, the encryption parameter generation unit 10 sets the value decremented by 1 from the previously notified bit length t as a new bit length t, and notifies the security determination unit 11 of the value.

安全性判定部11は、暗号パラメータ生成部10から次元数nとビット長tと解読成功確率pとを取得した場合には、次元数nとビット長tから格子縮約アルゴリズムのエルミートファクタとキーパラメータとを算出する。そして、安全性判定部11は、格子縮約攻撃の成功率がp以下となる次元数nとビット長tから算出される係数と算出したエルミートファクタとの積が、算出したキーパラメータよりも大きいか否かを判別する。 When acquiring the dimension number n, the bit length t, and the decryption success probability p from the encryption parameter generation unit 10, the security judgment unit 11 calculates the Hermitian factor and key of the lattice reduction algorithm from the dimension number n and the bit length t. Parameters. Then, the safety determination unit 11 determines that the product of the coefficient calculated from the number of dimensions n 0 and the bit length t 0 where the success rate of the lattice contraction attack is p or less and the calculated Hermitian factor is based on the calculated key parameter. It is determined whether or not the value is larger.

その後、安全性判定部11は、算出した係数とエルミートファクタとの積が、算出したキーパラメータよりも大きい場合には、格子縮約攻撃の成功率が解読成功確率p以下となる旨を示す通知として「Yes」を暗号パラメータ生成部10に通知する。一方、安全性判定部11は、算出した係数とエルミートファクタとの積が、算出したキーパラメータよりも小さい場合には、格子縮約攻撃の成功率が解読成功確率pよりも大きい旨を示す通知として「No」を暗号パラメータ生成部10に通知する。   Thereafter, when the product of the calculated coefficient and the Hermitian factor is larger than the calculated key parameter, the safety determination unit 11 notifies that the success rate of the lattice contraction attack is equal to or lower than the decoding success probability p. As “Yes” to the encryption parameter generation unit 10. On the other hand, when the product of the calculated coefficient and the Hermitian factor is smaller than the calculated key parameter, the safety determination unit 11 notifies that the success rate of the lattice contraction attack is higher than the decoding success probability p. As “No” to the encryption parameter generation unit 10.

以下、安全性判定部11が実行する処理を具体的に説明する。まず、安全性判定部11は、暗号パラメータ生成部10から次元数n、ビット長t、解読成功確率pを取得する。すると、安全性判定部11は、次元数nを用いて、格子縮約アルゴリズムのエルミートファクタを算出する。   Hereinafter, the process which the safety determination part 11 performs is demonstrated concretely. First, the security determination unit 11 acquires the number of dimensions n, the bit length t, and the decryption success probability p from the encryption parameter generation unit 10. Then, the safety determination unit 11 calculates the Hermitian factor of the lattice contraction algorithm using the dimension number n.

ここで、エルミートファクタとは、次元数nの行列に対して格子縮約アルゴリズムを用いることにより縮小した基底を示す行列を算出し、算出した行列の各行、又は、各列から求められる最小のノルムを行列の判別式の1/n乗で除算した値である。ここで、ノルムとは、ベクトルの各成分の2乗の和の2乗根となる値である。このようなエルミートファクタは、格子縮約アルゴリズムによりそれぞれ異なる値を有しており、LLLアルゴリズムのエルミートファクタはδ(n)=1.018、BKZアルゴリズムのエルミートファクタは、δ(n)=1.01となることが知られている。 Here, the Hermite factor is a minimum norm calculated from each row or each column of the calculated matrix by calculating a matrix indicating a reduced base by using a lattice contraction algorithm for a matrix of dimension n. Is divided by the 1 / nth power of the discriminant of the matrix. Here, the norm is a value that is the square root of the sum of the squares of the components of the vector. Such Hermite factors have different values depending on the lattice reduction algorithm. The Hermite factor of the LLL algorithm is δ (n) = 1.018 n , and the Hermite factor of the BKZ algorithm is δ (n) = 1. .01 n is known.

また、安全性判定部11は、次元数nとビット長tとを用いて、以下の式(7)に示すキーパラメータδ(n,t)を算出する。なお、式(7)中のπとは円周率を示し、eとは、自然対数の値である。   In addition, the safety determination unit 11 calculates a key parameter δ (n, t) represented by the following equation (7) using the number of dimensions n and the bit length t. In Expression (7), π represents a circular ratio, and e is a natural logarithm value.

Figure 2013156348
Figure 2013156348

また、安全性判定部11は、解読成功確率がp以下となる秘密鍵Vと公開鍵Bとを生成するための次元数nとビット長tとを抽出する。次に、安全性判定部11は、抽出した次元数nとビット長tとを用いて、エルミートファクタδ(n)とキーパラメータδ(n、t)を算出する。また、安全性判定部11は、算出したエルミートファクタδ(n)とキーパラメータδ(n、t)とから、係数c=δ(n、t)/δ(n)を導出する。そして、安全性判定部11は、次元数nとビット長tとから算出したエルミートファクタとキーパラメータとが、以下の式(8)を満たすか否かを判別する。 Further, the security judgment unit 11 extracts the number of dimensions n 0 and the bit length t 0 for generating the secret key V and the public key B whose decryption success probability is p or less. Next, the safety determination unit 11 calculates a Hermitian factor δ (n 0 ) and a key parameter δ (n 0 , t 0 ) using the extracted number of dimensions n 0 and the bit length t 0 . Further, the safety determination unit 11 calculates a coefficient c = δ (n 0 , t 0 ) / δ (n 0 ) from the calculated Hermitian factor δ (n 0 ) and the key parameter δ (n 0 , t 0 ). To derive. Then, the safety determination unit 11 determines whether or not the Hermite factor calculated from the dimension number n and the bit length t and the key parameter satisfy the following expression (8).

Figure 2013156348
Figure 2013156348

すなわち、安全性判定部11は、格子縮約攻撃の成功率がp以下となる次元数nとビット長tから算出される係数と、暗号パラメータ生成部10から取得した次元数nから算出されるエルミートファクタとの積を算出する。そして、安全性判定部11は、係数とエルミートファクタとの積が、暗号パラメータ生成部10から取得した次元数nとビット長tとから算出されるキーパラメータよりも大きいか否かを判別する。 That is, the security determination unit 11 calculates the coefficient calculated from the number of dimensions n 0 and the bit length t 0 where the success rate of the lattice contraction attack is p or less, and the number of dimensions n acquired from the encryption parameter generation unit 10. Calculate the product with the Hermitian factor. Then, the security determination unit 11 determines whether or not the product of the coefficient and the Hermite factor is larger than the key parameter calculated from the dimension number n and the bit length t acquired from the encryption parameter generation unit 10.

そして、安全性判定部11は、次元数nとビット長tとから算出したエルミートファクタとキーパラメータとが、以下の式(8)を満たす場合には、解読成功確率がp以下となる旨を示す通知として「Yes」を暗号パラメータ生成部10に通知する。一方、安全性判定部11は、次元数nとビット長tとから算出したエルミートファクタとキーパラメータとが、以下の式(8)を満たさない場合には、解読成功確率がpよりも大きい旨を示す通知として「No」を暗号パラメータ生成部10に通知する。   Then, when the Hermite factor calculated from the number of dimensions n and the bit length t and the key parameter satisfy the following expression (8), the safety determination unit 11 indicates that the decoding success probability is p or less. As a notification to be shown, “Yes” is notified to the encryption parameter generation unit 10. On the other hand, if the Hermite factor calculated from the number of dimensions n and the bit length t and the key parameter do not satisfy the following expression (8), the security determination unit 11 indicates that the decoding success probability is greater than p. “No” is notified to the encryption parameter generation unit 10 as a notification indicating the above.

ここで、安全性判定部11は、解読成功確率がp以下となる秘密鍵Vと公開鍵Bとを生成するための次元数nとビット長tとを任意の方法で抽出し、係数cを算出してよい。例えば、安全性判定部11は、実際に格子縮約攻撃を行うことで、解読成功確率がp以下となる次元数nとビット長tとを抽出してもよい。 Here, the security judgment unit 11 extracts the number of dimensions n 0 and the bit length t 0 for generating the secret key V and the public key B whose decryption success probability is equal to or less than p by an arbitrary method, and calculates the coefficient c may be calculated. For example, the security determination unit 11 may extract the number of dimensions n 0 and the bit length t 0 that have a decoding success probability of p or less by actually performing a lattice contraction attack.

すなわち、安全性判定部11は、次元数の候補となるn’およびビット長の候補となるt’をランダムに選択し、選択した次元数の候補n’およびビット長の候補t’を暗号パラメータ生成部10に送信する。すると、暗号パラメータ生成部10は、次元数の候補n’およびビット長の候補t’を暗号鍵生成部12に通知し、次元数の候補n’およびビット長の候補t’から1/p個のランダムな暗号鍵を生成させる。   That is, the security judgment unit 11 randomly selects n ′ that is a candidate for the number of dimensions and t ′ that is a candidate for the bit length, and selects the candidate n ′ of the selected number of dimensions and the candidate t ′ of the bit length as the encryption parameter. Transmit to the generation unit 10. Then, the encryption parameter generation unit 10 notifies the encryption key generation unit 12 of the dimension number candidate n ′ and the bit length candidate t ′, and 1 / p number of the dimension number candidate n ′ and the bit length candidate t ′. Generate a random encryption key.

また、暗号パラメータ生成部10は、次元数の候補n’およびビット長の候補t’から生成させた1/p個の暗号鍵を安全性判定部11に送信する。そして、安全性判定部11は、暗号パラメータ生成部10から受信した暗号鍵に対して格子縮約攻撃を実施し、解読成功確率p’を算出する。   In addition, the encryption parameter generation unit 10 transmits 1 / p encryption keys generated from the dimension number candidate n ′ and the bit length candidate t ′ to the security determination unit 11. Then, the security determination unit 11 performs a lattice contraction attack on the encryption key received from the encryption parameter generation unit 10 and calculates a decryption success probability p ′.

安全性判定部11は、ビット長の候補t’から1をデクリメントした次元数の候補n’および新たなビット長の候補t’−1を暗号パラメータ生成部10に通知し、暗号鍵生成部12に生成させた暗号鍵に対して、再度格子縮約攻撃を実行する。このような処理を繰り返すことで、安全性判定部11は、解読成功確率がp以下となる次元数nとビット長tとを抽出してもよい。 The security determination unit 11 notifies the encryption parameter generation unit 10 of the dimension number candidate n ′ decremented by 1 from the bit length candidate t ′ and the new bit length candidate t′−1, and the encryption key generation unit 12 The lattice contraction attack is executed again on the encryption key generated in step (b). By repeating such a process, the safety determination unit 11 may extract the number of dimensions n 0 and the bit length t 0 with which the decoding success probability is p or less.

なお、安全性判定部11は、上述した処理を1度だけ行い、処理結果を記憶してもよい。例えば、安全性判定部11は、上述した処理を格子縮約アルゴリズムおよび解読成功確率pごとにあらかじめ行い、格子縮約アルゴリズムごとに、解読成功確率pと、係数cとを対応付けて記憶する。そして、安全性判定部11は、暗号パラメータ生成部10から通知された解読成功確率pと対応付けられた係数cを用いて式(8)を満たすか否かを判別してもよい。   The safety determination unit 11 may perform the above-described process only once and store the processing result. For example, the security determination unit 11 performs the above-described processing in advance for each lattice reduction algorithm and decoding success probability p, and stores the decoding success probability p and the coefficient c in association with each lattice reduction algorithm. And the safety determination part 11 may determine whether Formula (8) is satisfy | filled using the coefficient c matched with the decoding success probability p notified from the encryption parameter generation part 10. FIG.

このような場合には、安全性判定部11は、次元数nおよびビット長tから生成する暗号鍵が格子縮約攻撃に対して安全性を有するか否かを、計算資源を浪費することなく、迅速におこなうことができる。なお、例えば、安全性判定部11は、格子縮約攻撃として、LLLアルゴリズムを用いた格子縮約攻撃、または、BKZアルゴリズムを用いた格子縮約攻撃を採用できるが、これ以外にも、任意のアルゴリズムを用いた格子縮約攻撃を採用できる。   In such a case, the security judgment unit 11 determines whether or not the encryption key generated from the dimension number n and the bit length t has security against the lattice contraction attack without wasting computational resources. Can be done quickly. For example, the security determination unit 11 can employ a lattice contraction attack using the LLL algorithm or a lattice contraction attack using the BKZ algorithm as a lattice contraction attack. Lattice contraction attacks using algorithms can be adopted.

ここで、解読成功確率がp以下となる次元数nとビット長tとから算出した係数とエルミートファクタとの積が、キーパラメータよりも大きいか否かを安全性判定部11が判定することで、解読成功確率がp以下か否かを判定できる点について説明する。まず、格子縮約アルゴリズムを用いて格子縮約攻撃を行う情報処理装置が実行する処理について説明する。例えば、情報処理装置は、暗号文cと公開鍵Bとを用いて、式(9)に示す(n+1)×(n+1)行列Cを生成する。 Here, the security judgment unit 11 judges whether or not the product of the coefficient calculated from the number of dimensions n 0 and the bit length t 0 with which the decoding success probability is p or less and the Hermitian factor is larger than the key parameter. The point which can determine whether the decoding success probability is below p will be described. First, processing executed by an information processing apparatus that performs a lattice contraction attack using a lattice contraction algorithm will be described. For example, the information processing apparatus generates the (n + 1) × (n + 1) matrix C shown in Expression (9) using the ciphertext c and the public key B.

Figure 2013156348
Figure 2013156348

ここで、行列Cの行ベクトルを(b、b、…、b)とし、(b、b、…、b)を係数とする線形結合の元a+a+…+aのなす集合Sを考える。ここで、a〜aおよびb〜bは、整数であるものとする。また、(b、b、…、b)は行列Cの基底ベクトルであり、集合Sを基底ベクトル(b、b、…、b)が生成する格子と呼ぶ。 Here, the row vector of the matrix C is (b 0 , b 1 ,..., B n ), and (b 0 , b 1 ,..., B n ) is a linear combination element a 0 b 0 + a 1 b Consider a set S formed by 1 +... + An b n . Here, a 0 ~a n and b 0 ~b n is assumed to be an integer. (B 0 , b 1 ,..., B n ) are basis vectors of the matrix C, and the set S is referred to as a lattice generated by the basis vectors (b 0 , b 1 ,..., B n ).

ここで、公開鍵暗号方式で通信を行う情報処理装置は、暗号文cを秘密鍵Vを用いて復号する際には、式(3)中のベクトルa’を算出する。このとき、(n+1)次元ベクトルである(a’、1)は、集合Sに元として含まれ、集合Sに含まれるベクトルの中で最小のノルムを持つ。   Here, when the information processing apparatus that performs communication using the public key cryptosystem decrypts the ciphertext c using the secret key V, the information processing apparatus calculates the vector a ′ in Equation (3). At this time, the (n + 1) -dimensional vector (a ′, 1) is included as an element in the set S, and has the smallest norm among the vectors included in the set S.

一方、行列Cに対して格子縮約アルゴリズムを適用することで算出される縮小した基底を示す行列を行列Dとすると、行列Dの行ベクトルは、ベクトル(a’、1)と同じ集合Sに含まれることとなる。また、格子縮約アルゴリズムによって算出される行列Dの第1行ベクトルは、最も少ないノルムを有する傾向がある。このため、行列Dの第1行ベクトルをdとしたとき、d=(a’、1)となる可能性が高い。 On the other hand, if a matrix indicating a reduced basis calculated by applying a lattice contraction algorithm to the matrix C is a matrix D, the row vector of the matrix D becomes the same set S as the vector (a ′, 1). Will be included. Further, the first row vector of the matrix D calculated by the lattice reduction algorithm tends to have the smallest norm. For this reason, when the first row vector of the matrix D is d 0 , there is a high possibility that d 0 = (a ′, 1).

すると、d=(a’、1)を従属するような状態において、公開鍵Bと暗号文cから算出することができる行列Cに格子縮約アルゴリズムを適用した行列Dから、式(3)に示すベクトルa’を算出することができる。ここで、ベクトルa’の第1成分を2で割った余りを算出すると、暗号文cの復号結果となるので、情報処理装置は、暗号文cと公開鍵Bから復号結果を得ることができる。 Then, in a state where d 0 = (a ′, 1) is subordinate, from the matrix D obtained by applying the lattice reduction algorithm to the matrix C that can be calculated from the public key B and the ciphertext c, Equation (3) The vector a ′ shown in FIG. Here, if the remainder obtained by dividing the first component of the vector a ′ by 2 is calculated, the decryption result of the ciphertext c is obtained, so that the information processing apparatus can obtain the decryption result from the ciphertext c and the public key B. .

上述したように、行列Cに格子縮約アルゴリズムを適用して得られる行列Dの第1ベクトルであるdのノルムが集合Sの中で最小となる場合には、格子縮約攻撃が成功することとなる。ここで、非特許文献5によると、δ(n、t)>cδ(n)が成り立つ場合には、dのノルムが集合Sの中で最小となり、格子縮約攻撃が成功する点が示されている。 As described above, when the norm of d 0 that is the first vector of the matrix D obtained by applying the lattice reduction algorithm to the matrix C is the smallest in the set S, the lattice reduction attack is successful. It will be. Here, according to Non-Patent Document 5, when δ (n, t)> cδ (n) holds, the norm of d 0 is the smallest in the set S, and the lattice contraction attack is successful. Has been.

ここで、係数cは、解読成功確率pの値と格子縮約アルゴリズムの種類のみに依存する値である。また、δ(n、t)=cδ(n)を満たす(n、t)を安全な入力パラメータ(n、t)の境界値とすると、次元数nを固定した際に、t≦tを満たすビット長を用いて生成される暗号鍵の解読成功確率が同じ傾向を有する。また、次元数tを固定した際に、n≧nを満たす次元数を用いて生成される暗号鍵の解読成功確率が同じ傾向を有する。 Here, the coefficient c is a value that depends only on the value of the decoding success probability p and the type of the lattice reduction algorithm. Further, δ (n b, t b ) = satisfy cδ (n b) (n b , t b) If a boundary value of the secure input parameters (n, t), when fixing the number of dimensions n, deciphering success rate of the encryption key generated by using a bit length that satisfies t ≦ t b have the same tendency. Further, when fixing the number of dimensions t, decode success rate of the encryption key generated by using the number of dimensions satisfying n ≧ n b have the same tendency.

このため、安全性判定部11は、次元数nとビット長tとが、解読成功確率pと格子縮約アルゴリズムとに係る係数cを用いて、δ(n、t)<cδ(n)を満たすか否かを判別することにより、解読成功確率がp以下となるか否かを判別することができる。   For this reason, the security determination unit 11 uses the coefficient n according to the number n of dimensions and the bit length t, the decoding success probability p, and the lattice reduction algorithm, to satisfy δ (n, t) <cδ (n). By determining whether or not it is satisfied, it is possible to determine whether or not the decoding success probability is equal to or less than p.

次に、図を用いて、次元数nを固定した際に、t≦tを満たすビット長で暗号鍵の解読成功確率が同じ傾向を有する点、および、次元数tを固定した際に、n≧nを満たす次元数で生成される暗号鍵の解読成功確率が同じ傾向を有する点について説明する。なお、以下の説明では、図2〜図4を用いて、格子縮約攻撃による解読成功確率の平均について説明し、その後、図5、図6を用いて、係数c=δ(n、t)/δ(n)から求められる安全な次元数nとビット長tとの関係について説明する。 Next, referring to the figure, when the dimension number n is fixed, the decryption success probability of the encryption key has the same tendency with the bit length satisfying t ≦ t b , and when the dimension number t is fixed, deciphering success rate of the encryption key generated by the number of dimensions satisfying n ≧ n b is explained that it has the same tendency. In the following description, the average of the decoding success probability due to the lattice contraction attack will be described with reference to FIGS. 2 to 4, and then the coefficient c = δ (n 0 , t, with reference to FIGS. 5 and 6. The relationship between the safe dimension number n obtained from 0 ) / δ (n 0 ) and the bit length t will be described.

図2は、n=256の際にLLLアルゴリズムを用いた格子縮約攻撃の実験結果を説明するための図である。図2に示す例では、次元数nを256に固定し、秘密鍵のビット長を変化させながら生成した暗号鍵に対し、LLLアルゴリズムによる格子縮約攻撃の成功確率の平均を示した。また、図2に示す例では、横軸をビット長とし、縦軸を成功確率とした。   FIG. 2 is a diagram for explaining an experimental result of a lattice contraction attack using the LLL algorithm when n = 256. In the example shown in FIG. 2, the average success probability of the lattice contraction attack by the LLL algorithm is shown for the encryption key generated while the number of dimensions n is fixed to 256 and the bit length of the secret key is changed. In the example shown in FIG. 2, the horizontal axis is the bit length and the vertical axis is the success probability.

例えば、図2に示す例では、秘密鍵のビット長が4である際に、格子縮約攻撃の成功確率の平均が0パーセントとなり、秘密鍵のビット長が5である際に、格子縮約攻撃の成功確率の平均が4.62パーセントとなった。また、秘密鍵のビット長が6である際には格子縮約攻撃の成功確率の平均が79.65パーセントとなり、秘密鍵のビット長が7である際に、格子縮約攻撃の成功確率の平均が99.9パーセントとなった。また、秘密鍵のビット長が8である際に、格子縮約攻撃の成功確率が100パーセントとなった。   For example, in the example illustrated in FIG. 2, when the bit length of the secret key is 4, the average probability of success of the lattice contraction attack is 0%, and when the bit length of the secret key is 5, the lattice contraction is performed. The average attack success rate was 4.62%. Further, when the bit length of the secret key is 6, the average probability of success of the lattice contraction attack is 79.65%, and when the bit length of the secret key is 7, the success probability of the lattice contraction attack is The average was 99.9 percent. In addition, when the bit length of the secret key is 8, the success probability of the lattice contraction attack is 100%.

また、図3は、n=512の際にLLLアルゴリズムを用いた格子縮約攻撃の実験結果を説明するための図である。図3に示す例では、次元数nを512に固定し、秘密鍵のビット長を変化させながら生成した暗号鍵に対し、LLLアルゴリズムによる格子縮約攻撃の成功確率を示した。また、図3に示す例では、図2と同様に横軸をビット長とし、縦軸を成功確率とした。   FIG. 3 is a diagram for explaining an experimental result of a lattice contraction attack using the LLL algorithm when n = 512. In the example shown in FIG. 3, the success rate of the lattice contraction attack by the LLL algorithm is shown for the encryption key generated while the dimension number n is fixed to 512 and the bit length of the secret key is changed. In the example shown in FIG. 3, the horizontal axis is the bit length and the vertical axis is the success probability, as in FIG.

例えば、図3に示す例では、秘密鍵のビット長が11、12である際に、格子縮約攻撃の成功確率が0パーセントとなり、秘密鍵のビット長が13である際に、格子縮約攻撃の成功確率の平均が31.8パーセントとなった。また、秘密鍵のビット長が14である際には格子縮約攻撃の成功確率の平均が98.8パーセントとなり、秘密鍵のビット長が15である際に、格子縮約攻撃の成功確率が100パーセントとなった。   For example, in the example shown in FIG. 3, when the bit length of the secret key is 11 or 12, the success probability of the lattice contraction attack is 0%, and when the bit length of the secret key is 13, the lattice contraction is performed. The average attack success rate was 31.8%. When the bit length of the secret key is 14, the average probability of success of the lattice contraction attack is 98.8%, and when the bit length of the secret key is 15, the success probability of the lattice contraction attack is 100 percent.

また、図4は、n=512の際にBKZアルゴリズムを用いた格子縮約攻撃の実験結果を説明するための図である。図4に示す例では、次元数nを512に固定し、秘密鍵のビット長を変化させながら生成した暗号鍵に対し、BKZアルゴリズムによる格子縮約攻撃の成功確率を示した。また、図3に示す例では、図2と同様に横軸をビット長とし、縦軸を成功確率とした。   FIG. 4 is a diagram for explaining the experimental result of the lattice contraction attack using the BKZ algorithm when n = 512. In the example shown in FIG. 4, the success rate of the lattice contraction attack by the BKZ algorithm is shown for the encryption key generated while the dimension number n is fixed to 512 and the bit length of the secret key is changed. In the example shown in FIG. 3, the horizontal axis is the bit length and the vertical axis is the success probability, as in FIG.

例えば、図4に示す例では、秘密鍵のビット長が6以下の際に、格子縮約攻撃の成功確率が0パーセントとなり、秘密鍵のビット長が7である際に、格子縮約攻撃の成功確率の平均が0.5パーセントとなった。また、秘密鍵のビット長が8である際には格子縮約攻撃の成功確率の平均が97.3パーセントとなり、秘密鍵のビット長が9である際に、格子縮約攻撃の成功確率が100パーセントとなった。   For example, in the example shown in FIG. 4, when the bit length of the secret key is 6 or less, the success probability of the lattice contraction attack is 0%, and when the bit length of the secret key is 7, The average success probability was 0.5 percent. Further, when the bit length of the secret key is 8, the average probability of success of the lattice contraction attack is 97.3%, and when the bit length of the secret key is 9, the probability of success of the lattice contraction attack is 100 percent.

ここで、p=0.1、n=256とし、LLLアルゴリズムのエルミートファクタを用いて係数cを算出した場合には、c=0.08となる。ここで、横軸を次元数n、縦軸をビット長tとし、c=0.08の際に式(8)を満たす境界値をプロットすると、図5のようになる。図5は、LLLアルゴリズムを用いた格子縮約攻撃に対する安全な入力パラメータ(n、t)の範囲を説明するための図である。なお、図5に示す例では、次元数nとビット長tとの組み合わせが、図5に示す折れ線グラフよりも下の範囲に含まれる場合には、解読成功確率が0.1パーセント以下となる。   Here, when p = 0.1 and n = 256 and the coefficient c is calculated using the Hermite factor of the LLL algorithm, c = 0.08. Here, if the horizontal axis is the number of dimensions n, the vertical axis is the bit length t, and the boundary value satisfying the equation (8) is plotted when c = 0.08, the result is as shown in FIG. FIG. 5 is a diagram for explaining a range of safe input parameters (n, t) against a lattice contraction attack using the LLL algorithm. In the example shown in FIG. 5, when the combination of the dimension number n and the bit length t is included in the range below the line graph shown in FIG. 5, the decoding success probability is 0.1% or less. .

例えば、図5に示す例では、次元数n=256の際、ビット長tの境界値t’が、4.99以下の際に、解読成功確率が0.1パーセント以下となる。一方、図2を参照すると、ビット長tが4以下の場合には、解読成功確率が0.1以下となることが確認できる。また、図5に示す例では、次元数n=512の際、ビット長tの境界値t’が、11.08以下の際に、解読成功確率が0.1パーセント以下となる。一方、図3を参照すると、ビット長tが12以下の場合には、解読成功確率が0.1以下となることが確認できる。   For example, in the example shown in FIG. 5, when the dimension number n = 256, the deciphering success probability is 0.1% or less when the boundary value t ′ of the bit length t is 4.99 or less. On the other hand, referring to FIG. 2, when the bit length t is 4 or less, it can be confirmed that the decoding success probability is 0.1 or less. In the example shown in FIG. 5, when the dimension number n = 512, the decoding success probability is 0.1% or less when the boundary value t ′ of the bit length t is 11.08 or less. On the other hand, referring to FIG. 3, when the bit length t is 12 or less, it can be confirmed that the decoding success probability is 0.1 or less.

一方、図6は、BKZアルゴリズムを用いた格子縮約攻撃に対する安全な入力パラメータ(n、t)の範囲を説明するための図である。なお、図6に示す例では、図5と同様に、BKZアルゴリズムのエルミートファクタを用いて算出した係数cを用いた際に、式(8)を満たす境界値をプロットした。   On the other hand, FIG. 6 is a diagram for explaining a range of safe input parameters (n, t) against a lattice contraction attack using the BKZ algorithm. In the example shown in FIG. 6, as in FIG. 5, when the coefficient c calculated using the Hermite factor of the BKZ algorithm is used, the boundary value that satisfies Expression (8) is plotted.

例えば、図6に示す例では、次元数n=512の際、ビット長tの境界値t’が、6.99以下の際に、解読成功確率が0.1パーセント以下となる。一方、図4を参照すると、ビット長tが6以下の場合には、解読成功確率が0.1以下となることが確認できる。   For example, in the example shown in FIG. 6, when the number of dimensions n = 512, when the boundary value t ′ of the bit length t is 6.99 or less, the decoding success probability is 0.1% or less. On the other hand, referring to FIG. 4, it can be confirmed that when the bit length t is 6 or less, the decoding success probability is 0.1 or less.

このように、次元数nが変化しても、式(8)を用いることで、同一の係数cによって定まる安全な次元数nおよびビット長tの組み合わせを適切に求めることができる。よって、nが大きい値になった場合であっても、式(8)を用いることで、解読成功確率がp未満となるか否かを正しく判別することができる。   Thus, even if the number of dimensions n changes, a safe combination of the number of dimensions n and the bit length t determined by the same coefficient c can be appropriately obtained by using the equation (8). Therefore, even if n is a large value, it is possible to correctly determine whether or not the decryption success probability is less than p by using Expression (8).

なお、図5および図6に示すように、格子縮約アルゴリズムが変化した場合には、係数cの値が変化するため、安全な次元数nおよびビット長tの組み合わせが変化する。しかしながら、図3および図4を比較することで明らかな通り、異なる格子縮約アルゴリズムが適用された場合にも、係数cから求められる安全な次元数nおよびビット長tの組み合わせの傾向が類似する。このため、格子縮約アルゴリズムが異なる場合であっても、対応する係数cを算出することで、式(8)を用いた判定を行うことができる。   As shown in FIGS. 5 and 6, when the lattice contraction algorithm changes, the value of the coefficient c changes, so that the safe combination of the number of dimensions n and the bit length t changes. However, as is clear by comparing FIG. 3 and FIG. 4, even when different lattice reduction algorithms are applied, the tendency of the combination of the safe dimension number n and the bit length t obtained from the coefficient c is similar. . For this reason, even if the lattice contraction algorithms are different, determination using the equation (8) can be performed by calculating the corresponding coefficient c.

以上のように、安全性判定部11は、格子縮約アルゴリズムに応じたエルミートファクタとキーパラメータと用いて、解読成功確率がp以下となる次元数nおよびビット長tを抽出し、抽出した次元数nおよびビット長tを用いて係数cを算出する。そして、安全性判定部11は、算出した係数cと式(8)を用いることにより、暗号パラメータ生成部10から通知された次元数nおよびビット長tから生成される暗号鍵の解読成功確率がp未満か否かを判別することができる。 As described above, the safety determination unit 11 extracts the number of dimensions n 0 and the bit length t 0 that have a decoding success probability of p or less using the Hermite factor and the key parameter corresponding to the lattice reduction algorithm, and extracts them. The coefficient c is calculated using the number of dimensions n 0 and the bit length t 0 . Then, the security determination unit 11 uses the calculated coefficient c and the equation (8) to determine the probability of successful decryption of the encryption key generated from the number of dimensions n and the bit length t notified from the encryption parameter generation unit 10. It can be determined whether or not it is less than p.

図1に戻って、暗号鍵生成部12は、安全性判定部11が、次元数nとビット長tとから生成される暗号鍵の解読成功確率がp以下となる場合には、暗号鍵を生成する。具体的には、暗号鍵生成部12は、安全性判定部11が次元数nとビット長tとから生成される暗号鍵の解読成功確率がp以下となると判別した場合には、暗号パラメータ生成部10から次元数nとビット長tとを取得する。   Returning to FIG. 1, the encryption key generation unit 12 determines that the security determination unit 11 determines the encryption key if the probability of successful decryption of the encryption key generated from the dimension number n and the bit length t is less than or equal to p. Generate. Specifically, the encryption key generation unit 12 generates the encryption parameter when the security determination unit 11 determines that the probability of successful decryption of the encryption key generated from the dimension number n and the bit length t is p or less. The number of dimensions n and the bit length t are acquired from the unit 10.

このような場合には、暗号鍵生成部12は、次元数nの乱数ベクトルvを選択し、式(1)に示す行列Vを生成する。また、暗号鍵生成部12は、生成した行列Vのエルミート標準形となる行列Bを算出する。この際、暗号鍵生成部12は、行列Bの第1行に含まれる要素のうち第1列目の要素が判別式として抽出する。そして、暗号鍵生成部12は、抽出した判別式を2で除算した余りが1である場合には、算出した行列Vを秘密鍵Vとし、行列Bを公開鍵Bとして暗号パラメータ生成部10に出力する。一方、暗号鍵生成部12は、抽出した判別式を2で除算した余りが1ではない場合には、再度、次元数nの乱数ベクトルvを選択し、行列Vの生成を行う。   In such a case, the encryption key generation unit 12 selects a random number vector v having a dimension number n, and generates a matrix V shown in Expression (1). Further, the encryption key generation unit 12 calculates a matrix B that is a Hermitian standard form of the generated matrix V. At this time, the encryption key generation unit 12 extracts the element in the first column among the elements included in the first row of the matrix B as a discriminant. When the remainder obtained by dividing the extracted discriminant by 2 is 1, the encryption key generation unit 12 sets the calculated matrix V as the secret key V and the matrix B as the public key B to the encryption parameter generation unit 10. Output. On the other hand, when the remainder obtained by dividing the extracted discriminant by 2 is not 1, the encryption key generation unit 12 selects the random number vector v having the dimension number n and generates the matrix V again.

次に、数値例を用いて、暗号鍵生成装置1が格子縮約攻撃に対して安全な秘密鍵Vおよび公開鍵Bを出力する処理について説明する。例えば、暗号鍵生成装置1は、入力装置から、要求される次元数n、ビット長t、解読成功確率pとして(n、t、p)=(512、20、0.1)を取得する。   Next, a process in which the encryption key generation device 1 outputs a secret key V and a public key B that are safe against a lattice contraction attack will be described using numerical examples. For example, the encryption key generation device 1 acquires (n, t, p) = (512, 20, 0.1) as the required number of dimensions n, bit length t, and decryption success probability p from the input device.

このような場合には、安全性判定部11は、n=256の際に解読成功確率が0.1以下となる(n,t)を抽出する。例えば、安全性判定部11は、ランダムに選択した(n’、t’)=(256、4)を用いて暗号鍵の候補を生成し、生成した候補に対して格子縮約攻撃を行う処理を、1/p=1000回実行し、何回解読に成功したかを記録する。次に、安全性判定部11は、(n’、t’)=(256、3)として同様の格子縮約攻撃を行い、攻撃成功確率がp=0.1以下となるtが得られるまで繰り返す。 In such a case, the safety determination unit 11 extracts (n 0 , t 0 ) where the decoding success probability is 0.1 or less when n = 256. For example, the security determination unit 11 generates encryption key candidates using randomly selected (n ′, t ′) = (256, 4), and performs a lattice reduction attack on the generated candidates 1 / p = 1000 times and record how many times the decryption is successful. Next, the safety determination unit 11 performs the same lattice contraction attack as (n ′, t ′) = (256, 3), and obtains t 0 where the attack success probability is p = 0.1 or less. Repeat until.

この結果、安全性判定部11は、n’=256の際に解読成功確率pが0.1以下となるt’がt’<5であると判別する。この結果、安全性判定部11は、n=256、t=5を抽出する。次に、安全性判定部11は、式(7)に(n、t)を代入してキーパラメータδ(n、t)=7.758を算出する。また、安全性判定部11は、n0=256を用いて、LLLアルゴリズムのエルミートファクタδ(n)=96.257を算出する。この結果、安全性判定部11は、係数c=δ(n、t)/δ(n)=0.08を算出する。 As a result, the safety determination unit 11 determines that t ′ where the decoding success probability p is 0.1 or less when n ′ = 256 is t ′ <5. As a result, the safety determination unit 11 extracts n 0 = 256 and t 0 = 5. Next, the safety determination unit 11 calculates key parameter δ (n 0 , t 0 ) = 7.758 by substituting (n 0 , t 0 ) into equation (7). Moreover, the safety determination unit 11 calculates Hermite factor δ (n 0 ) = 96.257 of the LLL algorithm using n 0 = 256. As a result, the safety determination unit 11 calculates the coefficient c = δ (n 0 , t 0 ) / δ (n 0 ) = 0.08.

次に、安全性判定部11は、暗号パラメータ生成部10から通知された次元数n=512とビット長t=20からエルミートファクタδ(n)およびキーパラメータδ(n、t)を算出し、式(8)を満たすか否かを判別する。ここで、n=512、t=20の場合には、δ(n、t)=216×(513/(2×3.14×2.72))1/2=359148となり、cδ(n)−δ(n、t)=−358407となる。この結果、安全性判定部11は、n=512、t=20の場合は、式(8)を満たさないと判別する。 Next, the security determination unit 11 calculates the Hermitian factor δ (n) and the key parameter δ (n, t) from the number of dimensions n = 512 and the bit length t = 20 notified from the encryption parameter generation unit 10, It is determined whether or not Expression (8) is satisfied. Here, when n = 512 and t = 20, δ (n, t) = 2 16 × (513 / (2 × 3.14 × 2.72)) 1/2 = 359148, and cδ (n ) −δ (n, t) = − 358407. As a result, the safety determination unit 11 determines that Expression (8) is not satisfied when n = 512 and t = 20.

このような場合には、暗号パラメータ生成部10は、tの値を1デクリメントし、n=512、t=19を通知することとなる。このような処理を継続すると、安全性判定部11は、n=512、t=10となった際に、cδ(n)−δ(n、t)=390.498と算出し、式(8)を満たすと判別する。この結果、暗号パラメータ生成部10は、n=512、t=10を暗号鍵生成部12に通知し、秘密鍵Vおよび公開鍵Bを生成させる。その後、暗号パラメータ生成部10は、暗号鍵生成部12が生成した秘密鍵Vおよび公開鍵Bを出力装置3に送信する。   In such a case, the encryption parameter generation unit 10 decrements the value of t by 1, and notifies n = 512 and t = 19. If such processing is continued, the safety determination unit 11 calculates cδ (n) −δ (n, t) = 390.498 when n = 512 and t = 10, and the equation (8 ) Is satisfied. As a result, the encryption parameter generation unit 10 notifies the encryption key generation unit 12 of n = 512 and t = 10, and generates the secret key V and the public key B. Thereafter, the encryption parameter generation unit 10 transmits the secret key V and the public key B generated by the encryption key generation unit 12 to the output device 3.

このように、暗号鍵生成装置1は、次元数nとビット長tとを用いて、格子縮約アルゴリズムのエルミートファクタとキーパラメータとを算出する。また、暗号鍵生成装置1は、解読成功確率がp以下となる次元数nとビット長tから算出する係数と、次元数nから算出するエルミートファクタとの積が、次元数nとビット長tとから算出するキーパラメータより大きいか否かを判別する。そして、暗号鍵生成装置1は、次元数nとビット長tから算出する係数と、次元数nから算出するエルミートファクタとの積が、次元数nとビット長tとから算出するキーパラメータより大きい場合には、次元数nとビット長tから秘密鍵Vと公開鍵Bを生成する。 As described above, the encryption key generating apparatus 1 calculates the Hermitian factor and the key parameter of the lattice contraction algorithm using the dimension number n and the bit length t. Also, the encryption key generation device 1 determines that the product of the coefficient calculated from the number of dimensions n 0 and the bit length t 0 of which the decryption success probability is p or less and the Hermitian factor calculated from the number of dimensions n is the number of dimensions n and the bit It is determined whether it is larger than the key parameter calculated from the length t. Then, the encryption key generating device 1 calculates the key parameter that the product of the coefficient calculated from the dimension number n 0 and the bit length t 0 and the Hermitian factor calculated from the dimension number n is calculated from the dimension number n and the bit length t. If larger, the secret key V and the public key B are generated from the dimension number n and the bit length t.

このため、暗号鍵生成装置1は、秘密鍵Vおよび公開鍵Bを生成するたびに、格子縮約攻撃を行う事で安全性を判別せずとも、格子縮約攻撃に対して安全性を有する秘密鍵Vおよび公開鍵Bを算出することができる。また、暗号鍵生成装置1は、格子縮約アルゴリズムごとの係数cを予め記憶する場合は、格子縮約攻撃に対して安全性を有する暗号鍵を迅速に生成し、出力することができる。   For this reason, the encryption key generation device 1 has security against a lattice contraction attack without determining the security by performing a lattice contraction attack every time the secret key V and the public key B are generated. A secret key V and a public key B can be calculated. Further, when the coefficient c for each lattice contraction algorithm is stored in advance, the encryption key generating apparatus 1 can quickly generate and output an encryption key having security against the lattice contraction attack.

例えば、暗号パラメータ生成部10、安全性判定部11、暗号鍵生成部12とは、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。   For example, the encryption parameter generation unit 10, the security determination unit 11, and the encryption key generation unit 12 are electronic circuits. Here, as an example of the electronic circuit, an integrated circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA), or a central processing unit (CPU) or a micro processing unit (MPU) is applied.

次に、図を用いて、暗号鍵生成装置1が有する暗号パラメータ生成部10、安全性判定部11、暗号鍵生成部12が実行する処理の流れについて説明する。まず、図7を用いて、暗号パラメータ生成部10が実行する処理の流れについて説明する。   Next, the flow of processing executed by the encryption parameter generation unit 10, the security determination unit 11, and the encryption key generation unit 12 included in the encryption key generation device 1 will be described with reference to the drawings. First, the flow of processing executed by the encryption parameter generation unit 10 will be described with reference to FIG.

図7は、暗号パラメータ生成部が実行する処理の流れを説明するためのフローチャートである。図7に示す例では、暗号パラメータ生成部10は、入力装置2から、次元数n、ビット長t、解読成功確率pを取得する(ステップS101)。次に、暗号パラメータ生成部10は、取得した次元数n、ビット長t、解読成功確率pを安全性判定部11に出力する(ステップS102)。   FIG. 7 is a flowchart for explaining the flow of processing executed by the encryption parameter generation unit. In the example illustrated in FIG. 7, the encryption parameter generation unit 10 acquires the number of dimensions n, the bit length t, and the decryption success probability p from the input device 2 (step S101). Next, the encryption parameter generation unit 10 outputs the acquired dimension number n, bit length t, and decryption success probability p to the security determination unit 11 (step S102).

そして、暗号パラメータ生成部10は、安全性判定部11の出力が「Yes」であるか否かを判別し(ステップS103)、Yesである場合には(ステップS103肯定)、次元数nとビット長tを暗号鍵生成部12に出力する(ステップS104)。その後、暗号パラメータ生成部10は、暗号鍵生成部12が生成した秘密鍵Vと暗号鍵Bを出力し(ステップS105)、処理を終了する。   Then, the encryption parameter generation unit 10 determines whether or not the output of the security determination unit 11 is “Yes” (step S103). If the output is Yes (Yes in step S103), the number of dimensions n and the bit The length t is output to the encryption key generation unit 12 (step S104). Thereafter, the encryption parameter generation unit 10 outputs the secret key V and the encryption key B generated by the encryption key generation unit 12 (step S105), and ends the process.

一方、暗号パラメータ生成部10は、安全性判定部11の出力が「No」である場合には(ステップS103否定)、異なる次元数n、または、ビット長tを選択する(ステップS106)。そして、暗号パラメータ生成部10は、ステップS102の処理を実行する。   On the other hand, when the output of the security determination unit 11 is “No” (No at Step S103), the cryptographic parameter generation unit 10 selects a different dimension number n or bit length t (Step S106). Then, the encryption parameter generation unit 10 executes the process of step S102.

次に、図8を用いて、安全性判定部11が実行する処理の流れについて説明する。図8は、安全性判定部が実行する処理の流れを説明するためのフローチャートである。例えば、図8に示す例では、安全性判定部11は、暗号パラメータ生成部10から次元数n、ビット長t、解読成功確率pを取得する(ステップS201)。次に、安全性判定部11は、解読成功確率がp以下となるδ(n、t)を導出する(ステップS202)。 Next, the flow of processing executed by the safety determination unit 11 will be described with reference to FIG. FIG. 8 is a flowchart for explaining the flow of processing executed by the safety determination unit. For example, in the example illustrated in FIG. 8, the security determination unit 11 acquires the number of dimensions n, the bit length t, and the decryption success probability p from the encryption parameter generation unit 10 (step S201). Next, the security determination unit 11 derives δ (n 0 , t 0 ) with a decoding success probability equal to or less than p (step S202).

また、安全性判定部11は、係数c=δ(n、t)/δ(n)を算出する(ステップS203)。また、安全性判定部11は、ステップS201で取得した次元数nとビット長tとを用いて、エルミートファクタδ(n)とキーパラメータδ(n、t)を算出する(ステップS204)。そして、安全性判定部11は、cδ(n)−δ(n、t)>0を満たすか否かを判別する(ステップS205)。 Further, the safety determination unit 11 calculates the coefficient c = δ (n 0 , t 0 ) / δ (n 0 ) (step S203). Further, the safety determination unit 11 calculates the Hermitian factor δ (n) and the key parameter δ (n, t) using the number of dimensions n and the bit length t acquired in step S201 (step S204). Then, the safety determination unit 11 determines whether or not cδ (n) −δ (n, t)> 0 is satisfied (step S205).

その後、安全性判定部11は、ステップS201で取得した次元数nとビット長tとがcδ(n)−δ(n、t)>0を満たす場合は(ステップS205肯定)、「Yes」を暗号パラメータ生成部10に出力し(ステップS206)、処理を終了する。一方、安全性判定部11は、、ステップS201で取得した次元数nとビット長tとがcδ(n)−δ(n、t)>0を満たさない場合は(ステップS205否定)、「No」を暗号パラメータ生成部10に出力し(ステップS207)、処理を終了する。   Thereafter, when the dimension number n and the bit length t acquired in step S201 satisfy cδ (n) −δ (n, t)> 0 (Yes in step S205), the safety determination unit 11 sets “Yes”. It outputs to the encryption parameter generation part 10 (step S206), and complete | finishes a process. On the other hand, when the dimension number n and the bit length t acquired in step S201 do not satisfy cδ (n) −δ (n, t)> 0 (No in step S205), the safety determination unit 11 determines “No”. Is output to the encryption parameter generation unit 10 (step S207), and the process is terminated.

次に、図9を用いて、暗号鍵生成部12が実行する処理の流れについて説明する。図9は、暗号鍵生成部が実行する処理の流れを説明するためのフローチャートである。図9に示す例では、暗号鍵生成部12は、暗号パラメータ生成部10から、次元数nとビット長tとを取得する(ステップS301)。すると、暗号鍵生成部12は、n次元の乱数ベクトルvを生成し、生成した乱数ベクトルvから式(1)を用いて行列Vを生成する(ステップS302)。次に、暗号鍵生成部12は、行列Vのエルミート標準形となる行列Bを生成する(ステップS303)。   Next, the flow of processing executed by the encryption key generation unit 12 will be described with reference to FIG. FIG. 9 is a flowchart for explaining the flow of processing executed by the encryption key generation unit. In the example illustrated in FIG. 9, the encryption key generation unit 12 acquires the number of dimensions n and the bit length t from the encryption parameter generation unit 10 (step S301). Then, the encryption key generation unit 12 generates an n-dimensional random number vector v, and generates a matrix V from the generated random number vector v using Expression (1) (Step S302). Next, the encryption key generating unit 12 generates a matrix B that is Hermitian normal form of the matrix V (step S303).

そして、暗号鍵生成部12は、行列Bの(1、1)成分、すなわち、行列Bの1行目に含まれる各要素のうち、1列目に位置する要素の値を2で割った余りが1であるか否かを判別する(ステップS304)。その後、暗号鍵生成部12は、行列Bの(1、1)成分の値を2で割った余りが1である場合には(ステップS304肯定)、行列Vを秘密鍵とし、行列Bを公開鍵として、暗号パラメータ生成部10に出力し(ステップS305)、処理を終了する。一方、暗号鍵生成部12は、行列Bの(1、1)成分の値を2で割った余りが0となる場合には(ステップS304否定)、新たなn次元の乱数ベクトルvを生成し、生成した乱数ベクトルvから行列Vを生成する(ステップS302)。   The encryption key generating unit 12 then divides the value of the element located in the first column among the (1, 1) component of the matrix B, that is, the element located in the first row of the matrix B, by 2. Is 1 or not (step S304). After that, when the remainder of dividing the (1, 1) component value of the matrix B by 2 is 1 (Yes in step S304), the encryption key generation unit 12 makes the matrix V a secret key and discloses the matrix B As a key, it outputs to the encryption parameter production | generation part 10 (step S305), and complete | finishes a process. On the other hand, if the remainder obtained by dividing the value of the (1, 1) component of the matrix B by 2 is 0 (No at step S304), the encryption key generating unit 12 generates a new n-dimensional random vector v. The matrix V is generated from the generated random number vector v (step S302).

上述したように、暗号鍵生成装置1は、選択した次元数nとビット長tとを用いて、格子縮約アルゴリズムのエルミートファクタδ(n)とキーパラメータδ(n、t)を算出する。また、暗号鍵生成装置1は、解読成功確率がp以下となる次元数nとビット長tから係数cを算出し、cδ(n)−δ(n、t)>0を満たすか否かを判別する。 As described above, the encryption key generating apparatus 1 calculates the Hermitian factor δ (n) and the key parameter δ (n, t) of the lattice contraction algorithm using the selected dimension number n and the bit length t. Also, the encryption key generation device 1 calculates the coefficient c from the number of dimensions n 0 and the bit length t 0 where the decryption success probability is equal to or less than p, and whether cδ (n) −δ (n, t)> 0 is satisfied. Is determined.

そして、暗号鍵生成装置1は、cδ(n)−δ(n、t)>0を満たす場合には、次元数nとビット長tとを用いて、秘密鍵Vと公開鍵Bを生成する。このため、暗号鍵生成装置1は、秘密鍵Vと公開鍵Bを生成する度に格子縮約攻撃を行わずとも、格子縮約攻撃に対して安全性を有する秘密鍵Vと公開鍵Bを生成することができる。   Then, the encryption key generation device 1 generates the secret key V and the public key B using the dimension number n and the bit length t when cδ (n) −δ (n, t)> 0 is satisfied. . For this reason, the encryption key generating apparatus 1 uses the secret key V and the public key B that are secure against the lattice contraction attack without performing the lattice contraction attack every time the secret key V and the public key B are generated. Can be generated.

また、暗号鍵生成装置1は、cδ(n)−δ(n、t)>0を満たさない場合には、ビット長tから1をデクリメントしたビット長を新たに選択し、次元数nと新たに選択したtとがcδ(n)−δ(n、t)>0を満たすか否かを判別する。このため、暗号鍵生成装置1は、入力された次元数nに対して安全性を有するビット長tを用いた秘密鍵Vと公開鍵Bを生成することができる。   In addition, if cδ (n) −δ (n, t)> 0 is not satisfied, the encryption key generation device 1 newly selects a bit length obtained by decrementing 1 from the bit length t, and adds a new dimension number n. It is determined whether or not the selected t satisfies cδ (n) −δ (n, t)> 0. For this reason, the encryption key generating apparatus 1 can generate the secret key V and the public key B using the bit length t having security for the input dimension number n.

また、暗号鍵生成装置1は、解読成功確率がp以下となる次元数nとビット長tから係数c=δ(n、t)/δ(n)を算出し、cδ(n)−δ(n、t)>0を満たすか否かを判別する。このため、暗号鍵生成装置1は、次元数nとビット長tとから生成させる秘密鍵Vと公開鍵Bが安全性を有するか否かを正しく判別することができる。 Also, the encryption key generation device 1 calculates the coefficient c = δ (n 0 , t 0 ) / δ (n 0 ) from the number of dimensions n 0 and the bit length t 0 where the decryption success probability is p or less, and cδ ( n) It is determined whether or not −δ (n, t)> 0 is satisfied. For this reason, the encryption key generating apparatus 1 can correctly determine whether or not the secret key V and the public key B generated from the dimension number n and the bit length t are secure.

また、暗号鍵生成装置1は、ランダムに選択した次元数n’とビット長t’とを用いて、解読成功確率pの逆数と同数の暗号鍵候補を生成する。そして、暗号鍵生成装置1は、生成した暗号鍵候補に対する格子縮約攻撃を行うことで、解読成功確率がp以下となる次元数nとビット長tとを算出する。 Also, the encryption key generating apparatus 1 generates the same number of encryption key candidates as the inverse of the decryption success probability p using the dimension number n ′ and the bit length t ′ selected at random. Then, the encryption key generation device 1 performs a lattice contraction attack on the generated encryption key candidate, thereby calculating the number of dimensions n 0 and the bit length t 0 where the decryption success probability is p or less.

このため、暗号鍵生成装置1は、格子縮約アルゴリズムの種別と、解読成功確率pとの組み合わせによって定まる係数cを保持していない場合にも、解読成功確率がp以下となる次元数nとビット長tとを算出することで、係数cを取得することができる。この結果、暗号鍵生成装置1は、任意の格子縮約アルゴリズムと、解読成功確率pとの組み合わせを満たす秘密鍵Vと公開鍵Bとを出力することができる。 For this reason, the cryptographic key generation device 1 also has the number of dimensions n 0 where the decryption success probability is p or less even when the coefficient c determined by the combination of the type of the lattice contraction algorithm and the decryption success probability p is not retained. And the bit length t 0 can be calculated to obtain the coefficient c. As a result, the encryption key generating apparatus 1 can output the secret key V and the public key B that satisfy the combination of the arbitrary lattice contraction algorithm and the decryption success probability p.

また、暗号鍵生成装置1は、LLLアルゴリズム、または、BKZアルゴリズムを用いた格子縮約攻撃に対して、解読成功確率がp以下となる次元数nとビット長tとを算出する。このため、暗号鍵生成装置1は、LLLアルゴリズム、または、BKZアルゴリズムに対して、解読成功確率がp以下となる秘密鍵Vと公開鍵Bとを出力することができる。 In addition, the encryption key generation device 1 calculates the number of dimensions n 0 and the bit length t 0 for which the decryption success probability is p or less with respect to the lattice contraction attack using the LLL algorithm or the BKZ algorithm. For this reason, the encryption key generation device 1 can output the secret key V and the public key B whose decryption success probability is p or less with respect to the LLL algorithm or the BKZ algorithm.

なお、暗号鍵生成装置1は、実際にランダムに生成した暗号鍵に対する格子縮約攻撃を行うとしても、一般に用いられる次元数nやビット長tよりも小さい値の次元数n’およびビット長t’を生成する。そして、暗号鍵生成装置1は、生成した次元数n’およびビット長t’に基づいて、次元数nおよびビット長tを算出し、算出した次元数nおよびビット長tから係数cを算出する。 Even if the cryptographic key generation apparatus 1 performs a lattice contraction attack on a cryptographic key that is actually randomly generated, the dimension number n ′ and the bit length t, which are smaller than the generally used dimension number n and bit length t. Generate '. Then, the encryption key generating unit 1, based on the generated number of dimensions n 'and the bit length t', calculates the number of dimensions n 0 and bit length t 0, the calculated coefficients from dimensionality n 0 and bit length t 0 and c is calculated.

このため、暗号鍵生成装置1は、実際に格子縮約攻撃を行う場合にも、計算量を削減し、現実的な時間内で係数cを算出することができる。ここで、係数cは、次元数nやビット長tの値によらない値である。このため、暗号鍵生成装置1は、一般に用いられる次元数nやビット長tと比較して小さな次元数nおよびビット長tから係数cを算出した場合にも、次元数nやビット長tが安全性を有するか否かを適切に判別することができる。 For this reason, the encryption key generating apparatus 1 can reduce the calculation amount and calculate the coefficient c within a realistic time even when the lattice contraction attack is actually performed. Here, the coefficient c is a value that does not depend on the value of the dimension number n or the bit length t. For this reason, the cryptographic key generation apparatus 1 also calculates the dimension number n and the bit length even when the coefficient c is calculated from the dimension number n 0 and the bit length t 0 which are smaller than the generally used dimension number n and the bit length t. It is possible to appropriately determine whether t has safety.

また、暗号鍵生成装置1は、格子縮約アルゴリズムの種類ごとに、あらかじめ、解読成功確率がp以下となる次元数nとビット長tから係数cを導出して保持する。そして、暗号鍵生成装置1は、入力された解読成功確率pに応じた係数cを用いて、入力された次元数nとビット長tとがcδ(n)−δ(n、t)>0を満たすか否かを判別する。このため、暗号鍵生成装置1は、計算資源をさらに削減することができる。 Also, the encryption key generation apparatus 1 derives and holds the coefficient c from the number of dimensions n 0 and the bit length t 0 in which the success rate of decryption is p or less in advance for each type of lattice contraction algorithm. Then, the encryption key generation device 1 uses the coefficient c corresponding to the input decryption success probability p, and the input dimension number n and the bit length t are cδ (n) −δ (n, t)> 0. It is determined whether or not the above is satisfied. For this reason, the encryption key generation device 1 can further reduce computational resources.

これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。   Although the embodiments of the present invention have been described so far, the embodiments may be implemented in various different forms other than the embodiments described above. Therefore, another embodiment included in the present invention will be described below as a second embodiment.

(1)次元数n、ビット長tの入力について
上述した暗号鍵生成装置1は、入力装置2を介して、次元数n、ビット長t、解読成功確率pを取得し、取得した次元数n、ビット長tから算出される秘密鍵Vおよび公開鍵Bが解読成功確率pを満たすか否かを判別した。しかし実施例は、これに限定されるものではない。
(1) Input of dimension number n and bit length t The encryption key generation apparatus 1 described above acquires the dimension number n, the bit length t, and the decryption success probability p via the input apparatus 2, and acquires the acquired dimension number n. Then, it was determined whether or not the secret key V and the public key B calculated from the bit length t satisfy the decryption success probability p. However, the embodiment is not limited to this.

例えば、暗号鍵生成装置1は、次元数n、ビット長tの入力を行わずとも、解読成功確率がp以下となる秘密鍵Vおよび公開鍵Bを自動的に出力しても良い。例えば、暗号パラメータ生成部10は、次元数nとビット長tとをランダムに生成する。そして、暗号パラメータ生成部10は、ランダムに生成した次元数n、ビット長t、解読成功確率pを安全性判定部11に出力する。   For example, the encryption key generation apparatus 1 may automatically output the secret key V and the public key B whose decryption success probability is p or less without inputting the dimension number n and the bit length t. For example, the encryption parameter generation unit 10 randomly generates the dimension number n and the bit length t. Then, the encryption parameter generation unit 10 outputs the randomly generated dimension number n, bit length t, and decryption success probability p to the security determination unit 11.

そして、暗号パラメータ生成部10は、ランダムに生成した次元数nおよびビット長tから生成される暗号鍵の解読成功確率がp以上となる場合、すなわち、安全性判定部11から「No」を受信した場合には、ビット長tから1をデクリメントする。そして、暗号パラメータ生成部10は、次元数nとビット長(t−1)を安全性判定部11に出力する。以上の処理を繰り返すことで、暗号鍵生成装置1は、次元数nおよびビット長tの指定を取得せずとも、解読成功確率がp以下となる秘密鍵Vと公開鍵Bとを生成することができる。   The encryption parameter generation unit 10 receives “No” from the security determination unit 11 when the probability of successful decryption of the encryption key generated from the randomly generated dimension number n and bit length t is p or more. In this case, 1 is decremented from the bit length t. Then, the encryption parameter generation unit 10 outputs the dimension number n and the bit length (t−1) to the security determination unit 11. By repeating the above processing, the encryption key generation device 1 generates the secret key V and the public key B whose decryption success probability is p or less without obtaining the designation of the dimension number n and the bit length t. Can do.

また、暗号鍵生成装置1は、次元数nのみの指定を受付けることとしてもよい。このような場合には、暗号パラメータ生成部10は、ランダムに生成したビット長t’と指定された次元数nと、固定の解読成功確率pとを安全性判定部11に出力する。そして、暗号パラメータ生成部10は、安全性判定部11が「Yes」を出力するまで、ビット長t’をデクリメントすることとしてもよい。   Further, the encryption key generation apparatus 1 may accept designation of only the dimension number n. In such a case, the encryption parameter generation unit 10 outputs the randomly generated bit length t ′, the designated dimension number n, and the fixed decryption success probability p to the security determination unit 11. Then, the encryption parameter generation unit 10 may decrement the bit length t ′ until the security determination unit 11 outputs “Yes”.

以下、数値を用いた具体例を説明する。例えば、暗号鍵生成装置1は、入力装置2から、要求される次元数n、解読成功確率pとして(n、p)=(1024、0.1)を取得する。このような場合には、安全性判定部11は、解読成功確率が0.1以下となる(n,t)を抽出する。 Hereinafter, specific examples using numerical values will be described. For example, the encryption key generation device 1 acquires (n, p) = (1024, 0.1) from the input device 2 as the required dimension number n and decryption success probability p. In such a case, the security determination unit 11 extracts (n 0 , t 0 ) where the decoding success probability is 0.1 or less.

例えば、安全性判定部11は、ランダムに選択した(n’、t’)=(256、4)を用いて暗号鍵の候補を生成し、生成した候補に対して格子縮約攻撃を行う処理を、1/p=1000回実行し、何回解読に成功したかを記録する。次に、安全性判定部11は、(n’、t’)=(256、3)として同様の格子縮約攻撃を行い、攻撃成功確率がp=0.1以下となるtが得られるまで繰り返す。 For example, the security determination unit 11 generates encryption key candidates using randomly selected (n ′, t ′) = (256, 4), and performs a lattice reduction attack on the generated candidates 1 / p = 1000 times and record how many times the decryption is successful. Next, the safety determination unit 11 performs the same lattice contraction attack as (n ′, t ′) = (256, 3), and obtains t 0 where the attack success probability is p = 0.1 or less. Repeat until.

この結果、安全性判定部11は、n’=256の際に解読成功確率pが0.1以下となるt’がt’<5であると判別する。この結果、安全性判定部11は、n=256、t=5を抽出する。次に、安全性判定部11は、式(7)に(n、t)を代入してキーパラメータδ(n、t)=7.758を算出する。また、安全性判定部11は、n0=256を用いて、LLLアルゴリズムのエルミートファクタδ(n)=96.257を算出する。この結果、安全性判定部11は、係数c=δ(n、t)/δ(n)=0.08を算出する。 As a result, the safety determination unit 11 determines that t ′ where the decoding success probability p is 0.1 or less when n ′ = 256 is t ′ <5. As a result, the safety determination unit 11 extracts n 0 = 256 and t 0 = 5. Next, the safety determination unit 11 calculates key parameter δ (n 0 , t 0 ) = 7.758 by substituting (n 0 , t 0 ) into equation (7). Moreover, the safety determination unit 11 calculates Hermite factor δ (n 0 ) = 96.257 of the LLL algorithm using n 0 = 256. As a result, the safety determination unit 11 calculates the coefficient c = δ (n 0 , t 0 ) / δ (n 0 ) = 0.08.

次に、暗号パラメータ生成部10は、ランダムに選択したビット長として、t=25と次元数n=1024と、解読成功確率p=0.1とを安全性判定部11に通知する。すると、安全性判定部11は、暗号パラメータ生成部10から通知された次元数n=1024とビット長t=25からエルミートファクタδ(n)およびキーパラメータδ(n、t)を算出し、式(8)を満たすか否かを判別する。ここで、n=1024、t=25の場合には、cδ(n)−δ(n、t)=−9377540となる。この結果、安全性判定部11は、n=1024、t=25の場合は、式(8)を満たさないと判別する。   Next, the encryption parameter generation unit 10 notifies the security determination unit 11 of t = 25, the number of dimensions n = 1024, and the decryption success probability p = 0.1 as randomly selected bit lengths. Then, the security determination unit 11 calculates the Hermitian factor δ (n) and the key parameter δ (n, t) from the number of dimensions n = 1024 and the bit length t = 25 notified from the encryption parameter generation unit 10, and formulas It is determined whether or not (8) is satisfied. Here, when n = 1024 and t = 25, cδ (n) −δ (n, t) = − 93777540. As a result, the safety determination unit 11 determines that Expression (8) is not satisfied when n = 1024 and t = 25.

このような場合には、暗号パラメータ生成部10は、tの値を1デクリメントし、n=1024、t=24を通知することとなる。このような処理を継続すると、安全性判定部11は、n=1024、t=24となった際に、cδ(n)−δ(n、t)=−1254893となるので、式(8)を満たさないと判別する。   In such a case, the encryption parameter generation unit 10 decrements the value of t by 1, and notifies n = 1024 and t = 24. If such processing is continued, the safety judgment unit 11 becomes cδ (n) −δ (n, t) = − 1254873 when n = 1024 and t = 24, and therefore, the equation (8) Is determined not to be satisfied.

このため、暗号パラメータ生成部10は、n=1024、t=23を安全性判定部11に通知する。すると、安全性判定部11は、cδ(n)−δ(n、t)=2806429となるので、式(8)を満たすと判別し、暗号パラメータ生成部10に「Yes」を出力する。この結果、暗号パラメータ生成部10は、n=1024、t=23を暗号鍵生成部12に出力し、秘密鍵Vと公開鍵Bを生成させる。   Therefore, the encryption parameter generation unit 10 notifies the security determination unit 11 of n = 1024 and t = 23. Then, since the safety determination unit 11 is cδ (n) −δ (n, t) = 28064429, it is determined that the expression (8) is satisfied, and “Yes” is output to the encryption parameter generation unit 10. As a result, the encryption parameter generation unit 10 outputs n = 1024 and t = 23 to the encryption key generation unit 12 to generate the secret key V and the public key B.

さらに、暗号鍵生成装置1は、安全なビット長のうち、最も大きい値のビット長を用いて秘密鍵Vと暗号鍵Bとを生成することとしてもよい。例えば、暗号パラメータ生成部10は、安全性判定部11が「Yes」を出力した場合には、ビット長tをインクリメントし、インクリメントしたビット長(t+1)を安全性判定部11に入力する処理を実行する。その後、暗号パラメータ生成部10は、安全性判定部11が「No」を出力した場合には、前回入力したビット長を暗号鍵生成部12に出力することとしてもよい。   Furthermore, the encryption key generation device 1 may generate the secret key V and the encryption key B using the largest bit length among the safe bit lengths. For example, when the security determination unit 11 outputs “Yes”, the encryption parameter generation unit 10 increments the bit length t and inputs the incremented bit length (t + 1) to the security determination unit 11. Run. Thereafter, the encryption parameter generation unit 10 may output the previously input bit length to the encryption key generation unit 12 when the security determination unit 11 outputs “No”.

一方、暗号鍵生成装置1は、指定されたビット長tから、解読成功確率がp以下となる次元数nと出力することとしてもよい。例えば、暗号パラメータ生成部10は、次元数n’をランダムに選択し、安全性判定部11に次元数n’、ビット長t、解読成功確率pとを出力する。そして、暗号パラメータ生成部10は、安全性判定部11が「No」を出力した場合には、次元数n’を1インクリメントし、新たな次元数n’+1、ビット長t、解読成功確率pを安全性判定部11に入力する。   On the other hand, the encryption key generation device 1 may output the number n of dimensions with a successful decryption probability of p or less from the specified bit length t. For example, the encryption parameter generation unit 10 randomly selects the dimension number n ′ and outputs the dimension number n ′, the bit length t, and the decryption success probability p to the security determination unit 11. When the security determination unit 11 outputs “No”, the encryption parameter generation unit 10 increments the number of dimensions n ′ by 1, and adds a new number of dimensions n ′ + 1, the bit length t, the decryption success probability p. Is input to the safety determination unit 11.

以上の処理を繰り返し、安全性判定部11が「Yes」を出力した場合には、暗号パラメータ生成部10は、安全性判定部11に入力した次元数とビット長tと解読成功確率pとを暗号鍵生成部12に入力することとしてもよい。また、暗号パラメータ生成部10は、cδ(n)がδ(n、t)よりも小さい場合には、前回選択した次元数nを2倍にした値を新たな次元数nとして選択しても良い。   When the above process is repeated and the security determination unit 11 outputs “Yes”, the encryption parameter generation unit 10 calculates the number of dimensions, the bit length t, and the decryption success probability p input to the security determination unit 11. It may be input to the encryption key generation unit 12. In addition, when cδ (n) is smaller than δ (n, t), the encryption parameter generation unit 10 may select a value obtained by doubling the previously selected dimension number n as a new dimension number n. good.

以下、数値を用いた具体例を説明する。なお、以下の説明においては、安全性判定部11が係数c=0.08をすでに算出し、保持しているものとする。例えば、暗号パラメータ生成部10は、ビット長t=28、解読成功確率p=0.1を取得する。このような場合には、暗号パラメータ生成部10は、2のべき乗となる次元数n’をランダムに選択する。例えば、暗号パラメータ生成部10は、次元数n’=512を選択する。そして、暗号パラメータ生成部10は、次元数n’=512、ビット長t=28、解読成功確率p=0.1を安全性判定部11に通知する。   Hereinafter, specific examples using numerical values will be described. In the following description, it is assumed that the safety determination unit 11 has already calculated and held the coefficient c = 0.08. For example, the encryption parameter generation unit 10 acquires the bit length t = 28 and the decryption success probability p = 0.1. In such a case, the encryption parameter generation unit 10 randomly selects a dimension number n ′ that is a power of 2. For example, the encryption parameter generation unit 10 selects the dimension number n ′ = 512. Then, the encryption parameter generation unit 10 notifies the security determination unit 11 of the number of dimensions n ′ = 512, the bit length t = 28, and the decryption success probability p = 0.1.

すると、安全性判定部11は、cδ(n)−δ(n、t)=−96408254051576となるため、「No」を出力する。このような場合には、暗号パラメータ生成部10は、次元数n’を2倍し、n’=1024として、安全性判定部11に入力する。すると、安全性判定部11は、cδ(n)−δ(n、t)=−136275393938182となるため、「No」を出力する。   Then, the safety determination unit 11 outputs “No” because cδ (n) −δ (n, t) = − 964088254051576. In such a case, the encryption parameter generation unit 10 doubles the number of dimensions n ′ and inputs it to the security determination unit 11 as n ′ = 1024. Then, the safety determination unit 11 outputs “No” because cδ (n) −δ (n, t) = − 13627553939182.

この結果、暗号パラメータ生成部10は、新たな次元数として、n’=1024×2=2048を安全性判定部11に入力する。すると、安全性判定部11は、cδ(n)−δ(n、t)=396899861581922となるため、式(8)を満たすと判別し、「Yes」を出力する。このため、暗号パラメータ生成部10は、次元数n=2048、ビット長t=28を暗号鍵生成部12に入力し、秘密鍵Vと公開鍵Bとを生成させる。   As a result, the encryption parameter generation unit 10 inputs n ′ = 1024 × 2 = 2048 to the security determination unit 11 as the new number of dimensions. Then, since the safety determination unit 11 is cδ (n) −δ (n, t) = 396899861581922, the safety determination unit 11 determines that the expression (8) is satisfied, and outputs “Yes”. Therefore, the encryption parameter generation unit 10 inputs the number of dimensions n = 2048 and the bit length t = 28 to the encryption key generation unit 12 to generate the secret key V and the public key B.

このように、暗号鍵生成装置1は、cδ(n)がδ(n、t)よりも小さい場合には、前回選択した次元数nに1インクリメントする等して、新たな次元数nを選択しなおす。そして、暗号鍵生成装置1は、cδ(n)がδ(n、t)よりも大きくなるまで、安全性を判別する。このため、暗号鍵生成装置1は、任意のビット数tに対して安全な次元数nを短時間で算出し、算出した次元数nを用いて、安全性を有する秘密鍵Vと公開鍵Bとを生成することができる。   As described above, when cδ (n) is smaller than δ (n, t), the encryption key generation device 1 selects a new dimension number n, for example, by incrementing the dimension number n previously selected by one. I will do it again. Then, the encryption key generation device 1 determines the security until cδ (n) becomes larger than δ (n, t). For this reason, the encryption key generation device 1 calculates a safe dimension number n for an arbitrary number of bits t in a short time, and uses the calculated dimension number n to provide a secure private key V and a public key B. And can be generated.

(2)係数cを用いた処理について
上述した暗号鍵生成装置1は、指定された解読成功確率pを満たす次元数nとビット長tから係数cを算出し、算出した係数cを用いて、次元数nとビット長tから生成される秘密鍵Vと公開鍵Bが安全性を有するか判別した。しかし、実施例は、これに限定されるものではない。
(2) Processing Using Coefficient c The above-described encryption key generation apparatus 1 calculates the coefficient c from the number of dimensions n 0 and the bit length t 0 satisfying the designated decryption success probability p, and uses the calculated coefficient c. Thus, it is determined whether the secret key V and the public key B generated from the dimension number n and the bit length t are secure. However, the embodiment is not limited to this.

すなわち、暗号鍵生成装置1は、図5および図6に示すように、係数cを保持する場合には、任意の次元数nにおいて解読成功確率がp以下となるビット長tを識別することができる。このため、暗号鍵生成装置1は、保持する係数cを用いて、任意の次元数nにおいて解読成功確率がp以下となるビット長tを識別し、識別したビット長を用いて秘密鍵Vと公開鍵Bとを算出することとしてもよい。同様に、暗号鍵生成装置1は、保持する係数cを用いて、任意のビット長tにおいて解読成功確率がp以下となる次元数nを識別し、識別した次元数nを用いて、秘密鍵Vと公開鍵Bとを算出することとしてもよい。   That is, as shown in FIG. 5 and FIG. 6, the encryption key generation device 1 can identify the bit length t with which the probability of successful decryption is p or less in an arbitrary number of dimensions n when holding the coefficient c. it can. For this reason, the encryption key generation device 1 identifies the bit length t with which the probability of successful decryption is p or less in an arbitrary number of dimensions n using the coefficient c held, and uses the identified bit length to identify the secret key V and The public key B may be calculated. Similarly, the encryption key generation device 1 identifies the number of dimensions n having a probability of successful decryption of p or less at an arbitrary bit length t using the coefficient c that is held, and uses the identified number of dimensions n to identify the secret key. V and public key B may be calculated.

(3)秘密鍵Vと公開鍵Bについて
上述した暗号鍵生成装置1は、各要素がビット長t以下となるランダムな整数であるn次元の乱数ベクトルvと式(1)とを用いて、秘密鍵Vを生成した。しかし、実施例はこれに限定されるものではない。
(3) About the private key V and the public key B The encryption key generation device 1 described above uses an n-dimensional random number vector v, which is a random integer in which each element is a bit length t or less, and Equation (1), A secret key V is generated. However, the embodiment is not limited to this.

例えば、暗号鍵生成装置1は、終結式res(x+1、v)の解が、ビット長t以下の十分に小さい整数sと任意の素数pとの積となるように乱数ベクトルvを生成する。そして、暗号鍵生成装置1は、生成した乱数ベクトルvと式(1)とを用いて、秘密鍵Vを生成することとしてもよい。 For example, the encryption key generation device 1 generates the random vector v so that the solution of the termination formula res (x n +1, v) is a product of a sufficiently small integer s having a bit length t or less and an arbitrary prime number p. To do. Then, the encryption key generation device 1 may generate the secret key V using the generated random number vector v and Equation (1).

(4)プログラム
ところで、実施例1に係る暗号鍵生成装置1は、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムを構成情報管理装置、又は、補完装置が有するコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図10を用いて、実施例1に示した暗号鍵生成装置1と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図10は、暗号鍵生成プログラムを実行するコンピュータの一例を説明するための図である。
(4) Program The encryption key generation apparatus 1 according to the first embodiment has been described with reference to the case where various processes are realized using hardware. However, the embodiment is not limited to this, and may be realized by executing a program prepared in advance by a computer included in the configuration information management apparatus or the complementing apparatus. Therefore, in the following, an example of a computer that executes a program having the same function as that of the encryption key generation device 1 described in the first embodiment will be described with reference to FIG. FIG. 10 is a diagram illustrating an example of a computer that executes an encryption key generation program.

図10に例示されたコンピュータ100は、ROM(Read Only Memory)110、HDD(Hard Disk Drive)120、RAM(Random Access Memory)130、CPU(Central Processing Unit)140がバス160で接続される。また、コンピュータ100は、他のコンピュータと通信を行うためのI/O(Input Output)150がバス160で接続される。   In the computer 100 illustrated in FIG. 10, a ROM (Read Only Memory) 110, an HDD (Hard Disk Drive) 120, a RAM (Random Access Memory) 130, and a CPU (Central Processing Unit) 140 are connected by a bus 160. In addition, the computer 100 is connected to an I / O (Input Output) 150 for communicating with other computers via a bus 160.

RAM130には、暗号鍵生成プログラム131が記憶されており、CPU140が読み出して実行することによって、図10に示す例では、暗号鍵生成プロセス141として機能するようになる。なお、暗号鍵生成プロセス141は、図1に示す暗号鍵生成装置1が有する暗号パラメータ生成部10、安全性判定部11、暗号鍵生成部12と同様の機能を発揮する。   In the RAM 130, an encryption key generation program 131 is stored. When the CPU 140 reads and executes the program, the RAM 130 functions as the encryption key generation process 141 in the example shown in FIG. The encryption key generation process 141 exhibits the same functions as the encryption parameter generation unit 10, the security determination unit 11, and the encryption key generation unit 12 included in the encryption key generation device 1 illustrated in FIG.

なお、本実施例で説明した暗号鍵生成プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM(Compact Disc Read Only Memory)、MO(Magneto Optical Disc)、DVD(Digital Versatile Disc)などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。   The encryption key generation program described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. This program can be distributed via a network such as the Internet. The program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk (FD), a CD-ROM (Compact Disc Read Only Memory), an MO (Magneto Optical Disc), a DVD (Digital Versatile Disc). The The program can also be executed by being read from a recording medium by a computer.

1 暗号鍵生成装置
2 入力装置
3 出力装置
10 暗号パラメータ生成部
11 安全性判定部
12 暗号鍵生成部
DESCRIPTION OF SYMBOLS 1 Encryption key generation apparatus 2 Input device 3 Output apparatus 10 Encryption parameter generation part 11 Security determination part 12 Encryption key generation part

Claims (11)

暗号鍵と公開鍵とを生成する暗号鍵生成装置が実行する暗号鍵生成方法において、
暗号鍵として用いられる行列の次元数と当該行列の各要素のビット長とを用いて、格子縮約アルゴリズムのエルミートファクタとキーパラメータとを算出し、
格子縮約攻撃の成功率が所定の値以下となる次元数とビット長から算出される係数と当該算出したエルミートファクタとの積が、当該算出したキーパラメータよりも大きいか否かを判別し、
前記エルミートファクタと前記係数との積が前記キーパラメータよりも大きいと判別した場合には、前記選択した次元数とビット長とを用いて、暗号鍵を生成する
処理を前記暗号鍵生成装置が実行することを特徴とする暗号鍵生成方法。
In an encryption key generation method executed by an encryption key generation device that generates an encryption key and a public key,
Using the number of dimensions of the matrix used as the encryption key and the bit length of each element of the matrix, calculate the Hermitian factor and key parameters of the lattice reduction algorithm,
Determining whether the product of the coefficient calculated from the number of dimensions and the bit length at which the success rate of the lattice contraction attack is a predetermined value or less and the calculated Hermitian factor is greater than the calculated key parameter;
If it is determined that the product of the Hermitian factor and the coefficient is larger than the key parameter, the encryption key generation device executes a process of generating an encryption key using the selected number of dimensions and bit length An encryption key generation method characterized by:
前記エルミートファクタと前記係数との積が前記キーパラメータよりも小さいと判別した場合には、前回選択したビット長から1デクリメントしたビット長を新たに選択しなおす処理を前記暗号鍵生成装置がさらに実行することを特徴とする請求項1に記載の暗号鍵生成方法。   If it is determined that the product of the Hermitian factor and the coefficient is smaller than the key parameter, the encryption key generation device further executes a process of newly selecting a bit length decremented by 1 from the previously selected bit length. The encryption key generation method according to claim 1, wherein: 前記エルミートファクタと前記係数との積が前記キーパラメータよりも小さいと判別した場合には、前回選択した次元数から1インクリメントした次元数を新たに選択しなおす処理を前記暗号鍵生成装置がさらに実行することを特徴とする請求項1に記載の暗号鍵生成方法。   If it is determined that the product of the Hermitian factor and the coefficient is smaller than the key parameter, the encryption key generation device further executes a process of newly selecting a dimension number incremented by 1 from the dimension number selected last time. The encryption key generation method according to claim 1, wherein: 格子縮約攻撃の成功率が所定の値以下となる次元数とビット長とを用いて、格子縮約アルゴリズムのエルミートファクタとキーパラメータとを算出し、当該算出したキーパラメータを当該算出したエルミートファクタで除算することで、前記係数を導出する処理を前記暗号鍵生成装置がさらに実行し、
前記選択した次元数とビット長とを用いて、前記エルミートファクタとキーパラメータとを算出し、前記導出した係数と当該算出したエルミートファクタとの積が、当該算出したキーパラメータよりも大きいか否かを判別することを特徴とする請求項1〜3のいずれか1つに記載の暗号鍵生成方法。
The Hermitian factor and key parameter of the lattice contraction algorithm are calculated using the number of dimensions and the bit length at which the success rate of the lattice contraction attack is a predetermined value or less, and the calculated key parameter is calculated as the calculated Hermitian factor. The encryption key generation device further executes a process of deriving the coefficient by dividing by
The Hermite factor and the key parameter are calculated using the selected number of dimensions and the bit length, and whether the product of the derived coefficient and the calculated Hermite factor is larger than the calculated key parameter The encryption key generation method according to any one of claims 1 to 3, wherein the encryption key generation method is determined.
ランダムに選択した次元数とビット長とを用いて、前記所定の値の逆数と同数の暗号鍵候補を生成し、当該生成した暗号鍵候補に対する格子縮約攻撃を行うことで、前記格子縮約攻撃の成功率が所定の値以下となる次元数とビット長とを算出する処理を前記暗号鍵生成装置がさらに実行し、
前記算出した前記格子縮約攻撃の成功率が所定の値以下となる次元数とビット長とを用いて、前記係数を導出することを特徴とする請求項4に記載の暗号鍵生成方法。
Using the randomly selected number of dimensions and bit length, generating the same number of encryption key candidates as the reciprocal of the predetermined value, and performing the lattice contraction attack on the generated encryption key candidates, the lattice contraction The encryption key generation device further executes a process of calculating the number of dimensions and the bit length at which the attack success rate is equal to or less than a predetermined value,
5. The encryption key generation method according to claim 4, wherein the coefficient is derived using a number of dimensions and a bit length at which the calculated success rate of the lattice contraction attack is a predetermined value or less.
前記格子縮約攻撃の成功率が所定の値以下となる次元数とビット長とを算出する際に、LLLアルゴリズムを用いた格子縮約攻撃を行うことを特徴とする請求項5に記載の暗号鍵生成方法。   6. The encryption according to claim 5, wherein a lattice contraction attack using an LLL algorithm is performed when calculating the number of dimensions and the bit length at which the success rate of the lattice contraction attack is a predetermined value or less. Key generation method. 前記格子縮約攻撃の成功率が所定の値以下となる次元数とビット長とを算出する際に、BKZアルゴリズムを用いた格子縮約攻撃を行うことを特徴とする請求項5に記載の暗号鍵生成方法。   6. The encryption according to claim 5, wherein a lattice contraction attack using a BKZ algorithm is performed when calculating the number of dimensions and the bit length at which the success rate of the lattice contraction attack is a predetermined value or less. Key generation method. 格子縮約攻撃の成功率が所定の値以下となる次元数とビット長とを用いてあらかじめ導出された前記係数を保持する処理を前記暗号鍵生成装置がさらに実行し、
前記保持した係数と前記算出したエルミートファクタとの積が、前記算出したキーパラメータよりも大きいか否かを判別することを特徴とする請求項1〜3のいずれか1つに記載の暗号鍵生成方法。
The cryptographic key generation apparatus further executes a process of holding the coefficient derived in advance using the number of dimensions and the bit length at which the success rate of the lattice contraction attack is a predetermined value or less,
4. The encryption key generation according to claim 1, wherein it is determined whether or not a product of the held coefficient and the calculated Hermite factor is larger than the calculated key parameter. Method.
前記エルミートファクタと前記係数との積が前記キーパラメータよりも大きいと判別した場合には、前記選択した次元数の乱数ベクトルであって、前記選択したビット長以下の整数と、任意の素数との積を判別式の解とする乱数ベクトルを算出し、当該算出した乱数ベクトルを用いて、暗号鍵を生成する処理を実行することを特徴とする請求項1〜8のいずれか1つに記載の暗号鍵生成方法。   If it is determined that the product of the Hermitian factor and the coefficient is greater than the key parameter, the random vector of the selected number of dimensions, the integer less than the selected bit length, and an arbitrary prime number The random number vector which makes a product a discriminant solution is calculated, The process which produces | generates an encryption key is performed using the calculated random number vector, The description of any one of Claims 1-8 characterized by the above-mentioned. Encryption key generation method. 暗号鍵として用いられる行列の次元数と当該行列の各要素のビット長とを選択する選択部と、
前記選択部が選択した次元数とビット長とを用いて、格子縮約アルゴリズムのエルミートファクタとキーパラメータとを算出し、格子縮約攻撃の成功率が所定の値以下となる次元数とビット長から算出される係数と前記算出したエルミートファクタとの積が、当該算出したキーパラメータよりも大きいか否かを判別する判別部と、
前記判別部が、前記エルミートファクタと前記係数との積が前記キーパラメータよりも大きいと判別した場合には、前記選択部が選択した次元数とビット長とを用いて、暗号鍵を生成する生成部と
を有することを特徴とする暗号鍵生成装置。
A selection unit that selects the number of dimensions of a matrix used as an encryption key and the bit length of each element of the matrix;
Using the number of dimensions and the bit length selected by the selection unit, the Hermitian factor and key parameters of the lattice reduction algorithm are calculated, and the number of dimensions and the bit length at which the success rate of the lattice reduction attack is a predetermined value or less. A determination unit for determining whether a product of the coefficient calculated from the calculated Hermite factor is larger than the calculated key parameter;
When the determination unit determines that the product of the Hermitian factor and the coefficient is larger than the key parameter, the generation unit generates an encryption key using the number of dimensions and the bit length selected by the selection unit And an encryption key generation device.
暗号鍵と公開鍵とを生成するコンピュータに処理を実行させるための暗号鍵生成プログラムであって、
前記コンピュータに、
暗号鍵として用いられる行列の次元数と当該行列の各要素のビット長とを選択し、
前記選択した次元数とビット長とを用いて、格子縮約アルゴリズムのエルミートファクタとキーパラメータとを算出し、
格子縮約攻撃の成功率が所定の値以下となる次元数とビット長から算出される係数と前記算出したエルミートファクタとの積が、前記算出したキーパラメータよりも大きいか否かを判別し、
前記エルミートファクタと前記係数との積が前記キーパラメータよりも大きいと判別した場合には、前記選択した次元数とビット長とを用いて、暗号鍵を生成する
処理を実行させることを特徴とする暗号鍵生成プログラム。
An encryption key generation program for causing a computer that generates an encryption key and a public key to execute processing,
In the computer,
Select the number of dimensions of the matrix used as the encryption key and the bit length of each element of the matrix,
Using the selected dimension number and bit length, calculate the Hermitian factor and key parameters of the lattice reduction algorithm,
Determining whether the product of the calculated Hermitian factor and the coefficient calculated from the number of dimensions and the bit length at which the success rate of the lattice contraction attack is a predetermined value or less is greater than the calculated key parameter;
When it is determined that a product of the Hermitian factor and the coefficient is larger than the key parameter, a process for generating an encryption key is executed using the selected number of dimensions and bit length. Encryption key generation program.
JP2012015396A 2012-01-27 2012-01-27 Encryption key generation method, encryption key generation apparatus, and encryption key generation program Expired - Fee Related JP5768732B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012015396A JP5768732B2 (en) 2012-01-27 2012-01-27 Encryption key generation method, encryption key generation apparatus, and encryption key generation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012015396A JP5768732B2 (en) 2012-01-27 2012-01-27 Encryption key generation method, encryption key generation apparatus, and encryption key generation program

Publications (2)

Publication Number Publication Date
JP2013156348A true JP2013156348A (en) 2013-08-15
JP5768732B2 JP5768732B2 (en) 2015-08-26

Family

ID=49051611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012015396A Expired - Fee Related JP5768732B2 (en) 2012-01-27 2012-01-27 Encryption key generation method, encryption key generation apparatus, and encryption key generation program

Country Status (1)

Country Link
JP (1) JP5768732B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112084523A (en) * 2020-09-29 2020-12-15 深圳壹账通智能科技有限公司 Text encryption method and device, terminal equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001282103A (en) * 2000-01-25 2001-10-12 Murata Mach Ltd Ciphering method
JP2004341502A (en) * 2003-04-24 2004-12-02 Matsushita Electric Ind Co Ltd Parameter generation apparatus, encryption system, decryption system, encryption apparatus, decryption apparatus, encryption method, decryption method, and program thereof
JP2006094244A (en) * 2004-09-24 2006-04-06 Fuji Xerox Co Ltd Encryption apparatus, encryption method, and program
JP2011033809A (en) * 2009-07-31 2011-02-17 Kanazawa Inst Of Technology Key generation device, and encryption device and decryption device usable of the key generation device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001282103A (en) * 2000-01-25 2001-10-12 Murata Mach Ltd Ciphering method
JP2004341502A (en) * 2003-04-24 2004-12-02 Matsushita Electric Ind Co Ltd Parameter generation apparatus, encryption system, decryption system, encryption apparatus, decryption apparatus, encryption method, decryption method, and program thereof
JP2006094244A (en) * 2004-09-24 2006-04-06 Fuji Xerox Co Ltd Encryption apparatus, encryption method, and program
JP2011033809A (en) * 2009-07-31 2011-02-17 Kanazawa Inst Of Technology Key generation device, and encryption device and decryption device usable of the key generation device

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSNJ201210001015; 矢嶋 純、安田 雅哉、下山 武司、小暮 淳: '"Gentry準同型暗号に対するBKZ攻撃実験"' 2012年 暗号と情報セキュリティシンポジウム予稿集 2A1-1, 20120130, p.1-6, 2012年 暗号と情報セキュリティシンポジウム実行 *
CSNJ201410008011; 長沼 健、佐藤 尚宜、吉野 雅之、佐藤 嘉則: '"LLL格子基底が最短ベクトルを与える確率について"' 2014年 暗号と情報セキュリティシンポジウム SCIS2014 [CD-ROM] 1C1-3, 20140121, p.1-6, 電子情報通信学会情報セキュリティ研究専門委員会 *
JPN6015005697; 矢嶋 純、安田 雅哉、下山 武司、小暮 淳: '"Gentry準同型暗号に対するBKZ攻撃実験"' 2012年 暗号と情報セキュリティシンポジウム予稿集 2A1-1, 20120130, p.1-6, 2012年 暗号と情報セキュリティシンポジウム実行 *
JPN6015005698; 長沼 健、佐藤 尚宜、吉野 雅之、佐藤 嘉則: '"LLL格子基底が最短ベクトルを与える確率について"' 2014年 暗号と情報セキュリティシンポジウム SCIS2014 [CD-ROM] 1C1-3, 20140121, p.1-6, 電子情報通信学会情報セキュリティ研究専門委員会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112084523A (en) * 2020-09-29 2020-12-15 深圳壹账通智能科技有限公司 Text encryption method and device, terminal equipment and storage medium

Also Published As

Publication number Publication date
JP5768732B2 (en) 2015-08-26

Similar Documents

Publication Publication Date Title
JP6083234B2 (en) Cryptographic processing device
JP6413598B2 (en) Cryptographic processing method, cryptographic processing apparatus, and cryptographic processing program
US9413729B2 (en) Symmetric encryption apparatus and storage medium, and symmetric decryption apparatus and storage medium
Bos et al. Improved security for a ring-based fully homomorphic encryption scheme
KR102251697B1 (en) Encryption apparatus, method for encryption and computer-readable recording medium
EP3068066B1 (en) Private computation on encrypted biometric data using homomorphic encryption
US9374220B2 (en) System and method for providing compressed encryption and decryption in homomorphic encryption based on integers
JP6413743B2 (en) Cryptographic processing apparatus, cryptographic processing method, and cryptographic processing program
JP6421576B2 (en) Cryptographic processing apparatus, cryptographic processing method, and cryptographic processing program
KR101608515B1 (en) Computation Method of encrypted data using Homomorphic Encryption and Public Key Encryption and Server using the same
KR20150073753A (en) Apparatus and methdo for giving the compressed encryption functionality to integer-based homomorphic encryption schemes
JP5852551B2 (en) Functional encryption system, key generation device, encryption device, decryption device, functional encryption method, and program
KR20160131798A (en) Method and system for additive homomorphic encryption scheme with error detection functionality
CN111526002A (en) Lattice-based multi-identity fully homomorphic encryption method
US8526602B2 (en) Adjustment-value-attached block cipher apparatus, cipher generation method and recording medium
JP5732429B2 (en) Secret sharing system, data sharing device, data restoration device, secret sharing method, and program
CN113794561A (en) Public key searchable encryption method and system
KR20150122494A (en) Encryption apparatus, method for encryption, method for decryption and computer-readable recording medium
KR101533950B1 (en) Broadcast encryption method and system
JP5768732B2 (en) Encryption key generation method, encryption key generation apparatus, and encryption key generation program
JP7125857B2 (en) Encryption system, encryption device, decryption device, encryption method, decryption method, and program
KR101523053B1 (en) System and method for verifiably encrypted signatures from lattices
CN106936568B (en) Lattice-based password analysis method and device
JP2017038336A (en) Decryption method
JP2017037281A (en) Encryption device and decryption device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150417

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150526

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150608

R150 Certificate of patent or registration of utility model

Ref document number: 5768732

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees