Criptografia e Teoria da Complexidade



Documentos relacionados
Assinatura Digital: problema

Acordo de Chave Seguro contra Autoridade Mal Intencionada

¹CPTL/UFMS, Três Lagoas, MS,Brasil, ²CPTL/UFMS, Três Lagoas, MS, Brasil.

Algoritmos criptográficos de chave pública

Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica

Álgebra A - Aula 11 RSA

Análise e Complexidade de Algoritmos

Resíduos Quadráticos e Fatoração: uma aplicação à criptoanálise do RSA

Classes de Complexidade e NP-Completude

Auditoria e Segurança da Informação GSI536. Prof. Rodrigo Sanches Miani FACOM/UFU

Criptografia e Segurança em Redes Capítulo 9. Quarta Edição William Stallings

MA14 - Aritmética Unidade 24 Resumo

Auditoria e Segurança de Sistemas Aula 09 Criptografia. Felipe S. L. G. Duarte Felipelageduarte+fatece@gmail.com

Segurança da Informação

Criptografia e Chave Pública. Segurança da Informação

Proposta de estudo CNC

Disciplina: Unidade III: Prof.: Período:

Sistemas Distribuídos: Conceitos e Projeto Controle de Acesso

INE Fundamentos de Matemática Discreta para a Computação

I Seminário sobre Segurança da Informação e Comunicações CRIPTOGRAFIA

Segurança da Informação

Arquitetura de Rede de Computadores

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

Somatórias e produtórias

Material Teórico - Módulo de Divisibilidade. MDC e MMC - Parte 1. Sexto Ano. Prof. Angelo Papa Neto

Exercícios Teóricos Resolvidos

Segurança da Informação. Prof. Gleison Batista de Sousa

REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 13

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

Conceitos de Criptografia e o protocolo SSL

Capítulo 5 Métodos de Defesa

Gerenciamento das chaves criptográficas no Cloud Privacy Guard

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

Dicas para a 6 a Lista de Álgebra 1 (Conteúdo: Homomorfismos de Grupos e Teorema do Isomorfismo para grupos) Professor: Igor Lima.

Aula 4 Estatística Conceitos básicos

Feature-Driven Development

Davidson Rodrigo Boccardo

PROJETO DE REDES

Capítulo 7 CAMADA DE TRANSPORTE

Dois eventos são disjuntos ou mutuamente exclusivos quando não tem elementos em comum. Isto é, A B = Φ

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v /15

UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO

Codificação de Canal

UNIP UNIVERSIDADE PAULISTA

Prof. Aleksander S. Paterno

Execícios de Revisão Redes de Computadores Edgard Jamhour. Filtros de Pacotes Criptografia SSL

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Limitações dos Computadores

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

fonte:

Web Design Aula 11: Site na Web

Venda segura. Série Matemática na Escola

Reduções da segurança de esquemas criptográficos: Sequências de Jogos

MD Sequências e Indução Matemática 1

MÉTODOS DISCRETOS EM TELEMÁTICA

Segurança em IEEE Wireless LAN

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Complexidade de Algoritmos

Conceitos básicos da linguagem C

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

SISTEMAS DISTRIBUÍDOS

Faculdade de Computação

por séries de potências

Notas de Cálculo Numérico

Dadas a base e a altura de um triangulo, determinar sua área.

SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa

Capítulo 4 - Roteamento e Roteadores

Transcrição:

Denise Goya (dhgoya@ime.usp.br) Joel Uchoa (joelsu@ime.usp.br) DCC - IME - USP MAC 5722 - Complexidade Computacional Prof. José Augusto Ramos Soares Seminário - novembro/2008

