Home Self-dual DeepBKZ for finding short lattice vectors
Article Open Access

Self-dual DeepBKZ for finding short lattice vectors

  • Masaya Yasuda EMAIL logo
Published/Copyright: June 14, 2020
Become an author with De Gruyter Brill

Abstract

In recent years, the block Korkine-Zolotarev (BKZ) and its variants such as BKZ 2.0 have been used as de facto algorithms to estimate the security of a lattice-based cryptosystem. In 2017, DeepBKZ was proposed as a mathematical improvement of BKZ, which calls LLL with deep insertions (DeepLLL) as a subroutine alternative to LLL. DeepBKZ can find a short lattice vector by smaller blocksizes than BKZ. In this paper, we develop a self-dual variant of DeepBKZ, as in the work of Micciancio and Walter for self-dual BKZ. Like DeepBKZ, our self-dual DeepBKZ calls both DeepLLL and its dual variant as main subroutines in order to accelerate to find a very short lattice vector. We also report experimental results of DeepBKZ and our self-dual DeepBKZ for random bases on the Darmstadt SVP challenge.

1 Introduction

Since the US National Institute of Standards and Technology (NIST) began a process to develop new standards for post-quantum cryptography (PQC) in 2015 and called for proposals in 2016, it has rapidly accelerated to research lattice-based cryptography as a candidate of PQC. At the submission deadline of November 30, 2017 for the call, NIST received more than 20 proposals of lattice-based cryptosystems (see the web page of “Round 1 Submissions” of [13]). The security of such proposals relies on the hardness of lattice problems such as LWE and NTRU, and it is becoming more important to precisely evaluate the hardness.

Lattice basis reduction is a strong tool in cryptanalysis, and it has been used to estimate the security of lattice-based cryptosystems. In particular, BKZ [16] and its variants such as BKZ 2.0 [3] are de facto algorithms to estimate the security level (see [1]). Given β, BKZ repeatedly calls an SVP oracle in a β-dimensional lattice to find a short lattice vector. In security estimation, it is discussed which blocksizes β are required for BKZ to find a short lattice vector of target norm. A new improvement of BKZ, called DeepBKZ [18], was proposed, which calls DeepLLL [16, Section 3] before every SVP oracle to find a short lattice vector by smaller blocksizes than BKZ. In fact, DeepBKZ with around β = 40 had found new solutions for the SVP challenge [4] in most dimensions from 102 to 127.

In this paper, we develop a self-dual variant of DeepBKZ, emulating the self-dual BKZ by Micciancio and Walter [11]. The original self-dual BKZ calls SVP and dual SVP oracles in forward and backward tours, respectively, to find a reduced basis B = [b1, …, bn] with short b1 and long bn, where [b1,,bn] denotes the Gram-Schmidt orthogonalization of B. In our self-dual DeepBKZ, DeepLLL and dual DeepLLL [19] are respectively called to reduce [b1, …, bn−1] and [π2(b1), …, π2(bn)] before every SVP and dual SVP oracles, where π2 denotes the orthogonal projection. Our construction is similar to [11], but its mathematical background is based on classical proofs of Mordell’s inequality as well as the slide reduction algorithm [6] (see also [12]). Like DeepBKZ [18], we hope that DeepLLL and its dual variant could help to find a basis with shorterb1 and longerbn than the original self-dual BKZ [11] (as a result, we expect that a very short lattice vector could be found). To show practicality, we report experimental results of both DeepBKZ and our self-dual variant for random bases on [4].

Notation 1.1

The symbols ℤ and ℝ denote the ring of integers and the field of real numbers, respectively. We represent all vectors in column format. For a vector a = (a1, …, an) ∈ ℝn, let ∥a∥ denote its Euclidean norm. For a = (a1, …, an) and b = (b1, …, bn), let 〈a, b〉 denote the inner product i=1naibi.

2 Preliminaries

In this section, we review some definitions on lattices. We also introduce typical reduction algorithms and DeepBKZ [18], an improvement of BKZ.

2.1 Lattices

(Primal) lattices and bases

Let b1, …, bn be linearly independent vectors in ℝn. The set of all integral linear combinations of the bi’s is a (full-rank) lattice

L=L(b1,,bn)=i=1nxibi:xiZ for all 1in

of dimension n with basis B = [b1, …, bn] ∈ ℝn×n. Every lattice has infinitely many bases if n ≥ 2; If two bases B1 and B2 span the same lattice, there exists a unimodular matrix V ∈ GLn(ℤ) with B1 = B2V. The volume of L is defined as vol(L) = ∣det(B)∣ > 0, which is independent of the choice of bases. The Gram-Schmidt orthogonalization (GSO) for an ordered basis B is the orthogonal family B=[b1,,bn], recursively defined by b1 := b1 and

