Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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
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
• 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
20
Bibliografia
21