![]() ![]() ![]() ![]() |
Systèmes modernes à clé secrète1. One-time pad
|
||||||||||||
GénéralitésStéganographieCryptanalyseLittératureTranspositionsSubs. monoα
|
Des
cryptographes, conscients que le Vigenère n'était pas infaillible,
ont
été proposé des améliorations. On voit bien dans les exemples
ci-dessous qu'elles ne résolvent pas le problème fondamental...
Un codage "parfait" ?Qualifier un système de chiffrage de parfait exige une définition rigoureuse. Il revient à Claude Shannon de l'avoir formulée pour la première fois en 1949. Quelques rappels de probabilités sont nécessaires...probabilité conditionnelleÉtant donné deux événements A et B, la probabilité (conditionnelle) de A sachant B, notée P(A | B) [1] est définie par
C'est la probabilité de l'événement A lorsque l'événement B est supposé réalisé. On définirait de manière symétrique la probabilité de B sachant A. On dit que l'événement A est indépendant de B si P(A | B) = P(A). Cela signifie que l'issue de l'événement B est sans incidence sur celle de A. Selon (1) cela équivaut donc à : P(A et B)/P(B) = P(A), ou encore : P(A et B) = P(A) × P(B). Sous cette dernière forme, on voit que A et B jouent un rôle identique, autrement dit : "A est indépendant de B" équivaut à "B est indépendant de A" [2]. On peut donc se contenter d'énoncer : "A et B sont indépendants". ![]() application aux systèmes de cryptageUn système de cryptage sera dit parfait si, pour tous messages clair M et chiffré C :
Cela signifie donc que la connaissance du chiffré ne procure aucune information sur le clair. On peut la reformuler en termes de probabilité conditionnelles en disant que clair et chiffré sont indépendants. La relation d'indépendance étant symétrique :
Étant donné un chiffré C, tous les clairs sont équiprobables ! Il est facile de voir que les chiffrages monoalphabétiques type César ne vérifient pas cette condition [3], de même que le Vigenère et ses descendants [4]. ![]() Le chiffrage "one-time pad"Ce système est aussi appelé chiffrement à flot ou clé-une-fois ou masque jetable ou chiffre de Vernam, du nom de son inventeur G. Vernam. Celui-ci a mis en forme en 1917 une idée remontant en fait à 1882 (F. Miller). En 1919, Vernam a breveté un système électromécanique réalisant ce cryptage.Essentiellement, le chiffrage de Vernam répond au même principe que le Vignère. Il effectue une addition modulaire du message clair M avec une clé K pour obtenir le chiffré C : C = M ⊕ K. La différence réside en la clé, qui doit satisfaire deux conditions très strictes :
La condition (A) est évidemment nécessaire puisque, nous l'avons vu, c'est son absence qui permet de casser le chiffrage Vigenère. La condition (B), nous allons le constater, commande une bonne partie de l'efficacité du système Vernam. Nous notons toujours ⊕ l'addition modulo N, la soustraction modulo N étant notée ⊖. Cette distinction n'a pas lieu d'être lorsque N = 2 (cas d'un message transcrit en binaire), les deux opérations ⊕ et ⊖ étant alors identiques. ![]() réalisations du one-time padLe chiffrage Vernam a été très employé pendant et après la 2nde guerre mondiale. Mais la contrainte de transmission des clés le rendait mal adapté à une utilisation "dans le feu de l'action". Il a donc construit son succès au sein des états-majors, ou dans l'espionnage.Les espions soviétiques pendant la guerre froide encryptaient leurs transmissions au moyen de minuscules carnets de clés tels celui-ci : Le système électromécanique Vernam quant à lui convertissait le clair sous forme binaire avant transmission. Le "télétype rouge" entre la Maison Blanche et le Kremlin, durant la guerre froide, utilisait ce type de cryptage. C'est dire quelle confiance on plaçait en ce système. ![]() perfection du one-time-padEn effet, le chiffrage one-time pad satisfait la condition de perfection de Shannon (2). Rappelons la définition de la probabilité conditionnelle :
Dans le cas du one-time pad, le chiffré s'obtient par addition modulaire de la clé K avec le clair : C = M ⊕ K, donc on peut développer : P(clair
= M et chiffré = C) = P(clair
= M et clé = C ⊖ M) P(chiffré
= C) = ∑ℳ P(clair = M
et chiffré = C)
C'est bien la condition (2) de Shannon. Deux remarques :
optimalité du one-time padLe one-time pad, tel que nous l'avons décrit, est théoriquement parfait selon la définition de Shannon. Mais les conditions (A) et (B) sur les clés sont très contraignantes. Peut-on les alléger ? Il n'en est rien, en vertu du fameux principe des tiroirs :théorème : Pour tout système de cryptage satisfaisant la condition de perfection (2) de Shannon, l'espace des clefs 𝒦 a au moins le même cardinal que l'espace des clairs ℳ : #𝒦 ≥ #ℳ preuve.
Par l'absurde, supposons #𝒦 < #ℳ. Fixons un chiffré C0
provenant d'un clair M0
par l'application d'une clé K0
(C0 = M0
⊕ K0).
Dénombrons les clairs M qui conduisent à C0
par application d'une certaine clé K
: 𝒮 = {M∈ℳ | ∃K∈𝒦, C0 = M ⊕ K} La condition C0 = M ⊕ K équivaut à M = C0 ⊖ K. Comme l'opération de chiffrage est une application injective (un même chiffré ne peut correspondre à deux clairs différents !), on a nécessairement #𝒮 ≤ #𝒦 < #ℳ. L'ensemble 𝒮 ' = ℳ ⧵ 𝒮 = {M∈ℳ | ∀K∈𝒦, C0 ≠ M ⊕ K} est donc non vide. Mais alors
Ainsi, P(clair = M | chiffré = C0) n'est pas indépendante du clair M. Ceci contredit la condition (2b) de Shannon. La condition (B) ne peut être affaiblie, donc. Mais est-ce là un défaut du système, ou de la définition de la perfection selon Shannon ? Celle-ci attribue à l'adversaire ("Eve") une puissance de calcul infinie. Dans une conception moins rigoureuse mais plus réaliste, on pourrait allouer à Eve une capacité de calcul élevée mais bornée.Voyons en tout cas les limitations pratiques associées à ces remarques. ![]()
biais et défauts du one-time pad
Dans le cas d'une utilisation "gouvernementale", les clés sont
disponibles à volonté et leur transmission est assurée. Dans cette
configuration, le one-time pad n'est guère pris en défaut. |