<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
    <title>Project-Team:CARAMBA</title>
    <link rel="stylesheet" href="../static/css/raweb.css" type="text/css"/>
    <meta name="description" content="Overall Objectives - Scientific Grounds"/>
    <meta name="dc.title" content="Overall Objectives - Scientific Grounds"/>
    <meta name="dc.subject" content=""/>
    <meta name="dc.publisher" content="INRIA"/>
    <meta name="dc.date" content="(SCHEME=ISO8601) 2016-01"/>
    <meta name="dc.type" content="Report"/>
    <meta name="dc.language" content="(SCHEME=ISO639-1) en"/>
    <meta name="projet" content="CARAMBA"/>
    <script type="text/javascript" src="https://raweb.inria.fr/rapportsactivite/RA2016/static/MathJax/MathJax.js?config=TeX-MML-AM_CHTML">
      <!--MathJax-->
    </script>
  </head>
  <body>
    <div class="tdmdiv">
      <div class="logo">
        <a href="http://www.inria.fr">
          <img style="align:bottom; border:none" src="../static/img/icons/logo_INRIA-coul.jpg" alt="Inria"/>
        </a>
      </div>
      <div class="TdmEntry">
        <div class="tdmentete">
          <a href="uid0.html">Project-Team Caramba</a>
        </div>
        <span>
          <a href="uid1.html">Members</a>
        </span>
      </div>
      <div class="TdmEntry">Overall Objectives<ul><li><a href="./uid3.html">Overall Objectives</a></li><li class="tdmActPage"><a href="./uid9.html">Scientific Grounds</a></li></ul></div>
      <div class="TdmEntry">Research Program<ul><li><a href="uid12.html&#10;&#9;&#9;  ">The Extended Family of the Number Field Sieve</a></li><li><a href="uid16.html&#10;&#9;&#9;  ">Algebraic Curves in Cryptology</a></li><li><a href="uid20.html&#10;&#9;&#9;  ">Computer Arithmetic</a></li><li><a href="uid23.html&#10;&#9;&#9;  ">Polynomial Systems</a></li></ul></div>
      <div class="TdmEntry">Application Domains<ul><li><a href="uid28.html&#10;&#9;&#9;  ">Better Awareness and Avoidance of Cryptanalytic Threats</a></li><li><a href="uid31.html&#10;&#9;&#9;  ">Promotion of Better Cryptography</a></li><li><a href="uid32.html&#10;&#9;&#9;  ">Key Software Tools</a></li></ul></div>
      <div class="TdmEntry">
        <a href="./uid34.html">Highlights of the Year</a>
      </div>
      <div class="TdmEntry">New Software and Platforms<ul><li><a href="uid36.html&#10;&#9;&#9;  ">Belenios</a></li><li><a href="uid41.html&#10;&#9;&#9;  ">Kalray-ECM</a></li><li><a href="uid46.html&#10;&#9;&#9;  ">TinyGB</a></li></ul></div>
      <div class="TdmEntry">New Results<ul><li><a href="uid52.html&#10;&#9;&#9;  ">Collecting Relation for the Number Field Sieve
