<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A Hybrid SAT and Lattice Reduction Approach for Integer Factorization</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Yameen Ajani</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Curtis Bright</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Windsor</institution>
          ,
          <addr-line>Windsor, Ontario</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
      </contrib-group>
      <fpage>39</fpage>
      <lpage>43</lpage>
      <abstract>
        <p>The dificulty of factoring large integers into primes is the basis for cryptosystems such as RSA. Due to the immense popularity of RSA there have been many proposed attacks on the factorization problem such as side-channel attacks where some bits of the prime factors are available. When enough bits of the prime factors are known, two methods that are efective at solving the factorization problem are satisfiability (SAT) solvers and Coppersmith's method. The SAT approach reduces the factorization problem to a Boolean satisfiability problem, while Coppersmith's approach uses lattice basis reduction. Both methods have their advantages, but they also have their limitations: Coppersmith's method does not apply when the known bit positions are randomized, while SAT-based methods can take advantage of known bits in arbitrary locations but have no knowledge of the algebraic structure exploited by Coppersmith's method. This work is the first to explore the potential of using a hybrid SAT and computer algebra approach to eficiently solve random leaked-bit factorization problems. Specifically, Coppersmith's method is invoked by a SAT solver to determine whether a partial bit assignment can be extended to a complete assignment. Our preliminary results demonstrate that this augmentation improves the eficiency of the solver by orders of magnitude.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Factoring</kwd>
        <kwd>SAT</kwd>
        <kwd>Lattice Basis Reduction</kwd>
        <kwd>Cryptography</kwd>
        <kwd>RSA</kwd>
        <kwd>Coppersmith's Method</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Integer factorization is a fundamental problem in mathematics and computer science with
wide-ranging applications in cryptography, coding theory, and number theory. The dificulty of
factoring large integers is the basis for cryptosystems such as RSA [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], which relies on the fact
that it is hard to factor the product of two large prime numbers. As a result, integer factorization
has been the subject of intense research for decades. Many algorithms have been developed to
tackle this problem, some of which rely on additional information that may be leaked through
side-channel attacks.
      </p>
      <p>
        Side-channel attacks are a class of attacks that aim to exploit information that is
unintentionally leaked by a computer system or a device during its normal operation. Cold boot attacks
are a type of side-channel attack exploiting the information remaining in the random-access
memory (RAM) of a computer system even after it has been powered of and then back on
again. Halderman et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] demonstrated that this remanence efect makes possible practical
and nondestructive attacks that recover some bits of secret keys stored in a computer’s memory.
      </p>
      <p>
        In 2013, Patsakis [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] demonstrated that information obtained through cold boot attacks could
be utilized to reconstruct RSA private keys with partial key exposure via the usage of Boolean
satisfiability (SAT) solvers. The cold boot attack retrieves some bits of the two primes  and 
and the decryption exponent used in RSA. With this information, he created SAT instances that
when solved would determine the bits of the factors  and .
      </p>
      <p>
        A separate approach to the factorization problem, when partial information about the factors
