JP2021081591A - Safety evaluation device, safety evaluation method, and safety evaluation program - Google Patents

Safety evaluation device, safety evaluation method, and safety evaluation program Download PDF

Info

Publication number
JP2021081591A
JP2021081591A JP2019209072A JP2019209072A JP2021081591A JP 2021081591 A JP2021081591 A JP 2021081591A JP 2019209072 A JP2019209072 A JP 2019209072A JP 2019209072 A JP2019209072 A JP 2019209072A JP 2021081591 A JP2021081591 A JP 2021081591A
Authority
JP
Japan
Prior art keywords
vector
lattice
safety evaluation
dimension
cyclotomic polynomial
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
JP2019209072A
Other languages
Japanese (ja)
Other versions
JP7146722B2 (en
Inventor
真太郎 成定
Shintaro Narisada
真太郎 成定
清本 晋作
Shinsaku Kiyomoto
晋作 清本
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.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2019209072A priority Critical patent/JP7146722B2/en
Publication of JP2021081591A publication Critical patent/JP2021081591A/en
Application granted granted Critical
Publication of JP7146722B2 publication Critical patent/JP7146722B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

To provide a safety evaluation device, a safety evaluation method, and a safety evaluation program that are capable of accelerating even at a more general dimension, with respect to an ideal lattice in which a dimension capable of accelerating the solution of an SVP has been previously limited.SOLUTION: A safety evaluation device 1 comprises, with respect to the dimension n of an ideal lattice in lattice cryptography that is a safety evaluation target; a selection unit 11 for selecting an odd prime and a cyclotomic polynomial subscript m; and a solution unit 12 for repeating a predetermined number of vector generations and reductions with the use of a rotational operation of a vector derived from a relational expression of a cyclotomic polynomial term number t.SELECTED DRAWING: Figure 5

Description

本発明は、格子暗号の安全性を評価するための装置、方法及びプログラムに関する。 The present invention relates to devices, methods and programs for evaluating the security of lattice-based cryptography.

従来、格子暗号の安全性を評価するにあたって、最短ベクトル問題(SVP:Shortest Vector Problem)の求解時間が指標として用いられている。
非特許文献1では、SVPの高速求解アルゴリズムであるGauss Sieveアルゴリズムが提案された。非特許文献2では、イデアル格子という特殊な格子に関して、ローテーション操作によってベクトルの生成が高速に実現できる条件として、ベクトルの次元が2の冪乗となる場合を示し、円分多項式が既約2項式で定義されるAnti−cyclic格子として提案された。さらに、特許文献1、2及び非特許文献3において、ベクトルの次元が2の冪乗と3の冪乗との積である場合にアルゴリズムを高速化できる、既約3項式で定義されるTrinomial格子が提案された。
Conventionally, in evaluating the security of lattice-based cryptography, the solution time of the shortest vector problem (SVP: Shortest Vector Problem) has been used as an index.
In Non-Patent Document 1, the Gauss Seeve algorithm, which is a high-speed solution algorithm for SVP, has been proposed. Non-Patent Document 2 shows a case where the dimension of a vector is a power of 2 as a condition that vector generation can be realized at high speed by a rotation operation with respect to a special lattice called an ideal lattice, and the cyclotomic polynomial is an irreducible binomial. It was proposed as an Anti-cyclolic lattice defined by the formula. Further, in Patent Documents 1 and 2 and Non-Patent Document 3, the Trinomial defined by the irreducible trinomial can speed up the algorithm when the dimension of the vector is the product of the power of 2 and the power of 3. A grid was proposed.

イデアル格子を用いた格子暗号の1つとして、次世代公開鍵暗号の候補であるNTRU暗号(非特許文献4参照)がある。より高速なアルゴリズムを用いて暗号に対する攻撃者の計算限界を評価することで、暗号の安全性評価が実施される。これらのアルゴリズムが高速であるほど、暗号の安全性に対するより詳細な評価が可能となる。 As one of the lattice-based cryptosystems using the ideal lattice, there is NTRU encryption (see Non-Patent Document 4), which is a candidate for next-generation public key cryptography. Cryptographic security assessments are performed by assessing the attacker's computational limits on cryptography using faster algorithms. The faster these algorithms are, the more detailed the evaluation of cryptographic security is possible.

特開2015−1555号公報Japanese Unexamined Patent Publication No. 2015-1555 特開2014−186097号公報Japanese Unexamined Patent Publication No. 2014-186097

D. Micciancio and P. Voulgaris. Faster exponential time algorithms for the shortest vector problem. In Proceedings of the Twenty−first Annual ACM−SIAM Symposium on Discrete Algorithms, SODA ’10, pp. 1468−1480. Society for Industrial and Applied Mathematics, 2010.D. Micciancio and P.M. Voulgaris. Faster exponental time algorithm algorithms for the shortest vector problem. In Proceedings of the Twenty-first Annual ACM-SIAM Symposium on Discrete Algorithms, SODA '10, pp. 1468-1480. Society for Industrial and Applied Mathematics, 2010. M. Schneider. Sieving for shortest vectors in ideal lattices. In Progress in Cryptology − AFRICACRYPT 2013, pp. 375−391. Springer, 2013.M. Schneider. Sieve for shortest vectors in ideal lattices. In Progress in Cryptography-AFRICACRYPT 2013, pp. 375-391. Springer, 2013. T. Ishiguro, S. Kiyomoto, Y. Miyake, and T. Takagi. Parallel gauss sieve algorithm: Solving the svp challenge over a 128−dimensional ideal lattice. In Public−Key Cryptography − PKC 2014, pp. 411−428. Springer, 2014.T. Ishiguro, S.M. Kiyomoto, Y. Miyake, and T.M. Takagi. Parallel gauss sieve algorithm: Solving the svp challenge over a 128-dimensional ideal algorithm. In Public-Key Cryptography-PKC 2014, pp. 411-428. Springer, 2014. J. Hoffstein, J. Pipher, and J. Silverman. NTRU: A ring−based public key cryptosystem. In Algorithmic Number Theory, pp. 267−288. Springer, 1998.J. Hoffstein, J.M. Piper, and J. et al. Silverman. NTRU: Ring-based public key cryptosystem. In Algorithmic Number Theory, pp. 267-288. Springer, 1998.

しかしながら、非特許文献2のアルゴリズムがローテーション操作によって高速化できるベクトルの次元nは、円分多項式が既約2項式又は既約3項式で定義されるn=2又はn=2の場合に限られていた。 However, the dimension n of the vector that the algorithm of Non-Patent Document 2 can be accelerated by the rotation operation is n = 2 a or n = 2 a 3 in which the cyclotomic polynomial is defined by the irreducible binomial or the irreducible trinomial. It was limited to the case of b.

本発明は、これまではSVPの求解を高速化できる次元が限定的であったイデアル格子に対して、より一般的な次元でも高速化が可能な安全性評価装置、安全性評価方法及び安全性評価プログラムを提供することを目的とする。 The present invention has a safety evaluation device, a safety evaluation method, and safety that can speed up the solution of SVP even in a more general dimension, as opposed to an ideal lattice that can speed up the solution of SVP. The purpose is to provide an evaluation program.

本発明に係る安全性評価装置は、安全性の評価対象である格子暗号におけるイデアル格子の次元nに対して、m=p(b≧1)及びn=pb−1(p−1)、又はm=2・p(a≧1,b≧1)及びn=2a−1・pb−1(p−1)を満たす奇素数p、及び円分多項式の添字mを選択する選択部と、前記円分多項式の項数t=pの関係から導出されるベクトルのローテーションを用いて、所定回のベクトル生成及び縮約を繰り返す求解部と、を備える。 The security evaluation device according to the present invention has m = p b (b ≧ 1) and n = p b-1 (p-1) with respect to the dimension n of the ideal lattice in the lattice code to be evaluated for security. , Or select an ideal number p that satisfies m = 2 a · p b (a ≧ 1, b ≧ 1) and n = 2 a-1 · p b-1 (p-1), and the subscript m of the cyclotomic polynomial. A selection unit to be used and a solution unit that repeats vector generation and contraction a predetermined number of times by using the rotation of the vector derived from the relation of the number of terms t = p of the cyclotomic polynomial.

本発明に係る安全性評価装置は、安全性の評価対象である格子暗号におけるイデアル格子の次元nに対して、m=p・q(b≧1,c≧1)及びn=pb−1(p−1)・qc−1(q−1)、又はm=2・p・q(a≧1,b≧1,c≧1)及びn=2a−1・pb−1(p−1)・qc−1(q−1)を満たす2つの奇素数p及びq、並びに円分多項式の添字mを選択する選択部と、前記円分多項式の項数tが整数kを用いて、t=2k(p−1)+1及びq=pk+1、t=2k(p−1)+2p−3及びq=p(k+1)−1、t=(1/2)k(p−1)+p及びq=pk+2、又はt=(1/2)(k+1)(p−1)−p及びq=p(k+1)−2のいずれかの関係であることから導出されるベクトルのローテーションを用いて、所定回のベクトル生成及び縮約を繰り返す求解部と、を備える。 The security evaluation device according to the present invention has m = p b · q c (b ≧ 1, c ≧ 1) and n = p b with respect to the dimension n of the ideal lattice in the lattice code to be evaluated for security. -1 (p-1) · q c-1 (q-1), or m = 2 a · p b · q c (a ≧ 1, b ≧ 1, c ≧ 1) and n = 2 a-1 · Two odd prime numbers p and q that satisfy p b-1 (p-1) and q c-1 (q-1), a selection unit that selects the subscript m of the cyclotomic polynomial, and the number of terms of the cyclotomic polynomial. Using the integer k, t = 2k (p-1) + 1 and q = pk + 1, t = 2k (p-1) + 2p-3 and q = p (k + 1) -1, t = (1/2) k (p 2 -1) + p and q = pk + 2, or t = (1/2) (k + 1) since (p 2 -1) is any relationship between -p and q = p (k + 1) -2 It includes a solution unit that repeats vector generation and reduction a predetermined number of times by using the rotation of the derived vector.

本発明に係る安全性評価方法は、安全性の評価対象である格子暗号におけるイデアル格子の次元nに対して、m=p(b≧1)及びn=pb−1(p−1)、又はm=2・p(a≧1,b≧1)及びn=2a−1・pb−1(p−1)を満たす奇素数p、及び円分多項式の添字mを選択する選択ステップと、前記円分多項式の項数t=pの関係から導出されるベクトルのローテーションを用いて、所定回のベクトル生成及び縮約を繰り返す求解ステップと、をコンピュータが実行する。 The security evaluation method according to the present invention has m = p b (b ≧ 1) and n = p b-1 (p-1) with respect to the dimension n of the ideal lattice in the lattice code to be evaluated for security. , Or select an ideal number p that satisfies m = 2 a · p b (a ≧ 1, b ≧ 1) and n = 2 a-1 · p b-1 (p-1), and the subscript m of the cyclotomic polynomial. The computer executes a selection step to be performed and a solution step in which vector generation and reduction are repeated a predetermined number of times by using the rotation of the vector derived from the relation of the number of terms t = p of the cyclotomic polynomial.

本発明に係る安全性評価方法は、安全性の評価対象である格子暗号におけるイデアル格子の次元nに対して、m=p・q(b≧1,c≧1)及びn=pb−1(p−1)・qc−1(q−1)、又はm=2・p・q(a≧1,b≧1,c≧1)及びn=2a−1・pb−1(p−1)・qc−1(q−1)を満たす2つの奇素数p及びq、並びに円分多項式の添字mを選択する選択ステップと、前記円分多項式の項数tが整数kを用いて、t=2k(p−1)+1及びq=pk+1、t=2k(p−1)+2p−3及びq=p(k+1)−1、t=(1/2)k(p−1)+p及びq=pk+2、又はt=(1/2)(k+1)(p−1)−p及びq=p(k+1)−2のいずれかの関係であることから導出されるベクトルのローテーションを用いて、所定回のベクトル生成及び縮約を繰り返す求解ステップと、をコンピュータが実行する。 The security evaluation method according to the present invention has m = p b · q c (b ≧ 1, c ≧ 1) and n = p b with respect to the dimension n of the ideal lattice in the lattice code to be evaluated for security. -1 (p-1) · q c-1 (q-1), or m = 2 a · p b · q c (a ≧ 1, b ≧ 1, c ≧ 1) and n = 2 a-1 · Two odd prime numbers p and q that satisfy p b-1 (p-1) and q c-1 (q-1), a selection step for selecting the subscript m of the cyclotomic polynomial, and the number of terms of the cyclotomic polynomial. Using the integer k, t = 2k (p-1) + 1 and q = pk + 1, t = 2k (p-1) + 2p-3 and q = p (k + 1) -1, t = (1/2) k (p 2 -1) + p and q = pk + 2, or t = (1/2) (k + 1) since (p 2 -1) is any relationship between -p and q = p (k + 1) -2 Using the rotation of the derived vector, the computer executes a solution step that repeats vector generation and reduction a predetermined number of times.

本発明に係る安全性評価プログラムは、前記安全性評価装置としてコンピュータを機能させるためのものである。 The safety evaluation program according to the present invention is for operating a computer as the safety evaluation device.

本発明によれば、これまではSVPの求解を高速化できる次元が限定的であったイデアル格子に対して、より一般的な次元でも高速化が可能となった。 According to the present invention, it has become possible to speed up the solution of SVP even in a more general dimension, as opposed to the ideal lattice, which has been limited in the dimension in which the solution of SVP can be speeded up.

求解アルゴリズムを示す図である。It is a figure which shows the solution algorithm. 縮約関数Reduceのアルゴリズムを示す図である。It is a figure which shows the algorithm of the contraction function Reduse. 縮約関数ReduceRotのアルゴリズムを示す図である。It is a figure which shows the algorithm of the contraction function ReduseRot. 縮約関数ReduceRot2のアルゴリズムを示す図である。It is a figure which shows the algorithm of the contraction function ReduseRot2. 安全性評価装置の機能構成を示すブロック図である。It is a block diagram which shows the functional structure of a safety evaluation apparatus. 縮約関数ReduceRotWiseのアルゴリズムを示す図である。It is a figure which shows the algorithm of the contraction function ReduseRotWise.

以下、本発明の実施形態の一例について説明する。
本実施形態における安全性評価方法では、イデアル格子を用いた格子暗号の安全性を評価するために、SVPを高速に求解するためのイデアル格子の次元に応じた条件を選択し、条件毎に定義されたローテーション操作により、縮約と呼ばれる処理を高速化する。
Hereinafter, an example of the embodiment of the present invention will be described.
In the security evaluation method in the present embodiment, in order to evaluate the security of the lattice-based cryptography using the ideal grid, conditions according to the dimension of the ideal grid for solving the SVP at high speed are selected and defined for each condition. The rotation operation is performed to speed up a process called contraction.

[定義]
m次元のベクトルv=(v,…,vm−1)のユークリッドノルムを‖v‖=√(Σi=0 m−1 )とする。ベクトルu=(u,…,um−1)とv=(v,…,vm−1)との内積を<u,v>=Σi=0 m−1と表す。
n個の一次独立なm次元列ベクトルからなる行列を、B=(b,…,bn−1)∈Rm×nと書く。Bによって生成される格子とは、基底ベクトルb,…,bn−1の整数係数線形結合全体の集合L(B)=L(b,…,bn−1)={Σi=0 n−1|x∈Z}のことである。Bを格子Lの基底という。本実施形態では、n=mかつb∈Zとし、nを格子の次元と呼ぶ。格子L上の非ゼロ最短ベクトルのユークリッドノルムをλ(L)と書く。
最短ベクトル問題(SVP)とは、格子L(B)が与えられたとき、‖v‖=λ(L(B))となるベクトルv∈L(B)を求めることである。
[Definition]
Let the Euclidean norm of the m-dimensional vector v = (v 0 , ..., v m-1 ) be ‖v‖ = √ (Σ i = 0 m-1 v i 2 ). The inner product of the vectors u = (u 0 , ..., u m-1 ) and v = (v 0 , ..., v m-1 ) is <u, v> = Σ i = 0 m-1 u i v i . Represent.
A matrix consisting of n first-order independent m-dimensional column vectors is written as B = (b 0 , ..., b n-1 ) ∈ R m × n . The lattice generated by B is the set of all integer coefficient linear combinations of the basis vectors b 0 , ..., b n-1 L (B) = L (b 0 , ..., b n-1 ) = {Σ i = 0 n-1 x i b i | is that x i ∈ Z}. B is called the basis of the lattice L. In this embodiment, the n = m and b i ∈ Z n, referred to as n and dimension of the lattice. The Euclidean norm of the nonzero shortest vector on the lattice L is written as λ 1 (L).
The shortest vector problem (SVP) is to find the vector v ∈ L (B) such that ‖ v ‖ = λ 1 (L (B)) when the lattice L (B) is given.

イデアルIとは、環R=Z[x]/(g(x))の部分加法群のことをいう。ただし、g(x)は、Z上のn次モニック多項式である。v(x)=Σi=0 n−1∈Iに対して、その係数ベクトルv=(v,…,vn−1)∈Zをv(x)に対応させる。このとき、集合{v=(v,…,vn−1)∈Z|v(x)=Σi=0 n−1∈I}は格子となる。このような格子を、イデアル格子と呼ぶ。 The ideal I refers to a partial additive group of rings R = Z [x] / (g (x)). However, g (x) is an nth-order monic polynomial on Z. For v (x) = Σ i = 0 n-1 v i x i ∈ I , the coefficient vector v = (v 0 , ..., v n-1 ) ∈ Z is made to correspond to v (x). At this time, the set {v = (v 0 , ..., v n-1 ) ∈ Z | v (x) = Σ i = 0 n-1 v i x i ∈ I} is a lattice. Such a grid is called an ideal grid.

イデアル格子は、ローテーション操作に対して合同である。すなわち、格子ベクトルv∈Lの多項式表現をv(x)としたとき、rot(v)=xv(x) mod g(x)もまたL(B)のベクトルとなる。演算rotをベクトルのローテーションという。i回のローテーションの繰り返しをrot(v)=rot(…rot(rot(v))…)と書く。ただし、rot(v)=vである。 The ideal grid is congruent for rotation operations. That is, when the polynomial representation of the lattice vector v ∈ L is v (x), rot (v) = xv (x) mod g (x) is also a vector of L (B). The operation rot is called vector rotation. The repetition of i rotations is written as rot i (v) = rot (... rot (rot (v) ...)). However, rot 0 (v) = v.

n次モニック多項式g(x)には、R−LWE(Ring Learning with Error)問題等で用いられている円分多項式を使用する。m番目の円分多項式Φ(x)は次式で定義される。
Φ(x)=Π1≦k≦m,gcd(k,m)=1(x−e2πik/m
ただし、gcd(i,j)は、自然数i,jの最大公約数を表す。例えば、Φ(x)=x+1、Φ12(x)=x−x+1等となる。
For the nth-order monic polynomial g (x), the cyclotomic polynomial used in the R-LWE (Ring Learning with Player) problem or the like is used. The m-th cyclotomic polynomial Φ m (x) is defined by the following equation.
Φ m (x) = Π 1 ≦ k ≦ m, gcd (k, m) = 1 (x-e 2πik / m )
However, gcd (i, j) represents the greatest common divisor of the natural numbers i, j. For example, Φ 8 (x) = x 4 + 1, Φ 12 (x) = x 4- x 2 + 1, and so on.

[Gauss Sieveアルゴリズム]
格子L(B)から最短ベクトルを出力するために、Gauss Sieveアルゴリズムでは、格子L(B)に属する2つのベクトルu,vの差が小さくなる場合に、片方のベクトルをベクトルの差に置き換える処理(縮約という)が、ノルムが減少しなくなるまで再帰的に繰り返される。
これにより、格子L(B)上の2つのベクトルu,vが‖u±v‖≧max(‖u‖,‖v‖)を満たし、Gauss−reducedな状態となる。
[Gauss Sieve algorithm]
In order to output the shortest vector from the grid L (B), in the Gauss Sieve algorithm, when the difference between the two vectors u and v belonging to the grid L (B) becomes small, one vector is replaced with the vector difference. (Called contraction) is repeated recursively until the norm no longer decreases.
As a result, the two vectors u and v on the lattice L (B) satisfy ‖u ± v‖ ≧ max (‖u‖, ‖v‖), and the state becomes Gauss-reduced.

図1は、従来(非特許文献1)の求解アルゴリズム(Gauss Sieve)を示す図である。
図2は、従来(非特許文献1)の求解アルゴリズムで実行される縮約関数Reduceのアルゴリズムを示す図である。
FIG. 1 is a diagram showing a conventional (Non-Patent Document 1) solution algorithm (Gauss Seeve).
FIG. 2 is a diagram showing an algorithm of the reduction function Reduce executed by the conventional (Non-Patent Document 1) solution algorithm.

縮約関数Reduceでは、格子L(B)に属する2つのベクトルu,vを入力として、‖u−v‖と‖u‖を比較し、‖u−v‖が小さい場合に、ベクトルuが縮約される。
なお、2つのベクトルが線形従属だった場合、必ず原点ベクトルが出力される。これを衝突という。
In the contraction function Reduce, two vectors u and v belonging to the lattice L (B) are input, and ‖u-v‖ and ‖u‖ are compared. When ‖u-v‖ is small, the vector u is contracted. Is about.
If the two vectors are linearly dependent, the origin vector is always output. This is called a collision.

集合A⊂L(B)に対して、全ベクトルの組み合わせ∀u,v∈A,u≠vがGauss−reducedであるとき、集合AはPairwise−reducedであるという。 For the set A ⊂ L (B), when the combination of all vectors ∀u, v ∈ A, u ≠ v is Gauss-reduced, the set A is said to be Pairwise-reduced.

Gauss Sieveアルゴリズムでは、Pairwise−reducedとなる格子ベクトルの集合Lが徐々に拡張されていく。まず、新しい格子ベクトルvがランダムサンプリングによって生成される。次に、vとLの全ての元との組み合わせがGauss−reducedとなるように縮約が行われ、vのノルムが減少する。このようにして縮約されたvがLに追加される。このとき、L∪{v}もPairwise−reducedである。
このような集合Lを拡張する動作を、衝突が一定回数発生するまで実施した後、L内で最も短いベクトルを格子L(B)が最短ベクトルとして出力される。
In the Gauss Sieve algorithm, the set L of lattice vectors that is Pairwise-reduced is gradually expanded. First, a new lattice vector v is generated by random sampling. Next, the contraction is performed so that the combination of v and all the elements of L is Gauss-reduced, and the norm of v is reduced. The reduced v is added to L in this way. At this time, L∪ {v} is also Pairwise-reduced.
After performing such an operation of expanding the set L until collisions occur a certain number of times, the grid L (B) outputs the shortest vector in L as the shortest vector.

さらに、イデアル格子の性質を利用した非特許文献2及び非特許文献3の手法では、モニック多項式g(x)としての円分多項式が既約2項式となるAnti−cyclic格子、及び既約3項式となるTrinomial格子を定義し、定義式から導かれるローテーションの操作を行うことにより、縮約を試行するためのベクトルvの生成が繰り返される。
この結果、Gauss SieveアルゴリズムによるSVPの求解が高速化された。
Further, in the methods of Non-Patent Document 2 and Non-Patent Document 3 utilizing the properties of the ideal lattice, the Anti-cyclic lattice in which the cyclotomic polynomial as the monic polynomial g (x) is an irreducible binomial expression, and the irreducible trinomial 3 By defining a Trinomial lattice as a binary expression and performing a rotation operation derived from the definition expression, the generation of the vector v for trying the reduction is repeated.
As a result, the solution of SVP by the Gauss Seeve algorithm has been accelerated.

図3は、従来(非特許文献2)の求解アルゴリズム(Ideal Gauss Sieve)で実行される縮約関数ReduceRotのアルゴリズムを示す図である。
縮約関数ReduceRotでは、ベクトルvの複製v’に対してローテーションを行うことにより(ステップ3)、縮約を試行するためのベクトルが繰り返し生成される。これにより、短いベクトルを生成する確率が向上した。
FIG. 3 is a diagram showing an algorithm of the reduction function ReduceRot executed by the conventional (Non-Patent Document 2) solution algorithm (Ideal Gauss Seeve).
In the contraction function ReduceRot, by rotating the duplicate v'of the vector v (step 3), a vector for trying the contraction is repeatedly generated. This improves the probability of generating a short vector.

図4は、従来(非特許文献3)の求解アルゴリズムで実行される縮約関数ReduceRot2のアルゴリズムを示す図である。
縮約関数ReduceRot2では、ReduceRotに対して、逆ローテーションによるベクトルの生成を同時に行う、アルゴリズムを並列化する、計算時間が最も短くなるローテーション回数kを求め縮約の試行をk回とする、という改良が施された。
FIG. 4 is a diagram showing an algorithm of the reduction function ReduceRot2 executed by the conventional (Non-Patent Document 3) solution algorithm.
In the reduction function ReduceRot2, the vector is simultaneously generated by the inverse rotation for the ReductionRot, the algorithm is parallelized, the number of rotations k at which the calculation time is the shortest is obtained, and the reduction trial is made k times. Was given.

本実施形態では、さらに、Anti−cyclic格子及びTrinomial格子の概念を一般化したt−nomial格子を定義し、安全性評価装置1は、イデアル格子の次元nと、円分多項式の添字m及び項数tとを対応付けた条件に基づくローテーション及び逆ローテーションにより、縮約の処理を実行する。 In the present embodiment, a t-nomic lattice that generalizes the concepts of the Anti-cyclic lattice and the Trinomial lattice is further defined, and the safety evaluation device 1 further defines the dimension n of the ideal lattice and the subscript m and the term of the cyclotomic polynomial. The contraction process is executed by rotation and reverse rotation based on the condition associated with the number t.

[機能構成]
図5は、本実施形態における安全性評価装置1の機能構成を示すブロック図である。
安全性評価装置1は、サーバ又はパーソナルコンピュータ等の情報処理装置(コンピュータ)であり、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイス等を備える。
[Functional configuration]
FIG. 5 is a block diagram showing a functional configuration of the safety evaluation device 1 in the present embodiment.
The safety evaluation device 1 is an information processing device (computer) such as a server or a personal computer, and includes a control unit 10 and a storage unit 20, as well as various data input / output devices and communication devices.

制御部10は、安全性評価装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。 The control unit 10 is a part that controls the entire safety evaluation device 1, and realizes each function in the present embodiment by appropriately reading and executing various programs stored in the storage unit 20. The control unit 10 may be a CPU.

記憶部20は、ハードウェア群を安全性評価装置1として機能させるための各種プログラム(安全性評価プログラム等)、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスク(HDD)等であってよい。 The storage unit 20 is a storage area for various programs (safety evaluation programs, etc.) and various data for making the hardware group function as the safety evaluation device 1, and is a ROM, RAM, flash memory, or hard disk (HDD). And so on.

制御部10は、選択部11と、求解部12と、初期化部13とを備える。制御部10は、これらの機能部により、SVPを解くための縮約の処理を実行する。
このとき、制御部10は、処理時間を計測し、格子暗号の安全性の指標として出力する。
The control unit 10 includes a selection unit 11, a solution unit 12, and an initialization unit 13. The control unit 10 executes a contraction process for solving the SVP by these functional units.
At this time, the control unit 10 measures the processing time and outputs it as an index of the security of the lattice-based cryptography.

t−nomial格子とは、項数がtである円分多項式から生成されるイデアル格子である。ただし、t≧2とする。t−nomial格子を用いることで、一般的な次元nに対して、Gauss Sieveアルゴリズムの高速化が可能となる。 The t-nomic lattice is an ideal lattice generated from a cyclotomic polynomial having t in the number of terms. However, t ≧ 2. By using the t-nomic lattice, it is possible to increase the speed of the Gauss Sieve algorithm for the general dimension n.

選択部11は、安全性の評価対象である格子暗号におけるイデアル格子の次元nに対して、後述の条件1〜3のいずれかを満たす円分多項式の添字m及び項数tを選択する。
なお、これらの条件式は、項数が2であるAnti−cyclic格子の場合と、項数が3であるTrinomial格子の場合とを包含している。
The selection unit 11 selects the subscript m and the number of terms t of the cyclotomic polynomial that satisfies any of the conditions 1 to 3 described later for the dimension n of the ideal lattice in the lattice-based cryptography to be evaluated for security.
In addition, these conditional expressions include the case of the Anti-cyclic lattice having 2 terms and the case of the Trinomial lattice having 3 terms.

求解部12は、次数nと、円分多項式の添字m及び項数tとの関係から導出されるベクトルのローテーションを用いて、所定回のベクトル生成及び縮約を繰り返す。 The solving unit 12 repeats vector generation and reduction a predetermined number of times by using the rotation of the vector derived from the relationship between the degree n and the subscript m and the number of terms t of the cyclotomic polynomial.

初期化部13は、ローテーション又は逆ローテーションの操作を、ローテーションの周期となるまで繰り返すことにより、ベクトルvを初期化する。
このとき、初期化部13は、初期化に掛かるローテーションの回数と、逆ローテーションの回数とを比較し、少ない回数の操作によりベクトルvを初期化してよい。
The initialization unit 13 initializes the vector v by repeating the rotation or reverse rotation operation until the rotation cycle is reached.
At this time, the initialization unit 13 may compare the number of rotations required for initialization with the number of reverse rotations, and initialize the vector v by a small number of operations.

[条件1]

Figure 2021081591
なお、この条件は、モニック多項式が円分多項式Φ(x)=x+1となるイデアル格子、すなわちAnti−cyclic格子を示している。 [Condition 1]
Figure 2021081591
This condition indicates an ideal lattice in which the monic polynomial is a cyclotomic polynomial Φ m (x) = x n + 1, that is, an Anti-cyclic lattice.

条件1を満たすとき、ベクトルv=(v,…,vn−1)のローテーションrot(v)及び逆ローテーションrot−1(v)は、0≦i≦n−1に対して、

Figure 2021081591
である。すなわち、ベクトルvの先頭及び末尾のみに、挿入又は削除の処理が行われる。 When the condition 1 is satisfied, the rotation rot (v) and the reverse rotation rot -1 (v) of the vector v = (v 0 , ..., v n-1 ) have a relation of 0 ≦ i ≦ n-1.
Figure 2021081591
Is. That is, the insertion or deletion process is performed only at the beginning and the end of the vector v.

[条件2]
奇素数pに対して、

Figure 2021081591
[Condition 2]
For the odd prime number p
Figure 2021081591

ここで、奇素数pに対して、m=2・p(a≧0,b≧1)のとき、t=pとなることは、円分多項式Φ(x)=Σi=0 p−1(−1)i2^(a−1)p^(b−1)であることから明らかである。例えば、m=36=2・3のとき、t=3となり、m=121=2・11のとき、t=11となる。
なお、p=3の場合は、モニック多項式が円分多項式Φ(x)={x+xn/2+1(m=3),x−xn/2+1(m=2)となるイデアル格子、すなわちTrinomial格子を示している。
Here, for the odd prime number p, when m = 2 a · p b (a ≧ 0, b ≧ 1), t = p means that the cyclotomic polynomial Φ m (x) = Σ i = 0. It is clear from the fact that it is p-1 (-1) i x i2 ^ (a-1) p ^ (b-1). For example, when m = 36 = 2 2 · 3 2, t = 3 , and the case of m = 121 = 2 0 · 11 2, a t = 11.
When p = 3, the monic polynomial is a cyclotomic polynomial Φ m (x) = {x n + x n / 2 +1 (m = 3 a ), x n − x n / 2 +1 (m = 2 a 3). The ideal lattice that becomes b), that is, the Trinomial lattice is shown.

また、nの条件式は、次のように証明される。
x,yを互い素な自然数としたとき、φ(xy)=φ(x)φ(y)が成り立つ。なお、φはオイラーのトーシェント関数であり、m番目の円分多項式の次数nについて、n=φ(m)であることが知られている。また、素数p及び自然数kに対して、φ(p)=pk−1(p−1)である。以上より、a≧1に対して、φ(2)=φ(2)φ(p)=2a−1・pb−1(p−1)である。また、a=0に対しては、m=pより、φ(p)=pb−1(p−1)である。
Further, the conditional expression of n is proved as follows.
When x and y are natural numbers that are mutually exclusive, φ (xy) = φ (x) φ (y) holds. Note that φ is Euler's totient function, and it is known that n = φ (m) for the degree n of the m-th cyclotomic polynomial. Further, for the prime number p and the natural number k, φ ( pk ) = p k-1 (p-1). From the above, for a ≧ 1, φ (2 a p b ) = φ (2 a ) φ (p b ) = 2 a-1 · p b-1 (p-1). Further, for a = 0, φ (p b ) = p b-1 (p-1) from m = p b.

条件2を満たすとき、ベクトルvのローテーション操作rot(v)及び逆ローテーション操作rot−1(v)は、0≦i≦n−1,1≦l≦t−2に対して、

Figure 2021081591
である。すなわち、ベクトルvの先頭及び末尾に挿入又は削除の処理が行われ、t−2の箇所において差又は和の演算が行われる。なお、上式の演算子「−/+」は、a=0のとき−、a≠0のとき+となる。 When the condition 2 is satisfied, the rotation operation rot (v) of the vector v and the reverse rotation operation rot -1 (v) are performed with respect to 0 ≦ i ≦ n-1, 1 ≦ l ≦ t-2.
Figure 2021081591
Is. That is, the process of inserting or deleting is performed at the beginning and the end of the vector v, and the difference or sum is calculated at the point t-2. The operator "− / +" in the above equation is − when a = 0 and + when a ≠ 0.

ローテーション及び逆ローテーションの式は、次のように証明される。
円分多項式Φ(x)とその次数nに対して、Φp^b(x)=Σi=0 p−1ip^(b−1),Φ2^a・p^b(x)=Σi=0 p−1(−1)i2^(a−1)p^(b−1)である。よって、それぞれxv(x) mod Φ(x)を計算することにより、ローテーションの式が得られる。
また、逆ローテーションに関しては、Φ(x)を法とする逆元x−1を計算する。a=0の場合、x−1=−Σi=0 p−1ip^(b−1)−1、a≠0の場合、x−1=Σi=0 p−1(−1)i2^(a−1)p^(b−1)−1となる。よって、逆ローテーションの式は、x−1v(x) mod Φ(x)に上式を代入することで得られる。
The equations for rotation and reverse rotation are proved as follows.
For the cyclotomic polynomial Φ m (x) and its degree n, Φ p ^ b (x) = Σ i = 0 p-1 x ip ^ (b-1) , Φ 2 ^ a · p ^ b (x) ) = Σ i = 0 p-1 (-1) i x i2 ^ (a-1) p ^ (b-1) . Therefore, the rotation equation can be obtained by calculating xv (x) mod Φ m (x) respectively.
For the inverse rotation, the inverse element x -1 modulo Φ m (x) is calculated. When a = 0, x -1 = −Σ i = 0 p-1 x ip ^ (b-1) -1 , and when a ≠ 0, x -1 = Σ i = 0 p-1 (-1) i x i2 ^ (a-1) p ^ (b-1) -1 . Therefore, the equation for inverse rotation can be obtained by substituting the above equation for x -1 v (x) mod Φ m (x).

[条件3]
2つの奇素数p,q(p<q)を、q≡1,2,p−1,p−2 mod pとなるように選ぶと、k=floor(q/p)とすると、

Figure 2021081591
[Condition 3]
If the two odd prime numbers p and q (p <q) are selected so as to have q≡1,2, p-1, p-2 mod p, and k = floor (q / p), then
Figure 2021081591

ここで、Φ2^ap^bq^c(x)とΦpq(x)の項数は等しい。このことは、次のように証明される。
奇数n>1に対して、Φ2n(x)=Φ(−x)である。また、互いに素な数s,tに対して、Φs^mt(x)=Φst(x(m−1))である。よって、2とpとは互いに素であるため、Φ2^ap^bq^c(x)=Φ2p^bq^c(x2^(a−1))である。y=x2^(a−1)とおくと、Φ2^ap^bq^c(x)とΦ2p^bq^c(y)とは項数が等しい。次に、pは奇数なので、Φ2p^bq^c(y)=Φp^bq^c(−y)である。z=−yとおくと、Φ2p^bq^c(y)とΦp^bq^c(z)とは項数が等しい。また、pとqとは互いに素であるため、Φp^bq^c(z)=Φpq^c(z(b−1))である。w=z(b−1)とすると、Φp^bq^c(z)=Φpq^c(w)も項数は同じである。最後に、qとpとは互いに素であるため、Φpq^c(w)=Φpq(wq^(c−1))となり、項数は変化しない。
Here, the numbers of terms of Φ 2 ^ ap ^ bq ^ c (x) and Φ pq (x) are equal. This is proved as follows.
For an odd number n> 1, Φ 2n (x) = Φ n (−x). Further, for relatively prime numbers s and t, Φ s ^ mt (x) = Φ st (x s ^ (m-1) ). Therefore, since 2 and p b q c are relatively prime, Φ 2 ^ ap ^ bq ^ c (x) = Φ 2 p ^ bq ^ c (x 2 ^ (a-1) ). If y = x 2 ^ (a-1) , Φ 2 ^ ap ^ bq ^ c (x) and Φ 2p ^ bq ^ c (y) have the same number of terms. Next, since p b q c is an odd number, Φ 2p ^ bq ^ c (y) = Φ p ^ bq ^ c (−y). If z = −y, Φ 2p ^ bq ^ c (y) and Φ p ^ bq ^ c (z) have the same number of terms. Further, since p and q c are relatively prime, Φ p ^ bq ^ c (z) = Φ pq ^ c (z p ^ (b-1) ). If w = z p ^ (b-1) , the number of terms is the same for Φ p ^ bq ^ c (z) = Φ pq ^ c (w). Finally, since q and p are relatively prime, Φ pq ^ c (w) = Φ pq (w q ^ (c-1) ), and the number of terms does not change.

また、次の文献Aによって、Φpq(x)の項数が示されている。
文献A: L. Carlitz. The number of terms in the cyclotomic polynomial fpq(x). The American Mathematical Monthly, Vol. 73, pp. 979−981, 1966.
Further, the following document A indicates the number of terms of Φ pq (x).
Reference A: L. Carlitz. The number of terms in the cyclotomic polynomial fpq (x). The American Mathematics Monthly, Vol. 73, pp. 979-981, 1966.

したがって、奇素数p,qに対して、上述の項数tの関係式が導出される。
例えば、p=5,q=7に対して、m=70=2・5・7を考えると、k=1に対してt=17となる。また、t<10を満たすm,tの組として、m=2・3・5,t=7がある。
Therefore, the relational expression of the above-mentioned term number t is derived for the odd prime numbers p and q.
For example, considering m = 70 = 2.5.7 for p = 5, q = 7, t = 17 for k = 1. Further, as a set of m and t satisfying t <10, there are m = 2 a , 3 b , 5 c , and t = 7.

条件3を満たすとき、円分多項式Φ(x)の係数は−1,0,1のいずれかになり、n次及び0次の係数は必ず1である。よって、係数ベクトルc=(c,…,cn−1),c∈{−1,0,1},Σi=1 n−1|c|=t−2を用いて、Φ(x)=1+cx+…+cn−1n−1+xと表すことができる。なお、c≠0である項がt−2個だけ存在する。
このとき、ベクトルvのローテーションrot(v)及び逆ローテーションrot−1(v)は、0≦i≦n−1に対して、

Figure 2021081591
である。すなわち、ベクトルvの先頭及び末尾に挿入又は削除の処理が行われ、t−2の箇所において差又は和の演算が行われる。 When the condition 3 is satisfied, the coefficient of the cyclotomic polynomial Φ m (x) is -1, 0, or 1, and the n-th order and zero-order coefficients are always 1. Therefore, using the coefficient vector c = (c 1 , ..., c n-1 ), c i ∈ {-1, 0, 1}, Σ i = 1 n-1 | c i | = t-2, Φ It can be expressed as m (x) = 1 + c 1 x + ... + c n-1 x n-1 + x n. Note that term is c i ≠ 0 is present only t-2 pieces.
At this time, the rotation rot (v) and the reverse rotation rot -1 (v) of the vector v are set with respect to 0 ≦ i ≦ n-1.
Figure 2021081591
Is. That is, the process of inserting or deleting is performed at the beginning and the end of the vector v, and the difference or sum is calculated at the point t-2.

t−nomial格子の具体例として、t=5,7の場合を考える。
m=2・5のとき、イデアル格子は5−nomial格子となる。このとき、ローテーション操作は、a≠0の場合、rot(v)=(−vn−1,v0,…,vn/4−1+vn−1,…,vn/2−1−vn−1,…,v3n/4−1+vn−1,…,vn−2)となる。
また、m=2・7又はm=2・3・5のとき、イデアル格子は7−nomial格子となる。m=2・3・5のときは,円分多項式Φ2^a3^b5^c(x)=x−x7n/8+x5n/8−xn/2+x3n/8−xn/8+1、又はx+x7n/8−x5n/8−xn/2−x3n/8+xn/8+1である。このとき、ローテーション操作は、rot(v)=(−vn−1,v,…,vn/8−1+vn−1,…,v3n/8−1−vn−1,…,vn/2−1+vn−1,…,v5n/8−1−vn−1,…,v7n/8−1+vn−1,…,vn−2)、又は(−vn−1,v,…,vn/8−1−vn−1,…,v3n/8−1+vn−1,…,vn/2−1+vn−1,…,v5n/8−1+vn−1,…,v7n/8−1−vn−1,…,vn−2)となる。
As a specific example of the t-nomic lattice, consider the case of t = 5,7.
When m = 2 a and 5 b , the ideal lattice becomes a 5-nomic lattice. At this time, when a ≠ 0, the rotation operation is rot (v) = (−v n-1 , v0,…, v n / 4-1 + v n-1 ,…, v n / 2-1 −v. n-1 , ..., v 3n / 4-1 + v n-1 , ..., v n-2 ).
Further, when m = 2 a・ 7 b or m = 2 a・ 3 b・ 5 c , the ideal lattice becomes a 7-normal lattice. When m = 2 a・ 3 b・ 5 c , the cyclotomic polynomial Φ 2 ^ a3 ^ b5 ^ c (x) = x n −x 7n / 8 + x 5n / 8 −x n / 2 + x 3n / 8 − x n / 8 + 1, or x n + x 7n / 8- x 5n / 8- x n / 2- x 3n / 8 + x n / 8 + 1. At this time, the rotation operation is rot (v) = (-v n-1 , v 0 , ..., v n / 8-1 + v n-1 , ..., v 3n / 8-1 -v n-1 , ... , V n / 2-1 + v n-1 , ..., v 5n / 8-1 -v n-1 , ..., v 7n / 8-1 + v n-1 , ..., v n-2 ), or (- v n-1 , v 0 , ..., v n / 8-1 -v n-1 , ..., v 3n / 8-1 + v n-1 , ..., v n / 2-1 + v n-1 , ..., v 5n / 8-1 + v n-1 , ..., v 7n / 8-1 −v n-1 , ..., v n-2 ).

図6は、本実施形態における縮約関数ReduceRotWiseのアルゴリズムを示す図である。
縮約関数ReduceRot(図3)及びReduceRot2(図4)では、ベクトルvを再利用のために、前処理としてベクトルvの複製(v’及びv’’)が必要となっていた。Gauss Sieveアルゴリズムでは、最短ベクトルが見付かるまで、これらの縮約関数が繰り返し呼び出されるため、多数の複製処理により計算時間が増大していた。
これに対して、縮約関数ReduceRotWiseでは、ベクトルvの複製処理を、ローテーション又は逆ローテーションにより代替することで計算時間が削減される。具体的には、従来(非特許文献3)の手法と比較して、実験的に約1.5倍の高速化が実現された。
FIG. 6 is a diagram showing an algorithm of the reduction function ReduceRotWise in the present embodiment.
In the contraction functions ReduceRot (FIG. 3) and ReduceRot2 (FIG. 4), in order to reuse the vector v, duplication of the vector v (v'and v'') was required as preprocessing. In the Gauss Sieve algorithm, these reduction functions are repeatedly called until the shortest vector is found, so that the calculation time is increased by a large number of duplication processes.
On the other hand, in the reduction function ReduceRotWise, the calculation time is reduced by substituting the duplication process of the vector v by rotation or inverse rotation. Specifically, a speedup of about 1.5 times was experimentally realized as compared with the conventional method (Non-Patent Document 3).

イデアル格子L(B)に属する2つの初期ベクトルu,vに加えて、縮約の試行回数、すなわちローテーション数kが入力として与えられる。
なお、ローテーション数kは、m及びtに応じて適宜定められる。
具体的には、ローテーション操作によってベクトルのノルムが確率的に大きくなることが知られており、項数tが大きくなるほど、その確率が大きくなる。そこで、例えば、t=2のときk=m/2、t=3のときk=13、t=5のときk=6、t=7のときk=3のように、実験等により適切な回数が設定される。
In addition to the two initial vectors u and v belonging to the ideal lattice L (B), the number of trials for contraction, that is, the number of rotations k, is given as an input.
The number of rotations k is appropriately determined according to m and t.
Specifically, it is known that the norm of a vector increases stochastically by a rotation operation, and the larger the number of terms t, the greater the probability. Therefore, for example, k = m / 2 when t = 2, k = 13 when t = 3, k = 6 when t = 5, and k = 3 when t = 7, which are more appropriate for experiments and the like. The number of times is set.

ステップ1〜3において、まず、ベクトルu及びベクトルvに基づく縮約が試行され、ベクトルuが更新される。続いて、更新後のベクトルu、及びローテーション操作によって更新されたベクトルvに基づく縮約がk回試行され、ベクトルuが更新される。 In steps 1 to 3, first, reduction based on the vector u and the vector v is attempted, and the vector u is updated. Subsequently, the updated vector u and the reduction based on the vector v updated by the rotation operation are tried k times, and the vector u is updated.

ここまでの処理により更新されたベクトルvを初期化するためには、ローテーション又は逆ローテーションのいずれか、必要な回数の少ない方が用いられてよいが、ローテーションの周期分だけ繰り返される必要がある。
ここで、円分多項式の定義から得られる帰納的関係式Φ(x)=(x−1)/(Πd|m,d≠mΦ(x))より、x=Φ(x)Πd|m,d≠mΦ(x)+1である。よって、x≡1 mod Φ(x)となり、rot(v)=xv(x)≡v(x) mod Φ(x)=vである。
したがって、円分多項式Φ(x)に対して、ローテーションの周期はmである。なお、mが偶数の場合、周期mの代わりにm/2を使用できる。
In order to initialize the vector v updated by the processing up to this point, either rotation or reverse rotation, whichever is required less frequently, may be used, but it needs to be repeated for the number of rotation cycles.
Here, from the inductive relational expression Φ m (x) = (x m -1) / (Π d | m, d ≠ m Φ d (x)) obtained from the definition of the cyclotomic polynomial, x m = Φ m (X) Π d | m, d ≠ m Φ d (x) +1. Therefore, x m ≡ 1 mod Φ m (x), and rot m (v) = x m v (x) ≡ v (x) mod Φ m (x) = v.
Therefore, for the cyclotomic polynomial Φ m (x), the rotation period is m. When m is an even number, m / 2 can be used instead of the period m.

ステップ4において、初期化部13は、ローテーション数kと、周期までの残り回数m−kとを比較する。k≧m−kの場合、ステップ5が実行され、k<m−kの場合、ステップ7〜11が実行される。 In step 4, the initialization unit 13 compares the number of rotations k with the number of remaining times mk until the cycle. When k ≧ m−k, step 5 is executed, and when k <m−k, steps 7 to 11 are executed.

ステップ5において、初期化部13は、順方向のローテーションをさらにm−k回繰り返すことにより、ベクトルvを初期化する。
ステップ7において、初期化部13は、k回のローテーションによって更新されたベクトルvを、同じ回数だけ逆ローテーションすることで初期化する。
In step 5, the initialization unit 13 initializes the vector v by further repeating the forward rotation mk times.
In step 7, the initialization unit 13 initializes the vector v updated by k rotations by reverse rotating the same number of times.

ステップ8〜10において、求解部12は、逆方向の逆ローテーションによってもベクトルvを更新しつつ縮約を試みる。
これにより、求解部12は、ローテーション又は逆ローテーションによってベクトルvのノルムが増大するのを抑制し、縮約の成功率を向上させている。
ステップS11において、初期化部13は、k回の逆ローテーションによって更新されたベクトルvを、同じ回数だけローテーションすることで初期化する。
In steps 8 to 10, the solution unit 12 attempts to reduce the vector v while updating the vector v by the reverse rotation in the reverse direction.
As a result, the solution unit 12 suppresses the increase in the norm of the vector v due to rotation or reverse rotation, and improves the success rate of contraction.
In step S11, the initialization unit 13 initializes the vector v updated by the reverse rotation k times by rotating the vector v the same number of times.

ステップ12において、求解部12は、k+1回又は2k+1回の縮約の試行により短くなったベクトルuを出力する。 In step 12, the solution unit 12 outputs the vector u shortened by k + 1 or 2k + 1 reduction attempts.

ここで、t−nomial格子のローテーション及び逆ローテーションの操作は、それぞれO(t)の計算量で実行される。このことは、次のように証明される。
前述のローテーション及び逆ローテーションの式から、更新されるベクトルの位置はt箇所あることがわかる。このうち、ベクトルの先頭と末尾に対しては、削除及び挿入の操作がそれぞれ計算量O(1)で行われる。また、これ以外のt−2箇所では、差又は和の計算がそれぞれ計算量O(1)で行われる。よって、ローテーション及び逆ローテーションの計算量は、それぞれ合計でO(t)である。
Here, the operations of the rotation and the reverse rotation of the t-nomic lattice are executed with the amount of calculation of O (t), respectively. This is proved as follows.
From the above rotation and reverse rotation equations, it can be seen that the position of the vector to be updated is t. Of these, for the beginning and end of the vector, the deletion and insertion operations are performed with the calculation amount O (1), respectively. Further, at the other t-2 points, the difference or the sum is calculated with the calculation amount O (1), respectively. Therefore, the computational complexity of rotation and reverse rotation is O (t) in total.

関数ReduceRotWiseは、ベクトルrot(v)をvに戻す処理にO(min(k,m−k)t)の計算量が必要となる。前述のように、min(k,m−k)の値は十分に小さくなることが言えるため、実用上は、ベクトルの複製に掛かる計算量O(n)よりO(min(k,m−k)t)の方が小さく、高速化される。 The function ReduceRotWise requires a computational complexity of O (min (k, m−k) t) to return the vector rot k (v) to v. As described above, since it can be said that the value of min (k, m-k) is sufficiently small, in practice, O (min (k, m-k) is larger than the computational complexity O (n) required for vector duplication. ) T) is smaller and faster.

本実施形態によれば、安全性評価装置1は、安全性の評価対象である格子暗号におけるイデアル格子の次元nに対して、条件1〜3のいずれかを満たす奇素数及び円分多項式の添字mを選択し、円分多項式の項数tとの関係から導出されるベクトルvのローテーション操作を用いて、所定回のベクトル生成及び縮約を繰り返す。
これにより、安全性評価装置1は、これまではSVPの求解を高速化できる次元が限定的であったイデアル格子に対して、より一般的な次元でも高速化を可能とした。例えば、これまでイデアル格子の適用がされていなかったn=80次元に対して、Gauss Sieveと比較して約10倍の高速化が達成された。
この結果、安全性評価装置1は、NTRUといったイデアル格子を用いた次世代公開鍵暗号に対して、より厳密な安全性評価を行うことができ、次元等の適切な設計に寄与できる。
According to the present embodiment, the security evaluation device 1 is a subscript of an odd prime number and a cyclotomic polynomial satisfying any one of the conditions 1 to 3 with respect to the dimension n of the ideal lattice in the lattice code to be evaluated for security. m is selected, and the vector generation and reduction are repeated a predetermined number of times by using the rotation operation of the vector v derived from the relationship with the number t of the cyclotomic polynomial.
As a result, the safety evaluation device 1 has made it possible to speed up the solution of the SVP even in a more general dimension, as opposed to the ideal lattice, which has been limited in the dimension in which the solution of the SVP can be speeded up. For example, a speedup of about 10 times has been achieved as compared with Gauss Sieve with respect to n = 80 dimensions to which the ideal lattice has not been applied so far.
As a result, the security evaluation device 1 can perform a stricter security evaluation for the next-generation public key cryptography using an ideal lattice such as NTRU, and can contribute to an appropriate design such as a dimension.

また、安全性評価装置1は、縮約の処理に伴って更新されるベクトルvを、ローテーション又は逆ローテーションの操作を周期となるまで繰り返すことにより初期化する。
これにより、安全性評価装置1は、ベクトルvの複製に伴う処理時間を削減し、SVPの求解アルゴリズムを、さらに高速化できた。例えば、n=64次元では、Gauss Sieveによる求解時間7432秒、Ideal Gauss Sieveによる求解時間177秒に対して、本実施形態のアルゴリズム(図6)では122秒であった。また、n=80次元では、Gauss Sieveによる求解時間904860秒、Ideal Gauss Sieveによる求解時間98581秒に対して、本実施形態のアルゴリズム(図6)では87473秒であった。
この結果、安全性評価装置1は、次世代公開鍵暗号に対して、より厳密な安全性評価を行うことができ、次元等の適切な設計に寄与できる。
Further, the safety evaluation device 1 initializes the vector v, which is updated in accordance with the contraction process, by repeating the rotation or reverse rotation operation until the cycle is reached.
As a result, the safety evaluation device 1 was able to reduce the processing time associated with the duplication of the vector v and further speed up the SVP solution algorithm. For example, in the n = 64 dimension, the solution time by Gauss Sieve was 7432 seconds, and the solution time by Ideal Gauss Sieve was 177 seconds, whereas in the algorithm of the present embodiment (FIG. 6), it was 122 seconds. Further, in the n = 80 dimension, the solution time by Gauss Sieve was 904,860 seconds, and the solution time by Ideal Gauss Sieve was 98581 seconds, whereas the algorithm of the present embodiment (FIG. 6) was 87473 seconds.
As a result, the security evaluation device 1 can perform a stricter security evaluation on the next-generation public key cryptography, and can contribute to an appropriate design such as a dimension.

安全性評価装置1は、ベクトルの初期化に掛かるローテーションの回数と、逆ローテーションの回数とを比較し、少ない回数の操作によりベクトルvを初期化してもよい。
これにより、安全性評価装置1は、より適切な手順によりSVPの求解アルゴリズムを実行し、処理を高速化できる。
The safety evaluation device 1 may compare the number of rotations required for vector initialization with the number of reverse rotations, and initialize the vector v by a small number of operations.
As a result, the safety evaluation device 1 can execute the SVP solution algorithm according to a more appropriate procedure and speed up the processing.

以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。 Although the embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments. Moreover, the effects described in the above-described embodiments are merely a list of the most preferable effects arising from the present invention, and the effects according to the present invention are not limited to those described in the embodiments.

安全性評価装置1による安全性評価方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD−ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。 The safety evaluation method by the safety evaluation device 1 is realized by software. When realized by software, the programs that make up this software are installed in the information processing device (computer). Further, these programs may be recorded on a removable medium such as a CD-ROM and distributed to the user, or may be distributed by being downloaded to the user's computer via a network. Further, these programs may be provided to the user's computer as a Web service via a network without being downloaded.

1 安全性評価装置
10 制御部
11 選択部
12 求解部
13 初期化部
20 記憶部
1 Safety evaluation device 10 Control unit 11 Selection unit 12 Solving unit 13 Initialization unit 20 Storage unit

Claims (5)

安全性の評価対象である格子暗号におけるイデアル格子の次元nに対して、
m=p(b≧1)及び
n=pb−1(p−1)、
又は
m=2・p(a≧1,b≧1)及び
n=2a−1・pb−1(p−1)
を満たす奇素数p、及び円分多項式の添字mを選択する選択部と、
前記円分多項式の項数t=pの関係から導出されるベクトルのローテーションを用いて、所定回のベクトル生成及び縮約を繰り返す求解部と、を備える安全性評価装置。
For the dimension n of the ideal lattice in the lattice-based cryptography that is the object of security evaluation
m = p b (b ≧ 1) and n = p b-1 (p-1),
Or m = 2 a · p b (a ≧ 1, b ≧ 1) and n = 2 a-1 · p b-1 (p-1)
A selection unit that selects the odd prime number p that satisfies the condition and the subscript m of the cyclotomic polynomial,
A safety evaluation device including a solution unit that repeats vector generation and contraction a predetermined number of times by using vector rotation derived from the relationship of the number of terms t = p of the cyclotomic polynomial.
安全性の評価対象である格子暗号におけるイデアル格子の次元nに対して、
m=p・q(b≧1,c≧1)及び
n=pb−1(p−1)・qc−1(q−1)、
又は
m=2・p・q(a≧1,b≧1,c≧1)及び
n=2a−1・pb−1(p−1)・qc−1(q−1)
を満たす2つの奇素数p及びq、並びに円分多項式の添字mを選択する選択部と、
前記円分多項式の項数tが整数kを用いて、
t=2k(p−1)+1及びq=pk+1、
t=2k(p−1)+2p−3及びq=p(k+1)−1、
t=(1/2)k(p−1)+p及びq=pk+2、
t=(1/2)(k+1)(p−1)−p及びq=p(k+1)−2
のいずれかの関係であることから導出されるベクトルのローテーションを用いて、所定回のベクトル生成及び縮約を繰り返す求解部と、を備える安全性評価装置。
For the dimension n of the ideal lattice in the lattice-based cryptography that is the object of security evaluation
m = p b · q c (b ≧ 1, c ≧ 1) and n = p b-1 (p-1) · q c-1 (q-1),
Or m = 2 a · p b · q c (a ≧ 1, b ≧ 1, c ≧ 1) and n = 2 a-1 · p b-1 (p-1) · q c-1 (q-1) )
A selection unit that selects two odd prime numbers p and q that satisfy the conditions, and a subscript m of a cyclotomic polynomial,
Using an integer k for the number of terms t of the cyclotomic polynomial,
t = 2k (p-1) +1 and q = pk + 1,
t = 2k (p-1) + 2p-3 and q = p (k + 1) -1,
t = (1/2) k (p 2 -1) + p and q = pk + 2,
t = (1/2) (k + 1) (p 2 -1) -p and q = p (k + 1) -2
A safety evaluation device including a solution unit that repeats vector generation and contraction a predetermined number of times using vector rotation derived from any of the above relationships.
安全性の評価対象である格子暗号におけるイデアル格子の次元nに対して、
m=p(b≧1)及び
n=pb−1(p−1)、
又は
m=2・p(a≧1,b≧1)及び
n=2a−1・pb−1(p−1)
を満たす奇素数p、及び円分多項式の添字mを選択する選択ステップと、
前記円分多項式の項数t=pの関係から導出されるベクトルのローテーションを用いて、所定回のベクトル生成及び縮約を繰り返す求解ステップと、をコンピュータが実行する安全性評価方法。
For the dimension n of the ideal lattice in the lattice-based cryptography that is the object of security evaluation
m = p b (b ≧ 1) and n = p b-1 (p-1),
Or m = 2 a · p b (a ≧ 1, b ≧ 1) and n = 2 a-1 · p b-1 (p-1)
A selection step to select the odd prime number p that satisfies the condition and the subscript m of the cyclotomic polynomial,
A safety evaluation method in which a computer executes a solution step in which vector generation and contraction are repeated a predetermined number of times using vector rotation derived from the relationship of the number of terms t = p of the cyclotomic polynomial.
安全性の評価対象である格子暗号におけるイデアル格子の次元nに対して、
m=p・q(b≧1,c≧1)及び
n=pb−1(p−1)・qc−1(q−1)、
又は
m=2・p・q(a≧1,b≧1,c≧1)及び
n=2a−1・pb−1(p−1)・qc−1(q−1)
を満たす2つの奇素数p及びq、並びに円分多項式の添字mを選択する選択ステップと、
前記円分多項式の項数tが整数kを用いて、
t=2k(p−1)+1及びq=pk+1、
t=2k(p−1)+2p−3及びq=p(k+1)−1、
t=(1/2)k(p−1)+p及びq=pk+2、
t=(1/2)(k+1)(p−1)−p及びq=p(k+1)−2
のいずれかの関係であることから導出されるベクトルのローテーションを用いて、所定回のベクトル生成及び縮約を繰り返す求解ステップと、をコンピュータが実行する安全性評価方法。
For the dimension n of the ideal lattice in the lattice-based cryptography that is the object of security evaluation
m = p b · q c (b ≧ 1, c ≧ 1) and n = p b-1 (p-1) · q c-1 (q-1),
Or m = 2 a · p b · q c (a ≧ 1, b ≧ 1, c ≧ 1) and n = 2 a-1 · p b-1 (p-1) · q c-1 (q-1) )
A selection step to select two odd prime numbers p and q that satisfy, and a cyclotomic polynomial subscript m,
Using an integer k for the number of terms t of the cyclotomic polynomial,
t = 2k (p-1) +1 and q = pk + 1,
t = 2k (p-1) + 2p-3 and q = p (k + 1) -1,
t = (1/2) k (p 2 -1) + p and q = pk + 2,
t = (1/2) (k + 1) (p 2 -1) -p and q = p (k + 1) -2
A safety evaluation method in which a computer executes a solution step in which a predetermined number of vector generations and contractions are repeated using vector rotation derived from any of the above relationships.
請求項1又は請求項2に記載の安全性評価装置としてコンピュータを機能させるための安全性評価プログラム。 A safety evaluation program for operating a computer as the safety evaluation device according to claim 1 or 2.
JP2019209072A 2019-11-19 2019-11-19 SAFETY EVALUATION DEVICE, SAFETY EVALUATION METHOD AND SAFETY EVALUATION PROGRAM Active JP7146722B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019209072A JP7146722B2 (en) 2019-11-19 2019-11-19 SAFETY EVALUATION DEVICE, SAFETY EVALUATION METHOD AND SAFETY EVALUATION PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019209072A JP7146722B2 (en) 2019-11-19 2019-11-19 SAFETY EVALUATION DEVICE, SAFETY EVALUATION METHOD AND SAFETY EVALUATION PROGRAM

