Anda di halaman 1dari 217

Criptografia Aplicada Jean E. Martina, Ph.D. Jean.Martina@cl.cam.ac.uk everson@inf.ufsc.

br

Tendncias em (In)Segurana

Ameaa: Ataque:

Arquitetura de Segurana OSI

Potencial de violao Investida em uma ameaa

Mecanismo de Segurana:
Processo parada detectar ou prevenir ataques

Servios de Segurana:
Um processo que aumenta a segurana dos dados

Ataques Passivos
Vazamento de Informao:
Engenharia Social Descuido

Analise de Trafego:
Posicionamento Privilegiado Inferncia para obter a informao

Ataques passivos so difceis de detectar porque no alteram os dados

Ataques Ativos
Mascaramento
A acredita que C B

Repetio
Re-uso de informao trocada por A e B

Modificao de Mensagens
Alterao do contedo da mensagem entre A e B

Negao de Servios
Preveno da comunicao entre A e B

Servios de Segurana (RFC 2828)


Autenticao
Autenticao da contra-parte Autenticao dos dados

Controle de Acesso Confidencialidade Integridade No Repudio (Origem e Destino) Disponibilidade

Mecanismos de Segurana
Cifragem Assinatura Digital Controle de Acesso Controle de Integridade Autenticao Mutua Padding de trafego Controle de roteamento Notarizao

Cifragem Tcnicas Clssicas


Modelo de Cifragem Simtrica Tcnicas de Substituio Tcnicas de Transposio Maquinas de Rotores Esteganografia

Modelo de Cifragem Simtrica


Texto Claro Algoritmo de Cifrao Chave Secreta Texto Cifrado Algoritmo de Decifrao

Modelo de Cifragem Simtrica

Criptografia x Criptoanlise
Criptografia
Operaes no texto claro para texto cifrado Numero de Chaves A forma como o texto claro processado

Criptoanlise
Ataque na natureza do algoritmo Caractersticas do texto (claro e cifrado) Fora Bruta

Modelo de Criptoanlise

Criptoanlise
Tipo de Ataque Texto Cifrado Somente Texto Claro Conhecido Texto Claro Escolhido Acessvel ao Criptoanalista Algoritmo, texto cifrado Algoritmo, texto cifrado, pares texto claro-texto cifrado Algoritmo, texto cifrado, pares texto claro-texto cifrado, texto claro escolhido pelo crypotoanalista Algoritmo, texto cifrado, pares texto claro-texto cifrado, texto cifrado escolhido pelo crypotoanalista Algoritmo, texto cifrado, pares texto claro-texto cifrado, texto claro escolhido pelo crypotoanalista, texto cifrado escolhido pelo crypotoanalista

Texto Cifrado Escolhido

Texto Escolhido

Incondicional

Incondicionalmente Seguro x Computacionalmente Seguro


Texto cifrado no contm informao suficiente para determinar o texto claro

Computacional
Custo de quebrar excede o valor do ativo O tempo requerido maior que a vida til do ativo

Tcnicas de Substituio
Cifrador de Cesar Cifradores Mono-alfabticos Playfair Cifradores Poli-alfabticos Cifrador de Veginre Cifrador de Vernam One-time pad

Cifrador de Cesar
Claro: Me encontre depois da aula Cifrado: PHHQF RQWUH GHSRL VGDDX OD C = E( p + 3 ) mod 26 Criptoanlise:
Fora Bruta
25 chaves para tentar

Cifradores Mono-alfabticos
Mapeia de um alfabeto para outro alfabeto Troca de uma letra por outra letra qualquer Espao de Chaves:
26! = 4 x 10 26 Maior que DES

Criptoanlise:
Anlise de freqncia Analise de duplas, triplas

Freqncia Relativa das Letras


Letra a b c d e f g h i j k l m n o p q r s t u v w x y 7.636% 0.901% 3.260% 3.669% 14.715% 1.066% 0.866% 0.737% 7.529% 0.545% 0.049% 5.456% 2.968% 7.095% 5.378% 3.021% 1.362% 6.553% 7.948% 7.244% 6.311% 1.628% 0.114% 0.387% 0.308% 6.51% 1.89% 3.06% 5.08% 17.40% 1.66% 3.01% 4.76% 7.55% 0.27% 1.21% 3.44% 2.53% 9.78% 2.51% 0.79% 0.02% 7.00% 7.27% 6.15% 4.35% 0.67% 1.89% 0.03% 0.04% 12.53% 1.42% 4.68% 5.86% 13.68% 0.69% 1.01% 0.70% 6.25% 0.44% 0.01% 4.97% 3.15% 6.71% 8.68% 2.51% 0.88% 6.87% 7.98% 4.63% 3.93% 0.90% 0.02% 0.22% 0.90% 14.63% 1.04% 3.88% 4.99% 12.57% 1.02% 1.30% 1.28% 6.18% 0.40% 0.02% 2.78% 4.74% 5.05% 10.73% 2.52% 1.20% 6.53% 7.81% 4.74% 4.63% 1.67% 0.01% 0.21% 0.01% 11.74% 0.92% 4.5% 3.73% 11.79% 0.95% 1.64% 1.54% 11.28% 0.00% 0.00% 6.51% 2.51% 6.88% 9.83% 3.05% 0.51% 6.37% 4.98% 5.62% 3.01% 2.10% 0.00% 0.00% 0.00% 9.3% 1.3% 1.3% 4.5% 9.9% 2.0% 3.3% 2.1% 5.1% 0.7% 3.2% 5.2% 3.5% 8.8% 4.1% 1.7% 0.007% 8.3% 6.3% 8.7% 1.8% 2.4% 0.03% 0.1% 0.6% 8.0% 1.3% 3.8% 3.0% 6.9% 0.1% 1.0% 1.0% 7.0% 1.9% 2.7% 3.1% 2.4% 4.7% 7.1% 2.4% 3.5% 3.8% 2.4% 1.8% 3.6% 3.2%

Playfair
Cifra pares de letras Pares na mesma linha Direita Pares na mesma coluna Abaixo Esconde digramas Analises de freqncia muito mais E G U R difcil S
O F M U A H N V B I/J P W C K Q X D L T Z

