systèmes cryptographiques à clé mixte : pgp · setit 2005 3rd international conference: sciences...

8
SETIT 2005 3 rd International Conference: Sciences of Electronic, Technologies of Information and Telecommunications March 27-31, 2005 – TUNISIA Systèmes Cryptographiques à clé Mixte : PGP Adda ALI-PACHA * - Naima HADJ-SAID –B. BELMEKKI – A. BELGORAF * Université des Sciences et de la Technologie d’Oran – USTO BP 1505 El M’Naouer Oran 31036 ALGERIE E.Mail : * [email protected] tél./Fax : 213 –041/ 46 26 85 Résumé : Le problème de sécurité ne se posait pas, lorsque les entreprises et les universités n’avaient qu’un seul centre d’ordinateurs. Il suffisait de placer un garde à l’entrée de la salle. Maintenant avec la venue des réseaux, l’emploi des liaisons satellites et l’utilisation de l’Internet, la situation a radicalement changé, dans la mesure où un même message transite par plusieurs machines avant d’atteindre son destinataire. A chaque étape, il peut être copié, perdu ou altéré. Le cryptage (sécurité des données) est donc nécessaire pour que les données soit non-intelligibles sauf à l’auditoire voulu. Dans cette communication, on va étudier le système PGP (Pretty Good Privacy) utilisé par la communauté d’Internet, PGP est un l’algorithme à clé mixte ou hybride qui est constitué de deux Algorithmes de types différents, l’un à clé publique RSA et l’autre à clé secrète IDEA, combinés de façon à exploiter les avantages du premier algorithme pour minimiser les inconvénients du deuxième, afin de mieux sécuriser l’information émise. Mots Clés : Cryptographie, Clé Publique, RSA, Clé Secrète, IDEA, Signature électronique, PGP, Empreinte Digitale. 1 Introduction Dans l’état actuel des choses, il existe deux systèmes cryptographiques [3] qui pourraient servir de références. Ils sont à base de clés. Les algorithmes à clé publique, et Les algorithmes à clé secrète. Ces algorithmes servent à coder des informations qui seront ensuite décodées avec la clé appropriée . En utilisant des algorithmes, on verrouille les données, c’est-à-dire qu’on les transforme, les mélange ou les échange en les attachant à d’autres données. Quel est le meilleur système cryptographique : système à clé secrète ou système à clé publique ? Cryptographie symétrique 1. Avantages Simple et facile ą implémenter Traitement CPU rapide Adapter aux grands flux de données a chiffrer 2. Inconvénients Absence de certains services de sécurité Distribution des secrets partagés (complexité en n²) Cryptographie asymétrique 1. Avantages Distribution des secrets Multiples services (confidentialité, signature) 2. Inconvénients Consommation importante en ressources CPU Non-adapté pour le chiffrement de flots de données importants Publication et cycle de vie des certificats Les deux systèmes cryptographiques de base à clé secrète et à clé publique souffrent de problèmes complémentaires et chacun a ses spécificités. La force des algorithmes à clés publiques réside dans la distribution des clés alors que les algorithmes à clés secrètes sont très performants en vitesse de chiffrement. Ainsi, l’intérêt pour augmenter la sécurité des systèmes de cryptage passe certainement par l’utilisation combinée de ces deux techniques (clé de session symétrique chiffrée par un système asymétrique) [S1 – S11 ], ce que l’on nomme la cryptographie mixte.

Upload: others

Post on 03-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Systèmes Cryptographiques à clé Mixte : PGP · SETIT 2005 3rd International Conference: Sciences of Electronic, Technologies of Information and Telecommunications March 27-31,

SETIT 2005 3rd International Conference: Sciences of Electronic,

Technologies of Information and Telecommunications March 27-31, 2005 – TUNISIA

Systèmes Cryptographiques à clé Mixte : PGP Adda ALI-PACHA* - Naima HADJ-SAID –B. BELMEKKI – A. BELGORAF

* Université des Sciences et de la Technologie d’Oran – USTO BP 1505 El M’Naouer Oran 31036 ALGERIE E.Mail : *[email protected] tél./Fax : 213 –041/ 46 26 85