bi:=bij=1i1μi,jbj with μi,j:=bi,bjbj2

for 2 ≤ in. Then vol(L)=i=1nbi. For 2 ≤ n, let π denote the orthogonal projection over the orthogonal supplement of the ℝ-vector space 〈b1, …, b−1〉_ℝ (note that π depends on a basis, and set π1 = id). For 1 ≤ ijn, we denote by B[i,j] the local projected block [πi(bi), πi(bi+1), …, πi(bj)], and by L[i,j] the lattice spanned by B[i,j]. The first successive minimum is the length of a shortest non-zero vector in a lattice L, denoted by λ1(L).

Dual lattices and dual bases

The dual of a lattice L is defined as

L^=xspanR(L):x,yZ for all yL,

where span(L) denotes the ℝ-vector space spanned by the vectors in L. The dual of a full-rank lattice with basis B has a basis D = (B−1). In other words, the relation DB = I is always maintained, where I is the identity matrix. This tells how the dual basis D changes with respect to changes of the primal basis B.

2.2 Lattice Basis Reduction

Here we introduce some notions of reduction and algorithms to achieve them.

LLL

For a parameter 14 < δ < 1, a basis B = [b1, …, bn] is called δ-LLL-reduced if it satisfies the two conditions; (i) It is size-reduced, namely, the GSO coefficients satisfy ∣μi,j∣ ≤ 12 for all j < i. (ii) It satisfies Lovász’ condition, namely, δbk12πk1(bk)2 for all k. An LLL-reduced basis can be found by the LLL algorithm [10], in which adjacent basis vectors bk−1 and bk are swapped if Lovász’ condition does not hold.

DeepLLL

It is a straightforward generalization of LLL, in which non-adjacent vectors can be changed; If the deep exchange conditionπi(bk) ∥2 < δbi2 is satisfied for some i < k, the vector bk is inserted between bi−1 and bi as

B[b1,,bi1,bk,bi,,bk1,bk+1,,bn],(1)

This is called a deep insertion. Every output basis of DeepLLL satisfies the following condition; For 14 < δ < 1, a basis B = [b1, …, bn] is called δ-DeepLLL-reduced if it is size-reduced and it also satisfies δbi2 ≤ ∥ πi(bk) ∥2 for all i < k.

BKZ

A basis B = [b1, …, bn] of a lattice L is called HKZ-reduced if it is size-reduced and it satisfies bi = λ1(πi(L)) for every 1 ≤ in. The notion of BKZ-reduction is a local block version of HKZ-reduction, defined as follows [14, 15, 16]; For β ≥ 2, a basis B = [b1, …, bn] of a lattice L is called β-BKZ-reduced (simply called β-reduced in [14, 16]) if it is size-reduced and every local block B[j,j+β−1] is HKZ-reduced for 1 ≤ jnβ+1. The second condition means bj = λ1 (L[j,k]) for every 1 ≤ j ≤ n-1 with k = min(j + β − 1, n). The original BKZ algorithm [16] finds an almost β-BKZ-reduced basis, and it calls LLL to reduce every local block before enumeration of a shortest vector over the block lattice. Efficient variants of BKZ have been proposed such as BKZ 2.0 [3], and some of them have been implemented in software (e.g., [5]).

Self-dual BKZ

Motivated from the slide reduction algorithm [6], an elegant generalization of LLL (see also Section 3.3 below), the self-dual BKZ algorithm was proposed by Micciancio and Walter [11]. Their algorithm is based on a new notion [11, Definition 1] of block reduction using lattice duality (cf., the slide reduction algorithm is based on classical proofs of Mordell’s inequality, see also [12] for details). The output quality of self-dual BKZ in the worst case is proven to be at least as the worst case behavior of BKZ [11, Theorem 1]. The self-dual BKZ algorithm calls primal SVP and dual SVP oracles over local blocks in forward and backward tours, respectively, and it calls forward and backward tours alternately. Like BKZ, self-dual BKZ is a proper block generalization of the LLL algorithm.

DeepBKZ

It was proposed in [18], which calls DeepLLL as a subroutine alternative to LLL in BKZ. Every output basis of DeepBKZ satisfies the following condition of reduction; For 14 < δ < 1 and β ≥ 2, a basis is called (δ, β)-DeepBKZ-reduced if it is both δ-DeepLLL-reduced and β-BKZ-reduced. In Algorithm 1, we give a detailed algorithm of DeepBKZ with early-abort strategy, adopted in BKZ 2.0; For an input basis B = [b1, …, bn] of a lattice L, we terminate DeepBKZ with blocksize β after