Sumário Introdução 1 Introdução Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais 2 Funções Unidirecionais e Complexidade Existe Função Unidirecional = UP P UP P = Existe Função Unidirecional Funções Unidirecionais com Segredo 3 Assinatura Digital Sistema de Prova Interativa Prova de Conhecimento-Zero 4 Considerações Referências

Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais Motivações para o Estudo da Criptografia Preocupações importantes quando duas pessoas se comunicam: garantia de sigilo (intermediários incapazes de ler); garantia de integridade (não adulteração da mensagem); garantia de autenticidade (identificação correta das partes); A criptografia oferece ferramentas para os três itens acima.

Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais Cenário para Comunicação com Sigilo Usuários combinam dois algoritmos E e D, para cifragem e decifragem (encoding e decoding); E e D são de conhecimento público; Espaço de mensagens: Σ Σ = {0, 1} Chaves de cifragem e decifragem: e, d e, d Σ

Comunicação com Sigilo Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais Alice deseja enviar a mensagem x Σ para Beto, com garantia de sigilo; Alice calcula e transmite a mensagem cifrada y Σ : y = E(e, x) Beto recebe y e recupera x calculando: D(d, y) = x

Propriedades Introdução Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais D é inversa de E, desde que e, d sejam cuidadosamente selecionados; D, E são algoritmos de tempo polinomial; Um intermediário que capture y não deve ser capaz de calcular x sem o conhecimento de d;

Exemplo Introdução Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais e = d; x = e ; E(e, x) = e x (função ou-exclusivo bit-a-bit) D(e, y) = e y D é inversa de E: D(e, E(e, x)) = (e (e x)) = x

Segurança do Exemplo Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais Se uma chave e nunca for reutilizada em nova comunicação, Se todas as chaves e forem equiprováveis, É possível demonstrar que x não pode ser calculado a partir de y sem o conhecimento de e [Shannon, 1949]. One-time-pad: De difícil implementação, pois algoritmos comuns de geração de chaves são pseudo-aleatórios; Chaves são tão grandes quanto as mensagens.

Criptografia de Chave Pública Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais Algoritmos como o do exemplo anterior tratam apenas do aspecto sigilo; Criptografia de chave pública: outro paradigma Viabiliza ferramentas que garantem: integridade autenticidade além de sigilo e outros serviços de segurança

Criptografia de Chave Pública Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais Cada usuário cria um par de chaves (e, d) para si; A chave de cifragem, e, é publicada abertamente; A chave de decifragem, d, é segredo exclusivo do usuário dono; Qualquer outro usuário pode cifrar uma mensagem x e transmiti-la com sigilo para o dono de (e, d), calculando E(e, x) Somente com a chave d será possível recuperar a mensagem original, calculando D(d, E(e, x)) = x

Criptografia de Chave Pública Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais Deve ser computacionalmente inviável: deduzir d a partir de e; deduzir x a partir de y, sem o conhecimento de d. Queremos uma função especial em FP, cuja inversa não esteja em FP (isto é, a inversa está em FNP) FP é a classe de todas funções recursivas computáveis por MTD em tempo polinomial FNP é a classe das funções recursivas computáveis por MTND em tempo polinomial

Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais Funções Unidirecionais (one-way functions) Definição (Função Unidirecional) Seja f uma função de strings em strings. Dizemos que f é função unidirecional se: (i) f é injetora, x Σ, x 1/k f (x) x k (isto é, f (x) é no máximo polinomialmente mais longa ou mais curta que x); (ii) f está em FP (isto é, pode ser calculada em tempo polinomial); (iii) o mais importante: f 1 não está em FP (isto é, não há algoritmo de tempo polinomial que consiga calcular x dado f (x)).

Existência de Funções Unidirecionais Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais Mesmo que P NP não se garante a existência de funções unidirecionais; Suspeita-se que sejam funções unidirecionais: 1 multiplicação de inteiros; 2 exponenciação módulo um primo; 3 função RSA.

Exemplo 1: Multiplicação de Inteiros Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais f mult (x, y) = x y Multiplicação de inteiros quaisquer não é injetora (ex: 3.4 = 2.6); Vamos considerar apenas primos p < q; f mult (p, q) satisfaz (i), (ii) inverter f mult é conhecido como Problema da Fatoração de Inteiros, tido como difícil.

Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais Exemplo 2: Exponenciação Módulo um Primo f exp (p, r, x) = (p, r x mod p), com inteiro x < p e uma raiz primitiva r mod p; f exp satisfaz (i), (ii); inverter f exp é conhecido como Problema do Logaritmo Discreto, tido como difícil.

