• Aucun résultat trouvé

Cryptographie et fonctions `a sens unique

N/A
N/A
Protected

Academic year: 2022

Partager "Cryptographie et fonctions `a sens unique"

Copied!
22
0
0

Texte intégral

(1)

Cryptographie et fonctions `a sens unique

Pierre Rouchon

Centre Automatique et Syst `emes Mines ParisTech, PSL Research University

pierre.rouchon@mines-paristech.fr

Octobre 2018

(2)

Plan

1 Fonction `a sens unique Notion intuitive

Stockage des mots de passe Pile ou face sur internet

2 Exponentielle modulaire D ´efinition

Le protocole de Diffie-Hellman Syst `eme d’El Gamal

DSS

3 Protocole RSA

Protocole di-sym ´etrique Signature

4 Monnaie ´electronique

(3)

Cryptographie moderne

La cryptographie moderne fond ´ee sur lesfonctions `a sens unique commence en 1976 o `u Diffie et Hellman proposent une solution `a un probl `eme consid ´er ´e alors comme insoluble :

Alice et Bob souhaitent ´echanger de fac¸on confidentielle des informations.

Alice et Bob ne disposent pour communiquer que d’une ligne de transmission ´ecout ´ee en permanence par lem ´echant Oscar; Oscar ne peut pas se faire passer pour Alice (resp. Bob) aupr `es de Bob (resp. Alice).

Un expos ´e d ´etaill ´e : l’excellent cours de Gilles Z ´emor de l’ENST.

(4)

Fonction `a sens unique

SoitnNgrand. On poseAn∼ {1, . . . ,n}etBndeux ensembles finis index ´es parnetfn:An7→Bn.fnest `a sens unique, si et seulement si,pourn devenant tr `es grand

1 Il est facile de calculerfn(x)pour importe quelx An.

fnfacile `a calculer: un algorithme ”rapide” pour calculerfn(x),

n ´ecessitant unequantit ´e polyn ˆomiale de calculsen fonction dunombre de bits n ´ecessaires pour coderx An, `a savoir log2(n). Si on noteCn(x) le nombre d’op ´erations ´el ´ementaires n ´ecessaires au calcul defn(x), cela veut dire qu’il existeM, α >0 tels que pour toutnN, et pour tout x An,Cn(x) M(logn)α.

2 Il est difficile poury fn(An)de trouver unx tel quefn(x) =y. fndifficile `a inverser :on ne connaˆıt pas d’algorithme rapide (.i.e. de complexit ´e polyn ˆomiale) qui permette de r ´esoudrefn(x) =y. Pourn grand, il est illusoire pour trouver un telx d’utiliser la m ´ethode ”brutale”

en testant tous lesx deAnvia le calcul ”rapide” defn(quantit ´e exponentielle de calculs)

3 Ordre de grandeur : 2101410308. En 2016 le superordinateur chinois Sunway TaihuLight d ´epasse 100 petaflops (1017”op ´erations par seconde”). Un si `ecle 3×109s.

(5)

Stockage des mots de passe d’un compte utilisateur

Au lieu de stocker lesmots de passe en clairsur un fichier m ˆeme prot ´eg ´e du compte ”syst `eme”, il suffit destocker dans un fichier l’image des mots de passe via la fonctionfn.Lorsque l’on se connecte avec son mot de passe, disonsπ, la machine calculefn(π)et v ´erifie s’il est bien dans la liste qu’elle a sur son disque dur. Nous voyons qu’il est difficile m ˆeme connaissantn,fnet la liste des images parfn des mots de passe, de remonter `a ceux-ci.

Exo:Imaginer une extension qui garantit la s ´ecurit ´e de l’acc `es m ˆeme si le mot de passeπest ´ebruit ´e lors de la connexion (utiliser une suite du typeπk =fnk−1),k =1, . . . ,mavecmgrand et sup ´erieur au nombre total de connexion au cours de la vie d’un compte utilisateur).

Exo:Alice et Bob communiquent via internet. Ils disposent d’une m ˆeme fonction `a sens uniquef. Alice a une pi `ece de monnaie.

Imaginer un protocole pour qu’ils puissent jouer `a pile ou face sans possibilit ´e de fraude.

(6)

Pile ou face sur internet

Alice lance la pi `ece, Bob parie et Alice lui dit s’il a gagn ´e.Probl `eme :il ne faut pas qu’Alice puisse tricher.

Une solution reposant surl’engagementd’Alice (commitment) : une fonction a sens unique injective connue de Bob et d’Alice,f :A7→B, une partitionA=Ap∪Af en deux parties de m ˆeme tailleAf pour face etAp pour pile.

