Protéger
les informations confidentielles ou simplement s'assurer de leur authenticité
ou de leur provenance est devenu, avec le développement des réseaux
informatiques, un problème crucial.
Les solutions algorithmiques offertes par la cryptographie
se répartissent en deux grandes catégories :
·la
cryptographie à clef secrète
(ou symétrique, ou encore conventionnelle), qui regroupe les algorithmes
pour lesquels expéditeur et destinataire partagent une même
clef secrète.
·la
cryptographie à clef publique
(ou asymétrique) qui, elle, évite le partage d'un secret
entre les deux protagonistes. Ainsi, pour assurer la confidentialité
de données lors d'une transmission, il suffit à l'émetteur
de chiffrer le message avec la clef publique du destinataire, généralement
disponible dans un annuaire. Ce dernier, à l'aide de la clef secrète
correspondante, est seul en mesure de déchiffrer le message reçu.
La
technique de chiffrement à clef secrète la plus élémentaire
est le chiffrement à flot ; elle consiste à additionner
bit à bit le message clair avec une suite aléatoire de même
longueur. Cependant elle pose le problème essentiel et difficile
de la génération de longues suites pseudo-aléatoires.
Pour
contourner ce problème, on fait souvent appel à des techniques
de chiffrement à clef secrète dites par blocs, tel
le DES. Elles consistent à découper le message en blocs de
même taille (64 ou 128 bits) et à effectuer à partir
de chacun de ces blocs et d'une clef secrète, une succession suffisamment
inextricable de calculs pour qu'il soit impossible d'avoir une vision d'ensemble
de la fonction et donc de l'inverser sans connaître la clef. La sécurité
de la plupart de ces systèmes ne repose pas sur une théorie
mathématique mais simplement sur la constatation empirique qu'ils
sont difficiles à cryptanalyser.
A ce
jour, aucune preuve formelle de la sécurité de ces systèmes
n'a été établie.
Les
systèmes à clef publique sont, eux, construits à partir
de fonctions faciles à calculer mais que l'on ne peut inverser en
un temps raisonnable que si l'on connaît un certain secret. De telles
fonctions sont fournies par des problèmes mathématiques réputés
difficiles ; ainsi le système RSA repose sur la difficulté
de factoriser un nombre formé par le produit de deux grands nombres
premiers.
Cependant,
vingt ans après l'invention du concept de cryptographie à
clef publique, le nombre de ces systèmes résistant à
la cryptanalyse est extrêmement faible. De plus, les systèmes
communément utilisés sont pratiquement tous fondés
sur le problème de la factorisation. Cette rareté des systèmes
à clef publique et le manque de preuves de sécurité
pour les systèmes à clef secrète rendent donc actuellement
primordiales la recherche de nouveaux algorithmes cryptographiques et l'évaluation
de leur sécurité.