Exemplo 3: Função RSA Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais RSA combina f mult e f exp para criar um criptossistema de chave pública; Sejam primos p, q e o produto pq com n = log pq bits; Números módulo pq são strings binárias de n bits Escolha e relativamente primo a (função tociente de Euler): φ(pq) = (p 1)(q 1) A função RSA é dada por: f RSA (x, e, p, q) = (x e mod pq, pq, e)

Exemplo 3: Função RSA (cont) Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais f RSA satisfaz (i): o fato de e ser relativamente primo a φ(pq) garante a injeção. f RSA satisfaz (ii): existe algoritmo de tempo O(n 3 ) para exponenciar n o de n bits. f RSA satisfaz (iii)? não se conhece algoritmo de tempo polinomial que inverta f RSA ; especula-se que não existe; f RSA é usada na prática, como base de muitos criptossistemas.

Função RSA em Criptossistemas Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais (pq, e) é chave de cifragem, pública; calcula-se a inversa de e módulo φ(pq) ed = 1 mod φ(pq) como e é relativamente primo a φ(pq), d existe e pode ser calculado pelo algoritmo estendido de Euclides. (pq, d) é chave de decifragem, secreta; para cifrar x para o dono do par de chaves acima: y = x e mod pq o dono do par de chaves recebe y e recupera x: y d mod pq = x mod pq a igualdade pode ser demonstrada com base em: x φ(pq) = 1 mod pq (corolário do Teorema de Fermat)

Função RSA e Reduções Motivações Sigilo Criptografia de Chave Pública Funções Unidirecionais O problema de inverter f RSA pode ser reduzido ao problema de inverter f mult : Suponha que pq pode ser fatorado, revelando p e q Calcula-se pq p q + 1 = (p 1)(q 1) = φ(pq) A partir de φ(pq) e e, recupera-se d com o algoritmo estendido de Euclides Agora, basta obter x = y d mod pq Existem outras formas de quebrar o RSA, mas todas as variantes conhecidas são tão difíceis quanto fatorar inteiros. Fatoração de inteiros Cálculo de φ(pq) sem fatorar pq Fatoração de inteiros Determinação de d sem fatorar pq e sem calcular φ(pq)

Funções Unidirecionais e Complexidade Funções Unidirecionais e Complexidade Existe Função Unidirecional = UP P UP P = Existe Função Unidirecional Funções Unidirecionais com Segredo Parece razoável se tentar relacionar a existência de funções unidirecionais com NP-completude; Problemas: Não é possível fazê-lo; Não funciona. Para entender o porquê, vamos introduzir uma classe de complexidade.

Classe UP Introdução Funções Unidirecionais e Complexidade Existe Função Unidirecional = UP P UP P = Existe Função Unidirecional Funções Unidirecionais com Segredo Chame uma máquina de Turing não-determinística de não-ambígua se ela tem a seguinte propriedade: Para qualquer entrada x existe no máximo uma computação aceita Definição (Classe UP) UP é a classe de linguagens aceitas por máquinas de Turing não-determinísticas não-ambíguas de tempo polinomial.

P UP NP Introdução Funções Unidirecionais e Complexidade Existe Função Unidirecional = UP P UP P = Existe Função Unidirecional Funções Unidirecionais com Segredo P UP uma máquina determinística pode ser vista como uma não-determinística com apenas uma escolha a cada passo; ela será necessariamente não-ambígua. UP NP máquinas não-ambíguas são, por definição, não-determinísticas.

Funções Unidirecionais e Classe UP Funções Unidirecionais e Complexidade Existe Função Unidirecional = UP P UP P = Existe Função Unidirecional Funções Unidirecionais com Segredo Teorema UP P se e somente se existe função unidirecional.

