Sie sind auf Seite 1von 249

Sécurité des réseaux mobiles

Pr. A. Farchane
Faculté polydisciplinaire
-Beni Mellal-
Introduction
Canal non sécurisé
Alice Bob

OSCAR

• Problème de confidentialité, d’intégrité et


d’authentification
09:39 2
Les buts de la cryptographie
Elle doit satisfaire plusieurs fonctions :
– La confidentialité

– L’authentification

– L’intégrité

– La non répudiation

09:39 3
Les buts de la cryptographie
La confidentialité
– Il s’agit de garantir le secret de
l’information transmise ou archivée.
– Seuls les utilisateurs autorisés doivent y
avoir accès.

09:39 4
Les buts de la cryptographie
L’authentification:
– l’émetteur est sûr de l’identité du destinataire c’est à
dire que seul le destinataire pourra prendre
connaissance du message car il est le seul à disposer
de la clef de déchiffrement.

– le destinataire est sûr de l’identité de l’émetteur

– L’authentification Consiste à vérifier qu’une


personne possède bien l’identité, ou les droits,
qu’elle affirme avoir.
09:39 5
Les buts de la cryptographie
L’intégrité
– Il s’agit de préserver les informations contre
les modifications.
– "L’intégrité est la prévention d’une modification
non autorisée de l’information "
– Avec les techniques actuelles, cette fonction
est réalisée par la signature numérique.

09:39 6
Les buts de la cryptographie
La non répudiation
– Impossibilité, pour une personne ou pour toute
autre entité engagée dans une communication par
voie informatique, de nier avoir reçu ou émis un
message.

– Les algorithmes asymétriques assurent la non-


répudiation d'un message signé dans la mesure où
seul l'expéditeur possède la clé secrète utilisée
pour cette signature.
09:39 7
Terminologie
• La cryptologie est la science du secret. Elle se
divise en deux disciplines :
– La cryptographie qui est l’étude des algorithmes
permettant de protéger de l’information. Ces
algorithmes sont appelés cryptosystèmes ;

– la cryptanalyse qui est l’étude du niveau de


sécurité des cryptosystèmes fournis par les
cryptographes.

09:39 8
Terminologie
• Chiffrer : l’action de rendre un message en clair M
(plaintext) en un message illisible C appelé
(ciphertext) cryptogramme ou message chiffré.

• Déchiffrer : Action inverse du chiffrement.

• Cryptosystème : L’algorithme (ou le dispositif


physique) permettant de chiffrer des données.

• Attaquer, Casser : Mettre à mal la sécurité d’un


cryptosystème (retrouver M à partir de C sans
connaitre la clé, retrouver la clé).
09:39 9
Terminologie
• Message en clair/ message chiffré(cryptogramme)

• Chiffrer /déchiffrer: avec une clé= action autorisée,

• Décrypter: sans la clé= action illégale!

• Algorithme: description non-ambiguë d’une méthode


de résolution d’un problème.

• Protocole: description non-ambiguë d’une suite


d’interactions entre plusieurs participants.

09:39 10
Terminologie
• Il existe 2 types de chiffrement:
– Le chiffrement symétrique (ou chiffrement à clé
privée) consiste à utiliser la même clé pour le
chiffrement et le déchiffrement.

09:39 11
Terminologie
– Le chiffrement asymétrique (ou chiffrement à clés
publiques) consiste à utiliser une clé publique
pour le chiffrement et une clé privée pour le
déchiffrement.

09:39 12
Cryptographie classique
Quelques cryptosystèmes classiques
• Chiffrement par substitution
– Substitution monoalphabétique
• Chiffre de César
• Chiffre affine
– Substitution polyalphabétique
• Chiffre de Vigenère
• Chiffre de Vernam
– Substitution polygrammes
• Chiffre de Playfair
• Chiffrement par transposition
– Transposition simple par colonnes
– Transposition complexe par colonnes

09:39 14
Chiffrement par substitution
Définition:
• Le chiffrement par substitution consiste à
remplacer dans un message une ou plusieurs
entités (généralement des lettres) par une ou
plusieurs autres entités.

• Toutes les substitutions simples sont


vulnérables à une analyse des fréquences
d'apparition des lettres.
09:39 15
Chiffrement par substitution
Chiffre de César:
• Substituer chaque lettre du message en clair par
une autre située à distance fixe dans l’alphabet.
Cette distance devait être connue de l’expéditeur
comme du destinataire.
• décalage de trois lettres :

09:39 16
Chiffrement par substitution
Chiffrement de César:
• Principe :
– Soit p (c, respec.) l’indice de la lettre du message en
clair(chiffré,respec.) et k le décalage (la clé: k=3):

– Chiffrement : c = Ek(p) = (p + k) mod 26

– Déchiffrement : p = Dk(c) = (c - k) mod 26

09:39 17
Chiffrement par substitution
Chiffrement de César:
• Exemple :
– Chiffrez le message « bonjour tout le monde » en
utilisant le cryptosystème de César(k=3).
– ERQMR XUWRX WOHPR QGH
– Déchiffrez le message : «FKLII UHGHF HVDU »
– Chiffre de Cesar
– Décryptez le message chiffré suivant:
– c= HMNKK WJIJH JXFW
– CHIFFRE DE CESAR
– Donnez la clef de chiffrement
k=5
09:39 18
Chiffrement par substitution
Chiffrement de César:
• L’espace de clés est:|K|=26.

• Cette méthode est vulnérable aux attaques de


type:
– Analyse de fréquences
– Force brute (26 clés possibles !)

• Analyse fréquentielle:
Le principe de cette cryptanalyse consiste à deviner les
lettres d’un texte clair sur la base de leur fréquence
d’apparition
09:39 19
Chiffrement par substitution
Analyse fréquentielle:
• Fréquences d'apparition des lettres(français)

• Analyse des fréquences des lettres : A et E sont les


plus fréquentes en français, le moins fréquent est W.

• Cette technique ne fonctionne bien que si le


message chiffré est suffisamment long pour avoir
des moyennes significatives.
09:39 20
Chiffrement par substitution

Analyse fréquentielle(di/tri-grammes):

• Digrammes les plus utilisés


en langue française : ES, LE,
EN …
• Trigrammes : ENT, LES, EDE…

09:39 21
Chiffrement par substitution
Le chiffrement affine:
• L'idée est d'utiliser comme fonction de chiffrement
une fonction affine du type y=(k1.x+k2) mod 26, où
k1 et k2 sont des constantes, et où x et y sont des
nombres correspondant aux lettres de l'alphabet
(A=0,B=1,…,Z=25).

• On peut remarquer que si k1=1, alors on retrouve


le chiffre de César et k2 est le décalage.
09:39 22
Chiffrement par substitution
Le chiffre affine: fonctionnement
• „message M=m1m2…mn-1mn
• Clé : (k1, k2), k1,k2 ∈ {0,25} et pgcd(k1,26)=1
• Chiffrement:
ci= f(mi) = k1*mi + k2 mod 26
• „Déchiffrement :
mi= f-1(ci) = k1-1*(ci–k2) mod 26
• „Nombres de clés possibles : 12*26 = 312
09:39 23
Chiffrement par substitution
Le chiffre affine:
• Exemple:
– „Clé = (k1, k2) = (3, 11)
– Chiffrement :
ci= f(mi) = 3 * mi + 11 mod 26

– Déchiffrement :
k1-1 = 3-1 mod 26 = 9 car 3 * 9 mod 26 = 1
mi= f-1(ci) = 9 * (ci– 11) mod 26
09:39 24
Chiffrement par substitution
Cryptanalyse: chiffre affine
• message chiffré : HGAHY RAEFT GAGRH
DGAGM OEHIY RAAOT ZGAGJ GKFDG AZGSB
INNTG KGRHE NNIRG
• Sachant que le message a été chiffré par le
chiffre affine, trouvez le message en clair.

09:39 25
Chiffrement par substitution
Cryptanalyse: chiffre affine
• Solution:
– On remarque que G apparait 12 fois et A 8 fois.

– E, A, S, I sont les lettres les plus fréquentes, donc E  G et


SA

– Trouver (k1; k2) : 4k1 + k2 = 6 mod26 et


18k1 + k2 = 0 mod26 14k1=-6 mod26
7k1=10 mod 13 k1=7 et k2=4.

– Le message déchiffré est: TESTONS A PRESENT LES EQUATIONS SUR


DES EXEMPLES DE CHIFFREMENT AFFINE

09:39 26
Substitution par permutation
• P=C=Z26
• |K|=26!
• Soit п une permutation:
– Soit x c P, ek(x)=п(x)=y, dk(y)=п-1(y)=x
• Exemple:

– X=« ce texte est chiffre par substitution »


– Y=« yv pvfpv vqp yaihhjv rdj qexqpipepics »
09:39 27
Chiffrement par substitution
Subst. polyalphabétique: chiffre de Vigenère
• Le chiffre de Vigenère est une amélioration
décisive du chiffre de César.

• Sa force réside dans le fait que ce chiffre


utilise une clef qui définit le décalage pour
chaque lettre du message.

09:39 28
Chiffrement par substitution
Exemple: Chiffrement de Vigenère
chiffrons le texte "CHIFFRE DE VIGENERE" avec
la clef "FPBM" (cette clef est éventuellement
répétée plusieurs fois pour être aussi longue
que le texte en clair).
clair c h i f f r e d e v i g e n e r e
clef f p b m f p b m f p b m f p b m f
décalage 5 15 1 12 5 15 1 12 5 15 1 12 5 15 1 12 5
chiffré h w j r k g f p j k j s j c f d j

09:39 29
Chiffrement par substitution
Carré de Vigenère

 La lettre de la clef est dans la colonne la plus à gauche,


 la lettre du message clair est dans la ligne tout en haut.
 La lettre chiffrée est à l’intersection des deux.
09:39 30
Chiffrement par substitution
La grande force du chiffre de Vigenère est que
la même lettre sera chiffrée de différentes
manières d’où perte de la fréquence des
lettres, ce qui rend inutilisable l’analyse de
fréquence classique.

Perte de la fréquence des lettres


09:39 31
Chiffrement par substitution

Chiffre de Vernam ( One-Time Pad)


• „Masque jetable = chiffre de Vigenère avec
comme caractéristique que la clef de chiffrement
a la même longueur que le message en clair.
• Exemple :
– Message clair: Masque jetable
– Clef : xcaatelprvgzc

09:39 32
Chiffrement par substitution
Chiffrement de Vernam ( One-Time Pad)
• „Méthode du masque jetable, Il faut :
1. Choisir une clef aussi longue que le texte à
chiffrer,
2. Utiliser une clef formée d'une suite de caractères
aléatoires,
3. Protéger votre clef,
4. Ne jamais réutiliser une clef,
5. Écrire des textes clairs ne contenant que les
lettres (sans ponctuation et sans espaces).
09:39 33
Chiffrement par substitution
Difficultés du chiffrement de Vernam:
• Le problème de ce système est de communiquer
les clefs de chiffrement ou de trouver un
algorithme de génération de clef commun aux
deux partenaires :
1. La création de grandes quantités des clefs aléatoires :
n'importe quel système fortement utilisé pourrait
exiger des millions de caractères aléatoires de façon
régulière.
2. La distribution des clés : une clé de longueur égale
est nécessaire pour l’expéditeur et pour le récepteur.
Nécessite une bonne organisation.
09:39 34
Chiffrement par substitution
Chiffre polygrammique: Le chiffre Playfair:
• Le chiffre de Playfair utilise un tableau de 5×5 lettres,
contenant un mot clé.
• La mémorisation du mot clé et de 4 règles à suivre
suffisent pour utiliser ce chiffrement.
• Remplir le tableau avec les lettres du mot clé (en
ignorant les doublons), puis le compléter avec les
autres lettres de l'alphabet dans l'ordre.
• W exclu car inutile, on utilise V à la place
• La variante anglaise consiste à garder le W et à
fusionner I et J.

