<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ECC &#8211; Smals Research</title>
	<atom:link href="https://www.smalsresearch.be/tag/ecc/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.smalsresearch.be</link>
	<description></description>
	<lastBuildDate>Thu, 09 Apr 2026 12:19:00 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.smalsresearch.be/wp-content/uploads/2026/01/cropped-cropped-Smals_Research-32x32.png</url>
	<title>ECC &#8211; Smals Research</title>
	<link>https://www.smalsresearch.be</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Elliptic Curve Cryptography for dummies 2: en pratique pour la cryptographie</title>
		<link>https://www.smalsresearch.be/elliptic-curve-cryptography-tutoriel2/</link>
		
		<dc:creator><![CDATA[Tania Martin]]></dc:creator>
		<pubDate>Wed, 12 Aug 2015 07:43:55 +0000</pubDate>
				<category><![CDATA[Blog post]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[ECC]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">/?p=8776</guid>

					<description><![CDATA[Dans un précédent article, nous avons introduit la cryptographie sur courbe elliptique (Elliptic Curve Cryptography (ECC) en anglais), l&#8217;aspect d&#8217;une courbe elliptique, et en quoi l&#8217;ECDLP est le fondement de la sécurité de l&#8217;ECC. Ici, nous allons voir comment l&#8217;ECC fonctionne en pratique. Encore une fois, je remercie par avance les experts dans le domaine qui comprendront [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Dans un <a href="/elliptic-curve-cryptography-tutoriel1/">précédent article</a>, nous avons introduit la cryptographie sur courbe elliptique (<em>Elliptic Curve Cryptography</em> (ECC) en anglais), l&#8217;aspect d&#8217;une courbe elliptique, et en quoi l&#8217;ECDLP est le fondement de la sécurité de l&#8217;ECC. Ici, nous allons voir comment l&#8217;ECC fonctionne en pratique. Encore une fois, je remercie par avance les experts dans le domaine qui comprendront qu&#8217;il n&#8217;est pas possible de rentrer dans les détails lorsqu&#8217;on souhaite présenter l&#8217;ECC aux non-initiés.</p>
<h1 style="text-align: justify;">Comment fait-on des calculs sur une courbe elliptique?</h1>
<p style="text-align: justify;">Précédemment, nous avons vu la possibilité d&#8217;effectuer deux opérations mathématiques bien précises sur les courbes elliptiques :</p>
<ul>
<li style="text-align: justify;"><span style="text-decoration: underline;">L&#8217;addition de points</span> : quand on a deux points <em>P</em> et <i>R</i> sur une courbe elliptique EC, alors on peut calculer leur addition <em>Q = P + R</em>, et le résultat <em>Q</em> appartient aussi à EC.</li>
<li style="text-align: justify;"><span style="text-decoration: underline;">La multiplication de points</span> : quand on a un point <em>P</em> sur une courbe elliptique EC, alors on peut additionner <em>k</em> fois ce même point (p.ex. si <em>k = 2</em>, alors on peut calculer <em>P + P</em>), ce qui résulte en la multiplication de points <em>Q = k*P</em> (p.ex. si <em>k = 2</em>, alors <em>Q = 2*P = P + P</em>), et le résultat <em>Q</em> appartient aussi à EC.</li>
</ul>
<p style="text-align: justify;">Finalement, la multiplication de points n&#8217;est qu&#8217;une simple série d&#8217;additions de points. Par exemple :</p>
<p style="text-align: center;"><em>Q = 3*P </em><em>= P + P + P = (P + P) + P</em>.</p>
<p style="text-align: justify;">Si on considère que <em>T = </em><em>P + P</em>, alors on peut remplacer <em>P + P</em> par <em>T</em> dans l&#8217;équation précédente, ce qui revient à écrire que <em>Q = T + P</em>.</p>
<p style="text-align: justify;">Graphiquement, l&#8217;addition de points (tant pour la simple addition que pour la multiplication de points) peut se dérouler des façons suivantes.</p>
<p style="text-align: justify;">Pour définir l&#8217;addition <em>Q = P + R</em>, il faut tracer une droite reliant <em>P</em> et <em>R.</em> Cette droite (en rouge sur la figure 1.a) coupe la courbe elliptique en un troisième point appelé <em>-Q</em> (expliquer ce que représente ce point <em>-Q</em> est hors du contexte simplifié de cet article). Le symétrique de ce point par rapport à l&#8217;axe des abscisses (obtenu en suivant la droite pointillée verte sur la figure 1.a) est le résultat <em>Q</em> de cette addition.</p>
<figure id="attachment_8813" aria-describedby="caption-attachment-8813" style="width: 1852px" class="wp-caption alignnone"><a href="/wp-content/uploads/2015/07/ECC2-add-multi.png"><img fetchpriority="high" decoding="async" class="wp-image-8813 size-full" src="/wp-content/uploads/2015/07/ECC2-add-multi.png" alt="" width="1852" height="1024" srcset="https://www.smalsresearch.be/wp-content/uploads/2015/07/ECC2-add-multi.png 1852w, https://www.smalsresearch.be/wp-content/uploads/2015/07/ECC2-add-multi-768x425.png 768w, https://www.smalsresearch.be/wp-content/uploads/2015/07/ECC2-add-multi-1536x849.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2015/07/ECC2-add-multi-300x166.png 300w, https://www.smalsresearch.be/wp-content/uploads/2015/07/ECC2-add-multi-1024x566.png 1024w" sizes="(max-width: 1852px) 100vw, 1852px" /></a><figcaption id="caption-attachment-8813" class="wp-caption-text">Figure 1.a&nbsp;: Addition de deux points <em>P</em> et <em>R</em>.<br /> Figure 1.b&nbsp;: Multiplication du point <em>P</em> quand <em>k = 2</em>.</figcaption></figure>
<p style="text-align: justify;">Pour définir l&#8217;addition d&#8217;un point <em>P</em> avec lui-même, c&#8217;est-à-dire la multiplication de points pour <em>k = 2</em>, c&#8217;est-à-dire <em>Q = P + P = 2P,</em> il faut tracer la <a href="https://en.wikipedia.org/wiki/Tangent">tangente </a>à la courbe elliptique au point <em>P</em>. Cette droite (en rouge sur la figure 1.b) coupe la courbe elliptique en un point appelé <em>-Q.</em> Comme pour l&#8217;addition classique, le symétrique de ce point par rapport à l&#8217;axe des abscisses (obtenu en suivant la droite pointillée verte sur la figure 1.b) est le résultat <em>Q</em> de cette addition.</p>
<h1>La cryptographie sur courbes elliptiques</h1>
<p style="text-align: justify;">Dans l&#8217;article précédent, nous avons expliqué que la sécurité de l&#8217;ECC repose sur l&#8217;ECDLP (<em>E</em><em>lliptic Curve Discrete Logarithm Problem</em> en anglais), i.e. si l&#8217;on a un point <em>P</em> sur une courbe elliptique EC, alors :</p>
<ul>
<li style="text-align: justify;">il est facile de calculer la multiplication de points <em>Q = k*P</em> pour un entier <em>k</em> quelconque,</li>
<li style="text-align: justify;">mais il est <strong>très difficile de retrouver la valeur de <i>k</i> </strong>quand on ne connait que <em>P</em> et <em>Q</em>.</li>
</ul>
<p style="text-align: justify;">En partant de cela, on peut donc construire un système de cryptographie à clé publique (<em>Public-Key Cryptography </em>en anglais, PKC), comme illustré surla figure ci-dessous, basé sur les courbes elliptiques. La clé privée d&#8217;Alice <span style="color: #ff0000;"><em>privKey</em> </span>est alors un entier <em>k</em><sub>Alice</sub> et la clé publique correspondante <span style="color: #00ff00;"><em>pubKey</em> </span>est le point <em>Q</em><sub>Alice</sub>, résultat de l&#8217;opération <em>k</em><sub>Alice </sub>* <i>P</i> où <em>P</em> est un point publiquement connu.</p>
<figure id="attachment_8066" aria-describedby="caption-attachment-8066" style="width: 456px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2015/01/PKC-encryption.png"><img decoding="async" class="wp-image-8066" src="/wp-content/uploads/2015/01/PKC-encryption.png" alt="" width="456" height="447" srcset="https://www.smalsresearch.be/wp-content/uploads/2015/01/PKC-encryption.png 1048w, https://www.smalsresearch.be/wp-content/uploads/2015/01/PKC-encryption-300x293.png 300w, https://www.smalsresearch.be/wp-content/uploads/2015/01/PKC-encryption-1024x1001.png 1024w" sizes="(max-width: 456px) 100vw, 456px" /></a><figcaption id="caption-attachment-8066" class="wp-caption-text">Schéma de chiffrement basé sur de la PKC. Bob chiffre le message qu&#8217;il souhaite envoyer à Alice avec sa clé publique (connue de tous), et Alice retrouve le message original en déchiffrant le message chiffré avec sa clé privée (connue d&#8217;elle seule).<br />(Image: By Tos (Own work) [Public domain], via Wikimedia Commons)</figcaption></figure>
<p style="text-align: justify;">L&#8217;ECC est principalement utilisée pour le chiffrement de données, la signature digitale, la génération de nombres pseudo-aléatoires, et bien d&#8217;autres. Parmi les schémas cryptographiques les plus connus, on retrouve l&#8217;algorithme ECDSA (<em>Elliptic Curve Digital Signature Algorithm</em>) ou encore le protocole d&#8217;échanges de clés ECDH (<em>Elliptic Curve Diffie-Hellman</em>).</p>
<h1 style="text-align: justify;">Un exemple concret&nbsp;: le protocole ECDH</h1>
<p style="text-align: justify;">Attardons nous un peu sur le protocole ECDH, car il est un exemple très pédagogique de l&#8217;utilisation des courbes elliptiques. En réalité, ce protocole est une variante du protocole de Diffie-Hellman (du nom de ses inventeurs), à l&#8217;origine basé sur le <a href="https://en.wikipedia.org/wiki/Group_(mathematics)">groupe </a>multiplicatif des entiers modulo <em>p</em>, avec <em>p</em> étant un nombre premier. Le protocole original a été l&#8217;un des premiers exemples d&#8217;échange de clés dans le domaine de la cryptographie. Datant du milieu des années 70, le protocole de Diffie-Hellman permet à deux entités (Alice et Bob), qui ne se connaissent absolument pas, de se mettre d&#8217;accord sur un secret partagé, même en utilisant un canal de communication non sécurisé (i.e. qui peut être écouté par des personnes malveillantes). Le secret partagé peut ensuite être utilisé pour chiffrer la communication suivante entre Alice et Bob.</p>
<figure id="attachment_8831" aria-describedby="caption-attachment-8831" style="width: 1159px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2015/07/Diffie-Hellman-ECDH.png"><img decoding="async" class="size-full wp-image-8831" src="/wp-content/uploads/2015/07/Diffie-Hellman-ECDH.png" alt="Illustration de l'idée sous-jacente au protocole ECDH." width="1159" height="1048" srcset="https://www.smalsresearch.be/wp-content/uploads/2015/07/Diffie-Hellman-ECDH.png 1159w, https://www.smalsresearch.be/wp-content/uploads/2015/07/Diffie-Hellman-ECDH-768x694.png 768w, https://www.smalsresearch.be/wp-content/uploads/2015/07/Diffie-Hellman-ECDH-300x271.png 300w, https://www.smalsresearch.be/wp-content/uploads/2015/07/Diffie-Hellman-ECDH-1024x926.png 1024w" sizes="(max-width: 1159px) 100vw, 1159px" /></a><figcaption id="caption-attachment-8831" class="wp-caption-text">Illustration de l&#8217;idée sous-jacente au protocole ECDH.</figcaption></figure>
<p style="text-align: justify;">La figure ci-dessus illustre le principe du protocole ECDH. Tout d&#8217;abord, Alice et Bob connaissent un point <em>P</em> sur une courbe elliptique, <em>P</em> étant une donnée publique (la couleur <span style="color: #d9d90b;">jaune</span>). Ensuite, chacun va choisir un secret : <em>k</em><sub>Alice</sub> (en <span style="color: #ff0000;">rouge</span>) et <em>k</em><sub>Bob</sub> (en <span style="color: #33cccc;">vert</span>). A partir de là, chacun va calculer la valeur publique de son secret : <em>Q</em><sub>Alice</sub> = <em>k</em><sub>Alice </sub>* <i>P </i>(en <span style="color: #ff9900;">orange</span>) et <em>Q</em><sub>Bob</sub> = <em>k</em><sub>Bob </sub>* <i>P </i>(en <span style="color: #73b4f5;">bleu</span>). Alice et Bob s&#8217;échangent ensuite leurs valeurs publiques. Ils peuvent même les divulguer publiquement : cela ne réduit pas la sécurité du protocole étant donné que la sécurité repose sur le problème ECDLP (cf. l&#8217;explication donnée dans notre <a href="/elliptic-curve-cryptography-tutoriel1/">précédent article</a>). Enfin, Alice et Bob calculent le secret partagé (en <span style="color: #993300;">marron</span>) : <em>k</em><sub>Alice</sub> * <em>Q</em><sub>Bob</sub> pour Alice, et <em>k</em><sub>Bob</sub> * <em>Q</em><sub>Alice</sub> pour Bob. Ces deux calculs mènent au même secret partagé car :</p>
<p style="text-align: center;"><em>k</em><sub>Alice</sub><em> * Q</em><sub>Bob</sub><em> = k</em><sub>Alice</sub><em> * (k</em><sub>Bob</sub><em> * P) = k</em><sub>Alice</sub><em> * k</em><sub>Bob</sub><em> * P = k</em><sub>Bob</sub><em> * (k</em><sub>Alice</sub><em> * P) = k</em><sub>Bob</sub><em> *</em> <em>Q</em><sub>Alice</sub>.</p>
<figure id="attachment_8836" aria-describedby="caption-attachment-8836" style="width: 236px" class="wp-caption alignright"><a href="/wp-content/uploads/2015/07/Google-Mail-Certif.png"><img loading="lazy" decoding="async" class=" wp-image-8836" src="/wp-content/uploads/2015/07/Google-Mail-Certif.png" alt="Certificat SSL de Gmail." width="236" height="365" srcset="https://www.smalsresearch.be/wp-content/uploads/2015/07/Google-Mail-Certif.png 311w, https://www.smalsresearch.be/wp-content/uploads/2015/07/Google-Mail-Certif-194x300.png 194w" sizes="auto, (max-width: 236px) 100vw, 236px" /></a><figcaption id="caption-attachment-8836" class="wp-caption-text">Certificat SSL de Gmail.</figcaption></figure>
<p style="text-align: justify;">Un exemple concret (ci-contre) qui joint l&#8217;utilisation de ECDH et de ECDSA est le certificat SSL de certains sites web, tels que celui de Gmail. Notons que pour ce dernier, le protocole d&#8217;échange de clés est ECDHE, une variante de ECDH où les secrets choisis par les deux entités communicantes sont éphémères (d&#8217;où le &#8220;E&#8221; rajouté à l&#8217;accronyme), c&#8217;est-à-dire utilisés que temporairement, par exemple pour une seule session de communication. Ce choix permet ainsi de fournir une confidentialité persistante (<em><a href="https://en.wikipedia.org/wiki/Forward_secrecy">forward secrecy</a></em> en anglais) : même si un adversaire retrouve les secrets éphémères d&#8217;une session compromettant ainsi les communications correspondantes, il ne sera pas capable de compromettre les communications d&#8217;une session antérieure.</p>
<h1 style="text-align: justify;">Les points négatifs de l&#8217;ECC</h1>
<p style="text-align: justify;">Ce n&#8217;est malheureusement pas tout rose dans le monde des courbes elliptiques. Plusieurs questions et doutes mis en avant ont énormément retenu les industriels de se lancer dans l&#8217;aventure ECC.</p>
<p style="text-align: justify;">L&#8217;élément déclencheur a été l&#8217;histoire avec Dual_EC_DRBG (<em>Dual Elliptic Curve Deterministic Random Bit Generator</em>), algorithme qui génère des nombres aléatoires en se basant sur les mathématiques des courbes elliptiques. Le problème est que cet algorithme, standardisé par le <a href="https://www.nist.gov/">NIST</a> et promu par la <a href="https://www.nsa.gov/">NSA</a>,ne semble pas être si aléatoire que cela. Il semblerait en effet que la séquence de nombres renvoyés par l&#8217;algorithme pourrait être complètement prédite par une personne connaissant certains paramètres secrets de la courbe elliptique (cf. ce <a href="https://blog.cryptographyengineering.com/2013/09/the-many-flaws-of-dualecdrbg.html">post</a> pour des détails plus techniques sur les vulnérabilités de Dual_EC_DRBG) : dans le jargon, c&#8217;est ce que l&#8217;on appelle une <a href="https://en.wikipedia.org/wiki/Backdoor_(computing)">backdoor</a>. Que cet algorithme ait été écrit spécifiquement avec cette backdoor ou pas ne change pas la puissance des mathématiques sur les courbes elliptiques ; cela soulève plutôt des questions sur les processus de standardisation des courbes elliptiques pour la cryptographie.</p>
<p style="text-align: justify;">Cette histoire a créé une atmosphère de méfiance au sein de la communauté cryptographique vis-à-vis du NIST. Même si aucune nouvelle faille ou backdoor n&#8217;a été trouvée jusqu&#8217;à présent pour les courbes standardisées par le NIST, les cryptographes recommandent d&#8217;en utiliser d&#8217;autres, telles que <a href="https://cr.yp.to/ecdh.html">celle</a> de Dan Bernstein, ou encore <a href="https://eprint.iacr.org/2013/647">celles</a> de Paulo Baretto et al. Malheureusement, ces courbes elliptiques non-conventionnelles vont mettre beaucoup de temps à être acceptées et utilisées à grande échelle.</p>
<h1 style="text-align: justify;">Que retenir de l&#8217;ECC?</h1>
<p style="text-align: justify;">La cryptographie sur courbes elliptiques est l&#8217;une des plus puissantes techniques dans le domaine. Grâce à ses petites longueurs de clés, leur stockage peut se faire dans des environnements limités (p.ex. les tags <a href="https://en.wikipedia.org/wiki/Radio-frequency_identification">RFID</a> des passeports biométriques) et les calculs sont exécutés plus rapidement qu&#8217;avec de la cryptographie classique telle que RSA, tout en assurant un haut niveau de sécurité. L&#8217;ECC se montre donc très prometteuse pour le futur, malgré les doutes soulevés par la communauté cryptographique vis-à-vis des recommandations et standards du NIST à son sujet.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Elliptic Curve Cryptography for dummies 1: introduction</title>
		<link>https://www.smalsresearch.be/elliptic-curve-cryptography-tutoriel1/</link>
					<comments>https://www.smalsresearch.be/elliptic-curve-cryptography-tutoriel1/#comments</comments>
		
		<dc:creator><![CDATA[Tania Martin]]></dc:creator>
		<pubDate>Wed, 25 Feb 2015 08:48:08 +0000</pubDate>
				<category><![CDATA[Blog post]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[ECC]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">/?p=8060</guid>

					<description><![CDATA[La cryptographie sur courbes elliptiques, ou Elliptic Curve Cryptography (ECC) en anglais, est un des plus puissants types de cryptographie utilisée aujourd&#8217;hui. On retrouve cette technologie dans de nombreux exemples du quotidien, tels que dans le protocole HTTPS d&#8217;un grand nombre de sites web ou dans certaines cartes d&#8217;identité (p.ex. pour la méthode de signature [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">La cryptographie sur courbes elliptiques, ou <em>Elliptic Curve Cryptography</em> (ECC) en anglais, est un des plus puissants types de cryptographie utilisée aujourd&#8217;hui. On retrouve cette technologie dans de nombreux exemples du quotidien, tels que dans le protocole HTTPS d&#8217;un grand nombre de sites web ou dans certaines cartes d&#8217;identité (p.ex. pour la méthode de signature digitale des eID allemandes et autrichiennes). Bien que puissante, force est de constater que l&#8217;ECC est malgré tout un des types de cryptographie les moins compris, essentiellement car elle est basée sur une somme de notions mathématiques complexes. Or il nous semble important que chaque personne puisse comprendre, même dans les grandes lignes, la technologie qui se cache derrière les systèmes sécurisés auxquels elle fait confiance.</p>
<p style="text-align: justify;">C&#8217;est pourquoi je vais me lancer dans une série de blogs qui vont vous présenter petit à petit l&#8217;ECC et les courbes elliptiques, tout en essayant de simplifier au maximum leurs mathématiques fondatrices complexes. Je remercie par avance les experts dans le domaine qui comprendront qu&#8217;il n&#8217;est pas possible de rentrer dans les détails lorsqu&#8217;on souhaite présenter l&#8217;ECC aux non-initiés.</p>
<h1 style="text-align: justify;">ECC, c&#8217;est quoi?</h1>
<p style="text-align: justify;">L&#8217;ECC est une approche de la cryptographie à clé publique (<em>Public-Key Cryptography </em>en anglais, PKC), où il est requis d&#8217;avoir deux clés bien séparées: une clé <span style="color: #ff0000;"><em>privKey</em></span> dite &#8220;privée&#8221; et une autre clé <span style="color: #00ff00;"><em>pubKey</em> </span>dite &#8220;publique&#8221;. La figure ci-dessous explique comment ces deux clés peuvent être utilisées dans un schéma standard de PKC quand Bob souhaite envoyer un message chiffré à Alice.</p>
<figure id="attachment_8066" aria-describedby="caption-attachment-8066" style="width: 485px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2015/01/PKC-encryption.png"><img loading="lazy" decoding="async" class="wp-image-8066" src="/wp-content/uploads/2015/01/PKC-encryption.png" alt="" width="485" height="474" srcset="https://www.smalsresearch.be/wp-content/uploads/2015/01/PKC-encryption.png 1048w, https://www.smalsresearch.be/wp-content/uploads/2015/01/PKC-encryption-768x750.png 768w, https://www.smalsresearch.be/wp-content/uploads/2015/01/PKC-encryption-300x293.png 300w, https://www.smalsresearch.be/wp-content/uploads/2015/01/PKC-encryption-1024x1001.png 1024w" sizes="auto, (max-width: 485px) 100vw, 485px" /></a><figcaption id="caption-attachment-8066" class="wp-caption-text">Schéma de chiffrement basé sur de la PKC. Bob chiffre le message qu&#8217;il souhaite envoyer à Alice avec sa clé publique (connue de tous), et Alice retrouve le message original en déchiffrant le message chiffré avec sa clé privée (connue d&#8217;elle seule).<br />(Image: By Tos (Own work) [Public domain], via Wikimedia Commons)</figcaption></figure>
<p style="text-align: justify;">L&#8217;utilisation des courbes elliptiques pour la cryptographie a été introduite indépendamment par <a title="Neal Koblitz" href="https://www.ams.org/journals/mcom/1987-48-177/S0025-5718-1987-0866109-5/S0025-5718-1987-0866109-5.pdf">Neal Koblitz</a> et <a title="Victor S. Miller" href="https://link.springer.com/chapter/10.1007%2F3-540-39799-X_31">Victor S. Miller</a> en 1985. Ces deux chercheurs ont vu le potentiel offert par la structure mathématique des courbes elliptiques &#8212; intensément étudiées dans la théorie des nombres depuis plus de 100 ans &#8212; pour l&#8217;adapter à la cryptographie. A la fin des années 1990, l&#8217;ECC a été standardisée par un certain nombre d&#8217;organisations (p.ex. ANSI X9.63, IEEE P1363, ISO 15946, NIST SP 800-56), et elle a commencé à être acceptée pour commercialisation. De nos jours, l&#8217;ECC est principalement utilisée dans les environnements à faible ressource tels que les réseaux sans fil ad-hoc et les réseaux mobiles, car elle ne nécessite pas de longues clés cryptographiques pour assurer un haut niveau de sécurité.</p>
<p style="text-align: justify;">Pour être plus précis sur ce dernier point, un des problèmes majeurs des systèmes conventionnels basés sur la PKC est que la longueur des clés doit être suffisamment grande pour assurer un niveau de sécurité élevé. Ceci se traduit par une faible vitesse et une grande consommation de la bande passante. C&#8217;est là que la force de l&#8217;ECC rentre en jeu&nbsp;: comme l&#8217;a établit le <a title="NIST" href="https://www.nsa.gov/business/programs/elliptic_curve.shtml">NIST</a>, là où le système cryptographique bien connu <a title="RSA" href="https://en.wikipedia.org/wiki/RSA_(cryptosystem)">RSA</a> a besoin de clés de 1024 bits, l&#8217;ECC n&#8217;a besoin que de clés de 160 bits pour atteindre le même niveau de sécurité.</p>
<h1 style="text-align: justify;">A quoi ressemble une courbe elliptique&nbsp;?</h1>
<p style="text-align: justify;">Contrairement à ce que l&#8217;on pourrait croire, une courbe elliptique n&#8217;est pas une ellipse. Historiquement, le terme &#8220;courbe elliptique&#8221; vient en réalité de l&#8217;association de ces courbes avec les <a title="intégrale elliptique" href="https://en.wikipedia.org/wiki/Elliptic_integral">intégrales elliptiques</a>, ces dernières servant à calculer la longueur des arcs d&#8217;une ellipse.</p>
<p style="text-align: justify;">Pour son utilisation en cryptographie, une courbe elliptique est définie sur un <a title="corps fini" href="https://en.wikipedia.org/wiki/Finite_field">corps fini</a> <em>K</em>, c&#8217;est-à-dire sur un ensemble fini d&#8217;éléments avec lesquels on est capable de faire des additions, soustractions, multiplications et divisions. Par exemple, le corps fini <em>K</em> le plus connu est l&#8217;ensemble <em>{0,1}</em> des booléens (dont les calculs sont faits sur un seul bit d&#8217;information). L&#8217;équation la plus simplifiée d&#8217;une courbe elliptique est de la forme</p>
<p style="text-align: center;"><em>y<sup>2</sup> = x<sup>3</sup> + ax + b</em></p>
<p style="text-align: justify;">où <em>a</em> et <em>b</em> sont les coefficients de la courbe et appartiennent à <em>K</em>. La figure ci-dessous illustre les différentes représentations graphiques d&#8217;une courbe elliptique avec son équation simplifiée, dépendamment des valeurs de <em>a</em> et de <em>b</em>.</p>
<figure id="attachment_8137" aria-describedby="caption-attachment-8137" style="width: 1060px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2015/02/EllipticCurves.png"><img loading="lazy" decoding="async" class="wp-image-8137 size-full" src="/wp-content/uploads/2015/02/EllipticCurves.png" alt="" width="1060" height="1024" srcset="https://www.smalsresearch.be/wp-content/uploads/2015/02/EllipticCurves.png 1060w, https://www.smalsresearch.be/wp-content/uploads/2015/02/EllipticCurves-768x742.png 768w, https://www.smalsresearch.be/wp-content/uploads/2015/02/EllipticCurves-300x290.png 300w, https://www.smalsresearch.be/wp-content/uploads/2015/02/EllipticCurves-1024x989.png 1024w" sizes="auto, (max-width: 1060px) 100vw, 1060px" /></a><figcaption id="caption-attachment-8137" class="wp-caption-text">Quelques exemples de courbes elliptiques. Notez que pour a=0 et b=0, la courbe n&#8217;est pas &#8220;régulière&#8221; et donc n&#8217;est pas considérée comme une courbe elliptique.<br /> (Image: Tos (Own work) [Public domain], via Wikimedia Commons)</figcaption></figure>
<p style="text-align: justify;">Mathématiquement parlant, une courbe elliptique est un <a title="groupe mathématique" href="https://en.wikipedia.org/wiki/Group_(mathematics)">groupe</a> avec des caractéristiques particulières. Pour simplifier, une courbe elliptique est un ensemble d&#8217;éléments &#8212; les points de la courbe &#8212; avec lesquels on peut effectuer des opérations mathématiques bien précises&nbsp;:</p>
<ul>
<li style="text-align: justify;"><span style="text-decoration: underline;">L&#8217;addition de points</span>&nbsp;: quand on a deux points <em>P</em> et <i>R</i> sur une courbe elliptique EC, alors on peut calculer leur addition <em>Q = P + R</em>, et le résultat <em>Q</em> appartient aussi à EC.</li>
<li style="text-align: justify;"><span style="text-decoration: underline;">La multiplication de points</span>&nbsp;: quand on a un point <em>P</em> sur une courbe elliptique EC, alors on peut additionner <em>k</em> fois ce même point (p.ex. si <em>k = 2</em>, alors on peut calculer <em>P + P</em>), ce qui résulte en la multiplication de points Q<em> = k*P</em> (p.ex. si <em>k = 2</em>, alors <em>Q = 2*P = P + P</em>), et le résultat <em>Q</em> appartient aussi à EC.</li>
</ul>
<p style="text-align: justify;">Nous verrons plus tard comment s&#8217;effectuent ces opérations mathématiques. Mais finalement, ce qu&#8217;il faut retenir, c&#8217;est qu&#8217;on peut faire des opérations sur les points d&#8217;une courbe elliptique, de la même façon qu&#8217;on peut faire <em>1 + 2 = 3</em> ou encore <em>3 + 3 = 2*3</em> quand on fait des calculs avec des nombres réels.</p>
<h1 style="text-align: justify;">ECDLP, le fondement de la sécurité de l&#8217;ECC</h1>
<p style="text-align: justify;">Les systèmes cryptographiques modernes utilisés en PKC sont généralement basés sur des problèmes mathématiques dits &#8220;durs&#8221;, ou &#8220;<em>computationally infeasible</em>&#8221; en anglais, c&#8217;est-à-dire qui n&#8217;admettent aucune solution efficace pour résoudre le problème. Par exemple, la sécurité de RSA repose sur le problème de la factorisation entière en nombres premiers : il est facile d&#8217;obtenir le produit de deux grands <a title="nombres premiers" href="https://en.wikipedia.org/wiki/Prime_number">nombres premiers</a>, par contre il est beaucoup plus difficile de trouver les facteurs premiers de celui-ci. Pour visualiser la difficulté du problème, prenons un premier exemple où le produit à factoriser est 91 : on peut facilement retrouver que 91 = 7*13 car ce sont de petits nombres. Maintenant, si nous prenons le nombre appelé RSA-1024 ci-dessous comme deuxième exemple, alors personne à l&#8217;heure actuelle n&#8217;a été capable de retrouver ses deux facteurs premiers. Jusqu&#8217;en 2007, la compagnie RSA Security offrait d&#8217;ailleurs 100 000 $ à la première personne réussissant l&#8217;exploit.</p>
<pre>RSA-1024 = 135066410865995223349603216278805969938881475605667027524485143851526510604859533833940287150571909441798207282164471551373680419703964191743046496589274256239341020864383202110372958725762358509643110564073501508187510676594629205563685529475213500852879416377328533906109750544334999811150056977236890927563</pre>
<p style="text-align: justify;">Pour les systèmes cryptographiques basés sur l&#8217;ECC, leur sécurité repose sur le problème du logarithme discret dans un groupe mathématique défini par une courbe elliptique, appelé <em>E</em><em>lliptic Curve Discrete Logarithm Problem </em>(ECDLP) en anglais. Pour comprendre ce que cela veut dire, expliquons ce problème étape par étape. Tout d&#8217;abord, le simple DLP signifie que, si l&#8217;on a un élément <em>g</em> d&#8217;un groupe mathématique <em>G</em>, alors on peut facilement calculer la valeur <em>b = g<sup>k  </sup></em>pour un entier<em> k </em>quelconque. Mais il est très difficile de retrouver la valeur de <em>k</em> quand on ne connait que <em>b</em> et <em>g.</em> Bien sûr, la difficulté est réelle quand <em>b</em>, <em>g</em>, <em>k</em> sont de très grands nombres, comme pour la factorisation expliquée au paragraphe précédent. L&#8217;ECDLP reprend le même problème que le simple DLP en considérant que, si l&#8217;on a un point <em>P</em> sur une courbe elliptique EC, alors&nbsp;:</p>
<ul>
<li style="text-align: justify;">il est facile de calculer la multiplication de points <em>Q = k*P</em> pour un entier <em>k</em> quelconque,</li>
<li style="text-align: justify;">mais il est très difficile de retrouver la valeur de <i>k</i> quand on ne connait que <em>P</em> et <em>Q</em>.</li>
</ul>
<h1 style="text-align: justify;">To be continued&#8230;</h1>
<p style="text-align: justify;">Dans un prochain blog, nous expliquerons &#8220;graphiquement&#8221; les opérations mathématiques qui peuvent s&#8217;effectuer sur une courbe elliptique (i.e. l&#8217;addition et la multiplication de points). Nous verrons également comment se servir des courbes elliptiques pour faire de la cryptographie. Comment sont choisies et calculées les clés <span style="color: #ff0000;"><em>privKey</em> </span>et <span style="color: #00ff00;"><em>pubKey </em></span>? Quels sont les systèmes cryptographiques les plus connus se basant sur l&#8217;ECC et comment fonctionnent-ils?</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smalsresearch.be/elliptic-curve-cryptography-tutoriel1/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