in Medium Characteristic</a></li><li><a href="uid53.html&#10;&#9;&#9;  ">Recent Progress on the Elliptic Curve
Discrete Logarithm Problem</a></li><li><a href="uid54.html&#10;&#9;&#9;  ">A Modified Block Lanczos Algorithm
with Fewer Vectors</a></li><li><a href="uid55.html&#10;&#9;&#9;  ">Factorization of RSA-220 with CADO-NFS</a></li><li><a href="uid56.html&#10;&#9;&#9;  ">Linear Time Interactive
Certificates for the Minimal Polynomial and the Determinant of a
Sparse Matrix</a></li><li><a href="uid57.html&#10;&#9;&#9;  ">A Kilobit Hidden SNFS Discrete
Logarithm Computation</a></li><li><a href="uid58.html&#10;&#9;&#9;  ">Solving Discrete Logarithms on a
170-bit MNT Curve by Pairing Reduction</a></li><li><a href="uid59.html&#10;&#9;&#9;  ">Computing Jacobi's Theta in
Quasi-linear Time</a></li><li><a href="uid60.html&#10;&#9;&#9;  ">Computing Theta Functions in
Quasi-linear Time in Genus 2 and Above</a></li><li><a href="uid61.html&#10;&#9;&#9;  ">Computing Small
Certificates of Inconsistency of Quadratic Fewnomial Systems</a></li><li><a href="uid62.html&#10;&#9;&#9;  ">Critical Point
Computations on Smooth Varieties: Degree and Complexity Bounds</a></li><li><a href="uid63.html&#10;&#9;&#9;  ">Constructing Sparse Polynomial Systems
with Many Positive Solutions</a></li><li><a href="uid64.html&#10;&#9;&#9;  ">Modular Arithmetic and ECM on the Kalray
MPPA-256 Processor</a></li><li><a href="uid65.html&#10;&#9;&#9;  ">Determinism and Computational Power of Real Measurement-based Quantum Computation</a></li><li><a href="uid66.html&#10;&#9;&#9;  ">Fast Integer Multiplication Using Generalized Fermat Primes</a></li><li><a href="uid67.html&#10;&#9;&#9;  ">Search for Primitive Trinomials</a></li></ul></div>
      <div class="TdmEntry">Bilateral Contracts and Grants with Industry<ul><li><a href="uid69.html&#10;&#9;&#9;  ">Training and Consulting with HTCS</a></li></ul></div>
      <div class="TdmEntry">Partnerships and Cooperations<ul><li><a href="uid71.html&#10;&#9;&#9;  ">National Initiatives</a></li></ul></div>
      <div class="TdmEntry">Dissemination<ul><li><a href="uid74.html&#10;&#9;&#9;  ">Promoting Scientific Activities</a></li><li><a href="uid103.html&#10;&#9;&#9;  ">Teaching - Supervision - Juries</a></li><li><a href="uid128.html&#10;&#9;&#9;  ">Popularization</a></li></ul></div>
      <div class="TdmEntry">
        <div>Bibliography</div>
      </div>
      <div class="TdmEntry">
        <ul>
          <li>
            <a id="tdmbibentyear" href="bibliography.html">Publications of the year</a>
          </li>
          <li>
            <a id="tdmbibentfoot" href="bibliography.html#References">References in notes</a>
          </li>
        </ul>
      </div>
    </div>
    <div id="main">
      <div class="mainentete">
        <div id="head_agauche">
          <small><a href="http://www.inria.fr">
	    
	    Inria
	  </a> | <a href="../index.html">
	    
	    Raweb 
	    2016</a> | <a href="http://www.inria.fr/en/teams/caramba">Presentation of the Project-Team CARAMBA</a> | <a href="http://caramba.loria.fr/index.en.html">CARAMBA Web Site
	  </a></small>
        </div>
        <div id="head_adroite">
          <table class="qrcode">
            <tr>
              <td>
                <a href="caramba.xml">
                  <img style="align:bottom; border:none" alt="XML" src="../static/img/icons/xml_motif.png"/>
                </a>
              </td>
              <td>
                <a href="caramba.pdf">
                  <img style="align:bottom; border:none" alt="PDF" src="IMG/qrcode-caramba-pdf.png"/>
                </a>
              </td>
              <td>
                <a href="../caramba/caramba.epub">
                  <img style="align:bottom; border:none" alt="e-pub" src="IMG/qrcode-caramba-epub.png"/>
                </a>
              </td>
            </tr>
            <tr>
              <td/>
              <td>PDF
</td>
              <td>e-Pub
</td>
            </tr>
          </table>
        </div>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid3.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid12.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
      <div id="textepage">
        <!--DEBUT2 du corps du module-->
        <h2>Section: 
      Overall Objectives</h2>
        <h3 class="titre3">Scientific Grounds</h3>
        <p>Public-key cryptography is our main application target. We are interested
in the study of the cryptographic primitives that serve as a basis for
the most widespread protocols.</p>
        <p>Since the early days of public-key cryptography, and through the
practices and international standards that have been established for
several decades, the most widespread cryptographic primitives have been
the RSA cryptosystem, as well as the Diffie–Hellman key exchange using
multiplicative groups of finite fields. The level of security provided
by these cryptographic primitives is related to the hardness of the
underlying mathematical problems, which are integer factorization and the
discrete logarithm problem. The complexity of attacking them is known to
be subexponential in the public key size, and more precisely written as
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><msub><mi>L</mi><mi>N</mi></msub><mrow><mo>(</mo><mn>1</mn><mo>/</mo><mn>3</mn><mo>,</mo><mi>c</mi><mo>)</mo></mrow></mrow></math></span> for factoring an integer <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>N</mi></math></span>, where the <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>L</mi></math></span> notation stands
for</p>
        <div align="center" class="mathdisplay">
          <math xmlns="http://www.w3.org/1998/Math/MathML">
            <mrow>
              <msub>
                <mi>L</mi>
                <mi>N</mi>
              </msub>
              <mrow>
                <mo>(</mo>
                <mi>α</mi>
                <mo>,</mo>
                <mi>c</mi>
                <mo>)</mo>
              </mrow>
              <mo>=</mo>
              <mo form="prefix">exp</mo>
              <mfenced separators="" open="(" close=")">
                <mi>c</mi>
                <mrow>
                  <mo>(</mo>
                  <mn>1</mn>
                  <mo>+</mo>
                  <mi>o</mi>
                  <mrow>
                    <mo>(</mo>
                    <mn>1</mn>
                    <mo>)</mo>
                  </mrow>
                  <mo>)</mo>
                </mrow>
                <msup>
                  <mrow>
                    <mo>(</mo>
                    <mo form="prefix">log</mo>
                    <mi>N</mi>
                    <mo>)</mo>
                  </mrow>
                  <mi>α</mi>
                </msup>
                <msup>
                  <mrow>
                    <mo>(</mo>
                    <mo form="prefix">log</mo>
                    <mo form="prefix">log</mo>
                    <mi>N</mi>
                    <mo>)</mo>
                  </mrow>
                  <mrow>
                    <mn>1</mn>
                    <mo>-</mo>
                    <mi>α</mi>
                  </mrow>
                </msup>
              </mfenced>
              <mo>.</mo>
            </mrow>
          </math>
        </div>
        <p class="notaparagraph">This complexity is achieved with the Number Field
