• Aucun résultat trouvé

Le chiffrement à clé publique

Dans le document QUANTUM KEY DISTRIBUTION PROTOCOLS : (Page 26-30)

A.1 Montage pour l’expérience de cryptographie quantique [13]

1.5 Les deux techniques de chiffrement

1.5.2 Le chiffrement à clé publique

1.5.2.1. Concept

Dans le cas des systèmes symétriques, on utilise une même clé pour le chiffrement et le déchiffrement. Le problème repose dans la transmission de la clé : il faut une clé par destinataire. Dans le cas des systèmes asymétriques, chaque personne possède deux clés distinctes :

• une privée secrèteSk (symbolisée par la clé horizontale sur la figure 1.5.2) ;

• une publique Pk (symbolisée par la clé verticale sur la figure 1.5.2) ; avec impossibilité de déduire la clé privée à partir de la clé publique. De ce fait, il est possible de distribuer librement cette dernière [5].

Figure 1.5.2. – Chiffrement asymétrique.

Le concept date officiellement de 1976 de Diffie et Hellman. Officieusement, les bases existent depuis 1969 par Ellis. La première implémentation a lieu en 1978 par Rivest, Shamir et Adleman sous la forme de l’algorithme Rivest-Shamir-Adleman (RSA) bien que, là aussi, les fondements de ce système datent de 1973, par Cocks [5].

Réalisé par Tanguy AKPLA 17

Chapitre 1. État de l’art de la cryptographie

La sécurité de tels systèmes repose sur des problèmes calculatoires tels que [5] :

• la factorisation de grands entiers (RSA) ;

• le logarithme discret (ElGamal) ;

• le problème du sac à dos4 (knapsacks) (Merkle-Hellman).

La recherche des clés par force brute est toujours théoriquement possible mais les clés utilisées sont trop grandes (> 512 bits). La sécurité se fonde sur une assez grande différence en termes de difficulté entre les problèmes faciles (déchiffrement) et difficiles (décryptement) :

• généralement le problème difficile est connu, mais il est trop complexe à résoudre en pratique ;

• la génération des clés exige l’utilisation de très grands nombres.

En conséquence, ce type de chiffrement est lent si on le compare aux chiffrements symétriques. Cependant, à l’inverse du chiffrement symétrique où le nombre de clés est le problème majeur, ici, seules n paires sont nécessaires. En effet, chaque utilisateur possède une paire (Sk , Pk ) et tous les transferts de message ont lieu avec ces clés. La distribution des clés est grandement facilitée car l’échange de clés secrètes n’est plus nécessaire. Chaque utilisateur conserve sa clé secrète sans jamais la divulguer. Seule la clé publique devra être distribuée. Nous présentons ici l’algorithme RSA, qui est le cryptosystème asymétrique plus utilisé de nos jours.

1.5.2.2. Rivest - Shamir – Adleman

L’algorithme RSA est basé sur le calcul exponentiel. Sa sécurité repose sur la fonction unidirectionnelle suivante : le calcul du produit de 2 nombres premiers est aisé. La factorisation d’un nombre en ses deux facteurs premiers est beaucoup plus complexe.

Il s’agit du système le plus connu et le plus largement répandu, basé sur l’élé-vation à une puissance dans un champ fini sur des nombres entiers modulo un nombre premier.

4. En algorithmique, le problème du sac à dos, noté également KP (en anglais, Knapsack problem) est un problème d’optimisation combinatoire. Il modélise une situation analogue au remplissage d’un sac à dos, ne pouvant supporter plus d’un certain poids, avec tout ou partie

Chapitre 1. État de l’art de la cryptographie

La sécurité repose sur le coût nécessaire pour factoriser de grands nombres. Le nombre de factorisation prend environO(e(lognlog(logn))) opérations ce qui demande un temps de calcul trop important pour les machines actuelles, dans un cadre privé.

On l’utilise pour la confidentialité, l’authentification, ou encore une combinaison des deux [5].

1.8.1.2.1 Principes

On possède une paire de clés, l’une publique (e, n) et une privée (d, n).

• Bob choisit deux facteurs premiers pet q et il calcule n=pq;

