Loading
Notes d'étude
Study Reminders
Support
Text Version

CCA Secure Public-Key Ciphers

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

    +

Foundations of Cryptography Dr. Ashish Choudhury Department of Computer Science Indian Institute of Science – Bangalore Lecture – 48 CCA Secure Public Key Ciphers (Référez-vous à la diapositive: 00:34) Bonjour à tous, bienvenue à cette conférence. Pour récapitulation, lors de la dernière conférence, nous avons discuté avec rigueur de la notion de sécurité de l'ACP dans le contexte des systèmes publics de cryptage. Le plan de cette conférence est donc le suivant. Nous présenterons la notion de sécurité de la DPA pour les cryptosystèmes à clé publique. Nous discuterons de la motivation de l'étude de la sécurité de la DPA, en tenant compte des scénarios réels. Nous verrons la définition officielle de la sécurité de la DPA. Ensuite, nous verrons les définitions de la sécurité de la DPA pour le mécanisme d'encapsulation des clés, puis nous verrons une construction générique de chiffrement à clé publique protégée de la DPA, à partir de tout mécanisme d'encapsulation sécurisé de la DPA et de tout code de chiffrement à clé symétrique protégé par la CCA. (Référez-vous à la diapositive: 01 :13) Alors commençons notre discussion avec la différence entre le modèle de l'adversaire passif et un modèle d'adversaire actif, dans le contexte de l'établissement de la clé publique. Donc, si on considère l'adversaire passif, alors le scénario est le suivant. Alors imaginez que nous ayons un récepteur ici qui a fait la génération clé et il a mis en place sa clé publique, la rendre disponible dans le domaine public. Nous supposons qu'une copie authentifiée de la clé publique du récepteur ’ est disponible dans le domaine public. En l'utilisant, disons qu'un expéditeur chiffre une séquence de messages, par exemple 1 à l, et que le texte de chiffrement qui en résulte est communiqué sur le canal. Ensuite, dans le modèle passif, nous supposons que l'adversaire a la capacité de ne lire que les algorithmes, il ne peut pas changer le contenu du texte chiffré, il ne peut pas changer son ordre, il ne peut pas introduire de nouveau texte et ainsi de suite. Alors que si nous allons dans le modèle accusatoire actif, alors l'adversaire est plus puissant dans le sens qu'il peut non seulement lire les algorithmes, mais il peut changer le contenu du texte de chiffrement, il peut insérer un nouveau texte chiffré en son nom ou prétendre que comme s'il venait de l'expéditeur, il peut supprimer les algorithmes de chiffrement communiqués par l'expéditeur, il peut réorganiser les textes de chiffrement et il peut faire tout autre type d'attaque dont vous pouvez penser. Il s'agit donc d'un modèle accusatoire plus puissant que le modèle passif passif. Et juste pour rappeler, nous avons vu la différence entre le modèle passif passif et le modèle d'adversaire actif dans le contexte de l'établissement des clés symétriques. Donc, maintenant, nous faisons la même discussion dans le contexte de l'établissement des clés publiques. Et il s'avère que par rapport au contexte de clé privée, les adversaires malveillants ou actifs sont plus un sujet de préoccupation dans le cadre de la clé publique. Et ceci est dû au fait que dans le cadre de la clé publique, n'importe qui peut calculer ou communiquer avec un récepteur juste en accédant à la clé publique des récepteurs, car dans la clé publique, le chiffrement se produit à l'aide de la clé publique du récepteur et étant donné qu'il sera disponible dans le domaine public, si je suis un adversaire et que je veux calculer le texte chiffré et l'envoyer au récepteur, je peux le faire. Cela contraste avec le paramètre de clé privée, où si je suis un adversaire et que je n'ai pas la clé symétrique disponible entre l'expéditeur et le récepteur, il est très peu probable que je vienne avec un texte de chiffrement valide et l'envoyer au destinataire au nom de l'expéditeur, si j'utilise un schéma de chiffrement authentifié. Cela signifie que les adversaires malveillants sont vraiment plus un sujet de préoccupation dans le cadre de la clé publique que dans le cadre de la clé privée. (Référez-vous à la diapositive: 03:56) Cela nous incite à étudier les attaques de la CCA dans le contexte de la clé publique. Ce que nous allons faire ensuite, c'est que nous allons voir des scénarios dans le monde réel où des attaques de la CCA peuvent être lancées. Alors, pensez à cet exemple où un mot de passe est partagé entre un utilisateur et la clé publique de la banque ’ est et sa clé secrète est. Et sa clé publique est disponible dans le domaine public. Et le protocole habituel entre un utilisateur légitime et une banque est le suivant. Donc, si un utilisateur veut initier une session avec la banque, alors la première chose que l'utilisateur fait est qu'il chiffre son mot de passe en utilisant la clé publique de la banque à l'aide d'un processus de chiffrement à clé publique. Et le texte de chiffrement qui en résulte est communiqué sur le canal. En recevant le mot de passe chiffré, la banque décrypte le mot de passe chiffré et le compare avec le mot de passe qu'elle a stocké avec lui-même. Et il donne un message d'erreur, à savoir un mot de passe incorrect, s'il trouve que sur le déchiffrement qui a récupéré le mot de passe, à savoir, n'est pas le même que le mot de passe, qui est stocké sur le site de la banque ’. (Reportez-vous à l'heure de la diapositive: 05:15) Il s'agit donc d'un protocole standard. Maintenant, voyons ce qui se passe si vous prenez ce simple protocole dans le modèle accusatoire malveillant. Alors imaginez que nous sommes face à un adversaire, qui est un adversaire actif et qui a une écoute sur le mot de passe crypté. Il connaît la clé publique de la banque parce qu'elle est disponible dans le domaine public, mais l'adversaire n'est pas au courant du mot de passe qui est chiffré dans le texte de chiffrement. Et son but est de savoir ce qu'est exactement le mot de passe. Maintenant ce que l'adversaire peut faire est, il peut prendre le texte de chiffrement qui a été communiqué par un utilisateur légitime à la banque et il interrompait la communication. Et ce qu'elle fait, elle modifie certains morceaux du texte de chiffrement et vient avec un nouveau texte chiffré, en chiffrant un message lui-même en utilisant la clé publique de la banque. Ce qu'il fait, c'est qu'il arrête la communication entre l'utilisateur légitime et la banque. Et au lieu de cela, il s'accompagne d'un nouveau chiffrage, disons, et c'est un cryptage de certains textes connus, qui est déjà connu de l'adversaire. Et peut-être que nous pouvons imaginer que dans cet exemple particulier, l'adversaire peut même faire des choses désagréables. En fait, il peut arriver que l'adversaire ne le sache pas et qu'il modifie simplement certains morceaux du texte de chiffrement, et qu'il arrive avec. Et ce pourrait être le cas d'un cryptage de, c'est aussi une possibilité.Donc, quel que soit le cas, l'adversaire transmet le texte à la banque et attend la réponse de la banque. Maintenant, s'il voit que dans la réponse à, sur le décryptage de la banque lance le message d'erreur un mot de passe incorrect, alors fondamentalement l'adversaire ici est en train de savoir que ce n'est pas le bon mot de passe, qui a été crypté dans. Parce que si, en effet, aurait été le bon mot de passe, qui est chiffré dans le texte chiffré puis sur le décryptage du texte de chiffrement, la banque n'aura pas émis le message d'erreur de mot de passe incorrect. Mais depuis que la banque lance le message incorrect mot de passe, d'une certaine manière l'adversaire ici va apprendre que le mot de passe qui est partagé entre l'utilisateur légitime et la banque n'est pas, c'est quelque chose de différent. Et maintenant, l'adversaire peut essayer de répéter la même attaque. Cela signifie que ce qu'il peut faire, c'est qu'il peut arriver avec un autre chiffon, par exemple, qui pourrait être un cryptage d'un texte en clair, dire, et espérer qu'en effet, c'est le bon mot de passe et réachemine le texte de chiffrement à la banque et attendre de voir la réponse de la banque ’. Et encore une fois si le message d'erreur vient, alors l'adversaire apprend ici que le mot de passe n'est pas et ainsi de suite. Donc ce qui se passe ici, fondamentalement dans cet exemple, l'adversaire est en quelque sorte en train d'obtenir un service d'oracle de décryptage de la banque sans que la banque sache que c'est l'adversaire qui persuade la banque de décrypter les textes de choix de l'adversaire. (Référez-vous à la diapositive: 08 :42) Maintenant, considérons une autre application ici. Et ici dans cette application, disons que nous avons un récepteur Bob, qui a mis en place sa clé publique et sa clé secrète et la clé publique est disponible dans le domaine public. Et dire qu'Alice a un courriel, disons, qu'elle veut communiquer secrètement à Bob. Donc ce qu'il fait, c'est qu'il exécute l'algorithme de chiffrement à clé publique à l'aide de la clé publique de Bob et que le courrier chiffré qui en résulte est communiqué à Bob. Maintenant, supposons que Charlie soit intéressé à savoir ce qui se passe, quel est exactement le contenu de l'e-mail? Donc ce que Charlie peut faire, c'est qu'il peut écouter l'e-mail crypté et ce qu'il peut faire, il peut modifier certains morceaux de pour produire un nouveau courrier chiffré et l'envoyer à Bob et prétendre comme s'il s'agit d'un mail crypté que Charlie voudrait envoyer à Bob. Maintenant Bob ce qu'il va faire est, quand il recevra le texte chiffré, il pensera comme si Charlie veut envoyer un email chiffré à Bob. Et sur le décryptage, ce que Bob peut faire est, supposons de le décrypter, récupère le contenu du courrier électronique. Et il pourrait être possible que Bob réponde à Charlie. Et tout en répondant, il pourrait vouloir citer le message ou le courriel que Bob a obtenu après déchiffrer l'e-mail chiffré. Cela signifie que la réponse de courrier électronique que Bob envoie peut être concaténée avec, en fonction de l'application sous-jacente. Quand cette réponse de Bob avec l'email décrypté revient à Charlie, ce qui est essentiellement Charlies, c'est qu'il obtient un service d'oracle de décryptage. Il apprend à savoir que le texte de chiffrement modifié chiffre le contenu du courrier électronique. Et dans ce cas, si effectivement mon processus de cryptage aurait été sécurisé pour la DPA, cela ne devrait pas être possible. Mais comme mon processus de cryptage n'est pas sécurisé ici, Bob ici à la réception d'un chiffon modifié, il n'y a pas d'indices que le courriel modifié a été transmis par un adversaire ici. Et il s'agit simplement de décrypter ce texte modifié et de répondre à l'adversaire, en pensant que le courriel provenait de cette personne. (Référez-vous à la diapositive: 11 :15) Maintenant, voyons l'exemple final ici. Et vous pouvez imaginer un protocole d'appel d'offres ici et le scénario est le suivant. Nous avons un commissaire-priseur qui a sa clé publique mise en place dans le domaine public. Et dire que nous avons 2 soumissionnaires qui soumissions pour un objet de valeur et disent que le soumissionnaire Bob va d'abord. Elle a une offre privée, qu'elle crypte à l'aide de la clé publique de l'encanteur, avec l'encanteur dans ce cas est Alice. Et maintenant, supposons que Charlie est un soumissionnaire malveillant qui veut gagner la soumission, mais il ne connaît pas la valeur car il est chiffré à l'aide de la clé publique de la Alice. Ce que Charlie peut faire ici, c'est qu'il peut écouter l'offre chiffrée de Bob. Et après avoir fait cela, il peut modifier l'offre chiffrée vers une autre offre chiffrée. Et supposons que mon processus de chiffrement est tel que l'offre chiffrée modifiée est un chiffrement de l'offre 2 fois l'offre de bob, et transmet l'offre chiffrée modifiée à Alice. Et Charlie prétend que c'est l'offre que Charlie voudrait faire ici. Donc cette propriété ici, où il est possible pour un adversaire, c'est-à-dire malveillant Charlie, d'écouter un texte chiffré d'un message inconnu et de ce texte de chiffrement produire un autre code de chiffrement qui est un chiffrement de certains messages connexes, à savoir 2 fois que le message, qui a été chiffré dans le texte chiffré, est appelé comme la propriété de malleabilité du texte chiffré. Alors rappelons quand nous avons discuté du processus de cryptage symétrique, là aussi, nous avons discuté de la notion de malleabilité et de malleabilité pourrait être possible même dans le contexte du processus de cryptage public. Donc dans cet exemple, si en effet il est possible pour Charlie de se convertir à, c'est un chiffrement à clé publique du message 2 fois, alors ce qu'Alice pourrait faire est, quand elle décrypte et, elle trouvera que c'est la soumission gagnante. Parce qu'il correspond à la valeur 2 fois. Et elle peut maintenant annoncer publiquement que Charlie a gagné l'offre en soumissiquant pour la valeur de la soumission 2 fois. Et dans ce cas, après avoir appris le résultat, Charlie finit par obtenir un service d'oracle de décryptage d'Alice et finit par gagner l'enchère qui aurait dû être évitée si, en effet, mon processus de chiffrement aurait été sécurisé par la CCA. (Référez-vous à la diapositive: 13:55) Nous avons donc vu plusieurs scénarios dans le monde réel où les attaques de la CCA peuvent être lancées là où l'adversaire peut obtenir le service d'oracle de décryptage. Donc maintenant, nous devons étudier formellement la notion de sécurité de la DPA dans le contexte du système cryptographique à clé publique. Alors, définissons formellement cela. Ainsi, à un niveau très élevé, l'objectif de la sécurité du CCA est de parvenir à des cryptions indiscernables, même en présence d'oracle de décryptage et de la connaissance de la clé publique qui est disponible auprès de l'adversaire. Et ceci est modélisé par un jeu de réponses de défi. Les règles du jeu sont les suivantes. Le challenger exécute l'algorithme de génération de clé, donne la clé publique à cet adversaire qui est délimité par les calculs. Ainsi, comme la clé publique est explicitement donnée à l'adversaire, elle peut obtenir le service d'oracle de chiffrement par elle-même en chiffrant tout texte en clair de son choix. Maintenant ce qu'elle peut faire dans cette expérience ici est, elle peut demander le décryptage oracleservice en soumettant plusieurs textes de chiffrement à partir de l'espace de texte de chiffrement. Et en réponse, le challenger doit déchiffrer tous ces algorithmes, en utilisant la clé secrète, qui n'est pas connue de l'adversaire. Maintenant, la phase de remise en question commence là où l'adversaire soumet une paire de textes clairs, la seule restriction étant que leurs lenghts devraient être les mêmes. Et pour préparer le texte de défi, notre challenger choisit au hasard un de ces messages et le chiffre à l'aide de la clé publique. Et maintenant, nous donnons à l'adversaire un accès au service d'oracle de décryptage post-défi, où encore il peut demander un service d'oracle de décryptage ou de décryptage pour un grand nombre de textes de son choix, avec la seule restriction étant que, que le service d'oracle de déchiffrement post-contestation est restreint, comme l'adversaire est limité à demander le décryptage du texte chiffré. Parce que si nous ne mettons pas cette restriction en place, nous ne pourrons pas parvenir à une notion significative de secret. Et si vous regardez les 3 exemples motivants que j'ai donnés plus tôt, dans tous ces 3 exemples l'objectif du Charlie ou du méchant était d'obtenir un service d'oracle de décryptage d'un texte chiffré modifié, mais pas pour le texte qu'il est intéressé à craquer. Maintenant que l'adversaire obtient un service d'oracle de décryptage pour les requêtes d'oracle de déchiffrement post-test, l'objectif de l'adversaire est de déterminer si le chiffrement est un chiffrement de 0 ou 1. Elle soumet donc la réponse ou la sortie de ’. Et la règle de l'expérience est, nous disons que l'adversaire a gagné l'expérience, ce qui équivaut à dire que la sortie de l'expérience est 1, si et seulement si ′ =. Cela signifie que l'adversaire a correctement identifié ce qui est chiffré dans le texte chiffré du défi. Et notre définition de sécurité est, nous disons que nos processus de cryptage sont un seul message CCA sécurisé, si pour chaque adversaire polytime, la probabilité de succès de l'adversaire gagnant le jeu est borné par la fonction de moitié plus négligeable dans le paramètre de sécurité. Ou, de façon équivalente, l'avantage distinctif de l'adversaire est délimité par une fonction négligeable. Il n'a pas d'importance, qu'il s'agisse d'un chiffrement de 0 ou 1, avec presque la même probabilité que la réponse de l'adversaire doit être la même. La raison pour laquelle nous appelons cette expérience un seul message CCA sécurisé, parce que l'adversaire vient de soumettre une paire de textes en clair et de voir un cryptage de l'un d'entre eux. (Référez-vous à la diapositive: 17 :13) Nous pouvons étendre cette définition dans une version simple ou naturelle, afin d'intégrer la sécurité de la DPA à plusieurs messages. Les règles du jeu seront presque les mêmes que pour le seul message de sécurité CCA, où challenger lance la clé publique à l'adversaire, l'adversaire obtient le service d'oracle de décryptage et maintenant dans la phase de remise en question, il est autorisé à soumettre une paire de vecteurs de messages. Mais la seule restriction étant que les messages dans le vecteur et le message dans le vecteur 1 doivent être de la même longueur. Pour préparer le texte de chiffrement du défi, le challenger choisit l'un de ces deux vecteurs avec une probabilité égale pour le chiffrement, puis chiffre tous les textes en clair dans le vecteur sélectionné et le vecteur de chiffrement de défi est donné à l'adversaire. L'adversaire est à nouveau autorisé à avoir accès au service d'oracle de décryptage post-contestation, avec la seule restriction qu'il ne peut pas demander pour le décryptage d'un texte chiffré qui est présent dans le vecteur de déchiffrement vectoriel. Maintenant que notre adversaire est suffisamment formé, il doit déterminer si le vecteur de chiffrement qu'il a vu correspond à un cryptage du vecteur ou du premier vecteur. Et nous disons que l'adversaire a gagné l'expérience ou la sortie de l'expérience est 1, si et seulement s'il a correctement identifié si c'est le vecteur 0 ou si c'est le vecteur 1, qui est crypté dans le vecteur de chiffrement vectoriel. Et notre définition de sécurité est, nous disons que nos processus de cryptage sont multi message CCA sécurisé si pour tout adversaire polytime participant à cette expérience, la probabilité qu'elle peut gagner l'expérience est bornée par la moitié plus une fonction négligeable dans le paramètre de sécurité. Ou, de façon équivalente, l'avantage distinctif de l'adversaire est délimité par une fonction négligeable du paramètre de sécurité. Et comme on pouvait s'y attendre, nous pouvons prouver que la sécurité de la DPA et la sécurité du CCA multimédia sont équivalentes, même dans le contexte des systèmes de cryptage des clés publiques. Donc je ne donne pas la preuve complète ici, vous pouvez vous référer au livre de Katz-Lindell pour la preuve complète. (Référez-vous à la diapositive: 19:25) Maintenant, définissons la notion de sécurité de la DPA dans le contexte des codes de chiffrement à clé publique hybrides. Alors rappelez-vous lors de la dernière conférence, nous avons discuté de ce que l'utilisation d'un mécanisme d'encapsulation clé et d'un schéma de chiffrement symétrique, nous pouvons trouver une combinaison des deux pour arriver à un processus de cryptage hybride plus efficace. Lorsque l'algorithme de génération de clé du processus de chiffrement hybride va exécuter l'algorithme de génération de clé du KEM et de la sortie, la clé publique et la clé secrète, où la clé secrète sera disponible avec le récepteur et la clé publique seront disponibles dans le domaine public. Le processus de chiffrement du schéma hybride sera le suivant, il exécute d'abord un algorithme d'encapsulation de clé et obtient une clé symétrique et une encapsulation de la clé, indiquée par. Et puis la clé est utilisée pour chiffrer le texte en clair, selon l'algorithme de chiffrement de clé symétrique pour produire le texte de chiffrement, et le chiffrement global est l'encapsulation de la clé symétrique et le chiffrement du texte en clair. Analablement, le déchiffrement se produit à la fin de la réception ; le récepteur en capsultant d'abord l'encapsulation et obtient la clé symétrique. Et une fois qu'il obtient la clé symétrique, il désulte le composant ciphertext, pour récupérer le texte en clair, à l'aide de l'algorithme de déchiffrement du processus de chiffrement symétrique. Et aussi pour rappeler, lors de la dernière conférence, nous avons prouvé que si mon KEM est protégé par l'ACP et que mon processus de chiffrement symétrique est sécurisé par l'AOC, alors le système global est protégé par l'ACP. Mais depuis que nous envisageons la sécurité de la DPA, nous devons déterminer quelles devraient être les propriétés de sécurité de mes blocs de construction sous-jacents. Il s'avère que si je veux assurer la sécurité de la DPA, alors définitivement mon processus de chiffrement symétrique sous-jacent dans le schéma de chiffrement hybride devrait être sécurisé par la CCA. Il ne suffit pas de disposer de la sécurité de l'ACO ou de la sécurité CPA pour le processus de chiffrement symétrique sous-jacent. Pour démontrer mon point de vue, instancions le bloc de clé symétrique sous-jacente ici dans ce processus de cryptage hybride par le biais du mode de fonctionnement, ce que nous savons que CPA est en sécurité mais pas la DPA sécurisée. Imaginez donc qu'un expéditeur a chiffré un message composé de 2 blocs de toutes les années 2000, à l'aide du schéma de chiffrement hybride, conformément au processus de chiffrement hybride ci-dessus. Et le texte chiffré qui en résulte est (et, selon les détails du processus de cryptage de ce schéma de cryptage hybride, la façon (aurait été produite est la suivante). Tout d'abord, un algorithme d'encapsulation aurait été exécuté pour obtenir une clé symétrique et l'encapsulation de cette clé. Et puis en utilisant la clé, en invoquant le mode de compteur d'opération, le bloc de messages de toutes les années 2000, suivi de toutes les années 2000, aurait été chiffré. Ainsi, le chiffrement du message à l'aide de la clé selon le mode de compteur d'opération sera le suivant. Un compteur aléatoire sera sélectionné, qui sera disponible dans le cadre du composant de texte de chiffrement. Le chiffrement réel des blocs du message sera 1 ′ et 2 ′ selon le mode de compteur d'opération. Maintenant ce que nous allons voir ici dans l'exemple c'est que l'on imagine qu'il y a un adversaire qui a endeun le texte de chiffrement (et imaginez que l'adversaire est un adversaire actif. Ensuite, en observant (, il est très facile pour l'adversaire de produire un texte chiffré modifié (, de sorte que lorsque ce texte de chiffrement modifié est transmis au récepteur et déchiffré selon ce processus de chiffrement hybride, il mène au texte en clair tous les 1 s, suivi de toutes les années 2000. Et la façon dont l'adversaire peut le faire est d'exploiter la malléabilité du contre-mode de fonctionnement. Fondamentalement, il doit produire, où la valeur de compteur à savoir 0 ′ est conservée telle quelle et le composant 2 ′ du texte chiffré est également conservé tel qu'il est. La modification est uniquement dans le composant de texte de chiffrement 1 ′. 1 ′ est maintenant remplacée par 1 ′ ′ ′ ′ = 1 ′ &rbl; 0l1E 1l. Et si 1 ′ est remplacé par 1 ′ ′, alors l'effet de toutes les années 2000 et les années 2000 s'annule. Et en gros 1 ′ ′ correspond maintenant à un mode de compteur de chiffrement pour le bloc de messages tous les 1 ’. Et maintenant, puisque ce processus global est malléable, nous pouvons facilement démontrer que cela ne sera pas la garantie de la DPA. Cela signifie que si nous voulons que le processus global de cryptage hybride soit sécurisé, il est certain que mon système de chiffrement symétrique sous-jacent que j'utilise devrait être sécurisé par la CCA. (Référez-vous à la diapositive: 24:20) Mais il s'avère qu'en instanciant le chiffrement symétrique sous-jacent par un chiffrement symétrique sécurisé de la CCA, il ne suffit pas de nous donner un processus global de chiffrement hybride de la CCA. Et la raison en est, si vous jouez la GAME de la CCA contre ce processus de cryptage hybride, n'oubliez pas que dans le jeu CCA, l'adversaire est donné accès au service de décryptage des oracles. A savoir que l'adversaire peut maintenant faire un service d'oracle de décryptage pour tout type de texte de chiffrement modifié, où la première partie du texte de chiffrement peut être n'importe quel caractère, à savoir toute encapsulation, suivie de n'importe quoi. Et pour répondre aux requêtes d'oracle de déchiffrement modifiées, le challenger doit essentiellement décrypter les textes de chiffrement modifiés à l'aide de la clé secrète. Maintenant, si vous voyez l'algorithme de déchiffrement de ce schéma de chiffrement hybride, toute requête d'oracle de déchiffrement de la forme suivie par quelque chose, lorsqu'elle est déchiffrée par le challenger dans le jeu CCA, en gros, elle fournit implicitement l'accès de l'oracle de l'adversaire au service oracle de décapsulation, sous la clé secrète inconnue. Parce que lors du décryptage du texte modifié, l'adversaire en viendra à apprendre ce qui est exactement la décapsulation de la clé, sous la clé secrète inconnue. Cela signifie que nous avons maintenant besoin d'une instanciation sécurisée de la CCA du mécanisme d'encapsulation clé, afin d'espérer que le processus global de cryptage hybride se traduit par un processus de cryptage public sécurisé. (Référez-vous à la diapositive: 26:01) Nous devons donc d'abord définir la notion de sécurité de la DPA pour le mécanisme d'encapsulation des clés. Et à un niveau très élevé, l'objectif d'un mécanisme d'encapsulation des clés sécurisées de la CCA devrait être de s'assurer de ce qui suit. Imaginez que nous ayons un récepteur qui exécute l'algorithme de génération de clé d'un mécanisme d'encapsulation sécurisé CCA et qui a mis en place la clé publique. Et dire que notre expéditeur est là qui exécute l'algorithme d'encapsulation clé de ce schéma, obtient une clé secrète, et une encapsulation de la clé. Et l'encapsulation est envoyée au récepteur. Et dire qu'il y a un adversaire malveillant, qui a endeué l'encapsulation. Et imaginez maintenant que mon adversaire obtient le service oracle de décapsulation pour n'importe quelle encapsulation, différente de. Maintenant, en obtenant un nombre polynomial de service oracle de décapsulation, nous avons besoin que, du point de vue de mon adversaire, l'encapsulation, qu'elle a vue plus tôt, soit toujours indépendante de la clé, qui est encapsulée dans. Donc l'avantage ici que mon adversaire est en train de se faire est un service d'oracle de décapsulation explicite, que nous devons maintenant modéliser dans notre expérience. En ce qui concerne le modèle ci-dessus, l'expérience est la suivante. Notre challenger exécute l'algorithme de génération de clé et utilise la clé publique qu'il exécute l'algorithme d'encapsulation pour obtenir une paire (et maintenant il prépare le défi pour l'adversaire comme suit. Il lance une pièce juste, si la pièce tosse est 0, alors elle choisit un élément aléatoire de l'espace clé. Alors que si la pièce toss est 1, alors l'élément est la clé, qui est en fait encapsulée dans l'encapsulation. Et le défi pour l'adversaire est le suivant. La clé publique est donnée, l'encapsulation est donnée et les données sont fournies. Et l'objectif de l'adversaire est de déterminer si les éléments sont un élément aléatoire de l'espace clé, à savoir s'il s'agit d'un élément aléatoire. Ou si la clé est la même clé qui est encapsulée dans, à savoir. Mais maintenant nous modélisons ce service d'oracle de décapsulation en permettant à l'adversaire de demander la décapsulation de n'importe quelle encapsulation de son choix, la seule restriction étant que ce service oracle de décapsulation ne devrait pas être pour l'encapsulation. Ils devraient être différents de. Et notre adversaire est autorisé à soumettre sa requête de manière adaptative et en réponse aux requêtes d'oracle de décapsulation, le challenger réagit en décaant toutes ces requêtes sous la clé secrète inconnue, qui n'est pas connue de l'adversaire. Et après avoir fait le nombre de requêtes polynomiales, l'adversaire a maintenant à identifier et à résoudre son défi. Il doit savoir s'il a relevé un défi selon la méthode 0 ou selon la méthode. Et la définition de l'expérience est, nous disons que l'adversaire a gagné l'expérience, ce que nous dénote en disant que la sortie de l'expérience est 1, si et seulement si l'adversaire a garanti ′ =. Et nous disons que notre principal mécanisme d'encapsulation est la DPA sécurisée, si pour chaque adversaire polytime, il existe une fonction négligeable, de telle sorte que la probabilité que l'adversaire gagne l'expérience est bornée par une fonction de moitié plus négligeable. Ou, de façon équivalente, l'avantage distinctif de cet adversaire est limité par une fonction négligeable dans le paramètre de sécurité. (Reportez-vous à la page Heure de la diapositive: 29:42) Nous allons donc maintenant voir que, si on nous donne un KEM protégé par la DPA et un chiffon de clé symétrique sécurisée de la CCA, alors si nous les combinons, nous obtenons un code de chiffrement asymétrique sécurisé de la CCA. Alors imaginez que nous nous sommes donnés un KEM sécurisé CCA et le processus de chiffrement de clé symétrique de la CCA. Ensuite, nous pouvons la combiner de la même façon que nous l'avons fait pour obtenir un algorithme de chiffrement asymétrique sécurisé CPA lors de la dernière conférence. Donc, mon algorithme de génération de clé du processus de chiffrement hybride sera simplement l'algorithme de génération de clé du mécanisme d'encapsulation de clé. Pour chiffrer un texte en clair à l'aide de la clé publique, ce que l'expéditeur va faire est, il exécutera l'algorithme d'encapsulation et obtiendra une clé et son encapsulation. Et en utilisant la clé, il appellera l'algorithme de chiffrement du processus de chiffrement symétrique sous-jacent pour chiffrer le texte en clair et obtenir son chiffrement. Et l'ensemble du texte de chiffrement sera (. D'autre part, le récepteur qui possède la clé secrète, sur la réception du texte de chiffrement (′), désultera d'abord la partie du texte de chiffrement pour extraire la clé encapsulée. Ensuite, cette clé est utilisée pour déchiffrer le composant du texte de chiffrement, conformément à l'algorithme de déchiffrement du processus de chiffrement symétrique, pour récupérer le texte en clair réel. Et nous pouvons prouver que si mon principal mécanisme d'encapsulation est la DPA, telle que définie par la définition que nous venons de donner. Et si mes processus de chiffrement symétriques sous-jacents sont sécurisés par la CCA, alors cette façon générique de combiner ces deux primitives va nous donner un processus de chiffrement à clé publique qui est sécurisé par la CCA. Et la preuve à nouveau sera quelque chose de similaire à la preuve de style de l'argument hybride, que nous avions donnée lors de la dernière conférence, pour prouver la sécurité CPA de la construction générique du schéma hybride que nous avons discuté dans cette conférence. Je laisse donc les détails formels de la preuve pour vous en tant qu'exercice. Cela m'amène à la fin de cette conférence. Pour résumer, dans cette conférence, nous avons introduit la notion de sécurité du CCA dans le contexte du système public de cryptage. Nous avons vu la malleabilité, ce que signifie exactement la malléabilité des systèmes de cryptions publiques et nous avons vu la définition de la sécurité de la DPA pour le mécanisme d'encapsulation des clés et nous avons discuté de ce que si on nous donne une DPA sécurisée