Résumé : Le problème de sécurité ne se posait pas, lorsque les entreprises et les universités n’avaient qu’un seul centre d’ordinateurs. Il suffisait de placer un garde à l’entrée de la salle. Maintenant avec la venue des réseaux, l’emploi des liaisons satellites et l’utilisation de l’Internet, la situation a radicalement changé, dans la mesure où un même message transite par plusieurs machines avant d’atteindre son destinataire. A chaque étape, il peut être copié, perdu ou altéré. Le cryptage (sécurité des données) est donc nécessaire pour que les données soit non-intelligibles sauf à l’auditoire voulu. Dans cette communication, on va étudier le système PGP (Pretty Good Privacy) utilisé par la communauté d’Internet, PGP est un l’algorithme à clé mixte ou hybride qui est constitué de deux Algorithmes de types différents, l’un à clé publique RSA et l’autre à clé secrète IDEA, combinés de façon à exploiter les avantages du premier algorithme pour minimiser les inconvénients du deuxième, afin de mieux sécuriser l’information émise.

Mots Clés : Cryptographie, Clé Publique, RSA, Clé Secrète, IDEA, Signature électronique, PGP, Empreinte Digitale.

1 Introduction Dans l’état actuel des choses, il existe deux

systèmes cryptographiques [3] qui pourraient servir de références. Ils sont à base de clés.

• Les algorithmes à clé publique, et • Les algorithmes à clé secrète.

Ces algorithmes servent à coder des informations qui seront ensuite décodées avec la clé appropriée . En utilisant des algorithmes, on verrouille les données, c’est-à-dire qu’on les transforme, les mélange ou les échange en les attachant à d’autres données.

Quel est le meilleur système cryptographique : système à clé secrète ou système à clé publique ?

• Cryptographie symétrique

1. Avantages

• Simple et facile ą implémenter

• Traitement CPU rapide

• Adapter aux grands flux de données a chiffrer

2. Inconvénients

• Absence de certains services de sécurité • Distribution des secrets partagés (complexité

en n²)

• Cryptographie asymétrique

1. Avantages

• Distribution des secrets

• Multiples services (confidentialité, signature)

2. Inconvénients

• Consommation importante en ressources CPU

• Non-adapté pour le chiffrement de flots de données importants

• Publication et cycle de vie des certificats

Les deux systèmes cryptographiques de base à clé secrète et à clé publique souffrent de problèmes complémentaires et chacun a ses spécificités. La force des algorithmes à clés publiques réside dans la distribution des clés alors que les algorithmes à clés secrètes sont très performants en vitesse de chiffrement.

Ainsi, l’intérêt pour augmenter la sécurité des systèmes de cryptage passe certainement par l’utilisation combinée de ces deux techniques (clé de session symétrique chiffrée par un système asymétrique) [S1 – S11 ], ce que l’on nomme la cryptographie mixte.

Page 2: Systèmes Cryptographiques à clé Mixte : PGP · SETIT 2005 3rd International Conference: Sciences of Electronic, Technologies of Information and Telecommunications March 27-31,

SETIT2005

Exemple :

• SSL - Secure Socket Layer Développé par Netscape et universellement accepté par le World Wide Web.

• L’algorithme PGP (Pretty Good Privacy)

2. Système PGP : Le PGP [1, 5] de Phil Zimmermann utilise deux algorithmes distincts pour crypter et décrypter les données dans un réseau de téléinformatique, l’un est à clé publique et l’autre à clé secrète.

PGP est de loin le logiciel de cryptographie le plus utilisé dans la communauté Internet par les particuliers. Et ce, parce qu'il est à la fois rapide, très sûr. Ce logiciel utilise le principe de cryptographie à clé publique. Alors, avant d'utiliser ce logiciel, nous devrons créer nos clés privées et publiques. Une fois ces deux choses (parfois délicates...) faites, tout est prêt pour crypter et décrypter.

Pour crypter et décrypter, PGP utilise deux algorithmes distincts : IDEA (algorithme à clé privé) et RSA [2, 3, 4] (Algorithme à clé publique).

L'opération de cryptage se fait donc en deux étapes principales :

PGP crée une clé secrète IDEA de manière aléatoire, et crypte les données avec cette clé. PGP crypte la clé secrète IDEA précédemment crée au moyen de la clé RSA publique du destinataire.

De même, l'opération de décryptage se fait elle aussi en deux étapes :

