Notes sur le cours de Cryptographie - 2° partie, Notes de Applications informatiques
Francine88
Francine8813 January 2014

Notes sur le cours de Cryptographie - 2° partie, Notes de Applications informatiques

PDF (154.7 KB)
13 pages
300Numéro de visites
Description
Notes d'informatique sur le cours de Cryptographie - 2° partie.Les principaux thèmes abordés sont les suivants:le protocole de diffie-hellmann,exemple schématique,le système r.s.a.,le théorème d'euler,Démonstration.
20points
Points de téléchargement necessaire pour télécharger
ce document
Télécharger le document
Aperçu3 pages / 13
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Aperçu avant impression terminé
Chercher dans l'extrait du document
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Aperçu avant impression terminé
Chercher dans l'extrait du document

Le principe de la clé publique doit autoriser des échanges sécurisés, sans clé secrète, en un seul

trajet. Bernard distribue largement des exemplaires de son cadenas-public. Alice s'en procure

un, mais n'importe qui pourrait faire de même. Alice place le message dans le coffre et le ferme

avec le cadenas code de Bernard, puis elle lui envoie le coffre (représenté par la cinquième

transactions de la figure ci-dessus). En recevant le coffre, Bernard peut ouvrir le coffre, puisque

lui seul détient le clé qui ouvre ce cadenas. Le transfert est sûr en un seul voyage. En

cryptographie, la clé publique équivaut au cadenas code, qui est disponible par exemple dans

des annuaires, tandis que la clé qui ouvre ce cadenas est la clé privée, détenue uniquement par

leur propriétaire et qui n'est jamais divulguée. La clé privée et publique sont construites à parti

d'une fonction mathématique supposée comme "à sens unique".

Voyons donc maintenant la deuxième solution faisant usage de clé publique selon le protocole

de Diffie-Hellmann:

PROTOCOLE DE DIFFIE-HELLMANN

Comme son nom l'indique, une fonction à sens unique donne un résultat facilement, mais

l'opération inverse est très difficile. Trouver de telles fonctions dans le monde mathématique

semblait fort ardu aux mathématiciens. Comment imaginer une fonction qui soit à sens unique

pour tout le monde, excepté pour son créateur qui peut l'inverser grâce à la connaissance d'une

information particulière. Ainsi, W. Diffie et M. Hellmann ont été les premiers à proposer

publiquement une fonction à sens unique pour résoudre le problème de la mise en accord sur

un secret commun. L'idée de base consiste à calculer des valeurs du type :

(16)

Les mathématiciens appellant ce genre d'opérations une "exponentation modulaire".

Pour un tel calcul, nous élevons un nombre à la puissance a, puis nous divisons le résultat

par un grand nombre premier p et nous conservons finalement le reste de cette division

(opération modulo p).

L'opération inverse est un problème redoutable : même si nous connaissons les valeurs

numériques de , de pet de , il est extrêmement difficile en pratique de retrouver

le bon nombre a.

La sécurité de ce protocole est calculatoire. Elle se fonde sur l'hypothèse qu'avec une puissance

de calcul et un temps limités, un adversaire ne peut inverser la fonction exponentielle

modulaire (en faisant usage des propriétés des logarithmes avec les fonctions exponentielles

comme nous l'avons vu dans le chapitre d'analyse fonctionnelle) et donc ne peut trouver le

secret a à partir des éléments échangés. Cette difficulté calculatoire est due au fait que le temps

de calcul nécessaire à l'inversion d'une fonction à sens unique n'a pas un complexité

algorithmique (cf. chapitre de Méthodes Numériques) polynomiale mais exponentielle avec p.

Voyons un exemple schématique :

ALICE Publique (internet) BERNARD

On choisit un nombre arbitraire commun : et un nombre aléatoire commun inférieur

à p: . On suppose que ces deux valeurs sont secrètes.

Alice choisit un

nombre aléatoire

secret :

Bob choisit un

nombre aléatoire

secret :

échange données chiffrées avec K

