La plupart des applications en cryptographie moderne nécessitent à un moment ou un autre une source d’aléa [1]. Que ce soit pour chiffrer, générer des nonces, des clés ou même des sels cryptographiques. Mais comment générer de l’aléa sur nos ordinateurs qui sont des machines déterministes ?Dans cet article, nous allons nous intéresser à la place de l’aléa dans les algorithmes de chiffrements modernes. Puis nous verrons trois CTF ou le but est de cryptanalyser des générateurs de nombres aléatoires ; cela nous permettra d’en comprendre le fonctionnement et de voir quelques attaques sur des générateurs de nombres aléatoires.
1. La place de l’aléa dans les chiffrements modernes
1.1 Le chiffrement parfait !
Commençons par poser une question fondamentale : « Existe-t-il un algorithme de chiffrement parfait ? Un algorithme qui ne pourrait pas être cassé même avec une puissance de calcul infini ? ».
En théorie oui ! Mais comme nous allons le voir, seulement en théorie.
C’est le One-Time Pad (OTP) ou chiffrement par masque jetable en français, également appelé chiffre de Vernam [2].
Voici les conditions pour avoir un chiffrement parfait :
- La clé doit être de la même longueur que le message à chiffrer (ou plus) ;
- La clé doit être générée de façon aléatoire ;
- La clé ne doit être utilisée qu’une seule fois.
Ensuite, il vous suffit de XORer votre message avec la clé et voilà vous avez un chiffrement parfait.
Seulement c’est bien joli en théorie, mais en pratique c’est infaisable. Premièrement, la clé ne peut pas être plus petite que le...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première