09:39 35
Chiffrement par substitution
• Pour chiffrer un message, il faut prendre les lettres 2
par 2 et appliquer les règles suivantes en fonction de la
position des lettres dans la table :
1. si les 2 lettres sont identiques (ou s'il n'en reste qu'une)
mettre un 'X' après la première lettre. Chiffrer la nouvelle
paire ainsi constituée et continuer avec la suivante.
2. si les lettres se trouvent sur la même ligne de la table, il
faut les remplacer par celles se trouvant immédiatement
à leur droite (en bouclant sur la gauche si le bord est
atteint),
3. si les lettres apparaissent sur la même colonne, les
remplacer par celles qui sont juste en dessous (en
bouclant par le haut si le bas de la table est atteint),
4. sinon, remplacer les lettres par celles se trouvant sur la
même ligne, mais dans le coin opposé du rectangle défini
par la paire originale.
09:39 36
Chiffrement par substitution
• Pour chiffrer le digramme 'OR' par exemple, trois
configurations peuvent se présenter dans le tableau :

09:39 37
Chiffrement par substitution
Pour déchiffrer:
• utiliser la méthode inverse en prenant les
lettres à gauche dans le cas d'une même ligne,
vers le haut dans le cas d'une même colonne,
et toujours les coins opposés dans le cas d'un
rectangle.
• Ignorer les 'X' qui n'ont pas leur place dans le
message final.

09:39 38
Chiffrement par substitution
• Exemple
• En supposant que la clé soit « exemple playfair »,
remplissez le tableau:
E X M P L
A Y F I R
B C D G H
J K N O Q
S T U V Z
• Chiffrez le message « Cache l'or dans la souche de
l'arbre » :
• soit
BY DB XE QI BF JU ER VJ TD BL BM ER AH AL
09:39 39
Chiffrement par substitution
• Ce chiffrement est significativement plus dur à
casser car les attaques par analyse fréquentielle
habituellement utilisées sur les chiffrements par
substitutions simples sont peu efficaces sur lui.
• L'analyse de fréquence des digrammes reste
toujours possible, mais appliquée à 252 = 625
digrammes possibles au lieu des 26 lettres de
l'alphabet, elle est considérablement plus difficile
et exige un texte chiffré beaucoup plus long pour
espérer être efficace.

09:39 40
Chiffrement par transposition
Définition:
• Les méthodes de chiffrement par transposition
consistent à réarranger les données à chiffrer de telle
façon à les rendre incompréhensibles. Il s'agit
généralement de réarranger géométriquement les
données pour les rendre visuellement inexploitables.
• Transposition simple par colonnes :
– On écrit le message horizontalement dans une matrice
prédéfinie, et on trouve le texte à chiffrer en lisant la grille
verticalement .
– Le destinataire légal pour déchiffrer le message réalise le
procédé inverse.
09:39 41
Chiffrement par transposition
Transposition simple par colonnes :
• Exemple:
– texte à chiffrer= «faculte polydisciplinaire de beni mellal»
en utilisant une matrice 6x6.

f a c u l t
e p o l y d
i s c i p l
i n a i r e
d e b e n i
m e l l a l
– Soit
Feiidm apsnee cocabl uliiel lyprna tdleil
09:39 42
Chiffrement par transposition
Transposition complexe par colonnes :
– Une clé secrète (avec uniquement des caractères ) est
utilisé pour dériver une séquence de chiffres
commençant à 1 et finissant au nombre de lettres de
la clé.

– Cette séquence est obtenue en numérotant les lettres


de la clé en partant de la gauche vers la droite et en
donnant l’ordre d’apparition dans l’alphabet.

– On chiffre en écrivant d’abord le message par lignes


dans un rectangle , puis on lit le texte par colonnes en
suivant l’ordre déterminé par la séquence(clef).
09:39 43
Chiffrement par transposition
Transposition complexe par colonnes :
– Exemple:
– Prenons l'exemple la clef : DELIVRANCE

– on souhaite chiffrer : "VENEZ NOUS AIDER AU


PORT DE BREST" :

– OPT SRY VID EDE ATZ ERR NEB UOX NUS ZAE
09:39 44
Chiffrement par transposition
Transposition complexe par colonnes :
• Exemple:
– voici un message déjà chiffré, VTGURX SDEAEM
SCYRRS UCEOEE ZPAEYS par la clef DELIVRANCE.
– Déchiffrez le message ci-dessus.

– Solution: Saurez vous décrypter ce message

09:39 45
Cryptanalyse
• Deux grands types d'attaques en cryptographie:
– Attaques passives
– Attaques actives

• Dans une attaque passive, l’opposant (Oscar) se


contente d'écouter les messages qui transitent sur
le canal de communication.
– Menace sur la confidentialité

• Dans une attaque active, l’opposant modifie le


contenu des messages échangés sur le canal de
communication.
– Menace sur l’intégrité et l’authentification
09:39 46
Cryptanalyse
les attaques potentielles les plus connues :
• Attaque à texte chiffré connu (Attaque par
répertoire)
• Attaque à texte clair connu

• Attaque à texte clair choisi (Attaque par


dictionnaire )
• Attaque à texte chiffré choisi

• Attaque par recherche exhaustive


• Etc.
09:39 47
L'attaque à texte chiffré connu
seulement
• Le cryptanalyste dispose du texte chiffré de
plusieurs messages, tous ayant été chiffrés
avec le même algorithme.
• Sa tâche est de retrouver le plus grand
nombre de messages clairs possibles, ou
mieux encore de retrouver la ou les clefs qui
ont été utilisées, ce qui permettrait de
déchiffrer d'autres messages chiffrés avec ces
mêmes clefs

09:39 48
L'attaque à texte clair connu
• Le cryptanalyste a non seulement accès aux
textes chiffrés de plusieurs messages, mais
aussi aux textes clairs correspondants.

• La tâche est de retrouver la ou les clefs qui ont


été utilisées pour chiffrer ces messages ou un
algorithme qui permet de déchiffrer d'autres
messages chiffrés avec ces mêmes clefs.

09:39 49
L'attaque à texte clair choisi
• Le cryptanalyste a non seulement accès aux
textes chiffrés et aux textes clairs
correspondants, mais de plus il peut choisir les
textes en clair.
• Cette attaque est plus efficace que l'attaque à
texte clair connu, car le cryptanalyste peut
choisir des textes en clair spécifiques qui
donneront plus d'informations sur la clef.

09:39 50
L'attaque à texte chiffré choisi
• Le cryptanalyste peut choisir différents textes
chiffrés à déchiffrer.
• Les textes déchiffrés lui sont alors fournis.
• Par exemple, le cryptanalyste a un dispositif
qui ne peut être désassemblé et qui fait du
déchiffrement automatique. Sa tâche est de
retrouver la clef.

09:39 51
Cryptanalyse des substitutions
polyalphabétique
Substitutions polyalphabétique

• Si on connaît la longueur de la clé n


– On réarrange le cryptogramme en n groupes de lettres
– On applique l’analyse statistique classique sur chaque
groupe

• Si on ne connaît pas la longueur de la clé


– On cherche à la découvrir!
– On applique l’analyse statistique classique sur chaque
groupe
09:39 52
Indice de coïncidence
• Indice de coïncidence est utilisé pour déterminer la
longueur de la clé dans un chiffrement de Vigenère.

• Ce concept fut mis au point par le cryptologue américain W.


Friedman qui le publia en 1920,

Principe:
• Dans un texte quelconque de n lettres, on compte le
nombre de répétition de chaque lettre :
– NA= nombre de A dans le texte
– NB = nombre de B dans le texte
– …….
– NZ = nombre de Z dans le texte
• On calcul l’Indice de coïncidence simplement par la formule:
N A ( N A 1)  N B ( N B 1) ...  N Z ( N Z 1)
IC =
09:39
IC  N ( N 1) 53
Indice de coïncidence
Exemple:
• calculons l’indice de coïncidence du texte :
Un enfant n’a pas d’aversion pour la laideur de
sa mère

• le nombre de lettres dans cette phrase est


n=43, le nombre de a est 7, le nombre de b et
de c est 0, le nombre de d est 3, etc. L’indice de
coïncidence est donc
(7  6)  0  0  (3  2)  . . .
IC   0, 070
09:39 43  42 54
Indice de coïncidence
• Observations sur l’indice de coïncidence
– Exemples d'indices calculés sur des textes dans
différentes langues:

– l’indice de coïncidence moyen d’un texte aléatoire


ICa=0,038.

– Pour tout chiffre mono-alphabétique, l’indice de


coïncidence est le même pour le texte chiffré que
pour le texte clair.
09:39 55
Indice de coïncidence
• Test de Friedman
– On peut utiliser l’indice de coïncidence pour
déterminer la longueur de la clé dans un texte chiffré
selon le chiffre de Vigenère.

– on calcule l’indice de coïncidence de chacun des sous-


ensembles de lettres suivants du texte chiffré:
1. l’ensemble de toutes les lettres du texte
2. l’ensemble des lettres en position 1,3, 5, . . ., dans le texte
3. l’ensemble des lettres en position 1,4, 7, . . ., dans le texte

k. l’ensemble des lettres en position 1,k + 1, 2k + 1, . . ., dans le
texte

09:39 56
Indice de coïncidence
• Test de Friedman
– Si l’ensemble, considéré à la k-ième étape, est celui
pour lequel l’indice de coïncidence est le plus
élevé, alors on choisit k comme longueur de la clé.
• trouver la longueur du mot-clé du texte:
YTTFT CTMUG FEJCU XFRSK UIBZF AZEJH VDQTD
TNUGD JBFZY SFHNV OQWT

• on calcule les indices de coïncidence pour les


différents sous-ensembles correspondant à
chaque étapes:
09:39 57
Indice de coïncidence
• M=TESTONS A PRESENT LA CRYPTANALYSE SUR LE CHIFFREMENT DE VIGNERE

• Intervalle de 1: YTTFT CTMUG FEJCU XFRSK UIBZF AZEJH


VDQTD TNUGD JBFZY SFHNV OQWT

• Intervalle de 2: YTTTU FJUFS UBFZJ VQDNG JFYFN OW et


TFCMG ECXRK IZAEH DTTUD BZSHV QT

• Intervalle de 3: YFTGJ XSIFE VTNDF SNQ, TTMFC FKBAJ


DDUJZ FVW et TCUEU RUZZH QTGBY HOT

• Intervalle de 4: YTUJF UFJQN JYNW , TCGCR IAHTU BSVT,


TTFUS BZVDG FFO et FMEXK ZEDTD ZHQ.

• Intervalle de 5: YCFXU AVTJS O, TTEFI ZDNBF Q, …

09:39 58
Indice de coïncidence
Intervalle Indice de coïncidence
1 0.04263
2 0.05983 0.03134
3 0.03922 0.03922 0.05229
4 0.07692 0.04396 0.05128 0.03846
5 0.00000 0.03636, 0.00000 0.03636, 0.02222

• La clé est donc probablement de longueur 4.

09:39 59
Types de cryptosystèmes

Cryptographie

Symétrique Asymétrique

Par bloc: Par flot: RSA,


DES, AES,… RC4,… El Gamal,…

09:39 61
Modélisation
• Cryptosystème:
– P et C les alphabets pour écrire les messages clairs et
les messages chiffrés respectivement.
– K l’ensemble des clés possibles.
– Pour tout k pub , k prv   on peut définir deux
applications :
 pour chiffrer : ek p u b : P 
 C
 pour déchiffrer : d k p rv : C 
 P
telles que: dk prv
e
k pub 
( x)  x pour tout x  P
• Dans le cas de cryptosystème symétrique, on a:
k pub  k prv
09:39 62
Chiffrement à flot
Définition
• On désigne par chiffrement à flot, ou parfois chiffrement en
continu (stream-cipher), tout système de chiffrement dans
lequel chaque symbole du texte clair subit une transformation
variable dans le temps.

• La transformation que subit chaque symbole mi du texte clair


est le plus souvent une combinaison additive avec un symbole
zi produit par un générateur pseudo-aléatoire (GPA).
ci = mi+zi (chiffrement)
mi= ci -zi (déchiffrement) où + = - = xor
– La suite des symboles (zi ) est appelée suite chiffrante ou
masque
09:39 63
Chiffrement à flot
Système inconditionnellement sûr:
• dans lequel chaque symbole mi du message
clair est combiné à un symbole aléatoire zi
ci = mi + zi ;
• la suite (zi ) n‘étant jamais réutilisée.

09:39 64
Chiffrement à flot
Générateur Pseudo-Aléatoire (GPA)
• Un générateur pseudo-aléatoire de symboles est
un automate à nombre d‘états qui à partir de la
donnée d'un nombre de symboles, que l'on
appelle graine ou germe (seed en anglais) produit
une suite potentiellement illimitée de symboles
qui a l'apparence d'une suite aléatoire.

• Dans un système de chiffrement à flot, le germe


du GPA est calculé à partir
– de la clé k ;
– et d'un vecteur d'initialisation IV.
q0 = g(k; IV)
09:39 65
Chiffrement à flot
Chiffrement synchrone
• Le chiffrement est dit synchrone si les
symboles produits par le GPA ne dépendent
que de son état interne et non du message à
chiffrer.

09:39 66
Chiffrement à flot
Chiffrement asynchrone:
• Le chiffrement est dit asynchrone ou auto-
synchronisant si les symboles produits par le GPA
ne dépendent que de son état interne et d'un
nombre fixé t de symboles du message à chiffrer.

09:39 67
Chiffrement à flot
Exemple:
Les chiffrements par flot sont très utilisés pour
protéger les données multimédia:
RC4 (utilisé dans SSL et dans le WIFI 802.11)

E0/1 ( nome Bluetooth)

A5/1, A5/2, A5/3, (utilisés dans le GSM)

09:39 68
Chiffrement à flot
GPACS
• Un GPA est cryptographiquement sûr (GPACS)
s'il passe le test du prochain bit.

Test du Prochain bit


• Un GPA passe le test du prochain bit si aucun
algorithme polynomial ne peut prédire le (k +
1)ème bit en connaissant les k bits précédents
avec une probabilité significativement différente
de 1/2.
09:39 69
Chiffrement à flot
Générateur BBS (Blum-Blum-Shub)

09:39 70
Chiffrement à flot
Intérêt de BBS
1. BBS est un GPACS,
2. mais très coûteux (opérations complexes
pour produire un bit)
3. donc non utilisable en pratique pour le
chiffrement à flot.

09:39 71
Chiffrement à flot
LFSR:(Linear Feedback Shift Register)
• Un registre à décalage à rétroaction linéaire, désigné par
l'acronyme LFSR, est un dispositif qui produit une suite de bits.

• La suite récurrente produite par un LFSR est nécessairement


périodique à partir d'un certain rang.

• Les LFSR sont utilisés en cryptographie pour engendrer des


suites de nombres pseudo-aléatoires.

• La fonction de rétroaction est alors choisie de façon à obtenir


une période la plus grande possible.

09:39 72
Chiffrement à flot
LFSR:(Linear Feedback Shift Register)
• LFSR de longueur m : m bits si+m-1 ,…,si ; et d'une fonction de
rétroaction linéaire.

• A chaque top d'horloge, le bit de poids faible si constitue la


sortie du registre et les autres bits sont décalées vers la droite.
• Le nouveau bit si+m placé dans la cellule de poids fort du
registre est donné par une fonction linéaire des bits si,…, si+m-1:
si+m = cm-1si+m-1 + cm-2si+m-2 +… + c0si
où les coefficients de rétroaction (ci )1≤i≤m sont des éléments de F2:

09:39 73
Chiffrement à flot
Exemple (LFSR):
• Soit le LFSR ci-dessous composé de trois registres FF0, FF1, FF2
et une fonction de rétroaction comme le montre le schema.
l’état initiale est (s2=1, s1=0 , s0=0 )
• A chaque top d'horloge, le bit de poids faible si constitue la
sortie du registre et les autres bits sont décalées vers la droite.
• Le nouveau bit si+m placé dans la cellule de poids fort du
registre est donné par une fonction linéaire des bits si,…, si+m-1

09:39 74
Chiffrement à flot
• On voit que après un certain cycle d’horloge
la séquence de sortie se répète .
• Ce LFSR à une période de longueur 7 et a
pour forme: 0010111 0010111 0010111.
• Calculons la sortie si
s3 ≡ s1 +s0 mod 2
s4 ≡ s2 +s1 mod 2
s5 ≡ s3 +s2 mod 2

• De façon général:
si+3 ≡ si+1 +si mod 2

09:39 75
Chiffrement à flot
Description mathématique:
• Dans le cas général, un LFSR est composé de m registres et une
fonction rétroactive décrite par les coefficients p0, p1,..., pm−1.

• Supposons que l’état initiale du LFSR est s0,..., sm−1, et la sortie


suivante du LFSR est sm , qui est aussi l’entrée suivante du
registre de l’extrémité gauche.

09:39 76
Chiffrement à flot
Description mathématique:
• La sortie suivante du LFSR peut être calculer par:
sm ≡ sm−1 pm−1 +···+s1 p1 +s0 p0 mod 2
sm+1 ≡ smpm−1 +···+s2 p1 +s1 p0 mod 2
…………….
• En général, la sortie de la séquence peut être
décrite par:

• La longueur maximal d’une séquence générée par


un LFSR de degré m est 2m −1.
09:39 77
Chiffrement à flot
Exercice:
Déterminez la période de la séquence de sortie de
le LFSR pour les cas suivants:
1. Soit un LFSR de degré m = 4 et une fonction de
rétroaction de coefficient:
(p3 = 0, p2= 0, p1=1, p0= 1); (s0=0, s1=0,s2=0,s3=1)

2. Soit un LFSR de degré m = 4 et une fonction de


rétroaction de coefficient:
(p3 =1, p2 =1, p1 =1, p0 =1); (s0=0, s1=0,s2=0,s3=1)

09:39 78
Chiffrement à flot
1) (p3 = 0, p2 = 0, p1 =1, p0 = 1); 2) (p3 =1, p2 =1, p1 =1, p0 =1)
t état sortie
0 1000 - t état sortie
1 0100 0
0 1000 -
2 0010 0
3 1001 0
1 1100 0
4 1100 1
5 0110 0 2 0110 0
6 1011 0
7 0101 1 3 0011 0
8 1010 1
9 1101 0 4 0001 1
10 1110 1
11 1111 0 5 1000 1
12 0111 1
13 0011 1 6 1100 0
14 0001 1
15 1000 1
09:39
16 0100 0 79
Chiffrement à flot
• Un LFSR est décrit par (pm−1 ,…,p1 ,p0) peut être représenté par
un polynôme P(x):
P(x)= xm + pm−1 xm−1 +...+ p1 x+ p0
• LFSR avec les coefficients (p3 = 0, p2 =0, p1 = 1, p0 = 1) peut
être représenté par le polynôme :
P(x)= x4 + x + 1.
• L’utilisation d’un seul LFSR génère une sortie prédictible.