PGP décrypte la clé secrète IDEA au moyen de la clé RSA privée. PGP décrypte les données avec la clé secrète IDEA précédemment obtenue.

C'est la combinaison algorithme symétrique (IDEA pour crypter les données) / algorithme asymétrique (RSA pour crypter la clé IDEA) « Figure 1 ».

Figure 1. Signatures numériques sécurisées

PGP offre aussi une méthode d’utilisation des signatures numériques. Celles-ci permettent au destinataire de vérifier leur authenticité, leur origine,

mais également de s’assurer qu’elles sont intactes. Elles fournissent également une fonctionnalité de non répudiation, afin d’éviter que l’expéditeur ne prétend qu’il n’a pas envoyé les informations. Donc, Il applique au texte clair une fonction de hachage évoluée, qui génère un élément de données à longueur définie, appelé résumé de message ensuite il utilise ce résumé et la clé privée pour créer la signature. Le texte clair avec sa signature peut être enfin crypter par le PGP.

On conclut que le système PGP utilise la signature électronique et les algorithmes à clé public et à clé secrète. Donc, il est la synthèse des algorithmes de base que nous avons étudier. C'est la combinaison algorithme symétrique (IDEA pour crypter les données) / algorithme asymétrique (RSA pour crypter la clé IDEA) qui confère à PGP sa vitesse et sa grande sécurité. Le PGP (Pretty Good Privacy) est un algorithme de chiffrement à destination des particuliers. Il est surtout utilisé pour chiffrer des messages envoyés par courrier électronique, même s'il peut aussi être utilisé pour chiffrer tous les fichiers.

Il fonctionne suivant le principe suivant :

1. Compression : le texte à envoyer est compressé. Cette étape permet de réduire le temps de transmission des données, et améliore également la sécurité. En effet, la compression détruit les modèles du texte (fréquences des lettres, mots répétés). Et on sait que ces modèles sont souvent utilisés dans les analyses cryptographiques.

2. Chiffrement du message : une clé de session aléatoire est générée, et le message est chiffré par un algorithme symétrique à l'aide d'une clé de session. L'algorithme utilisé a varié au cours du temps : il s'agissait au début d'IDEA, puis de CAST.

