Loading
Nota de Estudos
Study Reminders
Support
Text Version

Criptografia De Chave Simétrica

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 (Former) Infosys Foundation Career Development Chair Indian Institute of Technology-Bengaluru Lecture-02 Simétrica Key Encryption Hello todos, bem-vindos à segunda palestra. O plano para esta palestra é o seguinte. (Consulte O Tempo De Deslizamento: 00:36) Vamos discutir os problemas fundamentais abordados pela criptografia, a saber, o problema de acordo chave e um problema de comunicação segura. Em seguida, discutiremos os vários tipos de primitivas criptográficas a saber, os primitivos simétricos e primitivos assimétricos. E então iniciaremos nossa discussão sobre primitivas de chave simétrica onde veremos a sintaxe do mecanismo de criptografia simétrica e definição de segurança informal e então terminaremos a palestra com o princípio Kerckhoffs ’. Direito! (Consulte O Tempo De Deslizamento: 01 :05) Então, se você se lembrar na última palestra discutimos que o problema central abordado pela criptografia é o da comunicação segura. E nele acontece que a comunicação segura é realmente resolvida pela resolução de 2 problemas centrais e o primeiro problema central é o de acordo chave. Por isso, no problema do acordo chave, o cenário é o seguinte. Temos 2 entidades um remetente e o receptor que não se conhecem e que não possuem qualquer tipo de informação pré-compartilhada. E estão reunidos pela primeira vez e a exigência de protocolo de acordo chave é que quanto ao protocolo o remetente e o receptor devem conversar uns com os outros sobre um canal público e deve ser garantido ao remetente que de fato está falando com o receptor Ram e vice-versa. E no final do protocolo tanto o remetente quanto o receptor devem saída uma chave comum k. O requisito de segurança do protocolo de acordo chave é que apesar de o emissor e o receptor estarem falando publicamente e se houver um terceiro que esteja realmente eavesdeixando a comunicação ou notando por baixo toda a comunicação que está acontecendo entre o emissor e o receptor, então o terceiro não deve ser capaz de descobrir qual é exatamente a chave que remetente e receptor vão para a saída no final do protocolo. Então, é como dizer o seguinte que se eu considerar uma classe e o protocolo de acordo chave deveria exigir que se eu quiser concordar sobre uma chave com um determinado aluno, então usando o protocolo de acordo chave, eu deveria gritar algo na classe. E em resposta aquele aluno em particular deveria re gritar de volta algo para mim e usando o que eu me comunicava, ambos deveríamos ser capazes de computar uma chave comum e ninguém mais na classe que realmente viram as mensagens reais que eu comuni a esse aluno em particular e que aluno me comunicou não deve ser capaz de descobrir o que exatamente é a chave que eu mesmo e aquele aluno particular vamos à produção. Esse é o primeiro problema central abordado pela criptografia. E este será o tema da segunda metade do curso, onde veremos como usar a criptografia de chave pública que podemos resolver este problema de acordo chave. (Consulte O Tempo De Deslizamento: 03:19) O segundo problema principal que é abordado pela criptografia é o da comunicação segura. E aqui a configuração é a seguinte. Nós imaginamos que o emissor e o receptor agora têm uma chave secreta k que foi acordada por algum méto mágico neste contexto, na verdade, executando um protocolo de troca de chave. Por isso, imaginamos que remetente e receptor executaram um protocolo de troca de chave segura, e como resultado, eles têm uma chave comum já disponível com eles. Agora usando a chave comum, o objetivo do remetente e do receptor é falar sobre um canal público de tal forma que seja assegurada a confidencialidade da comunicação e da integridade da comunicação. Por confidencialidade quero dizer que qualquer terceiro que não tenha o conhecimento da chave não deve ser capaz de descobrir o que exatamente são os conteúdos, que remetente e receptor estão trocando um pelo outro. E por integridade, quero dizer que se houver um terceiro que realmente intercepte algum da comunicação e tente mudar o conteúdo das mensagens, então ele deve ser detectável nos dois fins. Portanto, esse é o segundo problema abordado pela criptografia e este será o tema da primeira metade do curso, a saber, a criptografia simétrica, em que assumiremos que de alguma forma o emissor e o receptor já concordaram sobre a chave e o nosso objetivo será resolver os problemas de confidencialidade e integridade. (Consulte O Tempo De Deslizamento: 04:39) Então, grosso modo em criptografia, usamos 2 tipos de primitivas. O primeiro tipo de primitivas são as primitivas de chave simétrica, que também são chamadas de primitivas de chave privada. E aqui a mesma chave vai ser usada tanto pelo remetente como também pelo receptor. É por isso que o nome simétrica chave primitivas ou criptografias de chave privada. Simétrica porque é simétrica na natureza. A mesma chave está se acostumando tanto com os senadores terminam e assim como os receptores terminam. E o nome private key cryptography porque a chave k que é comum tanto para o emissor quanto para o receptor vai ser privada, não estaria disponível no domínio público. Agora, há os dois prós e contras desses tipos de primitivos. O lado bom desses primitivos é que eles são computacionalmente muito eficientes na prática. E o lado negativo dessas primitivas é que o acorto-chave vai ser uma grande questão. Que isso todos esses primitivos funciona sob a suposição de que a chave comum já foi acordada por algum mecanismo mágico, e que é uma grande assunção. Por isso, garantir que tanto o remetente quanto o receptor tenham a mesma chave é a tarefa desafiadora. Isso é um lado negativo desses primitivos. O segundo tipo de primitivas são chamadas como primitivas assimétricas ou primitivas de criptografia de chave pública onde o primitivo é operado com 2 teclas. Uma das chaves que é o público a chave estará disponível no domínio público enquanto que a outra chave, a saber, a chave secreta estará disponível apenas para uma das entidades ou no contexto do esquema de criptografia, estará disponível apenas com o receptor. Isso significa que isso tem a natureza assimetria. É por isso que o nome é primitivo de chave assimétrica. E a razão pela qual é chamada de primitiva-chave pública é que uma das chaves está disponível em domínio público. Novamente, tem esses tipos de primitivos têm ambos mais tão bem quanto o lado negativo. O lado bom sobre esses primitivos é que você não precisa de nenhum tipo de acordo chave. Isso significa que se eu pegar um esquema de criptografia pública por exemplo, então não há exigência de fazer qualquer tipo de acordo chave. Quem quiser criptografar uma mensagem para mim, pode levar a minha chave pública que estará disponível no domínio público. Por isso, não preciso de concordar explicitamente sobre uma chave com aquele remetente em particular. O lado negativo desse tipo de primitivas é que eles são computacionalmente ineficientes que significa a quantidade de computação que estão envolvidos nesse tipo de primitivo é de várias ordens de grandeza em comparação com o cálculo exigido nos primitivos simétricos. Na prática, usamos uma combinação de ambos. Assim, quando estaremos sinuando o nosso curso e estaremos discutindo os verdadeiros protocolos mundiais como o SSL, veremos que como combinamos ambos esses 2 primitivos para obter o melhor dos dois mundos. (Consulte O Slide Time: 07 :19) Então agora vamos iniciar nossa discussão sobre chave privada ou esquemas de criptografia simétrica. Por isso, em um nível muito alto, o objetivo é seguir. A configuração é a seguinte, temos um emissor e o receptor e por algum mecanismo mágico, supomos que uma chave aleatória tenha sido compartilhada acordada entre o remetente e o receptor. Então eu denoco a chave como k que na verdade vai ser um pouco string. Agora o remetente está interessado em enviar alguma mensagem m, que volta a ser um pouco string, e no jargão da criptografia, chamamos essa cadeia m de ser o texto à parte. Agora usando a chave, o remetente vai usar um algoritmo de criptografia, que leva a mensagem e a chave como entrada. E produz outro bit string denotado como C, que é o texto cifrado ou o texto de scramble, que vai ser comunicado sobre um canal público para o receptor. Na extremidade de recebimento, o receptor vai levar o texto cifrado que é uma sequência de bits, e a chave que é a mesma chave com a qual o remetente operou o processo de criptografia e ele vai operar um algoritmo de decriptografia. Agora assim o algoritmo de decriptografia vai levar o texto do scramble e a chave e ele vai para a saída do texto simples qual remetente realmente criptografou usando o algoritmo de criptografia. Então a razão pela qual esse mecanismo de criptografia é chamado de mecanismo de criptografia simétrica é que temos uma simetria que a mesma chave está sendo usada tanto para a criptografia como também para a decriptografia. (Consulte O Slide Time: 08 :51) Então antes de entrar na descrição formal de um processo de criptografia de chave simétrica, vamos primeiro tentar entender a diferença entre o algoritmo determinístico e um randomizado. Em um algoritmo determinístico, a saída é uma função determinística da entrada. Isso significa que, se considerarmos a transição reta dentro do algoritmo, então o fluxo da entrada para a saída é sempre uma função determinística. O que eu quero dizer com isso é, se eu executar um algoritmo determinístico em uma entrada x 100 vezes, eu vou obter a mesma saída y 100 vezes. Eu não obteria uma saída diferente que significa que a saída Y é uma função determinística da entrada x. Considerando que em um algoritmo randomizado, o fluxo da entrada para a saída é não determinístico. E o fluxo vai ser decidido pelo valor de sequências aleatórias de bits que vão ser geradas dentro do algoritmo, como parte do algoritmo. Isso significa que, em um algoritmo randomizado, não é garantido que se eu chamar esse algoritmo com a mesma entrada de novo e de novo, não é garantido que eu vou obter a mesma saída. A saída pode depender da sequência de bits aleatórios, o que eu vou gerar dentro do algoritmo. E dependendo do valor desses bits aleatórios, qual caminho eu segui dentro do algoritmo. Portanto, essa é uma diferença muito de alto nível entre um algoritmo determinístico e um algoritmo randomizado. (Consulte O Tempo De Deslizamento: 10 :17) Agora, vejamos a sintaxe de um esquema de criptografia simétrica. Então, qualquer esquema de criptografia de chave simétrica, que também é chamado como uma cifra vai consistir em 3 algoritmos. O primeiro algoritmo é o algoritmo de geração de chaves, que é denotado pelo Gen. Este algoritmo não vai levar nenhuma entrada externa. O que este algoritmo vai fazer é como parte do algoritmo dentro haverá algumas sequências de bits aleatórias que vão ser geradas, o que eu denoco por esta notação particular. Quando escrevo esta notação que alguém está a tostar a moeda, quero dizer que dentro do algoritmo, sequências de bits aleatórias vão ser geradas e com base no valor dessa cadeia de bits, essa saída vai ser determinada. A saída deste algoritmo de geração de chaves é uma chave indicada pelo símbolo k. E como se trata de um algoritmo randomizado, toda vez que eu executar o algoritmo de geração de chaves, estou obrigado a obter uma saída diferente, eu não obteria a mesma saída. A sintaxe que usamos para denotar o algoritmo de geração de chaves é a seguinte. Dizemos que o algoritmo de geração de chaves Gen, ele não leva nenhuma entrada. Então, é por isso que os suportes são deixados vazios porque ele não leva nenhuma entrada externa. E vai à saída uma chave que eu denote por k. E este k pertence a um conjunto maior, este k calligráfico, que é o conjunto de todas as chaves possíveis que é algoritmo de geração de chave pode saída. E o importante aqui é que como este algoritmo é um algoritmo randomizado, é por isso que eu não digo que a saída de Gen atribuiu uma chave de valor, em vez disso eu digo que a saída de Gen vai tirar um do valor possível k do conjunto de todas as chaves possíveis. Não estou usando o operador de designação porque não é uma função determinística. Trata-se de uma função randomizada é um algoritmo randomizado. Portanto, aqui este calligráfico K (a capital K) é o conjunto de todas as chaves possíveis que o algoritmo de geração de chaves poderia saída. Por exemplo, se sabemos que o algoritmo de geração de chaves vai a saída de uma chave de 256 bit, então eu sei que este calligráfico K é o conjunto de todas as possíveis 256 bit strings, a saber, o espaço chave K é de 2 para o poder a 256. E como eu disse anteriormente, esse algoritmo de geração de chaves vai ser um algoritmo randomizado. O segundo algoritmo em qualquer esquema de criptografia de chave simétrica é o algoritmo de criptografia denotado como Enc. E vai levar 2 entradas externas a saber, o texto simples que o remetente quer criptografar, que é uma sequência de bits que eu denotei pelo símbolo B, e a chave k, que o algoritmo de geração de chaves teria saída. E, além desses 2 insumos, ele tem uma entrada interna a saber, as moedas aleatórias internas, que são geradas ou os bits aleatórios que são gerados como parte deste processo de criptografia. E como resultado, esse algoritmo de criptografia é um algoritmo randomizado. Assim, com base na mensagem, no espaço chave e nos bits aleatórios que são gerados dentro do algoritmo de criptografia, o algoritmo de criptografia vai à saída de um texto cifrado indicado como c. Então, como eu disse que, uma vez que o algoritmo de criptografia poderia gerar bits aleatórios internos para decidir o resultado c, ele é um algoritmo randomizado. E a sintaxe que usamos para denotar o algoritmo de criptografia é a seguinte: dizemos que a criptografia do texto simples m (dentro dos suportes eu estou escrevendo a mensagem m como a entrada) é a entrada externa com esta função de criptografia e a chave k é colocada como uma subscrição. Eu direi que a mensagem m é criptografada sob a chave k. E como este algoritmo é um algoritmo randomizado, não estou usando o operador de designações para denotar a saída deste algoritmos de criptografia Em vez disso, estou dizendo que a saída deste algoritmo de criptografia vai ser um dos possíveis cifrados do conjunto de todo o texto cifrado possível que seu algoritmo de criptografia poderia produzir. Como esse processo de criptografia é um algoritmo randomizado, o que significa é que mesmo que eu chame esse processo de criptografia com o mesmo valor de m e o mesmo valor de k várias vezes, eu vou obter um texto cifrado diferente porque toda vez que chamo esse processo de criptografia, o conjunto de strings aleatórias de bits que são gerados como parte do algoritmo será diferente. E já que c vai ser uma função da mensagem, chave e os bits aleatórios internos, valor de c será diferente para diferentes invocações de c. Portanto, essa é a sintaxe do algoritmo de criptografia. Agora, o algoritmo de decriptografia leva o texto cifrado c como a entrada externa e a chave k que foi gerada pelo algoritmo de geração de chaves, em troca ele produz o texto plaintexto m. A sintaxe que sigo para denotar o algoritmo de decriptografia é a seguinte: dizemos que decriptografia da entrada c so aqui c é a entrada externa, que é alimentada para a função de decriptografia junto com a chave k. Direi que a decriptografia do texto cifrado c sob a chave k vai produzindo a mensagem m. A mensagem m pertence ao maior conjunto de possíveis pleiteantes a saber M, que é o espaço de texto simples. Percebem que meu algoritmo de decriptografia aqui é uma função determinística. Não há sequências aleatórias de bits que são geradas dentro do algoritmo de decriptografia para decidir o resultado m. Como resultado disso, eu não estou usando a notação de seta para denotar o resultado da decriptografia. Em vez disso, estou usando o operador de designação para denotar o resultado da função de decriptografia. O que eu quero dizer com isso é se eu chamar o algoritmo de decriptografia várias vezes com o mesmo valor de k e o mesmo valor de c, eu sou obrigado a obter o mesmo m de novo e de novo, eu não ficaria diferente m para as diferentes invocações de Deck sobre o mesmo valor de c e k. Nesse sentido, é uma função determinística. Como resultado, utilizamos o operador de designação para denotar a saída da função Dec. Sendo assim, essa é a sintaxe de seu algoritmo de geração de chaves, algoritmo de criptografia e algoritmo de decriptografia. Percebem que exigimos que o algoritmo de geração de chaves e algoritmo de criptografia seja randomizado enquanto que o algoritmo de Dec deve ser determinista, e há uma razão para isso, que poderemos apreciar quando discutirmos os vários modelos de ataque nesta palestra. (Consulte O Tempo De Deslizamento: 17 :09) Agora como tipicamente usar uma cifra simétrica. Imagine que temos um esquema de criptografia de chave simétrica. A saber, temos uma coleção de algoritmo de geração de chaves, algoritmo de criptografia e algoritmo de decriptografia. E supomos que as etapas desta geração de chave, criptografia e algoritmos de descriptografia são publicamente conhecidas. Isso significa que os passos são conhecidos até mesmo para o remetente e o receptor ou para qualquer terceiro neste mundo. Agora, para usar essa cifra simétrica, o que o remetente vai fazer é, vai rodar o algoritmo de geração de chaves, que vai à saída de uma das chaves candidatas a saber, a partir do espaço chave. Esta chave será acordada com o receptor por algum mecanismo mágico no início da sessão. Por isso, imaginamos que no início do emissor de sessão execute esse algoritmo de geração de chaves. Nessa sessão há várias mensagens, que remetente gostaria de criptografar e comunicar ao receptor usando este k. A primeira etapa da sessão será o algoritmo de geração de chaves e o acordo dessa chave com o receptor por algum mecanismo mágico. Agora uma vez que a chave é acordada, toda vez que o remetente quiser criptografar um texto simples m usando esta chave o que vai acontecer é o seguinte, ele vai executar o algoritmo de criptografia para produzir o texto cifrado. O texto cifrado será comunicado sobre o canal público, através do qual o remetente é comunicado ao receptor. Como e quando o receptor recebe o texto cifrado o que ele vai fazer é receptor será saber qual processo de criptografia foi utilizado pelo remetente. Assim, conhecerá o processo de decriptografia correspondente e não apenas isso, também saberá a chave usando qual o remetente operou o processo de criptografia. Usando a mesma chave, ele irá operar o processo de decriptografia e irá recuperar o texto simples. É assim que tipicamente vamos usar um processo de criptografia de chave simétrica. (Consulte O Slide Time: 18:57) Agora quais são as propriedades que precisamos de qualquer esquema de criptografia segura ou um esquema de criptografia de chave simétrica segura. Aproximadamente precisamos de 2 propriedades. A primeira propriedade é a propriedade de correção, que diz que, para qualquer chave k que o algoritmo de geração de chaves tenha saída e para qualquer texto simples m que tenha sido criptografado pela Enc, a seguinte condição deve se manter. Se eu criptografar um texto simples m sob a chave k para obter um texto cifrado c e se eu decriptografar esse texto cifrado c usando o processo de decriptografia sob a mesma chave k, eu deveria voltar o m original. Esse é o imóvel de correção. Para dar o analógico se você tem um bloqueio físico, e se eu tiver 2 cópias da chave, o que essa demanda de propriedade de correção é que se eu realmente bloquear essa chave usando a chave e enviar esse bloqueio na condição de bloqueio para você. Em seguida, se você tiver também a mesma chave e se tentar abrir esse bloqueio na posição de bloqueio usando a chave que também possui, você deverá ser capaz de abrir o bloqueio da condição de bloqueio à condição de aberto. Essa é aproximadamente a analogia que você pode imaginar a partir deste requisito de correção. A segunda propriedade importante que precisamos ou esperamos de um processo de criptografia simétrica segura é a da privacidade. E agora vamos ver que quais são os desafios que enfrentamos ao tentarmos formalizar a exigência de privacidade. Intuitivamente, quando dizemos que um processo de criptografia de chave simétrica é seguro, ou ele alcança um imóvel de privacidade, quer dizer, que ao ver o texto cifrado c o adversário ou o sujeito ruim que observou o texto cifrado c não deve ser capaz de computar nada sobre a mensagem m. Isso significa imaginar que há um terceiro que é o bandido que tem interceptado o texto cifrado que sabe os detalhes do processo de geração de chaves, o processo de criptografia e o processo de descriptografia. A única coisa que o mau cara não sabe é o valor de chave com que o remetente operou o processo de criptografia. A propriedade de privacidade exige informalmente, que mesmo após esse conhecimento de texto cifrado, não deve dar qualquer informação sobre a mensagem m. (Consulte O Slide Time: 21:11) No entanto, verifica-se que se quisermos formalizar a definição de privacidade, há vários desafios que enfrentamos. Então o que eu vou fazer a seguir é que vou propor uma série de definições para formalizar a condição de privacidade. E então veremos uma brecha em potencial em cada uma dessas definições potenciais, que vai mostrar a você que o quão difícil é de fato chegar a uma definição certa de privacidade.A minha primeira definição de candidato para formalizar a definição de privacidade é a seguinte. Eu direi que um processo de criptografia é seguro se o texto cifrado não revelar a chave subjacente. A intuição por trás dessa definição é que a se a chave for revelada ao adversário, então ela poderá descobrir qualquer mensagem subsequente que tenha sido criptografada sob essa chave. O requisito mínimo que eu necessito de qualquer esquema de criptografia privada é que ele o texto cifrado não deve revelar a chave subjacente. Bem acontece que o requisito é definitivamente significativo a partir de qualquer processo de criptografia segura. Mas esta definição é completamente inútil. Por exemplo, considere um algoritmo de criptografia, que sempre supera um texto cifrado, o que é o mesmo que o texto simples, isso significa que o texto cifrado não depende da chave em nada. E o valor do texto cifrado é o mesmo do texto simples. Se você vir essa definição, e esse processo de criptografia de candidato, definitivamente o processo de criptografia não está revelando nada sobre a chave. Conforme esta definição, você pode rotular esse algoritmo de criptografia como um algoritmo de criptografia seguro. Mas esse tipo de algoritmo de criptografia é completamente inútil para usar na prática porque ele é completamente revelador do seu texto simples. Por isso, agora vamos retificar esta definição. E deixe-me chegar com a segunda definição de candidato para formalizar a definição de privacidade. Minha definição 2 é: Eu direi que um processo de criptografia é seguro se o texto cifrado não revelar nada sobre o texto à plaina subjacente, pois é isso que é a intuição básica da privacidade. O problema com esse tipo de definição é o que você quer dizer com texto cifrado não revela o queixo subjacente? Quanto deve revelar, o quanto ele não deve revelar? Por exemplo, você pode ter um processo de criptografia, onde 99% do texto simples não é revelado pelo texto cifrado. Mas infelizmente, o texto cifrado pode estar revelando 1% do texto simples e que 1% do texto simples que está sendo vazado pelo texto cifrado pode ser a informação crítica que se quer esconder. Novamente, essa definição e esse processo de criptografia de candidato pode parecer satisfazer a definição 2 mas na verdade tal tipo de algoritmo de criptografia eu não posso usar na prática. O problema com esta definição é eu não estou exatamente especificando o que significa revelando e não revelador e o quanto revelar e quanto não revelar. (Consulte O Tempo De Deslizamento: 24 :05) Então, para corrigir esta definição, deixe-me propor a terceira definição potencial para formalizar a definição de privacidade. A definição 3 diz que um processo de criptografia será considerado seguro se o texto cifrado não revelar qualquer caráter da plaina subjacente. Assim, isso vai cuidar do bug potencial que estava lá na nossa definição 2 ou do esquema de criptografia de candidato que propusemos violar a definição 2. Porque agora, mesmo que 1% seja revelado, ele não vai satisfazer a definição 3. Mas, novamente, há uma brecha em potencial nesta definição. Considere um algoritmo de criptografia onde o texto cifrado de fato não revela nenhum dos caracteres subjacentes do texto simples. Mas um texto cifrado pode revelar o alcance do texto simples, a saber, pode revelar se o texto simples é inferior a um determinado limite ou se é maior do que um determinado limite. Novamente, se eu visualizar a definição, esse esquema de criptografia de candidato de fato satisfaz o imóvel porque nenhum caractere da plaina subjacente é revelado. Mas o que está se revelando é se o pleiteante é menor do que um determinado valor ou maior que um determinado valor. E isso mesmo pode ser uma brecha de segurança. Por isso, não posso me dar ao luxo de usar tal tipo de algoritmo de criptografia para criptografar dados sigilantes. Porque se o texto cifrado vai revelar o alcance dos dados sensíveis, eu posso estar com problemas. Por isso, vamos tentar corrigir esse problema potencial na definição 4 e a definição 4 diz que um processo de criptografia será considerado como seguro se o texto cifrado não revelar nenhuma informação significativa sobre o texto à plaina subjacente. Isso significa que ele deve ocultar não apenas o texto simples subjacente, ele também deve esconder se a mensagem é menor do que um determinado valor maior que um determinado valor e assim por diante. Bem, intuitivamente esta definição é boa. Mas o problema aqui é o que exatamente constitui uma informação significativa varia de aplicativo para aplicação. Para certa aplicação, os caracteres subjacentes do texto simples podem ser as informações sensíveis, para outro aplicativo se a mensagem é menor do que um determinado valor ou maior que determinado valor que pode ser a informação significativa, etc. Não é possível listar exaustivamente sobre o que constitui uma informação significativa para uma determinada aplicação. Esse é um lado negativo desta definição. Então, isso é como um resultado, não posso tomá-lo como uma definição significativa de privacidade. (Consulte O Tempo De Deslizamento: 26:25) Então, para corrigir esse problema, vamos apresentar a próxima definição possível da privacidade. E esta definição diz que um processo de criptografia será chamado como seguro se o texto cifrado não ajudar o invasor a computar qualquer função do texto à plaina subjacente. Isso significa imaginar um atacante que tenha visto o texto cifrado quem sabe o processo de criptografia. E o atacante está interessado em computar alguma função, dizer F da mensagem subjacente que remetente realmente criptografou no texto cifrado. Vamos dizer que o processo de criptografia é seguro, se utilizando o conhecimento do texto cifrado, o adversário não é capaz de computar a função da mensagem subjacente. Bem, isto é precisamente o que esperamos de uma cifra segura. Mas ainda assim há certas brechas nesta definição. A saber, há 2 brechas. A primeira brecha é que como se formaliza se um determinado texto cifrado tem ajudado o adversário a chegar a uma função do texto simples subjacente ou não. Como você julga isso, como é que você matematicamente formaliza isso? Essa é a primeira brecha nesta definição. E a segunda brecha nesta definição é o que exatamente são as capacidades do adversário que você está considerando, que não é especificado nesta definição. Isso significa se você está considerando um adversário de eavesdropper que está simplesmente observando o texto cifrado e tentando computar uma função, ou se você está considerando um adversário ou adversário malicioso, que poderia alterar o conteúdo do texto cifrado e ver o comportamento da ou a outra resposta do receptor e, em seguida, tentar computar as funções das mensagens subjacentes. Também, esta definição não especifica é o adversário também fornecido com qualquer tipo de informação adicional que signifique, quais são as várias capacidades do adversário que você está considerando.   E se algo foi provado ser seguro, mesmo depois de eles estarem existentes por últimos 30-40 anos. Então temos uma forte confiança de que realmente, aqueles algoritmos publicados são mais seguros comparados a um algoritmo sobre o qual você não conhece nenhum detalhe. O resumo aqui é que é extremamente perigoso utilizar qualquer tipo de processo de criptografia proprietário. Então, se alguém disser isso, “ hey, eu não vou deixar a descrição do meu processo de criptografia, mas eu te dou a garantia de que ele te dá uma quantidade muito boa de segurança ”. Você não deve acreditar em tal processo de criptografia, porque você não sabe que tipo de brechas podem estar presentes em tal algoritmo. Por isso, é sempre recomendado ir ou utilizar algoritmos que tem disponível em domínio público e que foi escrutinado publicamente. Assim, isso nos traz o fim desta palestra. Para resumir, discutimos os vários tipos de primitivas criptográficas que utilizamos em criptografia. Discutimos também a sintaxe do processo de criptografia simétrica. Focamos na importância dos algoritmos de geração de chave e criptografia para serem randomizados, pois isso vem como uma implicação do princípio Kerckhoffs ’, que diz que o sigilo de todo o sistema deve contar com o fato de que apenas a chave está oculta não os algoritmos. Discutimos também os vários tipos de modelos de ataque, nomeadamente o modelo de ataque do COA, o modelo de ataque KPA, o ataque CPA, modelo e modelo de ataque CCA. Espero que tenha gostado da palestra! Obrigado.