Le protocole (Blum) est le suivant (ordre chronologique) :

1 Alice lance la pi `ece : si c’est face (resp. pile) elle choisit

al ´eatoirementx ∈Af (resp.x ∈Ap), calculey =f(x)et envoiey `a Bob.Alice s’engageen communiquant le r ´esultaty sans

d ´evoilerx.

2 Bob d ´eclare son choix `a Alice, pile ou face.

3 Alice lui dit s’il a gagn ´e ou perdu en communiquant `a Bobx;Bob se persuade qu’Alice n’a pas trich ´e en v ´erifiant quef(x)est bien

´egal `ay.

(7)

Exponentielle modulaire

Soitpunnombre premier, a priori grand.

L’ensembleZp= (Z/pZ)\{0}, les entiers d ´efinis modulopet diff ´erents de z ´ero, forme ungroupe cyclique pour la multiplication : il est engendr ´e par les puissances de certains de ses ´el ´ements, dits ´el ´ements primitifs.

SoitαZprimitif. Alors les gens s’accordent pour dire que la fonctionf d ´efinit par

Zp Zp

x 7→ αx

est `a sens unique. Pour le calcul deαx on identifiex Zp `a l’ensemble des entiers entre 1 etp1, et l’on calculαx modulop.

Exo:

1 Monter quef(p1) =1 quelque soitαprimitif modulop.

2 Donner un algorithme rapide de calcul de l’exponentielle.

(8)

Logarithme discret

Tous les algorithmes connus pour inverser cette fonction (lelogarithme discret) n ´ecessitent un temps de calcul non polyn ˆomial en log(p)et sont impraticables d `es quepest un nombre de quelques centaines de bits.

Pourquoi donc prendre un nombre premierpet un ´el ´ement primitif modulo-p. Tout d’abord,ppremier implique que tout entier non nul plus petit quepest inversible. Ensuiteαprimitif implique que l’applicationf est bijective :l’exponentielle modulairef est une permutation difficile `a inverser d’un ensemble `ap ´el ´ements.

Exo:Soitppremier etαZpprimitif modulop. On note par logα(y)l’unique x dansZptel queαx =y mod(p).

1 Montrer que∀β, γZpet∀sN, on a logαs) =slogα) mod(p)et logα(βγ) =logα(β) +logα(γ) mod(p).

2 Montrer que, si l’on dispose d’un algorithme rapide pour calculer logα, alors on dispose aussi d’un algorithme rapide pour calculer logβ.

3 Expliciter le protocole `a base d’exponentielles modulaires qui permet de jouer `a pile ou face sur internet tout en garantissant le fait qu’aucun des deux joueurs ne pourra tricher sans que l’autre ne le sache.

(9)

Le protocole de Diffie-Hellman

Pourcommuniquer de fac¸on confidentielle, Alice et Bob vont ´echanger sur un nombre secretSqui leur servira de cl ´e `a un syst `eme classique de chiffrement. En utilisant uniquementle canal public, ils doivent s’ ´echanger la cl ´e secr `eteS.

1 Alice et Bob ´echangent publiquementun nombre premierpet un

´el ´ement primitifαmodulo-p.

2 Alice choisit secr `etementaet Bobb. Alice et Bob calculent chacun une exponentielle (facile),A=αa mod(p)pour Alice et B=αb mod(p)pour Bob.

3 Alice et Bob ´echangent publiquementAetB.

4 Alice calculeS=Ba mod(p)et Bob calculeS =Ab mod(p).

La cl ´e secr `ete est alorsS=αab mod (p)

(10)

Syst `eme d’El Gamal

Di-sym ´etrie dans le chiffrement et le d ´echiffrement avec premierpetα primitif modulo-p.

Le destinataire Bob dispose dela cl ´e publique(p, α,P)etla cl ´e secr `etesavec laquelle il a calcul ´eP =αs mod (p);

Alice souhaite envoyer le messageM `a Bob. Alice choisit alors un nombrek au hasard et calcule les deux exponentielles suivantes :

A=αk mod(p), B=MPk mod(p).

Alice envoie alors `a BobAetB :(A,B)forme le message chiffr ´e.

Pour le d ´ecodage, Bob connaissants, calculeAs mod (p)qui n’est autre quePk mod(p)et obtient le message en clair viaM=B/As mod (p).

(11)

Digital Signature Standard

DSS : Digital Signature Standard qui date de 1994 : authentification de messageM envoy ´e en clair avec unesignature publique(p, α,P).

1 Alice dispose d’un nombre premierpet deαprimitif modulo-p.

Elle choisie un nombresau hasard, une fois pour toute et calcule P =αs mod (p). Elle communique de fac¸on officielle sa

signature par le triplet rendu public(p, α,P).

2 Connaissant la signature d’Alice(p, α,P), Bob rec¸oit un jour un message en clairM et il veut ˆetre bien s ˆur que c’est Alice qui lui a envoy ´e ce message. Pour cela Alice adjoint `aM deux nombres S= (u,v)qui authentifient le message et en forment une signaturetr `es difficile `a imiter et en plus li ´ee au contenu du messageM.

