• Aucun résultat trouvé

Restauration d’entrées inconnues

3.1.2 Techniques de cryptage actuelles

Cette présentation des techniques commerciales de cryptage a pour but uniquement de situer le contexte et l’état actuels de la cryptographie. Dans ce mémoire, nous conservons un point de vue théorique sur le cryptage/décryptage, considéré sous l’angle de la reconstruction d’en-trées inconnues. Nous ne mettrons donc pas en oeuvre ces techniques commerciales, les seules comparaisons seront effectuées avec des techniques de cryptage par le chaos, qui présentent des points communs avec la méthode que nous proposons.

Les techniques présentées précédemment montrent que le cryptage repose sur une transforma-tion de l’informatransforma-tion, de façon à en interdire l’accès à un récepteur non autorisé. Les processus de cryptage ont été largement développés au cours des dernières décennies, notamment grâce à l’utilisation intensive de l’informatique et des codages numériques. Le domaine de la cryp-tographie est assez confidentiel : les dernières avancées ne sont bien sûr pas divulguées, par conséquent nous allons maintenant présenter les techniques les plus utilisées, appartenant au domaine public.

Les procédés de cryptage actuels sont illustrés par la figure 3.1. L’émetteur veut transmettre un message que seul le récepteur doit être capable de déchiffrer. Il effectue ainsi une procédure de chiffrement, puis transmet le message crypté par l’intermédiaire d’un canal public. Le récepteur effectue alors l’opération inverse, ou décryptage, pour récupérer le message original. L’efficacité du système repose sur la connivence entre l’émetteur et le récepteur à propos des fonctions de cryptage/décryptage. Il est nécessaire de vérifier que ces fonctions restent secrètes et ne peuvent pas être reconstituées à partir de la seule donnée du message crypté. Pour limiter les risques, il faut pouvoir changer régulièrement de technique de cryptage/décryptage, d’où l’utilisation de clés. Les clés sont des paramètres indispensables dans la définition des fonctions de cryptage (clé 1 sur le schéma) et de décryptage (clé 2 sur le schéma). Ces fonctions peuvent éventuellement être rendues publiques, les clés seules restant secrètes. Cependant, un protocole doit être mis au point entre l’émetteur et le récepteur pour fixer les clés.

Message codé Décryptage : clé 2 Message Cryptage : clé 1 Message Emetteur Récepteur canal public

Fig. 3.1 - Principe du cryptage

être trop élaboré : les algorithmes de cryptage et de décryptage doivent être suffisamment ra-pides (donc peu complexes) pour ne pas ralentir excessivement leur mise en oeuvre. D’autre part, il doit être suffisamment difficile (voire impossible) de casser le code : la complexité du chiffrement est satisfaisante si les tentatives d’attaques échouent par découragement devant la complexité de la tâche. En résumé, le cryptage/décryptage doit être le plus rapide possible, et le temps nécessaire aux attaques doit être le plus long possible.

Concrètement, le choix de la technique de cryptage doit tenir compte des intentions et des moyens des intrus, et des risques encourus. La découverte de la clé est liée au temps et à la puis-sance des ordinateurs disponibles au niveau des espions. L’estimation de ce risque d’intrusion influence directement la fréquence de changement de clé.

Les techniques actuelles de cryptage sont divisées en deux grandes catégories : symétriques ou asymétriques.

Cryptage asymétrique (ou à clé publique)

Les techniques de cryptage asymétrique mettent en jeu des fonctions de cryptage et de dé-cryptage différentes. Le plus souvent, il s’agit de la même opération, réalisée avec deux clés différentes. Cette approche élimine le problème de diffusion des clés. A chaque récepteur sont associées deux clés. La première, appelée clé publique, est connue de tous les émetteurs poten-tiels. Elle permet de crypter un message, qui ne peut être décrypté que par le récepteur autorisé, grâce à la seconde clé, appelée clé privée. Seule la clé privée est secrète, et ce secret n’est pas

partagé entre l’émetteur et le récepteur. Le récepteur peut créer une liste de clés publiques, et lui seul saura décrypter (grâce à la clé privée connue de lui seul) les messages cryptés à l’aide d’une de ces clés.

