Vous êtes sur la page 1sur 2

A la d ecouverte de Maple - Sylvain Damour - Editions Ellipses, 2005 http://www.iut-arles.up.univ-mrs.

fr/damour/a-la-decouverte-de-maple

Sujet de travaux pratiques suppl ementaire

M ethode de cryptage RSA


c 2005 Sylvain Damour

Description de la m ethode
Lalgorithme de cryptage RSA a et e imagin e en 1978 par Rivest, Shamir et Adelman. La cr eation des cl es seectue comme suit. On choisit deux grands nombres premiers p et q . On pose n = pq . On calcule lindicatrice dEuler (n) = (p 1)(q 1). Puis, on choisit un grand entier c, premier avec (n). Finalement, on calcule d = c(1) mod (n). La cl e publique, connue de tous, est alors le couple (n, c). La cl e priv ee, gard ee secr` ete, est le couple (n, d). Le nombre (n) est inconnu. De plus, la d ecomposition en facteurs premiers n = pq , qui permettrait de retrouver (n), est impossible ` a r ealiser en temps raisonnable, les nombres premiers p et q etant tr` es grands. Ainsi, il est impossible de retrouver la cl e priv ee d ` a partir de la cl e publique (n, c). Pour crypter son message, par exemple lentier x, plus petit que p et q , lexp editeur eectue lop eration : y = xc mod n.

Pour d ecrypter le message y , le destinataire eectuera : z = yd mod n.

Le th eor` eme dEuler, x(n) = 1 mod n, assure que : z = x mod n.

Cr eation des cl es

Choisir deux grands nombres premiers p et q , de 4 chires ou plus. (Commande nextprime.) Calculer n et (n). Choisir lentier c, lui aussi assez grand. (Commande igcd.) Calculer lentier d. (Commande mod.) D enir la cl e publique comme la liste [n,c] et la cl e priv ee comme la liste [n,d]. Tester les cl es ainsi cr e ees en cryptant puis d ecryptant un entier de 3 chires. (Commandes &^ et mod pour une exponentiation rapide modulo n.)

Cryptage et d ecryptage dun entier

Ecrire une proc edure CryptageEntier qui prend comme arguments un entier EntierInitial et une liste de 2 entiers ClePublique. La proc edure retourne lentier crypt e. Ecrire une proc edure DecryptageEntier qui prend comme arguments un entier EntierCrypte et une liste de 2 entiers ClePrivee. La proc edure retourne lentier d ecrypt e. Tester les 2 proc edures en cryptant puis d ecryptant lentier 803.

Cryptage et d ecryptage dune liste dentiers

Ecrire une proc edure Cryptage qui prend comme arguments une liste dentiers L et une liste de 2 entiers ClePublique. La proc edure retourne la liste des entiers crypt es. Ecrire une proc edure Decryptage qui prend comme arguments une liste dentiers L et une liste de 2 entiers ClePrivee. La proc edure retourne la liste des entiers d ecrypt es. Tester les 2 proc edures en cryptant puis d ecryptant une liste dentiers.

A la d ecouverte de Maple - Sylvain Damour - Editions Ellipses, 2005

Codage et d ecodage dune cha ne de caract` eres

Soit un message donn e sous la forme dune cha ne de caract` eres ASCII. Il sagit ici de coder ce message, cest-` a-dire de le transformer en une liste dentiers. Il sut de remplacer chaque caract` ere par son code ASCII. Utiliser le paquetage StringTools. (Commande with.) Ecrire une proc edure Codage qui prend comme argument une cha ne de caract` eres C et qui retourne la liste des codes ASCII de ses caract` eres. (Commande Ord.) Ecrire une proc edure Decodage qui prend comme argument une liste dentiers L et qui retourne la cha ne des caract` eres ASCII correspondant. (Commandes Char et cat.) Tester les 2 proc edures en codant puis d ecodant une cha ne de caract` eres.

Cryptage et d ecryptage dun message

D enir une cha ne de caract` eres assez longue. Ne pas h esiter ` a employer des symboles de la table ASCII. Coder puis crypter ce message initial, gr ace ` a la cl e publique. Finalement, d ecrypter puis d ecoder le message crypt e, gr ace ` a la cl e priv ee.

Regroupement par blocs de 3 caract` eres

Plus grands sont les entiers ` a crypter, plus grande est la s ecurit e de RSA. Les codes ASCII sont donc regroup es par bloc de trois et leurs ecritures en base 10 sont concat en ees. Par exemple, [154, 101, 230] donne lentier 154101230, et [4, 1, 23], qui correspond ` a [004, 001, 023], donne lentier 4001023. R e ecrire lensemble des proc edures pr ec edentes pour pouvoir fonctionner dans le cadre dun cryptage RSA par bloc de trois caract` eres. Indications : Il faudra red enir des cl es plus grandes, cr e ees ` a partir de nombres premiers p et q de plus de 9 chires. Il faudra modier la proc edure Cryptage pour quelle crypte les entiers par blocs de trois. Il faudra donc cr eer une proc edure qui concat` ene les ecritures d ecimale de 3 entiers. Il faudra au pr ealable pr eparer la liste dentiers, pour quelle soit de longueur multiple de 3. (On pourra eventuellement la compl eter par un ou deux z eros.) Application : Votre cl e publique est connue de tous. Votre cl e priv ee est n = 49444521988556447 et d = 14155696501478203. Vous recevez le message suivant, crypt e par blocs de 3 caract` eres : [14281766484470818, 44311361271739585, 403447230906928, 11613977548533433, 5702568047869352, 11762883383343029, 42438688981373315, 47096901522799288, 26165406213691979, 19679394969728398]. A vous de jouer !