N=Cnβ2logn+loglogmax1inbivol(L)1/n(2)

tours, where C is a small constant. Since it is proven in [9] that the output basis of BKZ after N tours has an enough quality, we expect that a similar result would hold for DeepBKZ (we took different values for C in our experiments).

Dual DeepBKZ

It is a dual version of DeepBKZ proposed in [19]. It consists of the dual enumeration in self-dual BKZ [11] and a dual version of DeepLLL to reduce the dual basis of an input basis. In particular, in dual DeepLLL [19, Algorithm 1], a basis transformation is performed as

B[b1,,bi1,bi+1,,bk,bi,bk+1,,bn],(3)

called a dual deep insertion (this is opposite to the primal deep insertion (1)).

3 Self-dual DeepBKZ

In this section, we develop a self-dual variant of DeepBKZ.

3.1 Overview of algorithm

Algorithm 2 is our self-dual DeepBKZ. It consists of two parts of a forward tour and a backward tour, as in self-dual BKZ by Micciancio and Walter [11]. Let B = [b1, …, bn] be an input basis of self-dual DeepBKZ with blocksize 3 ≤ βn − 1. We describe an overview for each part as follows:

Forward tour

As in the original self-dual BKZ [11], we call SVP oracles in dimension β to reduce every local block B[j,j+β−1] from j = 1 to nβ. In our self-dual DeepBKZ, we additionally call DeepLLL for the sub-basis [b1, …, bn−1] before enumeration to find a shortest vector over every block lattice L[j,j+β−1]. Note that this part does not change the last basis vector bn.

Backward tour

As in [11], we call dual SVP oracles in dimension β to reduce the dual basis of every local block B[jβ+1,j] from j = n down to β + 1. Similarly to the above part, we call dual DeepLLL [19, Algorithm 1], a dual variant of DeepLLL, before the dual enumeration [11, Algorithm 2] (see also Appendix A for the dual enumeration). As in the above part, we restrict the index i in every dual deep insertion (3) from i = n − 1 to 2 in order not to change the first basis vector b1 by dual DeepLLL. This means that it reduces the local block B[2,n] by dual DeepLLL, equivalently, it reduces its dual basis by (primal) DeepLLL.

3.2 Terminating condition

A mathematical terminating condition is given in [11, Lemma 1] for the original self-dual BKZ, but it is mentioned in [11] that such condition might never be met in practice. As in [11], we use the early-abort strategy (cf., the termination of the original self-dual BKZ depends on the behavior of GSA slopes). We count a pair of forward and backward tours as one tour of our self-dual DeepBKZ. After

M=Cn2β2(logn+loglogmax1inbivol(L)1/n)(4)

tours with the same constant C as in (2), we terminate self-dual DeepBKZ with blocksize β for an input basis B = [b1, …, bn] of a lattice L (we replace the denominator of (2) by 2β, see [11, Section 4] for details).

3.3 Mathematical background and our motivation

Inspired by classical proofs of Mordell’s inequality, a reduction notion is introduced in [12]; A basis B = [b1, …, bn] of a lattice L is called Mordell-reduced with factor ε ≥ 0 if it satisfies both

b1=λ1Lb1,,bn1 and 1bn(1+ε)λ1(π2(L)^).

Mordell’s reduction satisfies some important properties such as [12, Lemma 10], and the slide reduction algorithm [6] is designed to achieve a blockwise version of Mordell’s reduction. In particular, the output quality of the slide reduction algorithm in the worst case is proven to be slightly better than that of BKZ for a fixed blocksize β. (However, from [11, Figure 2], the output quality of the slide reduction algorithm is worse than both BKZ and self-dual BKZ in practice.)

In order to describe the basic idea of our self-dual DeepBKZ, consider

b1b2bn1π2(b2)π2(b3)π2(bn).

for a basis B = [b1, …, bn] of a lattice L. Our self-dual DeepBKZ reduces the sub-basis [b1, …, bn−1] by DeepBKZ [18] in forward tours. It also reduces the basis [π2(b2), …, π2(bn)] of the projected lattice π2(L) by dual DeepBKZ [19] in backward tours, equivalently, it reduces the dual basis by DeepBKZ. With this construction, we expect that our self-dual DeepBKZ could find a basis satisfying a condition close to Mordell’s reduction. In particular, like DeepBKZ [18], we hope that our self-dual DeepBKZ could find a shorterb1 (resp., longerbn) with help of DeepLLL (resp., dual DeepLLL [19]) than the original self-dual BKZ [11].