3. Chiffrement de la clé de session : la clé de session est chiffrée en utilisant la clé publique du Destinataire (et l'algorithme RSA).

1. Envoi et réception du message : l'expéditeur envoie le couple message chiffré / clé de session chiffrée au Destinataire. Celui récupère d'abord la clé de session, en utilisant sa clé privée, puis il déchiffre le message grâce à la clé de session.

3. Notion de Clefs Les clés sont stockées sous forme cryptée. PGP conserve les clés sur notre disque dur, dans deux fichiers : l'un est destiné aux clés publiques, l'autre aux clés privées. Ces fichiers s'appellent des trousseaux de clés. Lors de l'utilisation de PGP, vous devez généralement ajouter les clés publiques de nos destinataires sur notre trousseau de clés publiques. Nos clés privées sont stockées sur notre trousseau de clés privées. En cas de perte de notre trousseau de clés privées, il nous sera impossible de décrypter les informations cryptées vers les clés de ce trousseau figure 2.

Page 3: Systèmes Cryptographiques à clé Mixte : PGP · SETIT 2005 3rd International Conference: Sciences of Electronic, Technologies of Information and Telecommunications March 27-31,

SETIT2005

Figure 2 Fonctionnement du décryptage PGP

4. Algorithmes utilisés par PGP

4.1 RSA RSA [1] est basé sur la difficulté de factoriser un nombre qui est le produit de deux grands nombres premiers. On sait que, si A est un entier quelconque, alors :

Aed = A (mod n),

C'est cette identité qui va tout faire fonctionner.

Création des clefs.

Destinataire : construit un quadruplet de nombres (p, q, e, d) L’utilisateur choisit deux grands nombres p et q premiers et les multiplie pour obtenir :

n = p * q .

Il choisit un nombre grand e et premier avec : (p–1) * (q - 1). On calcul d inverse de e, tel que :

ed – 1 est un multiple de (p – 1)(q – 1)

C’est-à-dire tel que : ed = 1 mod (p–1)(q–1)

Celle-ci peut être résolue grâce à une version étendue de l’algorithme d’Euclide.

Publication la clef publique. Destinataire rend publics (n, e), qui constituent la clef publique. Il la publie dans un annuaire ou la communique à Emetteur, qui la lui demande. Il ne communique surtout pas p, q ou d. Les nombres p et q peuvent être oubliés, car ils ne serviront plus à personne. Le nombre (n, d) constitue la clef secrète de Destinataire.

Transmission d’information. Emetteur, qui veut transmettre une information secrète à Destinataire, transforme son information en un nombre entier A, inférieur à n (ou en plusieurs si nécessaire), en utilisant des conventions connues de tous comme par exemple le code ASCII.

Une personne voulant envoyer le message A au propriétaire des paramètres (n, e) va décomposer A en blocs ai de longueur strictement inférieure à la taille (en nombre de chiffres) de n.

Chiffrage de l’information. Emetteur calcule, grâce à la méthode d'exponentiation rapide :

o Calculer pour tout i : bi = aie Mod n o Former le message B en regroupant les

blocs bi . o B = Ae (mod n), envoie B à Destinataire

par un canal qui n'a pas besoin d'être protégé (par exemple, le courrier électronique).

Déchiffrage de l’information. Destinataire, pour décoder B, calcule Bd (mod n), ce qui lui redonne A, car, d'après le théorème du RSA, on a : Bd = Aed =A(mod n).

4.2 IDEA

Les différentes étapes appliquées par l’algorithme International Data Encryption Algorithm IDEA sont :

1. Le message en clair est partagé en plusieurs blocs.

2. Chacun de ces bloc étant chiffré à l’aide d’une même clé K de longueur r qui permet par un procédé à préciser, de fabriquer d sous clés k1, k2, …, kd.

3. Cette clé, choisie au hasard par l’utilisateur, est divulguée aux personnes concernées, qui doivent aussi s’en servir pour lire les données protégées.

4. Le bloc subit un certain nombre ( égal à d ) de rondes.

Pour commencer le texte clair est divisé en un nombre de blocs [ 2 ] comportant chacun 64 bits. L’algorithme va être appliqué à chacun de ces bloc jusqu’à ce que le texte soit entièrement transformé en un texte codé.

Le processus de codage du bloc à 64 bits est décrit dans la figure 3.

Le bloc de données de 64 bits est divisé en 4 sous blocs de 16 bits : X1, X2, X3 et X4.Ces 4 sous blocs deviennent les entrées de la première ronde de l’algorithme. Il y a 8 rondes au total. A chaque ronde, les 4 sous blocs sont combinés par ou exclusif, additionnés, multipliés entre eux et avec 6 sous blocs de 16 bits dérivés de la clef. Entre chaque ronde, le deuxième et le troisième sous bloc sont échangés.

Page 4: Systèmes Cryptographiques à clé Mixte : PGP · SETIT 2005 3rd International Conference: Sciences of Electronic, Technologies of Information and Telecommunications March 27-31,

SETIT2005

Figure 3. Squelette d’IDEA

Liste des 14 étapes de chaque ronde

1) X1*Z1 2) X2+Z2 3) X3+Z3 4) X4*Z4 5) (Etape 1) XOR (Etape 3) 6) (Etape 2) XOR (Etape 4) 7) (Etape 5)*Z5 8) (Etape 6)+(Etape 7) 9) (Etape 8)*Z6 10) (Etape 7)+ (Etape 9) 11) (Etape 1) XOR (Etape 9) X1 de la ronde suivante 12) (Etape 3) XOR (Etape 9) X3 de la ronde suivante 13) (Etape 2) XOR (Etape 10) X2 de la ronde suivante 14) (Etape 4) XOR (Etape 10) X4 de la ronde suivante

Il y aura en plus 4 étapes supplémentaires après la 8me ronde :

1) X1*Z1 : 2) X2+Z2 3) X3+Z3 : 4) X4*Z4

Enfin, les 4 sous blocs ré assemblés pour former le texte chiffré.

IDEA crée 52 sous clefs à partir de la clef principale de l’utilisateur qui est de 128 bits ( 16 octets) soit 6 sous clefs pour chacune des 8 rondes ( ie. chaque ronde l’algorithme utilise 6 sous clefs) et 4 autres sous clefs pour la transformation finale. Le processus de génération des sous clefs est décrit dans les étapes suivantes :