Cifradores Poli-Alfabticos
Usam um conjunto de substituies mono-alfabticas Uma chave determina como a transformao dada Ofusca as informaes de freqncia Nem toda a estrutura perdida

Cifrador de Veginre
Chave: segurosegurosegu Claro: aulanosabadoebom Cifrado: SYRUECJEHUUWFUG Ataque:
Determinar o tamanho da chave Distncia da repetio no texto cifrado

Cifrador de Vernam
Transformao do texto em bits Transformao da chave em bits Ou-Exclusivo bit a bit Ci = Pi Ki Ataque:
Tamanho da chave exige repetio Texto claro conhecido

One-Time Pad
Chave de igual tamanho ao texto claro Incondicionalmente seguro Cifrado Veginre:

Tcnicas de Transposio
Permutao no texto claro Ci t gaieai Rporfafcl Matriz escrita em linha e recuperada em colunas
Chave pode ser a ordem das colunas

Varias permutaes confundem a Criptoanlise

Maquinas de Rotores
Enigma
Criptoanlise: Trabalho de Turing

Sistema eletro-mecnico Conjunto de cilindros independentes Cada cilindro um cifrador monoalfabtico Chave:
Ordem dos Rotores, posio inicial, posio do alfabeto, ligao do teclado, retroalimentao

Esteganografia
Mensagem escondida em mdia portadora Objetivo: Repdio do Envio Tcnicas clssicas:
Marcao de caracteres Tinta invisvel

Tcnicas Modernas
Imagens Audio Cabealhos de Rede

Cifradores Simtricos
Mesma chave para cifra e decifrar 2 categorias:
Bloco Stream

Criptoanlise:
Diferencial Linear

Confuso x Difuso
Confuso:
Complexidade da relao texto cifrado x chave Protege a chave

Difuso:
Dissipao da estrutura estatstica 1 dgito de entrada afeta n dgitos de sada Dissimula freqncia do texto claro

Redes de Feistel
Substituio Permutao Tamanho de Bloco Tamanho de Chave Numero de rodadas Gerao de sub-chaves Funo de rodada Velocidade de cifragem/decifragem

Redes de Feistel

Redes de Feistel
Lei = Rei-1 Rei = Lei-1 x F(Rei-1,Ki) Cifragem e Decifragem com o mesmo algoritimo Pelo menos 3 rounds para comear a ter difuso e confuso

DES Data Encryption Standard


FIPS Pub 46 IBM Lucifer [1971] Baseado em rede de Feistel Chave de 56 bits (64 com paridade) Permutaes Caixas S tima implementao em Hardware

DES Ilustrado

DES Permutao inicial

IP-1(IP(M))=M Adicionam Difuso

DES Estrutura de 1 Rodada

DES - Permutao de Expanso

DES Funo de Permutao

DES Funo (R,K)

DES Caixas S

DES Gerao de Subchaves

DES Escolha Permutada 1

DES Tabela de Rotao a Esquerda

DES Escolha Permutada 2

Efeito Avalanche no DES

DES - Fora Criptogrfica


2 = 7.2 x 10 1977 US$ 20 Milhes = 10 horas 1998 US$ 250mil = 70 horas Hoje US$ 10mil = minutos No foram descobertas ate hoje falhas nas caixas S Suscetvel a ataques de tempo
56
16

Criptoanlise Diferencial
Ataque no DES por Biham e Shamir
Reduo do espao de busca para 247

Factvel em verses com menos rodadas Conhecida pela equipe do LUCIFER em 1974 Baseado na diferena XOR de dois textos claros Probabilidade de bits em caixas S

Criptoanlise Linear
Ataque baseado em aproximaes lineares
Reduo do espao de busca para 243

Ataque de texto claro escolhido Pode ser usado uma rodada de cada vez por ser linear Combina os resultados achados em vrias rodadas

Matemtica Criptogrfica
Grupos, Anis e Corpos Aritmtica Modular Algoritmo de Euclides Aritmtica Polinomial n Corpos Finitos GF(2 )

lgebra Abstrata Grupos


{G, .} so conjuntos de elementos com uma operao binria denotada por . que associa pares ordenados em G, onde:
Fechamento: Se a ^ b a . bG G Associatividade: a . (b . c) = (a . b) . c Identidade: a . e = e . a = a aG Inverso: a' | a' . a = a . a' = e

lgebra Abstrata - Grupos


Se o numero de elementos finito, chamase Grupo finito Grupo Abeliano: Comutatividade: a .b = b . a a,bG Grupo Cclico: 3 a =a.a.a 0 a =e k G cclico se xG x = a ^ aG ^ kN Cclico sempre Abeliano

lgebra Abstrata - Anis


{R,+,x} um conjunto de elementos com duas operaes binrias chamadas adio e multiplicao para todos a e b, onde:
R R R R um grupo Abeliano para adio tem fechamento sob multiplicao tem associatividade sob multiplicao tem distributividade:

a(b+c) = ab +ac a,b,cG (a+b)c = ac + bc a,b,cG

lgebra Abstrata - Anis


Anel Cumulativo:
Comutatividade da multiplicao: ab = ba

Domnio integral:
Identidade Multiplicativa: a1 = 1a = a Sem diviso por zero:
Ab = 0 nem a = 0 ou b = 0

lgebra Abstrata - Corpos


{F,+,x} um conjunto de elementos com duas operaes binrias chamadas adio e multiplicao tal que:
F um domnio integral F tem multiplicativa inversa:
aF, exceto 0, a F | aa = (a )a = 1
-1 -1 -1

Um Corpo um conjunto onde se pode adicionar, subtrair , multiplicar e dividir sem deixar o conjunto

lgebra Abstrata - Relaes

Aritmtica Modular
a um inteiro e n um inteiro positivo a mod n o resto da diviso de a por n A= [a/n] x n + (a mod n) Congruncia modulo n:
(a mod n) = (b mod n) a b (mod n)

a b (mod n) b a (mod n) a b (mod n) e b c a c (mod n)