3.4 Implementation

We implemented DeepBKZ (Algorithm 1) and self-dual DeepBKZ (Algorithm 2) in C++ programs with the NTL library [17]. We used the g++ complier with -O3 -std=c++11 option. We set a triple of B = [b1, …, bn], μ= (μi,j)1≤j<in and (Bi)1≤in as a class, where B is a basis, μ its GSO coefficients, and Bi=bi2. We used the int data type for B, and long double for both μ and (Bi)1≤in. To keep track of the GSO information in DeepLLL and dual DeepLLL, we implemented pseudo-codes of [18, Algorithm 4] and [19, Algorithm 2], respectively. We also implemented [8, Algorithm 2] and Algorithm 3 in Appendix A for primal and dual enumerations, respectively. We took a full enumeration setting as in [18] for both enumerations. Our experiments ran on an Intel Xeon CPU E3-1225 v6@3.30GHz with 32.0 GB RAM (we run every reduction algorithm over a single thread).

3.5 Experimental results

Here we report experimental results of DeepBKZ and self-dual DeepBKZ for random bases on [4] in terms of both the output quality and performance.

Output quality

The Hermite factor is a good index to measure the (practical) output quality of a reduction algorithm [7]. The factor of an algorithm for a basis of an n-dimensional lattice L is defined as

γ=bvol(L)1/n,

where b is a shortest non-zero basis vector output by the algorithm. Smaller γ means that the algorithm can find a shorter lattice vector. For practical algorithms such as LLL and BKZ, Gama and Nguyen [7] experimentally showed that the root Hermite factor γ1n converges a constant for high dimensions. In Table 1 (resp., Table 2), we show the average of the root Hermite factor of DeepBKZ (resp., self-dual DeepBKZ), for random bases on the SVP challenge [4] in dimensions from n = 100 to 115 with seeds 0–9. We took C = 1.0 and 4.0 for two different early-abort constants in (2) and (4) (cf., C = 0.25, 2.0 and 8.0 were taken in [20]). As in [18, 19], we set δ = 0.99 as reduction parameters of both DeepLLL and its dual variant. We took as input bases reduced by BKZ with blocksize 20, implemented in the fplll library [5]. We increased blocksizes β by every 5 from 20 up to 45 for both DeepBKZ and its self-dual variant (it becomes very slow for β ≥ 50 since we did not use any pruning in [8]). We see from Tables 1 and 2 that the root Hermite factor (i.e., the output quality) of DeepBKZ is slightly better than that of self-dual DeepBKZ for β ≥ 30. In Table 1, we also show the average of the root Hermite factor of DeepBKZ without early-abort, which data are from [18, Table 2]. As seen from Table 1, the root Hermite factor of DeepBKZ with early-abort is pretty worse than without early-abort for β ≥ 30.

Table 1

The average of the root Hermite factor γ1n of DeepBKZ with early-abort for some constants C, for the SVP challenge in dimensions n with seeds 0–9 (C = ∞ means the average factor without early-abort, which data are from [18])

nCβ = 20β = 25β = 30β = 35β = 40β = 45
1001.01.010771.010511.010391.010331.010221.01008
4.01.010771.010351.010111.010051.009941.00987
1.010431.009991.009581.00949
1051.01.010711.010281.010221.010141.010051.01003
4.01.010711.010231.009941.009941.009911.00979
1.010411.009831.009371.00924
1101.01.010571.010311.010231.010121.010171.01004
4.01.010571.010241.010091.010041.009981.00983
1.010101.009751.009411.00916
1151.01.010651.010391.010271.010201.010031.00997
4.01.010651.010321.010101.009951.009931.00980
1.010211.009641.009171.00899

Table 2

Same as Table 1, but the root Hermite factor of self-dual DeepBKZ

nCβ = 20β = 25β = 30β = 35β = 40β = 45
1001.01.010781.010651.010601.010561.010511.01049
4.01.010381.010351.010311.010251.010241.01016
1051.01.010531.010531.010451.010421.010361.01031
4.01.010331.010161.010081.010081.010071.01007
1101.01.010601.010481.010381.010361.010361.01029
4.01.010381.010331.010301.010151.010091.01002
1151.01.010541.010361.010361.010361.010221.01017
4.01.010261.010211.010161.010141.010131.01012

Performance

