Vous êtes sur la page 1sur 7

ARITHMETIQUE

Introduction : Cryptographie

Dans cette section dintroduction, on dsire faire un point sur diffrentes techniques lmentaires de
cryptographie. La cryptographie, "criture secrte", est ltude des messages secrets, cods.
En pratique il sagit dtudier diffrentes manires pour Amandine (habituellement, les cryptographes
lappellent Alice) de transmettre un message Bob, de sorte que Bob soit capable de comprendre ce message,
mais aucune des personnes qui pourraient lintercepter.
Une mthode connue ds lantiquit consiste simplement dcaler les lettres de lalphabet : on remplace
"A" par "B", "B" par "C", ..., "Y" par "Z" et "Z" par "A" pour coder.

Quel est le codage correspondant "BONJOUR, BOB" ?

Que signifie la phrase code "KBJNF MFT NBUIT" ?

Cette mthode linconvnient dtre bien trop simple dcoder ! Une variante amliore consiste
utiliser une permutation quelconque des lettres : on remplace "A", "B", "C", . . ., "Z" par les mmes lettres
prises dans un ordre quelconque, fix une fois pour toute lavance entre Amandine et Bob. Ainsi, Bob qui
connat le code sait par quelle lettre remplacer chacune des lettres du message cod, et peut le dcoder. Et
quelquun dautre, sans le code, aura devant lui un message incomprhensible : par quoi remplacer le "A" ?
Le "B" ? Le "C" ...
Combien de tels codes existe-t-il, pour un alphabet de 26 lettres ?

Avec ce grand nombre de codes possibles, on pourrait penser la technique efficace. Malheureusement,
elle a un gros dfaut : si le texte fourni est assez long, dans une langue connue lavance (par exemple, le
franais), le message secret est facile dcoder.
On utilise pour cela le fait que les diffrentes lettres napparaissent pas toutes avec la mme frquence
dans un texte. En franais, un calcul sur de nombreux textes de diffrents auteurs donne des frquences
moyennes suivantes, pour 100 lettres :

Lettre E A S I T N R U L O D C P
Frquence 17.1 8.1 8 7.6 7.2 7.1 6.6 6.4 5.5 5.4 3.7 3.3 3
Lettre M V Q F B G H J X Y Z W K
Frquence 2.9 1.6 1.4 1.1 0.9 0.9 0.7 0.5 0.4 0.3 0.1 0.1 0.1

1/7
Si Bob envoie Amandine le message suivant (on a choisi de ne pas coder les espaces et la ponctuation,
qui sont la mme place que dans le texte non cod - cela rend le dcodage plus facile " la main", mais ne
change pas tellement sa difficult relle si lon est aid dun ordinateur) :
"EIOSILIND, XI ECUB-SZ, US NI GOLZUD PZE ON XUJZBI : US GOLZUD ONI XZBDCOXKI
VI VQNZLUDI. XI ROI VISPKUNI ID EZOXUEEI BIJZBVIBIND XCLLI VKZAUDOVI, SZ PIDUDI
ABZUEI, SI PIDUD GZNZS VI FCUDOBI, XIDZUD SI JBIEUSSILIND VI SZ LIXKI. ID US Q IOD,
ZO GCNV VO YZBVUN, SINCBLI IXSZACOEEILIND VCB ROU IXSZUBZ SZ NOUD PINVZND
ONI EIXCNVI. XIDZUD SZ DIDI VI SZNJSCUE ROU PBINZUD, INGUN, SIE VULINEUCNE VI
SONUFIBE. ROU Z VUD : "ON BCU EZNE VUFIBDUEEILIND IED ON KCLLI PSIUN VI LUEIBIE"?"

Sauriez-vous le dcoder, en sachant que les frquences dapparition des lettres dans ce message cod
sont (il suffirait de les compter la main - mais lordinateur a fait a pour nous) : pour cent lettres,

Lettre A B C D E F G H I J K LM
Frquence 0.8 4.8 3.4 8 6.1 0.8 1.3 0 17.9 1 1.3 4 0
Lettre N O P Q R S T U V W X Y Z
Frquence 8 5.8 1.8 0.5 1 6.1 0 9.6 5.3 0 3.4 0.2 7.7

Il nest pas dit que la frquence des lettres dans ce texte soit exactement la frquence thorique ; mais cela
permet de dterminer quand mme, assez rapidement, le codage des lettres les plus frquentes en quelques
essais sur les mots courts : par exemple on est pratiquement certain que le "I", vue sa frquence, code un
"E".

2/7
I)Divisibilit dans et

1. Division euclidienne

Dfinition 1 (Divisibilit dans ) On dit quun entier a est un multiple dun entier b sil existe un entier
q tel que a = b q. On dit aussi, lorsque ces nombres sont non nuls, que b est un diviseur de a.