• Si 2m sorties d’un LFSR de degré m sont connues, les


coefficients de feedback Pi peuvent être calculer en résolvant
un système d’équations linéaires.

• De ce fait, beaucoup de chiffrement à flot combinent les LFSRs


09:39 80
Chiffrement à flot
• Les LFSR ne sont pas des GPACS car ils sont prédictibles:
– Connaissant m bits consécutifs produits par un LFSR de
longueur m et dont on connaît le polynôme de rétroaction,
on peut en déduire le (m + 1)ème bit produit.

– Connaissant 2m bits consécutifs produits par un LFSR de


longueur m dont on ne connaît pas le polynôme de
rétroaction, on peut retrouver ce polynôme par l'algorithme
de Berlekamp-Massey.

 Il ne faut pas utiliser les LFSR seuls pour un usage


cryptographique.

09:39 81
Chiffrement à flot
• Trois méthodes peuvent être employées pour
contourner l'effet des propriétés de linéarité
des LFSRs:
– Associer une fonction non linéaire aux sorties de
plusieurs LFSRs ;

– Utiliser une fonction de filtrage non linéaire basé


sur le contenu d'un seul LFSR ;

– Utiliser plusieurs LFSRs en parallèle ou une horloge


externe qui peut provenir d'un autre LFSR.
09:39 82
Chiffrement à flot
Exemple: l’algorithme A5/1
• L’algorithme A5/1 est utilisé pour protéger les liaisons
GSM.
• Il repose sur l’emploi de trois LFSRs

09:39 83
Chiffrement à flot
les polynômes associés à A5/1 sont:
• P1(X) = X19 + X18 + X17 + X14 + 1
• P2(X) = X22 + X21 + 1
• P3(X) = X23 + X22 + X21 + X8 + 1

• La synchronisation de ces LFSR est fixée par les bits de


déclenchement, s1, s2, s3 situés en position 9, 11, 11 en
partant de 0.

• Le registre est mis à jour si son bit de déclenchement


est en accord avec la majorité des trois bits de
déclenchement.
• La fonction de majorité s’écrit:
Maj(s1, s2, s3) = (s1 ∧ s2) ⊕ (s1 ∧ s3) ⊕ (s2 ∧ s3)
09:39 84
Chiffrement à flot
• Exercice
Soit S = {1, 0, 1, 1} la séquence binaire (le germe). Pour
produire le bit suivant (S4) de la séquence on applique
S1 XOR S3 ce qui donne
1 XOR 1 = 0:
Ensuite, on décale et on recommence. On peut décrire cette
récurrence par: Sn+1 = Sn XOR Sn-2 (n>=3)

1. Trouver les prochains bits de la séquence. Quelle est la


suite obtenue ? Est-elle bien aléatoire ?

2. On considère maintenant l’algorithme Sn+1 = Sn-2 XOR Sn-3


 étudier la séquence produite par cet algorithme. Trouver
la longueur du cycle de ce générateur. Quel est le
comportement de ce générateur sur les autres germes ?
09:39 85
Chiffrement à flot
Solution(1/3):
1)
t État S
0 1011 -
1 0101 1
2 0010 1
3 1001 0
4 1100 1
5 1110 0
6 0111 0
7 1011 1

la suite obtenue est 1101001, elle est périodique de


