En cryptographie, un générateur pseudo-aléatoire (PRG) est un algorithme qui produit une séquence de bits qui semble aléatoire, même si elle est en réalité déterminée par un état interne secret. Un PRG sécurisé est un PRG qui ne peut pas être distingué d'un point de vue informatique d'une séquence de bits véritablement aléatoire. Cela signifie qu’il n’existe aucun algorithme efficace capable de prendre en entrée une séquence de bits produite par un PRG sécurisé et de la distinguer d’une séquence de bits véritablement aléatoires.
Les PRG sécurisés sont utilisés dans diverses applications cryptographiques, notamment :
* Cryptage :un PRG sécurisé peut être utilisé pour générer une clé de cryptage des données. Cette clé peut ensuite être utilisée pour chiffrer les données de telle manière qu’il soit impossible de les déchiffrer sans la clé.
* Authentification :un PRG sécurisé peut être utilisé pour générer une paire défi-réponse pour authentifier les utilisateurs. Le défi est envoyé à l'utilisateur, qui répond avec la réponse correspondante. Le vérificateur vérifie que la réponse est correcte et si c'est le cas, l'utilisateur est authentifié.
* Signatures numériques :un PRG sécurisé peut être utilisé pour générer une signature numérique pour un message. Cette signature peut ensuite être utilisée pour vérifier que le message provient de l'expéditeur et qu'il n'a pas été falsifié.
Il existe différentes manières de créer des PRG sécurisés. Certaines techniques courantes incluent :
* Utilisation d'une fonction de hachage cryptographique :un PRG sécurisé peut être construit en utilisant une fonction de hachage cryptographique pour hacher une valeur de départ secrète. La sortie de la fonction de hachage est ensuite utilisée comme sortie du PRG.
* Utilisation d'un chiffrement par bloc :un PRG sécurisé peut être construit en utilisant un chiffrement par bloc pour chiffrer une valeur de départ secrète. La sortie du chiffrement par bloc est ensuite utilisée comme sortie du PRG.
* Utilisation d'un chiffrement de flux :un PRG sécurisé peut être construit en utilisant un chiffrement de flux pour chiffrer une valeur de départ secrète. La sortie du chiffrement de flux est ensuite utilisée comme sortie du PRG.
La sécurité d'un PRG sécurisé dépend de la sécurité de la primitive cryptographique sous-jacente (telle qu'une fonction de hachage, un chiffrement par bloc ou un chiffrement par flux). Si la primitive cryptographique est sécurisée, alors le PRG sécurisé sera également sécurisé.
|