Funções Unidirecionais e Complexidade Existe Função Unidirecional = UP P UP P = Existe Função Unidirecional Funções Unidirecionais com Segredo Existe Função Unidirecional = UP P Demonstração Suponha uma função unidirecional f. Defina a seguinte linguagem L F = {(x, y): existe um z tal que f (z) = y e z x}. Afirmamos que L f UP P: U com entrada (x, y), não deterministicamente, escolhe z de tamanho máximo y k (ii), e teste se f (z) = y. Se a resposta é SIM, U checa se z x, e se sim, aceita. U decide L f e é não-ambígua. Portanto: L f UP.

Funções Unidirecionais e Complexidade Existe Função Unidirecional = UP P UP P = Existe Função Unidirecional Funções Unidirecionais com Segredo Existe Função Unidirecional = UP P Demonstração Agora, temos que mostrar que L f P. Suponha que existe algoritmo polinomial para L f. Assim podemos inverter f por busca binária: Dado y, nós perguntamos: (1 y k ) L f? (k vem de (ii)) Se a resposta é NAO, não existe x tal que f (x) = y. Se SIM, tentamos para tamanhos menores ((1 y k 1 ), (1 y k 2 ),...) até chegarmos a um NAO, aí descobrimos o tamanho de t de z E a partir daí determinamos, um por um, os bits de z, novamente perguntando se (01 t 1, y) L f, dependendo da respota SIM ou NAO, perguntamos (001 t 2, y) L F ou (101 t 2, y) L f, e assim sucessivamente. Teremos no máximo 2n k aplicações do algoritmo polinomial que decide L f, invertendo f em tempo polimial. Isso é um absurdo, pois f é unidirecional.

Funções Unidirecionais e Complexidade Existe Função Unidirecional = UP P UP P = Existe Função Unidirecional Funções Unidirecionais com Segredo UP P = Existe Função Unidirecional Demonstração Agora, suponha que existe L UP P e seja U uma máquina não-determinística e não-ambígua que aceita L. Seja x uma computação aceita de U com entrada y. Definimos f U (x) = 1y. Se x não codifica nenhuma computação de U, definimos f U (x) = 0x. f U é uma função unidirecional: Ela está em FP, porque y é uma parte da representação da computação de x e pode ser lido a partir de x. Os tamanhos de x e y são polinomialmente relacionados, pois as computações de U são de tamanho polinomial. A função é injetora, pois a máquina é não-ambígua e diferenciamos com bits 1 e 0 o que é ou não computação aceita: f (x) = f (x ) = x = x Se fosse possível inverter f U em tempo polinomial, então seríamos hábeis em decidir L em tempo polinomial.

Discussões Introdução Funções Unidirecionais e Complexidade Existe Função Unidirecional = UP P UP P = Existe Função Unidirecional Funções Unidirecionais com Segredo Esperamos fortemente que P UP No contexto da criptografia interessa saber se P? = UP (e não se P? = NP) Assim, NP-completude não ajuda na identificação de funções unidirecionais Não se sabe se UP possui problemas completos (acredita-se que não)

Discussões (cont.) Introdução Funções Unidirecionais e Complexidade Existe Função Unidirecional = UP P UP P = Existe Função Unidirecional Funções Unidirecionais com Segredo NP-completude e UP-completude: Não são úteis em criptografia! Em teoria da complexidade, estuda-se o tempo de pior caso Em criptografia, não interessa que para algumas das entradas o tempo seja exponencial, quando para muitas outras o tempo é polinomial Na prática, deseja-se que para uma (ou para algumas pouquíssimas) entradas a inversão seja de tempo polinomial

Função Unidirecional com Segredo Funções Unidirecionais e Complexidade Existe Função Unidirecional = UP P UP P = Existe Função Unidirecional Funções Unidirecionais com Segredo Fortalecemos o conceito de função unidirecional para: Definição (Função Unidirecional com Segredo trapdoor function) Seja f uma função unidirecional. Dizemos que f é função unidirecional com segredo se: (i) não existem algoritmo nem inteiro k tais que, para n suficientemente grande, f 1 (y) seja calculado para pelo menos 2n n k strings y de tamanho n, em tempo O(n k ); (ii) é possível amostrar eficientemente o domínio de f ; (iii) existe uma função computável polinomialmente que torna trivial o problema de inverter f.