Tableau: 2 - Exemple d'échange de clé entre Alice et Bernard

Alice et Bernard on calculé le même secret commu n: 493. On se sert de 493 pour chiffrer les

données échangées (dans la pratique, on utilise des nombres beaucoup plus grands). L'espion

n'est supposé pouvoir intervenir qu'après l'échange du choix commun de p et .

Rappel : la clé K est obtenue par le fait que l'opération puissance est compatible avec la relation

d'équivalence modulo p (cf. chapitre de Théorie Des Nombres) telle que :

(17)

Exemple:

, alors qu'avec nous avons alors que .

Ainsi, puisque , le second modulo n'a plus de sens donc nous pouvons écrire :

(18)

de même :

(19)

et donc :

(20)

Malgré ces précautions, des experts ont établi au début du 21ème siècle un record en utilisant

un nouvel algorithme, ils ont réussi à inverser la fonction exponentielle modulaire pour un

nombre p de 120 chiffres (environs 400 bits), à l'aide d'un ordinateur intégrant quatre

processeurs de 525 MHz. Ce record montre que la sécurité du protocole dépend grandement

des progrès constants réalisés dans le domaine de la complexité algorithmique.

L'astucieux schéma de Diffie-Hellmann reste un schéma de principe. Son principal inconvénient

est qu'il ne permet pas d'assurer les services de sécurité classiques : authentification des deux

intervenants, contrôle de l'intégrité de la clé et anti-rejeu ( vérification qu'une information déjà

transmise ne le soit pas à nouveau). Il s'en suit qu'un attaquant peut, par exemple, usurper

l'identité d'Alice en remplaçant l'élément public d'Alice par son propre élément public. Pour

pallier cet inconvénient, des versions sécurisées de ce protocole générique ont été publiées, par

exemple un protocole nommé "STS" (Station To Station) qui utilise notamment la signature

électronique pour assurer l'authentification des intervenants (voir plus loin).

Le protocole de Diffie-Hellmann a ouvert la voie à toute une série d'algorithmes, celui du

chiffrement a clé publique étant le premier. L'idée était de rompre la symétrie du chiffrement et

du déchiffrement en utilisant les fonctions à sens unique.

SYSTÈME R.S.A.

Curieusement, le système de chiffrement R.S.A. le premier apparu dans la littérature est

conceptuellement assez éloigné du protocole de Diffie-Hellman : il n'utilise pas l'exponentielle

discrète, mais la factorisation des grands nombres. Ce système a clé publique a été inventé en

1977 par Ron Rivest, Adi Shamir et Leonard Adleman. Vite devenu un standard international, la

technique R.S.A. a été commercialisée par plus de 400 entreprises et nous estimons que plus de

400 millions de logiciels l'utilisent. Elle est impléments dasn les navigateurs Web, comme

Netscape Navigator, Microsoft Internet Explorer ou encore dans certaines cartes à puces

bancaires, comme les cartes VISA.

Le système RSA est fondé sur la difficulté de factoriser des grands nombres et la fonction à

sens unique utilisée est une fonction "puissance". Le protocole de chiffrement R.S.A. se

décompose en trois phases :

1. Création des clés (publiques et privées)

2. Chiffrement à l'aide de la clé publique du destinataire

3. Déchiffrement à l'aide de la clé privée

Ce concept repose sur un théorème fameux appelé "théorème d'Euler" (rien à voir avec le

théorème du même nom en géométrie ou théorie des graphes). Voyons de quoi il s'agit

(attention c'est relativement long!).

THÉORÈME D'EULER

Avant de voir en quoi consiste ce théorème, il nous faut définir deux éléments qui y sont inclus.

Outre le concept de congruence que nous avons déjà étudié dans le chapitre de Théorie des

Nombres, il reste une fonction spéciale dite appelée "indicatrice d'Euler" et définie par:

(21)

Autrement dit, la fonction du nombre entier m a pour résultat un nombre n strictement

inférieur à m, donné par le nombre d'éléments compris entre 1 et m dont le p.g.c.d. (cf.

chapitre de Théorie des Ensembles) est 1.