Exemple : dans , lensemble des multiples de 3 est : {, -9, -6, -3, 0, 3, 6, 9, 12}
732 est un multiple de 12 ; on a : 732 = 12 q avec q =. ; le quotient de 732 par 12 est ;

Rem : Les thormes vu lanne dernire sur la divisibilit dans stendent

Dfinition 2 (division euclidienne) Soit a un entier relatif et b un entier naturel non nul ; effectuer la
division euclidienne de a par b, cest dterminer q et r tels que a = b q + r avec 0 r < b. a, b, q et r sont
appels respectivement dividende, diviseur, quotient et reste.

Exemple : 100 nest pas un multiple de 12 ; on ne peut pas crire 100 = 12 q avec q entier mais on peut
crire : 100 = 12 q + r avec r entier tel que 0 < r < 12. r est le reste de la division (euclidienne) de 100 par 12.

II) Congruences

1) Une question pratique

Un lve qui aime bien les vacances constate quen 2004, le premier mai tombait un samedi.
Comment peut-il savoir, sans trop se fatiguer, si en 2005 et en 2006 le premier mai donnera un jour de
cong de plus, ou sil tombera pendant un week-end ?

Il sagit donc de savoir, quand on rajoute 365 jours un samedi, sur quel jour de la semaine on tombe.

La remarque fondamentale est que rajouter 7 jours ne change rien ! Et donc 14 jours non plus, 21 jours
non plus...ni nimporte quel multiple de 7.

Ainsi, on peut crire la division euclidienne de 365 par 7 : 365 = 52 7+1

On voit donc que le premier mai 2005 tombera 52 semaines et un jour aprs le premier mai 2004 : il
tombera un dimanche. Et le premier mai 2006, un lundi ; le premier mai 2007, un mardi.
Et le premier mai 2008 ?

Nous venons de faire notre premier calcul de congruence : au lieu de faire un calcul exact sur des entiers,
nous venons de faire un calcul modulo 7, en conservant seulement linformation "jour de la semaine".

3/7
2) La notion de congruence

On fixe un entier naturel b, suprieur ou gal 2.


On dit que deux nombres x et y sont congrus modulo b, et on note : x y (mod b)

sils ont le mme reste dans leurs divisions respectives par b.

Exemple : On a les divisions 365= 52 7 + 1, 15 = 27 + 1, 1 = 07 + 1.


Le reste est 1 chaque fois, ce qui signifie que ces nombres sont congrus modulo 7 :
365 15 (mod 7)
1 (mod 7)
Tout nombre est ainsi congru modulo b un unique nombre entier compris entre 0 et b 1.

Deux proprits fondamentales :


On peut additionner et multiplier les congruences modulo b :
x+ x0 y+y0 (mod b)
si x y (mod b) et x0 y0 (mod b), alors
xx0 yy0 (mod b):

3 Une premire application : la preuve par 9

Calculer 10 modulo 9 : 10 ....... (mod 9)


Puis 100 modulo 9 : 100 ..... (mod 9)
Puis 1000 modulo 9 : 1000 ...... (mod 9)
Avez-vous compris combien vaut 10n modulo 9 ? 10n ...... (mod 9)

- Comment calculer rapidement un nombre modulo 9 ? Par exemple, combien vaut 2345310203944499500
modulo 9 ?
2345310203944499500 . (mod 9)

- Comment en dduire un moyen simple de contrler si une multiplication est fausse?

Par exemple, 1234 4567 = 5635687 semble-t--elle juste ?

Et 3214 2345 = 7536830 ?

4 Une deuxime application : le dernier chiffre de ...

Comment dterminer rapidement le dernier chiffre de 200410 ?

4/7
6) Une troisime application : le contrle des codes ISBN

Tous les livres du monde ont un code didentification unique de 10 caractres : le code ISBN (International
Standard Book Number).

Un exemple de code ISBN : 2-84177-157-1.

Ce code signifie que le livre est francophone (le 2), que son diteur a reu le numro dditeur francophone
84177, et que le livre est le 157me publi par cet diteur.

Remarque : la taille relative des segments diteur et numro de livre est variable : un livre dun petit
diteur aura un code du type 2-9522908-0-6, un livre dun gros diteur, un code du type 2-07-036624-3.
Seule reste fixe le nombres de caractres total de ces deux zones, 8.

Le dernier caractre, dont on na pas encore parl, est part. Il peut valoir 0, 1, 2, 3, . . ., 9, X.
Il sagit dun caractre de contrle, permettant de sassurer que lon na pas fait derreur en tapant le
code ISBN.

Comment calculer ce caractre de contrle ?


Ainsi, si les 9 premiers caractres du code ISBN sont a0a1a2 a8, le caractre de contrle est 11 -
((a0 10 + a1 9 + a2 8 + + a8 2) modulo 11) - et on note X si le rsultat est 10.

Par exemple pour le code 2841771571,