L’algorithme asymétrique le plus répandu est l’algorithme RSA. Il a été inventé en 1978 par R. Rivest, A. Shamir et L. Adleman. Il est fondé sur les propriétés des nombres premiers. Le principe est simple : on choisit deux nombres premiers p et q au hasard. On calcule n = pq et z = (p − 1)(q − 1). On choisit un nombre d premier avec z, et on cherche e tel que ed ≡ 1[n]. Le couple (e, n) constitue la clé publique, (d, n) la clé privée. La fonction de cryptage est la multiplication par e modulo n, la fonction de décryptage est la multiplication par d modulo n. La connaissance de n donne théoriquement accès à p et q qui sont par définition les facteurs premiers de n. La force de la technique RSA repose sur l’extrême difficulté à factoriser de grands nombres. Mais le développement de la puissance de calcul des ordinateurs et l’utilisation du parallélisme améliorent sans cesse les temps de factorisation. Le choix d’une longueur de clé (i.e. la taille de n) est directement lié au niveau de confidentialité recherché. En contrepartie, l’algorithme RSA est très lent, ce qui n’est guère pratique pour les fichiers volumineux : plus la clé est grande, plus les processus de cryptage et de décryptage sont longs. Cette technique est donc réservée aux messages courts. Parmi les autres techniques de cryptage asymétriques, on peut mentionner l’algorithme ElGamal, qui exploite le calcul logarithmique discret. On peut sou-ligner que malgré de nombreuses études à ce sujet, les bases de l’algorithme RSA n’ont jamais été démontrées, ni infirmées.

En résumé, ces techniques asymétriques sont beaucoup utilisées pour chiffrer des messages courts, notamment par les navigateurs Internet, par les systèmes d’exploitation ou par d’autres produits informatiques. RSA fait partie des standards proposés pour Internet aussi bien que pour les réseaux de commerce électronique et les réseaux financiers. Il représente également une ex-cellente solution pour la diffusion des clés des techniques de cryptage symétriques, que nous allons détailler dans le paragraphe suivant.

Cryptage symétrique

Le cryptage à clé symétrique utilise des clés de cryptage et de décryptage identiques. Aussi l’émetteur et le récepteur doivent-ils partager une clé commune : cela nécessite un moyen de communication secret, utilisé à chaque changement de clé. Le cryptage symétrique n’est efficace que s’il est complété par une méthode d’échange de clés bien sécurisé (il est classique d’utiliser l’algorithme RSA pour crypter les nouvelles clés).

Les algorithmes de cryptage symétrique sont fondés sur deux opérations élémentaires : la trans-position et la substitution. La nature et l’ordre des opérations de transtrans-position sont déterminés par la clé.

Voici quelques détails supplémentaires sur la méthode DES (Data Encryption Standard) adop-tée comme standard par le gouvernement américain en 1977 (le DES n’est plus certifié par le gouvernement américain depuis 1988, mais il reste dans les faits un standard) :

(i) étant donné un bloc de texte clair x (de taille 64 bits), une chaîne x0 est construite en changeant l’ordre des bits de x suivant une permutation initiale P fixée. On écrit x0 = P (x) = L0R0 où L0contient les 32 premiers bits de la chaîne x0 et R0contient les 32 restants ; (ii) on effectue 16 itérations d’une certaine fonction f . On calcule LiRi suivant les règles Li =

Ri−1 et Ri = Li−1+ f (Ri−1, Ki), où + est le "ou" exclusif bit à bit de deux chaînes, et K1,. . . K16sont des chaînes de 48 bits calculées à partir de la clé K ;

(iii) la permutation inverse P−1 est appliquée à R16L16pour obtenir finalement le texte chiffré P−1(R16L16).

Le décryptage utilise le même algorithme, mais en sens inverse.

Le DES est un système qui peut être facilement implanté : des opérations telles que le "ou" exclusif, les permutations. . . sont des opérations de base pour un ordinateur et peuvent donc être traitées très rapidement. L’algorithme DES est particulièrement utilisé dans le domaine des transactions bancaires : il est employé pour crypter les opérations sur un compte bancaire et les codes de cartes dans les guichets automatiques.

Le DES est un algorithme de cryptage extrêmement sûr : il est particulièrement difficile, voire impossible, de trouver la clé à partir de textes cryptés (même en disposant du texte en clair cor-respondant). On peut noter que la sécurité réside dans la clé et pas dans la fonction de cryptage. Par conséquent, le problème principal est l’échange de clés : l’émetteur doit transmettre l’unique clé au récepteur sans qu’elle soit interceptée, sinon le cryptage n’a plus aucun intérêt.

Il existe des variantes de l’algorithme DES, dont la plus connue est le triple-DES.