période égal à 7
09:39 86
Chiffrement à flot
Solution(3/3):
3)
t État S • la suite obtenue est
0 1000 - 000100110101111,
1 0100 0
2 0010 0
elle est périodique de
3 1001 0 période égal à 15.
4 1100 1
5 0110 0
•Ce générateur est de
6 1011 0
7 0101 1 longueur de cycle
8 1010 1 maximal, donc quel
9 1101 0 que soit le germe le
10 1110 1
11 1111 0 générateur produira
12 0111 1 une suite de longueur
13 0011 1 =15
14 0001 1
09:39
15 1000 1 88
Modes opératoires

09:39 89
Modes opératoires: ECB
Mode ECB( electronic code book)
• Le message, M, est découpé en blocs , (mi)i≥0, et
chaque bloc est chiffré séparément par
ci = Ek(mi)

• On transmet c0 c1 c2 . . . cn.
09:39 90
Modes opératoires: ECB
• Deux blocs identiques sont chiffrés de manière
identique;
• un attaquant malveillant peut permuter deux
blocs ou remplacer un bloc par un autre;
• Déchiffrement:
mi=Dk(ci)

• La procédure ECB n’est jamais utilisée en pratique


09:39 91
Modes opératoires: CBC
Mode CBC (Cipher Bloc Chaining)
1. On commence par choisir un bloc initial (IV= initial
value).
2. Chaque bloc clair (mi)i≥0 est d’abord modifie en faisant
un XOR de ce bloc avec le bloc chiffré précédent, ci−1;
3. On chiffre le résultat obtenu par XORisation.

c0 = Ek(m0 ⊕ IV)
c1 = Ek(m1 ⊕ c0)
.
.
ci = Ek(mi ⊕ ci−1)
09:39 92
Modes opératoires: CBC
Mode CBC (Cipher Bloc Chaining)
• On transmet le message IV c0 c1 . . . cn.

• Le bloc initial IV peut être choisi de l’une des manières


suivantes:
1. On génère IV aléatoirement et on le transmet en clair
avec le message;
2. On génère IV aléatoirement et on le transmet de manière
confidentielle;
3. On utilise un IV fixe qui fait partie des constantes du
cryptosystème;
4. On utilise un IV fixe qui fait partie de la clé secrète du
cryptosystème.

09:39 93
Modes opératoires: CBC
• Déchiffrement

m0 = IV⊕ Dk (c0)
mi = ci−1 ⊕ Dk (ci)
09:39 94
Modes opératoires: CFB
Le mode CFB (cipher FeedBack)
• Le mode CFB a été introduit pour ne pas avoir à
calculer la fonction inverse, Dk, de la fonction de
chiffrement Ek.

• On commence par choisir un bloc initial IV,

• Chaque bloc clair mi est XORé avec le chiffré du


bloc de sortie précédent, ci−1, suivant le schéma:
09:39 95
Modes opératoires: CFB
Le mode CFB (Cipher FeedBack)
c0 = m0 ⊕ Ek(IV)
c1 = m1 ⊕ Ek(c0)
ci = mi ⊕ Ek(ci-1)

• On transmet le message IV c0 c1. . . cn.


09:39 96
Modes opératoires: CFB
• Déchiffrement
m0 = c0 ⊕ Ek(IV)
mi = ci ⊕ Ek(ci−1)

• Ce mode est moins sûr que le CBC et est utilisé


par exemple pour les chiffrages réseaux.
• L’intérêt est que le déchiffrement ne nécessite
pas de calculer Dk.
09:39 97
Modes opératoires: OFB
Le mode OFB (output FeedBack)
• Le mode OFB est une variante de CFB qui permet
d’avoir un chiffrement et un déchiffrement
totalement symétrique:
z0 = Ek(IV);
zi = Ek(zi−1);
ci = mi ⊕ zi

09:39 98
Modes opératoires: OFB
Déchiffrement:
• Ce mode est utilise par exemple pour les
chiffrages satellites et se déchiffre par:
z0 = Ek(IV);
zi = Ek(zi−1);
mi = ci ⊕ zi

• Sa sureté est équivalente à celle du mode CFB.


09:39 99
Modes opératoires: CTR
Le mode CTR (Counter-mode encryption)
• Le mode de chiffrement CTR est lui aussi totalement
symétrique, mais en outre facilement parallélisable.
• Il utilise pour le chiffrement un compteur de valeur
initiale T:
ci = mi ⊕ Ek(T+1+ i)

09:39 100
Modes opératoires: CTR
• L’intérêt d’un tel mode est que les différents calculs de
chiffrement et déchiffrement sont indépendants;

• Un même bloc n’est a priori jamais codé de la même façon.

• La sécurité du mode CTR est équivalente à celle du mode CFB.

• Le déchiffrage est identique au chiffrage:

mi = ci ⊕ Ek(T +1+ i)

09:39 101
Modes opératoires
Exercice
• Soit le message clair m = 1011000101001010.
On considère le chiffrement par blocs (de
longueur4) définit par la permutation.
π: b1b2b3b4 b2b3b4b1
1) Chiffrer m avec le mode ECB.
2) Chiffrer m avec le mode CBC (on prendra 1010
comme vecteur d'initialisation).
3) Chiffrer m avec le mode CFB (IV=1010).
4) Même question avec le mode OFB (IV=1010).
09:39 102
Modes opératoires
Solution:
1) Chiffrement de m avec le mode ECB: 0111001010000101.
2) Chiffrement de m avec le mode CBC (iv=1010):
 M0+IV=1011+1010=0001  C0=Π(M0+IV)=0010,
 m1+c0=0001+0010=0011  c1= Π(m1+c0)=0110
 m2+c1=0100+0110=0010  c2= Π(m2+c1)=0100
 m3+c2=1010+0100=1110  c3= Π(m3+c2)=1101
 C=1010 0010 0110 0100 1101
3) Chiffrement de m avec le mode CFB (IV=1010).
 Π(IV)=0101, c0= Π(IV)+m0=0101+1011=1110;
 Π(c0)=1101, c1= Π(c0)+m1=1101+0001=1100;
 Π(c1)=1001, c2= Π(c1)+m2=1001+0100=1101;
 Π(c2)=1011, c3= Π(c2)+m3=1011+1010=0001.
 C=1010 1110 1100 1101 0001
4) Chiffrement de m avec le mode OFB (IV=1010).
 z0=Π(IV)=0101; z1=Π(z0)=1010, z2=Π(z1)=0101;
z3= Π(z2)=1010;
 c0=m0+z0=0101+1011=1110; c1=z1+m1=1010+0001=1011;
 c2=z2+m2=0101+0100=0001; c3=z3+m3=1010+1010=0000.
09:39  C=1010 1110 1011 0001 0000 103
Data Encryption Standard:
DES
09:39 105
Description de DES
• Approuvé en tant que standard de chiffrement
aux États-Unis en 1976, après deux appels à
candidature (en 1973 et 1974).

• «Amélioré» par la NSA en cours de processus (au


niveau de la conception des S-boxes).
• Utilise des blocs de taille n = 64 bits.

• Utilise une clef de taille 56 bits.

• Basé sur le principe d’un réseau de Feistel.


09:39 106
Description des réseaux de Feistel

09:39 107
Description des réseaux de Feistel
• La taille de bloc doit être paire, on divise le bloc en
deux: m=(L0, R0).
• r tours.
• Chaque tour transforme (Li-1, Ri-1) en (Li, Ri) où:
Li=Ri-1
Ri=Li-1 ⊕ f(Ri-1,ki)
• La sortie est (Lr, Rr)

09:39 108
Description de DES:
schéma général

09:39 110
Description de DES: schéma général

09:39 111
Description de DES: permutation
• la transformation IP et la transformation inverse IP-1 sont
des permutations définies par les tableaux ci-dessous :

• La signification de IP est que le 58ème bit devient le 1er bit, le


50ème devient le 2ème, et ainsi de suite.

• De même pour IP-1, le premier bit du résultat est le bit 40, le


deuxième bit du résultat est le bit 8, etc.
09:39 112
Description de DES: détails
• Une permutation initiale, IP est appliquée sur les
64 bits du bloc.
• La permutation inverse est appliquée à la fin du
chiffrement.
• 16 clefs de rondes K1,…,K16 de 48 bits chacune
sont déduites des 56 bits de la clef principale.

• Pour chaque ronde du réseau de Feistel, on utilise


la fonction f(Ri-1,ki)=P(S(E(Ri-1)+ki)) où:
– E est une expansion fixée de 32 bits vers 48 bits,
– S est composé de 8 applications fixées de 6 bits vers 4
bits, appelées S-boxes.
– P est une permutation fixée sur 32 bits.
09:39 113
Description de DES: fonction f

09:39 114
Description de DES: fonction f
• Cette fonction f fait intervenir:
– l'opération E qui transforme un bloc de 32 bits en
un bloc de 48 bits,

– les opérations S1 à S8 qui transforment des


groupes de 6 bits en groupes de 4 bits,

– la permutation P qui agit sur un bloc de 32 bits.

09:39 115
Description de DES: fonction f

• Le 1er bit de E(R) est le bit 32, le 2ème est le bit 1, etc.

• la permutation P, le 1er bit est le bit 16, le 2ème le bit


7, etc.
09:39 116
Description de DES: S-Boxes

09:39 117
Description de DES: S-Boxes

09:39 118
Description de DES: S-Boxes

09:39 119
DES: fonctionnement des S-Boxes
Exemple : Supposons que le texte à transformer soit
101100 à l'entrée de S1.

• On sépare le premier bit (1) et le dernier bit (0) que


l'on concatène (10 soit 2 en décimal) ;
• Les quatres bits restant constituent le nombre 0110,
soit 6 en décimal.
• A l'intersection de la ligne 2 et de la colonne 6 de la
matrice S1, on obtient 2, soit sur 4 bits, 0010.
• Ainsi 101100 se transforme en 0010
09:39 120
DES: procédé de diversification de clés
• Étant donné les 64 bits de K, on enlève les bits
de parité et l'on ordonne les autres suivant
une permutation PC-1.
1. On note C0D0 =PC-1(K) où C0 est composée
des 28 premiers bits de PC-1(K) et D0 des 28
restants.
2. Pour i compris entre 1 et 16, on calcule
– Ci = LSi(Ci-1)
– Di = LSi(Di-1) où LSi est une rotation circulaire.
09:39
– Ki = PC-2(CiDi). 121
DES: procédé de diversification de clés
• A

09:39 122
DES: procédé de diversification de clés

• Les clés sont produites sur 48 bits, à partir de


la clé de départ K, suivant un processus faisant
intervenir les permutations PC-1 et PC-2 :

09:39 123
DES: procédé de diversification de clés

• les décalages à gauche sont circulaires : le bit


sortant à gauche est réintroduit à droite.

• Toutefois, le décalage est effectué une fois ou


deux fois suivant les clés comme le montre le
tableau ci-dessous :

Numéro 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
de clé
Nombre de 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
décalages

09:39 124
DÉCHIFFREMENT (DES)

09:39 125
DES: génération des sous-clés
pour le déchiffrement
• Il faut noter que C0 =C16 et D0 = D16. Donc, k16
peut être obtenu après la permutation PC−1 de K.
k16 = PC−2(C16,D16)
= PC−2(C0,D0)
= PC−2(PC−1(k))

• Pour calculer k15, on aura besoin des variables


intermédiaires C15 et D15, qui peuvent être
obtenues à partir de C16, D16 en utilisant un
décalage circulaire à droite (RS):
k15 = PC−2(C15,D15)
= PC−2(RS2(C16),RS2(D16)) où RS2 est un décalage à droite
= PC−2(RS2(C0),RS2(D0))
09:39 126
DES: génération des sous-clés
pour le déchiffrement
• Les sous-clés k14, k13,…,k1 sont obtenues par un
décalage à droite circulaire de façon similaire à celui
utilisé pour la k15.