Publications (2)

Publication Number Publication Date
JP2021081591A true JP2021081591A (en) 2021-05-27
JP7146722B2 JP7146722B2 (en) 2022-10-04

Family

ID=75965039

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019209072A Active JP7146722B2 (en) 2019-11-19 2019-11-19 SAFETY EVALUATION DEVICE, SAFETY EVALUATION METHOD AND SAFETY EVALUATION PROGRAM

Country Status (1)

Country Link
JP (1) JP7146722B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7155534B2 (en) 2018-02-16 2022-10-19 富士電機株式会社 semiconductor equipment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010049215A (en) * 2008-08-25 2010-03-04 Toshiba Corp Parameter generating device, encryption processing system, method, and program
JP2015001555A (en) * 2013-06-13 2015-01-05 Kddi株式会社 SHORTEST VECTOR PROBLEM SOLVING APPARATUS AND SOLVING METHOD USING PARALLEL GaussSieve ALGORITHM IN PUBLIC-KEY ENCRYPTION SCHEME

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010049215A (en) * 2008-08-25 2010-03-04 Toshiba Corp Parameter generating device, encryption processing system, method, and program
JP2015001555A (en) * 2013-06-13 2015-01-05 Kddi株式会社 SHORTEST VECTOR PROBLEM SOLVING APPARATUS AND SOLVING METHOD USING PARALLEL GaussSieve ALGORITHM IN PUBLIC-KEY ENCRYPTION SCHEME

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
石黒 司: "並列Gauss Sieveアルゴリズムを用いた128次元イデアル格子の最短ベクトル問題の求解", CSS2013コンピュータセキュリティシンポジウム2013論文集, vol. 第2013巻, 第4号, JPN6022037043, 14 October 2013 (2013-10-14), JP, pages 62 - 69, ISSN: 0004867159 *

