FUBSWRJUDSKLH D FOH SXEOLTXH (CRYPTOGRAPHIE A CLE PUBLIQUE)

On raconte que le besoin de créer des codes secrets remonte à Jules César, qui décalait de trois rangs dans l’ alphabet les lettres de ses messages. C’ est l’ encodage. Comment pourriez-vous décoder un tel message?

La cryptographie moderne, qui est l’ art d’ encoder et décoder des messages, a bénéficié d’ un regain d’ intérêt avec le transfert informatique de données, et a gardé son importance traditionnelle dans les opérations militaires. Elle utilise une clé publique, qui n’ oblige pas ses utilisateurs à partager une clé qui rendrait les messages codés susceptibles d’ être attaqués.

La théorie des nombres traditionnelle a produit quantité de méthodes de codage sécurisées, mais « sécurisée » est un terme relatif. Les méthodes modernes dépendent simplement de la capacité à multiplier deux nombres de grande taille et à retrouver ces facteurs étant donné leur produit.

Un peu d’ histoire

L’ histoire de la cryptographie a commencé il y a des milliers d’ années. Jusqu’ à il y a quelques décennies, il s’ agissait de l’ histoire de ce que l’ on pourrait appeler la cryptographie classique, c’ est-à-dire des méthodes de codage utilisant uniquement du papier et un stylo, ou peut être une aide mécanique simple.

Les premiers procédés étaient des procédés de substitution. Il s’ agit d’ une méthode de codage remplaçant les unités du message original par un code selon un système régulier; les “unités” peuvent être simplement des lettres, des paires de lettres, des triplets de lettres et ainsi de suite. Le destinataire décode le texte en procédant à la substitution inverse. Il y a de nombreux procédés de substitution. Si le procédé agit sur une lettre à la fois, on dit qu’ il s’ agit d’ un procédé de substitution simple; un procédé qui agit sur un plus grand groupe de lettre est appelé polygraphique.

Jules César aurait encodé des messages en décalant chaque lettre de trois rangs dans l’ alphabet. Par exemple, ARRIVEE VENDREDI devient DUULYHH YHQGUHGL. La substitution inverse consiste simplement à décaler les lettres de trois rangs dans l’ alphabet dans l’ autre sens. Si l’ encodage est symbolisé par E et le décodage par D, alors E(VENDREDI) = YHQGUHGL et D(YHQGUHGL) = VENDREDI. On peut écrire D=E^{-1}. Regrouper les lettres déguise un peu le message: écrire le message ARR IVE EVE NDR EDI, de sorte que E(ARR) = DUU, et ainsi de suite.

Cette approche peut être sérieusement améliorée en utilisant le chiffre de Vigenère (modifié). Choisissez un nombre à trois chiffres, comme 427, et décalez les lettres de chaque groupe de 4 rangs, puis 2 rangs, et 7 rangs, dans l’ alphabet. On obtient E(ARR IVE) = ETY MXL. Casser ce code équivaut à trouver la clé 427. Lorsque la clé est aussi longue que le message original, et est utilisée une seule fois, le code est considéré comme inviolable; dans ce cas ce procédé est appelé masque jetable.

Au début du 20ème siècle, l’ invention de machines mécaniques complexes, et électromécaniques, comme la machine Enigma, a fourni des méthodes de cryptographie plus élaborées et efficaces; et par la suite le développement de l’ informatique a permis l’ utilisation de méthodes d’ encore plus grande complexité, la plupart étant absolument inutilisables à l’ aide de papier et de stylo.

La publication de l’ article “New directions in cryptography” de Whitfield Diffie et Martin Hellman en 1976 a été le développement le plus important. Il présentait une méthode totallement nouvelle de partage des clés cryptographiques, qui s’ approchait près de la solution d’ un des problèmes fondamentaux de la cryptographie, à savoir le besoin de garder secrètes des clés partagées par un certain nombre d’ utilisateurs. L’ article a déclenché le développement quasi immédiat d’ une nouvelle classe d’ algorithmes de codage et a mené à de grandes améliorations des méthodes de factorisation des grands nombres et des tests de primalité. Ces aspects de la théorie des nombres ont été vitaux à l’ échange de clés Diffie–Hellman.

Avant de décrire la plus connues de ces approches, le système RSA, nous avons besoin de développer un résultat de théorie des nombres. Il repose sur la connaissance de la formule du binôme de Newton et de l’ arithmétique modulaire.

Preuve de la formule t^{(p-1)(q-1)}\equiv1 (mod pq), pour des entiers premiers distincts p, q ne divisant pas t

Commençons avec la formule des coefficients binomiaux:

    \[\binom pi=\frac{p!}{i!(p-i)!},\]

où, pour notre utilisation, p et i sont des entiers tels que 0 < i < p. Puisque

    \[i!\binom pi= p(p-1)(p-2)\cdots(p-i+1),\]

