Description de A à Z de l'algorithme de chiffrement RC4 utilisé pour SSL, Web...
Détails des prodédures de chiffrement des algorithmes A5/1 & A5/2 utilisé par le GSM
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
Algorithme de chiffrement RC4, A5/1 & A5/2
1. ENSEIGNANT : Dr. BELL
ECOLE NATIONALE SUPERIEURE POLYTECHNIQUE
LES ALGORITHMES DE CHIFFREMENT
RC4 - A5/1 - A5/2
MEMBRES DU GROUPE:
BENANA MAX-JOEL
BINDJEME NLATE Christelle
MENKEN Vitalis TABU
DIBAM Levo
2. 1 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
Sommaire
INTRODUCTION GENERALE..................................................................................................................... 4
I. Introduction........................................................................................................................................ 4
CHAPITRE I. L’algorithme rc4........................................................................................................... 5
II. HISTORIQUE...................................................................................................................................... 5
III. QUELQUES RAPPELS sur le chiffrement .............................................................................. 5
LE CHIFFREMENT SYMETRIQUE............................................................................................ 5
LE CHIFFREMENT PAR FLUX..................................................................................................6
Chiffrement et déchiffrement avec XOR............................................................................... 8
IV. ETAPES DE L’ALGORITHME RC4 ........................................................................................... 8
V. CHIFFREMENT.............................................................................................................................. 9
1. KEY SCHEDULINGALGORITHM (KSA) .................................................................................... 9
2. RANDOM GENERATOR ALGORITHM (PRGA) .....................................................................11
3. CHIFFREMENT PROPREMENT DIT..........................................................................................12
VI. DECHIFFREMENT.......................................................................................................................13
VII. LES APPLICATIONS DU RC4...................................................................................................13
Oracle secure SQL .......................................................................................................................13
SSL : SECURE SOCKET LAYER ................................................................................................13
WEP ................................................................................................................................................13
VIII. ATTAQUES CONTRE RC4.........................................................................................................15
FLUHRER, MANTIN, SHAMIR, 2001 (FMS) .........................................................................15
KOREK, 2004................................................................................................................................15
KLEIN, 2006..................................................................................................................................16
ERIK TEWS, WEINMANN, PYSHKIN, 2007 .........................................................................16
3. 2 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
IX. AVANTAGES ET INCONVÉNIENTS DU RC4....................................................................... 17
LES AVANTAGES........................................................................................................................ 17
LES INCONVENIENTS................................................................................................................18
X. RENFORCEMENT DU RC4 ...........................................................................................................18
CHAPITRE II. SYSTEME DE CHIFFREMENT A5..........................................................................20
I. Introduction......................................................................................................................................20
II. Quelques définitions.......................................................................................................................20
1. Système de chiffrement à flot .............................................................................................20
2. Système de chiffrement symétrique ..................................................................................21
3. GPA.............................................................................................................................................21
4. Chiffrement synchrone...........................................................................................................21
5. Chiffrement asynchrone.......................................................................................................22
6. Registre à décalage à rétroaction linéaire .....................................................................22
III. Généralités sur le GSM ..............................................................................................................24
1. Architecture GSM................................................................................................................................24
2. Sécurité du GSM.............................................................................................................................26
IV. Système de chiffrement A5/1...................................................................................................29
1. Historique..........................................................................................................................................29
2. Principe de fonctionnement du A5/1........................................................................................29
V. SYSTEME DE CHIFFREMENT A5/2............................................................................................... 35
Historique ..................................................................................................................................... 35
Principe de fonctionnement.................................................................................................... 35
VI. Attaques .......................................................................................................................................40
VII. COMPARAISON ENTRE A5/1 ET A5/2 :.................................................................................41
1. Différences fondamentales entre A5/1 et A5/2 :..................................................................41
4. 3 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
2. Différence de performances :...................................................................................................41
Conclusion générale....................................................................................................................................43
Webographie et bibliographie ................................................................................................................44
5. 4 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
INTRODUCTION GENERALE
I. INTRODUCTION
De nos jours, nous n’aimerions pas toujours que lors d’une conversation, une personne non-
autorisée écoute ce de quoi nous parlons. De même, dans les grandes compagnies
(banques, assurances, mutuelles….) et le domaine de la défense, certaines informations ne
peuvent être accessibles qu’aux personnes privilégiées. Bref, lorsqu’on veut restreindre
l’accès à des informations, on se pose le problème de leur sécurité. Ainsi, des moyens très
élaborés ont été mis sur pied pour sécuriser les données à transmettre via des méthodes et
techniques mathématiques et algorithmiques fiables : le cryptage. C’est le processus par
lequel on transforme des données (texte, image, vidéo…..) compréhensible en des données
chiffrées dans le but de dissimuler sa compréhension tout en la rendant accessible et de ce
fait, prévenir et empêcher un destinataire non-autorisé de pouvoir récupérer le message
original.
Ainsi, dans le cadre de cette unité d’enseignement
6. 5 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
CHAPITRE I. L’ALGORITHME RC4
II. HISTORIQUE
RC4 (pour Rivest Cipher 4) a été conçu par Ronald Rivest en 1987, pour RSA
Security. Il fut d’abord vendu avec des accords de confidentialité et resta donc longtemps
secret. Mais en septembre 1994, un abonné anonyme de la mailing List cypherpunk publie
un code source, vraisemblablement issu de la rétro-ingénierie d’un programme compilé,
qu’il affirme être RC4. Plusieurs utilisateurs confirmeront par la suite la compatibilité de
ce code avec le code propriétaire de RSA Security.
Il existe une version allégée du chiffrement RC4, portant le nom d’ARC4 (Alleged RC4),
utilisable légalement. Le RC4 reste la propriété de RSA Labs.
III. QUELQUES RAPPELS SUR LE CHIFFREMENT
Le chiffrement a pour but de garantir la confidentialité des communications.
LE CHIFFREMENT SYMETRIQUE
Il s’agit d’un procédé de chiffrement dans lequel la clé de chiffrement est la même que la
clé de déchiffrement.
Illustration
‘‘ξ est le message à chiffrer et D le message chiffrer’’
7. 6 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
LE CHIFFREMENT PAR FLUX
a) Idée sous-jacente : Le chiffre de Vernam
Le chiffre de Vernam, ou « One-Time-Pad » ou « masque jetable » a été proposé en 1917
par Gilbert Vernam, ingénieur à l'American Telephone and Telegraph Company, chargé de
la sécurité des téléscripteurs. Il a été perfectionné par Joseph O. Mauborgne, chef du service
cryptographique de l'armée américaine, qui y introduisit la notion de clé aléatoire.
Sa sécurité a été prouvée pour autant que la clé de chiffrement soit aussi longue
que le message à chiffrer, qu'elle soit aléatoire et utilisée une seule fois.
Ce système présente des avantages dans la mesure où n'importe quel message
chiffré peut être obtenu pour un message clair donné. La seule attaque possible consiste
donc à déterminer l'ensemble de la clé.
Le système mis au point par Vernam, bien qu'apportant une sécurité optimale, est
très peu d'usage dans le monde civil, et est surtout réservé à des organismes possédant des
moyens importants. En effet, tout le monde n'est pas en mesure d'utiliser des clés de la
manière décrite plus haut:
Générer des clés gigantesques (puisqu'au moins la taille de l'ensemble des messages
à envoyer comme clé) nécessite une grande puissance de calcul ;
Transporter de telles clés, dont le secret doit être maintenu à tout prix, n'est pas
chose aisée.
La nécessité de disposer de clés aléatoires de même longueur que le message, et de
ne les utiliser qu'une fois, rend le système impraticable si l'on ne dispose pas de la logistique
nécessaire à l'échange de ces clés.
b) Chiffrement Par Flux
Les chiffrements par flux s'inspirent du chiffre de Vernam mais utilisent une suite
pseudo-aléatoire, générée à partir de quelques bits de clé réellement aléatoires. Les
8. 7 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
données sont traitées en flux. Il peut s’agir d’un traitement bit par bit ou d’un chiffrement
octet par octet (cas du RC4).
Ses principales caractéristiques sont les suivantes :
Il est indifférent au contenu du message et sa longueur pour débuter la procédure
de chiffrement;
La génération de pseudo-alea, appelé flux de clé (Key Stream) que l'on combine
(souvent par XOR) avec le flux de données.
Illustration
En pratique un chiffrement par flux est réalisé en utilisant un générateur pseudo-
aléatoire.
c) Générateur de nombres pseudo-aléatoires
Un générateur de nombres pseudo-aléatoires, pseudo random number generator
(PRNG) en anglais, est un algorithme qui génère une séquence de nombres présentant
certaines propriétés du hasard. Par exemple, les nombres sont supposés être
approximativement indépendants les uns des autres, et il est potentiellement difficile de
repérer des groupes de nombres qui suivent une certaine règle (comportements de groupe).
Cependant, les sorties d'un tel générateur ne sont pas entièrement aléatoires ; elles
s'approchent seulement des propriétés idéales des sources complètement aléatoires. John
Von Neumann insista sur ce fait avec la remarque suivante : « Quiconque considère des
méthodes arithmétiques pour produire des nombres aléatoires est, bien sûr, en train de
commettre un péché ». De vrais nombres aléatoires peuvent être produits avec du matériel
9. 8 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
qui tire parti de certaines propriétés physiques stochastiques (bruit d'une résistance par
exemple).
La raison pour laquelle on se contente d’un rendu pseudo-aléatoire est d’une part
qu’il est difficile d’obtenir de « vrais » nombres aléatoires et que, dans certaines situations, il
est possible d’utiliser des nombres pseudo-aléatoires, en lieu et place de vrais nombres
aléatoires ; d’autre part, que ce sont des générateurs particulièrement adaptés à une
implantation informatique, donc plus facilement et plus efficacement utilisables.
Chiffrement et déchiffrement avec XOR
Soit l'opération booléenne XOR :
Chiffrement du message M avec la clé K :
Déchiffrement du message C avec la clé K :
IV. ETAPES DE L’ALGORITHME RC4
Etant donné un message clair à chiffrer
Choisir une clé de chiffrement;
Créer deux tableaux S et T de 256 cases chacun devant contenir des octets;
Initialiser S avec les nombres de 0 à 255 dans cet ordre;
Remplir T avec la clé;
10. 9 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
Effectuer des permutations aléatoires d’éléments de S en fonction d’éléments de T;
Ré-effectuer des permutations aléatoires d’éléments de S suivant un schéma basé
sur la configuration actuelle de S pour obtenir le flux de clés final;
Effectuer un ou-exclusif entre le flot de clés final et le message clair à chiffrer.
V. CHIFFREMENT
1. KEY SCHEDULINGALGORITHM (KSA)
Cet algorithme fonctionne sur les octets. Ainsi, la clé, de longueur variable, peut avoir une
taille comprise entre 1 et 256 octets (de 8 à 2048 bits). Elle est utilisée pour initialiser un
vecteur S de 256 octets. A tout moment, S contient une permutation de toutes les cellules le
composant. La clé est utilisée pour mélanger le tableau le mieux possible (On échange
chaque élément avec un autre élément choisi en fonction de la clé); ainsi le tableau (par
permutations) évolue à chaque tour. Cet algorithme est appelé Key Scheduling Algorithm,
ou KSA.
# Initialisation de la permutation identité
Initialement, les cellules de S reçoivent une valeur égale à leur position (i.e., S
[0]=0, S[i]=i, ...)
Ainsi la première instruction de notre algorithme sera:
For i = 0 to 255 do
S[i ] := i ; // permutation identité
Un vecteur temporaire T (de longueur égale à celle de S) est également créé et destiné à
recevoir la clé.
11. 10 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
Si la longueur ‘len’ de la clé K est égale à 256 octets, K est simplement transféré dans
T.
Si K est inférieur à 256 octets, il est recopié dans T jusqu’à atteindre la taille de T.
Dans notre algorithme, ce qui précède s’écrit (pour une clé K de longueur l):
T[i] = K [i mod len];
Le vecteur temporaire T est ensuite utilisé pour produire la permutation initiale de S. Pour
chaque cellule S[i] de S, celle-ci sera échangée avec une autre cellule de S selon un calcul
basé sur la valeur comprise dans la cellule T[i] correspondante.
Tout comme l’initialisation des vecteurs, on peut représenter la permutation initiale de S
comme suit :
j = 0;
FOR i = 0 TO 255 DO
12. 11 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
j = (j + S[i] + T[i]) mod 256;
SWAP(S[i], S[j]);
2. RANDOM GENERATOR ALGORITHM (PRGA)
Il s’agit de la Génération du flux pseudo aléatoire. A partir de cet instant, la clé
d’entrée n’est plus utilisée. Pour chaque S[i], on procèdera à un échange avec un autre
octet de S, selon un schéma basé sur la configuration courante de S. Une fois arrivé à S
[255], le processus redémarre à la cellule S [0]. La figure suivante présente la procédure.
A nouveau, on peut illustrer algorithmiquement la méthode (on parle de PRGA pour
Pseudo-Random Generation Algorithm) :
13. 12 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
i, j = 0;
WHILE génération DO // tant qu’il y’a un octet à chiffrer
i = (i +1) mod 256;
j = (j + S[i]) mod 256;
SWAP (S[i], S[j]);
t = (S[i] + S[j]) mod 256;
k = S[t];
3. CHIFFREMENT PROPREMENT DIT
La valeur de k est alors utilisée pour le chiffrement (⊕ avec le prochain octet de
texte clair).
Les étapes : Deux et trois peuvent être résumé de la façon suivante :
GPA
14. 13 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
VI. DECHIFFREMENT
La même valeur de k est utilisée pour le déchiffrement (⊕ avec le prochain
octet de texte chiffré).Ceci se justifie par le fait que ⊕ est une loi de groupe qui est son
propre inverse.
VII. LES APPLICATIONS DU RC4
Oracle secure SQL
Oracle est un SGBD (système de gestion de bases de données) édité par la société du
même nom (Oracle corporation), leader mondial des bases de données qui permet
d’assurer la définition, la manipulation, la confidentialité, l'intégrité, la sauvegarde et la
restauration des données .Il utilise le chiffrement par RC4 pour crypter les données.
SQL (Structured Query Language.) : Langage d'interrogation de bases de données.
SSL : SECURE SOCKET LAYER
SSL (Secure Socket Layer) est un protocole de sécurisation des échanges,
développé par Netscape. Il a été conçu pour assurer la sécurité des transactions sur Internet
(notamment entre un client et un serveur), et il est intégré depuis 1994 dans les navigateurs.
SSL utilise le RC4 pour garantir la confidentialité.
WEP
Le WEP (Wired Equivalent Privacy) est un protocole de sécurité pour les
réseaux sans fils définis dans le standard 802.11. Le WEP utilise l’algorithme RC4 pour chiffrer
15. 14 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
les paquets envoyés depuis le point d’accès ou un client du réseau. Dès qu’un paquet est
reçu, il est déchiffré. Le WEP utilise une clé partagée pouvant aller de 40 à 232 bits, le point
d’accès et les clients utilisent cette clé pour chiffrer et déchiffrer les données.
Pour être plus précis, chaque paquet est chiffré à l’aide d’une seule clé qui est, en fait, un
vecteur d’initialisation (initialization vector IV en anglais) qui, change à chaque fois qu’il
est concaténé avec la clé partagée. On obtient ainsi des clés allant de 64 à 256 bits. Cette
clé va être donnée à l’algorithme RC4 qui va retourner un Key Stream; on fait ensuite un
XOR avec les données à chiffrer pour obtenir le cryptogramme que l’on concatène avec le
vecteur d’initialisation avant de transmettre le tout.
A la réception, on récupère le vecteur d’initialisation transmis, on le concatène avec la clé
secrète ; RC4 nous retourne alors le même Key Stream. Après un XOR entre le Key Stream
et le cryptogramme, on obtient les données déchiffrées.
Le schéma suivant illustre le chiffrement et le déchiffrement sur le WEB :
16. 15 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
VIII. ATTAQUES CONTRE RC4
FLUHRER, MANTIN, SHAMIR, 2001 (FMS)
Les premières attaques contre RC4 consistaient à différencier un flux généré par
RC4, d’un flux parfaitement aléatoire. En 2001, S. Fluhrer, I. Mantin et A. Shamir publient
un article ou ils décrivent une faille dans RC4, et comment elle peut être exploitée, en
particulier, pour casser la clé utilisée par le WEP.
L’idée principale est la suivante : la clé de session utilisée par chaque paquet est construite
en concaténant un vecteur d’initialisation de 24 bits à la clé partagée. Ils parviennent à
montrer que, pour certaines valeurs spécialement choisies du vecteur d’initialisation, le
premier octet généré par le PRGA a une probabilité importante (≈ 1/e) d’être un octet
précis de la clé. Cette attaque est une attaque à clair connu (elle suppose de connaitre le
premier octet du Key Stream). Elle nécessite en outre un grand nombre de vecteurs
d’initialisation répondant à des conditions spécifiques, ainsi que le premier octet associé.
Il faut généralement entre 1 et 4 millions de paquets pour avoir suffisamment d’ IV ”faibles”
pour réussir l’attaque.
KOREK, 2004
En 2004, un individu publie, sous le pseudonyme Korek, une série d’attaques
statistiques contre RC4. Ces attaques, au nombre de 15, sont pour la plupart des
généralisations de l’attaque FMS. Ces attaques peuvent être décomposées en trois classes :
celles utilisant le premier octet du Key Stream pour retrouver la clé ;
celles utilisant les deux premiers octets du Key Stream pour retrouver la clé ;
celles permettant simplement de réduire l’espace de recherche des clés, en
particulier en permettant de retrouver un octet précis de K.
Chacune des attaques est lancée l’une après l’autre, jusqu’ à ce que l’une d’elles trouve la
clé. En pratique, 500000 paquets capturés suffisent à casser la majorité des clés WEP.
17. 16 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
Chaque attaque est accompagnée d’une liste de conditions sur le KSA et le PRGA après
initialisation partielle. Si ces conditions sont vérifiées, le paquet peut être utilisé.
KLEIN, 2006
En 2006, Andreas Klein propose une nouvelle attaque qui ne nécessite pas de
resolved condition. Cela réduit considérablement le nombre de paquets à capturer
puisqu’ils peuvent tous être utilisés.
Il est donc possible, en examinant suffisamment d’IV et le Key Stream associé, de retrouver
un à un chaque octet de la clé. Le nombre de paquets à examiner serait plus important
que pour les attaques précédentes, mais comme tous les paquets sont utilisables, le nombre
de paquets à capturer est considérablement plus faible.
ERIK TEWS, WEINMANN, PYSHKIN, 2007
En 2007, Erik Tews, Ralf-Philipp Weinmann, et AndreiPyshkin reprennent
l’attaque de Klein, et l’optimisent pour attaquer le protocole WEP. Leur attaque propose
deux avancées majeures par rapport à celle de Klein.
Tout d’abord, alors que les attaques précédentes n’utilisaient que les premiers
octets des paquets, la leur utilise 128 bits, soit 16 octets. Pour ce faire, ils collectent
exclusivement des paquets correspondant à des requêtes ARP. Ceci est possible car ces
trames font toutes 68 octets. La structure de ces paquets étant toujours la même (à un bit
près), ils sont capable de retrouver 64 octets de Key Stream par paquet.
Par ailleurs, l’attaque de Klein retrouve les octets de la clé partagée un par un,
et retraite à chaque fois la totalité des paquets. L’attaque PTW, elle, construit en une seule
fois une table de votes intermédiaires qui est ensuite utilisée pour calculer tous les octets de
la clé.
Enfin, l’attaque utilise aussi un certain nombre d’heuristiques pour détecter
d’éventuels octets «forts »de la clé, et les attaquer par brute force. Cette attaque est à ce
18. 17 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
jour la plus rapide. Il est possible, simplement en capturant une requête ARP, de l’injecter
en boucle pour générer des réponses ARP. Dans des conditions idéales, il suffit d’une minute
pour collecter assez de paquets. L’attaque elle-même dure quelques secondes.
IX. AVANTAGES ET INCONVÉNIENTS DU RC4
LES AVANTAGES
Le premier avantage qu’a le RC4 sur la majeure partie des algorithmes de
chiffrement, est sa vitesse de chiffrement élevée :
Algorithme Longueur de la clé Vitesse (en Mbps)
DES 56 9
3DES 168 3
RC4 Variable (5-16 octets)
Max 2048 bits
45
19. 18 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
A5/1 64 bits >50
Il est très simple.
En plus le message clair à la même taille que le chiffré.
RC4 permet d’atteindre des performances logicielles.
LES INCONVENIENTS
RC4 est vulnérable à plusieurs attaques (citer ci-dessus).
X. RENFORCEMENT DU RC4
Il semblerait que le RC4 soit toujours sûre pour autant que certaines conditions
soient remplies au niveau de la clé d’initialisation comme l’utilisation d’une fonction de
hachage ou d’un nonce. Parce que le RC4 est un algorithme de chiffrement par flot, la
même clé ne doit pas être utilisée deux fois pour chiffrer les données échangées. C'est la
raison de la présence d'un vecteur d'initialisation (IV). Ce vecteur, transmis sans protection,
permet d'éviter la répétition. Cependant, une IV de 24 bits n'est pas assez long pour éviter
ce phénomène sur un réseau très actif.
20. 19 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
Nous retenons, du RC4 qu’il nous propose un système de chiffrement sur trois étapes:
l’initialisation
la génération de flux de clés
le chiffrement proprement dit.
Cependant rappelons-nous qu’il n’est qu’un cas isolé dans la famille RC qui traite des
données par flux. Pour les autres chiffrements de la famille RC il s’agit d’un chiffrement par
bloc. C’est le cas du standard RC2 présenté dans la suite.
21. 20 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
CHAPITRE II. SYSTEME DE CHIFFREMENT A5
I. INTRODUCTION
Le téléphone fixe a révolutionné le concept de la télécommunication vocale, mais avec
l’évolution du temps, le manque de mobilité s’est avéré être un sérieux problème. De plus,
le délai lors de l’établissement des communications et la sécurité précaire constituaient un
véritable problème. La première génération de communication mobile (AMPS) a alors été
introduite. Ici encore, on retrouve certains problèmes comme le clonage des téléphones,
l’appel aux frais d’une autre personne, et même la possibilité d’intercepter des appels
téléphoniques dans le canal Hertzien et espionner ainsi les discussions. En 1982, la deuxième
génération est adoptée, plus connue sous le nom de GSM (Global System For Mobile
Communication). Il a pour but de résoudre le problème d’usurpation d’identité et même
celui d’espionnage. Ceci se fait à l’aide de l’implémention de forts moyens
d’authentification et de confidentialité entre la MS (Mobile Station) et la BTS (Base
Transceiver Station). C’est donc, à ce niveau que A5 intervient. En effet, A5 est une famille
d’algorithmes de chiffrement symétrique à flot synchrone constituée d’A5/0, A5/1, A5/2
…etc, qui sont des systèmes de chiffrement qui viennent résoudre le problème d’espionnage
lors des communications GSM. A cet effet nous nous proposons dans le cadre de cette partie
de l’exposé d’étudier consécutivement le système de chiffrement A5/1 et ensuite son dérivé
A5/2.
II. QUELQUES DEFINITIONS
1. Système de chiffrement à flot
Encore appelée chiffrement en continu (Stream-Cipher), c’est un système de chiffrement
(symétrique) 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 si produit par un générateur pseudo-aléatoire.
On a donc :
mi + si = ci (chiffrement)
22. 21 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
ci + si = mi (déchiffrement)
Où ci est le cryptogramme et si la séquence de chiffrement.
2. Système de chiffrement symétrique
Encore appelée système de chiffrement à clé secrète, c’est un système qui utilise une seule et
même clé lors du chiffrement et du déchiffrement par opposition au système de chiffrement
asymétrique.
Figure 1: Illustration d’un système de chiffrement symétrique
3. GPA
Un générateur pseudo-aléatoire de symbole (GPA), est un automate à nombre fini d’état,
qui à partir de la donnée d’un nombre fini de symbole produit une suite potentiellement
illimitée de symbole qui a l’apparence d’une suite aléatoire.
4. Chiffrement synchrone
Le chiffrement est dit synchrone si les données produites par le GPA ne dépendent que de
son état interne et non du message à chiffrer.
On a le schéma suivant :
23. 22 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
Figure 2 : schéma de système de chiffrement à flot synchrone
5. 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 clair.
Figure 3 : schéma des systèmes de chiffrement à flot synchrone.
6. Registre à décalage à rétroaction linéaire
Un registre à décalage à rétroaction linéaire encore LFSR (Linear Feedback Shift Register),
est la donnée :
1. d’un registre de L cases contenant chacune un bit s t, s t+1,…, s t+L-1 ;
2. et une fonction linéaire de rétroaction « f » calculant un bit St+L par combinaison
de certains bits du registre.
24. 23 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
Au top d’horloge t, le bit st sort du registre, tous les bits sont décalés d’un rang vers la
gauche, et st+L entre dans le registre comme l’illustre le schéma suivant :
Avant le top d’horloge t, St+L se présente à l’entrée du registre :
Après le top d’horloge t, St+L est introduit dans le registre tandis que St en est expulsé :
Figure 4 : Principe du décalage
25. 24 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
III. GENERALITES SUR LE GSM
1. ARCHITECTURE GSM
Les différents éléments de l’architecture GSM sont :
Les MS (Mobile Station) et la SIM
Le terminal mobile contient la carte SIM. Dans cette dernière sont gravées des
informations secrètes propres aux données de l’utilisateur
L’IMSI (International Mobile Subcriber Identity), qui est un numéro unique
identifiant l’abonnement à la carte SIM.
Ki, la clé privée de 128 bits de la carte SIM, dont l’utilisation sera expliquée
ultérieurement dans le rapport.
L’ICCID (Integrated Circuit Card ID), un numéro unique identifiant la SIM.
Ce numéro est également gravé à côté de la puce dans la plupart des cas.
Les BTS (Base Transceiver Station)
Les BTS sont les liens entre les terminaux mobiles et les BSC.
Ces équipements possèdent une interface vers un BSC et une antenne permettant la
communication avec les terminaux mobiles de sa zone, via l’interface Um (air). Ce sont les
communications entre cet équipement et les terminaux mobiles qui seront étudiées dans la
suite du rapport. Les communications entre ces équipements et les terminaux mobiles sont
donc chiffrées. Ces différents équipements définissent des cellules, c’est à leur zone de portée.
Les BSC (Base Station Controller)
26. 25 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
Les BSC communiquent avec les BTS via l’interface Abis et avec les MSC via l’interface A.
Cet équipement est relié généralement à plusieurs BTS et permet de grouper ces dernières.
Les MSC (Mobile Switching Center)
Les MSC sont les éléments principaux de l’architecture GSM. Ils contrôlent le trafic entre
plusieurs BSC auxquels ils sont connectés, et contrôle également le trafic eux et les autres
MSC. Ce sont ces équipements qui sont connectés aux passerelles des autres opérateurs et
permettent les appels vers ces derniers, ainsi que vers des lignes fixes, via le routage des
paquets la localisation des différents qu’ils assurent. Ce sont ces équipements qui assurent la
localisation des différents utilisateurs, ainsi que la gestion des connexions vers les MS qui sont
connectées aux BTS que la MSC contrôle. Ce contrôle est possible grâce au VLR associé à
chaque MSC.
Les VLR (Visitor Location Register)
Les VLR contiennent les informations sur les utilisateurs actuellement présents dans la zone
de couverture du MSC. Les VLR sont donc temporaires. A chaque fois qu’un utilisateur
rentre dans une nouvelle zone, les VLR obtiennent les informations sur ces derniers en
envoyant une requête HLR correspondant. Ils informent donc les HLR de la zone couverte
dans laquelle l’utilisateur se situe.
Pour chaque utilisateur, le VLR contient :
Son numéro unique d’identifiant (IMSI)
Son numéro temporaire d’identification (TMSI)
Le numéro de téléphone international de l’utilisateur (MSISDN)
Le numéro d’identification du téléphone de l’utilisateur
Les services auxquels l’utilisateur a accès
Les données d’authentification de l’utilisateur
Un utilisateur ne peut donc être que dans un VLR à la fois. Les VLR sont remis à jour
fréquemment.
Les HLR (Home Location Register) et EIR (Equipment Identity Register)
Les EIR sont toujours intégrés aux HLR. Les EIR contiennent une liste des IMEI des différents
terminaux, dont ceux bannis du réseau (par exemple pour vol ou perte). Ces derniers
permettent donc le traçage des terminaux volés, ainsi que le refus d’accès au réseau pour
ces derniers.
Les HLR sont les “registres centraux” contenant les informations sur les abonnés. Un
abonné a ses informations stockées dans un HLR de l’operateur. C’est ce HLR qui transmet
ces informations aux VLR lors de notre connexion dans une zone. Les HLR mémorisent la
position de l’abonné telle qu’elle leur est transmise par les VLR. Ce sont les HLR qui effacent
les informations sur les utilisateurs des VLR quand ces derniers ont changé de zone. Les
27. 26 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
HLR contiennent donc les informations sur l’abonnement des utilisateurs. Il peut y avoir
un ou plusieurs HLR par opérateur.
Pour chaque Utilisateur étant inscrit dans un HLR, ce dernier contient
• Son numéro unique d’identification (IMSI)
• Le numéro de téléphone international de l’utilisateur(MSISDN)
• Les services auxquels l’utilisateur a accès
• L’identité du VLR de la zone dans lequel l’utilisateur se trouve
Les HLR sont mis à jour fréquemment.
Les AuC (Authentication centre)
Les AuC sont utilisés à chaque mise en route de téléphone (et donc connexion au réseau),
afin d’authentifier les cartes SIM des utilisateurs. C’est cette entité qui génère les
différentes variables cryptographiques qui seront ensuite utilisées pour le chiffrement de la
communication. Les différents mécanismes d’authentification seront détaillés dans la section
suivante. C’est cette entité qui permet d’éviter le clonage de carte SIM.
2. Sécurité du GSM
Parmi les nombreuses procédures misent en place pour assurer la sécurité du GSM, on a
l’authentification et la confidentialité.
a) L’authentification
La procédure d’authentification se divise en 5 étapes :
1. En utilisant le code PIN de l’utilisateur, le téléphone obtient de la carte SIM les
informations suivantes :
• L’IMSI (International Mobile Subscriber Identity) qui est un code d’identification
unique et universel pour GSM.
• Ki qui est une clé privée propre à chaque carte SIM. Celui-ci est sensible et n’est
jamais transmis tel quel par voie aérienne ; on préférera utiliser l’IMSI pour l’identification.
2. Le terminal envoie ensuite son IMSI à la BTS. Cette dernière transmet cet IMSI au
HLR/AuC, qui lui connait la clé privée Ki de la SIM.
3. L’AuC génère un nombre aléatoire de 128 bits, ici appelé RD, et le transmet au terminal
via la BTS.
28. 27 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
4. Le terminal détermine une réponse signée (SRES) a partir de l’algorithme A3 (SRES = A3
(RD, Ki)), ainsi qu’une clé de session Kc à l’aide de l’algorithme de chiffrement A8 (Kc = A8
(RD, Ki)).
5. Le terminal renvoie ensuite la SRES calculée à la HLR/AuC, et cette dernière vérifie que
cette réponse SRES est similaire à celle qu’il a calculée.
Le cas échéant, le terminal est authentifié, et ce dernier commence à communiquer en
utilisant sa clé Kc, qui sera également utilisée pour le chiffrement via l’algorithme A5, dont
le fonctionnement sera détaillé ci-après.
Figure 5 : procédure d’authentification de l’abonné.
b) La confidentialité des communications
La confidentialité quant à elle empêche l’écoute par un usager non autorisé de la
communication. Comme solution à ce problème de confidentialité, les mêmes éléments
RAND et K i suscités sont passés en paramètres de l’Algorithme A8, implémenté dans la
carte SIM et dans l’AUC, qui produit un résultat (clé) Kc. Cette clé Kc sert de clé de
chiffrement pour le trafic de la communication entre le mobile et la BTS.
29. 28 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
Un algorithme de chiffrement A5 présent sur la MS et la BTS est alors utilisé pour
chiffrer et déchiffrer les données de la communication.
Ce processus se résume par le schéma suivant :
Figure 7 : principe de la confidentialité des communications
Il a donc été montré que les seules communications chiffrées sont entre les terminaux
mobiles et non pas de bout en bout des communications dans l’architecture GSM. C’est ce
lien terminal mobile/BTS qui va être la cible d’attaques potentielles, qui vont être
expliquées par la suite.
Utilisation d’A5 dans le protocole GSM
Apres une authentification correcte auprès de la base GSM, le téléphone est en
possession d’une clé privée de session Kc. Dans le standard GSM, les parties communicantes
échangent leurs données en trames de 228 bits toutes les 4.6 millisecondes. La
communication se fait en full-duplex, ces 228 bits représentent les 114 bits de données
montantes et les 114 bis de données descendantes. Le chiffrement de ces données va
se faire selon deux critères :
• La clé privée de session Kc
30. 29 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
• Le numéro de trame (Frame Number) qui lui est publiquement connu.
IV. SYSTEME DE CHIFFREMENT A5/1
1. Historique
L'algorithme A5/1 a longtemps été conservé secret. Une première description est publiée par
Ross Anderson dans un groupe de discussion. Cette description, obtenue par analyse d'une
implantation, était incorrecte sur plusieurs points, mais montrait déjà la structure interne du
système. Une seconde description a été publiée en 1999 par Marc Briceno, Ian Goldberg et
David Wagner. Elle diffère de celle de Ross Anderson par le détail des registres à
décalage utilisés. Elle est distribuée sous la forme de code source en « C », sous l'égide de la
Smartcard Developer Association, qui annonce avoir vérifié l'exactitude de la
description. Alex Biryukov, Adi Shamir et David Wagner en ont tiré une cryptanalyse, et
annoncent, dans leur article, avoir reçu confirmation du groupement GSM qu'il s'agit bien
de l'algorithme tel qu'utilisé dans la norme.
2. Principe de fonctionnement du A5/1
La structure de A5/1 est basée sur 3 registres à décalage avec une rétroaction linéaire;
on les notes R1, R2 et R3. Ils ont une longueur de 19, 22 et 23 bits respectivement.
Son principe de fonctionnement suit deux grandes étapes à savoir : l’initialisation du
système et la génération de la séquence de chiffrement.
a) Initialisation du système
L’initialisation du système ici n’est rien d’autre que l’initialisation des registres.
Elle se fait à l’aide de la clé de chiffrement de 64bits(Kc) (mais son implémentation dans le
GSM se fait avec une clé de 54 bits où les 10 autres bits sont mis à zéro) et du compteur de
bloc de 22 bits. On procède comme suit :
1- Tous les registres sont mis à zéro
2- On effectue 64 cycles pendant lesquels la clé de 64bits est introduite dans le
système
2.1- Pour le bit Kc[i] de la clé Kc on effectue un OU EXCLUSIF (Xor) avec le bit de
poids le plus faible de chaque registre
31. 30 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
2.2- Tous les registres sont décales d’un cran
3- On effectue 22 cycles pendant lesquels le compteur de bloc Fn est introduit dans le
système
3.1- Pour le bit Fn[i] du compteur, on effectue un OU EXCLUSIF (Xor) avec le bit de
poids le plus faible de chaque registre
3.2- On décale ensuite tous les registres d’un cran.
4- On effectue 100 cycles dans les registres, où dans chaque cycle on effectue juste un
décalage conformément à la loi de décalage du système lui-même, et on se débarrasse des
bits obtenus au bout de ces 100 cycles. Cette étape permet de rendre plus complexe l’état
interne du GPA.
Une autre façon de rédiger cet algorithme est la suivante :
1. R1 = R2 = R3 = 0
2. For i = 0 to 63 do
R1[0] = R1[0] ⊕ Kc[i]
R2[0] = R2[0] ⊕ Kc[i]
R3[0] = R3[0] ⊕ Kc[i]
Décaler simultanément tous les registres sans tenir compte de la règle de décalage
3. For i = 0 to 21 do
R1[0] = R1[0] ⊕ COUNT[i]
R2[0] = R2[0] ⊕ COUNT[i]
R3[0] = R3[0] ⊕ COUNT[i]
Décaler simultanément tous les registres sans tenir compte de la règle de décalage
32. 31 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
4. For i = 0 to 99 do
Décaler tous les registres en tenant compte cette fois de la règle de décalage
Après le processus d’initialisation, nous allons donc produire la séquence de
chiffrement.
b) Production de la séquence de chiffrement
La séquence de chiffrement est constituée du résultat sous forme de bits de notre système et
qui sera utilisée pour le chiffrement proprement dit de la communication. Comme
mentionné plus haut, le fonctionnement est basé sur une séquence de décalage des
registres suivant une certaine loi. Les registres ont donc déjà un état initial chacun. Il est
évident qu’après le décalage d’un registre, une case mémoire est libérée (donc
présence d’une case mémoire vide). Il s’agira de la case mémoire du bit de poids. le plus
faible car on effectue un décalage à gauche. Après un décalage il faut donc
remplacer le bit manquant dans le registre par l’insertion d’un nouveau bit
convenablement calculé.
Pour insérer un nouveau bit dans le registre on effectue un OU EXCLUSIF (Xor) entre
quelques bits déjà présents dans les registres. Ces derniers (bits sur lesquels on effectue
le Xor) sont à des positions constantes à savoir :
- R1[13], R1[16], R1[17] et R1[18] pour le registreR1 ;
- R2[20] et R2[21] pour registre R2 ;
- R3[20], R3[21] et R3[22] pour le registre R3 ;
Comme l’indique le schéma suivant :
33. 32 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
Figure 7 : principe d’insertion d’un nouveau bit dans les registres.
On récupère ensuite les bits C1, C2 et C3 des registres R1, R2 et R3
respectivement, avec C1= R1[8], C2= R2[10] et C3= R3[10] (cases colorées en gris sur la figure
8). Avec ces bits récupérés, on calcule une fonction « Majorité » définie par :
M i =Majorité (C i , C2i , C3i ) = C1i. C2i + C1i.C3i + C2i.C3i (où i représente le i ème cycle et
le bit qui gagne est celui qui apparait le plus). Les registres ayant produits le bit qui a
emporté la majorité sont alors décalés. La véritable sortie de ce générateur de clé est un
OU EXCLUSIF (Xor) entre les bits qui sont en tête de chaque registre. Comme l’illustre le
schéma suivant :
34. 33 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
Figure 8 : Structure interne de l’algorithme A5/1
On obtient donc ainsi la séquence de chiffrement qui sera utilisée pour le
chiffrement de nos données à transmettre sur le réseau.
A noter que la séquence de chiffrement a une taille de 228 bits.
c) Déchiffrement des données.
Le déchiffrement de la communication est réalisé en effectuant un OU EXCLUSIF
(Xor) bit par bit entre la séquence de chiffrement et le cryptogramme de la
communication. Comme présenté par le schéma suivant :
Algorithme de déchiffrement :
Cet algorithme est constitué des étapes suivantes :
1- Initialiser chaque registre R k (k=1 :3) grâce à Kc
2- Calculer la fonction majorité M i =Majorité (C1 i , C2 i , C3 i ) (i représentant
le i ème cycle)
3- Après décalage, calculer L i =R1[18] ⊕ R2[21] ⊕ R3[22]
35. 34 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
4- Trouver X i =Y i ⊕L i
36. 35 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
V. SYSTEME DE CHIFFREMENT A5/2
Historique
Le système de chiffrement A5/2 est un algorithme de chiffrement par flot utilisé dans le
cadre des communications GSM en dehors de l'Europe. Ce système a été
intentionnellement rendu plus faible que le A5/1. En 1999, Ian Goldberg et David
Wagner ont pu casser l’algorithme A5/2 seulement un mois après sa publication
officielle. Les experts estiment qu'il serait possible de déchiffrer les données en temps réel
avec du matériel adapté et peu onéreux.
Principe de fonctionnement
La structure de A5/2 est basée sur quatre registres LFSR ; noté R1, R2, R3 et R4 qui ont
respectivement pour longueurs : 19, 22, 23, et 17 bits. Son principe de fonctionnement est
constitué de deux étapes :
Initialisation du système
Génération de la séquence de chiffrement
a) Initialisation du système
Elle se fait à l’aide de la clé de chiffrement de 64 bits (Kc) et du compteur de block de 22
bit (Fn). On procède comme suit :
- Mettre tous les registres à zéro.
- On effectue 64 cycles pendant lesquels la clé Kc de 64 bits est introduite dans le
système.
Pour le bit Kc[i] de la clé Kc , on effectue un OU EXCLUSIF (Xor) avec le bit de
poids le plus faible de chaque registre .
Tous les registres sont décalés d’un cran.
- On effectue 22 cycles pendant lesquels le compteur de block Fn est introduit le
système
Pour le bit Fn[i] du compteur ; on effectue le OU EXCLUSIF avec le bit de poids
faible de chaque registre
On décale ensuite tous les registres d’un cran.
37. 36 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
- On effectue 99 cycles dans les registres, où dans chaque cycle on effectue un
décalage du système. Cette opération permet rendre complexe l’état interne du
GPA .
Une autre façon de rédiger l’algorithme est la suivante :
1. R1 = R2 = R3 = R4 = 0
2. For i = 0 to 63 do
R1[0] = R1[0] Kc[i]
R2[0] = R2[0] Kc[i]
R3[0] = R3[0] Kc[i]
R4[0] = R4[0] Kc[i]
Décalé simultanément tous les registres
3. For i = 0 to 22 do
R1[0] = R1[0] Kc[i]
R2[0] = R2[0] Kc[i]
R3[0] = R3[0] Kc[i]
R4[0] = R4[0] Kc[i]
Décale simultanément tous les registres
4. For i = 0 to 99 do
Décaler tous les registres en tenant compte de la règle de décalage.
Après le processus d’initialisation, nous allons produire la séquence de chiffrement.
b) Production de la séquence de chiffrement
La séquence de chiffrement est constituée du résultat sous forme de bits de notre système
qui sera utilisé pour le chiffrement proprement dit de la communication. Le fonctionnement
est basé sur une séquence du décalage des registres en suivant une certaine loi.
Après le décalage d’un registre, une case mémoire est libérée. Il s’agit de la case mémoire
du bit de poids le plus fort car on effectue un décalage à droite. Après un décalage, il faut
remplacer le bit manquant dans le registre par l’insertion d’un nouveau bit
convenablement calculé. Pour insérer un nouveau bit dans le registre, on effectue un OU
38. 37 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
EXCLUSIF entre quelques bits présents dans le registre et occupant des positions constantes
et prédéfinies à l’avance dans le cas de A5/2. Ces positions sont exactement les mêmes que
celles définies dans le cas des registres R1, R2 et R3. Par contre, pour le registre R4, nous
avons :
Bit inséré = R4[11] R4[16] ce qui correspond à la configuration
suivante :
Structure du registre R4
Ensuite, on prend R4[3], R4[7], R4[10] ; avec ces derniers on calcule une fonction majorité
M = majorité (R4[3], R4[7], R4[10]), définie comme dans le cas de A5/1. La loi de décalage
des registres est la suivante :
R1 est décalé si et seulement si R4[10]= M (où M= majorité (R4[3], R4[7], R4[10]))
R2 est décalé si et seulement si R4[3]= M
R3 est décalé si et seulement si R4[7]= M
Comme l’illustre le schéma suivant :
Organe de décalage des registres
Après ce décalage, R4 est également décalé à son tour.
Seuls les registres R1, R2 et R3 interviennent dans la constitution de la séquence de
de chiffrement. En effet dans chacun de ces registres, deux bits et le complément
d’un troisième bit sont pris en paramètre pour calculer une fonction majorité dans
l’ordre suivant :
39. 38 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
M1 = majorité ( R1[12],R1[15],Not(R1[14]) ) pour le registre R1
M2 = majorité ( R2[9],R2[13],Not(R2[16]) ) pour le registre R2
M3 = majorité ( R3[16],R3[18],Not(R3[13]) ) pour le registre R3
Les bits de poids les plus faibles de chaque registre sont combinés avec le résultat de
chaque fonction majorité le OU EXCLUSIF (Xor) pour former la sortie de notre
GPA, comme le décrit le schéma suivant :
Structure du GPA
On obtient ainsi la séquence de chiffrement qui sera utilisée pour le chiffrement de
nos données à transmettre sur le réseau.
c) Système Chiffrement/ déchiffrement de la communication.
Le chiffrement de la communication est réalisé en effectuant un OU EXCLUSIF bit par bit
entre la séquence de chiffrement et les données claires de communication. Comme l’illustre
le schéma suivant :
40. 39 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
Principe de chiffrement/déchiffrement
Algorithme de chiffrement
L’algorithme est constitué des étapes suivantes :
1 – initialiser les registres R1, R2, R3 et R4 grâce à la clé Kc et le compteur de bloc Fn
2 – calculer la fonction majorité M = majorité (R4[7], R4[3], R4[10]) et décaler les registres
3 – calculer les fonctions majorités M1, M2 et M3
4 – calculer L = R1[18] M1 R2[21] M2 R3[22] M3
5 – calculer X = Y L où X est le message chiffré, Y le message clair et L la sortie du
GPA et X, Y, L 1,0 .
Algorithme de déchiffrement
L’algorithme de déchiffrement est le même que celui déchiffrement sauf qu’ici le message
chiffré qui était en sotie dans le cas du chiffrement est pris ici en entrée et en sortie on
obtient un message clair.
L’algorithme est constitué des étapes suivantes :
1 – initialiser les registres R1, R2, R3 et R4 grâce à la clé Kc et le compteur de bloc Fn
2 – calculer la fonction majorité M = majorité (R4[7], R4[3], R4[10]) et décaler les registres
3 – calculer les fonctions majorités M1, M2 et M3
4 – calculer L = R1[18] M1 R2[21] M2 R3[22] M3
5 – calculer X = Y L où X est le message clair, Y le message chiffré et L la sortie du
GPA et X, Y, L 1,0
41. 40 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
VI. ATTAQUES
La force d'A5 est entièrement dans la séquence d'avancement de ses registres.
L’adversaire a donc pour buts :
- Retrouver la clé secrète ;
- Retrouver l’état interne de chaque registre ;
- Prédire le bit suivant de la séquence de chiffrement ;
C’est ainsi qu’on distingue :
L’attaque par recherche exhaustive :
Qui consiste à calculer les antécédents par f -1 de tous les éléments y de F d’une
fonction f définie de E vers F, jusqu'à en trouver un qui donne x ; cette technique est très
coûteuse en temps de calcul et doit être répétée pour chaque nouvelle valeur de y.
Mais nous allons illustrer cette attaque sur A5 vu que l’état interne est de petite
taille. Nous allons donc nous placer dans le cas où l’attaquant a accès à la séquence de
chiffrement car il s’agit ici d’une attaque à texte chiffré seul. Étant donné une séquence de
chiffrement (St‘ ) donnée, nous voulons retrouver la clé K’ de taille |K | qui a permis de
générer cette séquence. Pour faire une recherche exhaustive nous avons besoin d’un test
d’arrêt discriminant la bonne clé des mauvaises clés. Dans notre cas, le test est simplement
la clé qui génère une séquence de chiffrement (S t ) identique à la suite (S t ‘ ). On peut
avoir le semblant d’algorithme suivant :
42. 41 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
VII. COMPARAISON ENTRE A5/1 ET A5/2 :
1. Différences fondamentales entre A5/1 et A5/2 :
Il s’agit ici de faire une brève comparaison sur les structures de ces deux algorithmes.
Les différences notées sont regroupées dans le tableau suivant :
Tableau1 : différence fondamentale entre A5/1 et A5/2
A5/1 A5/2
Utilisation des trois registres pour son
fonctionnement
Utilisation des quatre registres pour son
fonctionnement
Les bits de décision pour le décalage sont
pris dans les registres R1, R2 et R3
Les bits de décision pour le décalage sont
tous pris dans le registre R4
2. Différence de performances :
A5/1 A5/2
Vitesse d’exécution Plus rapide, car moins de
calculs de fonction
Moins rapide, car utilise
plus de fonctions majorité
43. 42 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
majorité et de OU
EXCLUSIF
et plus de OU EXCLUSIF
Implémentation Utilise trois registres, ce
que son implémentation
est moins couteux.
Utilise quatre registres,
ce qui rend
l’implémentation plus
difficile
Résistance aux
attaques
Plus résistant Moins résistant
44. 43 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
CONCLUSION GENERALE
Nous somme rendu au terme de l'étude des algorithmes de chiffrement RC4, A5/1, A5/2.
Chacun de ces algorithmes possède des caractéristiques qui lui sont propre ce qui renvoie à
un domaine d'application précis. Certain de ces algorithmes (A5/2et RC4) sont assez
vulnérables vu que des attaques ont été développés pour ces systèmes de chiffrement
même s'il présente des avantages assez intéressants. On peut donc dire que le degré de
sécurité que confère un algorithme de chiffrement peut dépendre du pays dans lequel on le
développe car chaque gouvernement doit pouvoir maitriser la circulation des informations
dans son territoire, ne dit-on pas souvent que « celui qui a l’information a le pouvoir ». En
somme, le choix d'un algorithme de chiffrement dépend de l'application.
45. 44 | P a g e L E S A L G O R I T H M E S R C 4 - A 5 / 1 - A 5 / 2
WEBOGRAPHIE ET BIBLIOGRAPHIE
Univd2000-crytographie.pdf
Wikipédia
google
Cours du docteur BELL
http://www.uqtr.ca
Documents PDF disponibles dans le site Web