[(a mod n) + (b mod n)] = (a + b) mod n [(a mod n) - (b mod n)] = (a - b) mod n [(a mod n) x (b mod n)] = (a x b) mod n (a + b) (a + c) mod n b c mod n Zn uma anel comutativo com identidade multiplicativa para mod n

Aritmtica Modular Operaes

Algoritmo de Euclides
Mximo Divisor Comum
c um divisor de a e b Qualquer divisor de a e b divisor de c

gcd (a, b) = gcd (b, a mod b ) gcd (a,b)


1. A a; B b 2. If B = 0 return A = gcd (a,b) 3. R = A mod B 4. A B; B R 5. goto 2

Corpos Finitos GF(p)


Zp{0,1,...p-1} e as operaes so mod p Tem multiplicativa inversa, porque p relativamente primo por ser primo GF(p) tem p elementos As operaes + e x so definidas no conjunto
Adio, subtrao, multiplicao e diviso so possveis

Aritmtica Polinomial
Polinmio:
f(x)= anx + an-1x
n n-1

+ + a1x + a0

n o grau do polinmio S: conjunto de nmeros formados por ai Aritmtica dividida em 3 classes:


Ordinria: regras bsicas de lgebra Modular: aritmticas no coeficientes mod p Modular Polinomial: mod p, onde p=

Polinmio constante: grau zero Polinmio mono: an = 1 Em lgebra abstrata x o indeterminado


No nos interessa resolve-lo

Aritmtica Polinomial Ordinria

Aritmtica Polinomial inclui adio subtrao e multiplicao Diviso requer que o conjunto S seja um corpo
Nmeros reais, Racionais, Zp

Aritmtica Polinomial Ordinria


Adio e Subtrao
Adiciona-se ou subtrai-se os expoentes

Multiplicao
Multiplica-se os polinmios elemento a elemento

Diviso
Racionais: 5/3, Mod 7: (5 x 5 ) mod 7 = 4, Naturais: 5/3 = 1 x3 + 2

Aritmtica Polinomial mod p


Opera sobre um campo finito mod p Diviso possvel, porque GF(p) tem mutiplicativa inversa Podemos calcular o MDC de dois polinmios

Corpos Finitos de Gallois GF(2 )


GF(2) o corpo finito mais simples
+ XOR , x AND

Polinmio irredutvel x4 +1 Usamos um polinmio primo sob o Corpo um polinmio elevado a outro polinmio Para algoritmos a serem executados em maquinas de base 8 bits usa-se

Corpos Finitos de Gallois GF(2 )


GF(2) o corpo finito mais simples
+ XOR , x AND

Polinmio irredutvel x4 +1 Usamos um polinmio primo sob o Corpo um polinmio elevado a outro polinmio Para algoritmos a serem executados em maquinas de base 8 bits usa-se

AES Advance Encryption Standard


Cifrador de bloco para substituir o DES Competio em 2001, Chamada em 1997
21 algoritmos, 15 candidatos, 5 finalistas, Rijndael vencedor

Suporte a 128, 192 e 256 bits No usa Feistel Rounds:


Substituio de byte, permutao,

AES Critrios de Avaliao Inicial


Segurana:
Esforo comprovado para ataque de criptoanlise

Custo Computacional:
Eficiente em software e hardware. Links de alta velocidade

Caractersticas do Algoritmo:
Flexibilidade, compatibilidade e simplicidade

Segurana verificada pela comunidade Implementao em Software Restries de espao e implementao em hardware Ataques nas implementaes Cifragem x Decifragem Agilidade de chaves Paralelismo em nvel de instruo

AES Critrios Intermedirios

AES - Cifrador
Tamanho de bloco sempre 128 bits Tamanho de Chave Varivel (128,192,256) Rijndael
Resistncia a ataques conhecidos Velocidade e tamanho em variadas plataformas Simplicidade

AES Cifragem e Decifragem

AES Estrutura de Dados

AES - Estrutura
Chave expandida por matriz Quatro estgios por rodada:
Byte Sub: Caixa S GF (28) ShiftRows: Permutao 8 MixColumns: Substituio GF (2 ) AddRoundKey:XOR com chave de rodada

XOR da chave + 9 rodadas cheias + 3 passos da ultima rodada

AES - Estrutura
Chave s entra em AddRoundKey AddRoundKey um cifrador de Vernam Cada estgio facilmente reversvel
Chave + confuso, difuso e no linearidade

Reversibilidade por XOR Decifragem usa chave na ordem invertida

AES - Estrutura

AES - ByteSub
Busca em Tabela Similar a uma Caixa S Resistente a todos os ataques criptoanalticos conhecidos Criada com Base em aritmtica num 8 8 GF (2 ), com o polinmio irredutvel x 4 3 + x + x +x +1 Funcionamento byte a byte

AES Funcionamento ByteSub

AES S-Box

AES - S-Box Invertida

AES Construo S-Box


Cria-se uma matriz 16 x 16 ordenada, com pares {xy}, sendo x a linha e y a coluna. Cada byte invertido no campo finito 8 GF(2 ) e 00 mapeado para ele mesmo bi'=bib(i+4)mod8b(i+5)mod8b(i+6)mod8b(i+7) ci mod8 Inverse S-Box usa a inversa multiplicativa 8 GF (2 ), que bi' = b(i+2)mod8b(i+5)mod8b(i+7)mod8di

AES - ShiftRows
Deslocamento horizontais de n-bytes por linha
0 na primeira, 1 na segunda, 2 na terceira e 3 na quarta

Direta gira para esquerda Inversa gira para a Direita Garante que 4 bytes de uma colunas so dispersos para outras colunas

AES MixColumns
Multiplicao de uma coluna do estado por uma matriz prdeterminada Matrix 4 x 4 baseada numa 8 inverso GF(2 ) Cada elemento na matriz produto a soma dos elementos de uma linha e 8 uma coluna, tudo em GF(2 ) Implementao prtica baseada em XORs

AES - MixColumns

AES -ShiftRows e MixColumns