1. D’abord, la clef secrète K de l’utilisateur qui est de 128 bits est divisée en 8 sous-clefs de 16 bits. Ce sont les 8 premières sous-clefs pour l’algorithme (les 6 de la première ronde et les 2 premières de la deuxième ronde).

2. Ensuite la clef secrète K est décalée circulairement de 25 bits vers la gauche.

3. Cette nouvelle clefs de 128 bits est à nouveau divisée en 8 sous-clefs. Les 4 premières sont utilisées lors de la deuxième ronde et les 4 autres lors de la troisième ronde. Xi : sous-bloc de 16 bits de texte en claire

Yi : sous-bloc de 16 bits de texte chiffré Zi(r) : sous-bloc de clef de 16 bits Ou exclusif bit à bit de sous-bloc de 16 bits Addition modulo 216 d’entier de 16 bits Multiplication modulo 216+1 d’entier de 16bits

4. Cette clef est à nouveau décalé circulairement de 25 bits vers la gauche pour être diviser en 8 sous-clefs suivantes de 16 bits, et ainsi de suite jusqu’à la fin de l’algorithme.

Le tableau suivant indique les sous-blocs de clef de chiffrement correspondant.

Ronde Sous blocs de clef de chiffrement 1 : Z1(1) Z2(1) Z3(1) Z4(1) Z5(1) Z6(1)

2 : Z1(2) Z2(2) Z3(2) Z4(2) Z5(2) Z6(2)

3 : Z1(3) Z2(3) Z3(3) Z4(3) Z5(3) Z6(3)

4 : Z1(4) Z2(4) Z3(4) Z4(4) Z5(4) Z6(4)

5 : Z1(5) Z2(5) Z3(5) Z4(5) Z5(5) Z6(5)

6 : Z1(6) Z2(6) Z3(6) Z4(6) Z5(6) Z6(6)

7 : Z1(7) Z2(7) Z3(7) Z4(7) Z5(7) Z6(7)

8 : Z1(8) Z2(8) Z3(8) Z4(8) Z5(8) Z6(8)

Finale Z1(9) Z2(9) Z3(9) Z4(9)

Le déchiffrement est exactement le même que le chiffrement , accepté que les sous blocs de clefs soient inversés et légèrement différents. La conséquence est que le même processeur, la même carte ou le même logiciel sert à chiffrer et à déchiffrer [5]. La sécurité de ce système repose donc entièrement sur la clé personnelle de l’utilisateur. Le tableau suivant indique les sous blocs de clef de déchiffrement correspondant.

Ronde Sous blocs de clef de déchiffrement 1 : Z1(9)-1 -Z2(9) -Z3(9) Z4(9)-1 Z5(8) Z6(8)

2 : Z1(8)-1 -Z3(8) -Z2(8) Z4(8)-1 Z5(7) Z6(7)

3 : Z1(7)-1 -Z3(7) -Z2(7) Z4(7)-1 Z5(6) Z6(6)

4 : Z1(6)-1 -Z3(6) -Z2(6) Z4(6)-1 Z5(5) Z6(5)

5 : Z1(5)-1 -Z3(5) -Z2(5) Z4(5)-1 Z5(4) Z6(4)

6 : Z1(4)-1 -Z3(4) -Z2(4) Z4(4)-1 Z5(3) Z6(3)

7 : Z1(3)-1 -Z3(3) -Z2(3) Z4(3)-1 Z5(2) Z6(2)

8 : Z1(2)-1 -Z3(2) -Z2(2) Z4(2)-1 Z5(1) Z6(1)

Finale Z1(1)-1 -Z2(1) -Z3(1) Z4(1)-1

Page 5: Systèmes Cryptographiques à clé Mixte : PGP · SETIT 2005 3rd International Conference: Sciences of Electronic, Technologies of Information and Telecommunications March 27-31,

SETIT2005

Les sous blocs de clef de chiffrement sont inverses par rapport à l’addition ou par rapport à la multiplication des sous blocs de clefs de chiffrement. (Pour les besoins d’IDEA, L’inverse de la multiplication de 0 est 0.).

4.3 Signatures numériques : MD5 L'un des principaux avantages de PGP [S 12] est qu'il offre une méthode d'utilisation des signatures numériques. Celles-ci permettent au destinataire de vérifier leur authenticité, leur origine, mais également de s'assurer qu'elles sont intactes. Ainsi, les signatures numériques de PGP garantissent l'authentification et l'intégrité des données.