Ce qui peut encore se formuler sous la forme suivante : l'indicateur du nombre entier m est

défini comme le nombre d'entiers positifs inférieurs ou égaux à m et premiers avec m.

Cette fonction a donc aussi la propriété remarquable de compter le nombre d'entiers positifs

plus petits que m et "relativement premiers" (c'est à dire qui ont le p.g.c.d égal à 1) avec m.

Voici quelques valeurs de 0 à 19:

(m) 0 1 2 3 4 5 6 7 8 9

0 1 1 2 2 4 2 6 4 6

10 4 10 4 12 6 8 8 16 6 18

Tableau: 3 - Valeurs de l'indicatrice d'Euler

Nous remarquons la propriété (triviale) de cette fonction lorsque nous notons un nombre

premier (se rappeler que 1 n'est pas un nombre premier!) quelconque par la lettre p alors:

(22)

Remarque: Cette fonction se trouve parfois dans la littérature sous la dénomination "indicateur

d'Euler" au lieu de "fonction phi d'Euler".

L'indicatrice d'Euler peut s'écrire aussi sous la forme suivante si p et q sont premiers (il s'agit du

cadenas du système R.S.A qui est plus compliqué que la simple multiplication de p et q) :

(23)

cette dernière relation peut se vérifier aisément (sans démonstration) en prenant quelques

valeurs du tableau précédent.

Ceci fait, soit (le p.g.c.d de a et m), le "théorème d'Euler" dit que si m est un entier

naturel et a est relativement premier avec m alors nous avons :

(24)

dans laquelle nous voyons apparaître l'indicatrice d'Euler définie juste avant haut..

Démonstration:

Rappelons d'abord (cf. chapitre de Théorie Des Nombres) qu'un système de résidus

modulo m est un ensemble d'entiers tel que:

1.

2. n'est pas congru modulo m lorsque

3. Chaque entier x relativement premier avec m est congru à un certain modulo m.

Par exemple, l'ensemble {1, 5} est un système réduit de résidus modulo 6 ou autre exemple,

{1,2,3,4,5,6} est un système réduit de résidus modulo 7. Nous vérifions également pour le

premier exemple, que 1 n'est pas congru 5 modulo 6 (effectivement, 6 ne divise pas (5-1)) et

que 5 qui est relativement premier à 6 est congru à lui-même. Pour le deuxième, exemple,

nous remarquons que le cardinal de l'ensemble de résidus correspond à la valeur de l'indicateur

d'Euler pour le nombre 7.

Ainsi, soit un système réduit de résidus modulo m. Nous avons besoin pour la

démonstration du théorème d'Euler, de démontrer que est aussi un système

réduit de résidus modulo m.

Remarque: Comme nous en avons déjà fait mention dans l'exemple précédent, pouvez observer

que le cardinal de l'ensemble des résidus correspond, pour un modulo m premier donné, au

résultat défini par la fonction d'Euler. Nous parlons alors de "conjecture", c'est-à-dire une

supposition fondée sur des probabilités (car non démontrée parait-il!).

Pour cela, rappelons-nous que:

et (25)

alors nous voulons démontrer que:

(26)

est aussi satisfait.

Posons pour cela (par tradition...). Nous avons alors

puisque que et et identiquement pour puisque et

que . Maintenant si d divise bien a ou dans ce cas nous avons que ou

autrement . Donc et ce qui nous permet d'écrire:

(27)

Revenons à notre théorème d'Euler... si vous suivez toujours... Nous venons de démontrer qu'il

y a bijection entre les deux ensembles de résidus. C'est-à-dire que pour chaque résidu du

système réduit modulo m, nous aurons un résidu du système réduit modulo m selon la

propriété fondamentale de la congruence qui rappelons-le dit que: nous pouvons multiplier les

deux membres d'une congruence par un même nombre entier et il restera congru modulo m et

modulo m multiplié par ce nombre entier.

Exemple:

Prenons :

(28)

effectivement :

(29)

car le reste de la division de 30 par 6 est bien nul. Si nous prenons par exemple :

(30)

alors nous avons également et le reste est aussi nul...

Petit rappel sur la bijection (cf. chapitre de Théorie Des Ensembles) : nous disons que nous

avons une bijection, si à chaque élément d'un ensemble de départ correspond au moins un

élément dans l'ensemble d'arrivée (s'il y avait pour chaque homme sur Terre un femme - à

proportions égales donc - il y aurait bijection entre l'ensemble des Hommes et des Femmes).

Bref, comme il y a bijection entre les deux ensembles de résidus, nous pouvons écrire:

(31)

Exemple:

L'ensemble est un système réduit de résidus modulo 6 comme nous l'avons déjà vu. Nous

avons donc :

(32)

Si nous prenons un a tel que , par exemple car effectivement , alors :

(33)

car . Effectivement 6 divise bien 30 avec un reste nul.

Donc revenons à notre bijection qui peut s'écrire par les règles élémentaires de l'algèbre:

(34)

Puisque :

(35)

(vous pouvez vérifier mais cela découle de définition même d'un ensemble de résidus!), nous

sommes bien obligé de conclure que:

(36)

et de toute façon, même si cela ne vous semble pas évident, vous n'avez qu'à multiplier chacun

des membres de l'égalité de la congruence par:

(37)

comme nous l'autorise une des propriétés intrinséque de la congruence démontrée

précédemment.

C.Q.F.D.

Cet interlude théorie étant fait, considérons un nombre N dont nous souhaitons décider s'il est

premier ou non.

Nous savons d'après le théorème d'Euler et de la propriété de l'indicateur d'Euler, que si N est

un nombre premier et si , où , alors :

(38)

qui est appelé le "petit théorème de Fermat".

Remarque: Cette relation découle des propriétés que nous avons exposées lors de notre

démonstration du théorème d'Euler :

(39)

et de la propriété de la fonction pour un nombre p premier :

(40)

Le petit théorème de Fermat est cependant également valable pour quelques nombres N qui ne

sont pas premiers. Mais les nombres qui vérifient ça sans être premiers sont rares, et du coup

ça vaut la peine de déclencher un algorithme plus sophistiqué pour savoir si N est réellement

premier ou non (disons que dans ce cas, N est un bon candidat à la primalité et est alors appelé

"nombre pseudo-premier"). Pour tester si le nombre N non-premier est "suffisamment

premier", on essaie avec un algorithme de tester le petit théorème de Fermat pour un nombre

maximal de avec .

D'après la propriété de la congruence (voir plus haut), nous avons a également:

(41)

Nous pouvons appliquer ce dernier théorème sur un nombre N à propos duquel nous aimerions

savoir au mieux s'il est premier ou non.

Il existe une grande quantité d'autres méthodes non-optimales pour déterminer si N est

premier; dont les essais préliminaires de division par 2, 3, 5, 7, 11 et des nombres premiers

petits jusqu'à selon la méthode du crible d'Eratosthène qui est la plus connue dans les

petites écoles.

Remarque: En fait, avec l'aide d'un ordinateur assez puissant, nous pouvons décider si un nombre

naturel de l'ordre de (10 suivi 300 zéros) est premier ou non en l'espace de quelques

minutes voir secondes. Ce qu'il est important de savoir, c'est que, étant donné un nombre

naturel N, on peut décider en relativement peu de temps s'il est premier ou non, sans pour autant

connaître ses facteurs premiers.

Cependant, selon le théorème fondamental de l'arithmétique nous avons que :

Tout nombre naturel peut s'écrire comme un produit de nombres premiers, et cette

représentation est unique, à part l'ordre dans lequel les facteurs premiers sont disposés.

Démonstration:

Si n est premier, alors la preuve est terminée. Supposons que n n'est pas premier et

considérons l'ensemble:

(42)

Alors, et , puisque n est supposé composé, nous avons que , D'après le principe

du bon ordre (tout ensemble non vide contient un plus petit élément) , D possède un plus petit

élément qui est premier, sans quoi le choix minimal de serait contredit. Nous pouvons

donc écrire . Si est premier, alors la preuve est terminée. Si est composé, alors

nous répètons le même argument que précédemment et nous en déduisons l'existence d'un

nombre premier et d'un entier tels que . En poursuivant ainsi, nous

arrivons forcément à la conclusion que sera premier.

C.Q.F.D.

Donc finalement nous avons bien démontré qu'un nombre quelconque est décomposable en

facteurs de nombres premiers à l'aide du principe du bon ordre. Il existe dans l'ensemble des

des nombres naturels, certains qui peuvent s'exprimer, ou qui s'expriment tout court,

uniquement par 2 facteurs premiers notés traditionnellement pet q. Ce sont ces nombres que

nous utilise en cryptographie à clé publique selon le protocole R.S.A.

Remarque: Nous ne connaissons pas à ce jour de loi qui permette de calculer facilement et

rapidement le n-ième facteur premier d'un nombre. En fait, même avec les ordinateurs les

plus puissants d'aujourd'hui il faudrait plusieurs années pour arriver à trouver les deux facteurs

premiers p et q d'un nombre où p etq sont de l'ordre de chacun. Et il semble peu

probable que l'on découvre dans un avenir proche un algorithme assez efficace pour améliorer de

façon appréciable ce temps de calcul. Notons qu'il est possible de déterminer en moins de 5

minutes (en 2002) si un nombre de 200 chiffres est premier ou non. Cependant, pour factoriser

un nombre de 200 chiffres en deux nombres premiers, il faudrait au moins 100 ans. Chose

merveilleuse : les théories qui permettent ces exploits sont très profondes et ont été élaborées en

partie il y a longtemps dans un cadre très différent.

Le fait qu'il soit beaucoup plus difficile de trouver les facteurs premiers d'un nombre N que de

découvrir si N est premier ou composé, est précisément ce qui a permis d'élaborer cette

méthode très ingénieuse de codage et décodage de messages selon le protocole R.S.A.

Exemple:

Considérons maintenant un groupe d'individus qui se transmettent régulièrement des messages

par courrier électronique et pour lequel il est important que les messages ne soient connus que

de l'expéditeur et du destinataire. Alors, le membre du groupe qui souhaite recevoir des

informations cryptées, se trouve deux nombres premiers p et q très grands de l'ordre de

. Pour trouver de si grands nombres premiers nous choisissons au hasard un nombre de 100

chiffres et nous vérifions par un des algorithmes connus s'il est premier ou non et nous

répètons l'expérience jusqu'à ce que nous obtenions ainsi un nombre premier. Une fois ceci fait

avec deux nombres premiers, nous calculons l'expression :

(43)

appelée "modulus".

Ensuite, Alice qui souhaite recevoir les information cryptées (qui est la seule en possession du

nombre n pour l'instant) choisit un entier positif a tel (p.g.c.d) que .

Et comme :

(44)

par conséquent, par essais répétés, il est facile de trouver un tel nombre a. Le membre

principal, trouve donc unn et un a pour son contact, qu'il lui envoie sans aucune protection.

Car, même dans le cas où il y aurait d'éventuels intercepteurs à l'affût sur la ligne, il leur sera

extrêment difficile de retrouver les facteurs premiers den.

Supposons qu'une agence secrète souhaite recevoir un message d'un de ses agents.

L'agence envoie la clé publique, définie par le couple:

(45)

à l'agent.

L'agent reçoit la clé publique et souhaite envoyer le message "déclencher l'opération rouge".

Pour ce faire, l'agent transforme d'aborde le message en chiffres en utilisant la convention que

chaque lettre est remplacée par sa position correspondant dans l'alphabet en commencent à

compter à partir de 01 (le caractère "espace" sera chiffré "27").

Ainsi le message clair noté M par la suite devient:

(46)

Point technique: il faut que M et n n'aient pas de diviseur commun autre que 1 (sinon quoi, un

éventuel espion pourrait réduire le problème de deux très grand nombres difficilement

manipulables à celui de plus petits nombres, plus facilement manipulables). Sinon quoi, on

ajoute à la fin de M des chiffres sans valeur, comme 01 (par exemple), pour finalement

avoir M et n sans diviseur commun. On peut aussi briser M en morceaux dont le nombre de

chiffres n'excède pas 99 (rappelez-vous que nous avions fixé une limite inférieure d'une

puissance de 100 pour p et q et qu'il suffirait donc qu'un des deux nombres premiers soit 1 et

l'autre exactement un nombre avec un exposant 100 pour être à limite du

nombre n comportant alors au pire 100 chiffres), auquel cas on aura toujours:

(47)

On défait M en morceaux, chacun étant plus petit que n:

(48)

et on travaille successivement avec chaque morceau du message.

On considère la puissance a de , c'est-à-dire . On remplace par le nombre , qui

est le reste de la division par n du nombre . On procède de même pour tous les autres

morceaux tel que :

(49)

L'agent envoie alors le message codé à l'agence:

(50)

Un intercepteur (non-mathématicien) du message codé et de la clé publique, connaissant

l'algorithme de chiffrement, aurait donc à résoudre le problème d'une équation à deux

inconnues (équation obtenue simplement à partir de l'expression mathématique du

chiffrement):

(51)

Problème évidemment indéterminé !

Pour voir comment l'agence décrypte le message, on a besoin d'un outil mathématique

supplémentaire.

Rappelons que l'agence choisi a de telle que sorte que , ce qui implique, d'après

d'après le théorème de Bézout (cf. chapitre de Théorie Des Nombres), que si a et sont

premiers entre eux (que leur plus grand diviseur commun est 1) qu'il existe des

entiers x et y tels que (on peut supposer que , auquel cas ):

(52)

ou autrement écrit :

(53)

Ce qui signifie :

1. Que si a est premier avec alors par les propriétés de la congruence il est également

avec p-1 et q-1.

2. Que a est inversible modulo

Effectivement, car :

(54)

et d'après la définition de la congruence ( ) nous avons effectivement :

(55)

puisque divise le membre de droite de et donc de par l'égalité, le membre

de gauche.

Seul l'agence, qui reçoit le message, peut facilement calculer le nombre utilisé ci-dessus.

Car pour cela, il faut pouvoir calculer la valeur de la fonction indicatrie d'Euler et donc

connaître p et q.

Si est le message (valeur numérique) d'origine et est le message (valeur numérique)

codé reçu, alors nous avons la relation suivante:

(56)

Ce qui est complètement logique puisque la différence , où rappelons-le, est le

reste de la division de par n, ne peut donc que être divisible par n.

L'agence reçoit donc le message codé et élève à la puissance x les nombres et obtient

ainsi le message initial.

En effet, elle va appliquer pour chaque la propriété mathématique suivante de la

congruence :

(57)

La clé privée (permettant de décrypter le message et qui peut être connue facilement

uniquement par l'agence) est donc définie par le couple:

(58)

Explications:

Nous avions déjà montré que :

(59)

et selon la propriété de symétrie de la congruence (cf. chapitre de Théorie Des Nombres), nous

pouvons écrire :

(60)

Effectivement :

(61)

selon la deuxième principale propriété de la congruence qui dit que l'on peut élever à une

même puissance les deux membres d'une congruence.

Effectivement :

(62)

puisque nous avons démontré précédemment que :

(63)

donc que :

(64)

Reste à démontrer que :

(65)

où l'on peut écrire sous la forme:

commentaires (0)
Aucun commentaire n'a été pas fait
Écrire ton premier commentaire
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Docsity n'est pas optimisée pour le navigateur que vous utilisez. Passez à Google Chrome, Firefox, Internet Explorer ou Safari 9+! Téléchargez Google Chrome