AES - AddRoundKey
XOR do estado com uma chave de 128 bits da rodada Cifrador de Vernam (que tem problemas) Simples, mas eficaz por causa dos outros passos e da expanso de chaves

AES Expanso de Chaves


Entram 16 bytes e saem 176 bytes Produz 4 bytes para cada sub chave A chave so os 4 primeiros bytes da chave expandida Cada byte posterior depende do byte anterior com XOR exceto o ultimo G uma funo complexa(rotao, susbtituio usando caixa S e XOR com uma constante de rodada

AES Expanso de Chaves

AES Cifrador Inverso

AES Cifrador Inverso


Troca-se:
ShiftRows InvShift Rows SubBytes InvSubBytes MixColumns InvMixColums AddRoundKey usa as chaves em ordem invertida

Em termos de implementao o mesmo algoritmo, com matrizes de valores diferentes

Cifragem Mltipla
Aplicao do mesmo algoritmos mltiplas vezes com diferentes chaves
Objetivo: Aumentar o espao de busca da chave

Meet-in-the-Middle [DIFF77]
C = E(K2, E(K1,P)) X = E(K1,P) = D(K2,P) Ataque de texto claro conhecido Quebra qualquer cifrador com dois

Double DES
Aumento da chave para 112 bits Mapeamento agora 64 (2 )! Produz mapeamentos que no so diretamente derivveis por 1 aplicao

Triple DES
Chave de 112 bits ou 168 Evita Meet-inthe-middle Pode ser EDE, ou EEE. A decifragem no muda nada criptograficamen te

Modos de Operao
Electronic Codebook -ECB Cipher Block Chaining - CBC Cipher Feedback - CFB Output Feedback - OFB Counter Mode - CTR

ECB
Cada bloco codificado de forma independente Segurana para transmisso de dados nicos

CBC
A entrada XOR do prximo bloco de texto claro e o bloco anterior cifrado Uso pra transmisso de dados e autenticao

CFB
O texto cifrado XOR com o texto claro e retroalimentado no cigfrador Uso pra transmisso de dados e autenticao

OFB
Similar a CFB. A sada do cifrador retroalimentada para gerar um stream de bits Usado em canais ruidosos

CTR
Cada bloco XORed com um contador cifrado Uso geral em transmisso de dados e em links de alta velocidade

RC4
Cifrador de Stream - Ron Rivest 1987 Tamanho de chave varivel (de 8 a 2048 bits) Super eficiente (5x mais rpido que DES no mesmo processador) Usado em SSL/TLS, WEP e WPA Setembro de 1994 deixou de ser secreto

RC4
Usa um vetor de estado que inicializado com com a chave O vetor S tem todas as permutaes de oito bits Para cifragem e decifragem um byte K selecionado de S de forma sistemtica A cada K, o vetor S permutado de novo seguro com tamanhos de chave

RC4 - Estrutura

Teoria de Nmeros
Nmeros Primos Teoremas de Euler e Fermat Teste de Primalidade Teorema Chins do Resto Logaritmo Discreto.

Nmeros Primos
Primo um inteiro que s pode ser divido por 1 e por ele mesmo sem resto Todo numero inteiro pode ser representado por uma fatorao de primos a a = pP P p 12 = a2=2, a3=1, 91 = a7=1,a13=1 Multiplicao de nmeros inteiros

Nmeros Primos
Ns podemos saber que um numero divide outro se o expoente do primeiro primo do divisor que o do dividendo Calcular o MDC de nmeros expressados em notao prima a multiplicao dos primos pelo menor exponte Isso s funciona facilmente para no primos

Distribuio de Nmeros Primos

Teorema de Fermat
Se p primo e a um inteiro positivo no divisvel por p ento ap-1 1(mod p) Forma alternativa: ap a(mod p) Requer que p e a sejam relativamente primos p=5,a=3ap=35=243 3(mod 5)=a(mod p)

Funo Totiente de Euler


A funo escrita (n) e definida como o a quantidade de nmeros relativamente primos a n menor que n (1) = 1, (35) = 24 {1,2,3,4,6,8,9,11,12,13,16,17,18,19, 22,23,24,26,27,29,31,32,33,34} (p) = p 1 (n) = (pq) = (p)x (q)= (p-1) (q-1)

Teorema de Euler
Para todo a e n que so (n) relativamente primos a 1 (mod n) a = 3, n = 10, (10) = 4 (n) 4 a = 3 = 81 1 (mod 10) = 1 (mod n) Verso alternativa: a(n)+1 a (mod n)

Teste de Primalidade
Saber se um numero primo importante para afirmar o teorema de Fermat Temos que trabalhar com nmeros das ordem de grandeza de 1024 bits Algoritmo de Miller-Rabin
Determinstico Probabilstico

Algoritmo de Miller-Rabin
Test(n) n impar 1. ache k, q inteiros k > 0, q impar | (nk 1=2 q) 2. rand(int a) 1 < a < n-1 3. Se aq mod n = 1 Inconclusivo 4. para j = 0 ate k -1 faca 2jq 5. se a mod n n 1 Inconclusivo 6. Composto

Algoritmo Miller-Rabin
Probabilidade de falha menor que (1/4)t t = diferentes valores para a Repetindo 10 vezes a probabilidade de ser falso primo de 10-6 Tem que ser inconclusivo sempre Quanto maior t, mais a certeza de que n primo

Distribuio de Nmeros Primos


Todos os pares no so primos Primos so espalhados na ordem ln(n) A probabilidade de se achar um primo 0.5 ln (n) Para se achar um primos de 200 bits 200 temos que tentar 0.5 ln (2 ) = 69 na mdia A certeza do Miller-Rabin pode custar caro

Teorema Chins do Resto


possvel reconstruir inteiros a partir de seus resduos mdulo um conjunto de nmero relativamente primos entre si Permite manipular nmeros potencialmente grandes mod M em termos de tuplas de nmeros menores Z10, mod 2 e mod 5 como fatores, r2 =0 e r5=3 tem como soluo nica x =8

Teorema Chins do Resto


973 mod 1813 (mod 37, mod 49) 973 mod 37=11, 973 mod 49=42 (11,42) 678 mod 1813 (mod 37, mod 49) 678 mod 37=12, 678 mod 49=41 (12, 41) (973 + 678) mod 1813 = (23,34) = 1651 Multiplicativa Inversa por Algoritimo de Euclides estendido M-1(37)=34 mod 49 , M-1(49)= 4 mod 37

Geradores de Nmeros Aleatrios


Uso:
Gerao de chaves Gerao de parmetros Controles de sesso

Aleatoriedade:
Distribuio uniforme fcil Independncia difcil

Estratgia similar a Miller-Rabin

Geradores de Nmeros Aleatrios


No previsibilidade nonces Soluo deterministica x no deterministica Geradores Pseudo-Aleatrios:
Desterministico Passa testes de aleatoriedade Aleatoriedade relativa

Geradores de Congruncia Linear Geradores Criptogrficos

Geradores de Congruncia Linear


Modulo m, multiplicador a, incremento c e semente inicial X0 Xn+1 = (aXn+ c) mod m, 0 Xn < m Dependente na boa escolha de parmetros
M perto ou igual a 231 Um bom a difcil um punhado em 2 bilhes pra ter um perodo prximo a m
normalmente a = 16807

Geradores Criptogrficos
Cifragem cclica
Bom para chaves de sesso

DES em OFB com a semente sendo a chave ANSI X9.17: 3 triple-DES um dos mais robustos

Logaritmo Discreto
Diffie-Hellman e DSA x loga(b)=x a =b o logaritmos calculado Zp 34 mod 17 = 13 3k = 13 (mod 17)
4 uma soluo, mas na verdade inmeras solues existem 4 + 16n =log3(13 mod 17) Equivalente a k = 4 mod 16

No existe algoritmo eficiente pra

Logaritmo Discreto
Fora bruta: elevar a base a maiores potncia de k ate achar o g certo
Linear no tamanho do grupo, mas exponencial no numero de dgitos

Funciona para criptografia, porque fcil fazer com a exponenciao Assimetria equivalente da multiplicao e fatorao de nmeros primos Eficiente em outros grupos (curvas elpticas)

Princpios de Criptosistemas de Chave Pblica


Uma chave pblica e uma privada O que feito com uma chave poder ser desfeito com outra Chave assimtrica prove:
Confidencialidade, Autenticao, e derivados

Foi criada para responder ao problema de distribuio de chaves Prov assinatura digital

Cripto-sistemas de Chave Pblica - Elementos


Texto claro Algoritmo de cifragem Par de chaves Texto cifrado Algoritmo de decifragem computacional impossvel determinar a chave privada atravs da chave pblica

Cripto-sistemas de Chave Pblica - Cifragem

Cripto-sistemas de Chave Pblica - Autenticao

Chave secreta x Chave pblica


Chave Secreta:
Funcionamento:
Mesmo algoritmo Mesma chave

Chave Pblica:
Funcionamento:
Diferentes algoritmos Pares de chaves

Segurana:
Chave secreta Impossvel quebrar sem a chave

Segurana:
Uma chave secreta Impossvel derivar a outra chave Impossvel quebrar com uma s chave

Modelo Cripto-Analtico Confidencialidade

Modelo Cripto-Analtico Autenticao

Modelo Cripto-Analtico Misto

Aplicaes de Chave Pblica


Cifragem/Decifragem Assinatura Digital Troca de Chaves

Requisitos de Chave Pblica


Fcil (computacionalmente) gerar um par (de chaves) Fcil para o remetente operar com a chave pblica Fcil para o destinatrio operar com a chave privada Impossvel determinar Kr a partir de Ku Impossvel recuperar M conhecendo Ku e C

Criptoanlise de Chave Pblica


Funo com dica de caminho nico
Y=f(x) fcil , X=f-1(Y) impossvel

Funo impossvel em todos os casos Fcil quando se conhece a dica Ataque de fora bruta ainda existe Ataque de inverso de chave Problema do menor esforo quando combinada com chave simtrica

RSA
1977, Rivest, Shamir e Adelman / MIT o algoritmo mais aceito
Base para a Web Base para assinatura digital no Brasil

Texto claro e texto cifrado so inteiros mod n n normalmente 1024 bits (309 dgitos) baseado em exponenciao mod p

RSA - Algoritmo
Blocos do tamanho de n C = Me mod n d e d ed M = C mod n = ((M ) ) mod n = M mod n Todos conhecem n, o remetente conhece e, o destinatrio conhece d Chave Pblica (n, e) Chave Privada (n, d)

RSA - Requisitos
e, d, n so escolhidos pra satisfazer Med mod n = M para todo M < n Para isso e e d devem ser multiplicativas inversas mod (n) e.d mod (n) = 1 -1 e.d 1 mod (n) d e mod (n) gcd((n),d)=1 e gcd((n),e)=1

RSA Requisitos Prticos


p, q primos: privados e escolhidos n = p.q: publico e calculado e | gcd((n),e) = 1 1 < e < (n): publico e calculado d e-1(mod (n)) Chave pblica (e, n) Chave privada (d, n)

RSA na Prtica
p = 17 e q = 11 n = porque = 17 x 11 = 187 (n) = (p 1)(q 1) = 16 x 10 = 160 e = 7, gcd(160, 7) = 1 1 < 7 < 160 d | de 1(mod 160) d < 160 d = 23 23 x 7 = 161 Ku = {7, 187} , Kr = {23, 187}

RSA Cifragrem/Decifragem Prtica


Texto Claro = 88 7 88 mod 187 = 11 Texto cifrado = 11 23 11 mod 187 = 88 Computacionalmente intensivo de fazer com nmeros grande Teorema chins do resto torna possvel

RSA - Consideraes Computacionais


Exponenciao mod p requer truques matemticos O e acaba sendo fixo em 65537 e 17. 3 sofre ataques se utilizado muitas vezes d tem que ser grande para evitar fora bruta Gerar chaves pode ser demorado pois precisamos do M-R vrias vezes em um nmero muito grande

Segurana do RSA
Fora Bruta:
Todas as possveis chaves

Ataques Matemticos:
Todos equivalente a fatorar p.q

Ataques de Tempo
Tempo gasto na decifragem

Ataques de texto cifrado escolhido:


Propriedades do RSA

RSA Ataques matemticos

http://en.wikipedia.org/wiki/RSA_Factoring_Challenge#The_prizes_and_records

Primeiro algoritmo publicado de chave pblica Objetivo: Troca segura de parmetros para estabelecer uma chave de sesso O algoritmo depende da dificuldade de calcular logaritmos discretos Raiz primitiva a mod p ap-1 mod p i b a (mod p) onde 0 i p dloga,p(b)

Troca de Chaves DiffieHellman

Diffie-Hellman - Algoritmo
Parmetros:
q numero primo, raiz primitiva de q pblicos Xa e Xb nmeros aleatrios < q Gerao de chave:
Ya = Xa mod q e Yb = Xb mod q

Segredo:
K = (Yb)Xa mod q K = (Ya)Xb mod q

O adversrios s sabe q, ,Ya e Yb

Diffie-Hellman - Exemplo
q = 353, = 3, Xa = 97 e Xb = 233 A computa:
Ya = 397 mod 353 = 40

B computa:
Yb = 3233 mod 353 = 248

A deriva:
K = 24897mod 353 = 160

B deriva:
K = 40233 mod 353 = 160

Protocolos de Troca da Chaves

Diffie-Hellman Ataque MITM


C gera Xc1, Xc2 e computa Yc1 e Yc2 C intercepta Ya de A para B, manda como Xc2 A Yc1 pra B e calcula K2=(Ya) mod q B recebe Yc1, calcula K1= (Yc1)Xb mod q B manda Yb para A, C intercepta, manda Yc2 pra A e calcula K1=(Yb)Xc1 mod q A recebe Yc2 e calcula K2=(Yc2)Xa mod q C atua como proxy

Curvas Elpticas
Resposta ao tamanho de chaves RSA
Custo computacional crescente

Mesma segurana com chaves menores Menos processamento Teoria antiga, pratica nova Pouca criptoanlise Menos confiana Muito mais difcil de entender e

Curvas Elpticas - Definies


Cifradores de chave pblica so baseados em grupos abelianos (ex. Diffie-Hellman) CE tem adio e multiplicao
Multiplicao repetio de adio

uma equao com duas variveis e coeficientes


Restritos a elementos de um campo finito

Resulta em grupos abelianos finitos

Curvas Elpticas em R
No so elipses! Se chamam assim por serem cbicas circunferncia da elipse 2 3 y = x + ax +b So cbicas porque o maior grau 3

Curvas Elpticas em R
Simetria y = 0 Elemento O ponto ao infinito
O a identidade aditiva, P(x,y) -P(x,-y)

P + Q + R = 0, P + Q + Q = 0, P + Q + 0 = 0, P + P + 0 = 0 X diferente
s=(yp-yq)/xp-xq), xr=s2-xp-xq, yr=yp+s(xr-xp)

