Le Codage et le Cryptage

Transcription

Le Codage et le Cryptage
Le Codage et le Cryptage
Introduction
Problématique
« - Comment transmettre des informations bancaires de manière sécurisée ?
- Utilisation du codage, du cryptage RSA et sa réalisation »
Thème
« Information et Communication »
Groupe
Bardey David
Dubois Jonathan
Resin Nicolas
Disciplines
Mathématiques et Sciences de l’ingénieur
Justifications de la problématique
Nous avons choisit cette problématique car la carte bancaire est un outil
utilisé partout. De nos jours, on l’utilise pour acheter dans de nombreux lieux,
allant du supermarché ou un achat sur Internet. Son principe est simple :
envoyer les informations d’un ou plusieurs comptes bancaires pour des payements
ou retraits d’argent. Mais son emploi ne cesse pas d’évoluer : Exemple parfait de
Paypal qui vient de sortir la carte bancaire électronique qui permet de payer avec
son compte Paypal comme si l’on utilisait une carte bancaire. Mais l’intérêt est
surtout la manière de sécuriser les informations transitant avec la carte
bancaire. En effet, cette dernière doit absolument être protégée vu son rôle
important.
L’expérience permet de crypter alors un message (ici une lettre de
l’alphabet) grâce au codage RSA, utilisé par les cartes bancaires. Ce dernier ce
présent sous le format d’un site web donc utilisable par toute personne ayant
accès a Internet.
Première partie : Le codage
Définition
Le codage est un ensemble d’instructions à la source d’un programme
informatique. Il est une suite d’instructions logiques écrites par un informaticien
dans un langage de programmation.
Le codage est l’action qui sert à coder un message afin de le transmettre ou de
le traiter.
I) Les différentes bases
1) La base 2 (ou base binaire)
Le système binaire est le système de numération de position où la base est 2 : il
existe donc deux symboles qui sont 0 et 1. Un tel système est utilisé par les
machines électriques ou électroniques. Il existe un exemple simple et concret
d’une telle numération : le solfège. En effet, 1 ronde=2blanches ; 1 blanche=2
noires ; 1 noire=2 croches ; 1 croche=2 double croches …
Quand on compte en base 2, on multiplie tout simplement par 2 à chaque fois :
1-2-4-8-16-32-64-128-…
2) La base 5 (ou base quinaire)
L’origine de cette base est le comptage sur les 5 doigts de la main. Elle est
encore utilisée chez certaines populations en Inde pour les besoins les plus
courants. On peut compter jusqu’à 30 avec cette base. On compte de 1 à 5 avec
la main gauche, et avec la main droite, on retient 5 avec le pouce ; 10 avec
l’index ; 15 avec le majeur ; 20 avec l’annulaire et 25 avec l’auriculaire.
3) La base 10
C’est la base la plus répandue. On l’utilise actuellement.
La base 10 est le fait de compter de 10 en 10.
4) La base 12 (ou base duodécimale)
Son existence s’explique par le fait qu’à l’aide des quatre doigts d’une main, on
compte 12 phalanges (le pouce sert à compter). On pouvait ainsi compter jusqu’à
144. Nous avons quelques restes de la base 12 : une douzaine(12) et une grosse
(une douzaine de douzaine soit 144) pour compter les huîtres, les œufs et les
ravioles (exemple : quand on achète une grosse de ravioles, on achète 144
ravioles).
Les sumériens (peuple vivant au sud de l’Irak au IVème millénaire av. J.C)
partageaient le jour en douze parties égales (notre découpage en 24h est un
reste de la base 12).
Cette base fut aussi utilisée par les anglo-saxons dans leur système monétaire
jusqu’en 1960 : un « pound » représentait vingt « shilling » et un « shilling »
représentait douze « pence ».
Les anciennes unités de mesure (mesures en rapport avec des parties du corps)
découlent aussi de la base 12 : 1pied=12 pouces, 1 pouce=12lignes et 1
ligne=12points.
La base 12 est encore utilisée en Inde, Indochine, Pakistan, Afghanistan, Egypte,
Syrie, Turquie, Iran, Irak.
5) La base 20 (ou base vicésimale)
Elle a été utilisée chez les mayas et les aztèques. Ils comptaient avec les doigts
des pieds et des mains( soit 20 doigts en tout). Ainsi, 40 était désigné par
« deux vingt » ; 60 par « trois vingt » ; 80 par « quatre vingt ».
Dans notre système de numération, nous avons des restes de la base 20 pour
écrire 80 et 90 par exemple.
6) La base 60 (ou base sexagésimale)
Elle est encore utilisée de nos jours pour les heures (1h=60min, 1min=60s) et les
angles.
L’origine probable est une combinaison des bases 5 et 12: de la main gauche, on
compte de 1 à 12 et de la main droite, on compte de 12 en 12 (12 :pouce,
24 :index, 36 :majeur, 48 :annulaire et 60 : auriculaire). Elle a été utilisée chez
les babyloniens ( peuple se développant en Mésopotamie au IIème millénaire av.
J.C).
II) Le binaire
Définition : le système binaire est un système de numération utilisant la base 2.
On nomme couramment bit les chiffres de la numération binaire. Ceux-ci ne
peuvent pendre que deux valeurs, notées 0 (faux ou fermé) et 1 (vrai ou ouvert).
Il s’agit de la plus petite unité d’information manipulable par une machine
numérique.
Les opérations avec dix chiffres (base 10) serait beaucoup trop lentes à
effectuer par les processeurs d'un PC. C'est pourquoi, en n'utilisant que 2
chiffres (base 2), ils effectuent des calculs très rapidement et très simplement
sur des nombres comportant uniquement des 0 et des 1.
1) Le bit
Le terme bit signifie « binary digit » qui veut dire « chiffre binaire », c'est-àdire 0 ou 1 en numération binaire. Il s’agit de la plus petite unité d’information
manipulable par une machine. Il est possible de représenter physiquement cette
information binaire :
-par un signal électrique ou magnétique, qui, arrivé à un certain seuil,
correspond à la valeur 1
-grâce à des bistables, c'est-à-dire des composants électroniques qui ont
deux états d’équilibre (l’un correspond à l’état 1, l’autre à 0)
Dans un nombre binaire, la valeur d’un bit, appelée poids, dépend de la position du
bit en partant de la droite. A la manière des dizaines, des centaines et des
milliers pour un nombre décimal, le poids d’un bit croît d’une puissance de deux en
allant de la droite vers la gauche comme le montre le tableau suivant :
Nombre binaire
Poids
1
1
7
2 = 128
1
6
2 = 64
1
5
2 = 32
1
4
2 = 16
1
3
2 =8
1
2
2 =4
1
1
2 =2
20 = 1
2) L’octet
L’octet est une unité d’informations composée de 8bits. Il permet par exemple
de stocker un caractère, tels qu’une lettre ou un chiffre.
Ce regroupement de nombres par série de 8 permet une lisibilité plus grande, car
on apprécie en base décimal, le regroupement des nombres par trois pour pouvoir
distinguer les milliers. Par exemple, « 1 256 245 » est plus lisible que
« 1256245 ».
Une unité d’informations composée de 6 bits est généralement appelée mot (en
l’anglais Word)
Une unité d’informations de 32 bits de longueur est appelée mot double (en
anglais double Word, d’où l’appellation Dword)
Pour un octet, le plus petit nombre est 0 (représenté par huit zéros 00000000),
et le plus grand est 255 (représenté par huit chiffres « un » 11111111), ce qui
représente 256 possibilités de valeurs différentes.
Longtemps l'informatique s'est singularisée par l'utilisation de différentes
valeurs pour les unités du système international. Ainsi beaucoup d'informaticiens
ont appris que 1 kilooctet valait 1024 octets, Or, depuis décembre 1998,
l'organisme international IEC( Commission Electrotechnique International :
organisation internationale de normalisation qui élabore et publie des normes
internationales pour tous les appareils électriques) a statué sur la question, Voici
donc les unités standardisées:
Un kilooctet(ko)= 210 octets=1024 octets
Un Mégaoctet(Mo)= 220 octet=1024 ko=1 048 576 octets
Un Gigaoctet(Go)=230 octet=1024 Mo=1 073 741 824 octets
Un Téraoctet(To)=240 octets=1024 Go=1 099 511 627 776 octets
L'IEC a également défini le kilo binaire (kibi), le méga binaire (Mébi), le giga
binaire (Gibi), le téra binaire (Tebi):
Un kibioctet (kio ou kiB) vaut 210 =1024 octets
Un Mébioctet (Mio ou MiB) vaut 220=1 048 576 octets
Un Gibioctet (Gio ou GiB) vaut 230=1 073 741 824 octets
Un Tébioctet (Tio ou TiB) vaut 240=1 099 511 627 776 octets
3) Les différentes conversions possibles
Conversion d'un nombre binaire en octal
On doit grouper les chiffres par 3 et les remplacer par leur équivalent octal.
Exemple: soit le nombre binaire: 100011010001 donne: 100 011 010 001 puis: 4 3 2 1
soit: 4321 en octal.
Conversion d'un nombre binaire en hexadécimal
On doit grouper les chiffres par 4 et les remplacer par leur équivalent
hexadécimal.
Exemple: soit le nombre binaire: 100011010001 donne: 1000 1101 0001 puis: 8 D 1 soit:
8D1 en hexadécimal.
Conversion de nombres octaux et hexadécimaux en nombre binaire
Pour chaque chiffre octal, on doit le remplacer par l'équivalent binaire sur 3
chiffres
Pour chaque chiffre hexadécimal, on doit le remplacer par l'équivalent binaire
sur
4
chiffres.
Exemple: soit le nombre octal: FAD5 donne: F A D 5 puis 1111 1010 1101 0101 soit
1111101011010101 en binaire
Conversion d'un nombre de base quelconque en nombre décimal
On doit multiplier l'équivalent décimal de chaque chiffre par sa valeur
positionnelle puis les additionner
Exemple 1: binaire en décimal.
Valeur
Position
soit
Résultat
1
25
1x32
32 +
1
24
1x16
16 +
0
23
0x8
0+
1
22
1x4
4+
0
21
0x2
0+
1
20
1x1
1 =53
Exemple 2: hexadécimal en décimal:
Valeur
Position
soit
Résultat
A
163
10x4096
40960 +
D
162
13x256
3328 +
3
161
3x16
48 +
B
160
11x1
11 =44347
Conversion d'un nombre décimal en binaire
soit
le
nombre
décimal:
223
1
–
on
divise
successivement
par
2:
223
/
2
=
111
reste
1
111
/
2
=
55
reste
1
55
/
2
=
27
reste
1
27
/
2
=
13
reste
1
13
/
2
=
6
reste
1
6
/
2
=
3
reste
0
3
/
2
=
1
reste
1
1
/
2
=
0
reste
1
2 -on prend les restes en partant du bas pour trouver le chiffre en binaire: ici
223 = 1101 1111
III) L'hexadécimal
Les nombres binaires étant de plus en plus longs, il a fallu introduire une nouvelle
base: la base hexadécimale.
La base hexadécimale consiste à compter sur une base 16, c'est pourquoi au-delà
des 10 premiers chiffres on a décidé d'ajouter les 6 premières lettres: A, B, C,
D, E, F).
Voici les 255 premiers codes ASCII en hexadécimal, octal et binaire:
Voir annexe
Pour convertir un nombre décimal en hexadécimal, il faut le convertir en binaire
puis faire des groupes de 4 bits( rajouter des 0 aux groupes incomplets) puis les
remplacer par son équivalent en hexadécimal.
Exemple: 157 = 10011101 = 1001 1101 = 9 D = 9D en hexadécimal
Pour convertir un nombre en hexadécimal en décimal, il faut multiplier le premier
chiffre en sa valeur décimal par la valeur de sa position dans le tableau et
ajouter le dernier en sa valeur décimal.
Exemple: 9D = 9*16 + 13 ( = D) = 144 + 13 = 157
IV)L'ASCII
Définition : ASCII signifie American Standard6 Code For Information
Interchange. Elle a été inventée par l’américain Bob Bemer en 1961. Elle est la
norme de codage de caractères en informatique la plus connue. C’est également
la variante américaine du codage de caractères ISO/CEI 646(norme qui définie
des codes de caractères graphique codés sur 7bits). Elle contient les caractères
nécessaires pour écrire en anglais. Elle est la base de nombreuses autres normes.
1) Présentation
L'ASCII est défini sur 128 caractères codés en binaire de 0000000 à 1111111.
7bits suffisent donc à représenter l'ASCII. Mais les ordinateurs travaillent sur
8bits.
Les caractères de 0 à 31 ainsi que le 127 ne sont pas affichables. Le caractère
32 est l'espace blanc. Les autres correspondent aux chiffres, aux lettres
majuscules et minuscules et à quelques symboles de ponctuation.
Beaucoup de pages de codes étendent l'ASCII en utilisant le 8ème bit pour
définir des caractères numérotés de 128 à 255. La norme ISO 8859 fournit des
extensions pour diverses langues. Par exemple, l'ISO 8859-1 appelé aussi Latin1, étend l'ASCII avec les caractères accentués utiles aux langues d'Europe
occidentale comme le français.
2)Table ASCII standard
3) Table ASCII étendue
V) La communication en série et en parallèle
1) La communication en série
Définition: En télécommunication et en informatique, la communication série est
l’action d’envoyer des données par bit séquentiellement sur un canal de
communication (média de transmission reliant la source au destinataire) ou un
bus informatique (ensemble des lignes de communications connectant les
différents composants d’un ordinateur).Les communications séries sont utilisées
pour les communications à longue distance, la plupart des réseaux informatiques
car le coût élevé des câbles et des procédés de synchronisation rend impossible
l'utilisation de communications parallèles. Les bus séries d'ordinateurs sont de
nos jours les technologies les plus répandues et évoluées pour des transferts de
données rapides.
L'octet à transmettre est envoyé bit par bit (poids faible en premier) par l'émetteur
sur la ligne Tx, vers le récepteur (ligne Rx) qui le reconstitue
La vitesse de transmission de l'émetteur doit être identique à la vitesse
d'acquisition du récepteur. Ces vitesses sont exprimées en BAUDS (1 baud
correspond à 1 bit / seconde, dans notre cas). Il existe différentes vitesses
normalisées:
9600,
4800,
2400,
1200...
bauds
La communication peut se faire dans les deux sens (duplex), soit émission
d'abord, puis réception ensuite (half-duplex), soit émission et réception
simultanées
(full-duplex)
La transmission étant du type asynchrone (pas d'horloge commune entre
l'émetteur et le récepteur), des bits supplémentaires sont indispensables au
fonctionnement: bit de début de mot (start), bit(s) de fin de mot (stop)
D'autre part, l'utilisation éventuelle d'un bit de parité, permet la détection
d'erreurs dans la transmission.
2) La communication en parallèle
La communication parallèle est différente de la communication série. Elle
transmet plusieurs flux de données simultanés sur de multiples canaux (fil
électrique, piste de circuit imprimé, fibre optique ...) tandis que la communication
série ne transmet qu'un seul flux de donnée sur un même canaux. Malgré ce
faible flux, la communication série a la fréquence d'horloge la plus élevée. La
communication parallèle peut avoir certains problème de transfert:
-problème de décalage d'horloge entre les différents canaux
-plusieurs câbles pour une communication en parallèle, donc un
encombrement
-augmentation des risques de diaphonie(interfaces entre plusieurs canaux)
Deuxième partie :Le cryptage
Définition :
Le cryptage ou chiffrement est le fait de transformer un message clair
noté la plupart du temps m en un message codé noté c. Mais qui est en théorie
seulement compréhensible que par son destinataire qui dispose de la méthode
pour lire le message crypté. Le cryptage est apparu dès l’antiquité avec les
chiffres hébreux que sont l’Atbash, l’Atbah et l’Albam et par le célèbre chiffre
de César. Aux fils des siècles les méthodes se sont perfectionnées pour être de
plus en plus difficile à décrypter. De nos jours le cryptage R.S.A est utilisé pour
la sécurité des cartes bancaires.
I) Pendant l’antiquité
1) Le chiffre affine
Pendant l’antiquité les cryptages qui étaient utilisés étaient pour la plupart
des chiffres affines :
Un chiffre affine est composé d’une fonction de la forme y= ax+b, mais
l’alphabet latin contient 26 lettres donc pour crypter des lettres il faut inclure
la notion de modulo 26 se qui est l’équivalent du reste de la division par 26. Donc
la véritable formule sera y= (ax+b) mod26. Le nombre b doit être compris entre
0 et 25 et a doit être premier avec 26 dons il ne reste que (1 ; 3 ; 5 ; 7 ; 9 ; 11 ;
15 ;17 ; 19 ; 21 ; 23 ; 25).
Lettre
a
b
c
d
e
f
G
h
i
J
K
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
nombre
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Pour chiffré il faut avoir choisis a et b puis une fois la fonction trouvée il
faut prendre x qui est le message clair puis effectué les calcules.
Pour déchiffré il faut trouver la fonction g qui est la fonction inverse de y.
a) Exemple
y=3x+2
Si le message clair est le f alors le nombre correspondant sera le 5 (voir tableau
si dessus.
CHIFFREMENT
Avec : y= 3x+2 et m = 5
Donc : y = 3*5+2
Y = 17
Le message crypté est alors le 17
DECHIFFREMENT
Pour déchiffrer ce chiffre il suffit de trouver la fonction inverse de celle
qui a été utilisé pour chiffrer.
3m+2 = c
3m = c-2
m = c/3-2/3
m = 17/3-2/3
m = 15/3
m=5=f
DECRYPTEMENT
On peut décrypter un chiffre affine de deux manières:
-La première est d’utiliser les fréquences
-La seconde est de tester toutes les fonctions possibles (si les critères ci
dessus sont respectés alors il n’y a que 12*26 = 312 fonctions possible).
b) Chiffres affine célèbres
Le chiffre de César a pour fonction y = x+3
L’Albam qui est un chiffre hébreu a pour fonction y = x+13
2) Les cryptages célèbre de l’antiquité
a) Polybe
Polybe était un historien grec qui vécu environ autour de 200 avant Jésus
Christ est le premier avoir mis en place en chiffrement par substitution.
b) Le carré de Polybe
1
2
3
4
5
1
A
B
C
D
E
2
F
G
H
I
J
3
K
L
M
N
O
4
P
Q
R
S
T
5
U
V
X
Y
Z
Le carré de Polybe ou carré de 25 est un carré composé de 5 lignes et de
5 colonnes numéroté respectivement de 1 à 5. A l’intérieur de ce carré ce
trouvent les lettres de l’alphabet latin.
En France le « W » n’est pas présent il peut être représenté par un « V »
ou par deux à la suite, en Angleterre le « W » est présent mais le « I » et le
« J » sont regroupés dans la même case.
CHIFFREMENT
Pour chiffrer il suffit de remplacer les lettres par leurs coordonnées par
exemple pour crypter le mot S O L E I L ont remplace les lettres par leurs
coordonnées ainsi la lettre « S » devient (4 ; 4) et le mot S O L E I L devient
(4 ; 4) – (3 ; 5) – (3 ; 2) – (1 ; 5) – (2 ; 4) – (3 ; 2).
DECHIFFREMENT
Pour déchiffrer il suffit de prendre les coordonnées et de retrouver la
lettre correspondante ainsi (4 ; 4) devient le « S ».
DECRYPTEMENT
Le décryptement se réalise de la même manière que le déchiffrement car
il n’y a pas de clé qui le protège la seul difficulté pourrait être que la table ne
soit pas la même. A ce moment la méthode des fréquences pourrait très bien
s’appliquer.
c) Les chiffres hébreux
La méthode pour crypter à l’aide des chiffres hébreux est très simple, il
suffit de remplacer les lettres à l’aide des tableaux ci-dessous.
- L’Atbash :
Texte clair
A B C D E F G H I J K L MN O P Q R S T U V WX Y Z
Texte codé
Z Y XWV U T S R Q P O NM L K J I H G F E D C B A
SOLEIL devient HLOVEO
-L’Albam :
Pour crypter l’Albam, l’alphabet est décalé de 13 lettres, c’est aussi une
fonction affine y = (x+13)mod26. L’Albam a été réutilisé en 1984 dans le
programme ROT13
Texte clair
A B C D E F G H I J K L MN O P Q R S T U V WX Y Z
Texte codé
NM O P Q R S T U V WX Y Z A B C D E F G H I J K L
SOLEIL devient EAXQUX
-L’Atbah :
Texte clair
A B C D E F G H I J K L MN O P Q R S T U V WX Y Z
Texte codé
I H G F N D C B A R Q P O E M L K J Z Y XWV U T S
SOLEIL devient ZMPNAP
d) Le chiffre de César
Le chiffre de César fut inventé par le célèbre empereur romain Jules
César qui lui donna son nom. Celui-ci inventa ce cryptage en 58 avant Jésus
Christ mais il fut seulement expliquer 179 ans plus tard dans « la vie des douze
César » de Suétone. Le procédé est extrêmement simple, en effet, il suffit de
décaler l’alphabet de trois lettres vers la droite, ainsi le « A » devient le « D ».
Texte clair
A B C D E F G H I J K L MN O P Q R S T U V WX Y Z
Texte codé
D E F G H I J K L M N O P Q R S T U V WX Y Z A B C
SOLEIL devient VROELO
Maquette du chiffre
De César
II) Au Moyen-Age
1) Les fréquences selon Al Kindi
Al Kindi a vécu au IXéme siècle après Jésus Christ (il est aussi appelé le
philosophe des arabes). L’idée d’utilisation des fréquences lui est venue quand il
authentifiait les textes saints de l’islam. Celui-ci a remarqué que dans tous les
textes, il y a une certaine fréquence des lettres et des syllabes. Ce qui est
également vrai avec l’alphabet latin et les syllabes de la langue française. Grâce à
cette méthode une simple substitution mono alphabétique tel que les chiffres
hébreux ou le chiffre de César (les codages affines) se montrent très simple a
décryptés.
Fréquence des lettres de l’alphabet
Latin dans la langue française
Lettres Fréquence Lettres Fréquence
A
8.40 %
N
7.13 %
B
1.06 %
O
5.26 %
C
3.03 %
P
3.01 %
D
4.18 %
Q
0.99 %
E
17.26 %
R
6.55 %
F
1.12 %
S
8.08 %
G
1.27 %
T
7.07 %
H
0.92 %
U
5.74 %
I
7.34 %
V
1.32 %
J
0.31 %
W
0.04 %
K
0.05 %
X
0.45 %
L
6.01 %
Y
0.30 %
M
2.96 %
Z
0.12 %
2) Le Pig Pen
Le Pig Pen qui se traduit en français par « parc à cochon » est un chiffre
de substitution qui a évolué pendant des siècles. Il y a trois formes qui sont les
plus célèbres :
-L’alphabet des templiers
Cet alphabet est basé sur la croix de huit béatitudes qui était l’emblème
de l’ordre. Ce cryptage a été mis en place pour faire circuler les lettres des
crédits entre les différentes commanderies en toute sécurité.
-L’alphabet de « la buse » :
La buse (Olivier Levasseur) a dit le jour de sa pendaison que celui qui
arriverait à comprendre son message trouverait son trésor.
Selon Charles de la Roncière ( ex : conservateur de la bibliothèque national
française ) la variante du Pig Pen, qui aurait été utilisé, serait la suivante.
-L’alphabet des francs maçons :
L’alphabet des francs maçons est une variante du Pig Pen qui a été utilisé
au début du XIXéme siècle.
III) A la Renaissance
1) Le tableau de Trithème
Ce cryptage est considéré comme un des premiers chiffres poly
alphabétiques. Ce tableau est composé de 24 colonnes et lignes (les lettres
« J et V » ne sont pas représentées.
Le tableau ci-dessous en revient au chiffre de trithème car c’est une suite de
décalage (chiffre de César) Car la première n’est pas décalée, la seconde est
décalée d’un rang et ainsi jusqu’à la fin du mot.
Message clair
Décalage
Message chiffré
C
0
C
R
1
S
Y
2
W
P
3
S
T
4
W
O
5
T
G
6
N
R
7
W
A
8
I
P
9
W
H
10
S
I
11
U
2) Le chiffre de vigenère
a) Le chiffre
Ce chiffre fut inventé par Blaise de Vigenère diplomate français vers
1560. C’est un des premiers cryptages qui utilise une clé privée pour chiffrer un
texte. Pour chiffrer avec cette méthode il faut utilisé la table de Vigenère qui
est semblable a celle de Trithème la différence entre ces deux tables est que
dans celle de Vigenère toute les lettres de l’alphabet latin sont représenté et
dans le bonne ordre.
b) Méthode
Pour chiffrer
Pour déchiffrer
c) Exemple
Clair
Clef
chiffré
C
S
U
R
O
F
Y
L
J
P
E
T
T
I
B
O
L
Z
G
S
Y
R
O
F
A
L
M
P
E
T
H
I
P
I
L
T
E
S
W
E
12
R
Lettre en clair
A B C D E F G H I J K L M N O P Q R S T U V WX Y Z
A A B C D E F G H I J K L M N O P Q R S T U V WX Y Z
B B C D E F G H I J K L M N O P Q R S T U V WX Y Z A
C C D E F G H I J K L M N O P Q R S T U V WX Y Z A B
D D E F G H I J K L M N O P Q R S T U V WX Y Z A B C
E E F G H I J K L M N O P Q R S T U V WX Y Z A B C D
F F G H I J K L M N O P Q R S T U V WX Y Z A B C D E
G G H I J K L M N O P Q R S T U V WX Y Z A B C D E F
H H I J K L M N O P Q R S T U V WX Y Z A B C D E F G L
I I J K L M N O P Q R S T U V WX Y Z A B C D E F G H e
J J K L M N O P Q R S T U V WX Y Z A B C D E F G H I t
K K L M N O P Q R S T U V WX Y Z A B C D E F G H I J t
C L L M N O P Q R S T U V WX Y Z A B C D E F G H I J K r
l M M N O P Q R S T U V WX Y Z A B C D E F G H I J K L e
é N N O P Q R S T U V WX Y Z A B C D E F G H I J K L M
O O P Q R S T U V WX Y Z A B C D E F G H I J K L M N C
U P P Q R S T U V WX Y Z A B C D E F G H I J K L M N O o
t Q Q R S T U V WX Y Z A B C D E F G H I J K L M N O P d
i
R R S T U V WX Y Z A B C D E F G H I J K L M N O P Q é
l
S S T U V WX Y Z A B C D E F G H I J K L M N O P Q R e
i
T T U V WX Y Z A B C D E F G H I J K L M N O P Q R S
s
U U V WX Y Z A B C D E F G H I J K L M N O P Q R S T
é
V V WX Y Z A B C D E F G H I J K L M N O P Q R S T U
e
WWX Y Z A B C D E F G H I J K L M N O P Q R S T U V
X X Y Z A B C D E F G H I J K L MN O P Q R S T U V W
Y Y Z A B C D E F G H I J K L M N O P Q R S T U V WX
Z Z A B C D E F G H I J K L M N O P Q R S T U V WX Y
Chiffré
Clef
Clair
U
S
C
F
O
R
J
L
Y
T
E
P
B
I
T
Z
L
O
Y
S
G
F
O
R
L
L
A
T
E
P
P
I
H
T
L
I
W
S
E
IV) R.S.A
Le code Rsa fut inventé en 1978 par Ron RIVEST, Adi SHAMIR et
Léonard ADLEMAN. Ce chiffrement est essentiellement utilisé dans la
protection de carte bancaire il sert aussi pour les transaction d’argent sur
internet. Aujourd’hui il est considéré comme le chiffre a clé publique le plus sure
au monde, cette sécurité est notamment dut à la difficulté de factoriser de
grands nombres premiers.
1) Méthode de fonctionnement et terminologie
m est le message en clair
c est le message crypté
(e ;n) est la clé publique
p et q sont deux nombres premiers
n est le produit de p et de q
(d ;n) est la clé privée
φ(n) = (p-1)*(q-1)
e doit être premier et être compris entre le plus petit nombre premier entre p
et q et entre φ(n)
p ou q < e > φ(n)
d – est tel que le reste de la divisions de ed par φ(n) soit égale a 1
- est différent de
Pour chiffrer on calcul m^e puis c est le reste de la division de m^e par n
Pour déchiffrer on calcul c^d puis m est le reste de la division de c^d par n
2) Exemple
Si :
p=2
q =7
n = 2*7 = 14
φ(n) = (2-1)*(7-1) = 1*6 = 6
2 < 5 < 7 donc e = 5
On peut calculer le nombre d avec cette méthode :
ed = 1
ed = 1 + 6 soit φ(n)
ed = 7
r est le reste de ed par e soit 7 / 5
+ φ(n)
soit + 6
ici r
0 ou = a e
7/5ar=2
donc 7 + 6 / 5 a r = 3
donc 13 + 6 / 5 a r = 2
donc 19 + 6 / 5 a r = 0 mais égale a e soit 5
donc 25 + 6 / 5 a r = 1
donc 31 +6 / 5 a r = 2
donc 37 + 6 / 5 a r = 3
donc 43 + 6 / 5 a r = 4
donc 49 + 6 / 5 a r = 0 et est différent de e donc d est égale à d = 11
la clé publique est ( e, n) soit (5, 11)
la clé privée est (d, n) soit (11, 6)
CHIFFREMENT
Supposons que m soit égale à 5
- on calcule d’abord m^e
- puis c est égale au reste de la division de m^e par e
m^e = 11^5 = 161051
le r de 161051 par 14 est égale à 9
donc c =
DECHIFFREMENT
-
on calcule 9^11
le message décrypté est égale au reste de c^d par n
c^d = 9^11 = 31381059609
le r de 31381059609 par 14 est égale 11
le message décrypté est égale à 11
Le message décrypté est bien égale à m = 11
DECRYPTEMENT
Pour décrypter R.S.A il suffit de factoriser le nombre n en deux facteurs
de nombre premier. Mais cela reste une grande difficulté c’est pour cela que le
chiffre R.S.A est un chiffre les plus sur au monde.
V) La Carte Bancaire
1) Carte bancaire et R.S.A
En 1984, la GIE (groupement interbancaire) a décidé de protéger les
cartes bancaires.
Lorsque qu’une personne demande à sa banque une carte bancaire, celle-ci
envoie des informations à la GIE où cette dernière produit deux nombres I et J.
Le nombre I est le nombre de 16 chiffres écrit sur la carte, Le nombre J est
créé à l’aide d’une clé secrète.
2) La carte à puce
La carte à puce fut inventée en 1970 par deux ingénieurs français : Roland
Moreno et Michel Ugon. Une carte à puce est un petit ordinateur qui permet
d’effectuer des calculs et, pour les cartes bancaires, de mémoriser la somme de
la transaction ainsi que sa date.
3) En pratique
Lorsque qu’une personne va chez un commerçant agréé, celui-ci insert sa
carte dans le terminal. Ensuite se produit la phase d’authentification où les
nombres I et J sont lus par le terminal et où il vérifie que ces deux nombres
correspondent (si c’est une somme importante alors le terminale contact un
serveur général ou celui-ci vérifie qu’il n’y a pas d’interdit bancaire ou
d’opposition ).
Ensuite, le client doit saisir son code PIN (Personnal Identifer Number).
Ce code est composé de quatre chiffres. Celui-ci sert à vérifier le porteur de la
carte. Une fois ce dernier saisit, la puce vérifie son exactitude. Si celle-ci reçoit
trois PIN incorrects consécutivement, la puce se fige et la carte devient
inutilisable. Si le PIN est exact, le paiement est accepté.
4) Les faiblesses de ce code
En 1997, Serge HUMPICH a réussis à casser RSA en factorisant le
nombre n de 96 chiffres en deux produits de facteurs de nombre premier à
l’aide du logiciel de calcul Maple. Ainsi, il fabriqua les « yescard ». Il invente un
nombre I et lui fait correspondre un nombre J. Elles ont été appelé ainsi car la
puce répond oui à n’importe quel code PIN.
Une fois sa découverte mise au point, Serge HUMPICH contacta la GIE et
leur proposa de vendre sa découverte. Cette dernière lui répondit d’acheter dix
carnets de ticket de métro auprès d’un distributeur de la RATP pour prouver sa
théorie. Mais elle découvre qui il est et ainsi Serge HUMPICH fut condamné à 10
mois de prison. Suite à cela, la GIE est passée à un nombre n de 232 chiffres qui
est toujours utilisé actuellement.
Le nombre n que serge Humpich a réussit à casser est :
213598703592091008239502270499962879705109534182641740644252416
500853957746445088405009430865999
Celui-ci est composé de 96 chiffres
Le nombre utilisé actuellement est :
15508808027837692984239215007513078784710202152067111027931119901
13875394553459999757605304671735856091597555389797408938173344
04367470478098639006990667909672893308140504493596951450867623
994249344075050589270015739962374529363251827
Celui-ci est composé 232 chiffres
5) Le logiciel geZerolee
En 2001 un logiciel est lancé par un pirate (géoli). Ce logiciel a pour but de
suivre un lapin blanc qui nous apprends a cloné les cartes bancaires. La faille
trouvée par les pirates est de copier une carte déjà existante. Quand la carte
est insérée dans le terminal les nombre I et J sont échangés avant que le
propriétaire de la carte n’est saisit son code PIN alors il suffit au pirate de
reproduire ces deux nombres et la carte est alors clonée.
Page d’accueil du logiciel de clonage de carte bancaire
VI) Conclusions
Au fil du temps le cryptage a beaucoup évolué et il devient de plus en plus
sûr, il existe un certain nombre de faille quelle soit mathématiques (Serge
HUMPICH) ou simplement très astucieuses (le logiciel geZerolee).Mais dans
l’ensemble les cartes bancaires sont très bien protégées.
Troisième partie : Expérimentation
Présentation
L’expérimentation utilise le cryptage RSA, utilisé pour les sécurités des cartes
bancaires qui a l’avantage d’être un codage que l’on peut étudier en première. Le
projet du TPE répond donc a la condition d’être pluridisciplinaire et est
précisément composé de Mathématiques pour les opérations effectuées pour le
cryptage – décryptage et de Sciences de l’ingénieur pour la partie informatique
de la réalisation. L’expérience est un site Internet codé en Php, xHTML, CSS qui
ont chacun leur rôle dans la programmation. Le Php pour la partie calcul et
automatisme, le xHTML pour sa structure et le CSS pour son aspect graphique.
Il se compose d’une seule page qui contient toutes les étapes pour définir ses
clés et coder une ou plusieurs lettres
Ecran d’ouverture
Fonctionnement
I Description
Le site s’ouvre avec une bannière et sur la description du projet avec des
références sur le sujet, sa problématique, des informations sur le codage RSA
fournis par Wikipédia, une encyclopédie libre ce qui permet à tout le monde d’y
participer.
Voir la capture précédente
II Définition des clés
Etape 1
Il faut choisir deux nombres premiers p et q et ainsi les envoyer au serveur.
Ce dernier va alors nous renvoyer la valeur de phi de n et n
Etape 1 II
Etape 2
On doit alors insérer dans les champs la valeur de phi de n et du nombre e. Il
faut faire attention à l’avertissement car cela faussera les calculs. Il faut aussi
donner le nombre n au serveur. Il va alors renvoyer la clé publique, ex (7, 65)
Etape 2 II
III Cryptage
Etape 1
Choisir une lettre de l’alphabet et lire son code dans le tableau. Entrez le, ainsi
que votre clé public (e, n)
Etape 1 III
Etape 2
Le code lettre en RSA est renvoyé. Il ne reste plus qu’à en faire ce que l’on veut.
Ex : Faire toutes les lettres et enregistrer le code dans un fichier à part.
Clé public : (7, 65)
Lettre
Code RSA
B
63
C
42
D
4
E
60