Security Analysis for Pseudo-Random Numbers Generators
Analyse de Sécurité des Générateurs Pseudo-Aléatoires
Résumé
In cryptography, randomness plays an important role in multiple applications. It is required in
fundamental tasks such as key generation and initialization vectors generation or in key exchange.
The security of these cryptographic algorithms and protocols relies on a source of unbiased and
uniform distributed random bits. Cryptography practitioners usually assume that parties have
access to perfect randomness. However, quite often this assumption is not realizable in practice
and random bits are generated by a Pseudo-Random Number Generator. When this is done,
the security of the scheme depends of course in a crucial way on the quality of the (pseudo-
)randomness generated. However, only few generators used in practice have been analyzed and
therefore practitioners and end users cannot easily assess their real security level.
We provide in this thesis security models for the assessment of pseudo-random number generators
and we propose secure constructions. In particular, we propose a new definition of robustness
and we extend it to capture memory attacks and side-channel attacks. On a practical side, we
provide a security assessment of generators used in practice, embedded in system kernel (Linux
/dev/random) and cryptographic libraries (OpenSSL and Java SecureRandom), and we prove
that these generators contain potential vulnerabilities.
La génération d’aléa joue un rôle fondamental en cryptographie et en sécurité. Des nombres aléatoires
sont nécessaires pour la production de clés cryptographiques ou de vecteurs d’initialisation
et permettent également d’assurer que des protocoles d’échange de clé atteignent un niveau de
sécurité satisfaisant. Dans la pratique, les bits aléatoires sont générés par un processus de
génération de nombre dit pseudo-aléatoire, et dans ce cas, la sécurité finale du système dépend
de manière cruciale de la qualité des bits produits par le générateur. Malgré cela, les générateurs
utilisés en pratique ne disposent pas ou peu d’analyse de sécurité permettant aux utilisateurs
de connaître exactement leur niveau de fiabilité.
Nous fournissons dans cette thèse des modèles de sécurité pour cette analyse et nous proposons
des constructions prouvées sûres et efficaces qui répondront à des besoins de sécurité forts. Nous
proposons notamment une nouvelle notion de robustesse et nous étendons cette propriété afin
d’adresser les attaques sur la mémoire et les attaques par canaux cachés. Sur le plan pratique,
nous effectuons une analyse de sécurité des générateurs utilisés dans la pratique, fournis de
manière native dans les systèmes d’exploitation (/dev/random sur Linux) et dans les librairies
cryptographiques (OpenSSL ou Java SecureRandom) et nous montrons que ces générateurs contiennent
des vulnérabilités potentielles.
Domaines
Cryptographie et sécurité [cs.CR]
Loading...