All published worksheets from http://sagenb.org
Image: ubuntu2004
Blum Blum Shub
L'algorithme de Blum Blum Shub permet de générer des suites pseudo-aléatoires cryptographiquement sûres. C'est-à-dire qu'un attaquant ne peut pas prévoir le prochain nombre de cette suite en connaissant uniquement les premiers éléments .
La définition de cet algorithme est assez simple:
on choisit deux nombres premiers et et on considère .
La clé sera l'élément initial de notre suite que l'on définit par la récurrence .
exemple de suite générée avec comme clé :
Pour chiffrer un message, un première étape consiste à transformer une suite de lettres en une suite de chiffres. C'est ce que l'on appelle le codage.
Pour cela, nous allons considérer un alphabet (avec en plus des chiffres, des signes de ponctuation, etc) et chaque caractère sera remplacé par l'entier correspondant à sa position.
Un exemple:
on remarquera que la première lettre de l'alphabet, ici est considérée comme étant en position .
Le passage inverse d'un entier à une lettre est appelé le décodage.
on vérifie que cela fonctionne bien:
Le principe des chiffrements à flots est alors le suivant.
On génére une suite d'entiers de la même taille que notre message à partir de notre clé. Cette suite est appelée suite chiffrante. Le chiffrement du message est alors une simple addition modulo la taille de notre alphabet.
un exemple:
Notre alphabet est de taille . On a ici:
- et
- et
- etc
et en utilisant nos fonction et , on peut obtenir un message chiffré dans notre alphabet de départ.
toujours notre exemple:
Pour déchiffrer, il suffit de faire la même chose en remplaçant l'addition par une soustraction.
Ainsi on a, en notant le message initial, la suite chiffrante, le message chiffré et le message déchiffré:
- et
- d'où
Si on utilise une clé différente, on ne peut pas lire le message obtenu
mais si on utilise la bonne clé on retrouve bien le message d'origine
Exercice:
déchiffrer le message suivant en utilisant la clé : 'wWAEP5guAZU0QvXx8QzJvXDZTmbcf6SxLPoyo1hany cS?8wVZ'
Conclusion et extensions
Le système de Blum Blum Shub est intéressant car on peut prouver (mais c'est compliqué!) qu'il fourni une bonne sécurité.
Cependant le principe des chiffrement à flots peut être très facilement adapté, il suffit de choisir une autre suite récurrente.
Par exemple, on peut décider d'utiliser mais on a alors aucune garantie quant à la sécurité.
Comme on peut s'y attendre, cette suite est en fait trop simple pour résister...
Exercice:
déchiffrer le message suivant chiffré avec ce système faible, sans connaître la clé: 'Irgsvidyridjsmwdfvezsaaa'