Funções Unidirecionais e Complexidade Existe Função Unidirecional = UP P UP P = Existe Função Unidirecional Funções Unidirecionais com Segredo Função RSA: Unidirecional com Segredo? Acredita-se que f RSA seja função unidirecional com segredo É possível decifrar uma mensagem rapidamente, desde que se tenha a chave secreta d (x e ) d mod pq = x mod pq Sem a chave secreta d é inviável decifrar, mesmo com o conhecimento da chave pública (e, pq).

Funções Unidirecionais e Complexidade Existe Função Unidirecional = UP P UP P = Existe Função Unidirecional Funções Unidirecionais com Segredo Ser Unidirecional com Segredo não Basta O RSA é exemplo de algoritmo criptográfico determinístico: em algumas aplicações, se um adversário capturar mensagens repetidas, cifradas com a mesma chave, pode obter informações importantes que levariam à quebra do sistema; atualmente, usam-se algoritmos probabiĺısticos para maior segurança. Várias outras questões devem ser pensadas: mensagens fortemente estruturadas (p.ex. x = 0) não devem revelar informação alguma; a descoberta de alguns bits da mensagem decifrada não deve revelar bits da chave secreta; grandes coleções de dados estatisticamente relacionados (p.ex. vários textos cifrados com a mesma chave) não devem revelar informação alguma; etc.

Outros Resultados Introdução Funções Unidirecionais e Complexidade Existe Função Unidirecional = UP P UP P = Existe Função Unidirecional Funções Unidirecionais com Segredo Teorema Se funções unidirecionais não existem, então todos os conjuntos EXP-completo são isomorfos uns aos outros em tempo polinomial. Conjectura (de Joseph-Young) Todos conjuntos NP-completo são isomorfos uns aos outros em tempo polinomial (conjectura de Berman-Hartmanis) se e somente se funções unidirecionais não existem. [Du & Ko, 2000]

Introdução Assinatura Digital Sistema de Prova Interativa Prova de Conhecimento-Zero Criptografia pressupõe a comunicação entre dois ou mais agentes. Protocolo é um conjunto interações de computações, que compartilham entradas e saídas, de maneiras arbitrariamente complexas.

Assinatura Digital Introdução Assinatura Digital Sistema de Prova Interativa Prova de Conhecimento-Zero Assinatura digital é um protocolo criptográfico que: segue o modelo de criptografia de chave pública confere autenticidade de origem garante integridade de mensagem em alguns contextos, garante irretratabilidade (juridicamente, não se pode negar que assinou um documento) RSA pode ser usado para assinatura digital: RSA é comutativa: D(d, E(e, x)) = E(e, D(d, x)) cifrando-se m com a chave secreta de Alice, qualquer um pode verificar a assinatura decifrando com a chave pública de Alice se a verificação for possível: só Alice pode ter gerado a assinatura (pois só ela conhece sua chave secreta): autenticidade de origem; nem m nem a assinatura foram adulteradas: integridade.

Sistema de Prova Interativa Assinatura Digital Sistema de Prova Interativa Prova de Conhecimento-Zero Um sistema de prova interativa consiste de duas máquinas: um provador P, que apresenta uma prova de que uma dada string é membro de uma determinada linguagem; um verificador V, que verifica se a prova apresentada é correta O provador possui poder computacional e de armazenamento ilimitado O verificador é de tempo polinomial

Classe de Complexidade IP Assinatura Digital Sistema de Prova Interativa Prova de Conhecimento-Zero Definição IP é a classe de todas as linguagens decididas por um sistema de prova interativa.