Elles fournissent é0galement une fonctionnalité de non répudiation, afin d'éviter que l'expéditeur ne prétende qu'il n'a pas envoyé les informations. Ces fonctions jouent un rôle tout aussi important pour la cryptographie que la confidentialité, sinon plus.

Figure 4. Signatures numériques simples La Figure 4 illustre la méthode de création des signatures numériques. Plutôt que de crypter des informations avec la clé publique d'un autre utilisateur, cryptez-les avec votre clé privée. Si des informations peuvent être décryptées avec votre clé publique, c'est vous qui devez les avoir créées.

La signature consiste, pour Rachid, à être sûre que le message qu'elle croit avoir reçu de Hamza, provient bien de ce dernier.

Pour ce faire, Hamza génère une signature 1 :

- MD5 hache le message et fournit un résultat de 128 bits

- Ce résultat, grâce à RSA est crypté par la clé privée de Hamza.

- Hamza envoie le message et la signature 1

• Rachid reçoit donc une signature1 et un message. Il décrypte la signature1 grâce à la clé publique fournie par RSA; il obtient alors une signature1'. De plus il génère une signature2 à partir du message reçu en lui appliquant MD5.

Il ne reste plus qu'à comparer les signatures 2 et 1' ; si elles sont identiques alors l'expéditeur est bel et bien Hamza, figure 5.

MD5 manipule le texte d’entrée par blocs de 512 bits divisés en 16 sous-blocs de 32 bits. La sortie de

l’algorithme est un ensemble de 4 blocs de 32 bits qui, joints ensemble, forment une seule empreinte de 128 bits.

Figure 5. Signature avec MD5

5. Résultats et Interprétation : Afin d’illustrer l’algorithme PGP, nous allons présenter quelques résultats [6] pour les images et les textes.

5.1. Format de fichier PGP

Le résultat de codage PGP est un fichier (*.pgp), il est composé de deux parties :

1) Partie informations : elle contienne :

• Pièce jointe (OUI ou NON) ; • Nom d’expéditeur. • Date de codage. • L’heure de codage. • La clé IDEA crypté.

2) Et la deuxième partie contienne le texte crypté.

On a choisis la méthode de détection de retour de chariot pour séparer les différentes informations et le texte crypté. Pour avoir des lignes à caractère ou champ variables.

Pour cela on a utiliser la fonction prés définit de Builder :

Memo →Lines→Strings[i] tel que i est le numéro de la ligne. (Memo→Lines→Strings[6] pour la clé IDEA crypté).

5.2 Génération des clés IDEA :

Pour la clé IDEA privé on utilise la fonction pseudo_ aléatoire pour compléter les 128 bits de la clé dans le cas où la longueur de la clé est inférieure à 128 bits. Pour cela on ajoute des caractères aléatoirement pour obtenir les 128 bits avec la procédure suivante :

int dif= 16-Length(clé) ; for (i=1 ;i<=dif ; i++) clé = clé + Random(char);

par exemple la clé « Cryptographie » devienne « Cryptographie*f: ».

Page 6: Systèmes Cryptographiques à clé Mixte : PGP · SETIT 2005 3rd International Conference: Sciences of Electronic, Technologies of Information and Telecommunications March 27-31,

SETIT2005

5.3 Texte

5.3.1. Principe de cryptage

Pour le texte, le codage se fait de la manière suivante :

1) le texte se transforme en suite numérique (suite1) on utilisant le code ASCII.

2) on applique l’algorithme IDEA sur la suite numérique obtenue en (1). Et on obtiendra une suite numérique (suite 2) comme résultat (suite 1 codée).

3) on transforme a nouveau la suite 2 sous forme de texte mais cette fois en utilisant notre table d’interface.

Cette table n’a aucun rôle cryptographique. On l’a utilisé pour que le résultat de codage s’affiche en forme de texte et pas en forme numérique, pour faciliter le transfert et pour éviter le problème de retour de chariot (la touche entrer) qui se pose si on utilise le code ASCII. On s’est aperçu qu’après le cryptage, on peu tomber sur une série de bits qui n’a pas de caractère équivalent en ASCII. Par exemple la série de bits 00001101 obtenue après cryptage vaut 13 en décimal, n’a pas de caractère correspondant ( touche Entrée sur le clavier ). Pour pallier à ce problème, la sauvegarde se fait au niveau des entiers au lieu de caractères.