X igual
x(3xp2-p)/(2yp), xr=s2-2xp, yr=yp+s(xr-xp)

Curvas Elpticas Zp
Para criptografia tem que ser um campo finito Curva prima: Zp eficiente em software Curva binria: GF(2m) eficiente em hardware No existe interpretao geomtrica em Zp As operaes em Z so diferentes de R Exemplo: y2 mod p = (x3 + ax + b) mod p satisfeito para a=1, b=1, x=9, y=7, p=23

Curvas Elpticas Zp
Em curvas primas a adio semelhante a R Multiplicao pode ser definida por ser campo
4 P =P +P +P +P

Forma das curvas em GF(2 )


y2 + xy = x3 + ax2 + b Temos obrigatoriamente um polinmio irredutvel Todos os clculos acontecem em binrio

Criptografia em Curvas Elpticas


A adio em curvas elpticas a contra-parte da multiplicao modular A adio mltipla a contra-parte da exponenciao modular A segurana est em computar a multiplicao de pontos e no conseguir inverter a operao mesmo com um dos originais e o resultado do produto

Criptografia em Curvas Elpticas


ECDH Elliptic Curve Diffie-Hellman ECIES Elliptic Curve Integrated Encryption Scheme ECDSA Elliptic Curve Digital Signature Algorithm fcil de converter algoritmos que usem logaritmo discreto como problema base
Pois o requisito o grupo abeliano

