Introdução à Criptografia

Slides:



Advertisements
Apresentações semelhantes
Lei de Little.
Advertisements

Prof. André Laurindo Maitelli DCA-UFRN
Amintas engenharia.
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 32 Departamento de Informática Centro.
Barramentos Introdução.
Entrada e Saída Introdução.
Segurança da Camada de Transporte
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
Hashing (Espalhamento)
Carolina Fonseca Neumar Ribeiro
Criptografia e Segurança de Rede Capítulo 7 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.
Criptografia e Segurança de Rede Capítulo 7
Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA2.
Complexidade de Algoritmos
ESTRUTURA DE COMUNICAÇÃO DE DADOS
INF 1771 – Inteligência Artificial
Projeto e Desenvolvimento de Algoritmos
Programação I Caderno de Exercícios Nome.
Introdução a Programação
Geração de random variates
Carimbo de Tempo ( timestamping )
Sistemas Operacionais I
Diffie-Hellman Acordo de Chave Compartilhada 1976, University of Stanford.
Criptografia Simétrica
Gerando uma chave Em um sistema criptográfico simétrico, a chave é apenas um número qualquer, contanto que tenha um tamanho correto.
Informática Teórica Engenharia da Computação
Função Hash e Autenticação em Redes de Computadores
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Sistemas Operacionais
Aula 1 – Introdução a segurança de dados
Fábio de Oliveira Borges
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
Seminário de Informática Teórica Henrique Borges Alencar Siqueira.
1. Introdução; 2. Inicialização da aplicação; 3. Gerando as Chaves do RSA; 4. Criptografando mensagens; 5. Descriptografando mensagens; 6. Conclusões.
Introdução e Busca Cega
Confidencialidade usando Criptografia Simétrica
DESIGN E COMUNICAÇÃO MULTIMÉDIA 2011 / 2012 DESIGN E COMUNICAÇÃO MULTIMÉDIA 2011 / 2012 FORMADOR Gonçalo Miguel MÓDULO 25. Introdução ao ActionScript 3.0.
Introdução à Informática
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Sistemas Operacionais
Paulo Roberto Lopes de Souza Robson Cechini Santos
Sistemas de Informação
Introdução a Banco de Dados Aula 04
Acabias Marques Luiz. I - Introdução ao Ruby Parte 1 – Introdução a linguagem  O que é Ruby  Instalação  O IRB  Operadores Aritméticos  Tipos de.
FUNDAMENTOS DE COMPUTAÇÃO
Lista de exercícios 2, questão número 3 Introdução à Criptografia Moderna com prof. Ruy Queiroz Bruno Barros – Renato Marcelino –
Como analisar um algoritmo
DSC/CEEI/UFCG Introdução à Computação. DSC/CEEI/UFCG 2 Hardware – Memória  Componente de um sistema de computação cuja função é armazenar informações.
Protocolo WPA 2 Nome: Rony RGM:51001.
Segurança da Informação Prof. João Bosco M. Sobral 1 Armazenamento de Chaves Simétricas Criptografia baseada em Senha.
Fundamentos de linguagens de programação
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 2 Variáveis e Atribuições.
©2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade Federal.
Segurança de Redes de Computadores
Gerenciamento de Arquivos
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Tópicos Avançados em Redes
Informática e Computação Aula Estrutura de Repetição
Professor: Leandro Chernicharo.  Uma coleção de dados relacionados;  Dados  Fatos conhecidos que podem ser gravados e têm um significado implícito.
Computação Evolutiva Nome dado ao estudo de algoritmos cuja inspiração é o processo de evolução natural das espécies. Origem: trabalho de um pesquisador.
TÉCNICAS DE ESTIMATIVAS
Sistemas de Arquivos.
© 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade.
Taís Sineiro Herig Laboratório de Genômica e Expressão / UNICAMP
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
PESQUISA OPERACIONAL II Professor: D. Sc. Edwin B. Mitacc Meza
Autor : Lênin Charqueiro. Pelotas,8 de março de
1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco.
Transcrição da apresentação:

Introdução à Criptografia Geradores pseudo-aleatórios Carlos Eduardo dos Santos (cesps) René Araújo (raa2)

Conteúdo Introdução Propriedades Geradores seguros para criptografia Ataques a PRNG Conclusão

Introdução Números verdadeiramente aleatórios Possuem real aleatoriedade, exemplo: Tempo entre desintegrações de um elemento radioativo Números pseudo-aleatórios Possuem a aparência de aleatoriedade, mas possuindo um padrão específico repetitivo. Números calculados por um computador através de processos determinísticos não podem, por definição, serem aleatórios

Introdução Conhecendo o algoritmo usado para os números e seu estado interno (semente), pode-se prever todos os números retornados por chamadas subsequentes ao algoritmo. Para geradores verdadeiramente aleatórios, o conhecimento de uma sequencia longa de bits não é de utilidade para se prever o proximo número a ser gerado. Teste do próximo bit Números aleatórios são gerados por algoritmos determinísticos através de geradores pseudo-aleatórios (PRNG)