Exemplo: SAT IP Introdução Assinatura Digital Sistema de Prova Interativa Prova de Conhecimento-Zero Suponha Alice um provador que possui poder exponencial Beto é um verificador com poder polinomial Ambos possuem uma expressão booleana φ Se φ é satisfatível, Alice convence Beto disso da seguinte forma: Alice calcula a atribuição que satisfaz φ Envia-a para Beto Beto verifica a atribuição e se convence. Se φ não é satisfatível, Alice não consegue convencer Beto e φ é rejeitada. Assim, SAT é decidida por um um sistema de prova interativa.

Aleatoriedade Introdução Assinatura Digital Sistema de Prova Interativa Prova de Conhecimento-Zero Na definição completa de sistema de prova interativa: O verificador é uma máquina de tempo polinomial probabiĺıstico e faz escolhas aleatórias Depois de um número polinomial de mensagens trocadas, a interação é completada Se a string, de tamanho n, está na linguagem, o verificador aceita com probabilidade de pelo menos 1 1 2 n Se a string não está na linguagem, a probabilidade de aceitar é de no máximo 1 2 n IP contém BPP (a classe de problemas de decisão solúveis em MT probabiĺıstica de tempo polinomial)

Alguns Resultados Introdução Assinatura Digital Sistema de Prova Interativa Prova de Conhecimento-Zero BPP IP NP IP Não-isomorfismo de grafos (dados dois grafos eles são não-isomorfos?): está em IP porém não se sabe se está em NP, nem em BPP IP = PSPACE MIP = NEXP MIP é uma classe derivada de IP, em que há dois provadores

Prova de Conhecimento-Zero Assinatura Digital Sistema de Prova Interativa Prova de Conhecimento-Zero Um sistema de prova de conhecimento-zero é um sistema de prova interativa em que o verificador é convencido de que x L, sem nada descobrir a respeito de um certificado para x Motivação original: autenticação de usuários em sistemas Ex: um usuário quer se autenticar perante um servidor, usando sua senha O servidor não conhece a senha do usuário (nem deve conhecer), mas é convencido de que o usuário é legítimo

Assinatura Digital Sistema de Prova Interativa Prova de Conhecimento-Zero Exemplo: 3-Coloração Tem Prova de Conhecimento-Zero Suponha que Alice tem uma 3-Coloração para um dado grafo Alice quer provar isso para Beto, sem apresentar para ele a coloração propriamente dita Alice, para cada nó i do grafo, cria parâmetros RSA (p i q i, d i, e i ) repete-se k E vezes (k é parâmetro de confiabilidade): Alice entrega para Beto (e i, p i q i, y i, y i ): cor cifrada probabilisticamente Beto escolhe aleatoriamente uma aresta [i, j] Alice entrega as chaves secretas d i, d j Beto decifra as cores e verifica que são diferentes Depois de k E interações, Beto se convence que Alice realmente sabe realizar uma 3-Coloração para o grafo, sem nada descobrir sobre a coloração.

Assinatura Digital Sistema de Prova Interativa Prova de Conhecimento-Zero Todo Problema em NP Tem Prova de Conhecimento-Zero 3-Coloração é um problema NP-completo Usando reduções, é possível concluir que: Todos problemas em NP possuem provas de conhecimento-zero.

Resumo Introdução Considerações Referências Conceituamos Criptografia de chave pública e Funções Unidirecionais Relacionamos Complexidade Computacional com Funções Unidirecionais Vimos alguns protocolos criptográficos e definimos a classe IP Relacionamos problemas em NP com Provas de Conhecimento-Zero

Perguntas? Introdução Considerações Referências

Referências Introdução Considerações Referências Christos H. Papadimitriou Computational Complexity, cap.12 (10 e 19) Addison-Wesley, 1994. C.E. Shannon Communication Theory of Secrecy Systems. Bell System Technical J., vol. 28, no. 4, pp. 656-715, 1949. Ding-Zhu Du e Ker-I Ko Theory of Computational Complexity, caps.4, 7 e 10. John Wiley & Sons, 2000. Routo Terada Segurança de Dados 2 a Edição Revista e Ampliada Editora Edgard Blücher, 2008.