ECDH Diffie-Hellman ECC


q primo ou na forma 2 Valores para a e b que gerem uma curva G um ponto na curva que maior que n Chave Privada de A: na < n Chave Publica de A: Pa = na x G Chave Privada de B: nb < n Chave Pblica de B: Pb = nb x G
m

Segurana das Curvas Elpticas

Autenticao de Mensagens
Garantia de que a mensagem esta integra e que foi enviada por algum vlido Cifragem garante autenticao MAC um algoritmo de Hash que requer uma chave e garante autenticao Assinatura eletrnica garante autenticao de mensagens

Autenticao - Ataques
Mascaramento:
Origem fraudulenta

Modificao de contedo:
Alterao da carga da mensagem

Modificao de seqncia:
Reordenamento de mensagens

Modificao de tempo:
Replay e preveno de entrega

Funes de Autenticao
Autenticao acontece em dois nveis
Autenticador Alto nvel

Autenticadores:
Cifragem Message Authentication Codes Funes HASH

Alto nvel Protocolos criptogrficos

Autenticao - Cifragem
Prov autenticao usando algoritmos criptogrficos Autenticao por cifragem pode ser dividida em:
Simtrica Assimtrica

A autenticao baseada na manuteno dos segredos da chaves que devem ser protegidas

Autenticao Cifragem Simtrica


Somente A e B compartilha a chave K Se um texto recebido por A decifra para uma mensagem inteligvel usando K compartilhada com B, A pode inferir que a mensagem veio de B Integridade mais difcil, e fora o texto claro a ter controle de integridade

Autenticao Cifragem Simtrica com Integridade

Autenticao Cifragem Assimtrica