4) ensuite, on crypte la clé IDEA par l’algorithme RSA en utilisant la clé publique du récepteur.

5) Finalement on sauvegarde le résultat dans un fichier de type PGP (*.pgp) avec la clé IDEA crypté et quelques informations (Nom d’expéditeur, Date et l’heure de codage).

5.3.2. Principe de décryptage

1) on transforme le texte (crypté) en suite numérique (suite1) on utilisant notre table (Interface_table).

2) ensuite on décrypte la clé IDEA par l’algorithme RSA en utilisant la clé privée (récepteur).

3) on applique l’algorithme IDEA (avec la clé décrypté en (2)) sur la suite numérique obtenue en (1). Et on obtiendra une suite numérique (suite 2) comme résultat (suite 1 décodée).

4) on transforme a nouveau la suite 2 sous forme de texte en utilisant le code ASCII.

5) Finalement on obtient le texte original si la clé RSA privé est juste.

5.3.3. Exemple

Maintenant, hamza veut envoyer un message de

type texte à son camarade rachid.

Voila le message a envoyé :

« Bonjours Rachid, je suis hamza. J’ai une information très importante, je veux te voir le plutôt possible. Rendez vous à USTO le samedi 22 juin 2002 à midi. Ne retardez pas SVP. »

Il crypte ce message avec la clé publique de rachid (E = 10201, N = 57651443).

Après, rachid reçoit le message de hamza qui est composé de deux parties :

Les informations suivantes :

Pièce jointe : NON. Le nom de l’expéditeur : gh_hamza. La date de codage :08/06/2002. L’heure de codage : 22 :40.

Le message crypté :

« cèU#KMeR.cEP#<(d|<eCG#.+a=KcFLahF#0?d @é#Msds5do;bî1b*_a4ga"ab?bV7esIe(Gd8ôdMT#I(dp]b0Y#U&ej]#:qcgF#k0chqa7uakja1u#@Odd:f5ôb-èfO%aZelxb)y#(<b8#dK!cé]b*1#Brb=/#î>aâuc"!ekrep.doUalçckêd0le5ïcombO_a0ùbO+b)Jcme#MScy,d+%eç/d|JbzMc[ee9ddDmd!m#z.c)n#IDfcTcjQfAîb/]ebxaB_e0&#*Ke)HfDâ »

5.4. Image

5.4.1. Principe de cryptage

On applique le codage des images sur les images bitmaps (BMP).

1) On applique l’algorithme IDEA sur chaque pixel (valeur de pixel). Le résultat sera une autre image (image crypté).

2) Ensuite on crypte la clé IDEA par l’algorithme RSA en utilisant la clé publique du récepteur.

3) Finalement On crée le fichier entête qui contient les informations suivantes :

Pièce jointe : OUI et le nom de fichier d’image crypté. Nom d’expéditeur. Date de codage. L’heure de codage. La clé IDEA crypté.

5.4.2. Principe de décryptage

1) On décrypte la clé IDEA par l’algorithme RSA en utilisant la clé privée (récepteur).

2) On applique l’algorithme IDEA en utilisant la clé décryptée en (1) sur chaque pixel (valeur de pixel) d’image crypté.

3) Finalement on obtient notre image originale si la clé RSA privée est correcte.

Page 7: Systèmes Cryptographiques à clé Mixte : PGP · SETIT 2005 3rd International Conference: Sciences of Electronic, Technologies of Information and Telecommunications March 27-31,

SETIT2005

5.4.3. Exemple On a l’image initiale EL Quods crypter avec les paramètres :

E = 9973 N=84653249

Pour obtenir l’image originale, il suffi de décrypter l’image avec la clé privée :

D= 23329105 N =84653249

5.5. Texte et image

5.5.1. Principe de cryptage Dans ce cas le cryptage se fait comme le cas d’image, après on crypte le texte et on ajoute le texte crypté dans le fichier entête de l’image.

5.5.2. Principe de décryptage

1) On décrypte la clé IDEA par l’algorithme RSA en utilisant la clé privée (récepteur).

