Août 182011
 

Les ordinateurs sont totalement déterministes.
En dépit du fonctionnement souvent incohérent des programmes informatiques mal conçus, le matériel informatique est souvent cohérent et fiable.
La cryptographie nécessite pour être efficace de disposer de nombres à peu près aléatoires mais surtout très difficilement prévisibles, ce qui est loin d’être évident sur un système déterministe.
Les programmeurs ont conçu de nombreuses méthodes pour que les ordinateurs génèrent des nombres apparemment aléatoires.
Ces algorithmes sont regroupés sous le nom générique de générateurs de nombres pseudo-aléatoires (PRNG).
Les générateurs de nombres pseudo-aléatoires suffisent pour des applications simples, comme la création d’événements « aléatoires » dans des jeux vidéo. Le générateur de congruence linéaire (GCL), est un exemple classique de ce type d’algorithme.
Pourtant, rien n’est vraiment imprévisible dans les calculs effectués, et là réside le problème : un attaquant peut facilement utiliser sa propre copie du générateur pour
connaître tous les résultats que notre PRNG créera.
Même si notre PRNG part d’un état initial inconnu de l’attaquant, il est souvent possible de déduire des propriétés importantes de cette valeur initiale en observant les sorties produites puis d’utiliser ces informations pour régler son propre PRNG. Une méthode générale pour reconstruire et prédire tous les polynômes des générateurs de congruence a été établie dans les années 1990. Ce problème crée un trou béant dans la sécurité des algorithmes de cryptage.

La seule méthode qu’un ordinateur peut employer pour produire des données quasiment imprévisibles consiste à rassembler autant d’informations non prévisibles que possible à partir de ‘environnement physique et de les utiliser comme valeurs à transférer à tous les programmes qui nécessitent une bonne part de hasard. C’est pourquoi on récupère des événements vraisemblablement peu prévisibles comme les I/O clavier/souris, réseau et disques.

Le problème est que dans des conditions particulières, ces événements vraisemblablement peu prévisibles le sont en fait assez (prévisibles).

De nos jours, un certain nombre de plates-formes matérielles implémentent des générateurs de nombres aléatoires physiques, appelés vrais générateurs de nombres aléatoires (TRNG, de l’anglais True Random Number Generators). Ils font appel à certaines caractéristiques physiques d’un composant qui changent en raison d’un bruit thermique comme par exemple le courant dans un résistor. Cette solution simple à base de semi-conducteur est assez fiable.
Une des techniques les plus sure mais des plus tordues à mettre en œuvre est la mesure de la décroissance radioactive d’un isotope instable. Ces périphériques offrent un moyen plus fiable de générer des données vraiment imprévisibles par rapport à la collecte d’informations dont on ne fait simplement qu’espérer qu’elles soient difficiles à prédire.

Sorry, the comment form is closed at this time.