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
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
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
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
for 2 ≤ i ≤ n. Then
Dual lattices and dual bases
The dual of a lattice L is defined as
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 D⊤B = 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
DeepLLL
It is a straightforward generalization of LLL, in which non-adjacent vectors can be changed; If the deep exchange condition ∥ πi(bk) ∥2 <
This is called a deep insertion. Every output basis of DeepLLL satisfies the following condition; For
BKZ
A basis B = [b1, …, bn] of a lattice L is called HKZ-reduced if it is size-reduced and it satisfies
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
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
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
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
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
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., longer
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<i≤n and (Bi)1≤i≤n as a class, where B is a basis, μ its GSO coefficients, and
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
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
The average of the root Hermite factor
| n | C | β = 20 | β = 25 | β = 30 | β = 35 | β = 40 | β = 45 |
|---|---|---|---|---|---|---|---|
| 100 | 1.0 | 1.01077 | 1.01051 | 1.01039 | 1.01033 | 1.01022 | 1.01008 |
| 4.0 | 1.01077 | 1.01035 | 1.01011 | 1.01005 | 1.00994 | 1.00987 | |
| ∞ | – | 1.01043 | 1.00999 | 1.00958 | 1.00949 | – | |
| 105 | 1.0 | 1.01071 | 1.01028 | 1.01022 | 1.01014 | 1.01005 | 1.01003 |
| 4.0 | 1.01071 | 1.01023 | 1.00994 | 1.00994 | 1.00991 | 1.00979 | |
| ∞ | – | 1.01041 | 1.00983 | 1.00937 | 1.00924 | – | |
| 110 | 1.0 | 1.01057 | 1.01031 | 1.01023 | 1.01012 | 1.01017 | 1.01004 |
| 4.0 | 1.01057 | 1.01024 | 1.01009 | 1.01004 | 1.00998 | 1.00983 | |
| ∞ | – | 1.01010 | 1.00975 | 1.00941 | 1.00916 | – | |
| 115 | 1.0 | 1.01065 | 1.01039 | 1.01027 | 1.01020 | 1.01003 | 1.00997 |
| 4.0 | 1.01065 | 1.01032 | 1.01010 | 1.00995 | 1.00993 | 1.00980 | |
| ∞ | – | 1.01021 | 1.00964 | 1.00917 | 1.00899 | – | |
Same as Table 1, but the root Hermite factor of self-dual DeepBKZ
| n | C | β = 20 | β = 25 | β = 30 | β = 35 | β = 40 | β = 45 |
|---|---|---|---|---|---|---|---|
| 100 | 1.0 | 1.01078 | 1.01065 | 1.01060 | 1.01056 | 1.01051 | 1.01049 |
| 4.0 | 1.01038 | 1.01035 | 1.01031 | 1.01025 | 1.01024 | 1.01016 | |
| 105 | 1.0 | 1.01053 | 1.01053 | 1.01045 | 1.01042 | 1.01036 | 1.01031 |
| 4.0 | 1.01033 | 1.01016 | 1.01008 | 1.01008 | 1.01007 | 1.01007 | |
| 110 | 1.0 | 1.01060 | 1.01048 | 1.01038 | 1.01036 | 1.01036 | 1.01029 |
| 4.0 | 1.01038 | 1.01033 | 1.01030 | 1.01015 | 1.01009 | 1.01002 | |
| 115 | 1.0 | 1.01054 | 1.01036 | 1.01036 | 1.01036 | 1.01022 | 1.01017 |
| 4.0 | 1.01026 | 1.01021 | 1.01016 | 1.01014 | 1.01013 | 1.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.
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 β)
| n | C | β = 20 | β = 25 | β = 30 | β = 35 | β = 40 | β = 45 |
|---|---|---|---|---|---|---|---|
| 100 | 1.0 | 9 | 21 | 52 | 112 | 258 | 439 |
| 4.0 | 9 | 43 | 138 | 323 | 750 | 1330 | |
| 105 | 1.0 | 10 | 34 | 71 | 193 | 433 | 801 |
| 4.0 | 10 | 53 | 202 | 510 | 1177 | 2032 | |
| 110 | 1.0 | 27 | 55 | 122 | 298 | 637 | 1006 |
| 4.0 | 28 | 59 | 273 | 803 | 1985 | 3529 | |
| 115 | 1.0 | 76 | 85 | 173 | 424 | 882 | 1470 |
| 4.0 | 78 | 91 | 437 | 1329 | 2916 | 5242 | |
Same as Table 3, but the total running time (seconds) of self-dual DeepBKZ
| n | C | β = 20 | β = 25 | β = 30 | β = 35 | β = 40 | β = 45 |
|---|---|---|---|---|---|---|---|
| 100 | 1.0 | 231 | 340 | 392 | 484 | 664 | 911 |
| 4.0 | 539 | 943 | 1293 | 1559 | 2196 | 3198 | |
| 105 | 1.0 | 315 | 410 | 599 | 785 | 1104 | 1714 |
| 4.0 | 1075 | 1735 | 2437 | 3012 | 4758 | 7548 | |
| 110 | 1.0 | 777 | 1182 | 1460 | 1861 | 2647 | 4109 |
| 4.0 | 1151 | 2795 | 4443 | 6043 | 8335 | 12154 | |
| 115 | 1.0 | 1254 | 1817 | 2565 | 3295 | 4622 | 6606 |
| 4.0 | 3263 | 6886 | 9702 | 12899 | 17325 | 24118 | |
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
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
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 Cryptology–ASIACRYPT 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 Cryptology–EUROCRYPT 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 Cryptology–EUROCRYPT 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 Cryptology–CRYPTO 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 Cryptology–EUROCRYPT 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 Cryptology–NuTMiC 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 Cryptology–AFRICACRYPT 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 Cryptography–SAC 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 L͡. By definition of L͡, we have xi := 〈v, bi〉 ∈ ℤ for all 1 ≤ i ≤ n, that is, we have
With these equations, we enumerate all coefficient vectors x = (x1, …, xn)⊤ ∈ ℤn of dual lattice vectors v ∈ L͡ with ∥ v ∥2 ≤ A.
Algorithm 1
DeepBKZ [18] with early-abort
| Input: A basis B = [b1, …, bn] of a lattice L, a reduction parameter |
| Output: A (δ, β)-DeepBKZ-reduced basis B of L (if N is sufficiently large) |
| 1: B ← DeepLLL(B, δ) /* Compute μ := (μi,j) and |
| 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 t ← t + 1 |
| 6: ift ≥ Nthen |
| 7: break /* Early-abort */ |
| 8: end if |
| 9: end if |
| 10: j ← j + 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)j≤i≤k, R) /* Find v ∈ ℤk−j+1 such that |
| 13: ifv ≠ (± 1, 0, …, 0) then |
| 14: z ← 0 |
| 15: w ← |
| 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: z ← z + 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 |
| Output: A reduced basis B of L |
| 1: t ← 0 |
| 2: Compute the GSO information μi,j and Bi = |
| 3: whilet ≤ Mdo |
| 4: /* Part of a forward tour */ |
| 5: [b1, …, bn−1] ← DeepLLL([b1, …, bn−1], δ) |
| 6: forj = 1 to n−βdo |
| 7: k ← j + β − 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: k ← j − β + 1 |
| 15: x ← Dual_Enum(μ[k,j], (Bi)k≤i≤j, A) /* Enumerate coefficient vectors x ∈ ℤj−k+1 of short vectors v ∈ L͡ (Appendix A) */ |
| 16: ifx ≠ (0, …, 0, ± 1) then |
| 17: Insert v ∈ L͡ 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 = |
| Output: The coordinate vector x = (x1, …, xn)⊤ ∈ ℤn of a dual lattice vector v ∈ L͡ satisfying ∥ v ∥2 ≤ A (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 ← − |
| 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 + (xk − ck)2Ck |
| 13: ifρk ≤ Athen |
| 14: ifk = nthen |
| 15: returnx = (x1, …, xn)⊤ ∈ ℤn /* solution found; program ends */ |
| 16: else |
| 17: k ← k + 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: k ← k − 1 |
| 25: ifk = 0 then return ∅ /* there is no solution */ |
| 26: rk+1 ← k |
| 27: ifk ≥ last_nonzero then |
| 28: last_nonzero ← k; xk ← xk + 1 |
| 29: else |
| 30: ifxk > ckthenxk ← xk − wk; elsexk ← xk + wk; |
| 31: wk ← wk + 1 |
| 32: end if |
| 33: end if |
| 34: end while |
© 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
- MathCrypt 2018
- Preface to the First Annual MathCrypt Proceedings Volume
- Multiparty Non-Interactive Key Exchange and More From Isogenies on Elliptic Curves
- Recovering Secrets From Prefix-Dependent Leakage
- Quasi-subfield Polynomials and the Elliptic Curve Discrete Logarithm Problem
- A signature scheme from the finite field isomorphism problem
- Efficiently Processing Complex-Valued Data in Homomorphic Encryption
- Flattening NTRU for Evaluation Key Free Homomorphic Encryption
- Self-dual DeepBKZ for finding short lattice vectors
- Designing Efficient Dyadic Operations for Cryptographic Applications
- Characterizing overstretched NTRU attacks
- New Techniques for SIDH-based NIKE
- A subexponential-time, polynomial quantum space algorithm for inverting the CM group action
- Nutmic JMC Special Edition
- Preface for the Number-Theoretic Methods in Cryptology conferences
- A framework for cryptographic problems from linear algebra
- Improved cryptanalysis of the AJPS Mersenne based cryptosystem
- New number-theoretic cryptographic primitives
- New Zémor-Tillich Type Hash Functions Over GL2 (𝔽pn)
- Protecting ECC Against Fault Attacks: The Ring Extension Method Revisited
- Hash functions from superspecial genus-2 curves using Richelot isogenies
- Can we Beat the Square Root Bound for ECDLP over 𝔽p2 via Representation?
- A variant of the large sieve inequality with explicit constants
- CHIMERA: Combining Ring-LWE-based Fully Homomorphic Encryption Schemes
- Equidistribution Among Cosets of Elliptic Curve Points in Intervals
- Integer factoring and compositeness witnesses
- Short Principal Ideal Problem in multicubic fields
- Algorithms for CRT-variant of Approximate Greatest Common Divisor Problem
- Orienting supersingular isogeny graphs
- Delegating a Product of Group Exponentiations with Application to Signature Schemes (Submission to Special NutMiC 2019 Issue of JMC)
- Complexity bounds on Semaev’s naive index calculus method for ECDLP
- Regular Articles
- An elementary proof of Fermat’s last theorem for all even exponents
- Retraction of: An elementary proof of Fermat’s Last Theorem for all even exponents
- Survey on SAP and its application in public-key cryptography
- Privacy-preserving verifiable delegation of polynomial and matrix functions
- New approach to practical leakage-resilient public-key cryptography
Articles in the same Issue
- MathCrypt 2018
- Preface to the First Annual MathCrypt Proceedings Volume
- Multiparty Non-Interactive Key Exchange and More From Isogenies on Elliptic Curves
- Recovering Secrets From Prefix-Dependent Leakage
- Quasi-subfield Polynomials and the Elliptic Curve Discrete Logarithm Problem
- A signature scheme from the finite field isomorphism problem
- Efficiently Processing Complex-Valued Data in Homomorphic Encryption
- Flattening NTRU for Evaluation Key Free Homomorphic Encryption
- Self-dual DeepBKZ for finding short lattice vectors
- Designing Efficient Dyadic Operations for Cryptographic Applications
- Characterizing overstretched NTRU attacks
- New Techniques for SIDH-based NIKE
- A subexponential-time, polynomial quantum space algorithm for inverting the CM group action
- Nutmic JMC Special Edition
- Preface for the Number-Theoretic Methods in Cryptology conferences
- A framework for cryptographic problems from linear algebra
- Improved cryptanalysis of the AJPS Mersenne based cryptosystem
- New number-theoretic cryptographic primitives
- New Zémor-Tillich Type Hash Functions Over GL2 (𝔽pn)
- Protecting ECC Against Fault Attacks: The Ring Extension Method Revisited
- Hash functions from superspecial genus-2 curves using Richelot isogenies
- Can we Beat the Square Root Bound for ECDLP over 𝔽p2 via Representation?
- A variant of the large sieve inequality with explicit constants
- CHIMERA: Combining Ring-LWE-based Fully Homomorphic Encryption Schemes
- Equidistribution Among Cosets of Elliptic Curve Points in Intervals
- Integer factoring and compositeness witnesses
- Short Principal Ideal Problem in multicubic fields
- Algorithms for CRT-variant of Approximate Greatest Common Divisor Problem
- Orienting supersingular isogeny graphs
- Delegating a Product of Group Exponentiations with Application to Signature Schemes (Submission to Special NutMiC 2019 Issue of JMC)
- Complexity bounds on Semaev’s naive index calculus method for ECDLP
- Regular Articles
- An elementary proof of Fermat’s last theorem for all even exponents
- Retraction of: An elementary proof of Fermat’s Last Theorem for all even exponents
- Survey on SAP and its application in public-key cryptography
- Privacy-preserving verifiable delegation of polynomial and matrix functions
- New approach to practical leakage-resilient public-key cryptography