(12)

Digital Signature Standard (suite)

(u,v)sont construits de la fac¸on suivante : Alice choisit au hasard un nombrek premier avecp−1. Elle calcule ensuiteu=αk mod(p)et alorsv est l’unique solution deM=us+kv mod(p−1)(k est inversible modulo-(p−1)).

Ainsi Bob recevantM avec la signatureS= (u,v)connaissant (p, α, αs)v ´erifie par une simple exponentiation que seule Alice peut avoir envoy ´e ce message. En effet, le calcul deαM donne

αMus+kv+r(p−1)= (αs)uk)v

o `ur est un certain entier et utilisant le petit th ´eor `eme de Fermat qui assure queαp−1=1 mod(p)d `es quep est premier etα entre 1 etp−1. Comme(αs)u=Pu et(αk)v =uv, Bob peut calculerPu etuv et s’assurer que leur produit donne bienαM modulo-p.

(13)

Digital Signature Standard (fin)

Pour signer le messageMsans connaˆıtreson est face `a un probl `eme difficile : trouveru etv v ´erifiant

αM =Puuv mod(p)

probl `eme qui n ´ecessite a priori le calcul d’un logarithme.

En conclusion, tout le monde sait certifier le message comme provenant d’Alice mais seule Alice peut authentifier ses

messages. Pour cela Alice utilise astucieusementl’exponentielle modulaire et le petit th ´eor `eme de Fermat.

Remarque :en g ´en ´eral, le messageM que signe Alice n’est pas le message en clair directement (il faudrait pour le coder un nombreM beaucoup trop grand). On utilise alors unefonction de hachagequi fait correspondre au message en clair (de grande taille) un nombreM de quelques milliers de bits.

Ce nombreM,”intriqu ´e”au message complet, est alors sign ´e par DSS.

(14)

RSA

RSA invent ´e par Rivest, Shamir et Adleman en 1977 : Ce syst `eme di-sym ´etrique s’appuie sur la difficult ´e de factoriser un grand nombren (plusieurs milliers de bits) qui est le produit de deux grands nombres premierspetq:cl ´e publique(n,e),aveceinversible modulo

ϕ(n) = (p1)(q1),cl ´e secr `eted, l’inverse deemodulo(p1)(q1). Chiffrement d’un message en clair d ´efini par un entierM mod(n)se fait par la transformation suivante :

M 7→Me mod(n).

D ´echiffrement : Bob rec¸oit via un canal publicA=Me. Pour d ´echiffrer, il lui suffit d’ ´eleverA`a la puissanced o `ud,la cl ´e secr `ete, est l’inverse de emoduloϕ(n) = (p1)(q1). On sait en utilisant leth ´eor `eme

d’Euler-Fermat et le th ´eor `eme chinoisqueMkϕ(n)+1=M mod(n),donc Ad = (Me)d=Med=M mod(n)

cared=1+rϕ(n)pour un certainr.

(15)

RSA (fin)

Remarquons maintenant que le grand m ´echant Oscar doit trouver M v ´erifiant

A=Me mod(n)

en ne connaissant queA,eetn. On ne sait pas comment faire un tel calcul en temps polyn ˆomial sans connaˆıtreϕ(n). Comme, ϕ(n) = (p−1)(q−1)etn=pqcela revient `a connaˆıtrep etq.

On ne sait pas `a l’heure actuelle d ´emontrer qu’il n’existe pas d’algorithme polyn ˆomial qui donne, quand c’est possible, un diviseur non trivial d’un nombren. Le premier qui donne la d ´emonstration de cette non existence empoche 1 Million de $ car il aura alors montr ´e la grande conjecture de la th ´eorie de la complexit ´e :P6=NP.

(16)

RSA en mode signature

En mode signature, il suffit de permuter le r ˆole deeetd. Ainsi, Alice choisitpetqdeux grands nombres premiers et communique sasignature officielle sous la forme de(n=pq,e)o `ueest

inversible par rapport `aϕ(n).

Alice garde bien-s ˆur sacl ´e secr `eted qui est l’inverse deemodulo ϕ(n). Pour signer son message Alice envoie `a BobMet sa

