Didier Donsez, Université Joseph Fourier / Sécurité et Cryptographie 2/ 2
SIGNATURE DE FICHIER
Compilez et utilisez la classe Signer qui est passée en annexe pour signer un fichier avec la clé privée de votre
alias du keystore et pour vérifier celle ci avec votre clé publique.
Que se passe t'il si vous trafiquez le fichier, la signature ou si vous vous trompez d'alias.
SIGNATURE DU JAR
Utilisez l'outil JarSigner du JDK pour signer/vérifier une archive Java avec l'alias de votre KeyStore.
Vous pourrez
1. créer l'archive cryptotools.jar avec les fichiers MD.class, Crypt.class
• jar cvf cryptotools.jar MD.class Crypt.class
2. lister l'archive cryptotools.jar.
• jar tvf cryptotools.jar
3. signer l'archive avec votre alias
4. lister l'archive scryptotools.jar.
5. vérifier les signatures de l'archive
6. ajouter un fichier Signer.class
• jar uvf scryptotools.jar Signer.class
7. vérifier les signatures de l'archive
8. remplacer le MD.class par un MD.class issu de la recompilation de MD.java modifié
9. vérifier les signatures de l'archive
CHIFFRAGE ET DECHIFFRAGE A CLE ASYMETRIQUE
Réécrivez le programme Crypt précédent pour qu’il chiffre et déchiffre un fichier avec la paire de clés stockées
dans une entrée d’un keystore ou avec la clé publique d’un certificat X509.
• Crypt –encrypt cesarin.txt cesar.crypt –algo algo algooption
• Crypt –decrypt cesar.crypt cesarout.txt –algo algo algooption
L’algorithme peut être RSA, …
Les options pour un chiffrage/déchiffrage avec la clé privée
• keystore storepass alias entrypass
Les options pour un chiffrage/déchiffrage avec la clé publique
• keystore storepass alias
• X509RSAcertfile
Testez ce programme en modifiant le fichier intermédiaire, en utilisant des mots de passe différents, ou en vous
trompant sur l'algorithme (-algo) au déchiffrage.
PERFORMANCES DES ALGORITHMES DE CRYPTOGRAPHIE
Mesurez et comparez les performances des plusieurs algorithmes de chiffrage/déchiffrage à clés symétriques et
asymétriques en appliquant Crypt sur des fichiers de grande taille >1 Mo.
Tracez des courbes de performances (vous pouvez utiliser MS Excel) en fonction de la taille du fichier à chiffrer
ou à dechiffrer. Comparez.
Pour mesurer les performances
Sous Unix, vous pourrez utiliser directement la commande time
• time java Crypt –encrypt ...
Sous Windows, ajoutez une trace de mesure1 (activable avec la propriété tpjce.perf=yes2).
• java –Dtpjce.perf=yes Crypt –encrypt ...
1 long startTime=System.currentTimeMillis() ;
work(); // travail à chronométrer
long durationInMillis=System.currentTimeMillis()-startTime;
double durationInSeconds=durationInMillis/1000.0;
2 String prop=System.getProperty("tpjce.perf");