Projet personnel (cryptographie) Safe for all version 1.0 Logiciel de chirement-déchirement-attaque en JAVA Par Quentin Comte-Gaz
Sommaire 1 Introduction 2 2 Les diérents chirements possibles 3 2.1 DES 56 bits.............................................. 3 2.2 Vigenère classique.......................................... 3 2.3 Vigenère amélioré........................................... 4 2.4 César classique............................................ 4 2.5 César amélioré............................................ 4 3 Création (aléatoire) de clefs 5 3.1 DES 56 bits.............................................. 5 3.2 Vigenère classique-amélioré..................................... 5 3.3 César classique-amélioré....................................... 5 4 Les attaques 6 4.1 DES 56 bits.............................................. 6 4.2 Vigenère classique-amélioré..................................... 6 4.3 César classique-amélioré....................................... 6 5 Importation et exportation 7 5.1 Importation d'une clef ou/et d'un message............................. 7 5.2 Exportation d'une clef ou/et d'un message............................. 7 5.3 Exportation du projet au format PDF............................... 8 6 Les améliorations en cours de conception 9 6.1 chirement AES 128-192-256 bits.................................. 9 6.2 chirement RSA 1024-4096 bits................................... 9 6.3 Faciliter le multichirement d'un message............................. 9 6.4 Améliorer le chirement-attaque de Vigenère........................... 9 7 Aide 10 7.1 Le programme ne se lance pas.................................... 10 7.2 Le chirement-déchirement ne fonctionne pas.......................... 10 1
1 Introduction Safe for all v1.0 est une application de cryptographie en JAVA. Elle permet entre autre de chirer-déchirer ses données avec les chirements DES, Vigenère, César et César amélioré. Il est également possible d'ouvrir/enregistrer une clef de chirement, un texte clair et un texte crypté. Enn, il est possible d'exporter le projet (clef+texte clair+texte chiré) au format PDF. Cette application est téléchargeable à l'adresse : http ://quentincg.free.fr/safeforall/ Voici l'apparence de l'application : 2
2 Les diérents chirements possibles 2.1 DES 56 bits Le Chirement DES permet de chirer n'importe quel type de message (en ASCII). Ce chirement est attaquable, mais demande une certaine puissance de calcul. Ainsi, l'aes est correct pour des échanges de faibles importances même si l'aes est bien plus able. Exemple concret : Clef : "Ÿ?ð 1 2 R )" Message : "Bonjour, j'ai 5 ans!? :)" Message chiré : "? ûuk ó` 9/h??wCm??MÃ 4.,T?Uû" Brève explication de ce chirement : Le DES (Data Encryption Standard) est un standard de chirement avancé non linéaire faisant notamment intervenir des XOR et des permutations. 2.2 Vigenère classique Le Chirement de Vigenère ne permet de chirer que les lettres en majuscules. Le logiciel ne va donc ni chirer, ni conserver, les autres caractères (notons quand même qu'il transforme les lettres minuscules en lettres majuscules). Ce chirement est facile à attaquer si la longueur de la clef est très inférieure à celle du message. Au contraire, si la longueur de la clef est égale à celle du message, il est alors impossible d'attaquer ce chiffrement. Exemple concret : Clef : "AZERTYUIOP" Message : "BONJOURMOICESTQUENTIN" Message chiré : "BNRAHSLUCXCDWKJSYVHXN" Brève explication de ce chirement : Il permet de remplacer une lettre par une autre qui n'est pas toujours la même. Pour ce faire on utilise un tableau à double entrée. 3
2.3 Vigenère amélioré Ce chirement est l'amélioration logique du chirement de Vigenère. Il permet de chirer tous les lettres minuscules et majuscules et ne supprime pas les éléments de la table ASCII. Ce chirement est facile à attaquer si la longueur de la clef est très inférieure à celle du message. Au contraire, si la longueur de la clef est égale à celle du message, il est alors impossible d'attaquer ce chiffrement. Exemple concret : Clef : "AZERTYUIOPQSDSGFBC" Message : "Bonjour, j'ai 5 ans!? :)" Message chiré : "Bnrahsl, y'sl 5 bps!? :)" Brève explication de ce chirement : Il permet de remplacer un caractère par un autre qui n'est pas toujours le même. Pour ce faire on utilise un tableau à double entrée. 2.4 César classique Le Chirement de César ne permet de chirer que les lettres en minuscules et en majuscules. Le logiciel ne va donc pas chirer les autres caractères, mais va cependant les conserver. Ce chirement est l'un des plus faciles à attaquer (26 clefs possibles). Exemple concret : Clef : "12" Message : "Bonjour, j'ai 5 ans!? :)" Message chiré : "Nazvagd, v'mu 5 mze!? :)" Brève explication de ce chirement : Il consiste en une substitution de lettres par une autre plus loin dans l'alphabet. Par exemple, si l'on utilise un décalage de 3, A serait remplacé par D, B deviendrait E, et ainsi de suite. 2.5 César amélioré Le chirement de César ne permet pas de chirer tous les caractères de la table ASCII. Il faut donc utiliser le chirement de César amélioré pour les chirer. Ce chirement est facilement attaquable (224 clefs possibles). Exemple concret : Clef : "122" Message : "Bonjour, j'ai 5 ans!? :)" Message chiré : " 1 4éèäéïì?ä Ûã?Ûèí??? " Brève explication de ce chirement : Il consiste en une substitution d'un caractère par une autre plus loin dans la table ASCII. Par exemple, si l'on utilise un décalage de 110, "-" serait remplacé par ">" et ainsi de suite. 4
3 Création (aléatoire) de clefs 3.1 DES 56 bits La clef de chirement du DES 56 bits est constituée de sept caractères quelconques. Il est possible de générer aléatoirement une clef de cette nature en cliquant sur "Creer une clef aléatoirement". 3.2 Vigenère classique-amélioré La clef de chirement de Vigenère est constituée uniquement de lettres. Sachez que plus votre clef est longue, plus votre message sera sécurisé. En eet, une clef de longueur égale à celle du message rend le message chiré inviolable. Il est possible de générer aléatoirement une clef de 26 lettres en cliquant sur "Creer une clef aléatoirement". 3.3 César classique-amélioré La clef de chirement de César classique est un nombre compris entre 0 et 26. Pour le César amélioré, la clef est comprise entre 0 et 224. Il est possible de générer aléatoirement une clef de cette nature en cliquant sur "Creer une clef aléatoirement". 5
4 Les attaques 4.1 DES 56 bits L'attaque du chirement DES est possible mais prendrait bien trop de temps pour un ordinateur classique. Je n'ai donc pas implémenté cette fonction. 4.2 Vigenère classique-amélioré L'attaque du chirement Vigenère est en cours de conception. Vous pouvez pour le moment connaitre la longueur de la clef en cliquant sur "Chercher la clef de chirement". 4.3 César classique-amélioré L'attaque du chirement César est opérationnel. En cliquant sur "Chercher la clef de chirement", le logiciel vous donnera les clefs les plus probables en supposant que le texte soit en français/anglais et fera ensuite une attaque de type "Force Brute" permettant d'acher toutes les clefs possibles avec un achage partiel de chaque message déchiré. 6
5 Importation et exportation 5.1 Importation d'une clef ou/et d'un message L'importation d'une clef de chirement-message chiré-message clair se lance à partir du menu et se fait à partir d'un chier quelconque. L'importation se fait à partir d'un chier quelconque. Cependant, le chier importé doit suivre la norme ASCII. Le message (ou la clef) importée se placera directement dans le bloc de texte approprié. Il faut cependant noter que le logiciel ne sait pas quel type de chirement est utilisé lorsque vous importez la clef. Il faudra donc faire attention à lancer le bon chirement-déchirement. 5.2 Exportation d'une clef ou/et d'un message L'exportation permet d'enregistrer une clef ou un message clair/chiré au format ".txt". Il ne vous est pas necessaire de noter l'extension ".txt" lors de l'enregistrement. 7
5.3 Exportation du projet au format PDF L'exportation du projet permet d'enregistrer au format ".pdf" le projet au complet (clef+message clair+message chiré). Il ne vous est pas nécessaire de noter l'extension ".pdf" lors de l'enregistrement. Voici un exemple de chier PDF exporté : 8
6 Les améliorations en cours de conception 6.1 chirement AES 128-192-256 bits L'AES est un chirement symétrique incassable à l'heure actuelle. Il sera mis en place dès la prochaine mise à jour de l'application. Comme pour les autres chirements, il y aura la possibilité de chirer-déchirer un message avec une clef que l'on pourra generer aléatoirement. 6.2 chirement RSA 1024-4096 bits Le RSA est un chirement asymétrique incassable à l'heure actuelle. Il sera mis en place dès la prochaine mise à jour de l'application. Comme pour les autres chirements, il y aura la possibilité de chirer-déchirer un message avec une clef que l'on pourra generer aléatoirement. 6.3 Faciliter le multichirement d'un message L'application ne permet à l'heure actuelle que de chirer-déchirer avec UN TYPE de chirement. Dans une future mise à jour de l'application, il sera possible de combiner diérents chirements. Il sera par exemple possible chirer un message avec de l'aes puis avec du vigenère puis avec du DES. Pour déchirer le message, il sura de déchirer le DES puis le Vigenère puis l'aes. 6.4 Améliorer le chirement-attaque de Vigenère Il est possible d'améliorer le chirement-déchirement de Vigenère en chirant sur l'ensemble de la table ASCII. Il est également possible de nir l'attaque de Vigenère (en cours de conception). 9
7 Aide 7.1 Le programme ne se lance pas Pour lancer un chier en.jar (ce qui est le cas pour cette application), il faut installer une JVM (Java Virtual Machine). Voici le lien de téléchargement : http ://www.java.com/fr/download/ (il faut cliquer sur "Téléchargement gratuit de JAVA"). Si vous n'arrivez toujours pas à lancer le programme, faites un clic doit sur celui-ci puis cliquez sur "Ouvrir avec" puis sur "Choisir le programme par défaut" et enn selectionnez "C :/Program Files/Java/- jre7/bin/java.exe" 7.2 Le chirement-déchirement ne fonctionne pas Si le chirement ou le déchirement ne fonctionne pas correctement, je vous conseille de lire les "consignes d'utilisations" qui se trouvent au-dessus des zones de texte clef/chirement/déchirement. Si le problème persiste, veuillez m'envoyer un message électronique à l'adresse quentincg@free.fr 10