signatureMd.

Alors Bob authentifie le message comme provenant d’Alice en v ´erifiant que(Md)e=M mod(n)qui signifie implicitement que l’exp ´editeur connaˆıt un inverse deemoduloϕ(n)et donc la factorisation den. Ce ne peut donc ˆetre qu’Alice.

Exo:Imaginer un syst `eme de monnaie ´electronique anonyme utilisant la fonction puissance de RSA (solution : voir la suite et aussi cours de Z ´emor).

(17)

Exercice : la monnaie ´electronique

Imaginer un syst `eme de monnaie ´electronique faisant intervenir trois acteurs, labanquequi ´emet la monnaie, l’utilisateurde la monnaie

´emise par la banque, levendeurqui est pay ´e avec la monnaie ´emise par la banque. Le syst `eme doit satisfaire au minimum les deux contraintes suivantes :

Assurer un paiement anonyme.

Impossibilit ´e de fausse monnaie.

On supposera que,

pour l’ ´emission de la monnaie, l’utilisateurcontacte labanqueo `u il a un compte approvisionn ´e.

lors du paiement levendeurcontacte labanquequi a ´emis la monnaie que lui donne l’utilisateuren ´echange du bien qu’il ach `ete.

Indication :utiliser la fonction puissance du RSA conjointement `a une fonction `a sens uniquef.

(18)

La monnaie ´electronique (solution de l’exercice)

La banque poss `eden=pqeteinversible moduloϕ(n), d’inversed.

Elle garde secretp,q etd. Elle ne communique quenete. On

dispose aussi d’unefonction `a sens uniquef de{1, . . . ,n−1}dans lui m ˆeme.Sont publics :n,eet la fonctionf.

L’utilisateur U souhaite une unit ´e de monnaie. Il choisit

al ´eatoirementr etx modulon, calculeY =ref(x) mod (n)et envoie uniquementY `a la banque.

La banque calculeZ =Yd mod(n), pr ´el `eve le compte de U et communiqueZ `a U. Celui ci divise alorsZ parr pour en d ´eduire X =f(x)d mod(n).

