Générateurs pseudo-aléatoires dérivés d'un algorithme par blocs

Il est toujours possible de réaliser un générateur pseudo-aléatoire au moyen d'un algorithme de chiffrement par bloc utilisé dans un mode opératoire particulier. La suite chiffrante est alors produite par blocs dont la taille correspond à la taille de bloc de l'algorithme par bloc sous-jacent.

Ainsi, les modes Output FeedBack (OFB) et Compteur (CTR) sont des modes opératoires bien connus et standardisés depuis de nombreuses années qui permettent de produire une suite pseudo-aléatoire à partir d'une clef secrète et d'une valeur initiale. Le mode OFB a été initialement défini dans la norme FIPS 81 [5]; le mode CTR a été ajouté aux modes opératoires usuels dans la publication spéciale du NIST, NIST SP 800-38A [8]. Leurs spécifications sont notamment reprises dans la norme récente ISO/IEC 10116 [7].

Mode OFB.   Dans le mode OFB, l'algorithme par bloc paramétré par la clef secrète K est appliqué à la valeur initiale (IV), assimilée au texte clair. Le chiffré correspondant fournit le premier bloc de suite chiffrante. Chacun des blocs de suite pseudo-aléatoire suivant est ensuite égal à l'image par l'algorithme par bloc du chiffré précédent (cf. Figure 1). 




Figure 1: Le mode opératoire OFB

Mode CTR.   Dans le mode CTR, le ième bloc de suite chiffrante correspond à l'image par l'algorithme par bloc paramétré avec la clef secrète K de la valeur initiale additionnée (par ou exclusif) à un compteur ci (qui prend généralement la valeur i) (cf. Figure 2). 





Figure 2: Le mode opératoire CTR (Compteur)



Sécurité des modes OFB et CTR.   Les générateurs pseudo-aléatoires obtenus au moyen d'un algorithme par bloc résistant à la cryptanalyse sont souvent considérés comme offrant une sécurité raisonnable. Toutefois, d'un point de vue théorique, ils ne sont pas sûrs puisqu'ils sont tous deux vulnérables à une attaque par distingueur à valeur initiale choisie [6].
Ainsi, pour le mode CTR, le ième bloc de la suite générée à partir de la valeur initiale IV est toujours égal au jème bloc de celle générée à partir de la valeur initiale IV ⊕ci ⊕cj. De même, pour le mode OFB, le ième bloc de la suite générée à partir de la valeur initiale IV est toujours égal au (i−1)ème bloc de celle obtenue à partir d'une valeur initiale égale au premier bloc de la suite précédente.
Ces propriétés permettent évidemment de distinguer aisément la suite produite par chacun de ces modes d'une suite aléatoire. Cette faiblesse a récemment conduit à des modifications de chacun de ces modes, pour lesquelles il est au contraire possible de démontrer que les suites produites ne peuvent être distinguées d'une suite aléatoire si le chiffrement par bloc sous-jacent possède une propriété similaire.

Mode OFB modifié.   Le mode OFB modifié, destiné à la construction de générateurs pseudo-aléatoires pour le chiffrement à flot, a été introduit dans la norme américaine ANSI X9.17 en 1985 [4]. A la différence du mode OFB classique, à l'entrée de chaque appel de l'algorithme par bloc, la sortie de l'appel précédent est additionnée par ou exclusif au chiffré de la valeur initiale (cf. Figure 3). Grâce à cette construction, l'attaquant ne peut plus contrôler librement la valeur initiale, ce qui réduit les possibilités d'attaques à IV choisies.





Figure 3: Le mode opératoire OFB modifié

