Cryptographie : Algorithmes
III) Algorithmes plus complexes
La plupart des algorithmes présentés jusqu'ici sont assez simple, même s'ils permettent d'obtenir un cryptage complexe et sûr en les combinant. Voici donc quelques autres algorithmes un peu plus complexes, basés sur des règles mathématiques plus complexes.
A) Un cryptosystème sans clé
Supposons qu'Alice et Bob veuillent communiquer. Ils choisissent P un nombre premier très grand, public. Le message sera chiffré par blocs, assimilés à des nombres M, plus petits que P.
Eb' = Da'.b' = Ca'.b.b' = Ca'= Ma.a' = M [mod P]
B) Cryptosystème à clé publique (Diffie-Helmann)
Soit un groupe de N utilisateurs. Voici un protocole à clé publique pour leur permettre de communiquer sans avoir à échanger leurs clés.
C) Algorithme du "sac à dos"
Soit une suite (ai)
supercroissante, c'est-à-dire que chaque terme de la suite est
strictement supérieur à la somme de tous les précédents.
Soit N un entier, somme de plusieurs ai. On peut facilement
décomposer N pour obtenir la liste des ai correspondants,
puisque la suite est supercroissante. Si (bi) est un vecteur
de bits, c'est à dire une suite de bits du type (01001011010...), de
longueur finie, on codera le message M sous forme binaire : M = (bi)
par C = S bi.ai. En
retrouvant les ai, on reconstitue donc M facilement.
Pour compliquer un peu cet
algorithme, on choisit m supérieur à la somme de tous les
ai, ainsi que u premier avec m et v inverse de u modulo m, tous
secrets, et publie (ci) avec ci = u.ai [m].
D) Calcul matriciel
Ici, le message est assimilé à une matrice colonne M, de dimension n. La clé est une matrice carrée K d'ordre n inversible. On peut alors écrire le message chiffré sous forme d'une matrice colonne C :
C = K.M
D = K-1.C = K-1.K.M = M
Copyright © BLANC David - 2000