In Tables 3 (resp., Table 4), we show the average of the running time of DeepBKZ (resp., self-dual DeepBKZ) for the SVP challenge in dimensions from n = 100 to 115 with seeds 0–9. From Tables 3 and 4, our self-dual DeepBKZ is at least 3 times slower than DeepBKZ for β ≥ 30. In particular, DeepBKZ is much faster for 20 ≤ β ≤ 30 due to that a DeepBKZ-reduced basis can be found by tours less than the terminating condition (2). Moreover, DeepBKZ with early-abort is much faster than without early-abort; For example, it took 5242 seconds ≈ about 1.5 hours to run DeepBKZ with early-abort constant C = 4.0 in n = 115 for blocksizes up to β = 45, while a few days are required to run DeepBKZ without early-abort.

Table 3

The average of the total running time (seconds) of DeepBKZ with blocksizes β for the SVP challenge in dimensions n with seeds 0–9 (each time was counted from blocksize 20 to given β)

nCβ = 20β = 25β = 30β = 35β = 40β = 45
1001.092152112258439
4.09431383237501330
1051.0103471193433801
4.0105320251011772032
1101.027551222986371006
4.0285927380319853529
1151.076851734248821470
4.07891437132929165242

Table 4

Same as Table 3, but the total running time (seconds) of self-dual DeepBKZ

nCβ = 20β = 25β = 30β = 35β = 40β = 45
1001.0231340392484664911
4.05399431293155921963198
1051.031541059978511041714
4.0107517352437301247587548
1101.077711821460186126474109
4.01151279544436043833512154
1151.0125418172565329546226606
4.0326368869702128991732524118

4 Concluding remarks

In this section, we first compare reduction algorithms in terms of both the output quality and performance. We then conclude this work and give our future work.

4.1 Comparison of algorithms

Output quality

A prediction of limiting value of the root Hermite factor γ1n achieved by BKZ is given in Chen’s thesis [2] (it is based on Gaussian Heuristic, and it seems to hold for β ≥ 40 in practice);

limnγ1nβ2πeπβ1β12(β1).(5)

Actually, as seen from [11, Figure 2], the output quality of both BKZ and self-dual BKZ approximately follows the prediction (5) for β ≥ 40. As discussed in Subsection 3.5, the output quality of our self-dual DeepBKZ is slightly worse than that of DeepBKZ for every β ≥ 30. This is the same as the relation between BKZ and self-dual BKZ, shown in [11]. While the prediction (5) implies that β ≥ 85 is required for BKZ to achieve γ1n = 1.01, it requires only β ≥ 40 for both DeepBKZ and our self-dual DeepBKZ with early-abort from Tables 1 and 2 (cf., only β ≥ 30 is required for DeepBKZ without early-abort).

Performance

Since DeepLLL and dual DeepLLL are somewhat costly, DeepBKZ and our self-dual DeepBKZ are more costly than BKZ and self-dual BKZ. However, for blocksizes β ≥ 30, SVP and dual SVP oracles (i.e., enumerations) are dominant in DeepBKZ and our self-dual DeepBKZ. Hence DeepBKZ and its variants have comparable running time to BKZ and its variants for high blocksizes.

4.2 Conclusion and future work

We showed by experiments that DeepLLL [16] and dual DeepBKZ [19] can accelerate to find a short lattice vector in the framework of self-dual BKZ [11] even for small blocksizes. Furthermore, our self-dual DeepBKZ has comparable running time to self-dual BKZ for high blocksizes since the enumeration cost is dominant for β ≥ 30. However, DeepBKZ [18] is more efficient than our self-dual DeepBKZ in both the output quality and performance. Therefore, as a future work, we would like to improve DeepBKZ with pruning as in BKZ 2.0 [3], and analyze its practical output quality for high blocksizes β ≥ 50.

Acknowledgement

This work was supported by JST CREST Grant Number JPMJCR14D6, Japan. A part of this work was also supported by JSPS KAKENHI Grant Number 16H02830, Japan.

References

[1] Martin R Albrecht, Benjamin R Curtis, Amit Deo, Alex Davidson, Rachel Player, Eamonn W Postlethwaite, Fernando Virdia and Thomas Wunderer, Estimate all the {LWE, NTRU} schemes!, Cryptology ePrint Archive: Report 2018/331 (2018).10.1007/978-3-319-98113-0_19Search in Google Scholar

[2] Yuanmi Chen, Réduction de réseau et sécurité concrete du chiffrement completement homomorphe, Ph.D. thesis, Paris 7, 2013.Search in Google Scholar

[3] Yuanmi Chen and Phong Q Nguyen, BKZ 2.0: Better lattice security estimates, in: Advances in CryptologyASIACRYPT 2011, Lecture Notes in Computer Science 7073, Springer, pp. 1–20, 2011.10.1007/978-3-642-25385-0_1Search in Google Scholar