Sieve (NFS) algorithm and its many derivatives. This means that as the
desired security level <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>s</mi></math></span> grows, the matching public key size grows
roughly like <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><msup><mi>s</mi><mn>3</mn></msup></math></span>. As to how these complexity estimates translate into
concrete assessments and recommendations, the hard facts are definitely
the computational records that are set periodically by academics, and
used as key ingredients by governmental agencies emitting
recommendations for the industry <a href="./bibliography.html#caramba-2016-bid0">[36]</a>, <a href="./bibliography.html#caramba-2016-bid1">[23]</a>.</p>
        <p>Software for NFS is obviously the entry point to computational records.
Few complete NFS implementations exist, and their improvement is of
crucial importance for better assessment of the hardness of the key
cryptographic primitives considered. Here, “improvement” may be
understood in many ways: better algorithms (outperforming the NFS
algorithm as a whole is certainly a tremendous improvement, but replacing
one of its numerous substeps is one, too), better
implementations, better parallelization, or better adaptation to suitable
hardware. The numerous sub-algorithms of NFS strongly depend on
arithmetic efficiency. This concerns various mathematical
objects, from integers and polynomials to ideals in number fields,
lattices, or linear algebra.</p>
        <p>Since the early 1990's, no new algorithm improved on the complexity of
NFS. As it is used in practice, the algorithm has complexity
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><msub><mi>L</mi><mi>N</mi></msub><mrow><mo>(</mo><mn>1</mn><mo>/</mo><mn>3</mn><mo>,</mo><msup><mrow><mo>(</mo><mn>64</mn><mo>/</mo><mn>9</mn><mo>)</mo></mrow><mrow><mn>1</mn><mo>/</mo><mn>3</mn></mrow></msup><mo>)</mo></mrow></mrow></math></span> for factoring general integers or for computing discrete
logarithms in prime fields of similar size (the so-called “multiple
polynomial” variants have better complexity by a very thin margin, but
this has not yet yielded to a practical improvement).
Given the wide use of the
underlying hard problems, progress in this area is of utmost importance.
In 2013, several new algorithms have modified the complexity of the
discrete logarithm problem in small characteristic fields, which is a
closely related problem, reaching a heuristic quasi-polynomial time
algorithm <a href="./bibliography.html#caramba-2016-bid2">[24]</a>, <a href="./bibliography.html#caramba-2016-bid3">[31]</a>, <a href="./bibliography.html#caramba-2016-bid4">[30]</a>, <a href="./bibliography.html#caramba-2016-bid5">[29]</a>. A stream of computational
records have been obtained since 2013 using these algorithms, using in
particular techniques from polynomial system solving, or from Galois
theory. These new algorithms, together with these practical
realizations, have had a very strong impact of course on the use of small-characteristic fields for cryptography (now clearly unsuitable), as well
as on pairings on elliptic curves over small-characteristic finite fields
(which are also no longer considered safe to use).</p>
        <p>While it is relatively easy to set public key sizes for RSA or
Diffie–Hellman that are “just above” the reach of academic computing
power with NFS, the sensible cryptographic choice is to aim at security
parameters that are of course well above this feasibility limit, in
particular because assessing this limit precisely is in fact a very
difficult problem. In line with the security levels offered by symmetric
primitives such as AES-128, public key sizes should be chosen so that
with current algorithmic knowledge, an attacker would need at least
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><msup><mn>2</mn><mn>128</mn></msup></math></span> elementary operations to solve the underlying hard problem.
Such security parameters would call for RSA key sizes above 3,000 bits,
which is seldom seen, except in contexts where computing power is
plentiful anyway.</p>
        <p>Since the mid-1980's, elliptic curves, and more generally Jacobians of