il est nécessaire que p soit un diviseur de \binom pi, car p divise le membre de droite de l’ égalité mais ne divise pas i!.

Ainsi, pour des entiers A, B, C, d’ après la formule du binôme,

    \[(A+B)^p=A^p+\binom p1 A^{p-1}B+\binom p2 A^{p-2}B^2+\cdots+B^p\equiv A^p+B^p \pmod p,\]

donc

    \[(A+B+C)^p=((A+B)+C)^p\equiv(A+B)^p+C^p\equiv A^p+B^p+C^p \pmod p.\]

De sorte que, pour des entiers, A_1, A_2, …, A_t,

    \[(A_1+A_2+\cdots+A_t)^p\equiv A_1^p+A_2^p+\cdots+A_t^p \pmod p.\]

Si on choisit A_1=A_2=\cdots=A_t=1 on obtient

    \[t^p\equiv t \pmod p.\]

Puisque p ne divise pas t, on a

    \[t^{p-1}\equiv 1 \pmod p.\]

Si maintenant on élève chaque coté de cette congruence à la puissance q-1:

    \[t^{(p-1)(q-1)}\equiv 1 \pmod p.\]

De même,

    \[t^{(p-1)(q-1)}\equiv 1 \pmod q.\]

Qui signifient, respectivement, qu’ il existe des entiers h et k tels que

    \[t^{(p-1)(q-1)}=1+ph, \quad t^{(p-1)(q-1)}=1+qk,\]

donc ph=qk. Alors p divise k (puisque p et q sont premiers et distincts), ou k=pl, pour un entier l. Ainsi nous avons t^{(p-1)(q-1)}=1+pql, ou

    \[t^{(p-1)(q-1)}\equiv1 \pmod {pq},\]

comme désiré.

Le système RSA

RSA signifie Rivest, Shamir et Adleman, qui ont présenté cette méthode en 1978. voici comment ce système fonctionne.

Pour commencer choisissez deux nombres premiers, p et q. Calculez N=pq et F=(p-1)(q-1). Choisissez un entier E aléatoirement entre 3 et N-2, mais tel que E et F n’ aient aucun facteur premier en commun. La paire (N,E) est la clé publique, et est donnée à chacun par l’ expéditeur du message à encoder. La clé privée D, que l’ envoyeur gardera secrète, est calculée par D\equiv E^{-1} (mod F), c’ est-à-dire le nombre tel que DE\equiv1 (mod F). Ceci est aisément réalisé avec l’ algorithme d’ Euclide.

Le message à encoder est choisi comme une portion du message original transformée en un entier x, 0 \le x \le 262626.La méthode la plus simple pour cela est de remplacer chaque lettre du message par sa position numérique dans l’ alphabet: A devient 01, B devient 02, etc. Par exemple ARR devient 011818 (ce qui nécessite N > 262626). Traditionnellement, c’ est Bob qui encode le message et l’ envoie à Alice qui le décodera. Alice a choisi p et q, a calculé N et F, choisi E (et a publié (N,E)), et calculé D. Bob encode x en calculant y\equiv x^E (mod N),

Cette méthode fonctionne car DE=1+kF, pour un entier k, et

    \[x^F=x^{(p-1)(q-1)}\equiv1 \pmod N\]

(comme démontré ci-dessus), et ainsi

    \[y^D\equiv x^{DE}=x(x^F)^k\equiv x\cdot1^k=x \pmod N.\]

La raison pour laquelle le système RSA est si efficace repose sur le choix des entiers premiers p et q (par Alice). Ceux-ci doivent être aussi grands que possible, disons environ 100 chiffres chacun. Il est facile pour Alice de calculer N et F et la clé privée D. Mais personne ne peut calculer F ou D parce que factoriser N pour retrouver p et q est particulièrement difficile. Il existe des méthodes très rapides pour calculer y^D (mod N) par exemple, même si D, habituellement, et N sont des nombres immenses. La technique est appelée exponentiation modulaire.

Comment Alice peut-elle être sûre que le message qu’ elle a reçu provient de Bob? Le système RSA permet d’ avoir des messages signés en laissant la possibilité à Bob d’ avoir ses propres clés publique et privée. Il encode un message exactement comme décrit ci-dessus en utilisant ses propres clés (de sorte que le message soit maintenant signé), et l’ encode une seconde fois en utilisant la clé publique d’ Alice et lui envoie le résultat. A son tour elle utilise sa clé privée pour retrouver le message signé et utilise alors la clé publique de Bob pour retrouver le message original. Le principe est que le message doit forcément provenir de Bob puisque il est le seul à connaître sa clé privée.

Le Message

Le message, original, est clair.

Ce contenu a été publié dans Français. Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *