2OSPM2 2023-2024 RSA

Annuaire des clés publiques

Nom n e
Alice 851 49
Bob 6879317362553803649039 524287
Charles 469106977093249040113 17
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.


Solution : le message chiffré est 354.


Exercice 2

Chiffrer pour Bob le message 10001.


Solution : le message chiffré est 4725739449143273666214.


Exercice 3

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

Solution : votre moyenne est 5.


Exercice 4

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


Solution : le message chiffré est 58930031093446950193581805832638980291379939507265.


Exercice 5

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

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.


Solution : le numéro de carte de crédit est 12345678910111230126.


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$


Solution :

n = 347401945348829233126239420506450172298595422113952743220542047382226416333417370345157979236700326034949634896376541790406674627900872967467996474136964430418392607
d = 28098587234354209216896132659500158089838473382497599833476654473273153867151379622050102954668096884272865685478290072452541278478986937606569043307160954449268331


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$, $d_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 !


Solution :

Envoi d'Alice à Bob
message chiffré : 1000574336448416298735


Maintenant, c'est Charles qui envoie le message signé $M=38$ à Bob.

Envoi de Charles à Bob
message chiffré : 1000574336448416298735
message chiffré et signé : 387022929817399440046


Exemple de l'envoi d'un message signé non chiffré d'Alice à Bob :

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


Exercice 11 (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 12

$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$.