But du TP :
- Etablir une clé secrète en utilisant le protocole
de Diffie-Hellman
- Implanter le cryptosystème RSA
en utilisant la bibliothèque
GMP
pour manipuler les grans entiers.
Protocole d'échanges de
clés
- Le protocole de
Diffie-Hellman
On
dispose d'un entier premier p et g un générateur de Zp*,
les données p et g sont publiques
Si Alice et Bob désire
partager une clé secrète K.
Alice choisit un entier a (1<= a <= p-2) et transmet (g^a modulo
p) à Bob
Bob choisit un entier b (1<= b <= p-2) et
transmet (g^b modulo p) à Alice
La clé partagée K est g^{ab} modulo p
Pour établir une clé secrète vous disposez d'un
entier p de 1023 bits
p=DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF5449C221CB
g=2
- En utilisant la librairie GMP
pour faire les calculs sur les grands entiers, établir une
clé secrète avec un interlocuteur.
Echange de données
chiffrées
- Echanger des messages chiffrés avec l'AES 128 bits avec
l'interlocuteur avec qui vous avez convenu d'une clé
secrète
Système de chiffrement
à clé publique : RSA
- Ecrire la fonction qui permet de générer la
clé publique (n,e) et la clé privée (p,q,d) du
cryptosystème RSA. Le modulo n est de taille au moins 1024 bits,
il est le produit de deux entiers premiers p et q de taille au moins
512 bits. L'exposant e est un entier (1<e<phi(n)) où
phi(n) est l'indicatrice d'Euler de n
(phi(n)=phi(pq)=(p-1)(q-1)). L'exposant d est l'inverse de e
modulo phi(n).
- Ecrire les fonctions de chiffrement et déchiffrement d'un
clair x (x<n) avec ce cryptosystème.
- Chiffrer et déchiffrer des messages vaec RSA 1024 bits ou
plus.