2) On applique l’algorithme IDEA en utilisant la clé décryptée en (1) sur chaque pixel (valeur de pixel) d’image crypté.

3) on transforme le texte (crypté) en suite numérique (suite1) on utilisant notre table (Interface_table).

4) on applique l’algorithme IDEA (avec la clé décrypté en (1)) sur la suite numérique obtenue en (3). Et on obtiendra une suite numérique (suite 2) comme résultat (suite 1 décodée).

5) on transforme a nouveau la suite 2 sous forme de texte en utilisant le code ASCII.

6) Finalement on obtient le texte et l’image originaux si la clé RSA privé est juste.

5.5.3. Exemple

Dans cet exemple, rachid va répondre hamza, donc il lui envoyé par exemple un mssage

composé d’un texte en clair :

« Salut Hamza, c’est rachid. J’ai reçu votre message. Pour un autre contacte. Notre mot de passe est le nom de la personnalité de l’image. Merci. »

Et cette image est une pièce joignant de texte. Cette fois, le cryptage se fera en deux parties, mais avec les mêmes paramètres de cryptage :

E = 9973 N = 84653249

c’est la clé publique de Hamza.

Le texte crypté sera:

« e|wdmD#ê8eS5b3}eU%#?=c57bU.bS3aq8beùe" dqVaà[b?@a$McBS#>abP} c_3aoyfNPf3"bTDa-0a9Yd/bfh+#7g#GKe_S#àS#p}auCb]xd7N#aùbX$fNLb#!#ïtb<âc>ê#âS#0.#ùeepgf8?ahVabm#0êe/BdE@aZ;dI5bK7aWï#Rtb2lb($e+_anvdvwdbcbGêdHUaè#c61f5]cgHcbCaèbaàxd-àaéY »

6. Conclusion Après l’analyse de fonctionnement de PGP, on peut dire qu’il est rapide, simple d’accès, sûr et inattaquable (du moins inattaquée jusqu’à présent).

De plus certains aspects de PGP sont très intéressants, comme par exemple sa gestion des clés distribuées. En effet, les utilisateurs peuvent engendrer et distribuer leurs propres clés publiques.

Ils peuvent aussi signer les clés des autres, ajoutant ainsi un niveau de confiance dans le système.

Bibliographies [1] Bruce Schneier,'' Applied Cryptography-Protocols, Algorithms and Source Code in C'', John Wiley & Sounds, Inc, New York, Second Edition, 1996.

[2]: J.DUBERTET, Initiation à la cryptographie, 2eme Edition VEBERT, Avril 2000.

Page 8: Systèmes Cryptographiques à clé Mixte : PGP · SETIT 2005 3rd International Conference: Sciences of Electronic, Technologies of Information and Telecommunications March 27-31,

SETIT2005

[3] Beckett Brian :’’ Introduction aux méthodes de la cryptologie’’, Editions Masson, 1990.

[4] Marsault Xavier :’’ Compression et cryptage des données multimédias’’, 2e édition revue et augmentée, Editions Hermès, 1992.

[5] Gilles Zémor :«Cours de Cryptographie», CASSINI, 2000.

[6] H.GHAIB et R.NABI, ‘’Etude et Implémentation d’un système cryptographie a clé mixte PGP’’, Mémoire d’ingénieur en d’informatique USTOran 2002.

[S 1] : http://wwwhost.ots.utexas.edu/ethernet /ethernet-home.html

[S 2] : http://wwwanalysys.co.uk/commslib.htm.

[S 3] :www.yahoo.com/computers/networks-and- Data-communication

[S 4] : http://www.w3.org/hypetext/Datasources /News/Groups /comp.html.

[S 5] : http//www.ifi.uio.no/~staalesc/PGP/home.html

[S 6] http://www.csua.berkeley.edu/cypherpunks/ home.html

[S 7] ftp://ftp.funet.fi/pub/crypt/cryptography/

[S 8] ftp://ftp.dsi.unimi.it/pub/security/crypt/

[S 9] ftp://ftp.csua.berkeley.edu/pub/cypherpunks/

[S 10] http://www.ifi.uio.no/~staalesc/pgp/home.html

[S 11] http://web.mit.edu/network/pgp-form.html [S 12] http:ftpinformatik.uni.hamburg.de/pub/virus /crypt/