[4] TU Darmstadt, SVP Challenge, Available at https://www.latticechallenge.org/svp-challenge/, 2018.Search in Google Scholar

[5] The FPLLL development team, fplll, a lattice reduction library, Available at https://github.com/fplll/fplll, 2016.Search in Google Scholar

[6] Nicolas Gama and Phong Q Nguyen, Finding short lattice vectors within mordell’s inequality, in: Proceedings of the fortieth annual ACM symposium on Theory of computing, ACM, pp. 207–216, 2008.10.1145/1374376.1374408Search in Google Scholar

[7] Nicolas Gama and Phong Q Nguyen, Predicting lattice reduction, in: Advances in CryptologyEUROCRYPT 2008, Lecture Notes in Computer Science 4965, Springer, pp. 31–51, 2008.10.1007/978-3-540-78967-3_3Search in Google Scholar

[8] Nicolas Gama, Phong Q Nguyen and Oded Regev, Lattice enumeration using extreme pruning, in: Advances in CryptologyEUROCRYPT 2010, Lecture Notes in Computer Science 6110, Springer, pp. 257–278, 2010.10.1007/978-3-642-13190-5_13Search in Google Scholar

[9] Guillaume Hanrot, Xavier Pujol and Damien Stehlé, Analyzing blockwise lattice algorithms using dynamical systems, in: Advances in CryptologyCRYPTO 2011, Lecture Notes in Computer Science 6841, Springer, pp. 447–464, 2011.10.1007/978-3-642-22792-9_25Search in Google Scholar

[10] Arjen Klaas Lenstra, Hendrik Willem Lenstra and László Lovász, Factoring polynomials with rational coefficients, Mathematische Annalen261 (1982), 515–534.10.1007/BF01457454Search in Google Scholar

[11] Daniele Micciancio and Michael Walter, Practical, predictable lattice basis reduction, in: Advances in CryptologyEUROCRYPT 2016, Lecture Notes in Computer Science 9665, Springer, pp. 820–849, 2016.10.1007/978-3-662-49890-3_31Search in Google Scholar

[12] Phong Q Nguyen, Hermite’s constant and lattice algorithms, The LLL Algorithm, Springer, 2009, pp. 19–69.10.1007/978-3-642-02295-1_2Search in Google Scholar

[13] The National Institute of Standards and Technology (NIST), Post-Quantum Cryptography Standardization, Available at https://csrc.nist.gov/projects/post-quantum-cryptography/post-quantum-cryptography-standardization.Search in Google Scholar

[14] Claus-Peter Schnorr, A hierarchy of polynomial time lattice basis reduction algorithms, Theoretical computer science53 (1987), 201–224.10.1016/0304-3975(87)90064-8Search in Google Scholar

[15] Claus-Peter Schnorr, Block Korkin-Zolotarev bases and successive minima, International Computer Science Institute, 1992.Search in Google Scholar

[16] Claus-Peter Schnorr and Martin Euchner, Lattice basis reduction: Improved practical algorithms and solving subset sum problems, Mathematical programming66 (1994), 181–199.10.1007/3-540-54458-5_51Search in Google Scholar

[17] Victor Shoup, NTL: A Library for doing Number Theory, Available at http://www.shoup.net/ntl/.Search in Google Scholar

[18] Junpei Yamaguchi and Masaya Yasuda, Explicit formula for Gram-Schmidt vectors in LLL with deep insertions and its applications, in: International Conference on Number-Theoretic Methods in CryptologyNuTMiC 2017, Lecture Notes in Computer Science 10737, Springer, pp. 142–160, 2017.10.1007/978-3-319-76620-1_9Search in Google Scholar

[19] Masaya Yasuda, Junpei Yamaguchi, Michiko Ooka and Satoshi Nakamura, Development of a dual version of DeepBKZ and its application to solving the LWE challenge, in: Progress in CryptologyAFRICACRYPT 2018, Lecture Notes in Computer Science 10831, Springer, pp. 162–182, 2018.10.1007/978-3-319-89339-6_10Search in Google Scholar

[20] Yang Yu and Léo Ducas, Second order statistical behavior of LLL and BKZ, in: Selected Areas in CryptographySAC 2017, Lecture Notes in Computer Science 10719, Springer, pp. 3–22, 2017.10.1007/978-3-319-72565-9_1Search in Google Scholar

A Dual enumeration with modifications