• Dans le 1er tour de déchiffrement, la clé k16 ne soumit à


aucun décalage.

• Dans le 2ème, 9ème et 16ème tours de déchiffrement, les


deux parties des sous-clés soumettent à un seul
décalage à droite circulaire.

• Dans les autres tours 3, 4, 5, 6, 7,8, 10, 11, 12, 13, 14 et


15, les deux parties des sous-clés soumettent à deux
09:39
décalages à droite circulaires. 127
DES: génération des sous-clés
pour le déchiffrement

09:39 128
Déchiffrement :DES (1/2)
• La procédure de déchiffrement se fait tour par
tour:
– Le 1er tour de déchiffrement déchiffre le 16ème
tour de la procédure de chiffrement,

– Le 2ème tour déchiffre le 15ème tour de chiffrement


et ainsi de suite.

09:39 129
Déchiffrement :DES (1/2)

09:39 130
Déchiffrement :DES(2/2)

09:39 131
Déchiffrement :DES(2/2)
• Il faut noter que les deux parties du chiffré, L16 et
R16, dans le 16ème tour sont permutées.
• Selon le schéma de déchiffrement précédent on
a:
– (Ld0,Rd0)= IP(Y)= IP(IP−1(R16,L16))
– = (R16,L16)
D’où:
– Ld0 = R16
– Rd0 = L16 = R15
• Maintenant, on va exprimer la sortie (Ld1,Rd1) du
1er tour de déchiffrement en fonction de la
sortie, (L15,R15) , du dernier tours de chiffrement:
– Ld1 = Rd0 = L16 = R15
09:39 133
Déchiffrement :DES(2/2)
– Rd1 = Ld0 ⊕ f (Rd0,k16)= R16 ⊕ f (L16,k16)
– Rd1 =[L15 ⊕ f (R15,k16)]⊕ f (R15,k16)
– Rd1 = L15 ⊕[ f (R15,k16)⊕ f (R15,k16)] = L15

• Après le 1er tour de déchiffrement nous avons trouvé les


mêmes valeurs d’entré de la dernière itération de
chiffrement.
• Le processus est itératif et continue jusqu’au 15ème tour de
déchiffrement et on peut écrire:
– Ldi= R16−i,
– Rdi= L16−i où i = 0,1,...,16.
– En particulier, après la dernier tour de déchiffrement on aura :
Ld16 = R16−16 = R0
Rd16 = L0
• Finalement, on applique l’inverse de la permutation initiale:
• IP−1(Rd16,Ld 16)= IP−1(L0,R0)= IP−1(IP(x)) = x
09:39 134
Critique de DES
• La critique du DES est de nos jours aisée car la clé
de 64 (en fait 56 bits) est trop courte et on peut
la deviner par essais successifs de combinaisons
de 56 bits. (il faut quand même du temps, mais
les ordinateurs sont de plus en plus
performants.).
• Démonstration de John Gilmore (janvier 1999) :
on peut trouver la clé DES avec une machine
coûtant 250.000 $ en 22h et 15 min.

• DES tend à être remplacé par d'autres systèmes


comme AES(Advanced Encryption Standard).
09:39 135
Advanced Encryption Standard:

AES
09:39 136
AES
Successeur de DES.
• Approuvé comme standard de chiffrement en
2002 suite à un appel à candidature datant de
1997.

• Basé sur le principe de réseau de substitution/


permutation (SPN).

09:39 137
AES: Rappel sur des structures algébriques
Définition 1: Groupe
Un groupe, G, est un ensemble d’éléments avec une opération ᵒ qui
combine 2 éléments de G. un groupe a les propriétés suivantes:
1. L’opération du groupe ᵒ est «fermée», c.à.d pour tout a, b ∈ G, aᵒb=c
∈ G.

2. L’opération de G est associative. C.à.d, a ᵒ(b ᵒc)=(a ᵒb) ᵒc pour tout a,


b, c ∈ G.

3. Il existe un élément e de G, appelé élément neutre, tel que aᵒe=eᵒa


pour tout a ∈ G.

4. Pour tout élément a ∈ G il existe un élément a-1 de G appelé l’inverse


de a, tel que a ᵒa-1=e
5. Le groupe G est dit abélien(commutative) si a ᵒb = b ᵒa pour tout a, b
09:39 ∈ G. 138
AES: Rappel sur des structures algébriques

Exemple:
• l’ensemble des entiers Zm={0,1,...,m−1} et
l’opération d’addition modulo m forme un groupe
avec l’élément neutre 0. chaque élément a un
inverse −a tel que a+(−a)= 0 mod m.

• Notez que cet ensemble ne forme pas un group


avec l’opération de multiplication parce que
quelques éléments a n’ont pas un inverse tel que
a.a−1 = 1mod m.
09:39 139
AES: Rappel sur des structures algébriques
• Pour avoir les quatre opérations arithmétiques de
base(addition, soustraction, multiplication et division)
dans une seule structure on aura besoin d’un ensemble
qui contient un groupe aditif et multiplicatif. Ceci
s’appèl un corps.

Définition de Corps(field):
Un corps F est un ensemble avec les propriétés suivantes:
1. Tout les éléments de F forment un groupe aditif avec
l’opération du groupe “+” et l’élément neutre 0.
2. Tout les éléments de F sauf 0 forment un groupe
multiplicatif avec l’opération du groupe “*” et l’élément
neutre 1
3. Lorsque les opérations de deux groupes sont mixées , la
loi distribution est pour tout a,b,c ∈ F: a(b+c)=(ab)+(ac).
09:39 140
AES: Rappel sur des structures algébriques
Exemple:
• On considère le corps fini GF(5)= {0,1,2,3,4}. Les
tableaux suivants décrivent comment faire l’adition et le
multiplication de deux éléments, ainsi que l’opposé et
l’inverse de chaque élément.

09:39 141
AES: Rappel sur des structures algébriques
Corps étendu:
• Dans le corps étendu GF(2m), les éléments ne sont pas
représentés par des entiers, mais par des polynômes
avec des coefficients dans GF(2).

• Les polynômes ont un degré maximum de m-1, donc,


m coefficient pour chaque élément.

• Chaque élément A ∈ GF(28) est représenté par:


A(x)= a7x7+···+a1x+a0, ai ∈ GF(2)= {0,1}.

• Un polynôme peut être simplement représenté par un


vecteur binaire de 8 bits:
A =(a7,a6,a5,a4,a3,a2,a1,a0).
09:39 142
AES: Rappel sur des structures algébriques
Addition et Soustraction dans GF(2m) :
• L’ addition et soustraction se fait dans GF(2)
Définition:
• soient A(x),B(x) ∈ GF(2m). La somme et la différence de
deux éléments sont calculées selon les formules
suivantes:

Exemple:
09:39 143
AES: Rappel sur des structures algébriques
Multiplication dans GF(2m):
• Deux éléments, représentés par leur polynômes,
d’un corps fini GF(2m) se multiplient en utilisant la
règle de multiplication standard:

09:39 144
AES: Rappel sur des structures algébriques

Définition: Multiplication dans GF(2m):


• Soient A(x),B(x) ∈ GF(2m) et P(x) un polynôme
irréductible.

La Multiplication de deux éléments A(x),B(x) se fait


comme suis: C(x) ≡ A(x) ·B(x) mod P(x).

• Le polynôme x4 +x3 +x+1 est réductible puisque


x4 +x3+x+1 =(x2+x+1)(x2+1)

• AES utilise le polynôme irréductible p(x):


P(x)= x8+x4+x3+x+1
09:39 145
AES: Rappel sur des structures algébriques
Exemple 1:
On veut faire la multiplication de deux polynômes
A(x)=x3+x2 + 1 et B(x)= x2 +x dans le corps GF(24). Le
polynôme irréductible de ce corps est donné par :
P(x)=x4+x+1.

1. Le polynôme produit est donné par:


C’(x)= A(x)·B(x)= x5+x3+x2+x.

2. On réduit le degré de C’(x) en utilisant la méthode de


division par le polynôme irréductible P(x):
x4 ≡ 1 ·P(x)+(x+1)
x4≡ x+1 mod P(x)
x5≡ x2+x mod P(x)
09:39 146
AES: Rappel sur des structures algébriques

Exemple 1 (suite):
D’où C(x):
C(x) ≡ x5+x3+x2+x mod P(x)
C(x) ≡A(x) ·B(x) ≡ (x2+x)+(x3+x2+x)= x3

Au niveau bit la multiplication est vue comme suis:


A·B=C
(x3 +x2 +1) · (x2 +x)= x3
(1101) · (0110)=(1000)
09:39 147
AES: Rappel sur des structures algébriques
Inversion dans GF(2m):
Pour un corps fini GF(2m) et son polynôme irréductible
correspondant P(x), l’inverse A-1 d’un élément, A, non
nul ∈ GF(2m) est définie par:
A−1(x) ·A(x)= 1 mod P(x).

Exemple :
l’inverse de
x7+x6+x =(11000010)2 =(C2)hex
Est donné par
(2F)hex =(00101111)2 = x5+x3+x2+x+1.
Ceci peut être vérifié par:
(x7+x6+x) · (x5+x3+x2+x+1) ≡ 1mod P(x).
09:39 148
AES: Description
• On distingue entre trois variantes de AES selon la
longueur de la clé (128,198 ou 256 bits).

• Les variantes composées de 10, 12 ou 14 tours


suivant la taille de la clef : 128, 198 ou 256.

• AES est un algorithme itératif , ici l’itération


s’appèlle tour et chaque tour est composé de 4
étapes.
• Le tour initiale composée de AddRoundKey.
09:39 149
AES: Description
• Les blocs de messages (128 bits) sont découpés en
16 octets, placés dans une matrice d’état de taille
4*4.
• Chaque tour est composée des étapes suivantes
sauf le premier :
1. SubBytes : une substitution non-linéaire où chaque
octet est remplacé par un autre d’après une table.
2. ShiftRows : une étape de permutation où chaque
ligne de la matrice subit une permutation cyclique.
3. MixColumns: une opération de mélange sur les
colonnes.
4. AddRoundKey : chaque octet de la matrice est
combiné avec la clef de ronde.
• Le dernier tour sans MixColumns
09:39 150
AES: schéma de chiffrement

09:39 151
AES: schéma de chiffrement

09:39 152
AES: schéma de chiffrement
Chaque tour réalise le travail suivant:

09:39 153
AES: SubByte Layer
• S-Box remplace chaque octet Ai par un octet Bi,
S(Ai) = Bi selon le tableau suivant:

09:39 154
AES: SubByte Layer
• La transformation S-Box peut être vu comme transformation
mathématique à deux étapes:

• La première substitution est une inversion dans GF(2m). pour


chaque élément d’entrée Ai l’inverse est calculé B’i=Ai-1,
• La fonction affine est donnée par:

09:39 155
AES: SubByte Layer
• L’inverse peut être calculé par le tableau suivant:
– L’élément 0 n’a pas d’inverse mais pour AES il est mapper à 00

09:39 156
AES: SubByte Layer
Exemple 1:
• Supposons que l’octet d’entrée de S-Box soit
Ai=(C2)hex, donc il est remplacé par S((C2)hex) = (25)hex.
• Au niveau bit on a S(11000010)=(00100101).

• Si l’entrée de SubBytes est (C2,C2,...,C2) en notation


hexadécimale, la sortie est (25,25,...,25).

