Systèmes de chiffrement à clé secrète Deux grandes catégories de systèmes de chiffrement à clef secrète : le chiffrement à flot et le chiffrement par blocs. Idée des attaques connues qui peuvent être menées contre de tels systèmes. Comment les fonctions booléennes interviennent en cryptographie, Déterminer les critères que doivent vérifier ces fonctions pour résister à la cryptanalyse. 1
Chiffrement à flot La méthode de chiffrement à clef secrète qui présente la meilleure sécurité possible est celle du système de Vernam, également nommée masque jetable ou one-time pad. Elle consiste en l addition bit-à-bit du texte clair avec une suite aléatoire de même longueur (la clé).
Un théorème de Shannon nous assure qu il est alors impossible de retrouver le texte clair à partir du chiffré si on ne connaît pas la suite chiffrante : on dit que ce système est inconditionnellement sûr. Cependant l échange de la suite entre les deux protagonistes pose un problème important à cause de sa grande longueur. 2
Sécurité au sens de Shannon Partons d un système cryptographique constitué de : - un ensemble fini M de textes clairs, - un ensemble fini C de textes chiffrés, - un ensemble fini K de clés, - pour chaque clé k K une fonction de chiffrement e k de M dans C et une fonction de déchiffrement d k de e k (M) dans M de telle sorte que d k e k = Id M. Les fonctions d k et e k doivent bien entendu être des fonctions injectives compte tenu de leur signification pratique. 3
Nous supposerons que M est muni d une probabilité P M et que K est aussi muni d une probabilité P K. Nous noterons P la probabilité produit sur M K. C est cette probabilité que nous utiliserons, ce qui signifie en particulier que les clés sont choisies indépendamment des textes clairs. Ce système est utilisé de la manière suivante : chaque nouveau chiffrement d un texte clair utilise une nouvelle clé choisie aléatoirement dans K, conformément à sa loi de probabilité. 4
Pour simplifier les notations, par abus de langage : - si x M, nous noterons encore x l événement {x} K, et parlerons de ce fait de P(x) cette dernière probabilité valant d ailleurs P M ({x}); - de la même manière, si k K, nous noterons encore k l événement M {k} la probabilité P(k) valant cette fois P K ({k}); - enfin si y C, nous noterons encore y l événement {(x,k) e k (x) = y}. Ainsi, x est l événement le texte clair est x, k est l événement la clé est k et y l événement le texte chiffré est y. 5
Remarquons que : {(x,k) e k (x) = y} = {(d k (y),k)}, k K y e k (M) et qu en conséquence, la probabilité de y est donnée par : P(y) = P(k)P(d k (y)). k K y e k (M) puisque les probabilités sont indépendantes. Nous noterons aussi P(x y) la probabilité conditionnelle de l événement x sachant y ( le texte clair est x sachant que le texte chiffre est y ). Remarque 1 C est dans le calcul de P(y) qu intervient le fait qu une nouvelle clé k est prise aléatoirement pour chaque nouveau message x. 6
Systèmes cryptographiquement sûrs Définition 1 Un système cryptographique, du type décrit précédemment (en particulier pour lequel on choisit une nouvelle clé pour chaque nouveau message), est parfaitement sûr si pour tout x M, pour tout y C P(x y) = P(x). Autrement dit, la probabilité d un texte clair x sachant que le texte chiffré est y est la même que la probabilité de x. Le texte chiffré dans ce cas n apporte aucune information sur le texte clair. Dans ce cas, nous serons sûrs qu aucune personne ne pourra le décrypter, quelle que soit la puissance de calcul dont il peut disposer. Théorème 1 Si on suppose que pour tout y C on a P(y) > 0 et que le système est parfaitement sûr, alors : K C M. 7
Démonstration Remarquons que la condition P(y) > 0 est naturelle dans la mesure où un chiffré qui a une probabilité nulle d être atteint peut être supprimé de l ensemble C (nous sommes dans le cadre d ensembles finis). Fixons x M tel que P(x) > 0. Pour chaque y C on a : P(x y) = P(x) D après le théorème de Bayes : P(y)P(x y) = P(y x)p(x) donc P(y x) = P(y) > 0. Ceci signifie qu il existe au moins une clé k K, telle que e k (x) = y. Par suite : De plus, comme e k est injective on a : K C. C M. 8
Théorème 2 Soit un système cryptographique vérifiant : K = C = M. ainsi que P(y) > 0 pour tout y C. Il est à sécurité parfaite si et seulement si les deux conditions suivantes sont réalisées : a) toutes les clés sont équiprobables; b) pour chaque x M et chaque y C il existe une unique clé k vérifiant e k (x) = y. 9
Démonstration On a C = M, donc les applications e k, qui sont injectives, sont aussi surjectives. Donc e k (M) = C et e k (x) = y d k (y) = m. Si les conditions sont vérifiées, pour tout y C on a successivement : P(y) = k K y e k (M) = 1 K k K P(k)P(d k (y)) P(d k (y)) 10
Et on a # k K {d k (y)} = # = # k K,m M m M {(d k (y),m) d k (y) = m} {(d k (y),m) d k (y) = m} parce que pour chaque x M et chaque y C il existe une unique clé k vérifiant d k (y) = m = # = #M m M {m} Donc Et donc k K P(d k (y)) = P( k K P(y) = 1 K {d k (y)}) = P(M) = 1
On a d autre part, pour les mêmes raisons P(y x) = P(x y) P(x) = P(x k) P(x) = P(x)P(k) P(x) = P(k) = 1 K La formule de Bayes nous donne alors : La sécurité est donc parfaite. P(x y) = P(y x)p(x) P(y) = 1 K P(x) 1 K = P(x) 11
Réciproquement, supposons la sécurité parfaite. Comme dans le theorème précédent, on montre que pour chaque couple (x, y) M C il existe une clé k telle que e k (x) = y. Pour x fixé on a donc : {e k (x) k K } = C, ce qui montre que pour x fixé l ensemble des e k (x) est de cardinal C = K. Ces e k (x) sont donc distincts deux à deux et pour chaque y C, la clé k vérifiant e k (x) = y est unique. Pour deux clés k 1 et k 2 calculons P(k 1 ) et P(k 2 ). Pour cela fixons y et désignons par x 1 (resp. x 2 ) l unique élément de M vérifiant e k (x 1 ) = y 1 (chaque e k est injective et donc ici bijective). Grâce à la sécurité parfaite on obtient : P(y) = P(y x 1 ) = P(x 1 y) P(x 1 ) = P(x 1 k 1 ) P(x 1 ) = P(x 1)P(k 1 ) P(x 1 ) = P(k 1 ).
parce que pour chaque x M et chaque y C il existe une unique clé k vérifiant e k (x) = y. Le même calcul peut être fait avec k 2. Ce qui prouve que P(k 1 ) = P(k 2 ). Exemple Le système de Vernam vérifie très exactement les conditions du théorème. C est un système parfaitement sûr. En pratique, la réalisation d un tel système est faite en utilisant un générateur pseudo-aléatoire, et les conditions de validité du résultat de Shannon ne sont plus remplies.