Autenticao pelo uso da chave privada A operao pode ser desfeita pela chave pblica Se relacionarmos B com a chave pblica que decifra uma mensagem inteligvel recebida por A este autentica B pela posse da chave privada correspondente Integridade por HASH pela

Autenticao Cifragem em Exemplos

Autenticao Propriedades da Cifragem

Autenticao Cdigos de Autenticao de Mensagens


Resumo da mensagem baseado em chave simtrica
MAC = C(K,M)

Calcula-se dos dois lados usando os mesmos parmetros para confirmar similar a cifragem mas no tem reverso

Cdigos de Autenticao de Mensagens - Uso

Cdigos de Autenticao de Mensagens - Quando Usar


Mensagem enviada a vrios destinatrios No possvel decifrar tudo ento usa-se checagem MAC seletiva Verificao de integridade de programas No necessrio sigilo Separao para flexibilidade de arquitetura

Autenticao Propriedades MAC

Integridade Funes HASH


So similares a MAC mas no tem chaves Prove propriedades como efeito avalanche Garante que o homomorfismo da mensagem no afeta a assinatura Prove uma camada de integridade diferente da autenticao

Funes HASH - Usos

Funes HASH - Usos

Funes HASH Quando Usar


Cifragem lerdo, ento HASH mais eficiente s para integridade Cifragem pode ser computacionalemnte caro em software e em hardware Quando o algoritmo criptogrfico tem problemas com homomorfismo
ex. RSA

Funes HASH Propriedades

MAC Descrio/Requisitos
Funo de caminho nico Segurana baseada num ataque iterativo Requer que a chave seja maior que o bloco
2(k-n) bloco 232, chave 280 1. 248, 2.216