• S-Box est bijective et n’a aucun point fixe. Même le


point zéro n’est pas un point fixe:
S(00000000)=(01100011).
09:39 157
AES: SubByte Layer
Exemple 2 :
• Calculer la sortie de S-Box sachant que l’entrée est:
Ai=(11000010)2 =(C2)hex.
• L’inverse de Ai est (selon le tableau précédent):
A−1i = B’i=(2F)hex =(00101111)2.
• Maintenant on applique B’i à l’entrée de la
transformation affine, on obtient:
Bi =(00100101)=(25)hex
• Le résultat peut être vérifié en utilisant le tableau
précédant.
09:39 158
AES: ShiftRows Sublayer
• Cette étape opère sur les lignes de la matrice état et on
effectue un décalage cyclique à gauche sur chaque élément
d’une ligne i de ci éléments.

• Le nombre d’octets décalés dépend de la ligne considérée.

• La ligne i est décalée de Ci éléments, si bien que l’élément


en position j de la ligne i est déplacé en position (j− Ci) mod
Nb. Où Nb est le nombre de colonnes
Nb C0 C1 C2 C3
4 0 1 2 3
5 0 1 2 3
6 0 1 2 3
7 0 1 2 4
09:39 159
8 0 1 3 4
AES: ShiftRows Sublayer
• Le but de la transformation ShiftRows est d’augmenter
la diffusion,
• Si l’entrée de ShiftRows est la matrice State B
=(B0,B1,...,B15) :

• La sortie sera comme suis:

09:39 160
AES: MixColumn Sublayer
• La transformation MixColumn est une transformation
linéaire qui mixe chaque colonne de la matrice state.
• La transformation MixColumn est l’élément majeur de
la diffusion dans AES.
• Si l’entrée de MixColumn est le vecteur B et la sortie
le vecteur C, alors MixColumn(B)=C,

• Ou encore

• La multiplication et l’addition des coefficients se fait


dans GF(28).
09:39 161
AES: MixColumn Sublayer
• (c4,c5,c6,c7) est calculé en multipliant (b4,b9,b14,b3)
par la même matrice constante, et ainsi de suite.

Exemple:
Supposant que l’entrée du MixColumns soit
B(25,25,25,…,25).
Dans ce cas, seulement 2 multiplications sont
nécessaires.
02 · 25 et 03 · 25, qui peuvent être calculer en
utilisant la notation polynômial.
09:39 162
AES: MixColumn Sublayer

Exemple (suite):

Les résultats intermédiaires ont un degré inférieur 8.


donc, aucune réduction modulaire avec P(x) n’est
nécessaire.
La sortie C est:

C=(25, 25, 25, ….,25)


09:39 163
AES: Expansion de clés
• Les clés des différentes tours sont obtenues par
dérivation de la clé principale au moyen de
l’algorithme de séquencement de la clé, qui se
déroule en deux étapes:
– Une phase d’expansion de la clé,
– Une phase de sélection de la clé de tour.

• Le principe de base de l’algorithme est le suivant:


– Le nombre de bits pour la clé de tour est égal à la
longueur d’un bloc multiplié par le nombre de tours
plus un.
09:39 164
AES : Expansion de clés
• Les sous-clés de AES sont stockées dans un
tableau appelé tableau d’expansion de clés.

• Ce tableau est de la forme suivante:


W[0], W[1], …, W[42], W[43]. Où chaque mot W
contient 32 bits.

• Les éléments K0, K1,…,K15 dénotent la clés


originale.

• Cette clé initiale est copiée dans les quatre


premiers mots W.
09:39 165
AES : Expansion de clés
• Les autres éléments du tableau sont calculés
de la façon suivante:
– Le mot W[4i], avec 1 ≤i≤10, de l’extrême gauche
de la sous-clé est calculée par :
W[4i ] = W[4(i -1)] + g(W[4i-1]).
– Ici, g() est une fonction non linéaire avec 4 octets
en entrée et en sortie.

• Les trois mots restant de la sous-clé sont


calculées de façon récursive:
W[4i+j ] = W[4i+j -1] + W[4(i -1)+j]
09:39
– Où j=1,2,3 et i=1,…,10. 166
AES: AddRoundKey Layer

09:39 167
AES: AddRoundKey Layer

09:39 168
AES: Addround Key Layer
• La fonction g() applique un décalage circulaire à
gauche sur les quatre octets d’entrée,

• Puis, elle réalise une substitution en utilisant la S-


Box,

• Ensuite, elle additionne les coefficients du tour au


résultat intermédiaire,

• Les coefficients sont additionnés uniquement à


l’octet de l’extrémité gauche de g().
09:39 169
AES: AddRoudKey Layer
• La fonction g:

09:39 170
AES: Addround Key Layer
• Les coefficients varie d’un tour à un autre
selon la règle suivante:
– RC[1]= x0 =(00000001)2,

– RC[2]= x1 =(00000010)2,

– RC[3]= x2 =(00000100)2,
–…
– RC[10]= x9 =(00110110)2.

09:39 171
AES: AddRound Key Layer
Sélection de la clé de tour:
• La clé de l’ ième tour est le contenu de W entre
les positions W[Nb*i] et W[Nb*(i+1)], comme
illustré par la figure suivante:
W[0] W[1] W[2] W[3] W[4] W[5] W[6] W[7]

clé de tour 0 clé de tour 1

09:39 172
09:39 173
AES: déchiffrement
• Toutes les couches de l’algorithme AES doivent
être inversible:
– SubByte layer devient Inv SubByte layer ,

– ShiftRows SubLayer devient Inv ShiftRows SubLayer,

– MixColumns SubLayer devient Inv MixColumns


SubLayer.

• L’ordre d’expansion de la clé doit être inversé.


09:39 174
AES: déchiffrement
• Le diagramme suivant montre la fonction de déchiffrement.

09:39 175
AES: déchiffrement

09:39 176
AES: déchiffrement

09:39 177
AES: Inv Mixcolumns SubLayer
• Pour inverser l’étape MixColumns, l’inverse de la
matrice de la transformation MixColumns doit être
utilisée.

• L’entrée de la transformation Inv MixColumns est une


colonne de 4 octets de la matrice état, C.

• Cette colonne doit être multipliée par la matrice


inverse, la multiplication des coefficients se fait dans
GF(28).

09:39 178
AES: Inv Mixcolumns SubLayer
• La 2ème colonne de la sortie est calculée en
multipliant l’entrée suivante (c4, c5, c6, c7) par
la même matrice inverse, et ainsi de suite.

• Exemple:
Supposant que l’entrée du Inv MixColumns
soit C(25,25,25,…,25).
4 multiplications sont nécessaires. 0E · 25,
0B · 25, 0D.25 et 09.25 qui peuvent être
calculer en utilisant la notation polynômial.
09:39 179
AES: Inv Mixcolumns SubLayer
• Exemple(suite):
0E·25=(x3+x2+x).(x5+x+1)
0B·25 =(x3+x+1).(x5+x+1)
0D.25 =(x3+x2+1).(x5+x+1)
09.25 =(X 3+1).(x5+x+1)
--------------------------------
(x5+x+1)
• D’où 0E·25+ 0B·25+ 0D.25+ 09.25=25

B=(25, 25, 25, …,25)


09:39 180
AES: Inverse ShiftRows Sublayer
• Pour inverser l’opération ShiftRows de l’algorithme de
chiffrement, on doit faire un décalage circulaire à
droite des lignes de la matrice état.
• Si l’entrée de Inv ShiftRows SubLayer est la matrice
d’état B,

• La sortie de Inv ShiftRows SubLayer est:

09:39 181
AES: Inv SubBytes Layer
• Puisque S-Box est bijective, il est possible de construire
l’inverse de S-Box tel que: Ai=S-1(Bi)=S-1(S(Ai)),
• Où Ai et Bi sont des éléments de la matrice d’état.
• Les entrées et la sortie de Inv S-Box sont données par
le tableau suivant:

09:39 182
AES: Inv SubBytes Layer
• L’inversion de l’opération S-Box peut être réalisé
d’une autre façon:
– On inverse la transformation affine de chaque octet Bi
par:

• Où (b7, . . . ,b0) sont les coefficients du vecteur Bi(x), et


(b′7,…,b′0) du résultat après la transformation affine inverse.

• Dans la seconde étape de Inv S-Box, on calcule l’inverse de


8 Ai=(B’i)-1
09:39 B’idans GF(2 ), 183
AES: dérivation de sous-clés
• Les sous-clés peuvent être pré-calculées et
stockées dans un tableau bidimensionnel.
Elles sont utilisées dans l’ordre inverse

09:39 184
Chiffrement symétrique : synthèse
Une unique clé secrète partagée entre les 2 parties
qui sert pour le chiffrement et le déchiffrement du
message
Avantage :
– Rapide
Inconvénients :
– Il faut autant de clefs que de couples de
correspondants
– La non-répudiation n'est pas assurée. Mon
correspondant possédant la même clé que moi, il peut
fabriquer un message en usurpant mon identité
09:39
– Transmission de clef ? 185
09:39 186
PGCD
• Définition :
Parmi l'ensemble des diviseurs communs à deux
entiers a et b, le PGCD, est le plus grand
commun diviseur.

Théorème :
soient a, b, c dans N et n dans Z
 pgcd(ac, bc) = c.pgcd(a, b)
 pgcd(a, b) = pgcd(a, b + na)

09:39 187
PGCD: algorithme d’Euclide
Propriété :
Si a > b alors on a a=b.q + r donc
– Les diviseurs communs à a et b sont les mêmes
que les diviseurs communs à b et r.
– Donc pgcd(a, b) = pgcd(b, r)

09:39 188
PGCD: Algorithme d’Euclide
• Exemple : pgcd(42, 30) = 6
42 = 1x30 + 12
(42, 30) = (30, 12)
30 = 2x12 + 6
(30, 12) = (12, 6)
12 = 2x6 + 0
(12, 6) = (6, 0)

09:39 189
Nombres premiers entre eux
• Définition :
lorsque pgcd(a, b) = 1, on dit que a et b sont
premiers entre eux.

• Remarques :
– cela signifie que leur seul diviseur commun est 1.
– un nombre premier est premier avec n'importe
quel autre nombre

09:39 190
Nombres premiers entre eux
• Théorème de Bezout
Deux entiers a et b sont premiers entre eux si et
seulement s’il existe deux entiers u et v tels que:
a.u + b.v =1

• Pour que x possède un inverse, il faut et il suffit que


pgcd(x, n) = 1. Cet inverse est unique et on le note x-1

• Si pgcd(x, n) ‡1 alors il existe y tel que x.y = 0, On dit


que x est un diviseur de zéro.

• Si n est premier alors tout élément de zn sauf 0


possède un inverse.
09:39 191
Algorithme d’Euclide étendu
• L’algorithme d’Euclide étendu permet de
calculer les coefficients de Bezout, u et v tels
que:
a.u + b.v = d = pgcd(a, b)

09:39 192
Algorithme d’Euclide étendu
• Calcul des coefficients de Bezout pour a=40 et b=3
E0: 1x40 + 0x3 = 40
E1: 0x50 + 1x3=3 ; q1=(40/3) =13; r1=40 mod 3=1
E2: E0 -13.E1 ; 1x40 -13x 3=1; q2=(3/1)=3 r2=3mod 1=0
Bilan: 1x40 -13x 3=1  3-1= -13 mod 40=27 mod 40