In Algorithm 3, we show an algorithm of dual enumeration by [11, Algorithm 2] with modifications for efficiency. The modifications are based on [8, Appendix B] for primal enumeration. The strategy of dual enumeration is as follows; Let B = [b1, …, bn] be a basis of a lattice L, and v a short vector over the dual lattice . By definition of , we have xi := 〈v, bi〉 ∈ ℤ for all 1 ≤ in, that is, we have v=i=1nxidiL^ for the dual basis D = [d1, …, dn] of B. Since xi=v,bij=1i1μi,jv,bj for each 1 ≤ in, we can compute xi:=v,bi from (x1, …, xi) ∈ ℤi as x1=x1 and xi=xi+j=1i1μi,jxj for 2 ≤ in. On the other hand, for a search bound A > 0 with ∥ v2A, we have

xi+j=1i1μi,jxj2v2bi2Abi2 for 1in.

With these equations, we enumerate all coefficient vectors x = (x1, …, xn) ∈ ℤn of dual lattice vectors v with ∥ v2A.

Algorithm 1

DeepBKZ [18] with early-abort

Input: A basis B = [b1, …, bn] of a lattice L, a reduction parameter 14 < δ < 1, a blocksize β ∈ ℤ with 2 ≤ βn, and the maximum number of tours N > 0
Output: A (δ, β)-DeepBKZ-reduced basis B of L (if N is sufficiently large)
1: B ← DeepLLL(B, δ) /* Compute μ := (μi,j) and Bi:=bi2 together
2: z ← 0, j ← 0, t ← 0 /* t is the current number of tours
3: whilez < n − 1 do
4:     ifj = n − 1 then
5:       j ← 0 and tt + 1
6:       iftNthen
7:         break /* Early-abort */
8:       end if
9:     end if
10:     jj + 1 /* j mod n − 1 */
11:     k ← min (j + β − 1, n) and h ← min(k + 1, n)
12:     v = (vj, …, vk) ← Enum(μ[j,k], (Bi)jik, R) /* Find v ∈ ℤkj+1 such that πji=jkvibi=λ1(L[j,k]) by enumeration for a search bound R (see [8, Algorithm 2], and we took R = δBj for our experiments) */
13:     ifv ≠ (± 1, 0, …, 0) then
14:       z ← 0
15:       wi=jkvibiL
16:       [b1, …, bh, 0] ← MLLL([b1, …, bj−1, w, bj, …, bh], δ) /* Remove the linear dependency after insertion of w at the j-th position */
17:       [b1, …, bh] ← DeepLLL([b1, …, bh], δ) at stage j
18:     else
19:       zz + 1
20:       [b1, …, bh] ← DeepLLL([b1, …, bh], δ) at stage h − 1
21:     end if
1: end while

Algorithm 2

Self-dual DeepBKZ

Input: A basis B = [b1, …, bn] of a lattice L, a reduction parameter 14 < δ < 1, a blocksize 3 ≤ βn − 1, and the maximum number of tours M > 0
Output: A reduced basis B of L
1: t ← 0
2: Compute the GSO information μi,j and Bi = bi2
3: whiletMdo
4:     /* Part of a forward tour */
5:     [b1, …, bn−1] ← DeepLLL([b1, …, bn−1], δ)
6:     forj = 1 to nβdo
7:       kj + β − 1
8:       h ← min(k + 1, n − 1)
9:       Same as steps from 8 to 21 in Algorithm 1 for DeepBKZ
10:     end for
11:     /* Part of a backward tour */
12:     B ← Dual_DeepLLL(B, δ) at stages from n − 1 downto 2
13:     forj = n downto β + 1 do
14:       kjβ + 1
15:       x ← Dual_Enum(μ[k,j], (Bi)kij, A) /* Enumerate coefficient vectors x ∈ ℤjk+1 of short vectors v (Appendix A) */
16:       ifx ≠ (0, …, 0, ± 1) then
17:         Insert v into the dual basis of B at the j-th position to obtain a new basis B /* it can be achieved by LLL, see [11, Section 7] */
18:         B ← Dual_DeepLLL(B, δ) at stages from n − 1 downto 2
19:       end if
20:     end for
21:     t ← t + 1 /* current number of tours */
22: end while

Algorithm 3

Dual_Enum: Dual-Enumeration [11] with modifications

