[PDF] [PDF] Algorithmique Cours 5 : Cryptographie et cryptosystème RSA ROB3





Previous PDF Next PDF



Algorithmique Cours 5 : Cryptographie et cryptosystème RSA ROB3

Algorithmes de chiffrement. Deux classes d'algorithmes de chiffrement : ?. Cryptographie symétrique (ou à clé privé). Les clés de cryptage et de décryptage 



Cryptosystème RSA

Cryptosystème RSA. Anca Nitulescu anca.nitulescu@ens.fr Algorithme d'Euclide étendu ... L'algorithme d'Euclid étendu calcule des coeficients (uv).



La cryptographie asymétrique avec RSA

Aug 12 2019 Ce que l'on appelle RSA est un algorithme de chiffrement et déchiffrement. ... l'Union Européenne



Sur lalgorithme RSA

Enfin on va calculer la valeur de ? en un produit de deux nombres premiers distincts. Ceci nous servira en effet dans l'algorithme RSA. Lemme 1.1 Soient p et q 



La sécurité informatique

Cryptologie - Clé publique - A08. 12. Premier algorithme à clé publique – RSA. ? Cet algorithme a été proposé en 1977 par Rivest Shamir et.



La cryptographie RSA

Le cryptage RSA du nom de ses concepteurs



Grands nombres premiers Cryptographie RSA

L'algorithme procède par élimination : il s'agit de supprimer de la table complète de tous les entiers allant de 2 jusqu'à n tous les entiers qui sont 



CRYPTANALYSE DE RSA