09:39 193
Théorèmes
Théorème :
• Si a = b mod n et u = v mod n alors
a + u = b + v mod n
et a.u = b.v mod n
Théorème :
• Un entier a est inversible dans Zn ssi a et n sont
premiers entre eux

Théorème :
• Si n est premier alors tout élément non nul de Zn est
inversible.

Notation : Z*n désigne l'ensemble des éléments


inversible de Zn.
09:39 194
théorèmes
Remarque : si n est premier Z*n= Zn privé de 0.

Théorème :
• un entier n est premier ssi Zn ne contient pas de diviseurs
de 0.

09:39 195
Fonction indicatrice d'Euler

Définition : Φ(n) est égale au nombre d'entiers


positifs premiers à n et appartenant à [1, n-1].
• Φ(n) correspond aussi au nombre d‘éléments
inversibles de Zn
• Par convention, Φ(0) = 0 et Φ(1) = 1
• Un entier p est premier,Φ(p) = (p-1) et
Φ(pe)=(pe-pe-1).
Théorème :
• Si n et m sont entiers strictement positifs et
premiers entre eux alorsΦ(n . m) =Φ(n) .Φ(m)
09:39 196
Fonction indicatrice d'Euler

Petit théorème de Fermat :


Pour p premier et tout entier a, on a:
ap =a mod p

Théorème d’Euler
Pour tout entier n et tout a de z*n (PGCD(n, a)=1)
, on a
aΦ(n) =1 mod n

09:39 197
élément générateur
Théorème :
• Soit p un nombre premier. Alors, le groupe multiplicatif Z*p
est cyclique. C'est-à-dire que ce groupe peut être engendré
par un élément générateur (dit aussi élément primitif) : il
existe un élément a tel que
Z*p= {1, a, a2,…,aP-2}

• Exemple : Z*7
30=1 mod 7
31= 3 mod 7
32= 2 mod 7
33= 6 mod 7
34= 4 mod 7
35= 5 mod 7
36 = 1mod 7
37= 3mod 7
09:39 198
Exponentiation modulaire
• Étant donnés a, x et M, calculer ax mod M
Règle N°1
Dans une exponentiation modulaire, les
exposants doivent être pris modulo Φ(M)

– En effet, dans le calcul de ax mod M:


• Soit x= y+k.Φ(M)
• Alors ax=ay+k.Φ(M)= ay(aΦ(M))k =ay mod M

– Par définition, x=y mod Φ(M):


09:39 ax=ax modΦ(M)mod M 199
Exponentiation rapide modulaire

Exercice :Calcul de 5144721 mod 17 (E)

51447 = 3026 . 17 + 5 donc (E) 521 mod 17


Φ(17)=16,
On a 21= 16+ 5= 5+1.Φ(17)
521 mod 17 =5(5+1.Φ(17)) mod 17
= 55 mod 17= (5²)²x5 mod 17
=8²x5 mod 17
= 14 mod 17
09:39 200
Fonctions à sens unique

• Fonction à sens unique:


pour une relation y=f(x), calculer y est facile, mais
retrouver x à partir de y est « difficile »

• Fonction à sens unique à trappe:


pour une relation y=f(x), calculer y est facile, et
– Retrouver x à partir de y est difficile
09:39
– Retrouver x à partir de y est facile avec une « trappe »201
Fonctions à sens unique
En mathématique:
– la multiplication
(p.q)  N=p.q est facile à calculer
O(k²) opérations élémentaires, où k=log2(n)
En revanche:
– la factorisation N(p,q) est difficile.
– le meilleur algorithme connu est de l’ordre
O(e1.92(ln n)1/3(ln ln n)2/3)

09:39 202
09:39 203
Cryptographie asymétrique

• Alice génère deux clés. La clé publique (verte)


qu'elle envoie à Bob et la clé privée(rouge)
qu'elle conserve précieusement sans la
divulguer à quiconque.
09:39 204
Cryptographie asymétrique

• Bob chiffre le message avec la clé publique


d'Alice et envoie le texte chiffré. Alice
déchiffre le message grâce à sa clé privée
09:39 205
RSA
• Alice veut envoyer M à Bob.
– M un entier représentant un message.
– Bob choisit p et q deux nombres premiers et on note n
leur produit.
– Bob choisit e un entier premier avec (p-1)(q-1)
– On a Φ(n) = (p-1)(q-1) donc e est premier avec Φ(n) et
on montre (via Bezout) qu'il est inversible modulo
Φ(n), i.e. il existe un entier d tel que
e.d = 1 (mod Φ(n)).
– Le message chiffré sera alors représenté par :
C = Me (mod n)
– Pour déchiffrer C, on calcule d l'inverse de e mod Φ(n),
ensuite on calcule Cd mod n,
09:39 206
RSA
• On a alors,
Cd (mod n) =(Me )d (mod n) = Med (mod n)
• Comme ed= 1 (mod Φ(n)) par définition de
modulo, on a
ed = 1 + k.Φ(n), avec k appartenant à N.
• D'où,
Med (mod n) = M .MkΦ(n) (mod n)
=M.(MΦ(n) )k (mod n)
• Or si x est premier avec n; on a xΦ(n) =1 (mod n),
d'après le théorème d'Euler.

• finalement, si le message M est premier avec n :


Cd =M (mod n).
09:39 207
RSA
• Le cas où le message M n'est pas premier avec n
est un peu plus compliqué mais le résultat reste
le même :
Cd = M (mod n).

• (n, e) est appelé clef publique


• (n, d) est appelé clef privée.
• pour chiffrer, il suffit de connaître e et n.
• pour déchiffrer, il faut d et n, autrement dit
connaître la décomposition de n en facteurs
premiers.
09:39 208
RSA
Exercices 1:
• Bob choisit comme nombre premier p = 5 et
q=11, comme exposant e=3.
1. donner sa clef publique.
2. Donner sa clé secrète de déchiffrement d.

Alice veut envoyer le message 4.


3. Écrire le message chiffré qu‘elle envoie à Bob.
4. Déchiffrer le message qu’a reçu Bob et vérifier
que c’est bien celui qu’a envoyé Alice.
09:39 209
Solution
RSA
1. La clé publique de Bob est: (n=5x11, 3)=(55,3)
2. Φ(n) =(5-1)(11-1)=40.
En appliquant l’algorithme d’Euclide étendu on trouve:
[1].40 +[-13].3=1
D’où -13x3=1 mod 40
d= 3-1=-13 mod 40
d= 40-13 mod 40=27 mod 40
La clé privé est (55, 27)

3. 43 mod 55 = 64 mod 55= 9 mod 55


Alice envoie le message chiffré 9.

4. Déchiffrement du message reçu.


927 mod 55= (93)9mod 55
=(14)9 mod 55
=(14²)4x14 mod 55
=(31²)²x14 mod 55
=26²x14 mod 55
=16x14=224 mod 55=4 mod 55
C’est bien le message en clair qu’Alice a chiffré.
09:39 210
Sécurité des nombres premiers : exemple
• Factorisation d'un nombre à 232 chiffres (record actuel), soit
768 bits (travail de 13 auteurs de 6 pays différent)
123018668453011775513049495838496272077285356959533
479219732245215172640050726365751874520219978646938
995647494277406384592519255732630345373154826850791
702612214291346167042921431160222124047927473779408
0665351419597459856902143413
peut être décomposé en
334780716989568987860441698482126908177047949837137
685689124313889828837938780022876147116525317430877
37814467999489
x
367460436667995904282446337996279526322791581643430
876426760322838157396665112792333734171433968102700
09:39 211
92798736308917
09:39 212
Protocole d‘échange de clés de
Diffie-Hellman (DH)
Alice et Bob veulent partager une clef secrète K, On
suppose que les données G, n = IGI et g sont
publiques.
• Alice:
1) Alice choisit un entier 1≤ a ≤ n-1,
2) Alice calcule A = ga et l'envoie à Bob.
• Bob:
1) Bob choisit un entier 1 ≤ b ≤ n-1,
2) Bob calcule B = gb et l'envoie à Alice.
• Alice est en mesure de calculer Ba et Bob de
calculer Ab. La clef commune est donc
K = Ab= Ba= ga.b .
09:39 213
Protocole d‘échange de clefs de DH
Alice et Bob
Se mettre d’accord sur n et g
-------------------------------------------------------------------------------------
génère a génère b
A=ga mod n B=gb mod n

A 
 B

(dispose de [a, A, B, n]) (dispose de [b, A, B, n])


Clé secrète K=Ba mod n Clé secrète K=Ab mod n

09:39 214
Protocole d‘échange de clés de DH
Exemple:
1. Alice et Bob choisissent un nombre premier p et
une base g, Dans notre exemple, p = 23 et g = 3
2. Alice choisit un nombre secret a = 6
3. Elle envoie à Bob la valeur ga mod p = 36 mod 23 =
16
4. Bob choisit à son tour un nombre secret b = 15
5. Bob envoie à Alice la valeur gb mod p =315 mod
23= 12
6. Alice peut maintenant calculer la clé secrète :
(gb mod p) a mod p = 126 mod 23 = 9
7. Bob fait de même et obtient la même clé qu'Alice :
(ga mod p) b mod p = 1615 mod 23 = 9
09:39 215
Protocole d‘échange de clés de DH
Exercice :
Supposons qu'Alice et Bob partagent p = 233 et
g = 45 :
si Alice choisit a = 11 et Bob b = 20, alors :
Quelle est leur clef secrète commune ?
Solution:
 ga= 4511 mod 233 = 147, gb= 4520mod 233 = 195,
 (gb)a mod p = 19511 mod 233 = 169 et
(ga)b mod p = 14720mod 233 = 169.
 Alice et Bob disposent d'une clé privée
09:39 commune : k = 169. 216
09:39 217
Le cryptosystème de El Gamal
• Le cryptosystème El Gamal est basée sur la
fonction à sens unique logarithme discret. On
considère un groupe cyclique fini, G, de
cardinal n engendré par un générateur, g.
Donc G={ gi|0 ≤ i ≤ n-1 }

• le calcul de gi est “facile”, mais le calcul de i


connaissant gi n’est “pas facile”.

• Si a=gi, i est appelé le logarithme discret de a.


09:39 218
Le cryptosystème de El Gamal
Description du cryptosystème de El Gamal:
• Soit p un nombre premier tel que le problème
du logarithme discret (DLP)dans Zp soit
difficile
• Soit g un générateur du groupe cyclique Z*p.
• Soit α un entier tel que 1 < α ≤ p− 2.
• Calculer A = g α dans G.
– Clef publique : (p, g, A),
– Clef secrète : α,
09:39 219
Le cryptosystème de El Gamal
Chiffrement:
Alice veut envoyer un message, M, à Bob
1. Bob choisit un grand nombre premier p, un
générateur g du groupe cyclique multiplicatif
Zp et un entier αb tel que 1 < αb ≤ p− 2

2. Bob calcule B=gαb ; alors le triplet (p, g, B)


constitue sa clé publique, αb est sa clé
secrète.
09:39 220
Le cryptosystème de El Gamal
Chiffrement:
3. Alice découpe le message M en blocs mi de
taille inférieure à p, elle choisit un entier ka (1
< ka≤ p− 2) pour chacun des blocs mi et
calcule
y1 ≡ gka mod p et y2 = Bka.mi mod p

4. La paire (y1, y2) est le message chiffré qu’Alice


envoie à Bob.