Requerimentos:
C(K,M') = C(K,M) impossvel para M,M' escolhido Distribuio uniforme C(K,M') = C(K,M)

DAC MAC baseado em DES

FIPS PUB 113 Algoritmo mais usado

HASH Descrio/Requisitos
Funo de caminho nico, M varivel, H(M) Fixo Produz uma impresso digital de um arquivo Requisitos:
Fcil de computar para qualquer M impossvel achar M tendo H(M) caminho un H(y)=H(x) xy impossvel 1a. Preimagem

Paradoxo do Aniversrio
Um grupo maior que 23 pessoas tem probabilidade maior que 50% de terem a mesma data de aniversrio. 2m/2 variaes da mensagem com o mesmo significado 2m/2 variaes fraudulentas
A probabilidade de sucesso maior que 50% Se oferece a verso fraudulenta e se usa a verso variada.

Paradoxo do Aniversrio 37 M2

Secure Hash Algorithm


NIST FIPS 180/1993 FIPS 1801/1995 FIPS 180-2/2002 Baseado no MD4 RFC 3174 FIPS + Cdigo C de referncia SHA-1, SHA-256, SHA-384, SHA-512 SHA-1 no recomendada pois tem 69 colises em 2

Secure Hash Algorithm Comparao

SHA-512 Passos
Complemento de bits (padding)
Congruente a 896 mod 1024 sempre adicionando mesmo que j no tamanho certo (1000000...)

Adio do tamanho original


Inteiro de 128 no final com o tamanho da mensagem original

Inicializao do buffer
8 registradores de 64 bits parte fracionria da raiz quadrada dos 8 primeiros nmeros

SHA-512 Passos
Processamento dos blocos de 1024 bits
80 rodadas, com constante aditiva parte fracional da raiz cubica dos 8 primeiros primos

Sada
512 bits aps processar o n-simo bloco de 1024bits

SHA-512 Processamento em Passos

SHA-512 Processamento em Blocos

SHA-512 Processamento em Rodada


Ch = ()() Maj = ()()() a=R28R34R39 14 18 41 e=R R R

SHA-512 Entrada de Palavras

0 = R1R8LD7 19 61 6 1 = R R LD Introduz redundncia e interdependncia

HMAC
MAC baseado em funo HASH Objetivos:
Mais rpido que cifragem Funes HASH amplamente disponveis

RFC 2104 /FIPS 198 como adicionar um chave a um HASH Usado em SSL e IPSEC

HMAC Objetivos de Projeto


Usar funes HASH sem modificao Permitir trocar a funo HASH Preservar a performance do HASH Usar chave de maneira simples Ter toda analise criptogrfica baseada no funo HASH

HMAC - Estrutura
HMAC(K,M)=H[(K opad)|| + H[K ipad)||M]] btamanho do bloco, HHASH, M + Mensagem, KChave, K Chave estendida ao tamanho de b, ipad=0x36 repetido b/8, opad=0x5C repetido b/8, IV valor de inicializao do HASH opad e ipad giram bits alternados na chave
+

HMAC - Estrutura

HMAC Pseudo-Cdigo
function hmac (key, message) if (length(key) > blocksize) then key = hash(key) // keys longer than blocksize are shortened end if if (length(key) < blocksize) then key = key [0x00 * (blocksize - length(key))] // keys shorter than blocksize are zero-padded end if o_key_pad = [0x5c * blocksize] key // Where blocksize is that of the underlying hash function i_key_pad = [0x36 * blocksize] key return hash(o_key_pad hash(i_key_pad message)) / end function

CMAC
FISP PUB 113 Baseado em CBCMAC CBC-MAC s funciona para tamanho de mensagens fixos Usa-se o ultimo bloco do CBC e se adiciona uma chave derivada no ultimo XOR A chave derivada uma n multiplicao GF(2 ) O polinmio base padronizado

Assinatura Digital
um mecanismo de autenticao que possibilita o criador da mensagem ser identificado A autenticao provida poder ser de um caminho ou mtua Prove no-repdio Pode ser direta ou arbitrada

Assinatura Digital Requisitos


A assinatura deve depender de cada bit da mensagem Deve usar algo nico do criador Deve ser fcil de produzir, reconhecer e verificar Dever ser computacionalmente no forjvel Dever ser possvel reter uma cpia

Assinatura Digital Direta


Envolve s origem e destino Cifragem do hash com a chave privada O Confidencialidade cifragem da chave de sesso com a chave publica D Validade atrelada a chave privada Negar alegar a perda da chave normalmente includo carimbo de tempo

Assinatura Digital Arbitrada


Tentar resolver o problema da assinatura direta Envolve origem, destino e arbitro O arbitro checa a mensagem e assina junto dando o seu carimbo de tempo O arbitro prove um prova de verificao O arbitro deve ser confivel por ambos

Digital Signature Standard


NIST FIPS PUB 186-2/2000 Usa SHA-1 Foi revisado duas vezes por problemas de segurana A ultima verso, alm do algoritmo baseado em Elgamal permite RSA e Curvas Elipticas.

DSS - Construo
O DSS original prov somente assinatura O HASH de entrada sempre entregue com um nmero aleatrio duas assinatura da mesma origem no necessariamente produzem o mesmo resultado O resultado (r,s) depende da chave privada e de um conjunto de parmetros das partes

DSS - Componentes
Globais:
p: primo entre 512 e 1024 bits mltiplo de 64bits q: primo de 160bits divisor de (p-1) g=h(p-1)/q mod p 1 < h < (p-1)

Usurio:
x: chave privada aleatria | 0 < x < q y = gx mod p chave pblica

Mensagem:
k: aleatrio | 0 < k< q

DSS - Algoritmos
Assinatura
r = (gk mod p) mod q s = {k-1(H(M) + xr)] mod q

Verificao
w = (s')-1 mod q u1 = [H(M')w] mod q u2 = (r')w mod q v = [(gu1 yu2) mod p] mod q V = r a validao

DSS - Caractersticas
g mod p nica parte intensiva Vrios r's podem ser pre-calculados pois no dependem da mensagem impossvel recuperar k a partir de r e x a partir de s Uma assinatura de fato composta por ( p, q, g, y, r, s ) concatenados a mensagem
k

Diferena de Assinatura RSA x DSS

Como algoritmos devem ser usados para atingir objetivos com menor custo. uma computao distribuda baseada numa sries de passos Criptografia por si s no eficiente
Uma porta de ferro sozinha no torna um ambiente seguro

Protocolos Criptogrficos

Combinam as propriedades das vrias tcnicas para alcanar novos objetivos

Protocolos Criptogrficos Aspectos


Acordo ou estabelecimento de chaves Autenticao de Entidades Criptografia simtrica com autenticao de mensagens Segurana em camada de transporte Mtodos de no repdio

Protocolos Criptogrficos Propriedades


Confidencialidade Integridade Autenticao Anonimato (Assinaturas Cegas) Temporalidade No-predio Composies variadas

Protocolos Criptogrficos Ameaas


Dolev-Yao modelo formal de ameaa
Atacante onipotente Ouve, intercepta e sintetiza S limitado pelos mtodos criptogrficos e pela incapacidade de adivinhar

Repetio Orculo Coluso

Protocolos Criptogrficos de Autenticao Mtua


Permite ambas as partes do protocolo se satisfazerem da identidade da outra parte Se focam na troca de chaves, confidencialidade e temporalidade Normalmente se defendem da ameaa de repetio mas no de coluso Podem ser baseado em chave assimtrica, simtrica ou ambos

Autenticao Mtua Simtrico


As partes compartilham uma chave simtrica com uma terceira parte confivel e concordam numa chave simtrica Distribuem uma chave simtrica depois provam a posse para o outro lado Exemplos:
Needham-Schroeder Shared Key Denning-Sacco

A KDC: A,B,Na KDC A: E(Ka,[Kab,B,Na,E(Kb, [Kab,A])]) A B: E(Kb,[Kab,A]) B A: E(Kab,Nb) A B: E(Kab,Nb+1) Seguro por 15 anos Execuo por tempo indeterminado No revogao de chaves de

Neddham-Schroeder Shared Key

Denning-Sacco (avKerberos)
A KDC: A,B KDC A: E(Ka,[Kab,B,T,E(Kb, [Kab,A,T])]) A B: E(Kb,[Kab,A,T]) B A: E(Kab,Nb) A B: E(Kab,Nb+1) Tambm inseguro por Orculo Deu origem ao Neumann em 1990

Ambas as partes possuem um par de chaves assimtricas, das quais uma privada e a outra amplamente pblica Trocam nonces que podem ser usados para troca de chaves simtricas depois Exemplos
NS Public Key Woo-Lam

Autenticao Mtua Assimtrico

Needham-Schroeder Public Key


A B: E(KuB,[Na,A]) B A: E(KuA,[Na,Nb]) A B: E(KuB,Nb) Execuo por tempo indeterminado Vulnervel a Orculo

Kerberos
Desenvolvido pelo MIT na dcada de 1980 o protocolo mais usado do planeta Baseado na idia de tickets Usa um modelo cliente-servidor Prove autenticao mtua Se protege de vazamentos e ataques de repetio 100% criptografia simtrica

Kerberos - Descrio

Kerberos Multi-Domnio

Kerberos - Autenticao do Cliente


C AS: C,TGS,TS1 AS C: E(Kc,(Kc,TGS,TS2,TTL,TicketTGS)) TicketTGS=E(KTGS, (KC,TGS,C,ADC,TGS,TS2,TTL)) Tudo garantido por KC e KTGS Tudo tem validade Tenta diminuir a carga em AS

Kerberos Autorizao de Servio


C TGS: V, TicketTGS,AuthenticatorC TGS C: E(KC,V,(V,TS4,TTL4,TicketV) TicketV=E(KV,(KC,V,C,ADC,V,TS4,TTL4)) AuthenticatorC=E(KC,TGS(C,ADC,TS3)) KV compartilhada entre V e TGS TS4 + TTL4 < TS + TTL

Kerberos Requisio de Servio


C V: TicketV, AutheticatorC V C: E(KC,V,TS5 +1 ) AuthenticatorC=E(KC,V,(C,ADC,TS5)) TS5+1 para autenticao mtua

Kerberos Problemas e Limitaes


Ponto nico de falha Sincronia de relgio Confiana estrita nos KDCs Dificuldade de comunicao interdomnios Problemas de inter-operabilidade pela quantidade de diferentes cifras.