Le PGP et la cryptographie en général -

comment transmettre des secrets?

(par Julia Stauber et Sog-Yee Mok)

 
 
Dans la première partie de notre travail, nous expliquerons les différentes sortes d'algorithmes mathématiques, aussi à l'exemple de PGP. Puis nous continuerons avec les différentes méthodes de cryptage pour coder des messages.
 
 
I. La cryptographie et ses algorithmes

La cryptographie, c'est à dire l'emploi de codes secrets, est absolument nécessaire pour éviter que tout le monde soit capable de s'informer des affaires privées de chacun. Même si on n'a rien à cacher, on a le droit de garder son intimité, ce qui est un droit de l'homme.

Pour créer un code secret à partir d'une texte qu'on veut transmettre à une autre personne, on se sert d'algorithmes (mathématiques).
1. Différents types d'algorithmes
Un algorithme est une fonction mathématique utilisée, en matière de cryptage, pour le chiffrement ou le déchiffrement. Il y a trois types d'algorithmes cryptographiques.

 

1.1.Les algorithmes restreints:

Ce sont des algorithmes seulement connus d'un certain groupe de personnages designés, qui sont les seuls à les utiliser .La sécurité de ces algorithmes dépend de cet état de faits.
 

1.2.Les algorithmes à clé secrète (ou symétriques):

Ce sont des algorithmes publics, connus de tous, dont la sécurité depend de clés secrètes. On utilise une clé pour crypter (chiffrer), et une clé qui est souvent la même pour décrypter (déchiffrer). Ce type d'algorithme suscite trois problèmes: le vol des clés, la distribution des clés, la mutiplication des clés avec celle des communications. Le problème le plus difficile de ce genre d'algorithmes est l'insécurité de la transmission des clés.

En termes des Mathématiques:

Soit k une clé et P un texte clair, on obtient le texte chiffré C par l'application de l'algorithme f :

C =  f k (P)

L'opération inverse pour le déchiffrement, f ' ,  rend le texte clair:

P = f`'k (C)

Si algorithme f est une inversion simple de l'algorithme f ' , alors le système est dit symétrique.

1.3. Les algorithmes à clé publique (ou asymétriques), p.ex. dans le PGP (pretty good privacy)
La cryptographie à clé publique est un procédé asymétrique utilisant une paire de clés pour le cryptage: une clé publique qui crypte des données et une clé privée et secrète correspondante pour le décryptage. On peut ainsi publier la clé publique tout en conservant la clé privée secrète. Tout utilisateur possédant une copie de la clé publique peut donc crypter des informations, le destinataire étant le seul à pourvoir décrypter et lire. Même les personnes qu'il ne connait pas personnellement peuvent utiliser sa clé publique. D'un point de vue mathématique, il est pratiquement impossible de deviner ou de calculer la clé privée à partir de la clé publique. Tout utilisateur possédant une clé publique peut crypter des informations, mais il est incapable de les décrypter. Seule la personne possédant la clé privée correspondante peut les décrypter.

En termes des Mathématiques:

Principe: soit P le texte clair, pr une clé privée,  pu une clé publique et  f   l'algorithme, nous avons:

C=f pu (P)

P=f pr (C)

La relation fonctionne dans un sens: il est simple à partir de la clé privée de générer la clé publique, mais l'inverse est considéré comme très difficile ou "avec les moyens actuels, impracticable" (Il s'agit de décomposer un nombre très grand en un produit de deux facteurs de nombres premiers de grande taille, eux aussi).
 

1.3.1.Principe de la boîte aux lettres:

Les clés publiques sont publiées dans une sorte d'annuaire.L'action de chiffrer des informations avec la clé publique peut être comparé à déposer cette information dans une boître aux lettres. Alors, tout le monde peut déposer des lettres dans la boîte, mais seulement une personne, le "possédant" avec sa clé privée secrète, peut les en retirer et les déchiffrer.
 

1.3.2.PGP chiffre de deux manières un fichier:

-avec la clé publique d'un ou plusieurs correspondants (E-mail),

-avec une phrase clé pour un chiffrement "statique".
 

1.3.3.La signature:

La signature sert á assurer l'origine d'un message pour que le destinataire puisse être sûr que celui-ci n'a pas été manipulé. Elle peut être attachée au message. Pour les e-mails ou les news; le text est généralement lisible avec une "note" en bas du message: la signature électronique.

 
En termes des Mathématiques:


Soit M un message de taille arbitaire et H une fonction, h est le résultat de l'application de H sur M:
 

h=H (M),  avec h de longueur m
est une fonction "trappe", utilisée dans un seul but: fournir un identificateur unique pour un message.

"PGP donne aux gens le pouvoir de prendre en main leur intimité. Il y a un besoin social croissant pour cela . C'est pourquoi je l'ai créé."

(Le créateur du PGP, Philip R. Zimmerman)
 
 

II. Différentes familles de méthodes de cryptage
Les techniques suivantes ne dépendent pas de l'alphabet utilisé, mais elles se servent de l'aphabet latin, de la base binaire ou hexadécimale, etc...

 

1. Méthode de Substitution:

A chaque lettre ou groupe de lettres on substitue une autre lettre ou un autre groupe de lettres. C'est à dire, une lettre est remplacée par une autre d'après sa position dans l'alphabet utilisé.
 

1.1.Code de César

C'est, historiquement dit, un des premiers systèmes de cryptage connus. Il était déjà utilisé par l'empereur romain Jules César pour empecher que des messages codés soient déchiffrables par ses ennemis. Il s'agit d'un algorithme de cryptage par substitution simple: Le cryptage se fait par le remplacement d'une lettre de l'alphabet par la lettre qui se situe pour n positions d'alphabet plus loin (n = 4) on a les substitutions suivantes:

A=>E ; B=>F ; Y=>C ; Z=>D  etc...

Si par l'exemple: n = 4, César voudrait dire: "Veni, vidi, vici", il écrit: "ZIRM, ZMHM, ZMGM"

Le seul avantage de cette méthode est sa simplicité, mais en même temps sa faiblesse, qui permet de deviner la clé très facilement,car on peut essayer toutes les 26 clés.
 

1.2. Substitution polyalphabétique (ou code de Vignère)

Vignère a inventé son code au XVIème siècle selon un procédé voisin de celui de César. Il s'agit d'un code á substituion polyalphabétique, dont l'algorithme consiste à substituer à chaque lettre du message une lettre de l'alphabet. La lettre de substitution est calculée à partir d'une clé et dépend de la position de la lettre à coder dans le message. Par exemple, on veut coder la phrase "LES ENFANTS SONT PETITS" avec la clé "BINOMI" :

L  E  S      E  N  F  A  N   T  S      S  O  N  T       P   E  T   I  T  S

B  I  N      O  M   I  B  I   N  O     M   I  B   I       N  O  M  I  B  I

N  N  G    T  A  O  C  W  H  H     F  X  P  C       D  T  G  R  V  B

Par exemple, on prend la lettre "L" à position d'alphabet 12 et additionne la lettre "B" de la clé "BINOMI" à position d'alphabet 2, alors position 12 et 2 font position 14, par consequént on obtient la lettre "N".

 
Ce qui donne, transcrit sous forme de chiffres en remplaçant chaque lettre par le numéro de sa place dans l'alphabet en partant de A:
 
          12  5  19   5   14   6  1  14  20  19  19  15  14  20  16  5   20  9  20  19
+        2   9   14  15  13   9  2    9  14  15  13    9    2   9   14  1  13   9    2   9
______________________________________________________________
        14  14  33  20  27  15  3  23  34  34  32  24  1 29  30  20  33  18  22  28
                     7          1                    8    8    6            3     4         7                 2
Comme l'alphabet latin est constitué de 26 lettres, il faut effectuer une addition modulo 26, afin de garder des nombres compris entre 1 et 26. Pour le décryptage, il suffit de procéder á l'opération inverse, c'est à dire une simple soustraction.

L'avantage de cet algorithme, á l'égard de celui de César, c'est qu'il est un peu plus compliqué à déchiffrer à cause de l'utilisation d'une clé secrète et du fait qu'à chaque caractère correspondent plusieurs autres caractères, ce qui rend moins efficace l'analyse de fréquence de caractères. En plus, si la clé est plus longue, les répetitions de la clé se reduisent, ce qui fait que le texte chiffré est encore plus difficile à décrypter.
 

2. Méthodes de Transposition:

Les caractères du message clair restent inchangés mais leurs positions dans le message chiffré diffèrent. Par exemple, la phrase "VIVE LES BANLIEUES DE PARIS" s'écrit en colonnes:
 

V                 L     E   E   R

I      L    B    I      S         I

V    E    A    E          P    S

E    S    N    U    D   A
 

Ensuite, on lit le message en lignes, ce qui donne:"V LEER ILBIS IVEAE PSESNUDA". Mathématiquement, cela revient juste à écrire les données sous forme de matrice, de transposer cette matrice, et de lire ensuite les données en ligne.
 

3. Le DES - une méthode combinée

C'est une méthode de cryptage mise au point par IBM qui est basée sur la combinaison de substitutions et de transpositions sur 16 niveaux, dont la clé est relativement courte (elle est codée sur 56 bits). Mais la petite taille des clés rend le DES 56 très probablement attaquable par des moyens informatiques plus ou moins lourds.

La rapidité de cet algorithme est idéal pour crypter un flot de données continu, comme c'est le cas pour une chaîne de télévision, par exemple.