Loading
Nota de Estudos
Study Reminders
Support
Text Version

Introdução à Cryptography

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 Professor International Institute of Information Technology-Bengaluru Lecture-01 Introdução So, olá todos, bem-vindos à primeira palestra sobre as fundações do curso de criptografia. (Consulte O Tempo De Deslizamento: 00:34) O plano para esta palestra é o seguinte. Discutiremos o que é criptografia, por que a criptografia é importante, quais são os objetivos da criptografia e veremos algumas das aplicações avançadas da criptografia. (Consulte O Tempo De Deslizamento: 00 :48) Assim, uma vez que o título do curso é fundamentos de criptografia, vamos primeiro tentar entender a importância da fundação forte. Por isso, se você ver esses 2 edifícios ou fotos desses 2 edifícios você pode facilmente entender que se você quer um longo edifício duradouro então forte fundamento é muito importante. (Consulte O Tempo De Deslizamento: 01:07) Então, por que a criptografia é importante. Por isso, a segurança é atualmente uma buzzword muito grande, todos estão falando de segurança que querem manter o seu sistema seguro. Por isso, a criptografia em um nível muito alto é a ciência de manter dados seguros de entidades indesejadas ou não confiáveis. E é altamente relevante no contexto atual da era digital onde as coisas estão a tornar-se digitais lentamente e lentamente. E como resultado, temos grande quantidade de dados flutuando em vários places.Então, se você considerar as primeiras 2 guerras mundiais, os papéis de físicos e químicos foram muito centrais. E prevê-se que se em todos houver uma terceira guerra mundial, então será uma guerra cibernética, onde o papel dos especialistas em segurança da informação será muito crucial. Por isso, a criptografia são as bases para a segurança da informação. E se você quer se tornar um bom especialista em segurança da informação, então é muito importante ter fortes alicerces para a criptografia. (Consulte O Tempo De Deslizamento: 02:07) Então, os objetivos do curso são os seguintes. Discutiremos os diversos paradigmas e princípios da criptografia moderna e o foco será sobre definições de segurança formal e construções de várias primitivas criptográficas. Por isso, algumas das primitivas criptográficas que discutiremos neste curso são criptografia e decriptografia, códigos de autenticação de mensagens, funções hash, assinaturas digitais, etc. Agora, para cada um desses primitivos de criptografia, seguiremos o processo de estágio 3 seguinte. Na primeira fase daremos uma definição de segurança formal precisa do primitivo subjacente que estamos interessados em construir. Uma vez que tenhamos a definição de segurança formal, seguiremos para dar uma construção algorítmica do primitivo requerido e finalmente, no estágio 3 daremos uma prova matemática rigorosa de que a construção algorítmica que conferimos no estágio 2 de fato satisfaz a definição formal que demos no estágio 1.So você pode comparar este processo de estágio de 3 com o exemplo a seguir. Se você quer construir uma casa, o que você primeiro fará é você chegar com uma arquitetura ásvida da casa, e terá o mapa da casa, que você dá para o seu engenheiro. Portanto, esse é um estágio 1. Uma vez que o mapa esteja pronto, durante o estágio 2 o engenheiro vai envolver alguns trabalhadores e alguns outros ajudantes usando quem ele vai chegar com o prédio. Isso é construção algorítmica. E no estágio 3 uma vez que o edifício esteja pronto, você de fato verificará que a construção que o engenheiro apresentou de fato satisfaz a arquitetura que você realmente especificou durante o estágio 1. Portanto, esse é um processo de 3 estágio rigoroso que vamos seguir neste curso para cada uma das primitivas criptográficas que discutiremos. (Consulte O Tempo De Deslizamento: 03:50) O resultado do curso esperado são os seguintes. Esperamos que no final dos participantes do curso consigam entender um ponto significativo de padrão de criptografia e papéis de pesquisa, esperamos que os participantes consigam uma sensação de como as várias primitivas criptográficas que discutiremos neste curso sejam integradas em alguns protocolos de comunicação seguros padrão como o SSL. Esperamos que os participantes estejam bem equipados para entender conceitos avançados de pesquisa de criptografia e primitivas. E em geral os participantes obterão uma melhor compreensão dos conceitos relacionados à segurança da rede, segurança da informação e segurança do computador em geral. (Consulte o Tempo do slide: 04:32) Assim, no que se refere ao curso syllabus, a sílaba tentadora é a seguinte. Aproximadamente o curso é dividido em 2 partes. A primeira parte vai discutir criptografia de chave simétrica, onde vamos discutir segurança perfeita, geradores aleatórios pseudo aleatórios, cifras de fluxo, funções pseudo aleatórias, cifras de blocos, códigos de autenticação de mensagens, funções hash e algumas das construções práticas de cifras de blocos como o DES e a AES. Na parte 2 estaremos discutindo sobre criptografia assimétrica e alguns dos tópicos que estaremos cobrindo na parte 2 são teoria do número, protocolo de troca de chave Diffie-Hellman, esquema de criptografia ElGamal, esquema de criptografia RSA e assinaturas digitais. (Consulte O Tempo De Deslizamento: 05 :16) Nós estaremos seguindo as seguintes referências neste curso. Assim, o curso será principalmente baseado no livro intitulado Introdução à Criptografia Moderna por Jonathan Katz e Yehuda Lindell. E este é realmente um dos textbook padrão que é amplamente seguido. E recomendo a todos que se interessam em aprender criptografia e fundações de criptografia para adquirir uma cópia pessoal deste livro. Você também pode seguir o livro Cryptography: Teoria e Prática por Douglas Stinson. Você também pode se referir ao livro do professor Nigel Smart intitulado Cryptography: An Introdução. A primeira versão deste livro de fato está disponível gratuitamente para download na homepage do autor e você pode ver o seguinte livro interessante: Um Graduate Course in Applied Cryptography by Dan Boneh e Victor Shoup, novamente, o rascunho deste livro está disponível gratuitamente para download. E você também pode se referir ao Manual de Criptografia Aplicada por Menezes et al, que novamente está disponível gratuitamente para download. Então, essas são algumas das referências importantes, que nós estaremos seguindo neste curso. É claro que, se você fizer a busca no Google, você pode vir com muitas outras referências importantes, que você pode seguir para os vários tópicos que vamos seguir neste curso. (Consulte O Tempo De Deslizamento: 06 :30) Voltando para a questão do que é a principal aplicação da criptografia. Então, o problema central que é abordado pela criptografia é o da comunicação segura. E o que quero dizer com comunicação segura é imaginar o seguinte cenário que você tem um remetente e um receptor que não se conhecem que estão reunidos pela primeira vez pela internet. Eles não compartilham nenhum tipo de informação pré-compartilhada. E eles estão conectados por um canal aberto público. Então, o principal objetivo da criptografia é, de alguma forma, converter esse canal aberto público conectando o remetente e o receptor em algum tipo de canal seguro virtual através do qual emissor e receptor podem fazer comunicação segura. E as 3 propriedades da comunicação segura são as seguintes. A primeira propriedade é a privacidade, o que garante que qualquer coisa que seja comunicada entre o remetente e o receptor sobre este canal seguro virtual será conhecida apenas pelo remetente e pelo receptor. A próxima propriedade da comunicação segura é a autenticidade que garante que qualquer mensagem ou qualquer pacote que venha para o remetente sobre este canal a partir do receptor, é confirmado que ele é de fato originário do receptor e não existe nenhum terceiro que tenha introduzido esses pacotes em nome do receptor e o encaminhou ao remetente e a mesma garantia será dada no final do receptor ’. E a terceira propriedade do canal seguro será propriedade de integridade, o que garantirá ao remetente e ao receptor que ninguém tenha adulterado o conteúdo dos pacotes que foram comunicados sobre o canal. Portanto, em um nível muito alto as primitivas criptográficas que estaremos discutindo neste curso lhe darão o efeito de converter esse canal público aberto em algum tipo de canal seguro virtual. E nenhum terceiro partido será capaz de identificar o que exatamente está fluindo por meio deste canal seguro. Essa é a principal aplicação da criptografia. (Consulte O Tempo De Deslizamento: 08:30) E que vamos discutir com rigor neste curso. Mas o que eu gostaria de percorrer nos próximos slides são algumas das aplicações avançadas de criptografia. A ideia principal é que eu quero dar a você um sentimento de que como a criptografia pode ser usada para resolver variedades de outros tipos de problemas do mundo real além do problema da comunicação segura. Por isso, o primeiro aplicativo avançado que eu gostaria de discutir é o de criptomoedas. Por isso, antes de entrar em criptomoedas, vamos entender as 2 propriedades importantes que estão satisfeitas pelo seu dinheiro físico ou moeda fiat. Por isso, as 2 propriedades são que previne gastos duplos. Isso significa que é impossível para você criar cópias xerox de uma nota física e gastá-la em vários locais. Então, esse é o duplo problema de gastos e dinheiro físico garante que de fato o gasto duplo não é possível. E a segunda propriedade do dinheiro físico é o anonimato. Isso significa que se eu estiver usando uma moeda física e gastá-la para alguma transação, agora a minha identidade será preservada. Mas porque ninguém será capaz de rastrear a minha identidade, quem está gastando essa moeda e assim por diante. Então, essa é a propriedade do anonimato. Por isso, a questão é que podemos ter uma versão digital correspondente do dinheiro físico. E quando eu digo a versão digital, o que eu quero dizer é que agora um pouco string vai agir como uma moeda e usando essa sequência de bits, eu deveria ser capaz de fazer transações em qualquer site mercante. E quando eu faço uma transação em qualquer site mercante, e tente gastar essa string binária como moeda, a propriedade do anonimato deve ser alcanada que significa que o comerciante não deve ser capaz de identificar o dono desta tão chamada cadeia binária ou moeda digital. E a segunda propriedade que eu gostaria de alcançar a partir da versão digital correspondente da moeda não é um gasto duplo, isso significa que deve ser difícil para mim criar várias cópias dessa sequência binária e gastar aquelas cópias da cadeia binária simultaneamente em vários locais. Curiosamente, eu gostaria de alcançar ambas as 2 propriedades na ausência de qualquer agência centralizada. Isso significa que eu quero que o sistema todo funcione mesmo na ausência de qualquer tipo de agência centralizada. E como você pode ver, se não existe uma agência centralizada que esteja realmente monitorando quem está gastando qual cadeia binária em qual local, parece que problema de anonimato e um problema sem gastos duplos, são como dois objetivos conflitantes. Mas se você ver as criptomoedas recentes como o bitcoin, é possível alcançar ambos esses dois requisitos simultaneamente. Portanto, isso é como uma aplicação avançada de criptografia onde o objetivo é algo muito, muito mais desafiador do que o que é exigido do problema da comunicação segura. (Consulte O Tempo De Deslizamento: 11 :18) Vamos ver a segunda aplicação avançada de criptografia. E isso é algo que chamamos como impedindo o ponto único de fracasso. Por isso, acontece que em muitas aplicações mundiais reais, informações sensíveis são armazenadas em um único lugar. E por informações sensíveis, quero dizer, digamos, exemplo, sua chave de criptografia ou sua chave de assinatura. Assim, se as informações sensíveis ou a credencial estiver armazenada em um único lugar então fica relativamente mais fácil para um adversário comprometer aquele lugar único onde as informações sensíveis são armazenadas, e como resultado toda a aplicação ficará comprometida. Assim, uma solução para evitar um único ponto de falha será a seguinte. Em vez de armazenar as informações sensíveis em um único lugar, o que podemos fazer é podemos criar compartilhamentos dessa informação sensível e distribuir essas compartilhamentos e armazená-la em vários locais. E então apague as informações sensíveis iniciais. E qualquer que seja a função original que deveria ser realizada pelas informações sensíveis será agora realizada mediante a execução de um protocolo distribuído entre os vários servidores onde as ações das informações sensíveis originais são armazenadas. Percebem que, em todo esse processo, em nenhum lugar reconstruímos de volta as informações sensíveis originais. As informações sensíveis ainda são compartilhadas ou distribuídas entre os diversos locais e executamos um protocolo distribuído sem que realmente reconstrua as informações sensíveis. A vantagem de compartilhar ou distribuir as informações sensíveis em vários locais é que agora será difícil para um adversário comprometer simultaneamente todos os servidores onde as ações das informações sensíveis originais são armazenadas. E como resultado, você fica com mais robustez e mais tolerância a falhas. Portanto, trata-se novamente de uma aplicação avançada muito agradável de criptografia, que se baseia em um primitivo maravilhoso chamado como compartilhamento secreto. Em um nível muito alto, um protocolo de compartilhamento secreto permite que você crie ações de um segredo e distribua aos acionistas, de tal forma que o segredo original pode ser reconstruído de volta apenas se certo número limite de acionistas se unir e combinar suas ações. Mas se você tem um número de acionistas, que é menor do que isso por limite especificado, será impossível reconstruir de volta o segredo original. (Consulte O Tempo De Deslizamento: 13:41) Vejamos outra aplicação avançada fascinante de criptografia. E para motivar essa aplicação, deixe-me citar um exemplo o maravilhoso Sundar Kaand da nossa épica Ramayana, então as pessoas que estão familiarizadas com Sundar Kaand vão facilmente sob esta. Por isso, no Sundar Kaand o cenário é a seguinte mãe Sita é sequestrada por Ravana e ela está no Sri Lanka e Ram está na Índia. E já que Ram está faltando Sita ele está muito triste. Então, ele diz ao seu mensageiro a saber: Hanuman, que oh Hanuman, por favor, vá para o Lanka e passe a minha mensagem para Sita que eu estou sentindo falta dela. (Consulte O Tempo De Deslizamento: 14 :21) E o mensageiro diz, ok senhor, como o que você desejar eu seguirei a sua instrução. (Consulte O Slide Time: 14:27) Mas então Ram diz que desde que você vai conhecer Sita pela primeira vez, Sita pode não ser capaz de identificar você. Então, o que você faz é o seguinte você leva esse anel como uma prova de que realmente você é meu mensageiro. E se Sita lhe pedir uma prova, você pode dar a isso você pode mostrar este anel e ela será capaz de identificar você. Por isso, o mensageiro pega a prova e ele inicia a maravilhosa jornada chega ao Sri Lanka e ele aterrissa em Ashoka Vatika e inicia a conversa com a mãe Sita, onde ele diz que oh mãe eu sou o mensageiro do senhor Ram. (Consulte O Tempo De Deslizamento: 15 :00) Mas Sita está muito assustado. (Consulte O Slide Time: 15:04) Ela já é assediada pelo povo de Ravana. Por isso, ela é incapaz de confiar em Hanuman. Ela diz como posso confiar em você. (Consulte O Slide Time: 15 :13) Então aqui Hanuman mostra a prova a saber, o anel que Ram deu a Hanuman, e assim que o anel é mostrado a Sita. (Consulte O Slide Time: 15:20) Ela feliz identifica o anel e diz, sim, eu conheço esse anel muito bem, e de fato eu confio em você. Por isso, neste exemplo, o anel serve como uma prova que é dada e mostrada em claro pelo mensageiro, o mensageiro está fazendo uma declaração ou uma afirmação de que ele é realmente o mensageiro de Ram. E para provar sua afirmação ele está realmente mostrando a prova em claro, a saber, o anel. E isso foi possível na era da Sathyuga.Porque as pessoas ali de fato usariam para falar a verdade, mas mostrar a prova em claro é muito perigoso no mundo atual de Kaliyuga. Então, agora a questão é: é possível que Hanuman prove sua afirmação a saber, ele é o mensageiro de Ram de uma moda de conhecimento zero. E o que eu quero dizer com a moda de conhecimento zero é, a prova não deve revelar nada sobre o anel. E só deve provar a afirmação de que Hanuman é de fato o mensageiro de Ram. Isso significa que nenhuma informação adicional sobre o anel deve ser vazada através da prova. E mais importante ainda, se Hanuman não possuir o anel, então enquanto dá a prova ele deve ser pego e deve ser rejeitado. Por isso, um sistema de prova de conhecimento zero ou um protocolo de conhecimento zero garante o aprovador para comprovar uma declaração sem revelar nada sobre a prova. (Consulte O Slide Time: 16:39) Então, agora, vamos ver uma aplicação de prova de conhecimento zero no contexto da ciência da computação a saber, no contexto da criptografia. Então imagine que Alice e Bob são 2 entidades e dizem que Alice escolheu 2 grandes números primos P e Q, que são números primos aleatórios P e Q de digamos 512 bits cada, e ela multiplica os primes P e Q para obter o número N, e ela faz uma reclamação a Bob que hey Bob, eu sei que os fatores primos de N. E Bob diz, bem, eu posso verificar sua reclamação desde que de fato se Alice conhece os fatores, e se ela mostra os fatores P e Q a Bob e Bob pode ele mesmo multiplicar P e Q e verificar se o produto é de fato igual a N ou não. Então aqui P e Q são na verdade a prova, que a Alice pode mostrar para Bob. Mas um protocolo de conhecimento zero permitirá que Alice convença Bob que de fato ela conhece P e Q sem realmente mostrar P e Q. Então, pessoas que estão familiarizadas com o criptossistema público de RSA, podem relacionar este exemplo com o criptossistema RSA porque no contexto do RSA criptosistema de chave pública, N é na verdade os módulos e ele faz parte da chave de criptografia que Alice possui, e será publicamente disponível enquanto P e Q farão parte de uma chave de descriptografia que estará disponível apenas para Alice. Agora, você pode estar se perguntando que por que o próprio Bob não pode fator fora N. Bem, acredita-se que fatorizar números grandes é de fato ser um problema computacionalmente desafiador. (Consulte O Tempo De Deslizamento: 18:13) Agora vejamos outra aplicação relacionada do protocolo de conhecimento zero. Então, aqui o cenário é o seguinte. Por isso, imagine, Alice criou uma cópia isomórfica de um gráfico que ela possui. Então, o que eu quero dizer com gráficos isomórficos é o seguinte. Se você considerar os gráficos 1 e 2, mesmo que estruturalmente eles sejam desenhados de maneira diferente, propriedade wise eles são mesmos, isso significa que eles têm o mesmo número de vértices. E eles têm o mesmo número de bordas. E mais importante, existe uma bijeção, a saber, uma a uma e sobre para mapear a partir do conjunto vértice do primeiro gráfico para o vértice conjunto do segundo gráfico, tal que a seguinte relação detenha, se houver uma borda entre o nó u, v no primeiro gráfico então existe uma borda entre o vértice mapeado u e o vértice mapeado v no segundo gráfico e vice-versa. Nesse sentido, estes 2 gráficos são isomorfos na natureza. Então imagine que Alice começou com o gráfico 1, e ela cria uma cópia isomórfica do gráfico 1 para obter o gráfico 2. E para obter o gráfico isomórfico 2 o que ela tem a fazer basicamente é ela tem que apenas tirar uma permutação aleatória do vértice do primeiro gráfico, e essa é a informação secreta que Alice possui. E agora suponha que Alice faça os 2 gráficos, 1 e 2 públicos. E vai para Bob e diz: ei Bob, eu posso provar a vocês que o gráfico 1 e 2 são isomorfos na natureza. Novamente, pessoas que estão familiarizadas com o problema do isomorfismo gráfico, terão consciência de que verificar o gráfico, verificando se 2 gráficos são isomorfos ou não, na ausência da bijeção acredita-se que, de fato, se trata de um problema computacionalmente difícil, se os gráficos são de grandeza de grande magnitude. Por isso, Alice agora está interessada em provar que os gráficos são isomorfos na natureza sem mostrar realmente o isomorfismo gráfico. Por isso, Bob desafia Alice e diz, bem, se de fato você quer provar que os 2 gráficos são isomorfos, mostre-me o isomorfismo ou a bijeção, pois se você me mostrar a bijeção então posso facilmente verificar se os 2 gráficos 1 e 2 são isomorfos na natureza. Mas usando um protocolo de conhecimento zero, Alice consegue convencer Bob de que realmente os 2 gráficos, 1 e 2 são isomórficos. E, no processo, Bob não aprenderá nenhuma informação sobre a verdadeira bijeção, que mapeia o gráfico 1 para o gráfico 2. Então, novamente, trata-se de uma aplicação muito avançada de criptografia. (Consulte O Tempo De Deslizamento: 20 :41) E a próxima aplicação avançada de criptografia que eu gostaria de discutir é a da terceirização computação.* Por isso, nesse problema, o cenário é o seguinte. Nós temos um cliente computacionalmente fraco, e ele quer realizar algum tipo de computação. Por isso, vamos abstrair que a computação por uma função f, e ela possui alguns dados x e quer computar o valor da função nos dados x. Mas como é um processador computacionalmente fraco, ele não tem a capacidade de realizar a computação por conta própria. Então o que ele faz é, engaja o serviço de um provedor de serviços em nuvem, e ele terceia o cálculo da função para o provedor de serviços em nuvem, dando-lhe a descrição da função assim como os dados x. Assim, uma vez que a função está disponível para o provedor de serviços em nuvem, assim como os dados estão disponíveis para o provedor de serviços em nuvem. Um provedor de serviços em nuvem pode realizar o próprio cálculo e pode enviar de volta o resultado para o cliente computacionalmente fraco. Bem, em princípio, a solução funcionará. Mas o problema aqui é o que se o provedor de serviços de nuvem for um cara corrupto. Neste caso, não há garantia de privacidade de saída de entrada porque o cliente está dando os dados em claro para o provedor de serviços e como resultado, o provedor de serviços estará completamente ciente dos dados sobre os quais realizou o cálculo. E também estará ciente do resultado do cálculo. Então, e se quisermos evitar que o provedor de serviços em nuvem saiba os dados. A questão aqui é, é possível que o cliente computacionalmente fraco não revele os dados e ainda terceirite o computacional. Então, uma solução em potencial será que em vez de enviar os dados e claro, ele pode enviar uma versão criptografada dos dados e a descrição da função. E, em vez de realizar o cálculo sobre esse dado claro, o provedor de serviços em nuvem deverá ser capaz de realizar a mesma função nos dados criptografados. E deve enviar de volta o resultado do cálculo novamente de forma criptografada, que o cliente computacionalmente fraco pode decriptografar de volta. Então, agora, você pode estar se perguntando: qual é o problema com a solução proposta. O problema aqui é que já que os dados agora estão disponíveis de forma criptografada. Como um provedor de serviços de nuvem pode realizar o cálculo sem saber os dados. Assim, até 12 anos atrás esse problema acreditava-se ser um problema muito difícil porque não tínhamos nenhuma forma de criptografia que possa apoiar essa solução proposta. Isso significa que não havia nenhum tipo de esquema de criptografia onde fosse possível realizar o cálculo nos dados criptografados. Mas, há 12 anos, em 2006, foi feita a história onde foi proposta a primeira proposta candidata a esse tipo de esquema especial de encriptação que chamamos de esquema de criptografia totalmente homomórfico. Então em um nível muito alto, um esquema totalmente homomórfico permite que você realize computação nos dados criptografados sem saber realmente os dados. Então isso é novamente, uma aplicação muito avançada de criptografia. (Consulte O Tempo De Deslizamento: 23 :48) A próxima aplicação avançada de criptografia que eu vou discutir é a sobre o consenso distribuído. Então imagine o seguinte cenário nós temos um conjunto de líderes mundiais desangustantes. E juntos eles gostariam de chegar a uma decisão se atacam um determinado país ou não. Isso significa que eles gostariam de executar um protocolo entre si onde trocaram mensagens conforme o protocolo e o fim do protocolo, todos os líderes deveriam estar na mesma página. (Consulte O Tempo De Deslizamento: 24:16) Assim, a abstração desse problema é o que chamamos de problema de consenso distribuído. (Consulte O Tempo De Deslizamento: 24 :23) E no problema de consenso distribuído, temos um conjunto de n partes mutuamente desangustantes, e t deles poderia ser corrupto. E cada uma das partes tem um bit privado que pode ser de 0 ou 1. Por exemplo, neste contexto específico. 0 meios de não nuke atacam o país 1 meios para atacar o país. Assim, cada entidade tem uma entrada privada. E o objetivo é executar um protocolo entre essas entidades para que, ao final do protocolo, todas as entidades de bem devem estar na mesma página. Isso significa que eles devem obter um bit comum como a saída que é a propriedade de acordo que eu necessito a partir do protocolo. E a segunda propriedade que eu necessito do protocolo é que se no início em si, todas as boas entidades estivessem na mesma página. Isso significa que todos eles tinham a mesma entrada comum dizem b, então a saída do algoritmo deve ser b apenas. Então isso é uma propriedade de validade. Por isso, preciso de um protocolo de consenso distribuído, que me proporcionasse o imóvel do acordo, bem como a propriedade de validade. E temos muitos conhecidos protocolo de consenso distribuído disponíveis, novamente, que é uma aplicação muito avançada de criptografia. (Consulte O Slide Time: 25 :28) E a aplicação avançada final de criptografia que eu gostaria de discutir é tipo de problema Santo Graal em criptografia ou em computação distribuída segura, que é chamada de computação multi-partidária segura ou MPC em resumo, a descrição do problema é a seguinte. Imagine que nos seja dado um conjunto de n partidos mutuamente desconfiados que estão presentes em diferentes porções do globo. E eles não confiam um no outro. Então imagine que as partes são denotadas por 1 e cada partido tem alguns dados privados, poderia ser um pouco, poderia ser um banco de dados, poderia ser qualquer tipo de dado. E há uma função comum F, que é uma função n-ary por função n-ary, quero dizer que a função leva entrada das n entidades. Por isso, o objetivo aqui é chegar a um protocolo segundo o qual as partes trocam mensagens entre si. Tal que, ao final do protocolo, devem ser alcançados os seguintes 2 objetivos. O primeiro objetivo é a correção a saber: os mocinhos devem ser capazes de obter a saída da função nos insumos de todas as partes, independentemente do comportamento dos bandidos, e o segundo objetivo importante é o da privacidade, que exige que o adversário ou os bandidos não devem aprender nada durante o protocolo além do que pode ser revelado a partir de sua própria entrada e da saída de função. Então em um nível muito alto, o objetivo do protocolo MPC é emular o efeito de um terceiro confiável. Imagine para o momento em que você tem uma terceira parte confiável disponível para todas as n partes, então esse problema de computação multipartidária é muito fácil de ser resolvido. O que cada partido pode fazer é poder enviar sua entrada privadamente para o terceiro confiável. E como o terceiro é confiável por todas as entidades, temos a garantia de que ele não revelaria os insumos da pessoa individual para os demais partidos. Agora, a terceira parte confiável pode computar o valor da função em todos os n inputs, e pode enviar de volta a saída para cada entidade. Mas o problema com a solução com o terceiro de confiança de parte é que, na prática, não temos nenhum terceiro tão confiável disponível. Assim, o objetivo de um protocolo de computação multi-partidário seguro é emular o papel de um terceiro confiável, executando um protocolo entre as próprias entidades. Isso significa que o que um protocolo de computação multi-partidário seguro garante para você é que o que quer que seja doável na presença de um terceiro confiável, o mesmo pode ser alcançado mesmo na ausência de um terceiro confiável executando um protocolo entre as entidades individuais. Portanto, isso é como o problema de santo graal em computação distribuída segura, pois se você tem uma solução para esse problema abstrato, então você tem soluções de milhares de problemas reais do mundo que podem ser abstrados por essa bela noção de computação multi-partidária segura. Então, isso me leva até o final desta primeira palestra. Para finalizar com nesta palestra, discutimos brevemente o que é a criptografia, o significado da criptografia, e discutimos então em um nível muito alto, o objetivo do protocolo MPC é emular o efeito de um terceiro confiável partido de . Imagine para o momento em que você tem uma terceira parte confiável disponível para todas as n partes, então esse problema de computação multipartidária é muito fácil de ser resolvido. O que cada partido pode fazer é que pode enviar sua entrada de forma privada para a terceira parte confiável. E como a terceira parte é confiável por todas as entidades , temos a garantia de que ele não revelaria os insumos da pessoa individual para o outras partes.Agora, a terceira pessoa confiável pode computar o valor da função em todas as entradas n, e pode enviar de volta a saída para cada entidade. Mas o problema com a solução com a parte confiável de terceiros é que, na prática, não temos nenhum terceiro tão confiável disponível. Por isso, o objetivo de um protocolo de computação multipartidária seguro é emular o papel de um terceiro confiável executando um protocolo entre as próprias entidades.Isso significa que o que um protocolo de computação multi-partidário seguro garante para você é que qualquer que seja o que seja doável na presença de um terceiro confiável, o mesmo pode ser alcançado mesmo na ausência de um terceiro confiável executando um protocolo entre as entidades individuais. Portanto, isso é como o problema santo graal em computação distribuída segura, pois se você tem uma solução para esse problema de abstrato, então você tem soluções de milhares de problemas reais do mundo que podem ser abstrados por essa bela noção de computação multipartidária segura.Então, isso me leva até o final desta primeira palestra. Para finalizar com nesta palestra, resumimos brevemente o que é a criptografia, o significado da criptografia, e discutimos algumas das aplicações avançadas da criptografia. Espero que tenha gostado desta palestra. Obrigado.