Loading
Notes d'étude
Study Reminders
Support
Text Version

Cryptosystème de clé publique hybride

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 International Institute of Information Technology – Bangalore Lecture – 47 Hybrid Public Key Cryptosystem Bienvenue à cette conférence. Le plan de cette conférence est le suivant. Dans cette conférence, nous allons introduire un schéma de chiffrement de clé publique hybride et nous allons introduire le paradigme KEM/DEM, et nous allons voir une instanciation de KEM basée sur CDH dans le modèle d'oracle aléatoire et l'instanciation DDH de KEM dans le modèle standard. (Reportez-vous à la section Heure de la diapositive: 00 :49) Alors, laissez ’ commencer par la motivation de Ciphers à clé publique hybride et, avant de le faire, comparons le schéma de chiffrement à clé publique avec un schéma de chiffrement à clé secrète. Imaginez, on nous donne un schéma de chiffrement à clé publique, Π pub, et on nous donne un schéma de chiffrement symétrique, Π priv, puis si nous considérons le schéma de chiffrement à clé publique, l'accord clé n'est pas à tout un défi. C'est l'ensemble de la motivation pour la naissance du processus de cryptage public. Si je suis un séquestre, il me suffit d'annoncer ma clé publique dans le domaine public. Quiconque veut chiffrer un message et me l'envoyer, il peut choisir ma clé publique, chiffrer le message et me l'envoyer. D'autre part, nous avons vu que l'accord-clé est le plus grand défi dans le domaine de la clé symétrique. Jusqu'à ce que la clé commune soit établie entre l'expéditeur et le récepteur, nous ne pouvons utiliser aucune des primitives de clés symétriques. Si nous considérons le schéma de chiffrement à clé publique, l'inconvénient est que l'espace de message doit être un groupe fini ou une structure algébrique finie, ce qui est le plus souvent le groupe, ce qui est une sorte de restriction car, dans la pratique, l'espace de message doit être un ensemble de chaînes de bits. Par contre, l'espace de message dans le mot clé symétrique est des chaînes binaires. Nous n'avons pas besoin d'une structure algébrique sophistiquée à partir de l'espace de message sous-jacent pour la sécurité globale de mes schémas de chiffrement de clé symétrique. Si nous considérons les systèmes de chiffrement à clé publique, ils sont très lourds sur le plan informatique car nous devons effectuer des exponentiations modulaires par exemple dans la fonction RSA et dans le schéma de cryptage d'El Gamal. Les exponentiations modulaires sont très coûteuses et lourdes par rapport au processus de cryptage, processus de décryptage que nous utilisons dans un système de chiffrement à clé symétrique, qui est superrapide et effectue des opérations qui sont des opérations XOR. De la même manière, le schéma de chiffrement à clé publique, l'extension de texte de chiffrement est énorme, par exemple, si vous voyez le schéma de chiffrement El Gamal, le texte en clair que vous voulez chiffrer est un seul élément de groupe, mais le texte de chiffrement est constitué de deux éléments de groupe et de RSA padded, la quantité de message, que vous avez fini par encrypter est très courte par rapport à la quantité de caractère aléatoire que vous êtes en train de padding. D'autre part, dans le monde des clés symétriques, l'expansion du texte de chiffrement peut être aussi minime que possible à l'aide de n'importe lequel des modes de fonctionnement sécurisés des algorithmes de chiffrement par bloc. Donc, maintenant nous pouvons voir avoir des avantages aussi bien que des inconvénients du système de chiffrement à clé publique, des schémas de chiffrement symétrique, et ce que nous pouvons faire, nous pouvons penser à combiner d'une manière ou d'une autre ces deux processus de manière générique et obtenir un type hybride de processus de cryptage où dans le processus de cryptage hybride, que nous appelons EncHyb. L'expéditeur sélectionne une clé aléatoire pour le schéma de chiffrement de clé symétrique et le chiffre à l'aide du processus de chiffrement à clé publique, à savoir le chiffrement de la clé aléatoire k, qu'il a sélectionné et chiffre à l'aide de la clé publique du récepteur et une fois que le texte en clair est disponible avec l'expéditeur, le chiffrement réel du texte en clair se produit à l'aide d'un processus de chiffrement de clé symétrique à l'aide de la clé aléatoire, qui a été choisie par l'expéditeur. Si nous faisons cela, ce qui se passe ici est essentiellement l'efficacité totale du processus de chiffrement hybride devient presque celui du processus de chiffrement de clé symétrique car le message réel que nous cryptons est chiffré à l'aide d'un processus de chiffrement de clé symétrique. La charge supplémentaire que nous payons ici consiste à chiffrer la clé symétrique utilisée pour chiffrer le texte en clair à l'aide d'un processus de chiffrement à clé publique. Cependant, en principe syntactiquement, tout ce processus hybride est toujours considéré comme une instanciation du processus de chiffrement à clé publique car la clé pour le chiffrement de clé symétrique que l'expéditeur utilise est chiffrée par un processus de chiffrement à clé publique. C'est donc la motivation générale de la conception de Ciphers à clé publique hybride. (Reportez-vous à la page Heure de la diapositive: 5:01) Pour que mon point soit plus clair, considérons une instanciation de Cipher à clé publique hybride El Gamal. Alors, permettez-moi de rappeler la syntaxe de l'algorithme de clé publique hybride El Gamal, par exemple Seetha veut dire à configurer pour son paramètre public, sa clé publique et sa clé secrète, donc la description publique, qui est disponible pour tout le monde est la description du groupe cyclique, le générateur, et la taille du groupe. Pour faire la configuration clé, ce que Seetha fait est, vous pouvez imaginer qu'elle fait sa part du protocole d'échange de clés Diffie Hellman une fois pour tous pour chaque potentiel Ram. Pour chaque expéditeur potentiel qui veut chiffrer un message et envoyer à Seetha. Donc, elle choisit son aléatoire α de l'ensemble Zq à savoir 0 à q-1, et c'est une clé secrète et une clé publique, qui est g α, qui est disponible dans le domaine public, et ceci si vous pouvez imaginer comme contribution de Seetha ’ pour la clé globale Diffie-Hellman, qu'elle veut établir avec tous les expéditeurs potentiels dans ce monde. Maintenant imaginez qu'il y a un expéditeur, qui a un texte en clair, qu'il veut chiffrer et maintenant ce texte en clair est une chaîne de bits, il n'a pas besoin d'être un élément de groupe. Donc, contrairement au processus de cryptage El Gamal où le texte en clair, que l'expéditeur peut chiffrer et envoyer à Seetha doit être un élément de groupe, maintenant le texte en clair est une chaîne de bits. Maintenant, pour chiffrer ce texte en clair, ce que l'expéditeur fait est, il choisit un élément aléatoire du groupe qui est noté par et il chiffre ce message à l'aide du processus de cryptage d'El Gamal. Ainsi, il calcule le texte de chiffrement c1, c2 où c1 peut être interprété comme une contribution de l'émetteur ’ pour le protocole d'échange de clés Diffie-Hellman, à savoir g β, où β est choisi au hasard, et c2 est le chiffrement réel de ce hasard à l'aide de la clé commune de Diffie-Hellman g α β. Maintenant, ce n'est pas le cryptage du message, donc jusqu'à maintenant ce que l'expéditeur a fait essentiellement le c1, c2, que l'expéditeur a envoyé à Seetha est un chiffrement du hasard, mais l'objectif de l'expéditeur est de chiffrer le texte en clair, donc ce que nous faisons ici, c'est que nous supposons que, à l'exception de la description du groupe cyclique, générateur, ordre de groupe et ainsi de suite, nous supposons que nous avons une description d'une fonction de dérivation de clé H disponible publiquement et que la fonction de dérivation de clé mappe les éléments du groupe g vers l'espace clé du schéma de chiffrement de clé symétrique, que l'expéditeur va maintenant utiliser. Donc maintenant, ce que l'expéditeur va faire, c'est que l'expéditeur sait qu'en envoyant c1, c2, à Seetha. Sender sait que Seetha va également finir par obtenir la clé commune g α β et en supposant que l'hypothèse DDH est vraie dans le groupe sous-jacent, cette clé g α β va être un élément aléatoire du groupe à partir du point de vue d'un adversaire délimité par ordinateur. Donc ce que l'expéditeur peut maintenant faire est, il peut dériver une clé de chaîne de bits pour le processus de chiffrement symétrique en appliquant une fonction de dérivation de clé à cet élément aléatoire et cette clé est utilisée pour chiffrer maintenant le texte en clair m, qui est une chaîne de bits et qui est un chiffrement réel du texte en clair m, que l'expéditeur veut chiffrer. Le déchiffrement à la fin de Seetha ’ se produit comme suit. Pour le décryptage, Seetha doit aussi récupérer la même, que l'expéditeur a utilisée pour dériver la clé symétrique k et peut être obtenue en déchiffant c1, c2 selon la syntaxe du schéma de chiffrement d'El Gamal et une fois récupérée par Seetha, ce que Seetha peut faire, elle peut également appliquer la même fonction de dérivation de clé publique sur et une fois est récupérée, elle peut déchiffrer le composant c du texte de chiffrement selon l'algorithme de décryptage du processus de chiffrement de clé symétrique et récupérer m. C'est ainsi que vous pouvez interpréter une version hybride du code de chiffrement à clé publique d'El Gamal. Donc pictorially ce qui se passe est ici que, comme je l'ai dit plus tôt c1, c2 est le chiffrement de clé publique de la clé symétrique, alors que le composant c ici est le chiffrement de clé privée réelle du texte en clair. Cependant, si vous faites une pause ici pour un instant, l'idée ci-dessus de crypter l'élément de groupe aléatoire par l'expéditeur et en dérivant une clé est une overkill. Donc, ce qui se passe ici, c'est que l'expéditeur utilise un élément de groupe aléatoire, le chiffrant dans son ensemble à l'aide du processus de chiffrement d'El Gamal, puis en dérivant cette clé symétrique. Donc c'est une overkill ici. Une observation de fermeture vous indique qu'il suffit pour l'expéditeur de simplement envoyer g β. Il n'est pas nécessaire d'envoyer c2. Il suffit que l'expéditeur envoie simplement g β. Parce que l'expéditeur sait que s'il envoie g β, qui peut être révisé comme s'il envoyait sa partie du message de protocole d'échange de clés Diffie-Hellman, alors il sait qu'en envoyant g β, Seetha et Ram finiront par accepter de g α β et en supposant que l'hypothèse DDH est vraie dans le groupe sous-jacent, nous savons que g α β sera aléatoire dans le point de vue de l'adversaire.Ainsi, la clé k peut être dérivée de l'α β au lieu de dériver la clé de l'élément aléatoire, car si nous le faisons au lieu d'utiliser l'approche que nous avons vue jusqu'à présent, nous faisons une économie ici. Nous n'avons pas besoin de choisir l'élément aléatoire et nous n'avons pas besoin de chiffrer, donc nous n'avons pas besoin d'envoyer c2, et la taille globale du texte de chiffrement sera considérablement réduite et cela conduira aussi à des économies dans la bande passante également, car si nous n'avons pas besoin d'envoyer le c2, cela signifie que nous n'avons pas besoin d'envoyer un élément de groupe supplémentaire pour chiffrer le message. (Reportez-vous à la page Heure de la diapositive: 11h22) Même si nous avons assisté à une instanciation de code de chiffrement hybride El Gamal ici, il s'avère que cette approche est une surmortalité. Donc ce que nous allons faire maintenant, comme nous sommes maintenant motivés par la discussion ici, ça suffit pour l'expéditeur ici de simplement envoyer g β et dériver une clé de g β, ce que nous allons faire, c'est que nous allons maintenant dériver une nouvelle primitive, que nous appelons mécanisme de clé-Encapsulation ou KEM et ensuite nous verrons que nous pouvons obtenir un chiffrement hybride plus efficace à l'aide de ce KEM. Donc, pour que mon point soit clair, l'ï une façon de cryptage hybride que nous avons vu maintenant est juste dans le contexte de Hybrid El Gamal est comme suit. Donc, à l'extrémité du chiffrement, ce que nous faions, c'est que l'expéditeur a choisi une clé aléatoire pour la clé symétrique et qu'il a été chiffré par la clé publique du récepteur pour dériver le texte de chiffrement c, qui peut être considéré comme un chiffrement de la clé symétrique. Et le chiffrement réel du message a été fait en utilisant la clé k et c'était une approche en deux étapes, où nous avons d'abord choisi notre clé symétrique aléatoire, puis l'utiliser pour le processus de chiffrement à clé publique. Une approche plus efficace sera faite à l'aide d'un primitif, que nous allons définir rapidement que nous appelons mécanisme d'encapsulation clé où ces deux choses se font en une seule fois en une seule étape. Et l'avantage ici est que non seulement il est conceptuellement plus simple, mais dans de nombreux cas il est plus efficace et pour comprendre que comment exactement KEM va être efficace par rapport à cette approche en deux étapes, vous pouvez voir ce que nous avons vu juste maintenant dans le contexte de Hybrid El Gamal. La na ï ve la façon de mettre en œuvre El Gamal l'expéditeur a choisi un dériver aléatoire de la clé et a été crypté à l'aide du processus de cryptage d'El Gamal. Mais plus tard, nous avons soutenu que l'expéditeur n'avait pas besoin de le faire. Il peut effectuer le chiffrement hybride, même en envoyant simplement g β au récepteur. Maintenant, il suffit que la fonction de dérivation de clé sous-jacente soit un type particulier de fonction, qui distribue l'élément de groupe presque également parmi les éléments de l'espace clé du processus de chiffrement de clé symétrique. Ce que je veux dire par là est, si je considère que c'est mon groupe g, et si c'est mon jeu K, et le nombre d'éléments, qui sont mappé à un élément candidat à partir de cet espace clé, le nombre d'éléments de groupe qui sont mappé à cet élément candidat à partir de cet espace clé devrait presque être le même. Il ne doit pas y avoir de biais dans la distribution ou dans le mappage par lequel cette fonction H est en train de mapper les éléments du groupe vers les éléments de l'espace clé de mon processus de chiffrement de clé symétrique. Si je suppose que ma fonction de dérivation de clé sous-jacente a ce genre d'effet de lissage, il suffit pour moi de rester dans le modèle standard et de revendiquer la sécurité de ce mécanisme d'encapsulation clé, juste à partir de l'hypothèse DDH. Maintenant, vous pouvez voir l'importance des hypothèses que nous faisons tout au long de ce cours. La même construction ici peut être démontrée avec des hypothèses de dureté plus faibles, à savoir la supposition de CDH. Mais avec des propriétés plus puissantes de la fonction de hachage sous-jacente, à savoir en supposant qu'elle agit comme un oracle aléatoire alors que si vous ne voulez pas modéliser votre fonction de hachage sous-jacente en tant qu'oracle aléatoire, vous voulez le modéliser comme un type spécial de fonction de distribution lisse, alors vous devez avoir une hypothèse de dureté plus puissante dans votre groupe sous-jacent, à savoir que vous devez avoir le problème DDH difficile à résoudre dans votre groupe sous-jacent. Donc, ça m'amène à la fin de cette conférence. Pour résumer dans cette conférence, nous avons introduit le processus de cryptage hybride et nous avons discuté de la sécurité CPA du processus de cryptage hybride. Nous avons également vu une construction générique de la façon de combiner un mécanisme d'encapsulation sécurisé CPA-sécurisé ou un mécanisme d'encapsulation sécurisé de l'ACO avec n'importe quelle clé symétrique sécurisée de l'ACO