Accueil |  TIPE | Cryptographie>

La cryptographie

La cryptographie

Depuis toujours, l'homme a eu besoin de transmettre à ses alliés des messages secrets censés ne pas pouvoir être compris par ses ennemis. Il a fait appel pour cela à une science, la cryptographie, qui lui permettait de coder des messages qui devenaient ainsi indéchiffrables par des personnes non averties. Même s'il est vrai que ces procédés répondaient au début avant tout à des besoins militaires, diplomatiques ou d'espionnage, la cryptographie est aujourd'hui largement utilisée dans d'autres domaine : sécurité des transactions bancaires, sécurité des fichiers...

Donnons quelques exemples de procédés de cryptage.

Un des premiers procédés fut utilisé par Jules César. Il consistait à remplacer chaque lettre du message à coder par la lettre qui la suivait dans l'ordre naturel de l'alphabet (BONJOUR devenait CPOKPVS). Mais il était peu fiable car il était facile pour l'ennemi de découvrir l'algorithme de chiffrement et de décrypter ainsi des messages entiers. Ainsi voit-on sur cet exemple que ce genre de système de cryptage nécessite de garder secret l'algorithme même de codage.

Puis est apparue en 1975 la cryptographie à "algorithme public". Si tout le monde connaît le principe de codage, seules les personnes concernées possèdent la clé de codage et de décodage nécessaire pour coder et décoder le messages. Cette idée fut à la base du système DES. Ce procédé de cryptage utilise le langage binaire et la table d'addition suivante :

+ 0 1
0 0 1
1 1 0

Une clé binaire (prenons-la égale à 101 dans notre exemple) est maintenue secrète. Pour coder un message, disons 1100010, on opère de la façon suivante :

on écrit en dessous l'un de l'autre le message en clair et la clé répétée :

message en clair-->110 001 0
clé répétée-->101 101 1

On obtient le message crypté (ou cryptogramme) en effectuant l'addition : cela donne ici 0111001.

Le déchiffrage se fait toujours à l'aide de la clé secrète par opération inverse et sans risque d'ambiguïté (car {0, 1} muni de l'addition définie ci-dessus est un groupe donc chaque élément a un unique opposé).

L'efficacité de ce système provient du fait que si la clé secrète est de très grande longueur, il est impossible pour l'ennemi de décrypter (même s'il connaît l'algorithme) en essayant toutes les clés tant les combinaisons sont nombreuses. En revanche, son gros défaut est l'extrême difficulté de garder secrète cette fameuse clé qui, si elle est découverte par l'ennemi, rend totalement inefficace le procédé. En effet, les transmissions de clés, souvent longues, sont délicates surtout au sein de réseaux étendus dans lesquels de nombreuses personnes doivent connaître la clé pour à la fois crypter et décrypter.

C'est justement pour parer cet inconvénient majeur qu'a été développé un nouveau procédé : la cryptographie à clés publiques. En voici le principe :

Soit f le procédé de codage à clés publiques et M le message à coder. f(M) représente le message codé. Pour le décoder, il faut lui appliquer une fonction inverse f-1 telle que f-1(f(M)) = M. Supposons que A veuille envoyer un message à B. A commence par se procurer la clé de chiffrement rendue publique par B qui l'a par exemple diffusée dans un annuaire. Muni de cette clé de chiffrement, A peut expliciter la fonction f qui est de complexité très réduite et ainsi coder facilement le message M en f(M). Mais il est très difficile pour A (ou toute autre personne que B) d'expliciter f-1 car la clé de chiffrement ne suffit pas au déchiffrement ; autrement dit, même l'émetteur A ne peut pas déchiffrer les messages émis par d'autres correspondants avec la même clé de chiffrement publique.

Seul B possède une clé complémentaire ultra-secrète qui elle seule permet d'expliciter f-1 et donc de déchiffrer. Cette clé complémentaire est bien sûr très difficile à trouver par l'ennemi même en utilisant de gros moyens comme des ordinateurs.

Ainsi comprend-on l'intérêt de la cryptographie à clé publique : dans un vaste réseau, chaque utilisateur possède une clé publique personnelle qu'il publie et un clé complémentaire ultra-secrète qu'il n'a à aucun moment à communiquer à quiconque. Le risque de "fuite" est ainsi considérablement réduit car chacun veille à ce que sa propre clé complémentaire reste secrète.

Nous allons exposer un exemple de système de cryptographie à clé publique : le système R.S.A.