Post on 03-Apr-2015
Sécurité dans l’UMTS*
MOUGEL Sébastiensmougel@yahoo.fr
*Universal Mobile Telecommunication SystemCNAM : UV C
Plan
Architecture du réseau Carte USIM Explication de l’algorithme KASUMI
Réseau UMTS
Réseau UMTS
Différences GSM/UMTSLes fonctions de sécurité de l’UMTS sont basée sur ce qui a été implémenté dans le GSM.Quelques fonctions de sécurité ont été ajoutées et d’autres améliorées. Les algorithmes de
cryptage sont plus forts et inclus dans le NODE-B jusqu’au contrôleur d’interface radio (RNC : radio network controller ). L’ application des algorithmes d’authentification est plus stricte et la confidentialité de l’abonné plus forte.
Les principaux éléments de sécurité du GSM sont :
Authentification des abonnés
Identité de l’abonné confidentielle
La carte SIM doit pouvoir être détachée du terminal.
Cryptage de l’interface radio
Caractéristiques supplémentaires de sécurité dans l’UMTS:
Plus de sécurité contre les « fausses » stations de base (base stations) avec authentification mutuelle
Cryptage étendu de :l’air seulement -> Base station-> RNC
Système pour les mises à jour de sécurité.
USIM
•Authentification & chiffrement•JavaCard Virtual Machine
HLR : Home Location Registrer
AuC: Authentification Center
IMSI: International Mobile Suscriber Identity (Stocké dans la SIM)
IMEI: N°série du mobile
ISDN: N°téléphone +3306 .. .. .. ..
KASUMI
C
Fig. 1: KASUMI
FO1FL1
FO3FL3
FO5FL5
FO7FL7
FO2 FL2
FO4 FL4
FO6 FL6
FO8 FL8
KL1 KO1, KI1
FIi1 KIi,1
KOi,1
FIi2 KIi,2
KOi,2
FIi3 KIi,3
KOi,3
S9
S9
zero-extend
zero-extend
truncate
KIi,j,1 KIi,j,2
32 3264
16 1632 16
9 7
Fig.2: FO Function Fig.3: FI Function
Fig.4: FL Function
bitwise AND operation
bitwise OR operation
one bit left rotation
3216 16
KLi,1
KLi,2
KL6
KL8
KL7
KL2
KL5
KL4
KL3
KO2, KI2
KO3, KI3
KO4, KI4
KO5, KI5
KO6, KI6
KO7, KI7
KO8, KI8
truncate
S7
S7
L0
L8
R0
R8
KASUMI
Algorithme de chiffrement par blocs (128 bits) construit à partir de l’algorithme MISTY de Mr MATSUI
C’est le noyau des algorithmes f8 (confidentialité) et f9 (intégrité)
Entrée sur 64 bits Sortie sur 64 bits Clé à 128 bits KASUMI se décompose en 3 fonctions (FL,FO,FI) et 3
sous clés (KL,KO,KI)
KASUMI (Fonctions)
fi() : La fonction pour le ième « round » de KASUMI FI() : Transforme une entrée sur 16 bits en une sortie de
16 bits en utilisant une sous clé sur 16 bits FL() : idem sur 32 bits FO() : Entrée (32 bits) Sortie (32 bits) 2 sous-clés de 48
bits chacunes
KASUMI (Variables)
K : Une clé de 128 bits KLi,KOi,KIi : Sous clés pour le ième round S7[] : S-Box (Entrée de 7 bits /Sortie de 7
bits) S9[] : S-Box (Entrée de 9 bits /Sortie de 9
bits)
Le fonctionnement
Chiffrement de FEISTEL avec 8 « round » I : Entrée sur 64 bits I est divisée en 2 chaînes de 32 bits I= L0 || R0 (|| représente la concaténation) Pour 1<= i <=8 Ri=Li-1 , Li=Ri-1 fi(L⊕ i-1,RKi) SORTIE = KASUMI[I]k ( OUTPUT=L8 || R8 )
FEISTELDans ce système de chiffrement, un bloc de texte en clair est découpé en deux ; la transformation de ronde est appliquée à une des deux moitiés, et le résultat est combiné avec l'autre moitié par ou exclusif. Les deux moitiés sont alors inversées pour l'application de la ronde suivante. Un avantage de ce type d'algorithmes est que chiffrement et déchiffrement sont structurellement identiques.
Nous considérerons que pour une certaine clef entrée, ces fonctions sont les suivantes:
La fonction fi()
Entrée : 32 bits Sortie : 32 bits Clé du round : RKi triplet(KLi, KOi,KIi) Fonction qui comprend FL() et FO() FL utilise : KLi FO utilise KOi et KIi
Round pair : fi(I,RKi) = FO( FL( I, KLi), KOi, KIi )
Round impair : fi(I,Ki) = FL( FO( I, KOi, KIi ), KLi )
Fonction FL
La clé est divisée en 2 :KLi = KLi,1 || KLi,2
L’entrée I = L || R
R′ = R ROL( L KLi,1 )L′ = L ROL( R′ KLi,2 )
La sortie vaut : S=L’||R’
Fonction FO
I=L0||R0 KOi = KOi,1 || KOi,2 || KOi,3 et KIi = KIi,1 || KIi,2 || KIi,3 Les clés de 48 bits sont divisées en 3 clés de 16 bits Pour chaque entier j tel que : 1<=j<=3
Rj = FI(Lj-1 KOi,j , KIi,j ) Rj-1Lj = Rj-1
A la fin : S=L3||R3
Fonction FI
I=L0||R0
La clé KIij (16 bits)=KIij,1(7 bits)||KIij,2 (9 bits)
Utilise 2 S-box S7 et S9 ZE(x) 0x1234567 -> 0x001234567 TR(x) 0x123456789 -> 0x23456789 L1 = R0 R1 = S9[L0] ZE(R0) L2 = R1 KIi,j,2 R2 = S7[L1] TR(R1) KIi,j,1 L3 = R2 R3 = S9[L2] ZE(R2) L4 = S7[L3] TR(R3) R4 = R3
S=L4 || R4
S-BoxChacune d'elles rend difficile la table inversible.
Une S-Box possible est la transformation d'identité, qui n'a en fait aucun effet. Toute autre transformation a au moins un effet sur les données.
– La S-Box Si permet de subtituer les 6 bits(b1b2b3b4b5b6) par les bits Si[b1b6][b2b3b4b5].– Exemple : S1 substitue (011010) en S1[00][1101] = 9 (1001).
S-Box
Entrée x Sortie yx = x8 || x7 || x6 || x5 || x4 || x3 || x2 || x1 || x0
y = y8 || y7 || y6 || y5 || y4 || y3 || y2 || y1 || y0
S-Box
Au niveau hardware : Les s-box ont été conçues pour être implementées avec peu de composants
de logique combinatoire Les opérations S7 et S9
Peuvent être effectuées en
parallèle FIi,1 et FIi,2 également
FIi,1 FIi,2
FIi,3
16 1632
Fig.6: FO Function
S9
S9
169 7
Fig.5: FI Function
S7
S7
Planification des clésKASUMI a une clé K de 128bits. A chaque tour KASUMI utilise une clé dérivée de K. Deux tableaux de 16-bits Kj et Kj′ (j=1 à 8) :K = K1 || K2 || K3 ||…|| K8.
Pour chaque entier j tel que 1 j 8Kj′ = Kj Cj
Cj est la valeur definie dans la table 2.Les sous clés sont derivée de Kj et Kj′ comme défini dans table 1.
KASUMI
C
Fig. 1: KASUMI
FO1FL1
FO3FL3
FO5FL5
FO7FL7
FO2 FL2
FO4 FL4
FO6 FL6
FO8 FL8
KL1 KO1, KI1
FIi1 KIi,1
KOi,1
FIi2 KIi,2
KOi,2
FIi3 KIi,3
KOi,3
S9
S9
zero-extend
zero-extend
truncate
KIi,j,1 KIi,j,2
32 3264
16 1632 16
9 7
Fig.2: FO Function Fig.3: FI Function
Fig.4: FL Function
bitwise AND operation
bitwise OR operation
one bit left rotation
3216 16
KLi,1
KLi,2
KL6
KL8
KL7
KL2
KL5
KL4
KL3
KO2, KI2
KO3, KI3
KO4, KI4
KO5, KI5
KO6, KI6
KO7, KI7
KO8, KI8
truncate
S7
S7
L0
L8
R0
R8
Références
http://www.3gpp.org (3rd generation partnership project) http://www.rd.francetelecom.com