2M6 OS RSA
2019 - 2020

Annuaire des clés publiques

Nom n e
Alice 851 49
Bob 6879317362553803649039 524287
Secrétariat 55 7
Site de vente sur Internet 81460323853031154412157864943449033559900223014841 45879256903
Clé USB 17063 19
Dario Salvadore 48267237760414490577605319444016412802593880857498
12680036801574160971569051503657207222633596264460
79993613028406123129124342517645822595236729843296
743728609076321253749
5

Exercice 1

Chiffrer pour Alice le message 25.

Exercice 2

Chiffrer pour Bob le message 10001.

Exercice 3

Votre professeur d'OC envoie votre moyenne au secrétariat via un courriel crypté en RSA. Le message crypté envoyé est 25. Quelle est votre moyenne ?

Exercice 4

Chiffrer pour le site de vente sur Internet le message 56739876123487011116.

Exercice 5

Vous interceptez le numéro de carte de crédit d'un client du site de vente sur Internet :
6251765106260591109794074603619900234555266946485.

Pouvez-vous retrouver ce numéro de carte ?

Le numéro de carte de crédit est de la forme XXXX XXXX XXXX XXXX MMAA, où MMAA représente le mois et l'année d'expiration de la carte.

Exercice 6

Vous avez intercepté $\phi(17063)=16800$. Pouvez-vous calculer la clé privée qui code la clé USB ?

Solution : comment trouver p et q. La clé privée est (17063, 12379)

Exercice 7

Déterminer la clé privée $(n, d)$ à partir de :
$p=18638721684848404944786872362934444448748748734873853487578623856874623782346436673$
$q=18638721647484848484848868723629346238748784758768754678565765856874623780129099359$
$e=25667$

Exercice 8 (Signature d’un message)

Supposons qu'Alice veut envoyer un nouveau message $M$ à Bob. Comment Bob peut-il être sûr que le message reçu a bien été envoyé par Alice ?
Pour résoudre ce problème, RSA peut être utilisé aussi bien pour transmettre un message que pour le signer.
Pour cela, utilisons les clés publiques et privées de Alice et Bob, $n_A$, $e_A$, $d_A$ pour Alice et $n_B$, $e_B$, $d_B$ pour Bob.
Tout d’abord, Alice utilise la clé publique ($n_B$, $e_B$) de Bob pour transmettre le message $C$ et produire une signature $S$ du message à l’aide de sa propre clé privée ($n_A$, $e_A$).
En effet, Alice doit produire et transmettre $C$ et $S$ comme ceci : .
$$C \equiv M^{e_B} \mod n_b, \quad S \equiv C^{d_A} \mod n_A$$ En possession du message chiffré $C$ et de la signature $S$, Bob peut alors vérifier si c’est bien Alice qui a transmis ce message en utilisant la clé publique ($n_A$, $e_A$) d'Alice, du fait de la relation $$S^{e_a} \equiv {\left(C^{d_A}\right)}^{e_A} \equiv C^{d_A e_A} \equiv C \mod n_A$$ En effet, seule Alice peut produire la signature $S$ et donc Bob peut aisément vérifier si la signature $S$ donne une deuxième fois le message chiffré $C$.

A l'aide de ce procédé, envoyer le message signé $M=38$ à Bob.

IMPOSSIBLE. En effet, la longueur de la clé d'Alice ne permet pas de signer son message pour Bob !

Envoi d'Alice à Bob
message chiffré : 1000574336448416298735
signature : 118

Exercice 9

Envoyer le message signé BONJOUR à D. Salvadore.

Il faut trouver une méthode pour transformer la suite de caractères en une suite de chiffres.

Par exemple en utilisant les fonctions ord et chr de Python. Par exemple, ord('A') renvoie 65 et chr(65) retourne 'A'.

Exercice 10 (Signature d’un message - suite)

Supposons que pour faire parvenir le message à Bob, Alice place le message sous forme de lettre dans une enveloppe. Alors, le protocole de signature présenté à l'exercice 8 consiste à mettre la lettre dans l’enveloppe et à signer ensuite l’enveloppe.

On peut aussi envisager un autre protocole de signature. Alice signe la lettre (le message), puis la place dans l'enveloppe. On préfère en général ce deuxième protocole car il suit de plus près la manière traditionnelle de signer une lettre : on signe d’abord avant de la mettre dans l’enveloppe.

Ecrire, puis justifier, à l'aide des clés publiques et privées d'Alice et Bob ce procédé de signature.

Exercice 11

$A_1$ envoie à $A_2$ le message $M = 10816235128762846912798721640000001$.

Chiffrer et signer ce message des deux façons décrites ci-dessus.

Clé $A_1$ : $e_1 = 11$. $p_1$ et $q_1$.

Clé $A_2$ : $e_2 = 7$. $p_2$ et $q_2$.