Propriedades desejáveis dos números pseudo-aleatórios Sequencias sem correlação – As sequencias de números aleatórios não devem possuir relação com as anteriores Período longo – O gerador deve possuir um período entre repetições muito longo (idealmente, o gerador não deve repetir) Uniformidade- A sequencia de números aleatórios deve ser uniforme. Frações iguais de números aleatórios devem cair em áreas iguais do espaço de números. Ex: Se serão gerados números no intervalo [0,1) seria uma péssima prática se mais do que metade caisse no intervalo [0, 0.1) presumindo que a quantidade de números gerados é elevada Eficiência – O gerador deve ser eficiente, gerando um baixo overhead

Quantidades físicas utilizadas na geração de sementes Tempo entre digitações de teclas quando o usuário entra com um password Medição da turbulência de ar ocasionada pelo movimento das cabeças de leitura de discos rígidos Tempo de acesso a memoria sob determinadas condições de sobrecarga Medição precisa de atrasos na CPU ou outro dispositivo Captação de interferência em ondas de rádio Tempos de desintegração de átomos radioativos

O ciclo dos números pseudo-aleatórios Quase todos os PRNG possuem como base, uma sequencia de inteiros pseudo-aleatorios Estes inteiros são manipulados aritmeticamente para gerar números de ponto flutuante A natureza do ciclo A sequencia tem um numero finito de inteiros Asequencia é percorrida em uma ordem particular Caso o periodo se exceda, a sequencia é repetida Os inteiros devem ser distintos

Geradores seguros para criptografia Aplicações Geração de chaves Nonces Salts One-time pads

Geradores seguros para criptografia Um bom gerador de números aleatórios não necessariamente é adequado à criptografia Deve-se dificultar ao adversário a previsão dos números gerados Precisa passar pelo teste do próximo bit

Teste do próximo bit Dado um adversário A e um oráculo O. O oráculo conhece uma seqüência de bits s, e o adversário A é capaz de consultar o oráculo sobre o próximo bit qualquer número de vezes, contanto que reste pelo menos um bit não consultado. Depois de ter analisado os primeiros l bits, A deve adivinhar o bit l + 1. A ganhará se sua adivinhação for correta. A vantagem de A é definida por AdvA = [1/2 - Pa] , onde Pa é a probabilidade de A ter sucesso no teste. Um gerador pseudo-aleatório é seguro para criptografia se ele passa no teste do próximo bit. O parâmetro de segurança do teste pode ser estendido para além dos bits, muitas vezes são utilizados números primos neste teste.

Ataques a PRNGs Ataque de criptoanálise direta Quando um adversário pode diretamente distinguir entre números pseudo-aleatórios e números aleatórios (Criptoanálise do PRNG) Ataque baseado em entradas Quando o adversário é capaz de usar seu conhecimento e controle das entradas do PRNG para fazer criptoanálise do mesmo Extensão de ataques: Quando o adversário pode adivinhar alguma informação através de uma falha de segurança. A vantagem de um ataque anterior é estendida

Ataque de criptoanálise direta Quando o adversário pode usar criptoanalise diretamente no PRNG Aplicável à maioria dos PRNGs Não pode ser aplicado quando o adversário não pode ser capaz de ver diretamente a saída do gerador Ex: Seja um PRNG usado para gerar chaves para o triplo-DES. Neste caso, a saída do PRNG nunca é vista diretamente pelo adversário.

Ataque baseado em entradas Usado quando o adversário utiliza-se de conhecimento ou controle das entradas para fazer criptoanálise da saída do PRNG Tipos: Entrada conhecida Se as entradas da PRNG, que são idealizadas para serem difícil ao usuário adivinhar, se tornam facilmente dedutíveis. Ex. Ltencia de disco rigido. Quando o usuário está acessando um disco da rede, o adversário pode observar a latencia Entrada escolhida Muito utilizada contra smartcards e outras aplicações em que são utilizadas informações do usuário como entropia para o PRNG Entrada repetida Similar ao de entrada escolhida, a nao ser pelo fato de exigir menos sofisticação por parte do atacante.

Extensão de ataques Tenta extender as vantagens dos ataques se aproveitando de brechas na segurança As brechas podem ser: Vazamento de informações Sucesso criptográfico anterior Estes ataques são bem sucedidos quando o sistema é iniciado sem entropia

Conclusão Números aleatórios são a base para muitas aplicações de criptografia. Não existe uma função “independente” para gerar números aleatórios. Os computadores atuais podem apenas aproximar os números aleatórios, usando os geradores de números pseudo-aleatórios. Ataques à diversas aplicações criptográficas são possíveis através de ataques a PRNGs. Aplicações computacionais cada vez mais utilizam-se de fontes físicas externas para obterem números aleatórios.