Aller au contenu principal

4.1.2. AES in f8-mode (AES en mode f8)

4.1.2. AES in f8-mode (AES en mode f8)

Pour chiffrer les données UMTS (Universal Mobile Telecommunications System, soit les réseaux 3G), une solution (voir [f8-a] [f8-b]) connue sous le nom d'algorithme f8 a été développée. À un niveau élevé, le schéma proposé est une variante du mode de rétroaction de sortie (Output Feedback Mode, OFB) [HAC], avec une fonction d'initialisation et de rétroaction plus élaborée. Comme dans l'OFB normal, le noyau consiste en un chiffrement par bloc. Nous définissons également ici l'utilisation d'AES comme chiffrement par bloc à utiliser dans ce que nous appellerons le chiffrement RTP en "mode de fonctionnement f8". Le mode f8 AES DOIT utiliser les mêmes tailles par défaut pour la clé de session et le sel que le mode compteur AES.

La Figure 4 montre la structure du chiffrement par bloc, E, fonctionnant en mode f8.

                   IV
|
v
+------+
| |
+--->| E |
| +------+
| |
m -> (*) +-----------+-------------+-- ... ------+
| IV' | | | |
| | j=1 -> (*) j=2 -> (*) ... j=L-1 ->(*)
| | | | |
| | +-> (*) +-> (*) ... +-> (*)
| | | | | | | |
| v | v | v | v
| +------+ | +------+ | +------+ | +------+
k_e ---+--->| E | | | E | | | E | | | E |
| | | | | | | | | | |
+------+ | +------+ | +------+ | +------+
| | | | | | |
+------+ +--------+ +-- ... ----+ |
| | | |
v v v v
S(0) S(1) S(2) . . . S(L-1)

Figure 4. Mode de fonctionnement f8 (l'astérisque, (*), désigne le OU exclusif bit à bit). La figure représente le KG dans la Figure 3, lorsque AES-f8 est utilisé.

4.1.2.1. Génération du flux de clés f8

Le vecteur d'initialisation (Initialization Vector, IV) DOIT être déterminé comme décrit dans la Section 4.1.2.2 (et dans la Section 4.1.2.3 pour SRTCP).

Soit IV', S(j) et m désignant des blocs de n_b bits. Le flux de clés, S(0) ||... || S(L-1), pour un message de N bits DOIT être défini en posant IV' = E(k_e XOR m, IV), et S(-1) = 00..0. Pour j = 0,1,..,L-1 où L = N/n_b (arrondi à l'entier le plus proche s'il n'est pas déjà un entier) calculer

S(j) = E(k_e, IV' XOR j XOR S(j-1))

Notez que l'IV n'est pas utilisé directement. Au lieu de cela, il est alimenté à travers E sous une autre clé pour produire une valeur interne "masquée" (notée IV') afin d'empêcher un attaquant d'obtenir des paires entrée/sortie connues.

Le rôle du compteur interne, j, est d'empêcher les cycles de flux de clés courts. La valeur du masque de clé m DOIT être

m = k_s || 0x555..5,

c'est-à-dire, la clé de salage de session, complétée par le motif binaire 0101.. pour remplir toute la taille de clé souhaitée, n_e.

L'émetteur NE DEVRAIT PAS générer plus de 2^32 blocs, ce qui est suffisant pour générer 2^39 bits de flux de clés. Contrairement au mode compteur, il n'y a pas de seuil absolu au-dessus (en dessous) duquel f8 est garanti d'être non sécurisé (sécurisé). La limite ci-dessus a été choisie pour limiter, avec une marge de sécurité suffisante, la probabilité d'un comportement dégénératif dans la génération du flux de clés f8.

4.1.2.2. Formation de l'IV SRTP f8

Le but de la formation d'IV suivante est de fournir une fonctionnalité que nous appelons authentification d'en-tête implicite (implicit header authentication, IHA), voir Section 9.5.

L'IV SRTP pour le bloc AES-f8 de 128 bits DOIT être formé de la manière suivante:

IV = 0x00 || M || PT || SEQ || TS || SSRC || ROC

M, PT, SEQ, TS, SSRC DOIVENT être extraits de l'en-tête RTP; ROC provient du contexte cryptographique.

La présence du SSRC dans l'IV permet d'utiliser AES-f8 lorsqu'une clé maître est partagée entre plusieurs flux au sein de la même session RTP, voir Section 9.1.

4.1.2.3. Formation de l'IV SRTCP f8

L'IV SRTCP pour le bloc AES-f8 de 128 bits DOIT être formé de la manière suivante:

IV= 0..0 || E || SRTCP index || V || P || RC || PT || length || SSRC

où V, P, RC, PT, length, SSRC DOIVENT être extraits du premier en-tête du paquet composé RTCP. E et SRTCP index sont les champs de 1 bit et 31 bits ajoutés au paquet.