Input: GSO information (μi,j) and Bi = bi2 of a basis B = [b1, …, bn] of a lattice L, and a search bound A > 0
Output: The coordinate vector x = (x1, …, xn) ∈ ℤn of a dual lattice vector v satisfying ∥ v2A (if such v exists)
1: fork = 1 to ndo
2:     Ck = 1/Bk /* inverse of Bk */
3:     μ͡k,k = 1; forj = k + 1 ton: μ͡k,j ← −h=kj1μj,hμ͡k,h;
4: end for
5: σ ← (0)(n+1)×n /* (n + 1) × n matrix with all entries 0 */
6: r1 = 0, r2 = 1, …, rn = n − 1, rn+1 = n
7: ρ0 = ρ1 = … = ρn = 0 /* partial norm */
8: x1 = 1, x2 = … = xn = 0 /* current coordinate vector x */
9: c1 = … = cn = 0; w1 = … = wn = 0 /* centers and jumps */
10: k ← 1, last_nonzero ← 1 /* largest i for which xi ≠ 0 */
11: while true do
12:     ρkρk−1 + (xkck)2Ck
13:     ifρkAthen
14:       ifk = nthen
15:         returnx = (x1, …, xn) ∈ ℤn /* solution found; program ends */
16:       else
17:         kk + 1; rk+1 ← min(rk, rk+1)
18:         fori = rk to k − 1 do
19:           σi+2,kσi+1,k + xiμ͡i,k
20:       end for
21:       ck ← −σk+1,k; xk ← ⌊ck⌉; wk ← 1
22:     end if
23:   else
24:     kk − 1
25:     ifk = 0 then return ∅ /* there is no solution */
26:     rk+1k
27:     ifk ≥ last_nonzero then
28:       last_nonzero ← k; xkxk + 1
29:     else
30:       ifxk > ckthenxkxkwk; elsexkxk + wk;
31:       wkwk + 1
32:     end if
33:   end if
34: end while

Received: 2020-02-05
Accepted: 2020-02-10
Published Online: 2020-06-14

© 2020 M. Yasuda, published by De Gruyter

This work is licensed under the Creative Commons Attribution 4.0 International License.

Articles in the same Issue

  1. MathCrypt 2018
  2. Preface to the First Annual MathCrypt Proceedings Volume
  3. Multiparty Non-Interactive Key Exchange and More From Isogenies on Elliptic Curves
  4. Recovering Secrets From Prefix-Dependent Leakage
  5. Quasi-subfield Polynomials and the Elliptic Curve Discrete Logarithm Problem
  6. A signature scheme from the finite field isomorphism problem
  7. Efficiently Processing Complex-Valued Data in Homomorphic Encryption
  8. Flattening NTRU for Evaluation Key Free Homomorphic Encryption
  9. Self-dual DeepBKZ for finding short lattice vectors
  10. Designing Efficient Dyadic Operations for Cryptographic Applications
  11. Characterizing overstretched NTRU attacks
  12. New Techniques for SIDH-based NIKE
  13. A subexponential-time, polynomial quantum space algorithm for inverting the CM group action
  14. Nutmic JMC Special Edition
  15. Preface for the Number-Theoretic Methods in Cryptology conferences
  16. A framework for cryptographic problems from linear algebra
  17. Improved cryptanalysis of the AJPS Mersenne based cryptosystem
  18. New number-theoretic cryptographic primitives
  19. New Zémor-Tillich Type Hash Functions Over GL2 (𝔽pn)
  20. Protecting ECC Against Fault Attacks: The Ring Extension Method Revisited
  21. Hash functions from superspecial genus-2 curves using Richelot isogenies
  22. Can we Beat the Square Root Bound for ECDLP over 𝔽p2 via Representation?
  23. A variant of the large sieve inequality with explicit constants
  24. CHIMERA: Combining Ring-LWE-based Fully Homomorphic Encryption Schemes
  25. Equidistribution Among Cosets of Elliptic Curve Points in Intervals
  26. Integer factoring and compositeness witnesses
  27. Short Principal Ideal Problem in multicubic fields
  28. Algorithms for CRT-variant of Approximate Greatest Common Divisor Problem
  29. Orienting supersingular isogeny graphs
  30. Delegating a Product of Group Exponentiations with Application to Signature Schemes (Submission to Special NutMiC 2019 Issue of JMC)
  31. Complexity bounds on Semaev’s naive index calculus method for ECDLP
  32. Regular Articles
  33. An elementary proof of Fermat’s last theorem for all even exponents
  34. Retraction of: An elementary proof of Fermat’s Last Theorem for all even exponents
  35. Survey on SAP and its application in public-key cryptography
  36. Privacy-preserving verifiable delegation of polynomial and matrix functions
  37. New approach to practical leakage-resilient public-key cryptography
Downloaded on 22.11.2025 from https://www.degruyterbrill.com/document/doi/10.1515/jmc-2015-0053/html
Scroll to top button