160 likes | 356 Views
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
E N D
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.