L’unit ´e demonnaie ´electroniqueest alors(x,X). Si U souhaite payer anonymement avec(x,X), le vendeur v ´erifie bien quef(x) =Xe mod (n)et contacte la banque pour savoir si le billet(x,X)n’a pas d ´ej `a ´et ´e utilis ´e. La banque est incapable de remonter `a l’utilisateur U (r joue le r ˆole demasque vis `a vis de la banque).

Exo:A quoi sert la fonction `a sens uniquef?

(19)

Identification et preuve sans transfert de connaissance

LeprouveurP d ´etient le secrets∈ {1, . . . ,p1}et est identifi ´e parI=αs mod(p)avecppremier etαprimitif modulo p. Il s’agit de convaincre le v ´erificateurV que P est bien celui qui connaˆıt le logarithme deI.

P choisitr mod(p1)al ´eatoire, calculet=αr mod(p)et envoiet `a V.

V choisit un bit al ´eatoire=0 ou 1 et l’envoie `a P. Si=0, P renvoie x =r mod(p1)`a V ; si=1, P renvoiex =r+s mod(p1)`a V.

V v ´erifie queαx =It mod(p).

Apr `esk ´echanges de ce typeV est convaincu, avec la probabilit ´e de 12−k queP est bien de d ´etenteur du logarithme discret deI. Maintenant,

l’information qu’a obtenueV n’est qu’une liste d’entiers al ´eatoiresx et leurs exponentiellesαx mod(p), liste que V aurait pu construire sans passer par P.

Exo:Monnaie ´electroniqueEn d ´eduire une extension de la monnaie

´electronique pr ´ec ´edente qui ´evite au vendeur de contacter la banque au moment de la transaction et qui interdit aussi `a l’utilisateur d’utiliser plusieurs fois le m ˆeme couple(x,X)sans r ´ev ´eler du m ˆeme coup son identit ´e.

(20)

Monnaie ´electronique sans contact vendeur/banque (solution de l’exo) On reprend ce qui pr ´ec `ede avec comme donn ´ees publiques fournies par la banque ´emettrice : un entier RSAn, un exposant RSAeet une fonction `a sens uniquef. On d ´ecomposex = (u,v)en deux parties (uetv sont deux chaˆınes de bits de m ˆeme longueur formant l’ ´ecriture binaire dex). On consid `ere en plus une autre fonction `a sens uniquegtelle queuetv sont obtenus viagpar

u=g(a,b), v =g(a+U,c)

o `ua,b,c sont choisis au hasard (choix qui remplace le choix dex) et o `uU identifie celui qui poss `ede la monnaie, l’utilisateur.

En fait une unit ´e de monnaie ´electronique est caract ´eris ´ee par unk-uple (xi,Xi)1≤i≤k o `upe

f(xi) =Xi,xi = (ui,vi),ui =g(ai,bi),vi =g(ai+U,ci)avec k assez grand (quelques dizaines). L’utilisateur connaˆıt pour chaquei, ai,bi,ci. L’utilisateur paie le vendeur via le protocole suivant : le vendeur choisit al ´eatoirement(i)1≤i≤k dans{0,1}et communique son choix `a l’utilisateur. Pour chaquei, l’utilisateur communique au vendeur

(zi1,zi2,zi3,zi4) =

(ai,bi,vi,Xi) sii =0 ; (ai+U,ci,ui,Xi) sii =1 ;

qui en d ´eduitxi et v ´erifie quef(xi) =Xiesans communiquer avec la banque.

(21)

Monnaie ´electronique sans contact vendeur/banque (suite)

Si l’utilisateur utilise deux fois la m ˆeme monnaie ´electronique (xi,Xi)1≤i≤k aupr `es de deux vendeurs diff ´erents, il d ´evoile du m ˆeme coup son identit ´eU avec une probabilit ´e de 1−1/2k. Du d ´ep ˆot `a la banque de la m ˆeme monnaie ´electronique par deux vendeurs diff ´erents, les(zi1,zi2,zi3,zi4, i)pour le premier vendeur et les(¯zi1,z¯i2,z¯i3,z¯i4i)pour le second, on n’a qu’une chance sur 1/2k pour que∀i,i= ¯i. Avec une probabilit ´e de 1−1/2k il existe unr tel quer 6= ¯r. Il est tr `es facile `a la banque de remonter `a l’utilisateurU avec la diff ´erence dezr1et¯zr1.

(22)

Monnaie ´electronique sans contact vendeur/banque (fin)

La banque doit cependant v ´erifier que lors de la fabrication des(xi,Xi), l’utilisateur a bien mis son identifiantUet pas celui de son meilleur ennemi.

Pour cela on modifie le protocole d’ ´emission entre la Banque et l’utilisateurU.

L’utilisateurUchoisit al ´eatoirement(ri,ai,bi,ci), calculexi = (ui,vi)avec ui =g(ai,bi),vi =g(ai+U,ci)et transmet `a la banque 2k entiers Yi =rief(xi) mod(n).

La banque calcule lesZi =e

Yi =Yid mod(n), pr ´el `eve le compte deU et communique lesZi `aU. Celui ci divise alorsZi parri pour en d ´eduire Xi =pe

f(xi) mod(n).

La banque v ´erifie que l’utilisateur n’a pas trich ´e. Elle tire au hasardk entiers entre 1 et 2k, demande `aUpour chacun de cesk entiersi, (ri,ai,bi,ci), et v ´erifie que lesYi d ´ej `a communiqu ´es parUsont bien de la formerief((g(ai,bi),g(ai +U,ci)).

A la fin de ce protocole, lesk entiers restant permettent de former la monnaie

´electronique anonyme queUne peut utiliser plusieurs fois sans ˆetre t ˆot ou tard d ´emasqu ´e par la banque (avec une probabilit ´e de 11/2k).

Références

Documents relatifs

Aucune clé n'a été échangée et aucune interception d'un ou de plusieurs des échanges de permet de trouver M sans faire un calcul de logarithme discret. Enfin, A et B peuvent

Les notes obtenues dans l’université partenaire aux enseignements suivis lors d’une même année universitaire en application de la convention de coopération peuvent être

La communication entre les différents environnements s’appuie sur plusieurs composants d’interopérabilité qui ont été spécifiquement développés et constituent la valeur

Il faudra donc installer la bibliothèque GMP à un moment où un autre (Pour Windows, j'expliquerais comment faire dans le chapitre I de la partie II)) Ouvrez une console et copiez-y

On applique un amortissement dégressif : l’annuité d’amortissement se calcule en appliquant un taux de 40 % sur la valeur nette comptable en début d’exercice.. Calculer les

> maîtriser les techniques du secteur bancaire et de l’assurance pour progresser rapidement durant leur alternance (analyse financière, gestion de patrimoine, gestion de

La Direction d’un Réseau, d’une région, d’un marché est la plus courante, ou même des fonctions centrales (en tant que Directeur Marketing ou des Engagements), autant de

1630, le Parlement de Paris autorisa la revendication d'un propriétaire contre un créancier gagiste sans l'obliger à débourser le montant prêté par ce créancier 23. Au Québec,