Núcleo de Computação Eletrônica
Universidade Federal do Rio de Janeiro
Segurança em Redes
Aula 4
Luiz Fernando Rust
INMETRO
Tel. (021) 2679-9072
e-mail:
[email protected]
[email protected]
11
Criptografia Convencional
• CriptoAnálise
–
–
–
–
–
Linear
Diferencial
Timming Analysis
Power Analysis
Differential Fault analysis
• IDEA
• AES
2
Criptoanálise Linear
•
•
•
Ataque de texto-limpo conhecido
H. Heys, A tutorial on Linear and Differential Cryptamalysis
Idéia básica
– Aproxima S-boxes por funções lineares (ou afins)
– Exclusive-or “soma” de bits de entrada u e bits de saída 
– Para u e  aleatórios
• probabilidade da expressão ser satisfeita é ½
– Dado uma Probabilidade Linear pL (expressão linear ser satisfeita),
define-se desvio (bias) como
• pL - 1/2
– Quanto maior o desvio ( І pL - ½ І ), melhor a aplicabilidade da
criptoanálise linear com menos textos conhecidos
– Achar expressões que tenham alta ou baixa probabilidade de serem
satisfeitas (alto desvio)
3
Codificador
• S- Boxes
4
Mapeando um S-box
• Exemplo:
– X2 X3 y1 y3 y4 = 0 ou X2 X3 =y1 y3 y4
– Aplicando os 16 possíveis valores de X e examinando os
valores de Y, verifica-se sucesso em 12 dos16 casos
• o desvio de probabilidade é 12/16 –1/2
5
Generalizando mapeamento no S-box
• Entrada (horizontal)
• Saída (vertical)
• Valor representa o desvio (número de acertos – 8) * 16
6
Aproximação linear para o codificador inteiro
• Apenas para os 3 primeiros rounds
7
Piling-UP
•
Desvio
8
Extração dos bits da chave
• Aplicando Piling-UP
– Com probabilidade 15/32 e desvio = 1/32
• Processo envolve decodificação parcial do último round
• Testar todos os valores de subchaves possíveis
• Exemplo
–
–
–
–
–
–
10000 amostras (texto claro/texto cifrado)
Fazer ou-exclusivo do texto cifrado com a subchave em teste
Resultado é aplicado na função reversa do S-box
Valor é comparado com a função linear aplicada no texto claro
Se igual incrementa o contador da subchave
Valor correto da chave é aquele que tiver maior desvio
• Desvio = І contador – 5000 І / 10000
9
Chave do exemplo anterior
10
Criptoanálise Diferencial
• Desenvolvida em 1990 por Eli Biham e Adi Shamir
• Ataque de texto limpo escolhido
• Compara o comportamento do texto cifrado para blocos
com diferenças pré-determinadas
• Analisa as diferenças no processamento das Sboxes do
último round de forma a determinar a chave utilizada nesse
round
• Os bits restantes da chave (8) podem ser obtidos por força
bruta
11
Round no DES (função F)
• Propriedades importantes
12
Princípios
•
No projeto das S-boxes existiu a preocupação de garantir que é
produzida uma saída aleatória face a uma entrada aleatória
•
Porém, a diferença dos resultados de uma S-box para pares de
entradas com uma diferença determinada não é mais aleatória
•
Exemplo para S-1
– Frequência da diferença dos resultados nos pares de entrada com
diferença 01 (64 possíveis pares)
– comportamento está longe de ser aleatório
– muitas das possibilidades de resultado estão excluidas (0,1,2,4,8)
– maior probabilidade de ocorrer certos resultados
13
Tabela de distribuição de S1 - Probabilidade de saída
14
Exemplo
• Pode-se determinar também as entradas e as saídas
– Exemplo: Diferença de entrada = 34
15
Como achar K?
•
•
•
Dado S1E = 1 e S1E* = 35
Pela tabela verificamos que existem 8 formas de mapear 34 com D
Pela construção da tabela determinamos que K X tem de ser
– 06, 10, 16, 1C, 22, 24, 28, 32.
16
Como achar K?
•
•
•
Repetindo o mesmo raciocínio para S1E = 21 e S1E* = 15
Pela tabela verificamos que existem 6 formas de mapear 34 com 3
Pela construção da tabela determinamos que K X tem de ser
– 01, 02, 15, 21, 35, 36
•
Chave (K)
– Determinada pela intersecção dos conjuntos de possibilidades
– 17 ou 23
17
Ataque n-rounds
•
A cripto-análise diferencial baseia-se no conhecimento das
diferenças na entrada/saída das S-boxes...
•
As diferenças nas entradas da S-box do último round são
diretamente calculadas dos criptogramas disponíveis
•
Já as diferenças na saída terão de ser calculadas com base em
estimativas
•
Motivo pelo qual a viabilidade da criptoanálise diferencial é
fortemente influenciada pelo número de rounds
•
...para 3 rounds é possível conduzir uma análise determinística
•
Para mais do que isso é necessário uma abordagem probabilística
que aumenta muito o número de pares texto limpo/criptograma a
analisar e complica substancialmente o ataque
18
Ataque n-rounds
• Gerar características diferenciais até o penúltimo round
• Fazer decodificação parcial do último round
– Testar todos os valores de subchaves possíveis
• Exemplo
– Tabela de distribuição do codificador do tutorial de H. Heys, (A tutorial
on Linear and Differential Cryptamalysis(
19
Características Diferenciais
• Usando
20
Extração dos bits da chave
•
Conactenando S-boxes
– Com probabilidade
•
•
•
Processo envolve decodificação parcial do último round
Testar todos os valores de subchaves possíveis
Exemplo
–
–
–
–
5000 amostras (texto claro/texto cifrado)
Fazer ou-exclusivo do par de textos cifrados com a subchave em teste
Resultado é aplicado na função reversa do S-box
Valor é comparado com as diferenças obtidas para cada par de textos
claros correspondente
– Se igual incrementa o contador da subchave
– Valor correto da chave é aquele que tiver maior valor no contador
• prob = contador / 5000
21
Chave do exemplo anterior
22
Resumo de resultados da Criptoanálise diferencial
23
Outras Técnicas de Criptoanálise
• Muitas técnicas de cripto-análise não atacam diretamente o
algoritmo criptográfico mas procuram retirar informação do
“ambiente” onde este é executado
– Power analysis
– Timming analysis
– Differential fault analysis
• Estas técnicas não são, de forma alguma, específicas do
DES
• Algumas são até particularmente adequadas para atacar
cifras assimétricas
24
Timming Analysis
• Analisa tempos de execução das operações criptográficas
de forma a retirar informação sobre os parâmetros do
algoritmo
– Particularmente efetiva para algoritmos assimétricos, onde as
operações são fortemente dependentes dos dados (e.g.
Exponenciação modular)
– Cuidados especiais nas implementações dificultam ataques
(e.g. dummy code; randomized delays; etc.)
25
Power Analysis
• Retira informação dos
parâmetros dos
algoritmos por análise
do consumo de
energia
– Execuções
condicionais
– Escalonamento das
chaves
– Permutações
Divergência do relógio no ciclo 6
indica execução condicional...
26
Differential Fault analysis
• Comparam a execução do algoritmo com uma onde são
induzidos erros na sua execução
–
–
–
–
Induz-se um erro num dos bits do último round
Por analise diferencial, determina-se chave do round
Restantes bits por força bruta...
Vocacionada para atacar dispositivos “tamper proof” (e.g.
Smartcards)
27
International Data Encryption Algorithm (IDEA)
•
Criado em 1991 por James Massey e Xuejia Lai
•
Possui patente da suíça ASCOM Systec
•
Estruturado seguindo as mesmas linhas gerais do DES
– também é um cifrador de bloco iterativo, com um bloco de
tamanho igual a 64 bits e um tamanho de chave de 128 bits
– Possui apenas 8 iterações (DES possui 16)
– Cada iteração IDEA funciona como se fosse uma dupla
iteração DES
•
Na maioria dos microprocessadores, uma implementação por
software do IDEA é mais rápida do que uma implementação por
software do DES
•
•
Considerado um dos mais seguros codificadores atuais
Usado no PGP
28
IDEA
• Texto pleno organizado em blocos de 64 bits
• Confusão e difusão são gerados por grupos algébricos
– XOR
– Adição mod (216)
– Multiplicação mod (216 + 1) – também visto com S-boxes
• Todas as operações incidem em blocos de 16 bits
• Blocos de dados são divididos em 4 blocos de 16 bits
• Utiliza 8 rodadas e cada rodada tem 14 passos
29
IDEA - Rodadas
Exceto para a última rodada,
swap Y2 e Y3
Depois da última
rodada (oitava):
30
IDEA: Interações
X1
Z1
X2
X3
Z2
Z3
X4
Z4
Z5
uma
iteração
Z6
mais 7
iterações
Z1
Z2
Y1
Saída Final
Z3
Y2
Z4
Y3
Y4
XOR bit a bit dos sub-blocos de 16 bits.
Adição módulo 216 de inteiros de 16 bits.
Multiplicação módulo 216+1 de inteiros de 16 bits
com o sub-bloco zero correspondendo a 216.
31
IDEA – Geração de chaves
• Usa um total de 52 subchaves
• 6 em cada uma das 8 rodadas e 4 na operação de saída
• Chave original K é dividida em 8 subchaves de 16 bits
– 6 primeiras são usadas no primeiro round
– As duas restantes ficam para o segundo round
– Desloca chave 25 bits para esquerda e divide novamente em 8
subchaves
– Usa as quatro primeiras para completar as chaves do
segundo round
– As quatro restantes ficam para o terceiro round
– Desloca chave 25 bits para esquerda e divide novamente em 8
subchaves
– Assim sucessivamente....
32
IDEA considerações
• Velocidade
– Implementações atuais rodam duas vezes mais rápidas que o
DES
• Criptoanálise
– Ataque de força bruta necessita 2128
– Parece ser imune a ataques diferenciais (pouco estudo ainda)
– Algumas classe de chaves podem facilitar ataques do tipo
texto pleno escolhido, mas nunca serão usadas
33
Advanced Encryption Standard
•
•
Programa iniciado em 1997 pelo NIST para substituir o DES
AES: novo padrão durante os próximos 30 anos (e vida útil de
outros 50 ou 60 anos)
– Obs: AES deverá proteger informações até o século XXII!
•
Requisitos do sucessor do DES
–
–
–
–
–
•
•
ter chaves de 128, 192 e 256 bits
operar com blocos de 128 bits
ser “eficiente”
ser “flexível”
estar livre de royalties
Quinze candidatos foram selecionados em jun/98
Cinco candidatos em 1999: Serpent, Mars, RC6, Twofish e Rijndael
34
Advanced Encryption Standard
•
AES foi adotado o pelo National Institute of Standards and
Technology (NIST) como US FIPS PUB 197 em Novembro de 2001
depois de um processo de padronização de 5 anos
•
Concorrentes
– Rijndael (86 votos) - anunciado vencedor em Outubro de 2000
•
–
Rijndael can be pronounced "Rhine dahl", a long “i" and a silent “e“
• Desenvolvido por Joan Daemen e Vincent Rijmen (Rijmen-Daemen - Bélgica)
Serpent (59 votos)
– Mars (13 votos)
– RC6 (23 votos)
– Twofish (31votos)
•
Pela primeira vez um codificador público é usado plo NSA para
informação Top Secret
–
"The design and strength of all key lengths of the AES algorithm (i.e., 128, 192 and 256) are
sufficient to protect classified information up to the SECRET level. TOP SECRET information
will require use of either the 192 or 256 key lengths. The implementation of AES in products
intended to protect national security systems and/or information must be reviewed and
certified by NSA prior to their acquisition and use."
35
Rijndael
• Características
–
–
–
–
–
operações realizadas no nível de byte
tamanhos de chaves: 128, 192, 256 bits
tamanhos de blocos: 128, 192, 256 bits
número de rodadas: 9, 11, 13 (além de uma rodada
extra no final)
• Opera em arrays de 4×4 de bytes –
– Denominado estado
– Versões com blocos maiores operam com colunas adicionais
• Cada rodada composta de quatro passos
–
–
–
–
substituição de bytes
deslocamento de linhas
mistura de colunas,
soma da subchave de rodada
36
Substituição de bytes
0
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
0
63
7c
77
7b
f2
6b
6f
c5
30
01
67
2b
fe
d7
ab
76
1
ca
82
c9
7d
fa
59
47
f0
ad
d4
a2
af
9c
a4
72
c0
2
b7
fd
93
26
36
3f
f7
cc
34
a5
e5
f1
71
d8
31
15
3
04
c7
23
c3
18
96
05
9a
07
12
80
e2
eb
27
b2
75
4
09
83
2c
1a
1b
6e
5a
a0
52
3b
d6
b3
29
e3
2f
84
5
53
d1
00
ed
20
fc
b1
5b
6a
cb
be
39
4a
4c
58
cf
6
d0
ef
aa
fb
43
4d
33
85
45
f9
02
7f
50
3c
9f
a8
7
51
a3
40
8f
92
9d
38
f5
bc
b6
da
21
10
ff
f3
d2
8
cd
0c
13
ec
5f
97
44
17
c4
a7
7e
3d
64
5d
19
73
9
60
81
4f
dc
22
2a
90
88
46
ee
b8
14
de
5e
0b
db
a
e0
32
3a
0a
49
06
24
5c
c2
d3
ac
62
91
95
e4
79
b
e7
c8
37
6d
8d
d5
4e
a9
6c
56
f4
ea
65
7a
ae
08
c
ba
78
25
2e
1c
a6
b4
c6
e8
dd
74
1f
4b
bd
8b
8a
d
70
3e
b5
66
48
03
f6
0e
61
35
57
b9
86
c1
1d
9e
e
e1
f8
98
11
69
d9
8e
94
9b
1e
87
e9
ce
55
28
df
f
8c
a1
89
0d
bf
e6
42
68
41
99
2d
0f
b0
54
bb
16
37
Deslocamento de linhas
38
Mistura de colunas
39
Soma da subchave de rodada
40
AES completo
41
CriptoAnálise do AES
•
Pela primeira vez a Matemática envolvida é completamente aberta
•
Ataques conhecidos
– Quebras com codificadores que implementam um menor número de
rodadas
• 7/10 - 128, 8/12 – 192, 9/14 – 256
– Preocupações com a margem pequena entre o número de rodadas
passíveis de quebra e o padronizado
– Quebra criptográfica é qualquer coisa melhor que uma busca exaustiva
– Como uma busca exaustiva envolve pelo menos 2128...
•
Ataque téorico proposto em 2002 – XSL attack
– Erros nas estimativas
•
Cache timing attack
– Ataque não contra o AES mas contra implementações mal-feitas do AES
– Servidor usando OpenSSL sem restrição de tempo
– Recomendação do autor -> não usar S-box
42
Outros Algoritmos Simétricos
•
Blowfish (32-448 bits)
–
–
–
–
–
•
Não patenteado
Fácil implementar
Alta velocidade de execução
Roda em emenos de 5K de memória
S-boxes dependem dos dados
Skipjack (80 bits)
– Utilizado no Clipper e Fortezza
– Desenvolvido pela NSA
– Em domínio público desde jun/98
•
CAST-128 e CAST-256
– 128 e 256 bits, patenteado pela Nortel (não há royalties)
– As funções variam de rodada para rodada
43
Outros Algoritmos Simétricos
•
RC5 e RC28
– Projetados por Ron Rivest (o R da empresa RSA Data Security Inc.)
– Também é o autor do RC4 e RC6, este último foi concorrente ao AES
– RC5
•
•
•
•
•
•
•
Rápido, Simples
Adaptável para processadores com diferentes tamanhos de palavra
Número variável de rodadas
Chave de tamanho variável
Baixa necessidade de memória
Alta segurança
Rotações dependentes dos dados
– RC28
• Utilizado no protocolo S/MIME
• Voltado para criptografia de e-mail corporativo
• Também possui chave de tamanho variável
44
Download

Mestrado2009