Loading
Study Reminders
Support
Text Version

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Fondations de CryptographyProf. Dr. Ashish Choudhury (Former) Infosys Foundation Career Development Chair ProfessorInternational Institute of Information Technology-BengaluruLecture-03Historical Ciphers And Their CryptanalysisHello everyone, welcome to the third lecture. Le plan pour cette conférence est le suivant. (Référez-vous à la diaporama: 00 :34) Dans cette conférence, nous discuterons de certains des algorithmes historiques tels que le chiffrement par postes, le chiffrement de substitution alphabétique et le chiffrement de substitution à caractères alphabétiques, et nous verrons leur cryptanalyse, c'est-à-dire que nous verrons à quel point ces chiffrements ont été mal répartis. Nous verrons les leçons que nous tirons de ces algorithmes historiques. Enfin, nous discuterons des principes de la cryptographie moderne. (Référez-vous à la diapositive: 00 :56) Donc, discutons du code de chiffrement qui est un processus de chiffrement symétrique très simple et, dans le code de chiffrement, le texte brut et les caractères de texte de chiffrement appartiennent à l'alphabet de certaines langues naturelles. Ainsi, par exemple, nous supposons que le texte en clair et les caractères de chiffrement appartiennent à l'alphabet anglais, c'est-à-dire à l'ensemble des lettres a à z. Et le processus de chiffrement ici consiste à décaler chaque instance du caractère de texte brut par des positions k vers l'avant, et le processus de déchiffrement consiste à décaler chaque caractère de texte par des positions de k dans la direction arrière. Et le changement ici, à savoir la valeur de k, sera l'une des valeurs de 0 à 25, qui est sélectionné au hasard par l'algorithme de génération de clé. Ainsi, l'interprétation mathématique du code de transfert est la suivante. Puisque les caractères de texte en clair appartiennent à l'ensemble a à z, nous interprétons le caractère „ a "comme le symbole 0 caractère „ b" comme un symbole 1 et de la même façon que nous interprétons le caractère „ z " comme le symbole 25. C'est un mappage que nous supposons est disponible à la fois à l'expéditeur et au destinataire ou à tout tiers qui va utiliser une instance de code de transfert. Maintenant l'espace clé ici est l'ensemble 0 à 25. Parce que la valeur réelle du décalage, à savoir k, va être l'une de la valeur de la sélection aléatoire dans cet ensemble. Et l'espace de texte en clair et l'espace de chiffrement vont être l'ensemble des chaînes sur l'ensemble 0 à 25. Parce que mon texte en clair va être n'importe quel texte anglais où les caractères du texte en clair seront mappés à l'alphabet dans l'ensemble 0 à 25. Et de la même façon, le texte de chiffrement qui va être un texte sur l'ensemble 0 à 25, sera interprété comme une sorte de chaîne sur l'ensemble 0 à 25. Donc, syntaxiquement, l'algorithme de génération de clé pour le code de chiffrement est le suivant. L'algorithme de génération de clé va générer une valeur uniformément aléatoire, à savoir „ k " qui va être la valeur du décalage que l'expéditeur et le récepteur vont utiliser et ce changement va être une valeur aléatoire à partir de l'espace clé. Ainsi, la notation ici appartenant au sous-script R indique que la sortie de l'algorithme de génération de clé, à savoir „ k " est sélectionnée au hasard sur l'espace clé, et que le caractère aléatoire ici est un caractère aléatoire uniforme. Donc la notation? Indique que la valeur est uniformément sélectionnée sur l'ensemble „ K ". C'est donc l'interprétation de la notation qui appartient au sous-script r. La syntaxe de l'algorithme de chiffrement du code de chiffrement est la suivante. Alors imaginez qu'on nous donne un texte anglais que nous interprétons comme une chaîne sur l'ensemble 0 à 25. Cela signifie que chaque caractère du texte en clair est un symbole dans l'ensemble 0 à 25.Ainsi, le chiffrement du caractère texte en clair se produit comme suit, nous prenons le texte en clair mi et nous avons la valeur du décalage qui va être n'importe laquelle de la valeur comprise entre 0 et 25. Et l'algorithme de chiffrement produit et ith le texte de chiffrement, où le caractère de texte du lièvre est la somme du caractère de texte en clair avec le modulo de décalage 26. Maintenant cette opération modulo 26 s'assure que, nous faisons le bouclage si vous allez au-delà de la valeur 25.Ce que je veux dire par ceci est, si, par exemple, votre mi le caractère en clair est dit „ a ", et si ma valeur de „ k" est de 25, à droite ou à dire mon caractère de texte en clair, disons „ b ", et si ma valeur de „ k" est 25, alors si „ b " est mappé à 1, et que mon k est 25. Et si j'ajoute 25 à 1, en fait, je franchis la valeur, la gamme de valeurs qui est autorisée pour les caractères de chiffrement, à savoir de 0 à 25. Cela veut dire que je dois faire une boucle, et que l'effet de l'écharpe est en train de se produire en faisant l'opération modulo. Donc, c'est le processus de cryptage du code de transfert et, par analogie, nous avons l'opération de déchiffrement correspondante, où nous prenons le caractère de texte de chiffrement, la valeur du décalage et pour récupérer le caractère de texte en clair, nous allons simplement retourner les positions de „ k " à partir du caractère de texte du lièvre. Et si nécessaire, nous faisons le bouclage en faisant l'opération modulo, modulo 26 operation. (Référez-vous à la diapositive: 05 :25) Alors maintenant, essayons d'analyser la sécurité du chiffrement par équipe et nous ferons l'analyse dans le modèle d'attaque le plus simple, à savoir le modèle d'attaque de chiffrement uniquement, où le scénario est le suivant, nous supposons que nous avons un émetteur et un récepteur et un émetteur a chiffré un texte en anglais composé de caractères „ l " où chacun des caractères appartient à l'ensemble 0 à 25. Et il y a une valeur aléatoire de décalage qui a déjà été convenue entre l'expéditeur et le récepteur. L'adversaire a intercepté le texte de chiffrement qui consiste en caractères de texte de chiffon de „ l et il sait que le caractère de texte chiffré est lié au caractère inconnu du texte en clair par cette relation. Donc ici mi ainsi que le k est inconnu de l'attaquant. Et le but de l'attaquant est de récupérer le message. Donc la plus simple attaque possible que l'adversaire peut lancer ici est ce que nous appelons l'attaque de la force brute, et l'idée derrière une attaque par force brute est la suivante. Ce que l'adversaire a à faire est, il sait que la valeur de k inconnu est l'une des valeurs possibles dans l'intervalle 0 à 25. Donc ce qu'il peut faire, c'est qu'il peut prendre le texte de chiffrement c et qu'il peut penser dans son esprit toutes les valeurs possibles de k et qu'il peut essayer de déchiffrer le texte de chiffrement selon le candidat k lui-même, parce qu'il connaît aussi le processus de décryptage correspondant. Et dès qu'il frappe sur la clé candidate pour laquelle le décryptage donne un texte significatif, je veux dire un texte anglais significatif, il sait qu'il a atteint la clé de droite et, par conséquent, le message récupéré est en effet le bon message avec une forte probabilité. Et cette attaque est très facile à lancer car ici l'adversaire a à faire le calcul, à savoir le décryptage du texte de chiffrement seulement avec 26 clés candidates, ce qui est très facile à perform.Par conséquent, on peut dire que le code de chiffrement peut être très facilement cassé en faisant simplement une attaque par force brute. Donc la leçon importante que nous tirons de cette attaque est ce que nous appelons un principe d'espace clé suffisant qui stipule que tout code de chiffrement sûr devrait avoir un espace clé extrêmement important, à savoir que l'ensemble des clés candidates devrait être extrêmement large, de sorte qu'il ne serait pas pratique pour cet adversaire de faire un type d'attaque par force brute. C'est la condition minimale requise, condition que nous avons besoin pour que notre chiffrement soit sécurisé. (Référez-vous à la diapositive: 07 :49) Maintenant, voyons comment nous pouvons résoudre le problème qui est associé au code de chiffrement pour empêcher une attaque par force brute. Et cela mène à un autre chiffre intéressant que nous appelons un code de substitution mono-alphabétique. Et l'idée ici est au lieu de déplacer chaque caractère de texte en clair par le même montant inconnu k, nous décalons chaque texte en clair d'un montant différent dans un mappage d'un à un. Ce que je veux dire ici est le suivant: nous savons que les caractères en clair peuvent être n'importe lequel des caractères de l'intervalle a à z, ou 0 à 25. Ce que nous faisons, c'est de mapper ce caractère de texte brut dans un mappage d'un à un à l'ensemble de caractères de chiffrement a à z. Cela signifie que la clé va être une permutation secrète de l'ensemble 0 à 25, qui ne sera connue qu'à l'expéditeur et au récepteur. Par exemple, si nous prenons cette permutation spécifique qui mappe le caractère texte simple a à b, c'est-à-dire dans le texte en clair où le caractère de texte brut est a, toutes les instances d'a sont remplacées par b de la même façon que dans le texte normal, nous avons le caractère c toutes les instances de c vont être remplacées par z et ainsi de suite. Puisque le récepteur connaît également la même permutation secrète sur la réception du texte de chiffrement il doit simplement effectuer l'opération inverse où il voit le caractère ciphertext z, il doit le remplacer par c et ainsi de suite. L'opération de déchiffrement peut donc être effectuée par le récepteur. Maintenant vous pouvez voir l'espace clé du candidat ici est extrêmement grand, à savoir, l'ensemble de clés possibles est en fait 26 factorielle parce que chaque clé n'est rien d'autre qu'une permutation de l'ensemble a à z et il pourrait y avoir 26 factorielles de telles clés candidates. Donc si l'adversaire tente de faire une attaque par force brute, ce que nous avons vu dans le contexte du chiffrement par décalage, la quantité de force brute ou le calcul que l'adversaire doit effectuer est de l'ordre de grandeur 2 à la puissance 88 (288), ce qui est une énorme quantité de calcul. Cela signifie que nous pouvons certainement dire que l'attaque par force brute n'est pas possible pour le lancement d'un algorithme de substitution par transfert. (Référez-vous à la diapositive: 09 :52) Mais cela ne signifie pas nécessairement qu'il s'agit de la seule attaque possible sur le principe de substitution de la substitution par un seul ordre alphabétique. En fait, il s'avère qu'il y a une attaque très intéressante, que nous appelons l'attaque d'analyse de fréquence. Et cette attaque peut être lancée sur n'importe quel algorithme, où l'espace de texte sous-jacent est une langue naturelle qui est en fait le cas dans notre exemple, parce que nous envisageons un paramètre où le texte en clair est en fait le texte anglais. Donc, l'idée ici est d'exploiter la redondance qui est disponible dans n'importe quelle langue naturelle, par exemple, l'anglais. Ce que je veux dire par redondance est le suivant. Si nous considérons un texte long et long en anglais et que nous savons qu'en moyenne, le caractère E se produit plus fréquemment par rapport à n'importe quel autre caractère. De la même façon que nous savons sur une moyenne en texte long en anglais, le caractère T se produit plus fréquemment par rapport au caractère U et ainsi de suite. Non seulement nous avons la fréquence moyenne de la lettre en anglais disponible pour le long texte en anglais, nous pouvons aussi dire que nous sommes disponibles avec la fréquence moyenne des bigrammes anglais dans le texte anglais long, par exemple nous savons que dans le texte anglais long sur une moyenne le bigramme „ th "se produit plus fréquemment par rapport au bigram „ nd" et ainsi de suite, et de la même façon, nous avons la fréquence de la plupart des trigrammes anglais les plus populaires et ainsi de suite. Et il s'agit d'une donnée publique accessible à tout utilisateur de l'univers. Donc, l'idée derrière l'analyse de fréquence est que même si chaque caractère du texte en clair a été mappé à un caractère de chiffrement différent, la relation entre le caractère de chiffrement le plus fréquent et un caractère de texte en clair est préservée. Cela signifie que si l'attaquant voit un texte de chiffrement extrêmement long correspondant au chiffrement d'un texte en anglais extrêmement long, et ce que l'adversaire peut faire, il peut effectuer ou il peut préparer un graphique similaire à celui de la fréquence moyenne de la lettre en anglais où il lui dira quel caractère de texte est le plus souvent comparé à d'autres caractères de chiffrement et ainsi de suite. Par exemple, imaginez qu'après avoir préparé ce graphique, l'adversaire découvre que le caractère hypertexte R a lieu le temps maximum. Donc, ce que l'adversaire peut penser dans son esprit pour déchiffrer le caractère de texte R correspond au caractère de texte en clair E, etc. De la même façon, la relation entre le bigramme de texte de chiffrement le plus fréquent et le bigramme en texte brut le plus fréquent est préservée et donc on.Donc, en faisant la comparaison, l'adversaire peut facilement trouver la permutation secrète correspondante entre l'espace de caractère de texte en clair et un espace de caractères de texte de chiffrement que l'expéditeur et le récepteur exploitent l'instance de chiffrement mono-alphabétique de substitution. Donc, comme vous pouvez le voir, même sans faire l'attaque de la force brute, l'adversaire pourrait facilement récupérer la permutation secrète, et donc le chiffrement mono-alphabétique de substitution peut être très facilement cassé dans le texte de chiffrement uniquement sur le modèle d'attaque. (Voir Diapositive Heure: 12 :54) Alors maintenant, voyons un autre algorithme historique intéressant que nous appelons chiffrement de substitution alphabétique, et qui est aussi appelé "Vigenere cipher" après le nom de son inventeur. Et l'idée ici est de résoudre le problème potentiel qui était là dans le contexte d'un chiffrement mono alphabétique de substitution. L'idée ici est d'appeler plusieurs instances de chiffrement de décalage de manière à ce que, dans chaque cas, un caractère de texte en clair soit mappé à un caractère de chiffrement différent, ce qui signifie qu'il ne va pas arriver que lorsque le caractère en clair a toujours été getsmapped à un caractère de texte de chiffrement spécifique qui ne va pas se produire, cela signifie que la relation entre le caractère de texte en clair le plus fréquent et le caractère de chiffrement le plus fréquent va être dérangée. Et la façon dont nous y parviendrons est la suivante. Ici encore, le message et l'espace de texte en clair et l'espace de chiffrement sont l'ensemble de toutes les possibilités qu'il s'agit d'un ensemble de chaînes sur l'ensemble 0 à 25. Et l'espace clé va maintenant être une chaîne de longueur t, où t est également sélectionné au hasard par l'algorithme de génération de clé et la valeur de t pourrait être n'importe quoi avec la valeur minimale de t étant 1. Et la valeur de la clé va être n'importe quelle chaîne de longueur t sur l'ensemble 0 à 25. Cela signifie que votre algorithme de génération de clé va générer une clé composée de t caractères, où t est également sélectionné au hasard par l'algorithme de génération de clé. Et chaque caractère de la clé va être l'une des valeurs de l'ensemble de 0 à 25, c'est-à-dire un algorithme de génération de clé. Et l'algorithme de chiffrement se produit comme suit. Alors imaginez que l'expéditeur a un texte en clair, ce que l'expéditeur va faire est le suivant il va diviser son texte brut en blocs de t, t, t, il pourrait être le cas que le client n'est pas en fait un multiple de t. Il est possible que le dernier bloc ne soit pas un multiple de t. Mais pour la simplicité, on suppose que le dernier bloc est aussi un multiple de t. Une fois le message divisé en blocs de taille t, t et t. L'idée ici est de chiffrer chacun des blocs à l'aide de la clé en exécutant une instance de chiffrement par équipe. À savoir, nous produisons le bloc de texte comme suit. Alors imaginez que les personnages du bloc ith sont mi1, mi2 et mit. Il y a donc de tels personnages. Et nous avons les caractères clés k1, k2 et kt.So, l'idée ici est que nous produisons le texte ciphertext, avec les caractères des blocs de texte de la ith sont ci1, ci2, et cit, où le caractère jth du bloc de texte est obtenu en déplaçant le caractère de ithjth en clair par le décalage kj modulo 26. (Voir Diapositive Heure: 15 :44) Donc laissez-moi vous montrer ce que j'essaie de dire exactement. Imaginez que la valeur de t est 6 ici OK, et la clé qui est générée de manière aléatoire par l'algorithme de génération de clé suppose que c'est le caractère “ cipher ” à savoir que nous mappons c à 2, à i à 8 et ainsi de suite. Cela signifie que c'est la clé aléatoire qui est générée par l'algorithme de génération de clé. Et il est connu aussi bien pour l'expéditeur que pour le récepteur. Supposons maintenant que le texte en clair que l'expéditeur veut chiffrer est le message en anglais, “ thiscryptosystemisnotsecure ”. Par conséquent, la première étape à chiffrer dans le texte consiste à mapper chacun des caractères du texte brut à l'ensemble 0 à 26, c'est-à-dire aux caractères 0 à 26. Ainsi, par exemple, t est mappé à 19, h est mappé à 7, etc. Une fois que nous avons converti le texte en lettres de l'anglais en lettres comprises entre 0 et 26, nous divisons le message en blocs de 6 6 6 parce que nos clés de taille 6 caractères, donc comme vous pouvez le voir, dans cet exemple particulier, le dernier bloc n'est pas un multiple de 6, donc il se compose de seulement 3 symboles, c'est bien. Ce que nous faisons, c'est de chiffrer le premier bloc comme suit. La clé de notre exemple est la chaîne 2 8 15 7 4 et 17, ce que nous faisons est que nous ajoutons ces lettres sont les symboles ou les nombres au bloc 19 7 8 18 2 et 17 et chacun de l'ajout est effectué modulo 26.Namely, le caractère 19 est décalé par 2. Et puisque nous ne franchissons pas la plage 0 à 26, nous obtenons 21. De la même façon, le caractère 7 est déplacé par 8 pour obtenir le caractère 15. Et de la même façon le dernier caractère du premier bloc qui est 17 devient déplacé par le montant 17 pour obtenir le caractère 6. Donc maintenant vous pouvez voir puisque nous sommes en train de traverser la gamme 0 à 25, nous faisons l'opération mod 26 pour faire le bouclage. Et à la suite de l'envelopperautour, nous obtenons le caractère ciphertext comme 6. De la même façon que nous prenons le deuxième bloc, et encore une fois nous ajoutons les caractères de la clé un par un et font l'opération modulo 26 et par conséquent, une fois que nous avons obtenu les caractères de texte de chiffrement où les alphabets appartiennent à l'ensemble 0 à 26. Chacun de ces caractères alphabétiques est mappé vers le jeu de caractères anglais et, par conséquent, la chaîne “ vpxzgiaxivwpubttmjpwizitwzt ” sera le chiffrement, cette chaîne sera le chiffrement du texte en clair “ thiscryptosystemisnotsecure ”. A l'extrémité réceptrice, le récepteur va également effectuer la même opération, il divisera le texte en blocs de 66 6. Dans ce cas, le dernier bloc comprendra 3 caractères, les interprétera comme des symboles dans la plage de 0 à 25, puis soustrayez chacun des caractères clés modulo 26 pour obtenir le texte en clair, c'est ainsi que nous allons effectuer l'opération de chiffrement et de déchiffrement dans l'algorithme de chiffrement Vigenere. Et maintenant l'idée est la suivante. Si vous voyez le chiffrement, et si vous voyez le texte en clair et le texte chiffré, ce que j'ai mis en évidence ici, c'est toutes les instances du symbole „. Chaque instance du symbole „ s " est mappée à un caractère de texte de chiffrement différent. Par exemple, la première instance du caractère texte en clair est mappée vers la droite z. La seconde instance de la lettre s est mappée vers v et ainsi de suite. Et la raison en est que chaque fois que les valeurs sont décalages de différentes quantités, ce qui dépend de la position du caractère texte qui signifie où exactement il fonctionne, et de la quantité de décalages qui ont été décalages, la quantité de décalage par laquelle s est déplacé ne sera pas la même dans toutes les instances de la lettre s. Parce que cela dépend de la position de la lettre s ainsi que de la valeur du caractère de la clé qui sera utilisée pour déplacer l'instance de l'art. En conséquence, nous sommes en fait en quelque sorte troublant le schéma qui est disponible entre le texte en clair et le texte de chiffrement, cela signifie que nous ne pouvons plus dire que le caractère de chiffrement le plus fréquent correspond au caractère le plus fréquent du texte en clair et ainsi de suite. (Référez-vous à la diapositive: 20 :06) Donc, maintenant vous pouvez voir qu'on peut sentir que Vigenere cipher est vraiment difficile à briser, mais il s'avère que nous pouvons en fait effectuer la cryptanalyse de Vigenere cipher qui signifie que nous pouvons briser le chiffrement Vigenere dans le modèle de chiffrement seul modèle lui-même. Et l'attaque se produit en procédant à une approche en deux étapes. Dans la phase 1, l'objectif sera de déterminer la longueur de t à savoir la taille de la période de la clé de drot.Donc, rappelez-vous, t peut être n'importe quelle valeur à partir de 1 et il y a plusieurs méthodes bien connues, et une méthode intéressante pour déterminer la valeur de t. Ainsi, par exemple, vous pouvez utiliser la méthode de Kasiski ou une autre méthode intéressante appelée index de la méthode de coïncidence et ainsi de suite. Une fois que nous connaissons la valeur de t, dans la phase 2 ce que nous allons faire, c'est que nous allons récupérer les caractères inconnus de la clé.Et une fois que nous connaissons les caractères inconnus de la clé, nous pouvons facilement réaliser l'opération de décryptage et récupérer le texte en clair. Donc, ce que je ferai, c'est que je suppose que nous savons comment déterminer la valeur de t et je la laisse comme une tâche pour vous de passer par les références et de voir ces méthodes et de découvrir comment exactement la valeur de l'inconnu t peut être calculée. Ce qu'Iam va discuter, c'est qu'une fois la valeur de t est connue, comment trouver les caractères inconnus du droit clé, et l'idée ici sera de faire fonctionner des instances indépendantes d'analyse de fréquence. Ce que je veux dire, c'est d'imaginer que l'adversaire a eu le texte chiffré parce que nous supposons que nous sommes dans le modèle d'attaque du texte seul, et son but est de trouver le texte de la plaine inconnue. L'adversaire sait ce qui suit, si nous considérons le premier caractère de chiffrement, puis le caractère (t + 1) du texte de chiffrement, puis (2 t + 1) le caractère de chiffrement, etc. Il s'agit alors d'un flux de caractères de texte de chiffrement. Et ce flux de caractères de texte chiffré est lié au flux inconnu de caractères de texte en clair constitué du premier caractère de texte en clair, (t + 1) ème caractère de texte brut, (2 t + 1) le texte en clair et ainsi de suite par la relation est que le flux de caractères de chiffrement est en fait une version décalée du flux correspondant des caractères de texte en clair, où la quantité de décalage est k1, ce qui est exactement l'adversaire veut calculer. (Voir Diapositive Heure: 22 :33) De la même façon, l'adversaire peut penser au second flux de chiffrement composé du second caractère de texte et (2 + t) du texte de chiffrement Et ainsi de caractère. Et il sait que tout le second flux de texte de chiffrement est lié à un autre flux de texte en clair, à savoir le flux de caractères en texte simple consistant en m2 et m (2 + t) et ainsi de suite. Par la relation que toutes les versions sont déplacées, où la quantité de décalage est une valeur inconnue de k2 et ainsi de suite, ce qui signifie du point de vue de l'attaquant ce que l'attaquant peut faire est qu'il peut se séparer et former des flux indépendants de caractères de chiffrement, et il doit maintenant effectuer une analyse de fréquence sur chacun de ces flux indépendants. Et si nous supposons que le texte en clair est suffisamment long, le texte de chiffrement correspondant est également suffisamment long, puis en effectuant l'analyse de fréquence sur ce flux dépendant t, l'adversaire peut facilement récupérer les caractères inconnus de la clé.Et donc il pourrait récupérer la clé complètement. C'est donc une méthode intéressante pour effectuer l'analyse crypt de Vigenere cipher à droite (voir Diapositive Heure: 23 :45) Donc quelles sont les leçons que nous avons tirées des algorithmes historiques. Les leçons que nous avons apprises sont les suivantes. Tous ces éléments peuvent être facilement cassés dans un seul modèle d'attaque. Alors imaginez à quel point ils pourraient être cassés si nous considérons ce texte chiffré ou ce processus de chiffrement à utiliser dans un modèle d'attaque plus fort, par exemple le modèle d'attaque de KPA et le modèle d'attaque de CPA, l'adversaire sera privilégié avec d'autres informations supplémentaires. Par exemple, si vous considérez ce modèle d'attaque CPA, alors l'adversaire n'a pas seulement accès au chiffrement, il aura aussi accès à l'oracle de chiffrement et donc il pourrait plus facilement briser le processus de chiffrement sous-jacent. Une autre leçon que nous avons apprise des chiffrements historiques est le principe de l'espace de clés suffisant, qui dit que la condition minimale nécessaire que tout chiffrement sûr devrait avoir est de s'assurer que son espace clé est suffisamment grand pour rendre l'attaque par la force brute infaisable. Et dans l'ensemble, la leçon la plus importante que nous avons apprise des chiffrements historiques est que la conception d'un chiffrement sécurisé est en effet une tâche difficile et difficile. Des Ciphers ont été proposés sur une période de temps et les gens pensaient qu'ils étaient en sécurité, mais finalement tous ont été mal brisés. (Référez-vous à la diapositive: 24 :59) Cela nous amène à la différence entre la cryptographie classique et la cryptographie moderne. Si vous considérez la cryptographie classique, ce n'était pas une science, c'était surtout un art parce qu'il n'y avait pas de fondations scientifiques, pas de définitions appropriées, pas de preuve de sécurité mathématique, et par conséquent le résultat final a été très désastreux. Alors que la cryptographie moderne est une science et qu'elle repose sur des bases et des principes scientifiques solides, les trois principes de la cryptographie moderne sont les suivants: le principe 1 est la définition formelle de la sécurité, où nous définissons correctement et mathématiquement ce que nous entendons exactement par sécurité. Le principe 2énonce qu'une fois que nous avons la définition et que nous construisons une primitive qui satisfait à une définition donnée, alors nous devrions énoncer avec précision toute hypothèse ou hypothèse non prouvée, que nous utilisons dans notre construction. En regardant vers l'avenir, nous verrons dans ce cours que toutes les primitives crypto que nous allons concevoir leur sécurité seront basées sur des hypothèses de dureté non prouvées. Donc le principe 2 stipule clairement que nous devrions précisément déclarer dans notre construction, quelle est exactement l'hypothèse sous-jacente utilisée dans notre construction et le principe 3 stipule qu'une fois que nous aurons la construction, nous devons prouver formellement que la construction que nous avons donnée satisfait à la définition que nous avons donnée à l'étape 1. Donc, ça m'amène à la fin de cette conférence. Pour conclure, nous avons discuté de certains des chiffres historiques et de la mauvaise façon dont ils ont été brisés, et nous avons aussi discuté de certaines des leçons importantes que nous avons tirées des chiffrements historiques, et nous avons discuté des principes de la cryptographie moderne. J'espère que vous avez apprécié cette conférence. Heureusement.