Loading
Nota de Estudos
Study Reminders
Support
Text Version

Criptografia Autenticada

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

    +

Fundamentos of Cryptography Prof. Dr. Ashish Choudhury (Ex-) Infosys Foundation Career Development Chair International Institute of Information Technology – Bangalore Lecture – 33 Autenticada Criptografia (Consulte O Slide Time: 00:34) Olá, todos, bem-vindos a esta palestra. O plano para esta palestra é o seguinte. Por isso, nesta palestra, definiremos a noção de criptografia autenticada e veremos as implicações da criptografia autenticada. Por isso, vamos começar a discussão com os objetivos de comunicação segura. (Consulte O Slide Time: 00 :45) Então, lembre-se que no problema da comunicação segura, esse cenário é o seguinte. Temos um remetente e receptor sem nenhuma informação pré-compartilhada e eles estão conectados por um canal de inseguro aberto público e nosso objetivo é basicamente aplicar algum primitivo criptográfico que converte esse canal aberto público em algum canal seguro virtual e o que exatamente eu quero dizer por canal seguro virtual é que usando este canal, o emissor e o receptor podem fazer a comunicação alcançando as seguintes propriedades. A primeira propriedade é a privacidade, nomeadamente a comunicação que acontece ao longo do canal não vaza qualquer informação sobre as mensagens subjacentes que remetem ou o receptor estão a comunicar uns aos outros. A segunda propriedade alcanada aqui é a da autenticidade, em que é garantido ao receptor que um pouco de cordas que está recebendo sobre o canal tem de fato originado do remetente e vice-versa. A terceira propriedade alcanada é a da integridade, a saber, se há um adversário malicioso ou um adversário ativo, que está sentado sobre o canal e observando a comunicação e tenta modificar a comunicação reordenando os pacotes ou inserindo novos pacotes, certo, então ele será detectível pelo receptor ou pelo remetente e vice-versa. Então, estes são os 3 objetivos de comunicação segura, e temos visto várias primitivas para alcançar separadamente a propriedade de privacidade e a propriedade de autenticidade e integridade. (Consulte O Tempo De Deslizamento: 02:12) Nomeadamente o quadro até agora é o seguinte. Então, discutimos extensivamente 2 primitivas criptográficas, a saber, criptografia simétrica ou SKE e códigos de autenticação de mensagens ou MAC. Por isso, a propriedade wise, o objetivo da criptografia simétrica segura é alcançar a propriedade de privacidade onde está o objetivo do código de autenticação de mensagens é resolver o problema de integridade e problema de autenticação. Se você considerar a criptografia simétrica, então ela apenas resolve o problema de privacidade. Não resolve o problema de integridade e autenticação e é fácil perceber que sejam quais forem os mecanismos de criptografia que discutimos até agora, para todos aqueles mecanismos de criptografia, é muito fácil para um invasor produzir um novo texto cifrado válido porque o texto cifrado não passa de um bit string e já que o adversário estará ciente do espaço cifrado, ele pode apenas produzir algum fluxo de bits pertencente a esse espaço cifrado e pode encaminhá-lo para o receptor e o receptor não terá nenhum mecanismo para verificar se as chamadas cadeias de bits que ela está recebendo de fato originou-se do designado remetente ou não. Além disso, é fácil para um invasor manipular um texto cifrado existente e ir sem ser detectado. Isso significa, a criptografia de chave simétrica que discutimos até agora, ela apenas permite ou nos ajuda a resolver o problema da privacidade. Considerando que se você ver os códigos de autenticação de mensagens, então o objetivo dos códigos de autenticação de mensagens é apenas resolver o problema de integridade e autenticidade e ele não lhe fornece privacidade de mensagens e é fácil perceber que qualquer que seja o código de autenticação de mensagens que discutimos até agora, para todos aqueles códigos de autenticação de mensagens, é muito fácil para um invasor distinguir as tags de autenticação de mensagens separadas por 2 mensagens de adversário ’ s choice. Portanto, isso significa, não podemos dizer que o adversário não pode distinguir entre a tag da mensagem 0 versus a tag da mensagem 1. É muito fácil para o adversário fazer isso, certo. Então, agora, você pode ver que a propriedade sábia, a exigência ou os objetivos alcançados por criptografia simétrica e os códigos de autenticação de mensagens são complementares entre si, enquanto que nosso objetivo geral é alcançar a privacidade, integridade e autenticidade; todas as 3 propriedades por um único primitivo Então o que podemos esperar é que possamos esperar que ou possamos imaginar que devemos, de alguma forma, combinar esses 2 primitivos e esperar que o que quer que saia como uma combinação destes dois primitivos, que chamamos de criptografia autenticada satisfaça todas as 3 propriedades, a saber, ela nos dá privacidade, autenticidade e integridade. Então é isso que nós vamos fazer agora. Veremos como combinar criptografia simétrica e código de autenticação de mensagens para alcançar ou projetar um primitivo criptográfico mais potente que chamamos de criptografia autenticada. (Consulte O Slide Time: 05 :05) Então em um nível muito alto como eu disse, o objetivo da criptografia autenticada é pegar um canal aberto com o qual um emissor e um receptor estejam conectados e para dar o efeito de um canal seguro e autenticado. Assim, formalmente um esquema de criptografia autenticado é um processo de criptografia simétrica e ele será uma coleção de 3 algoritmos, a saber, um algoritmo de geração de chaves, um algoritmo de criptografia e um algoritmo de decriptografia. Então, sintaxe sábia, a sintaxe do algoritmo de geração de chaves é que ele não terá entrada externa e terá aleatoriedade implícita e ele produzirá uma chave de um espaço chave e, de preferência, tem que ser um algoritmo randomizado, pois se for algoritmo determinístico, então o adversário também estará sabendo o que exatamente é a chave que emissor e receptor vão obter executando o algoritmo de geração de chaves. Portanto, essa é a sintaxe do algoritmo de geração de chaves. O algoritmo de criptografia leva o texto simples que você deseja criptografar e a chave com a qual deseja executar a criptografia e ela tem que ser um algoritmo randomizado. Então, ela tem aleatoriedade implícita e dá a você um texto cifrado c pertencente ao espaço cifrado. Por outro lado, o algoritmo de decriptografia leva o texto cifrado que você deseja descriptografar e a chave com a qual deseja realizar a decriptografia, e pode ter 2 resultados possíveis. Então, essa é a diferença agora que estamos nos enaltecendo aqui quando estamos discutindo o algoritmo de decriptografia para os esquemas de criptografia autenticados. Assim foi até agora o algoritmo de decriptografia para o primitivo esquema de criptografia simétrica que discutimos tem apenas uma saída possível, a saber, o texto simples que você obtém descriptografando o texto cifrado, mas quando chegamos a um esquema de criptografia autenticado, a saída do algoritmo de decriptografia poderia pertencer ao espaço à parte ou pode ser um símbolo especial que denominamos como bot, o que significa uma entrada inválida e o algoritmo de decriptografia tem que ser um algoritmo determinístico para garantir que a decriptografia seja inequívoca. Então, agora, você pode estar se perguntando o que exatamente é a interpretação de entrada inválida? Será claro muito em breve o que exatamente nós significamos por uma entrada inválida ou um texto cifrado inválido no contexto do algoritmo de decriptografia de um esquema de criptografia autenticado. (Consulte O Tempo De Deslizamento: 07:31) Então, essa é a sintaxe do esquema de criptografia autenticada, e formalmente dizemos que o esquema de criptografia como um esquema de criptografia autenticado se ele satisfaz as 2 propriedades a seguir. A primeira propriedade é que ela deve satisfazer a noção de CCA-segurança e a segunda propriedade é que ela deve satisfazer a noção de integridade do texto cifrado. Por isso, agora vamos discutir individualmente cada uma dessas duas propriedades. Por isso, já tínhamos discutido o que exatamente significa CCA-segurança, mas voltemos a relembrar a definição de segurança da CCA-segurança. (Consulte O Slide Time: 08 :01) Basicamente, o objetivo da CCA-segurança é que queremos atingir a segurança semântica a saber de criptografações indistinguíveis mesmo na presença de um adversário que tem acesso tanto ao oráculo de criptografia quanto ao oráculo de descriptografia, certo. Assim, isso torna esse modelo de ataque ou essa noção de segurança mais poderosa em comparação com a segurança CPA. Na segurança CPA, o objetivo era atingir a segurança semântica apenas se o adversário tiver acesso ao serviço de oracle de criptografia. Mas agora queremos que o adversário não deve ser capaz de distinguir uma criptografia de m0 de uma criptografia de m1 mesmo que o adversário tenha um acesso adicional ao serviço oracle de decriptografia. Então, formalmente, isso é modelado por um experimento e temos 4 fases no experimento. Nós temos uma fase de treinamento de pré-desafio, temos uma fase de desafio, temos uma fase de treinamento pós-desafio e temos uma fase de saída. O jogo é jogado entre um adversário computacionalmente ligado e um experimento. Assim na fase de treinamento pré-desafio, o adversário pode, adaptativamente, pedir consultas a partir dos oráculos de criptografia. Isso significa, ele pode adaptativamente enviar texto simples de sua escolha a partir do espaço da mensagem e em resposta que desafiador ou o experimento tem que criptografar todas essas mensagens executando um algoritmo de geração de chaves e obter uma chave que não é conhecida do invasor e todas as mensagens pelas quais o adversário pediu o serviço de oracle de criptografia, o desafiante criptografa essas mensagens e um texto cifrado correspondente são comunicados de volta ao adversário. Além disso, o adversário também tem acesso ao serviço de oracle de decriptografia. Pode pedir a decriptografia de qualquer texto cifrado sobre o espaço de texto cifrado de sua escolha e sempre que adversário submete consultas de decriptografia, o desafiante ou o experimento tem que decriptografar todas aquelas cifras cifradas sob a mesma chave desconhecida k. Então, eu ressalto aqui que a mesma chave desconhecida vai ser retida durante todo o experimento por responder ao serviço de oracle de criptografia, por responder ao serviço oracle de decriptografia e até mesmo por preparar o texto da cifração do desafio. Além disso, não há restrição no adversário na ordem em que ele pode pedir as consultas oracle de criptografia e consultas de oracle de descriptografia. Ele pode, adaptativamente, enviar consultas em qualquer ordem arbitrária, certo. Assim, uma vez que a fase de treinamento pré-desafio acabou, então temos a fase de desafio em que o adversário submete um par de texto simples de desafio com a única restrição sendo que seu comprimento deve ser igual. Para preparar o texto do desafio cifrado, o desafiante decide aleatoriamente uma dessas 2 mensagens com probabilidade 1/2. Pode ser a mensagem de zeroth ou a primeira mensagem e uma vez decide qual mensagem criptografar, o desafiante criptografa que desafie texto simples e o desafio ciphertexto c * é comunicado ao adversário e o desafio para o adversário é distinguir se c * é uma criptografia de m0 ou se c * é uma criptografia de m1. Agora neste ataque, no experimento CCA, damos ao adversário poder adicional. Ou seja, uma vez que o adversário enxerga o texto do desafio cifrado, também damos ao adversário acesso à fase de treinamento pós-desafio onde pode voltar a pedir criptografia de várias mensagens de sua escolha, possivelmente incluindo o desafio texto simples m0, m1 direito. Assim, pode pedir a criptografia de qualquer número de mensagens de sua escolha e o desafiante tem que responder de volta a essas consultas criptografando essas mensagens conforme a chave, e o adversário também pode pedir o serviço de oracle de descriptografia. A saber, pode submeter qualquer texto cifrado de sua escolha por decriptografia com a restrição de que nenhuma dessas consultas de decriptografia de pós-desafio pode ser igual a c * porque se não colocarmos essa restrição, então trivialmente o adversário pode ganhar o jogo pedindo a descrição de c * e uma vez que vê a descrição de c *, ele pode identificar claramente se viu uma criptografia de m0 ou m1 e, portanto, não podemos definir nenhuma noção significativa de segurança. Por isso, é por isso que na fase de treinamento pós-desafio, prevemos que o adversário faz consulta oracle de decriptografia para c *. Fora isso, ele pode modificar qualquer número de bits de c * e pedir a decriptografia dessas cifras, e em resposta, o desafiante do experimento tem que decriptografar aquelas cifras e devolver o texto simples correspondente ao adversário. Uma vez que o adversário seja devidamente treinado com relação às consultas de pré-desafio, postar consultas de desafio, o adversário tem que decidir agora se viu uma criptografia de m0 ou se viu uma criptografia de m1. Então, basicamente, supera um bit b ’. A definição de segurança é dizemos que o processo de criptografia Π é semanticamente CCA seguro. Se todo adversário polvilho participante desse experimento, existe alguma função insignificante tal que a probabilidade de que a adversidade vença o experimento ou garanta que b ’ = 1 é superior delimitado por 1/2 mais aquela função insignificante. Equivalentemente, a outra maneira de interpretar esta definição é que não importa se sua mensagem m0 que é criptografada em c * ou se sua mensagem m1 que é criptografada em c *, em ambos os casos, a resposta do adversário deve ser quase idêntica, digamos b ’ = 1 exceto com alguma probabilidade insignificante. Sendo assim, essa é a outra definição de CCA-segurança e podemos provar que se temos um esquema que satisfaça a primeira condição, então implica que satisfaça também a segunda condição e vice-versa. Assim, dependendo de nossa conveniência, podemos utilizar qualquer uma dessas 2 condições para provar ou desmentir a CCA-segurança de um determinado processo de criptografia. Então, nós tínhamos definido o que exatamente nós queremos dizer pela CCA-segurança. Então, agora vamos ver o que exatamente nós queremos dizer pela integridade do texto cifrado. Portanto, essa é uma propriedade nova, que também exigimos de um esquema de criptografia autenticado. (Consulte O Tempo De Deslizamento: 14 :05) Então o que exatamente é integridade de texto cifrado? Então, informalmente se um processo de criptografia tem integridade de texto cifrado, então isso significa que um adversário não deve ser capaz de fazer o seguinte. Então imagine que temos um processo de criptografia e há uma-chave pré-compartilhada gerada conforme o algoritmo de geração de chaves e disponível entre o emissor e o receptor e não conhecido para ninguém, e imagine que o remetente tenha criptografado vários textos simples legítimos. Diz que o remetente encriptou a mensagem “ Lord como estás ” sob a chave k que não é conhecida do agressor e diz que ela novamente criptografa a mensagem “ Ravana está me torturando ” e comunica o texto cifrado, e novamente ela tem criptografado a mensagem “ Por favor, venha me resgatar ” e o texto cifrado é comunicado sobre o canal e imagine que há um adversário malicioso ou um adversário ativo, certo, quem tem eaveslargou toda essa comunicação criptografada. Então, o adversário aqui não sabe o que exatamente são as mensagens subjacentes, certo, que foram criptografadas e também não sabe o valor da chave, mas tem acesso apenas ao texto cifrado legítimo que foram computados e comunicados pelo remetente ao receptor. (Consulte O Tempo De Deslizamento: 15:16) Agora, se dissermos que nossos processos de criptografia tem integridade de texto cifrado, então não deve ser possível que este adversário malicioso injete agora um novo texto cifrado ou um bit string digamos c, que não foi comunicado pelo remetente, mas agora o que este adversário está tentando fazer é este adversário está tentando enviar este texto cifrado em nome do remetente tal que o texto cifrado ao ser decriptado na extremidade de recebimento, corresponde a um texto simples que nunca foi comunicado pelo remetente. Por isso, o objetivo da integridade do texto cifrado é evitar que um adversário faça isso. A saber, não deve ser possível que um adversário veja vários textos cifrados legítimos das sessões passadas e com base nisso mesmo sem saber a chave, não deve ser possível que o atacante venha com um novo texto cifrado em nome do remetente e comunique-o ao receptor tal que em um novo texto cifrado se decriptografe legitimamente na extremidade receptora. Então, é isso que queremos evitar para garantir que o nosso processo de criptografia tenha integridade de texto cifrado e esse requisito que eu demonstrei aqui pictorialmente pode ser formalizado via jogo de resposta desafio. (Consulte O Tempo De Deslizamento: 16:31) Então, vejamos o experimento de integridade do texto cifrado. Então, informalmente, o objetivo aqui é que o adversário não deve ser capaz de forjar um texto cifrado para uma nova mensagem baseada nas criptografias de mensagens antigas. Então nós modelamos esse requisito por esse experimento, que chamamos como Enc − Forge n brincou entre um adversário computacionalmente delimitado e um verificador ou um experimento e temos uma fase de treinamento aqui e temos uma fase de saída aqui. Por isso, na fase de formação, damos ao adversário uma chance de se formarmos, a saber, permitimos que o adversário peça interrupções de várias mensagens de sua escolha conforme o algoritmo de criptografia do esquema Π. Assim, ele adapta adaptivamente um conjunto de consultas de criptografia, m1, m2, mq e para responder a estas consultas, experimento executa o algoritmo de geração de chaves e obtém uma chave uniformemente aleatória. Então desculpe o typo aqui, este Key-Gen realmente deve ser apenas algoritmo Gen porque estou denotando o algoritmo de geração de chaves do esquema por Π como Gen. Assim desculpe o typo, ele não deve ser chave e deve ser apenas Gen. Assim como per o algoritmo de geração de chaves, o experimento obtém uma chave e ele responde à consulta que havia sido enviada pelo adversário criptografando todas essas mensagens sob esta chave conforme o algoritmo de criptografia. Agora o desafio para o adversário é forjar um texto cifrado ou um novo texto cifrado. Então, basicamente o objetivo do adversário é chegar a um texto cifrado c e as regras do experimento são as seguintes. Dizemos que o adversário ganhou o experimento ou a saída do experimento é de 1 se as 2 condições seguintes se mantiver. A primeira condição é que a decriptografia do texto cifrado c deva ser algum valor a partir do espaço de texto simples e não o bot de símbolo especial e não apenas que sobre a decriptografia qualquer que seja a mensagem que obtemos, ela não deve pertencer ao conjunto de consultas para as quais o adversário já viu o texto cifrado. Então, o que exatamente queremos dizer aqui é que o que exatamente estamos tentando modelar para essa experiência é lembrar o cenário que discutimos entre o remetente e o receptor. Lá o objetivo do adversário era ver vários textos cifrados que foram legitimamente computados e comunicados pelo remetente ao receptor, e com base em que o objetivo do adversário era chegar a um novo texto cifrado c que quando decriptografado lhe dá um texto simples que nunca foi comunicado e criptografado pelo remetente e enviado ao receptor que exatamente é o que estamos tentando captar por meio deste experimento. Então, essa consulta é para a qual o adversário ficou com a criptografia. Corresponde às inscrições anteriores ou ao texto cifrado que o adversário já viu, e com base nisso, o objetivo do adversário ’ é apresentar uma falsificação, a saber, um novo texto cifrado, que quando decriptografado dá a você um texto simples que não pertence ao conjunto de consultas Q. Então, agora, você pode estar se perguntando que por que estamos colocando essa restrição que decriptografou texto simples que obtemos após decriptografar este c não deve pertencer a este conjunto de consultas Q. Se não colocarmos essa restrição, então há uma estratégia muito simples para o adversário vencer o jogo. A saber, pode configurar c para ser qualquer um dos valores de ci que ele tenha visto como resposta às consultas que ele pediu a partir do experimento e que pode ser considerado como algum tipo de ataque de replay em que o adversário está simplesmente retocando ou apenas inserindo um texto cifrado que já foi legitimamente comunicado pelo remetente ao receptor, mas reproduzir ataque não é o que queremos impedir através da propriedade de integridade do texto cifrado. Estes ataques de replay, são tomados cuidados através de diferentes mecanismos que são nós não vamos discutir aqui. O objetivo da integridade do texto cifrado é evitar que um adversário forja um novo texto cifrado, que nunca foi comunicado pelo remetente ao receptor e é por isso que a definição exigida ou a forma como estamos definindo que o adversário ganhou o jogo é o seguinte. Em primeiro lugar, o texto cifrado forjado deve devolver a você uma saída legítima e não apenas que a saída legítima deve ser diferente do conjunto de consultas para as quais o adversário tem o serviço de oracle de criptografia. Agora, a definição formal é dizemos que um processo de criptografia tem propriedade de integridade de texto cifrado se para cada adversário de poli-tempo participante desse experimento, a probabilidade de que ele possa forjar um novo texto cifrado é superior delimitado por alguma função insignificante. Ressalto que não podemos colocar uma condição de que nesta definição a probabilidade de falsificação deva ser de 0 porque sempre há uma estratégia de adivinhação pelo adversário onde ela pode apenas adivinhar um valor de candidato c. Pode-se dizer que com a probabilidade nula de que o adivinhação c de fato é um texto cifrado legítimo e decrito para um tempo de texto simples m que não é pertencente ao conjunto de consultas Q, mas o que queremos de um processo de criptografia é que é o melhor que um adversário pode fazer e se alcançarmos isso, dizemos então que nosso processo de criptografia possui propriedade de integridade de texto cifrado. (Consulte O Slide Time: 21 :43) Então, agora vamos ver quais são exatamente as consequências de um esquema de criptografia autenticado? Por isso, lembre-se do nosso objetivo é converter um canal aberto público entre um emissor e um receptor em um canal seguro virtual e sua criptografia autenticada exatamente alcança isso. Ou seja, se o remetente criptografar seu texto simples usando um esquema de criptografia autenticado, então ela lhe dá o efeito como se ela estivesse falando com o receptor sobre um canal seguro virtual. Por que isso ocorre porque a propriedade de privacidade ou a privacidade de uma comunicação é alcanada devido ao fato de que sua criptografia autenticada possui CCA-segurança e a autenticidade e a integridade de nossa comunicação são asseguradas pela propriedade de integridade do texto cifrado. Isto porque se em todo qualquer texto cifrado for decriptografado legitimamente na extremidade de recebimento, então o receptor tem certeza de que com muito alta probabilidade ele de fato teve origem no remetente designado porque o receptor vai decriptografar o texto cifrado usando a chave k e apenas um remetente designado tem a mesma chave k. Portanto, se em todo, o texto cifrado recebido pelo receptor foi decriptado legitimamente e não dá saída bot, então a partir da propriedade de integridade do texto cifrado, segue-se que realmente aquele texto cifrado não foi inserido por um adversário. Ele de fato foi comunicado pelo remetente e ele não foi adulterado e a mesma garantia é dada mesmo que um receptor esteja criptografando alguma mensagem conforme o esquema de criptografia autenticado usando a chave compartilhada com o remetente. Se o texto cifrado decrito de volta legitimamente no final do remetente ’, então ele dá ao remetente a garantia de que realmente o texto cifrado veio de um receptor que tem a mesma chave k com a qual o remetente decriptografou o texto cifrado. Então agora você pode ver que de fato a criptografia autenticada é a noção correta de segurança se você deseja alcançar todas as 3 propriedades juntas, a saber, privacidade, autenticidade e integridade. (Consulte O Tempo De Deslizamento: 23:48) Então, agora vamos ver a relação entre criptografia autenticada e CCA-segurança. Acontece que a criptografia autenticada é uma noção mais poderosa do que a segurança CCA-segurança.   Então isso significa, esse esquema Π também deve ser CCA seguro. Se não, então sabemos como construir um adversário que pode distinguir o comportamento de uma permutação verdadeiramente aleatória a partir do comportamento de uma permutação pseudorandom chaveada, mas que vai contradizer nossa suposição de que a função Fk é uma forte permutação pseudorandom. Então, eu estou deixando essas reduções formais e os detalhes como um exercício para você que é direto e você deve ser capaz de fazer isso. Então isso me leva até o final desta palestra. Só para resumir, nesta palestra introduzimos a noção de criptografia autenticada e que é o nosso máximo ou o padrão ouro para o esquema de criptografia simétrica porque se temos um esquema de criptografia autenticado, então usando este esquema de criptografia autenticado, emissor e receptor podem converter um canal aberto publicamente em um canal seguro virtual e realizar uma comunicação segura que alcançará todos os 3 objetivos de comunicação segura, a saber, privacidade, integridade e autenticação. Obrigado.