II - ASPECT TECHNIQUE DU CHIFFREMENT
Comme nous venons de le voir dans la partie précédente de nombreuses méthodes de chiffrement différentes ont été imaginées pour se protéger de la curiosité et de la malveillance de ses ennemis depuis de nombreux siècles. On peut classer ces méthodes en trois grandes classes, comme nous le montre le schéma qui suit :
La cryptographie classique décrit la période avant les ordinateurs. Elle traite des systèmes reposant sur les lettres et les caractères d’une langue naturelle (allemand, anglais, français, etc...). Les principaux outils utilisés remplacent des caractères par des autres et les transposent dans des ordres différents. Les meilleurs systèmes (de cette classe d’algorithmes) répètent ces deux opérations de base plusieurs fois. Cela suppose que les procédures (de chiffrement ou déchiffrement) soient gardées secrètes ; et sans cela comme nous l’avons déjà dit le système est complètement inefficace (n’importe qui peut déchiffrer le message codé). On appelle généralement cette classe de méthodes : le chiffrement à usage restreint.
Les méthodes utilisées de nos jours sont plus complexes, cependant la philosophie reste la même. La différence fondamentale est que les méthodes modernes (les algorithmes, puisque l’on utilise maintenant des ordinateurs) manipulent directement des bits (liés à l’implantation sur les machines) contrairement aux anciennes méthodes qui opéraient sur des caractères alphabétiques. Ce n’est donc qu’un changement de taille (ou de représentation), puisque l’on utilise plus que deux éléments au lieu des 26 lettres de l’alphabet. La plupart des bons systèmes de cette catégorie combinent toujours des substitutions et des transpositions, et les règles sont connues de tous, c’est pourquoi on appelle cette classe : le chiffrement à usage général. La sécurité de ces méthodes reposent maintenant sur un nouveau concept clé : les clés (pour faire un mauvais jeu de mot).
Comme on l’a déjà énoncé les moyens de chiffrement évoluent tous les jours, c’est pourquoi il est possible que les standards d’aujourd’hui ne soient plus les standards de demain. En montrant les principaux axes de recherches en cours actuellement, on peut présumer de ce que sera le futur demain, ou du moins imaginer quelles seront les améliorations des systèmes déjà en place.
1) Le chiffrement classique
:Il existe des centaines de façon de chiffrer des données représentées par l’alphabet classique, tout en gardant les opérations réalisées secrètes. Ici on ne va pas présenter toutes ces méthodes, mais plutôt les concepts mathématiques (connus depuis très longtemps) qui sont à la source de celles-ci. On va ainsi voir que finalement il n’y en a pas tant que l’on pouvait le penser, et surtout qu’elles sont extrêmement simples.
a) Substitution :
La substitution consiste effectuer des dérivations pour que chaque caractère du message chiffré soit différent des caractères du message en clair. Le destinataire légitime du message applique la dérivée inverse au texte chiffré pour recouvrer le message initial. La complexité des systèmes à substitutions dépend de trois facteurs :
- la composition spécifique de l’alphabet utilisé pour chiffrer ou pour communiquer,
- le nombre d’alphabets utilisés dans le cryptogramme,
- la manière spécifique dont ils sont utilisés.
On distingue couramment quatre types de substitutions différentes :
Substitution simple ou substitution monoalphabétique : chaque caractère du texte en clair est remplacé par un caractère correspondant dans le texte chiffré. Les exemples les plus célèbres sont les algorithmes de César, Rot13, et bien évidemment le code morse. Ils sont encore utilisés aujourd’hui pour cacher le sens de certains messages (par exemple la solution de certains jeux dans des journaux), mais bien sûr elles sont très peu sûrs. En effet avec ce principe, les lettres les plus fréquentes dans le texte en clair restent les plus fréquentes dans le texte chiffré, il ne cache donc pas les fréquences d’apparition des caractères. C’est une faiblesse importante puisque des techniques statistiques peuvent être utilisés pour associer aux lettres les plus fréquentes, une lettre probable et en appliquant une technique sémantique récursive, les algorithmes à base de substitutions monoalphabétiques sont facilement cassés par les spécialistes.
Substitution homophonique : comme pour le principe précédent, sauf qu’à un caractère du texte en clair on fait correspondre plusieurs caractères dans le texte chiffré. Par exemple, " A " peut correspondre à 5, 13, 25 ou 56 ; " B " 7, 19, 31, ou 42 ; etc. Ce procédé est plus sûr , mais aussi craqué par les cryptanalystes ou des espions expérimentés.
Substitution polyalphabétique : le principe consiste à remplacer chaque lettre du message en clair par une nouvelle lettre prise dans ou plusieurs alphabets aléatoires associés. Par exemple, on pourra utiliser n substitutions monoalphabétiques ; celle qui est utilisée dépend de la position du caractère à chiffrer dans le texte en clair. On choisit une clé qui sert d’entrée dans la grille polyalphabétique incluant autant de symboles qu’il y a de lettres différentes à chiffrer. Chaque caractère de la clé désigne une lettre particulière dans la grille de codage. Pour coder un caractère, on doit lire le caractère correspondant du texte en clair en utilisant la grille polyalphabétique et le mot clé associé dans l’ordre séquentiel (on répète la clé si la longueur de celle-ci est inférieure à celle du texte de départ). L’exemple le plus célèbre est l’algorithme de VIGENERE et de BEAUFORT. L’illustration la plus simple qui corresponde à ce principe est l’utilisation d’une fonction à base de ou exclusif (XOR).
Substitution par polygrammes : les caractères du texte en clair sont chiffrés par blocs. Par exemple, " ABA " peut être chiffré par " RTQ " tandis que " ABB " est chiffré par " SLL ". Les exemples les plus célèbres sont les algorithmes de PLAYFAIR et de HILL inventés en 1854 et utilisés pendant le première guerre mondiale par les anglais.
b) Transposition :
Avec le principe de la transposition toutes les lettres du message sont présentes, mais dans un ordre différent. Il utilise le principe mathématique des permutations. Plusieurs types différents de transpositions existent :
Transposition simple par colonnes : on écrit le message horizontalement dans une matrice prédéfinie, et on trouve le texte à chiffrer en lisant la grille verticalement (cf. la figure ci-dessous). Le destinataire légal pour décrypter le message réalise le procédé inverse. L’algorithme allemand ADFGFX est fondé sur ce principe et fut utilisé pendant la première guerre mondiale. Il fut cassé par une jeune étudiante française.
Transposition complexe par colonnes : un mot clé secret (avec uniquement des caractères différents) est utilisé pour dériver une séquence de chiffres commençant à 1 et finissant au nombre de lettres composant le mot clé. Cette séquence est obtenue en numérotant les lettres du mot clé en partant de la gauche vers la droite et en donnant l’ordre d’apparition dans l’alphabet. Une fois que le séquence de transposition est obtenue, on chiffre en écrivant d’abord le message par lignes dans un rectangle (comme le dessin ci-dessous le montre), puis on lit le texte par colonnes en suivant l’ordre déterminé par la séquence.
Transposition par carré polybique : un mot clé secret est utilisé pour construire un alphabet dans un tableau. Les coordonnées des lignes et des colonnes correspondant au lettres du texte à chiffrer sont utilisés pour transcrire le message en chiffres. Avec ce procédé chaque lettre du texte en clair est représenté par deux chiffres écrit verticalement. Ces deux coordonnées sont ensuite transposées en les recombinant par deux sur la ligne ainsi obtenue.
Il est important de faire remarquer que les transpositions sont plus contraignantes que les substitutions, car elles ont besoin de plus de mémoire et ne fonctionnent que sur des messages à chiffrer d’une longueur limitée ; c’est pourquoi elles sont moins utilisées dans les algorithmes bien que pourtant un peu plus sûres que les substitutions.
2) Le chiffrement moderne :
Les algorithmes de chiffrement contemporains sont peu sûrs en général ; le cassage du programme FANTASIA pendant la seconde guerre mondiale reposant à la fois sur des transpositions et des substitutions combinées atteste de la vulnérabilité de ces techniques.
Le chiffrement moderne utilise la puissance des ordinateurs modernes. Comme les données traitées par les ordinateurs sont uniquement sous forme numériques (bits), les procédés de substitutions et de transpositions sont toujours utilisées mais maintenant seulement sur deux éléments primaires (0 et 1). On constate donc que les idées et principes vues précédemment reste d’actualité, c’est pourquoi il était à notre avis intéressant de les mettre en valeur tout de suite, ce qui est généralement jamais fait à notre regret.
Ce changement de dimension rend plus sûr les techniques de chiffrement actuelles. Certaines sont incassables, ou du moins prendraient des millions d’années avec la puissance actuelle de nos meilleurs super-calculateurs. D’autre part il fait que maintenant les algorithmes ne sont plus cachés mais au contraire sont connus de tous. Les clés sont leur sécurité.
Comme nous l’avons déjà rapidement vu on distingue deux types d’algorithmes à clés : les systèmes de chiffrement symétriques et les systèmes asymétriques.
a) Chiffrement symétrique :
Les systèmes symétriques sont synonymes de systèmes à clés secrètes. Une même clé est utilisé pour le chiffrement et le déchiffrement, d’ou l’obligation que celle-ci reste confidentielle, sous peine de rendre le système inéfficient.
L’émetteur (Alice) et le destinataire (Bob) doivent se mettre d’accord préalablement sur la clé (k) à utiliser, pour ceci ils ne doivent pas utiliser le réseau de communication standard qui est susceptible d’être espionné (par Oscar). Chaque fois qu’Alice veux transmettre un message (m) à Bob, elle utilise sa clé secrète pour chiffrer (c=Ek(m)), et elle envoie le résultat de ce chiffrement par l’intermédiaire du même canal. Bob utilise à son tour la même clé secrète et le même algorithme public pour déchiffrer le message codé qu’il a reçu.
Les problèmes de cette technologie sont les suivants :
- si la clé secrète est compromise (volée, extorquée, piratée, ...) par un opposant, alors ce dernier pourra déchiffrer tous les messages encodés avec celle-ci. Oscar peut même se faire passer pour Alice ou Bob.
- les clés doivent être distribuées secrètement : c’est très difficile à l’échelle planétaire (se rencontrer, utiliser un messager sûr, etc...).
- si une clé différente est utilisée pour chaque paire différentes d’utilisateurs du réseau, le nombre total des clés augmente très rapidement en fonction du nombre total d’utilisateurs.
Le D.E.S. est un standard mondial depuis plus de 15 ans. Il a été développé en 1976 par IBM pour le N.B.S. (National Bureau of Standards) avec pour objectif de fournir un nouveau standard de fait faisant à limiter la prolifération d’algorithmes différents qui ne pouvaient pas communiquer entre eux. Bien qu’il montre des signes de vieillesse, il a remarquablement bien résisté à des années de cryptanalyse et il est toujours sûr contre tous les adversaires excepté peut-être les plus puissants. Il est devenu le système de chiffrement le plus utilisé dans le monde. Depuis son adoption, le D.E.S. a été réévalué environ tous les cinq ans, et sa plus récente version date de Janvier 1994. Ce standard devrait cependant bientôt se terminer, puisqu’il n’a été renouvelé que jusqu’en 1998.
C’est un algorithme à clé secrète, il chiffre un bloc de texte clair de 64 bits en utilisant une clé de 56 bits, pour obtenir un bloc de texte chiffré de 64 bits. Il utilise les deux grandes lois de Shannon : diffusion (en utilisant des permutations) et confusion (en utilisant des substitutions) de bits pour casser la fréquence d’apparition des lettres dans le texte en clair, et compliquer le lien entre le fichier encodé et la clé secrète utilisée. Il repose sur 16 itérations imbriquées, et avec une clé suffisamment longue et pas trop simple (pas une succession de 1 par exemple), sa résistance aux différentes attaques possibles est bonne.
Il reste très utilisé dans le domaine commercial et des banques, et il est implanté dans de nombreuses cartes de crédits dédiés (smart cards, système électronique de communication). Son principal avantage est d’offrir une vitesse de chiffrement et déchiffrement élevée.
b) Chiffrement asymétrique :
Ces algorithmes sont aussi synonymes d’algorithmes à clés publiques. Une clé différente est utilisée à la fois pour chiffrer et déchiffrer, et il est impossible de générer une clé à partir de l’autre. Il a été inventé en 1975 par deux ingénieurs en électronique : Whitfield Diffe et Martin Hellman de l’Université de Stanford.
Une des difficultés principales de la méthode ci-dessus est que chaque couple potentiel d’utilisateurs doit posséder sa propre clé secrète, et se l’échanger par un moyen sécurisé avant leur premier échange d’informations, ce qui peut s’avérer difficile à réaliser dans la pratique. Le but d’un système à clé publique est de résoudre ce problème. La clé publique est généralement publiée dans un répertoire. L’avantage est donc qu’Alice peut envoyer un message à Bob sans communication privée préalable (elle choisit sa clé privée, et la clé publique de Bob). Bob est la seule personne à pouvoir déchiffrer le message en appliquant sa clé secrète et personnelle, et la clé publique d’Alice. On dit généralement que chaque clé déverrouille le code produit par l’autre. Une remarque intéressante à faire est qu’avec ce système, même Alice qui a chiffré un message pour Bob, ne pourra déchiffrer le message ainsi codé. C’est un des systèmes les plus évolués que l’on peut actuellement trouver.
La première application à ce principe fut le chiffrement RSA. Depuis, plusieurs systèmes ont été proposés. Leur sécurité repose sur divers problèmes calculatoires, et notamment la théorie des grands nombres.
Cet algorithme a été inventé par Rivest R., Shamir A., et Adlemann L. du M.I.T. (Massachussets Institute of Technology). C’est l’algorithme à clé publique le plus commode qui existe. Comme pour le D.E.S. sa sécurité repose sur l’utilisation de clés suffisamment longue (512 bits n’est pas assez, 768 est modérément sûr, et 1024 bits est une bonne clé). C’est la difficulté que l’on a à factoriser les entiers premiers (le problème des logarithmes discrets est souvent considérés comme insurmontable) qui font que l’on ne peut que difficilement casser cet algorithme. Cependant de larges avancées en matière de factorisation des entiers larges, ou une augmentation considérable de la puissance de nos super-calculateurs rendront RSA très vulnérable.
RSA est aujourd’hui utilisé dans une large variété de produits (téléphones, réseaux Ethernet, etc...) , de logiciels de différentes marques (Microsoft, Apple, Novell, Sun), dans des industries et enfin dans les télécommunications.
c) Chiffrement mixte et authentification :
Les algorithmes à clé publique sont assez lents. La méthode généralement utilisée pour envoyer un message, est de tirer au hasard une clé secrète, chiffrer le message avec un algorithme à clé privée en utilisant cette clé, puis chiffrer cette clé aléatoire elle-même avec la clé publique du destinataire. Ceci permet d'avoir la sécurité des systèmes à clé publique, avec la performance des systèmes à clé privée. Il existe un logiciel qui effectue toutes ces opérations et de manière transparente, et qui, de plus, est gratuit et téléchargeable à partir de dizaines de sites de par le monde : le célèbre PGP de Phil Zimmermann. (Il y a d'autres logiciels aussi performants, mais PGP est sûrement le plus connu.). Correctement utilisé, il est sûr, même contre les meilleurs cryptanalystes du monde (c’est d’ailleurs pour cette raison que son utilisation est formellement interdite en France).
L’authentification permet de prouver son identité à travers le réseau. Il utilise généralement la technique des signatures électroniques. L'envoyeur joint une signature électronique à son message. Des explications intéressantes sur le principe de l’authentification peuvent être trouvées sur le site suivant.
3) Chiffrement du futur :
Tous les systèmes étudiés précédemment prenaient pour acquis que les communications numériques pouvaient être toujours espionnées d’une façon passive (c’est à dire sans détecter une modification éventuelle de l’intégrité des données échangées), ou enregistrées par un tiers pour un usage futur, même si ce dernier ne peut en comprendre le sens.
L’enregistrement d’une communication chiffrée incompréhensible peut servir à quelqu’un qui espérerait découvrir à une date ultérieure la clé secrète ou l’algorithme lui même dans le cas du chiffrement restreint, car peut-être que celui-ci après avoir accumulé suffisamment de textes chiffrés pourra plus facilement mener à terme sa cryptanalyse, ou bien par simple corruption ou espionnage découvrira la clé secrète, et sera alors en mesure de décoder tous les messages secrets accumulés.
La cryptographie quantique est née au début des années 70. Elle repose sur le principe d'incertitude d'Heisenberg, selon lequel la mesure d'un système quantique perturbe ce système. Une oreille indiscrète sur un canal de transmission quantique engendre des perturbations inévitables qui alertent les utilisateurs légitimes. Ainsi, il est possible de distribuer une clef secrète aléatoire à deux utilisateurs qui ne partagent initialement aucun secret, de façon sécurisée contre des espions même de puissance de calcul infinie. Une fois cette clef secrète établie, elle peut être utilisée avec un système cryptographique classique. La cryptographie quantique ne nécessite aucune hypothèse comme "P et NP sont distincts", ou "factoriser est difficile". On obtient ainsi des preuves de sécurité reposant uniquement sur la correction des principes quantiques. Pour plus de détails concernant les principes techniques de la cryptographie quantique, nous vous recommandons la consultation de cette page particulièrement bien faite.
Les systèmes quantiques sont toujours à un stade expérimental, cependant depuis 1992, ils ont quitté le stade de la Science-fiction depuis que Benett et Brassard, deux chercheurs américains ont construit un prototype fonctionnant sur une courte distance (un peu moins d’un kilomètre). Cette approche souffre aujourd’hui du désavantage que les transmissions quantiques sont très faibles et sont difficilement amplifiables par la route, et que la polarisation des photons posent encore des problèmes en raison de l’imperfection de l’appareil lui-même.
Seul le futur nous dira si cette nouvelle approche, un peu plus compliquée puisque reposant directement sur la physique quantique, remplacera les systèmes utilisés actuellement. Cependant, pour l’instant les réponses aux problèmes posés restent incertaines, ce qui permet encore de beaux jours aux DES, RSA et autres standards du chiffrement moderne.