Univers des Nombres
TP 1
Universit´e Blaise Pascal - D´epartement de Math´ematiques
Ann´ee 2010 - 2011
Le but de la cryptographie est de permettre la transmission, par des voies publiques, de messages que
seules les personnes autoris´ees peuvent comprendre. On appelle [texte d’origine] le message `a envoyer et [texte
cod´e] le message r´eellement envoy´e qu’une personne non autoris´ee ne peut pas comprendre. La proc´edure qui
transforme un texte d’origine en texte cod´e s’appelle [codage], la proc´edure inverse, qui transforme un texte
cod´e en texte d’origine, s’appelle [d´ecodage]. Un message est form´e de blocs de klettres appel´es [unit´es].
Dans un alphabet `a Nlettres num´erot´ees 0 `a N−1, une unit´e est associ´ee `a un entier de [0, Nk[ de la fa¸con
suivante : si la lettre iest la i-i`eme lettre de l’alphabet, l’unit´e i1· · · ikest associ´ee `a l’entier
k
X
j=1
ijNk−j.
On regarde cet entier comme un ´el´ement de (Z/NkZ). [Dans tous les exemples de ce probl`eme, on prend
un alphabet `a 27 lettres, le blanc, not´e L, est num´erot´e 0, les lettres sont num´erot´ees 1`a 26 dans l’ordre
alphab´etique. On n’utilise pas de lettres accentu´ees]
La cryptographie `a cl´e publique regroupe l’ensemble des m´ethodes dans lesquelles tout le monde connaˆıt
le codage mais seules les personnes autoris´ees connaissent le d´ecodage. (Par exemple, tout le monde peut
d´eposer une lettre dans une boˆıte `a lettres, seuls les facteurs peuvent relever cette lettre).
On d´ecrit maintenant le syst`eme RSA (invent´e par Rivest, Shamir et Adleman). On suppose qu’Alice
veut permettre `a tout le monde de lui envoyer des messages cod´es. Alice et le reste du monde utilisent un
mˆeme alphabet `a Nlettres. Les unit´es des messages d’origine contiennent klettres et les unit´es des messages
cod´es contiennent lettres, > k. Alice choisit deux (grands) nombres premiers et calcule le [module RSA],
n=pq. Elle choisit ces nombres tels que Nk<n<N`: ainsi une unit´e d’origine peut ˆetre vue comme
un ´el´ement de Z/nZet si le codage est une application de Z/nZdans Z/nZ, le message cod´e peut ˆetre vu
comme un ´el´ement de Z/N `Z. Alice choisit un entier etel que e, ϕ(n)= 1. La fonction de codage est alors
c: [[0, n −1]] −→ [[0, n −1]]
m7−→ memod n.
Alice rend public les entiers n,e,ket . Bob (il ne connaˆıt que les quatre nombres rendus publics), qui
veut envoyer un message m`a Alice, peut donc calculer c(m). Alice peut facilement d´ecoder ce message :
connaissant pet q, elle peut calculer l’inverse e0de emodulo ϕ(n). La fonction de d´ecodage est alors
d:Z/nZ→Z/nZ→Z/N kZ
m7→ me07→ me0(mod Nk).
1