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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 41
- 239000011159 matrix material Substances 0.000 claims abstract description 58
- 230000008602 contraction Effects 0.000 claims description 92
- 239000013598 vector Substances 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 21
- 230000010365 information processing Effects 0.000 description 29
- 230000005540 biological transmission Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 14
- 239000000284 extract Substances 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Abstract
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=(v0、v1、…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.
また、暗号鍵生成装置は、行列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.
しかしながら、上述した準同型暗号の技術では、次元の数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.
以下に添付図面を参照して本願に係る暗号鍵生成方法、暗号鍵生成装置および暗号鍵生成プログラムについて説明する。 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=(u0、u1、…、un−1)を選択する。次に、送信元の情報処理装置は、フレッシュ暗号文となるベクトルa=2u+be1を生成する。ここでe1は、e1=(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 .
一方、送信先の情報処理装置は、暗号文cを取得した場合には、以下の式(3)を用いて、n次元ベクトルa’を生成する。そして、送信先の情報処理装置は、生成したn次元ベクトルa’の第1成分となるa0’を取得し、取得したa0’を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.
次に、数値例を用いて、秘密鍵と公開鍵とを用いた暗号化および復号化の例を説明する。なお、以下の例では、送信先の情報処理装置が次元数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).
次に、送信元の情報処理装置は、式(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.
一方、送信元の情報処理装置は、成分が「0」または「1」となる4次元の乱数ベクトルとしてu=(1、0、1、1)を選択し、フレッシュ暗号文a=2u+be1=(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.
このような場合には、送信先の情報処理装置は、式(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
入力装置2は、暗号鍵生成装置1に生成させる秘密鍵の次元数nとビット長tと解読成功確率pとを利用者が入力するための装置であり、例えば、キーボードやマウス等の装置である。ここで、解読成功確率pとは、暗号鍵生成装置1に生成させる秘密鍵および公開鍵による暗号化に対して許容する格子縮約攻撃の成功確率を示す。
The
出力装置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
このため、暗号パラメータ生成部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
一方、暗号パラメータ生成部10は、安全性判定部11から格子縮約攻撃の成功率が解読成功確率pよりも大きい旨の通知として「No」を受付けると、新たな次元数nとビット長tとを選択し、新たに選択した次元数nとビット長tと解読成功確率pとを安全性判定部11に通知する。例えば、暗号パラメータ生成部10は、前回通知したビット長tから1デクリメントした値を新たなビット長tとし、安全性判定部11に通知する。
On the other hand, when the encryption
安全性判定部11は、暗号パラメータ生成部10から次元数nとビット長tと解読成功確率pとを取得した場合には、次元数nとビット長tから格子縮約アルゴリズムのエルミートファクタとキーパラメータとを算出する。そして、安全性判定部11は、格子縮約攻撃の成功率がp以下となる次元数n0とビット長t0から算出される係数と算出したエルミートファクタとの積が、算出したキーパラメータよりも大きいか否かを判別する。
When acquiring the dimension number n, the bit length t, and the decryption success probability p from the encryption
その後、安全性判定部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
以下、安全性判定部11が実行する処理を具体的に説明する。まず、安全性判定部11は、暗号パラメータ生成部10から次元数n、ビット長t、解読成功確率pを取得する。すると、安全性判定部11は、次元数nを用いて、格子縮約アルゴリズムのエルミートファクタを算出する。
Hereinafter, the process which the
ここで、エルミートファクタとは、次元数nの行列に対して格子縮約アルゴリズムを用いることにより縮小した基底を示す行列を算出し、算出した行列の各行、又は、各列から求められる最小のノルムを行列の判別式の1/n乗で除算した値である。ここで、ノルムとは、ベクトルの各成分の2乗の和の2乗根となる値である。このようなエルミートファクタは、格子縮約アルゴリズムによりそれぞれ異なる値を有しており、LLLアルゴリズムのエルミートファクタはδ(n)=1.018n、BKZアルゴリズムのエルミートファクタは、δ(n)=1.01nとなることが知られている。 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
また、安全性判定部11は、解読成功確率がp以下となる秘密鍵Vと公開鍵Bとを生成するための次元数n0とビット長t0とを抽出する。次に、安全性判定部11は、抽出した次元数n0とビット長t0とを用いて、エルミートファクタδ(n0)とキーパラメータδ(n0、t0)を算出する。また、安全性判定部11は、算出したエルミートファクタδ(n0)とキーパラメータδ(n0、t0)とから、係数c=δ(n0、t0)/δ(n0)を導出する。そして、安全性判定部11は、次元数nとビット長tとから算出したエルミートファクタとキーパラメータとが、以下の式(8)を満たすか否かを判別する。
Further, the
すなわち、安全性判定部11は、格子縮約攻撃の成功率がp以下となる次元数n0とビット長t0から算出される係数と、暗号パラメータ生成部10から取得した次元数nから算出されるエルミートファクタとの積を算出する。そして、安全性判定部11は、係数とエルミートファクタとの積が、暗号パラメータ生成部10から取得した次元数nとビット長tとから算出されるキーパラメータよりも大きいか否かを判別する。
That is, the
そして、安全性判定部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
ここで、安全性判定部11は、解読成功確率がp以下となる秘密鍵Vと公開鍵Bとを生成するための次元数n0とビット長t0とを任意の方法で抽出し、係数cを算出してよい。例えば、安全性判定部11は、実際に格子縮約攻撃を行うことで、解読成功確率がp以下となる次元数n0とビット長t0とを抽出してもよい。
Here, the
すなわち、安全性判定部11は、次元数の候補となるn’およびビット長の候補となるt’をランダムに選択し、選択した次元数の候補n’およびビット長の候補t’を暗号パラメータ生成部10に送信する。すると、暗号パラメータ生成部10は、次元数の候補n’およびビット長の候補t’を暗号鍵生成部12に通知し、次元数の候補n’およびビット長の候補t’から1/p個のランダムな暗号鍵を生成させる。
That is, the
また、暗号パラメータ生成部10は、次元数の候補n’およびビット長の候補t’から生成させた1/p個の暗号鍵を安全性判定部11に送信する。そして、安全性判定部11は、暗号パラメータ生成部10から受信した暗号鍵に対して格子縮約攻撃を実施し、解読成功確率p’を算出する。
In addition, the encryption
安全性判定部11は、ビット長の候補t’から1をデクリメントした次元数の候補n’および新たなビット長の候補t’−1を暗号パラメータ生成部10に通知し、暗号鍵生成部12に生成させた暗号鍵に対して、再度格子縮約攻撃を実行する。このような処理を繰り返すことで、安全性判定部11は、解読成功確率がp以下となる次元数n0とビット長t0とを抽出してもよい。
The
なお、安全性判定部11は、上述した処理を1度だけ行い、処理結果を記憶してもよい。例えば、安全性判定部11は、上述した処理を格子縮約アルゴリズムおよび解読成功確率pごとにあらかじめ行い、格子縮約アルゴリズムごとに、解読成功確率pと、係数cとを対応付けて記憶する。そして、安全性判定部11は、暗号パラメータ生成部10から通知された解読成功確率pと対応付けられた係数cを用いて式(8)を満たすか否かを判別してもよい。
The
このような場合には、安全性判定部11は、次元数nおよびビット長tから生成する暗号鍵が格子縮約攻撃に対して安全性を有するか否かを、計算資源を浪費することなく、迅速におこなうことができる。なお、例えば、安全性判定部11は、格子縮約攻撃として、LLLアルゴリズムを用いた格子縮約攻撃、または、BKZアルゴリズムを用いた格子縮約攻撃を採用できるが、これ以外にも、任意のアルゴリズムを用いた格子縮約攻撃を採用できる。
In such a case, the
ここで、解読成功確率がp以下となる次元数n0とビット長t0とから算出した係数とエルミートファクタとの積が、キーパラメータよりも大きいか否かを安全性判定部11が判定することで、解読成功確率がp以下か否かを判定できる点について説明する。まず、格子縮約アルゴリズムを用いて格子縮約攻撃を行う情報処理装置が実行する処理について説明する。例えば、情報処理装置は、暗号文cと公開鍵Bとを用いて、式(9)に示す(n+1)×(n+1)行列Cを生成する。
Here, the
ここで、行列Cの行ベクトルを(b0、b1、…、bn)とし、(b0、b1、…、bn)を係数とする線形結合の元a0b0+a1b1+…+anbnのなす集合Sを考える。ここで、a0〜anおよびb0〜bnは、整数であるものとする。また、(b0、b1、…、bn)は行列Cの基底ベクトルであり、集合Sを基底ベクトル(b0、b1、…、bn)が生成する格子と呼ぶ。 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行ベクトルをd0としたとき、d0=(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).
すると、d0=(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ベクトルであるd0のノルムが集合Sの中で最小となる場合には、格子縮約攻撃が成功することとなる。ここで、非特許文献5によると、δ(n、t)>cδ(n)が成り立つ場合には、d0のノルムが集合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
ここで、係数cは、解読成功確率pの値と格子縮約アルゴリズムの種類のみに依存する値である。また、δ(nb、tb)=cδ(nb)を満たす(nb、tb)を安全な入力パラメータ(n、t)の境界値とすると、次元数nを固定した際に、t≦tbを満たすビット長を用いて生成される暗号鍵の解読成功確率が同じ傾向を有する。また、次元数tを固定した際に、n≧nbを満たす次元数を用いて生成される暗号鍵の解読成功確率が同じ傾向を有する。 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
次に、図を用いて、次元数nを固定した際に、t≦tbを満たすビット長で暗号鍵の解読成功確率が同じ傾向を有する点、および、次元数tを固定した際に、n≧nbを満たす次元数で生成される暗号鍵の解読成功確率が同じ傾向を有する点について説明する。なお、以下の説明では、図2〜図4を用いて、格子縮約攻撃による解読成功確率の平均について説明し、その後、図5、図6を用いて、係数c=δ(n0、t0)/δ(n0)から求められる安全な次元数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以下となる次元数n0およびビット長t0を抽出し、抽出した次元数n0およびビット長t0を用いて係数cを算出する。そして、安全性判定部11は、算出した係数cと式(8)を用いることにより、暗号パラメータ生成部10から通知された次元数nおよびビット長tから生成される暗号鍵の解読成功確率がp未満か否かを判別することができる。
As described above, the
図1に戻って、暗号鍵生成部12は、安全性判定部11が、次元数nとビット長tとから生成される暗号鍵の解読成功確率がp以下となる場合には、暗号鍵を生成する。具体的には、暗号鍵生成部12は、安全性判定部11が次元数nとビット長tとから生成される暗号鍵の解読成功確率がp以下となると判別した場合には、暗号パラメータ生成部10から次元数nとビット長tとを取得する。
Returning to FIG. 1, the encryption
このような場合には、暗号鍵生成部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
次に、数値例を用いて、暗号鍵生成装置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以下となる(n0,t0)を抽出する。例えば、安全性判定部11は、ランダムに選択した(n’、t’)=(256、4)を用いて暗号鍵の候補を生成し、生成した候補に対して格子縮約攻撃を行う処理を、1/p=1000回実行し、何回解読に成功したかを記録する。次に、安全性判定部11は、(n’、t’)=(256、3)として同様の格子縮約攻撃を行い、攻撃成功確率がp=0.1以下となるt0が得られるまで繰り返す。
In such a case, the
この結果、安全性判定部11は、n’=256の際に解読成功確率pが0.1以下となるt’がt’<5であると判別する。この結果、安全性判定部11は、n0=256、t0=5を抽出する。次に、安全性判定部11は、式(7)に(n0、t0)を代入してキーパラメータδ(n0、t0)=7.758を算出する。また、安全性判定部11は、n0=256を用いて、LLLアルゴリズムのエルミートファクタδ(n0)=96.257を算出する。この結果、安全性判定部11は、係数c=δ(n0、t0)/δ(n0)=0.08を算出する。
As a result, the
次に、安全性判定部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
このような場合には、暗号パラメータ生成部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
このように、暗号鍵生成装置1は、次元数nとビット長tとを用いて、格子縮約アルゴリズムのエルミートファクタとキーパラメータとを算出する。また、暗号鍵生成装置1は、解読成功確率がp以下となる次元数n0とビット長t0から算出する係数と、次元数nから算出するエルミートファクタとの積が、次元数nとビット長tとから算出するキーパラメータより大きいか否かを判別する。そして、暗号鍵生成装置1は、次元数n0とビット長t0から算出する係数と、次元数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
次に、図を用いて、暗号鍵生成装置1が有する暗号パラメータ生成部10、安全性判定部11、暗号鍵生成部12が実行する処理の流れについて説明する。まず、図7を用いて、暗号パラメータ生成部10が実行する処理の流れについて説明する。
Next, the flow of processing executed by the encryption
図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
そして、暗号パラメータ生成部10は、安全性判定部11の出力が「Yes」であるか否かを判別し(ステップS103)、Yesである場合には(ステップS103肯定)、次元数nとビット長tを暗号鍵生成部12に出力する(ステップS104)。その後、暗号パラメータ生成部10は、暗号鍵生成部12が生成した秘密鍵Vと暗号鍵Bを出力し(ステップS105)、処理を終了する。
Then, the encryption
一方、暗号パラメータ生成部10は、安全性判定部11の出力が「No」である場合には(ステップS103否定)、異なる次元数n、または、ビット長tを選択する(ステップS106)。そして、暗号パラメータ生成部10は、ステップS102の処理を実行する。
On the other hand, when the output of the
次に、図8を用いて、安全性判定部11が実行する処理の流れについて説明する。図8は、安全性判定部が実行する処理の流れを説明するためのフローチャートである。例えば、図8に示す例では、安全性判定部11は、暗号パラメータ生成部10から次元数n、ビット長t、解読成功確率pを取得する(ステップS201)。次に、安全性判定部11は、解読成功確率がp以下となるδ(n0、t0)を導出する(ステップS202)。
Next, the flow of processing executed by the
また、安全性判定部11は、係数c=δ(n0、t0)/δ(n0)を算出する(ステップS203)。また、安全性判定部11は、ステップS201で取得した次元数nとビット長tとを用いて、エルミートファクタδ(n)とキーパラメータδ(n、t)を算出する(ステップS204)。そして、安全性判定部11は、cδ(n)−δ(n、t)>0を満たすか否かを判別する(ステップS205)。
Further, the
その後、安全性判定部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
次に、図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
そして、暗号鍵生成部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
上述したように、暗号鍵生成装置1は、選択した次元数nとビット長tとを用いて、格子縮約アルゴリズムのエルミートファクタδ(n)とキーパラメータδ(n、t)を算出する。また、暗号鍵生成装置1は、解読成功確率がp以下となる次元数n0とビット長t0から係数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以下となる次元数n0とビット長t0から係数c=δ(n0、t0)/δ(n0)を算出し、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以下となる次元数n0とビット長t0とを算出する。 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以下となる次元数n0とビット長t0とを算出することで、係数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以下となる次元数n0とビット長t0とを算出する。このため、暗号鍵生成装置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’に基づいて、次元数n0およびビット長t0を算出し、算出した次元数n0およびビット長t0から係数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と比較して小さな次元数n0およびビット長t0から係数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以下となる次元数n0とビット長t0から係数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
例えば、暗号鍵生成装置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
そして、暗号パラメータ生成部10は、ランダムに生成した次元数nおよびビット長tから生成される暗号鍵の解読成功確率がp以上となる場合、すなわち、安全性判定部11から「No」を受信した場合には、ビット長tから1をデクリメントする。そして、暗号パラメータ生成部10は、次元数nとビット長(t−1)を安全性判定部11に出力する。以上の処理を繰り返すことで、暗号鍵生成装置1は、次元数nおよびビット長tの指定を取得せずとも、解読成功確率がp以下となる秘密鍵Vと公開鍵Bとを生成することができる。
The encryption
また、暗号鍵生成装置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
以下、数値を用いた具体例を説明する。例えば、暗号鍵生成装置1は、入力装置2から、要求される次元数n、解読成功確率pとして(n、p)=(1024、0.1)を取得する。このような場合には、安全性判定部11は、解読成功確率が0.1以下となる(n0,t0)を抽出する。
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
例えば、安全性判定部11は、ランダムに選択した(n’、t’)=(256、4)を用いて暗号鍵の候補を生成し、生成した候補に対して格子縮約攻撃を行う処理を、1/p=1000回実行し、何回解読に成功したかを記録する。次に、安全性判定部11は、(n’、t’)=(256、3)として同様の格子縮約攻撃を行い、攻撃成功確率がp=0.1以下となるt0が得られるまで繰り返す。
For example, the
この結果、安全性判定部11は、n’=256の際に解読成功確率pが0.1以下となるt’がt’<5であると判別する。この結果、安全性判定部11は、n0=256、t0=5を抽出する。次に、安全性判定部11は、式(7)に(n0、t0)を代入してキーパラメータδ(n0、t0)=7.758を算出する。また、安全性判定部11は、n0=256を用いて、LLLアルゴリズムのエルミートファクタδ(n0)=96.257を算出する。この結果、安全性判定部11は、係数c=δ(n0、t0)/δ(n0)=0.08を算出する。
As a result, the
次に、暗号パラメータ生成部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
このような場合には、暗号パラメータ生成部10は、tの値を1デクリメントし、n=1024、t=24を通知することとなる。このような処理を継続すると、安全性判定部11は、n=1024、t=24となった際に、cδ(n)−δ(n、t)=−1254893となるので、式(8)を満たさないと判別する。
In such a case, the encryption
このため、暗号パラメータ生成部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
さらに、暗号鍵生成装置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
一方、暗号鍵生成装置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
以上の処理を繰り返し、安全性判定部11が「Yes」を出力した場合には、暗号パラメータ生成部10は、安全性判定部11に入力した次元数とビット長tと解読成功確率pとを暗号鍵生成部12に入力することとしてもよい。また、暗号パラメータ生成部10は、cδ(n)がδ(n、t)よりも小さい場合には、前回選択した次元数nを2倍にした値を新たな次元数nとして選択しても良い。
When the above process is repeated and the
以下、数値を用いた具体例を説明する。なお、以下の説明においては、安全性判定部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
すると、安全性判定部11は、cδ(n)−δ(n、t)=−96408254051576となるため、「No」を出力する。このような場合には、暗号パラメータ生成部10は、次元数n’を2倍し、n’=1024として、安全性判定部11に入力する。すると、安全性判定部11は、cδ(n)−δ(n、t)=−136275393938182となるため、「No」を出力する。
Then, the
この結果、暗号パラメータ生成部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
このように、暗号鍵生成装置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を満たす次元数n0とビット長t0から係数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(xn+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
RAM130には、暗号鍵生成プログラム131が記憶されており、CPU140が読み出して実行することによって、図10に示す例では、暗号鍵生成プロセス141として機能するようになる。なお、暗号鍵生成プロセス141は、図1に示す暗号鍵生成装置1が有する暗号パラメータ生成部10、安全性判定部11、暗号鍵生成部12と同様の機能を発揮する。
In the
なお、本実施例で説明した暗号鍵生成プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(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
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〜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.
前記保持した係数と前記算出したエルミートファクタとの積が、前記算出したキーパラメータよりも大きいか否かを判別することを特徴とする請求項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.
前記選択部が選択した次元数とビット長とを用いて、格子縮約アルゴリズムのエルミートファクタとキーパラメータとを算出し、格子縮約攻撃の成功率が所定の値以下となる次元数とビット長から算出される係数と前記算出したエルミートファクタとの積が、当該算出したキーパラメータよりも大きいか否かを判別する判別部と、
前記判別部が、前記エルミートファクタと前記係数との積が前記キーパラメータよりも大きいと判別した場合には、前記選択部が選択した次元数とビット長とを用いて、暗号鍵を生成する生成部と
を有することを特徴とする暗号鍵生成装置。 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.
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)
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)
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 |
-
2012
- 2012-01-27 JP JP2012015396A patent/JP5768732B2/en not_active Expired - Fee Related
Patent Citations (4)
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)
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)
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 |