is known, was proposed by Coppersmith [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Coppersmith’s method uses lattice basis reduction
to factor integers in polynomial time when enough bits of one of the factors is known and the
unknown bits are consecutive.
      </p>
      <p>
        The SC2 Project. Combining SAT with computer algebra systems (CAS) was proposed in
2015 by E. Ábrahám [
        <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
        ] and independently by Zulkoski et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Soon afterwards, the “SC2
project” [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] started with the aim of facilitating connections between the satisfiability checking
and symbolic computation communities. Many successful applications have arisen as a result of
this connection: in particular, see M. England’s summary [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] for an overview of progress up to
2021, and Bright et al.’s summary [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] of MathCheck, a system that queries a CAS from inside a
SAT solver. These works show the power of using SAT solvers in combination with symbolic
computation and inspire our SAT+CAS approach for the factorization problem. More precisely,
we explore the potential of a hybrid approach that combines SAT solvers with Coppersmith’s
method—the first attempt to investigate the efectiveness of such a hybrid approach.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Proposed Method</title>
      <p>
        We focus on the RSA factoring problem in this work. Hence, we consider two primes,  and ,
of the same bitlength. The task is to factor the semiprime  =  · . We assume that a certain
percentage of bits of both the primes is known. This is a strong assumption, but in practice,
a cold boot attack may leak this extra information [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. However, we do not presume that the
attack has the ability to control which bits are known and suppose the known bits are distributed
uniformly at random.
      </p>
      <p>
        Our approach combines a SAT solver with Coppersmith’s method for integer factorization.
Coppersmith’s algorithm is an approach that uses lattice basis reduction for finding small
solutions to polynomials modulo an integer in polynomial time [
        <xref ref-type="bibr" rid="ref11 ref4">4, 11</xref>
        ]. In particular, it can
factorize  when at least 50% of the most significant bits (MSBs) of  is known. For example, 
can be written as  = ˜ + 0 where ˜ is an integer that has at least 50% of the same MSBs as 
and 0 is an integer that encodes the unknown low bits of . As an example (using decimal
digits instead of binary digits for simplicity), if  = 2837 and ˜ = 2830 then 0 = 7.
      </p>
      <p>
        Coppersmith’s method constructs a lattice where every vector in the lattice corresponds to a
polynomial having 0 as a root modulo  , the number to factor. If the vector is short enough
then 0 will also be a root of its associated polynomial over the integers, not just modulo  .
Since the integer roots of a polynomial can be computed in polynomial time [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] this reduces
the problem of finding 0 to the problem of finding a short vector in Coppersmith’s lattice. This
is accomplished with a lattice basis reduction algorithm such as Lenstra–Lenstra–Lovász’s LLL
algorithm [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>
        Because Coppersmith’s method requires the unknown bits of the prime  to be consecutive,
it cannot directly be used in the case when the known bits of  are randomly distributed. Thus,
our method starts with a SAT encoding of the factorization problem [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] allowing the leaked
bits to be given to the solver as unit clauses. However, the SAT solver alone will not exploit
the algebraic properties used by Coppersmith’s method. Thus, in order to achieve the best of
both worlds we call Coppersmith’s method from within the SAT solver whenever the solver’s
current partial assignment has assigned values to the top 60% of the bits of . Even though
Coppersmith’s method works when 50% MSBs of  are known, we call Coppersmith when 60%
MSBs are known to reduce the number of calls to Coppersmith. Figure 1 visually depicts how
the technique works.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Implementation and Results</title>
      <p>
        The implementation uses a programmatic version of MapleSAT [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] developed for the
MathCheck project [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. The conjunctive normal form (CNF) instances are generated using the CNF
Generator for Factoring Problems by P. Purdom and A. Sabry [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. The version of Coppersmith’s
algorithm used is a custom implementation in C++ using the GMP [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], MPFR [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], fplll [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ],
and FLINT [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] libraries.
      </p>
      <p>Ten randomly generated instances encoding the factorization problem of a 256-bit
semiprime  were generated and each instance was tested with known bit percentages ranging
from 40–90%. These preliminary tests show an orders-of-magnitude decrease in the running</p>
      <p>SAT+CAS vs SAT - Varying % Known Bits (256-bit N)</p>
      <p>SAT+CAS
SAT</p>
      <p>SAT+CAS vs SAT - Varying N (75% Known Bits)</p>
      <p>SAT+CAS</p>
      <p>SAT
90 85 80 75 7%0 Kno6w5n Bits
60 55 50 45 40
128 160 192 224 256 288 320 352 384 416 448 480 512 544 576</p>
      <p>RSA Key Size (N) in Bits
time when the hybrid SAT+CAS approach is compared with the SAT solver alone. For instance,
with 75% known bits the average runtime of the SAT solver by itself across the ten random
instances was 5019.8 seconds, while the average runtime of the SAT+CAS solver was 108.6
seconds. In these instances Coppersmith was called an average of 83,564 times with a mean
running time of 0.8 milliseconds in each execution. Plots of the running times we observed
are shown in Figure 2. The plot on the right shows how the running time varies with diferent
bit sizes of  when 75% of bits of both the primes are randomly set. For example, a 512-bit 
can be factored in an average of about 30 minutes. This is significantly faster than the SAT
approach and brute-force guessing (even using Coppersmith to speed up the guessing process),
given that the upper-half of  will contain around 32 unknown bits.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>R. L.</given-names>
            <surname>Rivest</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Shamir</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Adleman</surname>
          </string-name>
          ,
          <article-title>A method for obtaining digital signatures and public-key cryptosystems</article-title>
          ,
          <source>Communications of the ACM</source>
          <volume>21</volume>
          (
          <year>1978</year>
          )
          <fpage>120</fpage>
          -
          <lpage>126</lpage>
          . doi:
          <volume>10</volume>
          .1145/ 359340.359342.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Halderman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. D.</given-names>
            <surname>Schoen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Heninger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Clarkson</surname>
          </string-name>
          , W. Paul,
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Calandrino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. J.</given-names>
            <surname>Feldman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Appelbaum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. W.</given-names>
            <surname>Felten</surname>
          </string-name>
          ,
          <article-title>Lest we remember: Cold-boot attacks on encryption keys</article-title>
          ,
          <source>Commun. ACM</source>
          <volume>52</volume>
          (
          <year>2009</year>
          )
          <fpage>91</fpage>
          -
          <lpage>98</lpage>
          . doi:
          <volume>10</volume>
          .1145/1506409.1506429.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>C.</given-names>
            <surname>Patsakis</surname>
          </string-name>
          ,
          <article-title>RSA private key reconstruction from random bits using SAT solvers</article-title>
          ,
          <source>IACR Cryptol. ePrint Arch</source>
          .
          <year>2013</year>
          (
          <year>2013</year>
          )
          <fpage>26</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>D.</given-names>
            <surname>Coppersmith</surname>
          </string-name>
          ,
          <article-title>Small solutions to polynomial equations, and low exponent RSA vulnerabilities</article-title>
          ,
          <source>J. Cryptology</source>
          <volume>10</volume>
          (
          <year>1997</year>
          )
          <fpage>233</fpage>
          -
          <lpage>260</lpage>
          . doi:
          <volume>10</volume>
          .1007/s001459900030.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>E.</given-names>
            <surname>Ábrahám</surname>
          </string-name>
          ,
          <article-title>Building bridges between symbolic computation and satisfiability checking</article-title>
          , in: K. Yokoyama,
          <string-name>
            <given-names>S.</given-names>
            <surname>Linton</surname>
          </string-name>
          , D. Robertz (Eds.),
          <source>Proceedings of the 2015 ACM on International Symposium on Symbolic and Algebraic Computation</source>
          ,
          <string-name>
            <surname>ISSAC</surname>
          </string-name>
          <year>2015</year>
          , Bath,
          <source>United Kingdom, July 6-9</source>
          ,
          <year>2015</year>
          , ACM,
          <year>2015</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          . doi:
          <volume>10</volume>
          .1145/2755996.2756636.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>E.</given-names>
            <surname>Abraham</surname>
          </string-name>
          ,
          <article-title>Symbolic computation techniques in satisfiability checking</article-title>
          ,
          <source>in: 2016 18th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC)</source>
          , IEEE,
          <year>2016</year>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>10</lpage>
          . doi:
          <volume>10</volume>
          .1109/synasc.
          <year>2016</year>
          .
          <volume>014</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>E.</given-names>
            <surname>Zulkoski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Ganesh</surname>
          </string-name>
          , K. Czarnecki,
          <article-title>MathCheck: A math assistant via a combination of computer algebra systems and SAT solvers</article-title>
          ,
          <source>in: Automated Deduction - CADE-25</source>
          , Springer International Publishing,
          <year>2015</year>
          , pp.
          <fpage>607</fpage>
          -
          <lpage>622</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -21401-6_
          <fpage>41</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>E.</given-names>
            <surname>Ábrahám</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Abbott</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Becker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. M.</given-names>
            <surname>Bigatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brain</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Buchberger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cimatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Davenport</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>England</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fontaine</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Forrest</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Griggio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kroening</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. M.</given-names>
            <surname>Seiler</surname>
          </string-name>
          , T. Sturm,
          <article-title>Satisfiability checking and symbolic computation</article-title>
          ,
          <source>ACM Communications in Computer Algebra</source>
          <volume>50</volume>
          (
          <year>2017</year>
          )
          <fpage>145</fpage>
          -
          <lpage>147</lpage>
          . doi:
          <volume>10</volume>
          .1145/3055282.3055285.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>England</surname>
          </string-name>
          , SC-Square:
          <article-title>Overview to 2021</article-title>
          , in: C.
          <string-name>
            <surname>Bright</surname>
          </string-name>
          , J. Davenport (Eds.),
          <source>Proceedings of the 6th SC-Square Workshop</source>
          ,
          <year>2022</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          . URL: https://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>3273</volume>
          /invited1. pdf.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bright</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Kotsireas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Ganesh</surname>
          </string-name>
          ,
          <article-title>When satisfiability solving meets symbolic computation</article-title>
          ,
          <source>Communications of the ACM</source>
          <volume>65</volume>
          (
          <year>2022</year>
          )
          <fpage>64</fpage>
          -
          <lpage>72</lpage>
          . doi:
          <volume>10</volume>
          .1145/3500921.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>N.</given-names>
            <surname>Howgrave-Graham</surname>
          </string-name>
          ,
          <article-title>Finding small roots of univariate modular equations revisited</article-title>
          ,
          <source>in: IMA Conference on Cryptography and Coding</source>
          ,
          <year>1997</year>
          , pp.
          <fpage>131</fpage>
          -
          <lpage>142</lpage>
          . doi:
          <volume>10</volume>
          .1007/ BFb0024458.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>J. von zur Gathen</surname>
          </string-name>
          , J. Gerhard, Modern Computer Algebra, Cambridge University Press,
          <year>2013</year>
          . doi:
          <volume>10</volume>
          .1017/cbo9781139856065.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>A. K. Lenstra</surname>
            ,
            <given-names>H. W.</given-names>
          </string-name>
          <string-name>
            <surname>Lenstra</surname>
          </string-name>
          , L. Lovász,
          <article-title>Factoring polynomials with rational coeficients</article-title>
          ,
          <source>Mathematische Annalen</source>
          <volume>261</volume>
          (
          <year>1982</year>
          )
          <fpage>515</fpage>
          -
          <lpage>534</lpage>
          . doi:
          <volume>10</volume>
          .1007/bf01457454.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>D. E. Knuth,</surname>
          </string-name>
          <article-title>The art of computer programming</article-title>
          , Volume
          <volume>4</volume>
          ,
          <string-name>
            <surname>Fascicle</surname>
            <given-names>6</given-names>
          </string-name>
          : Satisfiability, AddisonWesley Professional,
          <year>2015</year>
          . URL: https://dl.acm.org/doi/abs/10.5555/2898950.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Liang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Ganesh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Poupart</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          ,
          <article-title>Learning rate based branching heuristic for SAT solvers</article-title>
          ,
          <source>in: Theory and Applications of Satisfiability Testing - SAT 2016 - 19th International Conference, Bordeaux, France, July 5-8</source>
          ,
          <year>2016</year>
          , Proceedings,
          <year>2016</year>
          , pp.
          <fpage>123</fpage>
          -
          <lpage>140</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -40970-
          <issue>2</issue>
          _
          <fpage>9</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bright</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Ganesh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Heinle</surname>
          </string-name>
          , I. Kotsireas,
          <string-name>
            <given-names>S.</given-names>
            <surname>Nejati</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          ,
          <article-title>MathCheck2: A SAT+CAS verifier for combinatorial conjectures</article-title>
          , in: Computer Algebra in Scientific Computing, Springer International Publishing,
          <year>2016</year>
          , pp.
          <fpage>117</fpage>
          -
          <lpage>133</lpage>
          . doi:
          <volume>10</volume>
          .1007/ 978-3-
          <fpage>319</fpage>
          -45641-
          <issue>6</issue>
          _
          <fpage>9</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>P.</given-names>
            <surname>Purdom</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sabry</surname>
          </string-name>
          ,
          <article-title>Cnf generator for factoring problems</article-title>
          ,
          <year>2003</year>
          . https://cgi.luddy.indiana. edu/~sabry/cnf.html.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>T.</given-names>
            <surname>Granlund</surname>
          </string-name>
          ,
          <article-title>the GMP development team</article-title>
          ,
          <source>GNU MP: The GNU Multiple Precision Arithmetic Library</source>
          ,
          <volume>5</volume>
          .0.5 ed.,
          <year>2012</year>
          . http://gmplib.org/.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>L.</given-names>
            <surname>Fousse</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Hanrot</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Lefèvre</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Pélissier</surname>
          </string-name>
          , P. Zimmermann,
          <article-title>MPFR: A multiple-precision binary floating-point library with correct rounding</article-title>
          ,
          <source>ACM Trans. Math. Softw</source>
          .
          <volume>33</volume>
          (
          <year>2007</year>
          )
          <fpage>13</fpage>
          -
          <lpage>es</lpage>
          . doi:
          <volume>10</volume>
          .1145/1236463.1236468.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <article-title>The fplll development team, fplll, a lattice reduction library</article-title>
          ,
          <source>Version: 5.4.4</source>
          ,
          <year>2023</year>
          . Available at https://github.com/fplll/fplll.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>W.</given-names>
            <surname>Hart</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Johansson</surname>
          </string-name>
          , S. Pancratz,
          <source>FLINT: Fast Library for Number Theory</source>
          ,
          <year>2013</year>
          . Version 2.9.0, https://flintlib.org.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>