Also Published As

Publication number Publication date
JP7146722B2 (en) 2022-10-04

Similar Documents

Publication Publication Date Title
Smart et al. Fully homomorphic SIMD operations
Doröz et al. Homomorphic AES evaluation using the modified LTV scheme
JP4334582B2 (en) Secret sharing apparatus, method and program
JP4575283B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, PROGRAM, AND METHOD
EP2962185B1 (en) Random number generator and stream cipher
JP4197710B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, PROGRAM, AND METHOD
JP2016035554A (en) Compact fuzzy private matching using full homomorphic encryption scheme
Dartois et al. SQISignHD: new dimensions in cryptography
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
Lauter Postquantum opportunities: lattices, homomorphic encryption, and supersingular isogeny graphs
Aguilar Melchor et al. A comparison of the homomorphic encryption libraries HElib, SEAL and FV-NFLlib
JP2009175197A (en) Encryption device, decryption device, key generation device and program
Dey et al. Progress in multivariate cryptography: Systematic review, challenges, and research directions
Ramos-Calderer et al. Quantum search for scaled hash function preimages
JP2009116183A (en) Encryption device, decryption device, key generating device, and program
US11599681B2 (en) Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program
JP2021081591A (en) Safety evaluation device, safety evaluation method, and safety evaluation program
JP2021124679A (en) Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program
JP2007187908A (en) Modular exponentiation calculation device and method having tolerance to side-channel attack
JP6885460B2 (en) Reverse image sampling device, reverse image sampling method and reverse image sampling program
JP2021081592A (en) Safety evaluation device, safety evaluation method, and safety evaluation program
Mono et al. Implementing and Optimizing Matrix Triples with Homomorphic Encryption
JP5210712B2 (en) Compressed RSA coefficient calculation method
JP2021083039A (en) Secret arithmetic unit, secret arithmetic method, and secret arithmetic program
JP2008286964A (en) Encryption apparatus, decryption apparatus, encryption method, decryption method and program for stream encryption

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211130

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220831

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220906

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220921

R150 Certificate of patent or registration of utility model

Ref document number: 7146722

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150