The New Alison App has just launched Download Now
We'll email you at these times to remind you to study
You can set up to 7 reminders per week
We'll email you at these times to remind you to study
Monday
Reminder set
7am
Tuesday
Reminder set
7am
Wednesday
Reminder set
7am
Thursday
Reminder set
7am
Friday
Reminder set
7am
Saturday
Reminder set
7am
Sunday
Reminder set
7am
Fundamentos of Cryptography Dr. Ashish Choudhury Department of Computer Science Indian Institute of Science – Bangalore Lecture – 48 CCA Secure Public Key Ciphers (Consulte Slide Time: 00:34) Olá a todos, bem-vindos a esta palestra. Só para recapitular, na última palestra discutimos com rigor a noção de segurança da CPA no contexto de esquemas de criptografia pública. Por isso, o plano para esta palestra é o seguinte. Introduziremos a noção de segurança CCA para criptosistemas públicos de chave pública. Discutiremos a motivação para estudar a segurança CCA, considerando cenários mundiais reais. Veremos a definição formal de segurança CCA Então veremos as definições de segurança do CCA para mecanismo de encapsulamento de chave e então veremos uma construção genérica de cifra de chave pública segura CCA, a partir de qualquer mecanismo de encapsulamento da chave segura CCA e qualquer cifra de chave simétrica segura CCA. (Consulte O Tempo De Deslizamento: 01 :13) Então, vamos começar nossa discussão com a diferença entre o modelo adversário passivo e um modelo de adversário ativo, no contexto de configuração de chaveamento publicitário. Por isso, se considerarmos o contraditório passivo, então o cenário é o seguinte. Então imagine que temos um receptor aqui que fez a geração chave e ele montou a sua chave pública, disponibilou-a no domínio público. E supomos que uma cópia autenticada da chave pública do receptor ’ esteja disponível no domínio público. E usando-o, diga que um remetente criptografa uma sequência de mensagens digamos 1 l, e o texto cifrado resultante é comunicado sobre o canal. Em seguida, no modelo passivo assumimos que o adversário tem a capacidade de apenas ler os textos cifrados, não pode alterar os conteúdos cifrados, não pode alterar sua ordenação, não pode introduzir novo texto cifrado e assim por diante. Considerando que se entrarmos no modelo contraditório ativo então o adversário é mais poderoso no sentido em que pode não apenas ler os textos cifrados, mas pode alterar o conteúdo do texto cifrado, pode inserir novo texto cifrado em seu nome ou fingir que como se eles forem provenientes do remetente, ele pode deletar os textos cifrados comunicados pelo remetente, pode reordenar os textos cifrados e pode fazer qualquer outro tipo de ataque que você possa pensar. Portanto, é um modelo contraditório mais poderoso em comparação com o modelo contraditório passivo. E só para relembrar, vimos a diferença entre o modelo contraditório passivo e o modelo de adversário ativo no contexto de configuração de chave simétrica. Então, neste momento estamos agora fazendo a mesma discussão no contexto de definição de chave pública. E acontece que em comparação com a configuração de chave privada, adversários mal intencionados ou ativos são mais uma preocupação no cenário de chave pública. E isso ocorre por causa do fato de que na configuração público-chave, qualquer um pode computar ou se comunicar com um receptor apenas acessando a chave pública de receptores, pois na configuração de chave pública a criptografia acontece usando a chave pública do receptor e já que ele vai estar disponível no domínio público, se eu sou um adversário e quero computar texto cifrado e enviá-lo para o receptor, eu posso fazer isso. Isto em contraste com a configuração de chave privada, onde se eu sou um adversário e não tenho a chave simétrica que está disponível entre o remetente e o receptor, então é muito improvável que eu suba um texto cifrado válido e envie para o receptor em nome do remetente, se estou usando um esquema de criptografia autenticado. Assim, isso significa que adversários mal intencionados são realmente mais uma preocupação na configuração de chave pública em comparação com a configuração de chave privada. (Consulte O Tempo De Deslizamento: 03:56) Assim, isso nos motiva a estudar os ataques CCA no contexto do mundo de chave pública. Então o que nós vamos fazer a seguir é: vamos ver alguns cenários reais do mundo onde realmente os ataques CCA podem ser lançados. Então considere este exemplo em que diz que uma senha é compartilhada entre um usuário e a chave pública do banco ’ é e sua chave secreta é. E sua chave pública está disponível no domínio público. E o protocolo usual entre um usuário legítimo e um banco é o seguinte. Assim, se um usuário quiser iniciar uma sessão com o banco então a primeira coisa que o usuário faz é criptografar sua senha usando a chave pública do banco usando algum processo de criptografia de chave pública. E o texto cifrado resultante é comunicado sobre o canal. E ao receber a senha criptografada, o banco decrita a senha criptografada e a compara com a senha que ele armazenou consigo mesmo. E dá uma mensagem de erro, a saber, senha incorreta, se achar que em decriptografia essa senha recuperada, a saber, não é a mesma que a senha, que é armazenada no site do banco ’. (Consulte O Tempo De Deslizamento: 05:15) Então este é um protocolo padrão. Por isso, agora vamos ver o que acontece se você pegar esse protocolo simples no modelo contraditório malicioso. Por isso, imagine que estamos dando um adversário, que é um adversário ativo e que tem eavesqueda sobre a senha criptografada. Ele conhece a chave pública do banco porque seus disponíveis no domínio público, mas o adversário não tem conhecimento da senha que é criptografada no texto cifrado. E seu objetivo é descobrir o que exatamente é a senha. Agora o que o adversário pode fazer é, pode pegar o texto cifrado que foi comunicado por um usuário legítimo ao banco e ele interrompe a comunicação. E o que ela faz, modifica certos bits do texto cifrado e vem com um novo texto cifrado, ao criptografar alguma mensagem em si usando a chave pública do banco. Por isso, o que está fazendo é, apenas impede a comunicação entre o usuário legítimo e o banco. E, em vez disso, surge com um novo texto cifrado, digamos e é uma criptografia de algum texto simples conhecido, que é conhecido já para o adversário. E talvez possamos imaginar que neste exemplo particular, o adversário pode até mesmo fazer coisas asqueroso. Na verdade, pode acontecer que o adversário não saiba e ele apenas modifique certos bits do texto cifrado, e venha a aparecer. E pode ser o caso que é uma criptografia de, isso também é uma possibilidade.Portanto, seja o que for que possa ser o caso o adversário encaminha o texto cifrado para o banco e aguarde a resposta do banco. Agora se vê que na resposta para, em decriptografar o banco lança a mensagem de erro incorreta a senha, então basicamente adversário aqui está realmente chegando a saber que não é a senha certa, que foi criptografada. Pois se de fato teria sido a senha certa, que é criptografada no texto cifrado então em descriptografar cifrado, o banco não terá lançado a mensagem de erro incorreta. Mas como o banco está jogando a mensagem senha incorreta, de alguma forma o adversário aqui está conseguindo aprender que a senha que é compartilhada entre o usuário legítimo e o banco não é, é algo diferente de. E agora o adversário pode tentar repetir o mesmo ataque novamente. Isso significa que o que pode fazer é só chegar a um outro texto cifrado, digamos, que poderia ser uma criptografia de algum texto simples, digamos, e esperar que de fato seja a senha certa e encaminha o texto cifrado para o banco e aguarde para ver a resposta do banco ’. E novamente se a mensagem de erro vier, então o adversário aprende aqui que a senha não é e assim por diante. Então o que está acontecendo aqui, basicamente neste exemplo o adversário está de alguma forma recebendo um serviço de oráculo de decriptação do banco sem realmente deixar o banco saber que é adversário quem está realmente convencendo o banco a descriptografar textos cifrados de adversário ’ s escolha. (Consulte O Tempo De Deslizamento: 08 :42) Agora consideremos outro aplicativo aqui. E aqui neste aplicativo, digamos que temos um receiver Bob, que montou sua chave pública e chave secreta e a chave pública está disponível em domínio público. E dizer que Alice tem um e-mail, digamos, que quer se comunicar secretamente com Bob. Então o que ele faz é, ele executa o algoritmo de criptografia de chave pública usando a chave pública de Bob e o e-mail criptografado resultante é comunicado a Bob. Agora suponha que Charlie esteja interessado em descobrir o que está acontecendo, qual é exatamente o conteúdo do e-mail? Então o que Charlie pode fazer é, pode eavescair o e-mail criptografado e o que ele pode fazer, ele pode modificar certos bits de para produzir uma nova mensagem criptografada dizer e enviar para Bob e fingir como se aquilo fosse um e-mail criptografado que Charlie gostaria de enviar para Bob. Agora Bob o que vai fazer é, quando receber o texto cifrado, pensará como se Charlie quisesse enviar um e-mail criptografado para Bob. E sobre a decriptografia, o que Bob pode fazer é, suponha que decriptografar ele recupere o conteúdo do e-mail. E pode ser possível que Bob gostaria de responder de volta a Charlie. E enquanto rerespondendo, pode querer citar a mensagem ou o e-mail que Bob obteve após decriptografar o e-mail criptografado. Isso significa que a resposta por e-mail que agora Bob está enviando pode ser concatenada com, dependendo da aplicação subjacente. Agora quando esta resposta de Bob junto com o e-mail decriptografado voltar para Charlie, o que basicamente Charlies chegar aqui é, está recebendo um serviço de oracle de decriptografia. A saber, ela aprende que o texto cifrado modificado realmente criptografa o conteúdo do e-mail. E, neste caso, na verdade se realmente o meu processo de criptografia teria sido seguro CCA seguro, então isso isso não deve ser possível. Mas como meu processo de criptografia não é o CCA seguro aqui, Bob aqui ao receber um texto cifrado modificado sua completamente embasada que o e-mail modificado foi encaminhado por um adversário aqui. E é simplesmente decriptografar esse texto cifrado modificado e responder de volta ao adversário, pensando que o e-mail originou-se daquela pessoa. (Consulte O Tempo De Deslizamento: 11 :15) Agora vejamos o exemplo final aqui. E isso você pode imaginar um protocolo de licitação aqui e o cenário é o seguinte. Temos um leiloeiro que tem sua chave pública montada disponível no domínio público. E dizem que temos 2 licitantes que estão licitados por um objeto valioso e dizem que o licitante Bob vai primeiro. Tem um lance privado, que ele criptografa usando a chave pública do leiloeiro, com o leiloeiro neste caso é Alice. E agora assuma que Charlie é um licitante mal-intencionado que quer ganhar o lance, mas não sabe o valor porque isso é criptografado usando a chave pública da Alice. Então o que Charlie pode fazer aqui é, ele pode eavescair sobre o lance criptografado de Bob. E depois de fazer isso, ele pode modificar o lance criptografado para outro lance criptografado. E suponhamos que meu processo de criptografia seja tal que que o lance criptografado modificado seja uma criptografia do lance 2 vezes o lance de bob, e encaminha o lance criptografado modificado para Alice. E Charlie finge como se fosse o lance que Charlie gostaria de fazer aqui. Portanto, esta propriedade aqui, onde é possível para um adversário, a saber, Charlie malicioso, eavescair um texto cifrado de uma mensagem desconhecida e a partir desse texto cifrado produzir outro texto cifrado que é uma criptografia de alguma mensagem relacionada, a saber, 2 vezes a mensagem, que foi criptografada no texto cifrado, é chamada como propriedade de maleabilidade do texto cifrado. Então, relembramos quando estávamos discutindo processo de criptografia simétrica, lá também, discutimos a noção de maleabilidade e maleabilidade poderia ser possível até mesmo no contexto do processo de criptografia pública. Então agora neste exemplo se de fato é possível que Charlie se converta, tal que é uma criptografia de chave pública da mensagem 2 vezes, então o que Alice pode fazer é, quando ela decriptografar e, ela descobrirá que é a licitação vencedora. Porque corresponde ao valor 2 vezes. E ela agora pode anunciar publicamente que Charlie venceu a licitação por meio de licitação pelo valor de lance 2 vezes. E neste caso depois de aprender o resultado, Charlie acaba conseguindo um serviço de oráculo de descriptografia da Alice e acaba vencindo o leilão que deveria ter sido evitado se realmente o meu processo de criptografia teria sido o CCA seguro. (Consulte O Slide Time: 13:55) Então agora temos visto vários cenários do mundo real em que ataques CCA podem ser lançados onde o adversário pode obter o serviço de oracle de descriptografia. Então, portanto, agora temos que estudar formalmente a noção de segurança CCA no contexto do sistema de criptomia de chave pública. Então, vamos definir formalmente isso. Então em um nível muito alto, o objetivo da segurança do CCA é conseguir criptografações indiferenciadas, mesmo na presença de oráculo de descriptografia e o conhecimento de chave pública estar disponível com o adversário. E isso é modelado por um jogo de resposta de desafio. As regras do jogo são as seguintes. O desafiante executa o algoritmo de geração de chave, dá a chave pública para aquele adversário que está computacionalmente delimitado. Assim, uma vez que a chave pública é dada explicitamente ao adversário, ela pode obter serviço de oracle de criptografia por conta própria, criptografando qualquer texto simples de sua escolha. Agora o que pode fazer neste experimento aqui é, pode pedir a oracleservice de decriptografia ao enviar vários textos cifrados do espaço de texto cifrado. E, em resposta, o desafiante tem que decriptografar de volta todos esses textos cifrados, usando a chave secreta, que não é conhecida do adversário. Agora a fase de desafios começa onde o adversário submete um par de textos corridos, com a única restrição sendo que seus comprimentos devem ser iguais. E para preparar o texto do desafio cifrado, nosso desafiante escolhe aleatoriamente uma dessas mensagens e criptografa-a usando a chave pública. E agora damos ao adversário o acesso ao serviço de oracle de decriptografia pós-desafio, onde novamente pode pedir decriptografia serviço de oracle ou decrptos para um muitos textos cifrados de sua escolha, sendo que a única restrição é que, esse serviço pós-desafio decriptografia oracle é restrito, já que adversário é restrito para pedir a descriptografia do texto cifrado. Porque, se não colocarmos essa restrição, então não podemos alcançar nenhuma noção significativa de sigilo. E se você olhar os 3 exemplos motivadores que eu dei anteriormente, em todos esses 3 exemplos o objetivo do Charlie ou do mocinho era conseguir um serviço de oráculo decriptografado de um texto cifrado modificado, mas não para o texto cifrado que interessa rachar. Agora uma vez que o adversário recebe um serviço de oracle de decriptografia para as consultas de oráculo de decriptografia de post impugnação, o objetivo do adversário ’ é identificar se o suporte é uma criptografia de 0 ou 1. Por isso, submete-a ’ s resposta ou saída. E a regra do experimento é, dizemos que o adversário ganhou o experimento, o que equivale a dizer que a saída do experimento é de 1, se e somente se ′ =. Isso significa que adversário identificou corretamente o que é criptografado em cifração de desafio. E nossa definição de segurança é, dizemos que nossos processos de criptografia é única mensagem CCA segura, se para cada adversário de tempo poltica, a probabilidade de sucesso do adversário vencer o jogo é superior delimitado por metade mais função insignificante no parâmetro de segurança. Ou, equivalentemente, a vantagem distintiva do adversário é superior delimitado por alguma função insignificante. Ou seja, não importa, se o tempo de existência é uma criptografia de 0 ou 1, com quase a mesma probabilidade a resposta do adversário deve ser a mesma. A razão pela qual estamos chamando este experimento de uma única mensagem CCA segura, porque o adversário acaba de submeter um par de textos simples de desafio e está vendo uma criptografia de um deles. (Consulte O Tempo De Deslizamento: 17 :13) Podemos estender essa definição em uma versão direta ou natural, para incorporar a segurança CCA multi mensagem. As regras do jogo serão quase iguais quanto para a segurança CCA de mensagem única, em que o challenger lança a chave pública para o adversário, adversário ganha serviço de oracle de decriptação e agora na fase de desafio, é permitido submeter um par de vetores de mensagens. Mas a única restrição sendo esse componente-sábio as mensagens no 0vector e a mensagem no vetor 1, deve ter o mesmo comprimento. Para preparar o texto de cifração do desafio, o desafiante escolhe um destes 2 vetores com probabilidade igual para a criptografia e, em seguida, criptografa todos os textos simples no vetor selecionado e o vetor de texto cifração do desafio é dado ao adversário. O adversário está novamente autorizado a ter acesso ao serviço de oracle de decriptografia pós impugnação, com a única restrição que não pode pedir a decriptografia de qualquer texto cifrado que esteja presente no vetor desafio cifração. Agora uma vez que nosso adversário é suficientemente treinado, ele tem que identificar se o vetor de cifração do desafio que ele viu corresponde a uma criptografia do 0vector ou o primeiro vetor. E dizemos que adversário ganhou o experimento ou a saída do experimento é 1, se e somente se identificou corretamente se é vetor 0 ou se é vetor 1, que é criptografado no vetor de vetores de cifração. E nossa definição de segurança é, dizemos que nossos processos de criptografia é multi mensagem CCA segura se para qualquer adversário de tempo de poltica participar deste experimento, a probabilidade de que ele possa vencer o experimento é superior delimitado pela metade mais alguma função insignificante no parâmetro de segurança. Ou, equivalentemente, a vantagem distintiva do adversário é superior delimitado por alguma função insignificante no parâmetro de segurança. E como esperado podemos provar que a segurança CCA de mensagem única e a segurança CCA multimídia são equivalentes, mesmo no contexto de esquemas de criptografia de chave pública. Por isso, não estou a dar a prova completa aqui tu, pode referir-se ao livro de Katz-Lindell para a prova cabais. (Consulte O Tempo De Deslizamento: 19:25) Então, agora vamos definir a noção de segurança CCA no contexto de cifras de chave pública híbrida. Por isso, lembre-se na última palestra, discutimos que como usar um mecanismo de encapsulamento de chaves e um esquema de criptografia simétrica, podemos chegar a uma combinação de ambos para chegar a um processo de criptografia híbrida mais eficiente. Onde o algoritmo de geração de chaves do processo de criptografia híbrida irá executar o algoritmo de geração de chaves do KEM e saída a chave pública e chave secreta, onde chave secreta estará disponível com o receptor e chave pública estarão disponíveis no domínio público. O processo de criptografia do esquema híbrido será o seguinte, ele executa primeiro um algoritmo de encapsulamento chave e obtém uma chave simétrica e um encapsulamento da chave, denotada por. E então a chave é usada para criptografar o texto simples, de acordo com o algoritmo de criptografia de chave simétrica para produzir o texto cifrado. E o texto geral da cifração é a encapsulação da chave simétrica e a criptografia do texto simples. Analogamente, a decriptografia acontece na extremidade receptora; o receptor primeiro de capsular o encapsulamento e obtém a chave simétrica. E uma vez que obtém a chave simétrica, ela decapita o componente de texto cifrado, para recuperar de volta o texto simples, utilizando o algoritmo de decriptografia do processo de criptografia simétrica. E também para relembrar, na última palestra, provamos que se o meu KEM é o CPA assegurado e o meu processo de criptografia simétrica é COA seguro, então o esquema geral é o CPA seguro. Mas já que agora estamos considerando a segurança CCA, temos que identificar quais devem ser as propriedades de segurança dos meus blocos de construção subjacentes. Acontece que se eu quiser alcançar a segurança CCA, então definitivamente o meu processo de criptografia simétrica subjacente no esquema de criptografia híbrida deve ser o CCA seguro. Não basta apenas ter segurança COA ou CPA para o processo de criptografia simétrica subjacente. Para demonstrar meu ponto, vamos instanciar o bloqueio de chave simétrica subjacente aqui neste processo de criptografia híbrida por modo de contador de operação, que sabemos que é seguro CPA mas não CCA seguro. Então imagine que um remetente tenha criptografado uma mensagem formada por 2 blocos de todos os 0s, usando o esquema de criptografia híbrida conforme o processo de criptografia híbrida acima. E o texto cifrado resultante é (. E conforme os detalhes do processo de criptografia desse esquema de criptografia híbrida, o modo (teria sido produzido é o seguinte. Primeiro um algoritmo de encapsulamento teria sido executado para obter uma chave simétrica e a encapsulação dessa chave. E, então, usando a chave, invocando o modo contador de operação, o bloco de mensagens ao todo 0s, seguido por todos os 0s, teria sido criptografado. Assim, a criptografia da mensagem utilizando a chave conforme o modo de contador de operação será a seguinte. Um contador aleatório será selecionado, que estará disponível como parte do componente de texto cifrado. E a criptografia real dos blocos da mensagem será de 1 ′ e 2 ′ conforme o modo de contador de operação. Agora o que vamos ver aqui no exemplo é que imagine que há um adversário que eaveslargou o texto cifrado (e imaginem que o adversário é um adversário ativo. Depois, ao observar (, é muito fácil para o adversário produzir um texto cifrado modificado (, tal que quando este texto cifrado modificado é encaminhado para o receptor e decriptografado conforme este processo de criptografia híbrida, ele leva ao texto simples todos os 1s segundos, seguido de todos os 0s. E o modo como o adversário pode fazer isso é explorando a maleabilidade do modo de contração da operação. Basicamente ele tem que produzir, onde o valor do contador a saber: 0 ′ é retido como é e o componente 2 ′ do texto cifrado também é retido como é. A modificação está apenas no componente ciphertexto 1 ′. 1 ′ agora é alterado para 1 ′ ′ como 1 ′ ′ = 1 ′ ⨁0l⨁1l. E se 1 ′ for alterado para 1 ′ ′, então o efeito de todos os 0s e todos os 0s cancela saída. E basicamente 1 ′ ′ agora corresponde a um modo de contador de criptografia para a mensagem block all 1 ’ s. E agora isso já que esse processo geral é maleável, podemos facilmente mostrar que isso não vai ser o CCA seguro. Então isso significa se em tudo queremos que o processo geral de criptografia híbrida seja CCA seguro, definitivamente o meu esquema de criptografia simétrica subjacente que estou usando deve ser o CCA seguro. (Consulte O Slide Time: 24:20) Mas acontece que apenas instanciando a criptografia simétrica subjacente por uma criptografia simétrica segura do CCA, não basta nos dar um processo de criptografia híbrida do CCA seguro geral. E a razão para isso é, se você jogar o CCA GAME contra esse processo de criptografia híbrida então lembre-se de que no jogo CCA, adversário recebe acesso ao serviço de oráculos de decriptografia. A saber, o adversário pode agora fazer serviço de oráculo de decriptografia para qualquer tipo de texto cifrado modificado, em que a primeira parte do texto cifrado pode ser qualquer tipo de encapsulamento, a saber, qualquer encapsulamento, seguido de qualquer coisa. E para responder a essas consultas de oracle de decriptografia modificada, o desafiante tem que basicamente descriptografar textos cifrados modificados usando a chave secreta. Agora se você ver o algoritmo de decriptografia deste esquema de criptografia híbrida, qualquer consulta oracle de decriptografia do formulário seguido por qualquer coisa, quando ela for decriptografada pelo desafiante no jogo CCA, basicamente ele fornece implicitamente o adversário oracle acesso ao serviço oracle de decapsulação, sob a chave secreta desconhecida. Porque ao decriptografar o texto cifrado modificado, adversário virá para aprender o que exatamente é a decapsulação de pessoas de forma secreta, sob a chave secreta desconhecida. Isso significa que agora precisamos de uma instanciação segura CCA do mecanismo de encapsulamento chave também, para esperar que o processo de criptografia híbrida geral resulte em um processo de criptografia pública segura do CCA. (Consulte O Tempo De Deslizamento: 26:01) Então, vamos primeiro definir a noção de segurança CCA para mecanismo de encapsulamento chave. E em um nível muito alto, o objetivo de um mecanismo de encapsulamento de chave segura CCA deve ser o de garantir o seguinte. Então imagine que temos um receptor que executa o algoritmo de geração de chaves de um mecanismo de encapsulamento seguro CCA e configura a chave pública. E dizer que nosso remetente está lá o qual executa o algoritmo de encapsulamento de chave desse esquema, obtém uma chave secreta e um encapsulamento da chave. E o encapsulamento é enviado para o receptor. E dizer que há um adversário mal-intencionado, que eavescaiu o encapsulamento. E agora imagine que o meu adversário receba o serviço de oráculo de decapsulação para qualquer encapsulamento, diferente de. Agora ao obter número polinomial de serviço de oráculo de decapsulação, exigimos que do ponto de vista meu adversário, o encapsulamento, que já viu mais cedo, ainda deva ser independente da chave, que é encapsulada em. Então a vantagem aqui que o meu adversário agora está recebendo é um serviço de oráculo de decapsulação explícito, que temos que modelar agora em nosso experimento. Assim, para modelo acima do requisito, o experimento é o seguinte. Nosso desafiante executa o algoritmo de geração de chaves e usando a chave pública ele executa o algoritmo de encapsulamento para obter um par (. E agora ele prepara o desafio para o adversário da seguinte forma. Ele joga uma moeda justa, se o tosse da moeda é de 0, então ele escolhe um elemento aleatório proveniente do espaço chave. Considerando que se o tosse da moeda for de 1, então o elemento a seguir é a chave, que na verdade é encapsulada no encapsulamento. E o desafio para o adversário é o seguinte. A chave pública é dada, a encapsulação é dada e recebe-se a palavra. E o objetivo do adversário é identificar se o simples é um elemento aleatório do espaço chave, ou seja, se. Ou se a mesma é a mesma chave que está encapsulada em, a saber. Mas agora nós modelamos aquele serviço de oracle de decapsulação ao permitir que o adversário peça a decapsulação de qualquer encapsulamento de sua escolha, sendo que a única restrição é que esse serviço oracle de decapsulação não deve ser para o encapsulamento. Eles deveriam ser diferentes de. E o nosso adversário é autorizado a enviar adaptativamente sua consulta e em resposta às consultas oracle de decapsulação, o desafiante responde decapitando todas aquelas consultas sob a chave secreta desconhecida, que não é conhecida do adversário. E depois de fazer o número polinomial de consultas, o adversário tem agora de identificar e resolver o seu desafio. A saber, tem de identificar se ele viu um desafio conforme o método 0 ou conforme o método. E a definição do experimento é, dizemos que adversário ganhou o experimento, o que denotamos dizendo que a saída do experimento é 1, se e somente se adversário assegurou ′ =. E dizemos que o nosso mecanismo de encapsulamento fundamental é o CCA seguro, se para cada adversário de tempo poltica, existe alguma função insignificante, tal que a probabilidade de aquele adversário ganhar a experiência é superior delimitado por metade mais função insignificante. Ou, equivalentemente, a vantagem distintiva desse adversário é superior delimitado por alguma função insignificante no parâmetro de segurança. (Consulte O Slide Time: 29:42) Então agora vamos ver que, se estamos dando um KEM seguro CCA e uma cifra de chave simétrica segura CCA, então se combinarmos eles, obtemos uma cifra de chave assimétrica segura CCA. Por isso, imagine que somos dados um KEM seguro CCA e o processo de criptografia de chave simétrica segura CCA. Então podemos combiná-lo da mesma forma como fizemos para obter uma cifra de chave assimétrica segura da CPA na última palestra. Assim, meu algoritmo de geração chave do processo de criptografia híbrida será simplesmente o algoritmo de geração de chaves do mecanismo de encapsulamento de chave. Para criptografar um texto simples usando a chave pública, o que o remetente vai fazer é, ele executará o algoritmo de encapsulamento e obterá uma chave e sua encapsulação. E usando a chave, ele chamará o algoritmo de criptografia do processo de criptografia simétrica subjacente para criptografar o texto simples e obter sua criptografia. E o texto cifrado geral será (. Por outro lado, o receptor que possui a chave secreta, sobre o recebimento do texto cifrado (′), primeiro decapitará a parte do texto cifrado para recuperar a chave encapsulada. E então essa chave é usada para descriptografar o componente do texto cifrado, conforme o algoritmo de decriptografia do processo de criptografia simétrica, para obter de volta o texto simples real. E podemos provar que se o meu mecanismo de encapsulamento fundamental é o CCA seguro como por definição que acabamos de dar. E se os meus processos de criptografia simétrica subjacentes são o CCA seguro, então essa maneira genérica de combinar esses 2 primitivos vai nos dar um processo de criptografia de chave pública que é o CCA seguro. E a prova novamente será algo parecido com a prova de estilo de argumento híbrido, que tínhamos dado na última palestra, para provar a segurança CPA da construção genérica do esquema híbrido que tínhamos discutido naquela palestra. Por isso, estou deixando os detalhes formais completos da prova para você como exercício. Então isso me leva até o final desta palestra. Só para resumir, nesta palestra introduzimos a noção de segurança CCA no contexto do esquema de criptografia pública. Vimos a maleabilidade, o que significa exatamente a maleabilidade dos esquemas de criptografia pública e vimos a definição de segurança CCA para mecanismo de encapsulamento chave e discutiu-se que se nos é dado um seguro CCA
This is the name that will appear on your Certification
"Nós enviaremos as instruções para resetar a sua senha para o endereço associado. Por favor, digite o seu e-mail atual."