On calcule 2 10 + 8 9 + 4 8 + 1 7 + 7 6 + 7 5 + 1 4 + 5 3 + 7 2,
qui vaut 241 = 21 11 + 10, soit 241 10 (mod 11).
Le caractre de contrle est donc 11 10, soit 1 : le code ISBN donn en ouverture est bien valable.

Les codes suivants sont-ils valables ? Si non, quel serait le bon code ?
2 952290806

2123433103

Intrt de ce code Il permet de dtecter les erreurs de saisie lors de la frappe dun code sur ordinateur.
Les deux erreurs les plus frquentes sont de faire une erreur en tapant un chiffre, ou bien dchanger deux
chiffres.
Montrer que dans ces deux cas, le caractre de contrle permet de dtecter une erreur.

5/7
8) Un codage cl : le codage Enigma

On prsente ici (de manire trs simplifie) un principe de codage utilis lors de la seconde guerre
mondiale, qui a lavantage de ne pas tre dcod facilement en utilisant le principe de frquence des lettres
vu au dbut de ce cours.
Pour coder un texte, on commence par reprsenter ses lettres par des chiffres. Par exemple A1, B2,
. . ., Z 26. Pour la clart de cet expos on ne considrera que des textes en majuscules, sans ponctuation
sauf des espaces, cods par 0.

Ainsi le texte "J AIME LES MATHS ET JE VIENS AVEC PLAISIR TROIS FOIS PAR SEMAINE EN
COURS", sera reprsent par :
"10 0 1 9 13 5 0 12 5 19 0 13 1 20 8 19 0 5 20 0 10 5 0 22 9 5 14 19 0 1 22 5 3 0 16 12 1 9 19 9 18 0 20 18 15
9 19 0 6 15 9 19 0 16 1 18 0 19 5 13 1 9 14 5 0 5 14 0 3 15 21 18 19".
Cest le message que lon souhaite coder.
On obtient ainsi une suite de chiffres tous compris entre 0 et 26. On peut voir ces chiffres comme des
restes modulo 27.

On considre alors un mot de quelques lettres, la cl du codage. Par exemple le mot "CHAT", que lon
peut encore voir comme une suite de quatre chiffres "3, 8, 1, 20".

On va transformer le texte en utilisant la cl : on ajoute 3 au premier nombre, 8 au second, 1 au troisime,


20 au quatrime, et on recommence : 3 au cinquime, 8 au sixime, . . ., et on ramne tout un reste modulo
27.

Quel est le message cod correspondant la phrase donne plus haut ?

Et quel est le message dcod correspondant la phrase code "20 2 9 10 6 23 8 12 10 14 20 2 9 14 26


3 22 14 5 20 4 2 2 5 3 4 0 9 10 1 23 13 23 9 5 8", si la cl est "CHIEN" ?

Ce codage commence devenir intressant et fiable. Il est difficile casser quand lon ne connat pas la
cl. Mais il repose entirement sur le fait que la cl (dans nos exemples, les mots CHAT et CHIEN...) reste
secrte et connue uniquement des deux interlocuteurs. Si la communication durant laquelle on change cette
cl est intercepte, tous les message deviennent lisibles !

6/7
9) Le codage RSA

A la fin des annes 1970, les mathmaticiens Rivest, Shamir et Adleman ont dcrit un procd " cl
publique", trs simple dcrire et mettre en oeuvre, qui ne ncessite plus de partager lavance une cl qui
doit rester secrte.
En revanche ce procd est asymtrique : la cl permet de coder, mais pas de dcoder le message.

En pratique : Amandine possde deux cls, une cl publique quelle peut donner tout le monde, et une
cl secrte quelle est seule connatre.
Grce la cl publique, Bob peut coder un message, mais seule la cl secrte, connue uniquement
dAmandine, permet de le dcoder.

Lalgorithme est le suivant ;


Amandine fixe deux nombres premiers p et q.
Amandine calcule n = pq.
Amandine choisit deux nombres e et d tels que ed 1 (mod(p1)(q1)).
Amandine transmet Bob le nombre n et le nombre e, la cl publique.
Le message de Bob est un nombre (ou une suite de nombres) infrieur n, appelons le M.
Bob calcule le nombre M e modulo n : cest le message cod C.
Si Amandine calcule C d modulo n, elle retrouve le nombre M. (proprit admise ! !)

Quelquun qui intercepterait la communication et connatrait n et e seulement ne peut rien faire : cest le
nombre d quil faut pour dcoder !

La scurit de ce procd repose sur la difficult extrme de retrouver les nombres premiers p et q
partir de leur produit, quand p et q sont trs grands. Et sans ceux-ci, il semble impossible de trouver un
nombre d tel que ed 1 (mod(p1)(q1)).

Bien entendu, rien ne dit quun jour un mathmaticien ou un ordinateur trs puissant narrivera pas
factoriser le nombre n ; mais pour le moment il semble que ce procd, utilis trs frquemment, par
exemple pour la scurit sur internet, soit fiable.

7/7

Vous aimerez peut-être aussi