algebraic curves, have been proposed as alternative mathematical settings
for building cryptographic primitives.</p>
        <div align="center" style="margin-top:10px">
          <a name="uid10">
            <!--...-->
          </a>
          <table title="" class="objectContainer">
            <caption align="bottom">
              <strong>Figure
	2. </strong>
            </caption>
            <tr align="center">
              <td>
                <table>
                  <tr>
                    <td style="height:3px;" align="center">
                      <img style="width:256.2026pt" alt="IMG/caramba-courbes-crop.png" src="IMG/caramba-courbes-crop.png"/>
                    </td>
                  </tr>
                </table>
              </td>
            </tr>
          </table>
        </div>
        <p>The discrete logarithm problem in these groups is formidably hard, and in
comparison to the situation with the traditional primitives mentioned
above, the cryptanalysis algorithms are such that the appropriate
public-key size grows only linearly with the desired security level: a
256-bit public key, using algebraic curves, is well suited to match the
hardness of AES-128. This asset makes algebraic curves more attractive
for the future of public-key cryptography.</p>
        <p>Challenges related to algebraic curves in cryptology are rather various,
and call for expertise in several areas. Suggesting curves to be used in
the cryptographic context requires to solve the point counting problem. This may
be done by variants of the Schoof–Elkies–Atkin algorithm and its
generalizations (which, in genus 2, require arithmetic modulo
multivariate systems of equations), or alternatively the use of the
complex multiplication method, a rich theory that opens the way to
several problems in computational number theory.</p>
        <p>The long-awaited transition from the legacy primitives to primitives
based on curves is ready to happen, only circumstantially slowed down
presently by the need to agree on a new set of elliptic curves (not
because of any attack, but because of skepticism over how the currently
widespread ones have been generated). The Internet Research Task Force
has completed in 2015 a standardization
proposal <a href="./bibliography.html#caramba-2016-bid6">[34]</a>. In this context, the
recommended curves are not of the complex multiplication family, and
enjoy instead properties that allow fast implementation, and avoid a few
implementation difficulties. Those are also naturally chosen to be immune
to the few known attacks on the discrete logarithm problem for curves. No
curve of genus 2 has made its way to the standardization process so far,
however one candidate exists for the 128-bit security
level <a href="./bibliography.html#caramba-2016-bid7">[28]</a>.</p>
        <p>The discrete logarithm problem on curves is very hard. Some results were
obtained however for curves over extension fields, using techniques such
as the Weil descent, or the point decomposition problem. In this context,
the algorithmic setup connects to polynomial system solving, fast
arithmetic, and linear algebra.</p>
        <p>Another possible route for transitioning away from RSA and finite
field-based cryptography is suggested, namely the switch to the
“post-quantum” cryptographic primitives. Public-key cryptographic
primitives that rely on mathematical problems related to Euclidean
lattices or coding theory have an advantage: they would resist the
potential advent of a quantum computer. Research on these topics is
quite active, and there is no doubt that when the efficiency challenges
that are currently impeding their deployment are overcome, the
standardization of some post-quantum cryptographic primitives will be a
worthwhile addition to the general cryptographic portfolio. The NSA has
recently devoted an intriguing position text to this
topic <a href="./bibliography.html#caramba-2016-bid8">[37]</a> (for a glimpse of some of the reactions within the
academic community, the reference <a href="./bibliography.html#caramba-2016-bid9">[33]</a> is useful).
Post-quantum cryptography, as a research topic, is
complementary to the topics we address most, which are NFS and algebraic
curves. We are absolutely confident that, at the very least for the next
decade, primitives based on integer factoring, finite fields, and
algebraic curves will continue to hold the lion's share in the
cryptographic landscape. We also expect that before the advent of
standardized and widely developed post-quantum cryptographic primitives,
the primitives based on algebraic curves will become dominant (despite
the apparent restraint from the NSA on this move).</p>
        <p>We acknowledge that the focus on cryptographic primitives is part of a
larger picture. Cryptographic primitives are part of cryptographic
protocols, which eventually become part of cryptographic software. All
these steps constitute research topics in their own right, and need to be
scrutinized (as part of independent research efforts) in order to be
considered as dependable building blocks. This being said, the interplay
of the different aspects, from primitives to protocols, sometimes spawns very interesting and fruitful
collaborations. A very good example of this is the LogJam
attack <a href="./bibliography.html#caramba-2016-bid10">[22]</a>.</p>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid3.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid12.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
    </div>
  </body>
</html>
