« CSPRNG » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 3 : | Ligne 3 : | ||
Les cryptographes développent des algorithmes en se basant sur l'idée qu'on peut effectivement générer des nombres de manière imprévisible. Mais peut-on vraiment soutenir la robustesse d'un algorithme de chiffrement qui se base sur des nombres qu'un attaquant saurait deviner à l'avance ? Autrement dit, à quel point un algorithme peut être sécurisé, s'il est possible pour un attaquant de compromettre le générateur qu'il utilise ? Il apparait alors évidemment qu'un générateur se doit d'être lui aussi robuste et sécurisé. |
Les cryptographes développent des algorithmes en se basant sur l'idée qu'on peut effectivement générer des nombres de manière imprévisible. Mais peut-on vraiment soutenir la robustesse d'un algorithme de chiffrement qui se base sur des nombres qu'un attaquant saurait deviner à l'avance ? Autrement dit, à quel point un algorithme peut être sécurisé, s'il est possible pour un attaquant de compromettre le générateur qu'il utilise ? Il apparait alors évidemment qu'un générateur se doit d'être lui aussi robuste et sécurisé. |
||
Nous nous intéressons donc ici à certains modèles de générateurs aléatoires crypto-sécurisés (CSPRNG). |
Nous nous intéressons donc ici à certains modèles de générateurs pseudo-aléatoires crypto-sécurisés (CSPRNG). |
||
== Attaques de PRNG == |
== Attaques de PRNG == |
||
Ligne 10 : | Ligne 10 : | ||
Yarrow désigne une famille de PRNG conçue par Bruce Schneier, John Kelsey et Niels Ferguson en 1999, dont le nom fait référence à d'anciens rites de divination. |
Yarrow désigne une famille de PRNG conçue par Bruce Schneier, John Kelsey et Niels Ferguson en 1999, dont le nom fait référence à d'anciens rites de divination. |
||
Le modèle Yarrow se divise en 3 composants principaux : un accumulateur d'entropie |
Le modèle Yarrow se divise en 3 composants principaux : un accumulateur d'entropie, un mécanisme de reseed et un générateur à proprement parler (+ problème des anniversaires). |
||
'''Accumulateur d'entropie ''' (mesure du caractère aléatoire) ''' :''' |
'''Accumulateur d'entropie ''' (mesure du caractère aléatoire) ''' :''' |
||
Yarrow comporte 2 boîtes de 160 bits, dédiées à stocker les bits aléatoires |
Yarrow comporte 2 boîtes de 160 bits, dédiées à stocker les bits aléatoires issus de sources d'entropie. Typiquement, ces bits proviennent du système d'exploitation de la machine et du materiel en lui même (exemples : timing exacts de pression des touches, trajectoire du pointeur, ...). Pour les remplir, il va donc être question d'estimer la quantité d'entropie présente dans un apport. Cette estimation s'effectue en gardant la plus petite valeur issue, soit de l'estimation du programmer lorsqu'il récupère un apport d'une source, soit d'un estimateur statistique spécialisé pour une source, ou soit de la division de la longueur de l'apport (en bits) par 2. |
||
Bons points : |
Bons points : |
||
Version du 20 novembre 2018 à 08:29
Les générateurs pseudo-aléatoires (PRNG) sont énormément utilisés en cryptographie, que ce soit pour générer des clés utilisées par des algorithmes de chiffrement symétriques, des salts pour perturber les logiciels de prédiction, des vecteurs d'initialisation utiles lors de l'utilisation de chiffrements par bloc en chaine, etc ...
Les cryptographes développent des algorithmes en se basant sur l'idée qu'on peut effectivement générer des nombres de manière imprévisible. Mais peut-on vraiment soutenir la robustesse d'un algorithme de chiffrement qui se base sur des nombres qu'un attaquant saurait deviner à l'avance ? Autrement dit, à quel point un algorithme peut être sécurisé, s'il est possible pour un attaquant de compromettre le générateur qu'il utilise ? Il apparait alors évidemment qu'un générateur se doit d'être lui aussi robuste et sécurisé.
Nous nous intéressons donc ici à certains modèles de générateurs pseudo-aléatoires crypto-sécurisés (CSPRNG).
Attaques de PRNG
Yarrow
Yarrow désigne une famille de PRNG conçue par Bruce Schneier, John Kelsey et Niels Ferguson en 1999, dont le nom fait référence à d'anciens rites de divination.
Le modèle Yarrow se divise en 3 composants principaux : un accumulateur d'entropie, un mécanisme de reseed et un générateur à proprement parler (+ problème des anniversaires).
Accumulateur d'entropie (mesure du caractère aléatoire) : Yarrow comporte 2 boîtes de 160 bits, dédiées à stocker les bits aléatoires issus de sources d'entropie. Typiquement, ces bits proviennent du système d'exploitation de la machine et du materiel en lui même (exemples : timing exacts de pression des touches, trajectoire du pointeur, ...). Pour les remplir, il va donc être question d'estimer la quantité d'entropie présente dans un apport. Cette estimation s'effectue en gardant la plus petite valeur issue, soit de l'estimation du programmer lorsqu'il récupère un apport d'une source, soit d'un estimateur statistique spécialisé pour une source, ou soit de la division de la longueur de l'apport (en bits) par 2.
Bons points :
Limites :