WEBVTT 00:00:00.000 --> 00:00:04.262 Maintenant que nous avons vu quelques exemples de chiffres historiques, 00:00:04.262 --> 00:00:07.130 tous gravement défectueux, nous allons passer à des chiffres bien mieux faits. 00:00:10.122 --> 00:00:13.115 Avant je veux définir plus précisément 00:00:13.115 --> 00:00:17.432 ce qu'est un chiffre. D'abord, rappelez- vous qu'un chiffre est fait de 00:00:17.432 --> 00:00:21.694 deux algorithmes: un algorithme de cryptage et un algorithme de décryptage. 00:00:21.694 --> 00:00:26.012 Mais un chiffre est défini sur un triplet: l'ensemble de toutes les clefs possibles, 00:00:26.012 --> 00:00:31.292 que je vais noter K, que j'appellerai aussi l'espace des clefs; 00:00:31.292 --> 00:00:35.968 l'ensemble de tous les messages possibles, et 00:00:35.968 --> 00:00:40.365 l'ensemble de tous les textes chiffrés possibles. Donc ce triplet est 00:00:40.365 --> 00:00:44.756 l'espace de definition du chiffre. Le chiffre lui-meme est une paire d'algorithmes "efficaces", E et D. 00:00:44.756 --> 00:00:49.236 E est l'algorithme de chiffrage; D est l'algorithme de déchiffrage. 00:00:49.236 --> 00:00:57.762 E prend des clefs et des messages, et produit des textes chiffrés. ///// 00:00:57.762 --> 00:01:06.770 D prend des clefs et des textes en chiffre, et produit des messages. 00:01:06.770 --> 00:01:12.282 Et tout ce qu'il faut, c'est que ces algorithmes soient consistents (/constants): qu'ils satisfassent 00:01:12.282 --> 00:01:17.933 ce qu'on appelle la propriete de correction. Pour tout message dans l'espace des messages, 00:01:17.933 --> 00:01:23.593 et toute clef dans l'espace des clefs, il faut que si je chiffre le 00:01:23.593 --> 00:01:29.185 message avec la clef K et je dechiffre ensuite avec K, je retrouve le message d'origine. 00:01:29.185 --> 00:01:34.711 Cette equation la est ce qu'on appelle 00:01:34.711 --> 00:01:39.974 l'equation de consistance (/constance) et tout chiffre doit la satisfaire pour etre un chiffre, 00:01:39.974 --> 00:01:44.970 sinon le dechiffrage est impossible. Une chose a souligner est que j'ai place 00:01:44.970 --> 00:01:49.782 le mot "efficace" entre guillemets. La raison en est qu'"efficace" 00:01:49.782 --> 00:01:54.041 a des senses differents selon ta perspective. Si tu aimes la 00:01:54.041 --> 00:01:58.811 theorie, l'efficacite veut dire que ca s'execute en un temps d'ordre polynomial. Les algorithmes E et D prennent un 00:01:58.811 --> 00:02:02.842 temps d'ordre polynomial a operer sur leurs donnees. Si tu es plus pratique, 00:02:02.842 --> 00:02:07.045 l'efficacite veut dire que ca dure un temps assez court. Par exemple, 00:02:07.045 --> 00:02:11.474 un algorithme E prendrait moins d'une minute pour chiffrer 1 gigabyte d'information. 00:02:11.474 --> 00:02:16.073 D'une facon ou d'une autre, le mot "efficace" capture la notion de duree et tu peux 00:02:16.073 --> 00:02:20.158 l'interpreter dans ta tete comme tu le veux. Je vais continuer a 00:02:20.158 --> 00:02:24.139 parler d'efficacite et a mettre le mot entre guillemets, et comme je l'ai dit si tu es plus theorique 00:02:24.189 --> 00:02:27.964 penses "duree polynomiale", sinon penses 00:02:27.964 --> 00:02:32.100 contraintes temporelles concretes. Un autre commentaire que je veut faire est que l'algorithme E 00:02:32.100 --> 00:02:36.455 est souvent un algorithme aleatoire. Ca veut dire que pendant que tu cryptes 00:02:36.455 --> 00:02:40.981 un message, l'algorithme E va generer des bits au hasard, 00:02:40.981 --> 00:02:45.676 et va utiliser ces bits pour chiffrer le message. 00:02:45.676 --> 00:02:50.258 Par contre, l'agorithme de dechiffrement est toujours deterministe. C'est a dire 00:02:50.258 --> 00:02:54.558 que la clef et le texte chiffre sont toujours les memes. Ils ne dependent pas 00:02:54.558 --> 00:02:58.970 du hasard d'un algorithme. Bon, maintenant que nous comprenons 00:02:58.970 --> 00:03:03.552 mieux ce qu'est un chiffre, je veux te montrer un premier exemple de chiffre sur ("secure"). 00:03:03.552 --> 00:03:08.364 Ca s'appelle le "one time pad" (la feuille a 1 utilisation). Vernam l'a cree au debut du 00:03:08.364 --> 00:03:12.724 vingtieme siecle. Avant d'expliquer de qu'est ce chiffre, decrivons le avec 00:03:12.724 --> 00:03:17.383 la terminologie que nous venons d'apprendre. L'espace des messages du 00:03:17.383 --> 00:03:22.221 chiffre de Vernam est le meme que l'espace des textes chiffres, et c'est tout simplement 00:03:22.221 --> 00:03:27.653 l'ensemble des strings (/sequences) binaires longues de n-bits. C'est a dire toutes les sequences de 00:03:27.653 --> 00:03:33.854 bits, de 0 et de 1. L'espace des clefs est le meme que l'espace 00:03:33.854 --> 00:03:40.134 des messages, qui est encore l'ensemble de toutes les sequences binaires. Une clef dans le "onetime pad" 00:03:40.134 --> 00:03:46.290 est une longue sequence binaire aleatoire, aussi longue 00:03:46.290 --> 00:03:51.508 que le message a chiffrer. Bon, maintenant que nous 00:03:51.508 --> 00:03:56.726 avons precise l'univers de definition du chiffre, decrivons comment 00:03:56.726 --> 00:04:02.010 le chiffre fonctionne. C'est tres simple. Essentiellement, le texte chiffre 00:04:02.010 --> 00:04:07.812 qui resulte du cryptage du message 00:04:07.812 --> 00:04:13.766 est simplement k XOR m. Voyons en un exemple. 00:04:13.766 --> 00:04:20.026 Souviens-toi que XOR, ce signe d'addition entoure d'un cercle, veut dire une addition modulo 2. 00:04:20.026 --> 00:04:26.825 Donc je prends un message, disons 0110111. Et je prends 00:04:26.825 --> 00:04:33.871 une clef, disons 1011001. Quand je chiffre le message 00:04:33.871 --> 00:04:38.838 avec la clef, je compute le XOR des deux sequences de bits. 00:04:38.838 --> 00:04:43.942 Autrement dit, j'additionne les deux, modulo 2, bit par bit. La, le resultat 00:04:43.942 --> 00:04:48.645 c'est 101110. C'est le texte chiffre. Comment le decrypter? 00:04:48.645 --> 00:04:52.893 Faisons un chose semblable. Pour decrypter un texte chiffre en utilisant 00:04:52.893 --> 00:04:57.248 une clef, je XOR la clef et le texte chiffre. Et tout ce qu'il 00:04:57.248 --> 00:05:01.819 faut verifier c'est que ca satisfasse la regle de consistance. Je vais le refaire doucement 00:05:01.819 --> 00:05:06.443 une fois encore et ensuite je vais le prendre pour aquis. 00:05:06.443 --> 00:05:10.798 Donc je doit m'assurer que si je decrypte un texte chiffre, 00:05:10.798 --> 00:05:14.893 qui avait ete encrypte avec une certaine clef, j'ai bien interrest a ce que le resultat soit 00:05:14.893 --> 00:05:20.481 le message d'origine, m. Voyons ce qui se passe. Je prends le 00:05:20.481 --> 00:05:25.996 message chiffre, qui resultait de k XOR m par definition. Quelle en est le dechiffrage? 00:05:25.996 --> 00:05:31.628 C'est k XOR (k XOR m). Et comme l'addition modulo 2 est associative, 00:05:31.628 --> 00:05:36.948 c'est equivallent a (k XOR k) XOR m, 00:05:36.948 --> 00:05:43.007 qui peut etre simplifie. (k XOR k) = 0, et zero XOR m 00:05:43.007 --> 00:05:49.066 est simplement m. Bon, ceci demontre que le ontime pad est bien un chiffre, 00:05:49.066 --> 00:05:54.277 mais ca ne nous dit rien de sa surete. Nous allons parler de 00:05:54.277 --> 00:05:58.319 la surete (/securite) de ce chiffre dans un instant. D'abord, je vais te poser une question, 00:05:58.319 --> 00:06:02.205 juste pour s'assurer que tu suis bien. Suppose un message m 00:06:02.205 --> 00:06:06.092 et le chiffrage de m via une clef "ontime pad" k. 00:06:06.092 --> 00:06:10.522 Tout ce que tu as est le message et son texte chiffre. Ma questions est celle-ci: 00:06:10.522 --> 00:06:15.467 peux-tu deduire la clef qui a servit a 00:06:15.467 --> 00:06:20.588 la creation de c a partir de m? 00:06:20.588 --> 00:06:23.030 J'espere que tu t'ai rendu compte que, etant donne le message 00:06:23.030 --> 00:06:25.473 et le texte chiffre, il est tres facile de recouvrire la clef. Plus precisement, 00:06:25.473 --> 00:06:30.241 la clef est m XOR c. Si ceci n'est pas immediatement evident, 00:06:30.241 --> 00:06:35.238 nous verrons plus tard pourquoi ceci est le cas. 00:06:35.238 --> 00:06:40.198 Le onetime pad est assez genial du point de vue de sa performance. Tout ce que tu fait 00:06:40.198 --> 00:06:44.656 c'est une XOR de la clef sur le message, et donc c'est super rapide. Mais chiffrer et dechiffrer 00:06:44.656 --> 00:06:48.464 des messages tres longs devient difficile en pratique. 00:06:48.464 --> 00:06:52.768 La raison que c'est difficile est que la clef 00:06:52.768 --> 00:06:56.907 est essentiellement aussi longue que le message. Donc si Alice et Bob veulent se parler 00:06:56.907 --> 00:07:01.321 en toute securite, avant qu'Alice ne puisse envoyer un message a Bob, elle doit d'abord 00:07:01.321 --> 00:07:06.011 transmettre a Bob une clef qui est aussi longue 00:07:06.011 --> 00:07:10.536 que le message lui-meme. Et bien sur, si elle a un moyen sur d'envoyer cette clef a Bob, 00:07:10.536 --> 00:07:15.061 pourquoi ne pas s'en servire pour transmettre le 00:07:15.061 --> 00:07:19.439 message lui-meme. Donc le fait que la clef est aussi longue que le message est 00:07:19.439 --> 00:07:23.490 problematique et rend le one-time pad tres difficile a utiliser en pratique. 00:07:23.490 --> 00:07:28.040 Bien sur, nous verrons plus tard que l'idee qui soutent le onetime pad est tres utile, 00:07:28.040 --> 00:07:32.590 Pour l'instant, regardons de plus pres 00:07:32.590 --> 00:07:36.918 sa securite. La question qui saute aux yeux est, pourquoi le chiffre "onetime pad" est-il sur? 00:07:36.918 --> 00:07:41.195 Pourquoi est-ce un bon chiffre? Afin de repondre a cette question, la premiere question a poser 00:07:41.195 --> 00:07:45.191 est, qu'est que ca veut dire qu'un chiffre est sur? 00:07:45.191 --> 00:07:49.759 Qu'est ce qui le rend sur? Bien, alors pour etudier la securite des chiffres, parlons d'abord 00:07:49.759 --> 00:07:54.962 de la theorie de l'information. La premiere personne a etudier la securite des chiffres de 00:07:55.150 --> 00:08:00.076 facon rigoureuse est le fameux Claude Shannon, pere de la theorie de l'information. 00:08:00.076 --> 00:08:05.042 Il publia un fameux papier en 1949 ou il analysa la 00:08:05.042 --> 00:08:10.603 securite du onetime pad. L'idee derriere la definition de securite que nous donna Shannon 00:08:10.603 --> 00:08:15.182 est que si tout ce que tu vois est le texte chiffre, 00:08:15.182 --> 00:08:19.379 tu ne devrais rien savoir du message d'origine. Autrement dit, le texte chiffre 00:08:19.379 --> 00:08:23.413 ne devrait rien reveler du message d'origine. Et tu vois maintenant pourquoi il a fallut attendre 00:08:23.413 --> 00:08:28.047 l'invention de la theorie de l'information pour avoir cette notion, 00:08:28.047 --> 00:08:32.517 parce que Shannon a du qui explique formellement ce qu'une information sur le message d'origine veut dire. 00:08:32.517 --> 00:08:37.653 C'est la la contribution de Shanon. Laisses-moi te montrer la definition de Shanon. 00:08:37.653 --> 00:08:42.841 Je vais l'ecrire lentement. Ce qu'a dit Shanon, c'est, suppose 00:08:42.841 --> 00:08:48.029 que nous avons un chiffre E, D qui est definit dans l'espace K, M, C. Donc K, M, C 00:08:48.029 --> 00:08:53.411 definissent les espaces de la clef, du message et du texte chiffre. 00:08:53.411 --> 00:08:58.404 On dit que le chiffre est parfaitement sur si la condition suivante est verifiee. 00:08:58.404 --> 00:09:03.592 Pour toute paire de messages m0 et m1 dans l'espace des messages... 00:09:03.592 --> 00:09:08.684 pour toute paire de messages -- la seule exigence est que 00:09:08.684 --> 00:09:13.831 ces messages aient la meme longueur, nous verrons pourquoi dans une minute -- 00:09:13.831 --> 00:09:19.106 et pour tout texte chiffre dans l'espace des textes chiffres, 00:09:19.106 --> 00:09:25.221 (okay?) donc pour toute paire de messages et tout texte chiffre, 00:09:25.221 --> 00:09:31.118 il faut que, si je demance quelle est la probabilite que 00:09:31.357 --> 00:09:37.096 le resultat du chiffrage de m0 par k soit c? 00:09:37.096 --> 00:09:43.551 Quelle chance y a-t'il que, si je choisi une clef au hasard, et que je chiffre m0, j'obtienne c? 00:09:43.551 --> 00:09:49.819 Cette probabilite doit etre la meme que si j'avais chiffre m1. Okay, bon, 00:09:49.819 --> 00:09:54.920 la probabilite de chiffrer m1 et d'obtenir c est exactement la meme que la 00:09:54.920 --> 00:09:59.955 probabilite de chiffrer m0 et d'obtenir c. Et comme je l'ai dit auparavant, 00:09:59.955 --> 00:10:04.658 la clef est choisie au hasard dans un espace (de clefs) a distribution uniforme. 00:10:04.658 --> 00:10:10.157 Donc k est uniforme (a une probabilite uniforme d'etre choisie) dans K. J'utiliserais souvent la notation 00:10:10.157 --> 00:10:15.390 K, fleche avec un petit r au dessus pour indiquer le fait que k est une variable aleatoire qui est 00:10:15.390 --> 00:10:20.491 echantillonnee de facon uniforme dans l'espace K. Bon, voici le coeur de la definition de Shannon. 00:10:20.491 --> 00:10:25.892 Reflechissons a ce que cette definition dit essentiellement. 00:10:25.892 --> 00:10:30.965 Que ce que ca veut dire que ces deux probabilites sont les memes? Et bien, ce que ca 00:10:30.965 --> 00:10:36.304 nous dit, c'est que si je suis un attaquant et que j'intercepte un texte chiffre c, 00:10:36.304 --> 00:10:41.577 la probabilite que de c soit le cryptage de m0 est 00:10:41.577 --> 00:10:46.798 exactement la meme que la probabilite que c'est le cryptage de m1. Parceque 00:10:46.798 --> 00:10:52.219 ces probabilites sont egales. Donc si j'ai seulement le texte chiffre c, et rien de plus, 00:10:52.219 --> 00:10:57.639 je n'ai aucune idee de si le texte chiffre vient de m0 00:10:57.639 --> 00:11:03.196 ou de m1, parceque, encore, la probabilite d'obtenir c est 00:11:03.196 --> 00:11:08.651 egale que ce soit m0 ou m1 qui ait ete encrypte. 00:11:08.651 --> 00:11:13.286 Alors la, la definition est donnee a nouveau. Et je veux juste ecrire ces proprietes une fois encore 00:11:13.286 --> 00:11:17.749 plus precisement. Alors refaisons le. Ce que cette definition veux dire, c'est que 00:11:17.749 --> 00:11:22.326 si je recoit un certain texte chiffre, je ne peux pas dire d'ou il vient. 00:11:22.326 --> 00:11:27.125 Je ne peux pas dire si le message qui en est l'original etait m0 ou m1. 00:11:27.125 --> 00:11:32.090 Et en fait cette propriete est vraie de tous les messages, pour tout m0, 00:11:32.090 --> 00:11:37.117 pour tout m1. Non seulement je ne peux pas dire si c vient de m0 ou de m1, 00:11:37.117 --> 00:11:42.144 je ne peux pas dire s'il vient de m2, m3, m4 ou m5 parceque 00:11:42.144 --> 00:11:47.109 tous ont la meme probabilite de produire c. Donc ce que je veux dire vraiment 00:11:47.109 --> 00:11:52.074 c'est que si tu encryptes des messages sur un onetime pad alors meme l'adversaire le plus 00:11:52.074 --> 00:11:56.729 formidable, quelque soit son intelligence, l'adversaire le plus puissant 00:11:56.729 --> 00:12:02.530 ne poura rien apprendre du message d'origine 00:12:02.530 --> 00:12:09.624 a partir du texte chiffre. Dit d'une autre maniere, 00:12:09.624 --> 00:12:16.315 ce que ca prouve c'est qu'aucune attaque fondee seulement sur le texte chiffre ne pourra venir a bout 00:12:16.315 --> 00:12:23.263 d'un chiffre qui est parfaitement secret. Maintenant, une attaque sur le chiffre n'est pas la seule attaque possible. 00:12:23.263 --> 00:12:29.440 Et en fait, d'autres attaques sont plausibles. 00:12:32.160 --> 00:12:36.772 Bon. Maintenant que nous comprenons le secret parfait, la prochaine question est celle-ci: 00:12:36.772 --> 00:12:41.327 pouvons-nous construire des chiffres qui sont parfaitement secrets? Et il ne faut pas chercher loin, 00:12:41.327 --> 00:12:45.517 parceque la ontime pad est parfaitement secrete. 00:12:45.517 --> 00:12:50.719 Alors je veux prouver cela, est c'est le premier resultat qu'a obtenu Shannon, 00:12:50.719 --> 00:12:55.858 c'est une preuve tres simple alors allons-y et voyons comment ca se fait. 00:12:55.858 --> 00:13:01.061 Nous avons besoin d'interpreter ce que veut dire cette probabilite Pr[E(k,m0)=c? 00:13:01.061 --> 00:13:06.200 est zero. Alors ce n;est pas vraiment difficile a voir que pour tout message et 00:13:06.200 --> 00:13:11.022 pour tout texte chiffre la probabilite que le cryptage de m via la clef k 00:13:11.022 --> 00:13:16.161 la probabilite que cela soit egal a c, la probabilite d'un choix au hasard de clef, est, par definition, 00:13:16.161 --> 00:13:23.720 le nombre de clefs ( le nb de k appartenant a K) 00:13:24.758 --> 00:13:31.533 tel que, si je chiffre m avec k, j'obtient c. Donc je compte literalement le nombre de clefs comme ca 00:13:31.533 --> 00:13:37.207 et je divise par le nombre total de clefs dans l'espace K. C'est bon? C'est ce que ca veut dire 00:13:37.207 --> 00:13:42.833 que si je choisi une clef au hasard, elle projette m sur c. Bien. Donc a la base, ce nombre de clefs 00:13:42.833 --> 00:13:47.707 qui projettent m sur c, divise par le nombre total de clefs. C'est sa probabilite. 00:13:47.707 --> 00:13:53.406 Maintenant suppose que nous avons un chiffre tel que pour tout message et 00:13:53.406 --> 00:13:58.967 tout texte chiffre, il se trouve que si je regarde ce nombre, 00:13:58.967 --> 00:14:04.391 le nombre de k dans K tels que E(m,k)=c, ou le nombre de clefs 00:14:04.391 --> 00:14:09.259 qui projettent m sur c, suppose que ce nombre soit constant. 00:14:09.259 --> 00:14:14.079 Je postule qu'il se trouve etre 2, 3, ou 10 ou 15. Il se trouve simplement etre 00:14:14.079 --> 00:14:19.332 une constante. Si c'est le cas, alors par definition, pour tout m0 et m1 00:14:19.332 --> 00:14:24.747 et pour tout c, cette probabilite doit etre la meme parce que le denominateur est le meme, 00:14:24.747 --> 00:14:30.097 le numerateur est le meme, c'est juste une constante, et donc la probabilite est 00:14:30.097 --> 00:14:35.644 toujours la meme pour tout m et tout c. Alors si cette propriete est vraie, le chiffre doit avoir 00:14:35.644 --> 00:14:43.616 une surete parfaite (/un secret parfait). Bon, alors voyons ce qu'on peut dire au suject 00:14:43.616 --> 00:14:48.804 de cette quantite pour le onetime pad. Alors une question pour toi: 00:14:48.804 --> 00:14:54.770 Si j'ai un message chiffre, combien de onetime pads y a t-il qui projettent m sur c? Autrement dit, combien de clefs 00:14:54.770 --> 00:15:00.381 y a-t-il telles que m XOR k produise c? 00:15:00.381 --> 00:15:06.101 Alors j'espere que tu a repondu "1". Voyons pourquoi c'est le cas. 00:15:06.101 --> 00:15:12.683 Pour le onetime pad, si on a que E(k,m)=c, 00:15:12.683 --> 00:15:18.303 ca implique par definition que k XOR m = c. 00:15:18.303 --> 00:15:24.885 Cela implique que k = m XOR c. 00:15:24.885 --> 00:15:31.766 Je "XOR" les deux cotes par "m" et j'obtiens que k doit etre egal a 00:15:31.766 --> 00:15:37.561 m XOR C. Bien? Alors ce que ce veut dire, c'est que pour le onetime pad, en fait, 00:15:37.561 --> 00:15:43.707 le nombre de clefs dans K tels que E(k,m)=c tout simplement 1. Et cela est vrai 00:15:43.707 --> 00:15:49.852 pour tout message et tout texte chiffre. Alors, encore, comme on l'a dit avant, 00:15:49.852 --> 00:15:54.987 cela signifie que le onetime pad est parfaitement secret. 00:15:54.987 --> 00:15:59.093 Et cela complete la preuve de ce lemme trivial, tres, tres simple. 00:15:59.093 --> 00:16:03.644 Maintenant la chose marrante est que meme si ce lemme est simple a prouver 00:16:03.644 --> 00:16:08.194 il demontre quelque chose de tres puissant. Il nous dit au fond que 00:16:08.194 --> 00:16:12.328 pour un onetime pad, il n'est pas possible d;attaquer seulement le texte chiffre. Alors au contraire 00:16:12.328 --> 00:16:16.393 du chiffre de substitution, ou du chiffre de Vigenere, ou des machines a cran, qui pouvaient toutes 00:16:16.393 --> 00:16:20.778 etre cassees par une analyse du texte chiffre, nous venons de prouver que pour le onetime pad 00:16:20.778 --> 00:16:25.110 cela serait impossible. Etant donne le texte chiffre, tu n'apprends rien 00:16:25.110 --> 00:16:29.281 du message d'origine. Cependant, comme on l'a vu, cela n'est pas la fin de l'histoire. 00:16:29.281 --> 00:16:33.131 Je veux dire, est-ce qu'on a fini? On pourrait avoir deja fini la classe, parcequ'on 00:16:33.131 --> 00:16:37.359 a une methode pour chiffrer de facon a ce qu'un attaquant ne peut rien recouvrir du message. 00:16:37.359 --> 00:16:41.206 On peut tout aussi bien finir le cour maintenent. Mais en fait, comme nous allons voir, il y a 00:16:41.206 --> 00:16:45.261 d'autres attaques qui sont possibles. Et, en fait, ce ontime pad n'est pas 00:16:45.261 --> 00:16:49.316 un chiffre tellement sur. Il y aa d'autres attaques et nous allons 00:16:49.316 --> 00:16:54.075 les etudier bientot. Okay? Je souligne encore: le fait qu'il a un secret parfait ne veut pas dire 00:16:54.075 --> 00:16:58.785 que le onetime pad est un chiffre sur. Bien. Mais comme on l'a dit 00:16:58.785 --> 00:17:03.733 le probleme avec le onetime pad est que la clef secrete est vraiment longue. Si tu as 00:17:03.733 --> 00:17:08.071 une maniere de communiquer cette clef secrete a ta contrepartie, tu peux tout aussi bien 00:17:08.071 --> 00:17:12.253 te servir de cette meme methode pour communiquer le message a ta contrepartie 00:17:12.253 --> 00:17:16.652 et tu n'aurras alors pas besoin d'un chiffre pour commencer. C'est bon? Donc le probleme encore une fois 00:17:16.652 --> 00:17:21.105 est que le onetime pad a des clefs tres longues. La question evidente est y a-t-il 00:17:21.105 --> 00:17:25.450 d'autres chiffres qui ont un secret parfait et ont peut-etre des clefs bien plus courtes? 00:17:25.450 --> 00:17:30.136 Et bien, le mauvaise nouvelle est que Shannon, apres avoir prouve que le onetime pad 00:17:30.136 --> 00:17:34.945 est parfaitement secret, prouva un autre theoreme qui dit que si un chiffre 00:17:34.945 --> 00:17:39.878 est parfaitement secret, le nombre de clefs dans le chiffre doit etre exactement le nombre de 00:17:39.878 --> 00:17:44.935 messages que le chiffre peut supporter. Bon, alors en particulier, ce que ca veut dire c'est que 00:17:44.935 --> 00:17:51.037 si j'ai un secret parfait, alors necessairement le nombre de clef, ou plutot la longueur de ma clef, 00:17:51.037 --> 00:17:56.309 doit etre plus grande que la longueur du message. Alors en fait, puisque le onetime pad 00:17:56.309 --> 00:18:00.834 nous satisfait avec l'egalite (de longueur), le onetime pad est optimal. Il est parfaitement secret. 00:18:00.834 --> 00:18:04.862 Alors a la base, ce que ca demontre, c'est que c'est 00:18:04.862 --> 00:18:09.056 une notion interessante. Le onetime pad est un chiffre interessant. Mais en fait, 00:18:09.056 --> 00:18:13.360 en realite, c'est tres difficile a utiliser. Il est difficile de s'en servire en pratique, 00:18:13.360 --> 00:18:17.790 a cause de ses longues clefs. Et cette notion de secret parfait, 00:18:17.790 --> 00:18:21.840 meme si elle est interessante, nous dit que des chiffres pratiques ne seront pas vraiment surs. 00:18:21.840 --> 00:18:26.279 Et nous verrons cela, mais comme je l'ai dit, 00:18:26.279 --> 00:18:30.994 l'idea deriere le onetime pad est tres bonne. Et nous allons voir, en cours, 00:18:30.994 --> 00:18:33.547 comment en faire un systeme pratique.