Une variante du mode OFB modifié, à laquelle ont été ajoutés des compteurs, est utilisée dans le générateur pseudo-aléatoire du chiffrement à flot f8 destiné à assurer la confidentialité des communications pour les téléphones mobiles de 3ème génération [1] (pour plus de détails sur l'algorithme f8, voir la fiche correspondant).


Mode CTR modifié.   Le mode compteur modifié a été introduit par le projet 3GPP (3rd Generation PartnerShip Project) dans la spécification technique TS 35.206 définissant l'authentification et la distribution de clef dans la norme UMTS (algorithme Milenage) [2]. A la différence du mode CTR classique, l'entrée du ième appel à l'algorithme par bloc correspond à la valeur du compteur ci additionnée par ou exclusif au mot obtenu en appliquant une rotation de ri positions au chiffré de la valeur initiale (cf. Figure 4). Des résultats théoriques, dûs à Henri Gilbert, sur le caractère pseudo-aléatoire de la suite produite par ce mode opératoire sont disponibles dans [6] et dans le rapport d'évaluation de Milenage [3].



Figure 4:  Le mode opératoire CTR modifié

Mode CFB.   Le mode opératoire classique CFB (Ciphertext FeedBack), défini dans la norme FIPS 81 [5], et repris dans le standard ISO/IEC 10116 [7] permet, lui, de construire un générateur aléatoire pseudo-aléatoire auto-synchronisant.

Contexte d'utilisation.   Les générateurs pseudo-aléatoires obtenus au moyen de ces différents modes opératoires présentent les mêmes caractéristiques que les algorithmes par bloc en termes de débit de chiffrement, d'implémentation... En logiciel, ils atteignent usuellement un débit de l'ordre d'une vingtaine de cycles processeur par octet. Une réalisation matérielle nécessite de l'ordre de 20 000 portes logiques. Ils offrent une bonne solution dans les applications qui n'imposent pas des contraintes plus sévères sur la vitesse ou l'implémentation.

 

Références

[1]         3rd Generation PartnerShip Project. << 3GPP TS 35.201 - Specification of the 3GPP Confidentiality and Integrity algorithms - Document 1: f8 and f9 specification >>, 2001. http://www.3gpp.org/ftp/Specs/html-info/35201.htm.
[2]         3rd Generation PartnerShip Project. << 3GPP TS 35.206 - Specification of the MILENAGE algorithm set: An example algorithm Set for the 3GPP Authentication and Key Generation functions f1, f1*, f2, f3, f4, f5 and f5*; Document 2: Algorithm specification >>, 2001. http://www.3gpp.org/ftp/Specs/html-info/35206.htm.
[3]        3rd Generation PartnerShip Project. << 3GPP TS 35.909 - Specification of the MILENAGE algorithm set: An example algorithm Set for the 3GPP Authentication and Key Generation functions f1, f1*, f2, f3, f4, f5 and f5*; Document 5: Summary and results of design and evaluation >>, 2004.
 http://www.3gpp.org/ftp/Specs/html-info/35909.htm.
[4]        ANSI X9.17. << American National Standard for Financial Institution Key management (Wholesale) >>.
[5]        FIPS 81. << DES Modes of Operation >>. Federal Information Processing Standards Publication 81, 1980. U.S. Department of Commerce/National Bureau of Standards.
[6]        H.  Gilbert. << The security of Öne-Block-to-Many" Modes of Operation >>. Fast Software Encryption - FSE 2003, 2887 Lecture Notes in Computer Science, 376-395. Springer-Verlag, 2003.
[7]        ISO/IEC 10116. << Information technology - Security techniques - Modes of operation for an n-bit block cipher >>. International Organization for Standardization, 1997.
[8]        NIST SP 800-38A. << Recommendation for Block Cipher Modes of Operation >>. NIST Special Publication 800-38A, 2001. National Institute of Standards and Technology.

Informations sur la fiche

Titre :
Générateurs pseudo-aléatoires dérivés d'un algorithme par blocs
Profil(s) :
Ingénieur informatique, Enseignant-Chercheur, Etudiant
Thème :
Générateur pseudo-aléatoire
Finalité :
Pédagogique
Difficulté :
niveau 2
Mise à jour :
30/01/2006

Syndication

Il vous est possible de suivre la publication des fiches PICSI via le fil RSS des fiches.