Jan 2 2015 Algorithme 2 : Fabrication des clés. Entrée : Deux nombres premiers p et q. Sortie : Une clé privée d et une clé publique e. 1: Calculer ?(N)=(p ...



Analyse cryptographique des altérations dalgorithmes

Aug 12 2011 Algorithme de signature numérique standardisé par le NIST aux États-. Unis



TP : RSA 1 Algorithmes de RSA avec bc

Comprendre les algorithmes mis en jeu dans le système RSA. 2. Utiliser OpenSSL pour chiffrer/déchiffrer des clés avec RSA. Outils : bc calulateur de précision 



[PDF] Cryptosystème RSA - DI ENS

Il existe u et v tels que xu + nv = pgcd(xn) = 1 Trouver l'inverse d'un élément revient à calculer u L'algorithme d'Euclid étendu calcule des coeficients 



[PDF] Algorithmique Cours 5 : Cryptographie et cryptosystème RSA ROB3

Algorithmes de chiffrement Deux classes d'algorithmes de chiffrement : ? Cryptographie symétrique (ou à clé privé) Les clés de cryptage et de décryptage 



[PDF] Sur lalgorithme RSA

Le RSA a été inventé par Rivest Shamir et Adleman en 1978 C'est l'exemple le plus courant de cryptographie asymétrique toujours considéré comme sûr



[PDF] La cryptographie RSA

Le cryptage RSA du nom de ses concepteurs Ron Rivest Adi Shamir et Leonard Adleman est le premier algorithme de chiffrement asymétrique Il a été découvert 



[PDF] Grands nombres premiers Cryptographie RSA

Grands nombres premiers Cryptographie RSA François DE MARÇAY Département de Mathématiques d'Orsay Université Paris-Sud France 1 Limitations physiques



[PDF] La cryptographie asymétrique avec RSA - Zeste de Savoir

12 août 2019 · 1 Un peu d'histoire et beaucoup de mathématiques Ce que l'on appelle RSA est un algorithme de chiffrement et déchiffrement



[PDF] [RSA : Rivest Shamir Adleman] - Zenk - Security

Présentation du RSA Comment génère t'on les clés publique privé ? Algorithme de Bézout Pseudo-code RSA Présentation pratique en JAVA Etude de la sécurité 



[PDF] CRYPTANALYSE DE RSA - Abderrahmane Nitaj

Algorithme 1 : Fabrication du module Entrée : Une taille t pour le module du cryptosyt`eme RSA Sortie : Un module RSA N de taille t



[PDF] Cryptographie RSA - Laure Gonnord

Rivest Shamir Adleman ou RSA est un algorithme asymétrique de cryptographie à clé publique très utilisé dans le commerce électronique et plus généralement 



[PDF] La cryptographie RSA vingt ans après - Apprendre-en-lignenet

L'algorithme RSA est moins rapide que les algorithmes classiques à une seule clef ce qui est un handicap lorsque l'on doit coder des messages volumineux Aussi 

  • Comment fonctionne l'algorithme RSA ?

    Le cryptage RSA fonctionne en utilisant une paire de clés - clés publiques et privées - pour crypter et décrypter les données. La clé publique est utilisée pour chiffrer les données, tandis que la clé privée est utilisée pour déchiffrer les données.
  • Comment coder en RSA ?

    Protocole RSA pour le codage
    e × d + m × (p – 1)(q – 1) = 1 Pour ce faire, elle peut utiliser un algorithme de calcul très connu depuis l'Antiquité (vers 300 ans avant Jésus-Christ) appelé algorithme d'Euclide. Elle calcule également n = p × q.
  • Quels sont les deux outils mathématiques indispensables du chiffrement RSA ?

    RSA a besoin d'une clé publique (constituée de 2 nombres (n,e) ) et d'une clé privée (1 seul nombre d ). Avec ces nombres, le couple (n,e) est appelée la clé publique et le nombre d est la clé privée.
  • Algorithmes de cryptographie symétrique (à clé secrète)

    Chiffre de Vernam (le seul offrant une sécurité théorique absolue, à condition que la clé ait au moins la même longueur que le message à chiffrer, qu'elle ne soit utilisée qu'une seule fois et qu'elle soit totalement aléatoire)DES.3DES.AES.RC4.RC5.MISTY1.

Résoudre dl'q

ao'utinimiau=1rosu:1edqiqripu=1rot=trf qix,R xcj!iEi:226qi≠PgèG≠Pgn au=1rosu:1edqiqrigqè

RG:Cri éD:11:udrdoCi ('i gqè)i é:i pu=1rosu:1edqi tquG:dri qttqCrdqééq qCri .i :tt'uqui é:i

poCLd(qCrd:édrhi(qtihpe:Csqti(DdCLou :rdoCtiqCruqi'Ci1qrdriCo èuqi(D:prq'utitDhr:Cri dti (D:ppou(it'ui(qtipoCGqCrdoCtitqpufrqtbi RGqpiPropirpoi :11:u:vri éqi èqtodCi (qi po 'Cdp:rdoCti qCruqi 'Cisu:C(i Co èuqi (DdCrquGqC:Crtil'diCqitqiGquuoCriy: :dt)io'il'diCDoCri:'p'Ci o=qCi(qi qrruqiqCi1é:pqi

pqti poCGqCrdoCti tqpufrqt)i po qi 1:ui qûq 1éqi éqti GqC(q'utiqri éqti :peqrq'uti t'ui éqi

àqèbi+qrruqiqCi1é:pqipqtipoCGqCrdoCti :ésuhiro'ritqu:dri1uoèéh :rdl'q)ip:uiéqiCo èuqi

(qipéqLti.ishuqui(qGdqC(u:driu:1d(q qCri:truoCo dl'qidéipuovri:Gqpiéqip:uuhi('iCo èuqi (D'rdédt:rq'utbi AéiL:'ri(oCpiruo'Gqui(qti o=qCti(qipo 'Cdl'quit:Ctihpe:Csqi1uh:é:èéqi(DdCLou :rdoCti

tqCtdèéqt)i 1'dtl'qi pqé:i (odri tqi L:duqi (:Cti 'Ci qCGduoCCq qCri o'Gqur)i t'tpq1rdèéqi

Iqtitoé'rdoCti.ipqti1uoèéf qti1:ttqCri1:uiéDdCruo('prdoCi(D'CiCo'Gq:'i1:u:(ds q)ipqé'di

(qié:ipu=1rosu:1edqi.ipéqLti1'èédl'qt)ipoCpq1ridCGqCrhi1:uiàbiSdLLdqiqri+bi-qéé :CiqCi

au=1rosu:1edqimip:(uqishChu:é

ét. piqrieuvito'e:drqCripo 'Cdl'quiqCi1udGh

RédpqiqCGodqi'Ci qtt:sqit1hpdLdl'qiû)ihpudriqCièdC:duq)i.itoCi: dijoèim PbiRédpqiqCpo(qiéqi qtt:sqiqCiq≥û!bi>GqiG:idCrqupq1rquiq≥û poCC:vruqi(≥b<)i>GqiCqi1'dttqiudqCirduqui(qiéDdCLou :rdoCil'Dqééqi:idCrqupq1rhq R'ruq qCri(dr)ié:ipoCC:dtt:Cpqi(qiq≥û4CqiLoCrdoCi(DqCpu=1r:sqiqimi* qtt:sqt3i0i* qtt:sqtiqCpu=1rht3i(odri;ruqi

Résoudre qti(qipedLLuq qCr

Sq'ûipé:ttqti(D:ésoudre qti(qipedLLuq qCrim au=1rosu:1edqit= hrudl'qi≥o'i.i taqAi.ma< Foncti ncPoctGCD(a,oco(cPocP tGCD(a,ocnb)(cEPo)(Eréoncec o:D PE(oéGco(cPon(E)a(aEGocDbnndPo)(c(béncPoé:ciactioucPéc uaE(ciac)aSo((oco)(GocioncPoé:p au=1rosu:1edqi:t= hrudl'qi≥o'i.i taqAnvt.dnp< Fonc ti nc Poc tGCD(a,oc o(c Poc P tGCD(a,oc nb)(c PEn(E)t(onc ec ivo:D PE(oéGc ac é)oc tiouc DbéGc uoGxoGc ioc tbuuGolc o(c ioc Pon(E)a(aEGocé)octioucPEn(E)t(olcrévEicon(ciocnoéicgcDbnn PoGc au=1rosu:1edqi.ipéhi1'èédl'q

R'ttdipoCC'qito'tiéqiCo i(qipu=1rosu:1edqi

:t= hrudl'qb

EI:ipéhiqtripoCC'qi('i1'èédpb

au=1rosu:1edqi.ipéhi1'èédl'q

Iqipu=1rot=trf qix,R

R(éq :Ci≥x,Rbbb .ihr:èéduil'qiro'rit=trf qi.i péhi 1'èédl'qi 1uhtqCrqi (qti

L:dééqtb

Aéti (hpo'GuqCri :'i poCru:duqi

'Ci Co'Gq:'i t=trf qi .i péhi

1'èédl'qi l'di :upeqi rufti

èdqCiqrit'11é:Crqiéqti:'ruqtbi

ca ni.oainqo !pqyidéiqtrièq:'po'1i1é'ti L:pdéqi(qiL:duqiéqi1uo('dri(qi(q'ûiCo èuqti

1uq dqutil'qi(qiL:proudtqui'CiCo èuqiqCiéqi

1uo('dri(qi(q'ûiCo èuqti1uq dqutb

x:11qéti(D:udre hrdl'qi o('é:duq ûi o(iCi/i=iTiûi/i=i≥ o(iCûq 1éqimi6!nPi/i≥6P<êTi/i!6êTi/iPêTi/iPi≥ o(i!P<

Iqi1uoropoéqix,R

KhChu:rdoCi(qtipéht

KhChuqui(q'ûisu:C(tiCo èuqti1uq dquti1iqrili ,odriCi/i1li ,odri i/i≥1-P<≥l-P< aeodtdui'CiCo èuqiqi1uq dqui:Gqpi i≥peodûiLuhl'qCrimiqi/i!<

Wuo'Gqui(irqéil'qi(qi o(i i/iPi

aéhtioèrqC'qt #taqAnvt.dnpqyi≥q)C< #taqAi.mapqyi≥()C< au=1r:sqiqri(hpu=1r:sq #iAo:"pqyi=i/iûqi o(iC ga iAo:"pqyiûi/i=(i o(iC >ûq 1éqiOi.ié:i :dCi5 i/i≥1-PShrqu dC:rdoCi(qi(irqéil'qi(qi o(i i/iP

R'ruq qCri(dr)idéiqûdtrqiYirqéil'qi(i/i≥PUY Yi/i!i0i(i/i!6PZPi/iêP #taqAnvt.dnpqyi≥Ci/iP!!iXiqi/iP#taqAi.mapqyi≥Ci/iP!!iXi(i/iêP >ûq 1éqiOi.ié:i :dCi5

Ci/iP!!iXiqi/iPiXi(i/iêPiii

,'11otoCtil'DoCipequpeqi.iru:Ct qrruqiûi/iê au=1r:sq

Shpu=1r:sq

ûi/i=(i o(iCi

/iê6êPi o(iP!!i /iê6iViê6êni o(iP!!i /iê6iVi≥ê66i/iê6iVi2P6i o(iP!!i/iê6iVin!i o(iP!!i/i6êêêi o(iP!!i/iêlcéCi/i1l i/i≥1-P<≥l-P ,hp'udrhi('it=trf q qi≥péhi1'èédl'q< >Gqit:dril'qi(qi o(i i/iPi Uo'uiuhto'(uqipqrrqihl':rdoC)idéiL:'ripoCC:vruqi bbb bbbR'ruq qCri(dr)i(hrqu dCquiéqtiCo èuqti1uq dquti1iqrilirqétil'qi1li/iCi ≥1'dtl'qi i/i≥1-P<≥l-P<< SoCpiruo'Gquié:iL:proudt:rdoCi(qiCiqCi(q'ûiCo èuqti1uq dquti1iqril I:iL:proudt:rdoCi(D'CiqCrdqui≥(qiruftisu:C(qir:dééquqpequpeq)iqri1é'ti(qiP≠6≠ip:ép'étbiaDqtri.ipqiyo'uiéqi qdééq'uiuht'ér:ri

poCC'i(qiL:proudt:rdoCb Aéiqtriuhs'édfuq qCriuqpo :C(hi(D'rdédtqui(qtir:dééqti(qipéhti(qi1é'tiqCi

1é'tisu:C(qti≥:pr'qééq qCri(qi6≠n2ièdrt

4Ciqûq 1éqi≥'Ci1q' ,'11otoCtil'qiéqtiL:prq'uti1uq dquti1iqrilitoCri≥qCiè:tqiPêTqiTpiPniêpiPPipLiêP

pniL6i:Pi::iP6iê6i2è qi/i≠Pi≠≠i≠P

IDqû1ot:Cri1udGhi(itDhpudripo qit'drim

cOitoCriéqti:ésoudre qtiù

Sqti:ésoudre qti(h(dhtitoCriuql'dti1o'uim

Shrqu dCqui(q'ûiCo èuqti1uq dquti1iqrili(qi

su:C(qir:dééq xhto'(uqiéDhl':rdoCi(qi o(i i/iPi pu=1r:sqi=i/iûqi o(iC (hpu=1r:sqiûi/i=

(i o(iCilcéCi/i1l i/i≥1-P<≥l-P

Résoudre l'équation de mod m = 1

Remarque : pour e et m fixés, cette équation n'admet pas toujours de solution !

Exemple : 2d mod 6 ≠ 1 pour tout d

Plus généralement, dès lors que PGCD(e,m) ≠ 1, l'équation n'admet pas de solution. L'approche brutale de résolution que nous avons employée pour l'exemple n'est bien sûr pas adaptée dès lors que e et m sont des grands nombres Pour e et m fixés, résoudre l'équation de mod m = 1 revient à trouver des entiers d et y tels que : de + my = 1 Pour ce faire, on fait appel à l'algorithme d'Euclide étendu

Algorithme d'Euclide

L'algorithme d'Euclide permet de calculer le Plus Grand Commun Diviseur (PGCD) de deux entiers a et b.

Il est fondé sur la propriété suivante :

Propriété. Si a = bq + r alors PGCD(a,b) = PGCD(r,b). Preuve. Il suffit de montrer que PGCD(a,b) = PGCD(a-b,b), dont on déduit le résultat en soustrayant q fois b à a. Tout entier qui divise à la fois a et b doit aussi diviser a-b, et donc b doit aussi diviser a et b, et donc PGCD(a,b) ≥ PGCD(a-b,b).

Fonction PGCD(a,b)

Entrée : deux entiers a,b avec a ≥ b ≥ 0

Sortie : plus grand commun diviseur de a et b

Si b = 0 alors retourner a

sinon retourner PGCD(b,a mod b)

Complexité de l'algorithme d'Euclide

Fonction PGCD(a,b)

Entrée : deux entiers a,b avec a ≥ b ≥ 0

Sortie : plus grand commun diviseur de a et b

Si b = 0 alors retourner a

sinon retourner PGCD(b,a mod b) L'analyse de complexité fait appel au résultat suivant :

Si a ≥ b alors a mod b < a/2.

- si b > a/2, alors a mod b = a-b < a/2. Par conséquent, à chaque appel récursif, l'un des deux arguments (a ou b) est divisé par au moins 2. Si on avait deux nombres de n bits au départ, on arrive donc au cas de base en au plus 2n itérations. A chaque itération, l'opération de modulo est en O(n), et par conséquent la complexité totale est O(n2).

Algorithme d'Euclide étendu

PGCD(15,26) = ?

26 = 15 + 11

15 = 11 + 4

11 = 2 * 4 + 3

4 = 1 * 3 + 1

3 = 3 * 1 + 0

PGCD(15,26) = 1 = 4 - 3 = 4 - (11 - 2 * 4) = -11 - 3 * 4 = -11 + 3 * (15 - 11) = 3 * 15 - 4 * 11 = 3 * 15 - 4 * (26 - 15) = 15 * 7 + 26 * -4 = 1 d = 7Supposons qu'on veuille résoudre l'équation 15d mod 26 = 1, autrement dit trouver d et y tels que :

Un légère modification de l'algorithme d'Euclide le permet !Observons le déroulement du calcul de PGCD(15,26)...15d + 26y = 1

Remarque : 15 et 26 dont premiers

entre eux, d'où l'existence de d et

PGCD(15,26) = 1.

Algorithme d'Euclide étendu

Fonction PGCDmodif(a,b)

Entrée : deux entiers a,b avec a ≥ b ≥ 0 Sortie : x,y,d tels que d=PGCD(a,b) et ax + by = d

Si b = 0 alors retourner (1,0,a)

(x',y',d) = PGCDmodif(b,a mod b) retourner (y',x'-(a/b)y',d)Ce principe par " substitution arrière » peut se formaliser par un algorithme récursif très proche de la fonction PGCD : La complexité est bien évidemment la même que celle de l'algorithme d'Euclide (la version étendue de l'algorithme d'Euclide se contente de faire remonter quelques information supplémentaires

à chaque itération), soit O(n2).

Exponentiation modulaire

Fonction Modexp(x,e,n)

Entrée : entiers x,e,n

Sortie : xe mod n

Si e = 0 alors retourner 1

f = Modexp(x,e/2,n)

Si e est pair alors

retourner f2 mod n sinon retourner x * f2 mod n

Autrement dit :

si y est pair si y est impair Soit N le nombre de bits du plus grand entier parmi x,e,n. L'algorithme s'arrête après au plus N appels récursifs, et lors de chaque appel il multiplie des entiers d'au plus N bits (faire le calcul modulo n nous sauve

ici), pour une complexité globale de Modexp en O(N3).RSAn = pqm = (p-1)(q-1)e et m premiers entre euxde mod m = 1 Clé publique : (e,n)Clé privée : (d,n)Cryptage : y = xe mod nDécryptage : x = yd mod n

ee ee equotesdbs_dbs23.pdfusesText_29