Você está na página 1de 21

Geração de números

pseudoaleatórios e
cifra de fluxo
Prof. Dr. Daniel Vecchiato

1
Agenda
• Conceitos
• TRNG
• PRNG
• Cifras de fluxo
• RC4
• Questões para revisão
• Bibliografia

2
Conceitos
• PRNG
 Gerador de números pseudoaleatórios
 Pseudorandom number generators
• TRNG
 Gerador de números verdadeiramente aleatórios
 True random number generators

• Os PRNGs são usados em diversas aplicações


criptográficas e de segurança

3
Conceitos
• Uso de números aleatórios
 Esquemas de distribuição de chave e de autenticação
recíproca (mútua)
 Geração de chave de sessão
 chave secreta para encriptação simétrica é gerada ao uso para
determinada transação (ou sessão)
 válida por um curto período de tempo
 Geração de chaves para o algoritmo de encriptação de
chave pública RSA
 Geração de fluxo de bits para a encriptação de fluxo
simétrica

4
Conceitos
• Requisitos
 Aleatoriedade
 Distribuição uniforme
 Independência
 nenhum valor da sequência pode ser deduzido a partir dos
outros
 Imprevisibilidade
 um oponente não deve ser capaz de prever elementos futuros da
sequência com base nos anteriores
 importante para:
 autenticação recíproca
 geração de chave de sessão
 cifras de fluxo
5
Conceitos
• Ossistemas operacionais normalmente oferecem
um mecanismo embutido para gerar números
aleatórios.
 Linux
 utiliza 4 fontes de entropia
 atividade do mouse
 atividade do teclado
 operações de E/S de disco
 interrupções específicas
 fontes são combinadas em um buffer de junção
 Quando bits aleatórios são necessários, o número solicitado de
bits é lido do buffer e passado pela função de hash SHA-1
6
TRNG
• Fonte de entropia
 Entrada que é efetivamente aleatória
 não determinística
 Ex
 padrões de temporização dos toques de tecla
 atividade elétrica do disco
 movimentos do mouse
 valores instantâneos do clock do sistema

7
TRNG
• RFC 4086
 Entrada de som/vídeo
 Unidades de disco
• Umaou mais fontes de entropia servem como
entrada para um algoritmo que produz uma
saída binária aleatória

8
PRNG
• Toma como entrada um valor fixo
 semente

• Produzuma sequência de bits de saída usando


um algoritmo determinístico
• Fluxode bits de saída é estabelecido unicamente
pelo valor ou valores da entrada
 se um adversário conhecer o algoritmo e a semente, este
será capaz de reproduzir o fluxo de bits

9
PRNG
• Algoritmos determinísticos
 produzem sequências de números que não são estatisticamente
aleatórios
 se for bom, as sequências resultantes passarão muitos testes de
aleatoriedade
 Números pseudoaleatórios
 sob a maioria das circunstâncias, os números pseudoaleatórios
funcionarão tão bem quanto se fossem aleatórios para determinado
uso

10
PRNG
• PRNG
 gera sequência de bits tão grande quanto necessária
 é como uma entrada para uma cifra de fluxo simétrica
• PRF
 função pseudoaleatória
 produz cadeia de bits pseudoaleatória, com algum
comprimento fixo
 uso
 chave de encriptação simétrica
 nonce

11
PRNG
• Requisitos
 um adversário que não conhece a semente deve
ser incapaz de determinar a sequência
pseudoaleatória
 a semente deve ser imprevisível

12
PRNG
• Se existe TRNG, por que usar PRNG?
 Se a aplicação é uma cifra de fluxo, então um TRNG não
é prático
 Como transmitir o fluxo para o receptor?
 Se for um PRGN basta transmitir a semente (chave)
 Como gerar PRNGs?
 Cifras de bloco simétricas
 para qualquer bloco de texto claro, uma cifra de bloco simétrica
produz um bloco de saída aparentemente aleatório
 não existem padrões ou regularidades no texto cifrado
 Cifras assimétricas
 Funções de hash e códigos de autenticação de mensagem
13
TRNG x PRNG

14
Cifras de fluxo
• Uma cifra de fluxo típica encripta um byte de texto claro
por vez
• pode ser projetada para operar sobre unidades maiores
• a cifra de fluxo é semelhante ao one-time-pad
 cifra de fluxo
 usa números pseudoaleatórios
 OTP
 usa número aleatório genuíno

15
Cifras de fluxo
• A sequência de encriptação deverá ter um período grande
• um gerador de número pseudoaleatório usa uma função que produz
um fluxo determinístico de bits que se repete
• Quanto maior o período de repetição, mais difícil será fazer a
criptoanálise
• O fluxo de chaves deverá se aproximar o máximo possível das
propriedades de um fluxo de número aleatório verdadeiro
• Para proteção contra força bruta, a chave precisa ser suficientemente
longa
• Com um gerador de número pseudoaleatório projetado corretamente,
uma cifra de fluxo pode ser tão segura quanto uma de bloco com
tamanho de chave semelhante
16
Cifras de fluxo
• Vantagens da cifra de fluxo
 é mais rápida
 emprega menos linhas de código

• Vantagem da cifra de bloco


 pode reutilizar a chave

17
RC4
• Criado em 1987 por Ron Rivest
• operações orientadas a byte
• algoritmo é baseado no uso de uma permutação aleatória
• período é (muito provavelmente) maior que 10^100
• De 8 a 16 operações de máquina são necessárias por byte
de saída
• cifra pode executar muito rapidamente em software

18
RC4
• Utilização
 SSL/TLS
 WEP
 WPA

• Chave de tamanho variável


 1 a 256 bytes
 8 a 2048 bits

• O algoritmo é forte
 o problema de segurança no WEP não está no RC4, mas na forma
como as chaves são geradas para uso como entrada do RC4

19
Questões para revisão

• Qual é a diferença entre aleatoriedades estatísticas e


imprevisibilidade?
• Liste considerações de projeto importantes para uma cifra de fluxo
• Por que é desejável não reutilizar uma chave de cifra de fluxo?

20
Bibliografia

• Criptografia e Segurança de Redes


 6ª Edição
 Ed. Pearson
 Autor: William Stallings
 Capítulo 7

• Criado por: Prof. Dr. Daniel Vecchiato

21

Você também pode gostar