• il choisit ensuite un très grand entier e, premier à (p-1)*(q-1) ;

• il choisit ensuited tel que ed= 1mod (p−1)(q−1) ;

• il détruitpetq. Oscar pouvant retrouver ces valeurs, il faut les détruire pour éviter qu’ils ne tombent en sa possession.

Pour qu’Alice puisse envoyer des messages à Bob, il lui faut la clé publique de ce dernier. Ainsi, Bob envoie à Alice par un canal public (non sécurisé) les nombres n et e. Si Alice veut envoyer à Bob un message chiffré a, elle calcule b=aemod n et l’envoie à Bob, encore via un canal public. Bob calcule alors bdmod n =a. Un espion qui possède n, e etb ne peut pas remonter àa, car il n’a ni pni q.

1.8.1.2.2 Exemple

Soient p = 31, q = 53 c’est-à-dire n = 1643. (p−1)(q−1) = 1560 (nombre d’éléments relativement premiers et inférieur à n). Soit e= 11 par exemple, e n’a pas de facteur commun avec 1560. On détermined= 851. La clé publique est donc (11,1643) et la clé privée est (851,1643).

Soit le codage par la position dans l’alphabet du mot «ANEMONE». Il vient : 01 14 05 13 15 14 05

On procède selon deux conditions :

1. Découpage en mots de même longueur 011 405 131 514 05 On ajoute un padding5 initial si nécessaire. 001 140 513 151 405 Cela provoque la perte

5. Le padding consiste à faire en sorte que la taille des données soit compatible avec les algorithmes utilisés. Un grand nombre d’algorithmes utilisent un partitionnement en blocs de taille fixe. Si la taille des données n’est pas un multiple d’un bloc alors un schéma de padding doit être envisagé.

Réalisé par Tanguy AKPLA 19

Chapitre 1. État de l’art de la cryptographie

du motif "_" en fin de bloc.

2. Découpage en morceaux de valeur inférieure à n, car opération modulo n.

Lors du chiffrement, on a C=Memod n soit :

Tableau I.I. – Chiffrement RSA.

00111mod1643 0001 14011mod1643 0109 51311mod1643 0890 15111mod1643 1453 40511mod1643 0374

et pour le déchiffrement, M =Cdmod n

Tableau I.II. – Déchiffrement RSA.

0001851mod1643 001 0109851mod1643 140 0890851mod1643 513 1453851mod1643 151 0374851mod1643 405

Lors du déchiffrement, sachant qu’il faut obtenir des blocs de 2 éléments (grâce au codage particulier de l’exemple), on a bien :

01 14 05 13 15 14 05

A N E M O N E

La recherche de la sécurité étant primordiale en cryptographie, nous étudierons la sécurité du RSA en particulier et des cryptosystèmes à clé publique en général dans les lignes qui suivent.

Chapitre 1. État de l’art de la cryptographie

1.8.1.2.3 Analyse de la Sécurité Les attaques

Il existe trois approches pour attaquer le RSA :

• recherche par force brute de la clé (impossible étant donné la taille des don-nées) [5] ;

• attaques mathématiques (basées sur la difficulté de calculer (p−1)(q−1), la factorisation du module n) [5] :

— factoriser n=pq et par conséquent trouver (p−1)(q−1) et puis d;

— déterminer (p−1)(q−1) directement et trouver d;

— trouver d directement.

• attaques de synchronisation (timing attack) [5].

En cryptanalyse, une attaque temporelle ou de synchronisation consiste à esti-mer et analyser le temps mis pour effectuer certaines opérations cryptographiques (par exemple la multiplication par un petit ou un grand nombre) dans le but de découvrir des informations secrètes. Certaines opérations peuvent prendre plus de temps que d’autres et l’étude de ces informations temporelles peut être précieuse pour le cryptanalyste. La mise en œuvre de ce genre d’attaque est intimement liée au matériel ou au logiciel attaqué.

Pour le cryptanalyste, la nécessité d’un algorithme de factorisation efficace et de ”super calculateurs’ est l’unique solution d’attaquer l’algorithme RSA.

Dans le document QUANTUM KEY DISTRIBUTION PROTOCOLS : (Page 26-30)

Documents relatifs