09:39 221
Le cryptosystème de El Gamal
Pour déchiffrer:
1. Bob calcule
mi ≡ y2((y1)αb )−1 mod p
Comme (y1)αb = (g)kaαb (mod p) on a:
y2((y1)αb )−1 mod p ≡ Bka. mi( gkaαb )−1 mod p
≡ (g)αbka mi(g)−αbka≡ mi mod p
et comme mi est inférieur p il n’y a pas
d’ambiguïté dans le déchiffrement.
• Pour une bonne sécurité, Alice doit changer
souvent ka.
09:39 222
Le cryptosystème de El Gamal
Exemple:
Prenons p = 11 et g = 2 qui est d'ordre maximal 10.
• Bob choisit a = 4:
– calcule ga= 24 mod 11 = 5 mod 11.
– La clé publique est p = 11, g = 2, ga= 5.

• Soit le message m = 3
• Alice choisit k = 6:
– calcule y1 =gk= 26 mod 11 = 9,
et Bk = 56 mod11 =5, puis y2 =mxBk = 3x5 mod 11 = 4.
– Alice envoie c =(9, 4).

• Bob calcule :
– y1-a = (94)-1 = 5-1 mod 11=9 mod 11,
09:39
– m=y2. y-a1 = 4x9= 3 mod 11. 223
09:39 225
Signature RSA(1/3)
Génération des paramètres : Identique à la génération
des clefs de RSA
• Alice choisit au hasard deux nombres premiers p et q.
– Alice calcule n = p.q
– Indicatrice d'Euler : Φ(n) =(p -1)(q-1)
• Alice choisit au hasard un entier e tel que
1 < e < Φ(n) et pgcd(e, Φ (n)) = 1
• Alice calcule alors l'entier d tel que e.d = 1 mod Φ(n).
– Clef publique : (n, e)
– Clef secrète : (n, d)
– On suppose disposer d'une fonction de hachage à sens
unique H connue publiquement.
09:39 226
Signature RSA(2/3)
Génération d'une signature RSA

Alice souhaite signer un document M:


– Alice calcule hM = H(M) (on suppose 0 <hM < n)

– Signature de M : s(M) = (hM)d mod n

– Le document signé est alors [M, s(M)].

09:39 227
Signature RSA(3/3)
Vérification d'une signature RSA
• Bob reçoit un document signé [M’ , s(M)] d'Alice.
Ce document est potentiellement altéré/illégitime
• Il récupère la clé publique d'Alice (n,e)
• Il calcule hM’ = H(M’)
• Il vérifie l'identité :
En effet : s(M)e= (hM)e.d mod n = hM mod n = hM
et si le document est authentique : hM = hM’ .
• La sécurité est donc celle du cryptosystème RSA.
• Présentation simpliste et en l‘état sujette à des
09:39 attaques 228
Signature RSA
Example :
Suppose Bob wants to send a signed message (x = 4) to
Alice. The first steps are exactly the same as it is done for
an RSA encryption: Bob computes his RSA parameters and
sends the public key to Alice. In contrast to the encryption
scheme, now the private key is used for signing while the
public key is needed to verify the signature.

Alice Bob
1. choose p = 3 and q = 11
2. n = p · q = 33
3. Φ(n)=(3−1)(11−1)= 20
4. choose e = 3
5. d ≡ e−1 ≡ 7 mod 20
(n,e)=(33,3)
09:39 ← −−−−−−−−−−− − 229
Signature RSA
Example (suite):
Alice Bob
compute signature for message
x = 4:
s = xd ≡ 47 ≡ 16 mod 33

(x,s)=(4,16)
← −−−−−−−−−−− −
verify:
x’= se ≡ 163 ≡ 4 mod 33
x’≡ x mod 33 =⇒valid signature

Alice can conclude from the valid signature that Bob generated
the message and that it was not altered in transit, i.e.,
message authentication and message integrity are given.
09:39 230
Signature El Gamal(1/3)
Key Generation for Elgamal Digital Signature
1. Choose a large prime p.
2. Choose a primitive element g of ZP∗.
3. Choose a random integer d ∈{2,3,..., p−2}.
4. Compute β = gd mod p .

• The public key is now formed by kpub =(p,g,β),


and the private key by kpr =d.

09:39 231
Signature El Gamal(2/3)
Elgamal Signature Generation
Sigkpr (x, kE)=(r, s), where x is the message.
1. Choose a random ephemeral key
kE∈{1,2,..., p − 2} such that gcd(kE, p−1)= 1.

2. Compute the signature parameters:


r ≡ gkE mod p,
s ≡ (x−d·r)k −1 mod p−1.
E

09:39 232
Signature El Gamal(3/3)
Elgamal Signature Verification
the signature is verified as verKpub(x, (r, s)) using
the public key, the signature and the message.

1. Compute the value


t ≡ βr·rs mod p
2. The verification follows from:
≡ gx mod p ⇒valid signature
t
!≡ gx mod p ⇒invalid signature
09:39 233
Signature El Gamal
We start with the verification equation:
Βr · rs≡ (gd)r(gkE )s mod p ≡ gdr+k s mod p.
E

• We require that the signature is considered valid


if this expression is identical to gx:
gx ≡ gdr+k s mod p. (1)
E

• According to Fermat’s Little Theorem, the


relationship (1) holds if the exponents on both
sides of the expression are identical modulo p−1:
x ≡ dr+kE s mod p−1
• from which the construction rule of the signature
parameters s follows:
s ≡ (x−d · r)k−1E mod p−1.
09:39 234
Signature El Gamal
Example :
Again, Bob wants to send a message to Alice. This
time, it should be signed with the El Gamal digital
signature scheme. The signature and verification
process is as follows:
Alice Bob
1. choose p = 29
2. choose g = 2
3. choose d = 12
4. β = αd ≡ 7 mod29
(p,g,β)=(29,2,7)
← −−−−−−−−−−− −
09:39 235
Signature El Gamal
Example :
Alice Bob
compute signature for message
m = 26:
choose kE = 5, note that
gcd(5,28)= 1
r = αkE ≡ 25 ≡ 3 mod 29
s =(m − d.r) kE−1 ≡(−10)·17 ≡
26 mod 28
(m,(r,s))=(26,(3,26))
← −−−−−−−−−−− −
09:39 236
Signature El Gamal
Example :
Alice Bob
verify:
t = βr·rs
≡ 73 · 326 ≡ 22 mod 29
am ≡ 226 ≡ 22 mod 29
t ≡gm mod 29 =⇒valid signature

09:39 237
FONCTIONS DE HACHAGE

09:39 238
Fonctions de hachage
• Les procédures de signature précédentes ont un
coût prohibitif pour signer des longs messages
car la signature est aussi longue que le message.
On double donc la longueur du texte à chiffrer.

• Pour réduire la longueur de la signature on peut


utiliser une fonction de hachage cryptographique,
ou fonction de condensation.

• C’est une fonction à sens unique qui sera


publique dans les applications.
09:39 239
Fonctions de hachage

09:39 240
Fonctions de hachage
Principal input–output behavior of hash functions

09:39 241
Fonctions de hachage
• Une fonction de hachage transforme un message de
longueur arbitraire en une empreinte numérique de taille
fixée, 160 bits(256,384 ou512).
• Pour des raisons de sécurité on tend à augmenter la
taille de l’empreinte.

Lorsqu’Alice souhaite envoyer un message signé, x:


• elle calcule d’abord l’empreinte numérique, z =h(x),
• elle signe avec y = signK(z) et transmet le couple (x,y) par
le canal de communication.

• Tout le monde peut vérifier la signature en calculant


l’empreinte z = h(x) et en utilisant le procédé de
vérification de la signature verK(z, y).
09:39 242
Fonctions de hachage
Construction des fonctions de hachage.
• La fonction de hachage doit être construite avec soin
pour qu’elle n’affaiblisse pas le protocole de signature.
Un opposant comme Oscar ne doit pas pouvoir forger la
signature d’Alice.

• Comme une fonction de hachage n’est évidemment pas


injective, il existe des couples de messages x′ et x tels
que h(x′) = h(x).

• L’attaque la plus évidente consiste pour Oscar à partir


d’un message signé(x, y) authentique (y = signK(x))
précédemment calculé par Alice à calculer z= h(x) et à
chercher x′ != x tel que h(x) = h(x′). Si Oscar y parvient
(x′,y) est un message valide.
09:39 243
Fonctions de hachage
Qualités que l’on exige d’une fonction de hachage:
• Résistance à la préimage
– Étant donné H(x) il est difficile de trouvé x

• Résistance à la seconde préimage


– Étant donné x1 et H(x1), il est dur de trouver x2!= x1
vérifiant H(x1)=H(x2)

• Résistance aux collisions


– Il est difficile de trouver x1 et x2 vérifiant x1!=x2 et
H(x1)=H(x2)
09:39 244
Fonctions de hachage

09:39 245
Fonctions de hachage
L’Algorithm SHA-1 : (Secure Hash Algorithm SHA-1)

• La fonction de hachage SHA-1 traite des messages de taille 512-


bit,
• SHA-1 produit une empreinte de taille 160-bits .
• La fonction de compression SHA-1 consiste en 80 tours divisés
en 4 étage de 20 tours chacun.

09:39 246
Fonctions de hachage
• Prétraitement du message
• k ≡ 512−64−1−l = 448−(l+1) mod 512.
• Le message est divisé en blocs de 512-bits
x1,x2, ... ,xn. Chaque bloc est subdivisé en 16
mots de 32 bits chacun. Par exemple, le Ième
bloc xi est divisé en: xi =(xi(0) xi(1) ... xi(15))
• Où xi(k) sont des mots de taille de 32 bits.

09:39 247
Fonctions de hachage
• Valeur initial de H0:
A = H0(0) = 67452301
B = H0(1) = EFCDAB89
C = H0(2) = 98BADCFE
D = H0(3) = 10325476
E = H0(4) = C3D2E1F0.

• Chaque message xi est traité par 4 étages avec


20 tours chacun comme le montre le schéma:
09:39 248
Fonctions de hachage

09:39 249
Fonctions de hachage
• Le diversification de messages calcule 80 mots
de 32 bits : W0,W1, ...,W79 pour chacun des 80
tours,
• Le mot Wj est dérivé des 512 bits composant
un bloc comme sui:
Wj = xi( j) 0≤j≤15
Wj = (Wj−16⊕Wj−14⊕Wj−8⊕Wj−3)≪1 16≤j≤79,

Où x ≪n est un décalage circulaire à gauche


du mot x par n positions.
09:39 250
Fonctions de hachage
• Les 4 étages de SHA-1 ont une structure similaire,
mais elles différent en fonction ft et en constantes
Kt , où 1 ≤ t ≤ 4.
• La sortie près 80 tours est additionnée mot à mot à
l’entrée Hi-1 modulo 232.
• L’opération du tour j de l’étage t est donnée par:
A,B,C,D,E =(E+ft(B,C,D)+(A)≪5 +Wj +Kt ),A, (B)≪30,C,D
• SHA-1 travail avec 5 registres de 32 bitsA,B,C,D,E

• la valeur de Hi est composée 5 mots de 32 bits chacun Hi(0),


Hi(1), Hi(2), Hi(3), Hi(4). Au début sont initialisé par H0, qui va
être remplacé par une nouvelle valeur après le traitement
de tous les éléments de bloc xi
09:39 251
Fonctions de hachage
Le jème tour de l’étage t de SHA-1

09:39 252
Fonctions de hachage
Le jème tour de l’étage t de SHA-1

∧ dénote le AND logique, ∨ dénote le OR.

09:39 253
Fonctions de hachage
Quelques exemple de fonctions de hachage:

09:39 254

Das könnte Ihnen auch gefallen