aula 4 criptografia

59
Prof. Osvaldo Ramos [email protected] Uniceub Pós-Graduação Lato Sensu Criptografia

Upload: ronie-sousa-vieira

Post on 25-Dec-2015

228 views

Category:

Documents


4 download

DESCRIPTION

Criptografia

TRANSCRIPT

Page 1: Aula 4 Criptografia

Prof. Osvaldo [email protected]

UniceubPós-Graduação Lato

SensuCriptografia

Page 2: Aula 4 Criptografia

● Arquitetura de Segurança OSI

● Fundamentos de Criptografia

● Algoritmos Simétricos

● Algoritmos de Chave Pública

● Funções de Hash

● Assinatura Digital

Roteiro

Page 3: Aula 4 Criptografia

Arquitetura de

Segurança OSI

Ataques MecanismosServiços

Passivos

Ativos

Confidencialidade

Integridade

Disponibilidade

Autenticação

Irretratabilidade

Controle de Acesso

Criptografia

Assinatura Digital

Protocolos de Autenticação

. . .

Arquitetura de Segurança OSI

Page 4: Aula 4 Criptografia

Confidencialidade

• Propriedade de que a informação não será disponibilizada ou divulgada a indivíduos, entidades ou processos sem autorização.

• A proteção dos dados contra divulgação não autorizada.

• Isto inclui:

• impressão;

• divulgação;

• até mesmo a existência de algum tipo de informação.

Serviços

Page 5: Aula 4 Criptografia

Integridade

• A garantia de que os dados recebidos estão exatamente como foram enviados por uma entidade autorizada.

• Logo, eles não contém:

• modificação;

• inserção;

• exclusão;

• repetição.

Serviços

Page 6: Aula 4 Criptografia

Autenticação

• A garantia de que a entidade se comunicando é aquela que ela afirma ser.

• Dois serviços de autenticação específicos são definidos na X.800:

• autenticação de entidade par;

• autenticação da origem dos dados.

Serviços

Page 7: Aula 4 Criptografia

Irretratabilidade (Não Repúdio)

• Oferece proteção contra negação, por parte de uma das entidades envolvidas em uma comunicação, de ter participado de toda ou parte da comunicação.

• Logo, quem enviou não poderá negar ter enviado nem quem recebeu poderá negar ter recebido a mensagem.

Serviços

Page 8: Aula 4 Criptografia

Disponibilidade

• Propriedade de um sistema ou de um recurso do sistema ser acessível e utilizável sob demanda por uma entidade autorizada.

Serviços

Page 9: Aula 4 Criptografia

Controle de Acesso

• O impedimento do uso não autorizado de um recurso.

• O serviço controla quem pode ter acesso a um recurso, sob que condições o acesso pode ocorrer e o que é permitido para aqueles que acessam o recurso.

Serviços

Page 10: Aula 4 Criptografia

● Não há um mecanismo único que garanta todos os serviços citados.

● Sempre haverá a necessidade da utilização de um conjunto de mecanismos para solucionar o problema proposto.

● Entretanto, existe um elemento que serve como base para a maioria dos mecanismos de segurança que são: as técnicas de criptografia.

Serviços

Page 11: Aula 4 Criptografia

● O que o uso da criptografia pode fazer?

– Fornecer o sigilo da informação.

– Garantir a autenticidade do remetente.

– Garantir, implicitamente, a autenticidade do destino.

– Garantir a integridade da informação.

Serviços

Page 12: Aula 4 Criptografia

FONTE DAINFORMAÇÃO

DESTINO DAINFORMAÇÃO

Fluxo normal

Ataques

Page 13: Aula 4 Criptografia

Interceptação

FONTE DAINFORMAÇÃO

DESTINO DAINFORMAÇÃO

• Uma parte não autorizada ganha acesso a um recurso. Este é um ataque à confidencialidade. • A parte não autorizada pode ser pessoa, programa ou computador. • Exemplos:

• grampos em linhas para capturar dados da rede;• cópia de programas ou arquivos;• análise de tráfego.

Ataques

Page 14: Aula 4 Criptografia

Modificação

FONTE DAINFORMAÇÃO

DESTINO DAINFORMAÇÃO

• Uma parte não autorizada não somente ganha acesso, mas também adultera o bem. Este é um ataque à integridade.

• Exemplos:

• mudança de valores em um arquivo de dados;

• alteração de um programa de tal forma que ele se comporte de maneira diferente;

• modificação do conteúdo da mensagem sendo transmitida.

Ataques

Page 15: Aula 4 Criptografia

Fabricação

FONTE DAINFORMAÇÃO

DESTINO DAINFORMAÇÃO

• Uma pessoa não autorizada insere objetos no sistema.

• Este é um ataque à autenticidade.

• Exemplos:

• inserção de mensagens maliciosas na rede;

• adição de registros em um arquivo.

Ataques

Page 16: Aula 4 Criptografia

Interrupção

FONTE DAINFORMAÇÃO

DESTINO DAINFORMAÇÃO

• Um recurso do sistema é destruído ou se torna indisponível ou inútil. • Este é um ataque à disponibilidade.• Exemplos:

• destruição de uma peça de hardware como um disco rígido;• o corte de uma linha de comunicação;• tornar indisponível um sistema de gerência de arquivos.

Ataques

Page 17: Aula 4 Criptografia

● Pervasivos (não são específicos a qualquer serviço de segurança OSI):

– funcionalidade confiável;

– rótulo de segurança;

– detecção de evento;

– registros de auditoria;

– recuperação de segurança.

Mecanismos

Page 18: Aula 4 Criptografia

● Criptologia = criptografia + criptoanálise

● Criptografia = arte e ciência de manter mensagens seguras.

● Criptoanálise = arte e ciência de quebrar textos cifrados.

Fundamentos de Criptografia

Page 19: Aula 4 Criptografia

● Criptografar (cifrar ou encriptar);● Decriptografar (decifrar ou desencriptar);● Algoritmo criptográfico;● Chave criptográfica;● Espaço de chaves.

Fundamentos de Criptografia

Page 20: Aula 4 Criptografia

Algoritmos proprietários (sigilo do algoritmo e da chave) x Algoritmos públicos (sigilo da chave)

Algoritmos proprietários Algoritmos públicos

São aqueles que somente poucas pessoas conhecem o código

São aqueles que todos conhecem o código

Vantagens:Geralmente realizar criptoanálise conhecendo o código é difícil, sem conhecer o código é ainda mais difícil.

Desvantagens:O código somente foi avaliado por poucas pessoas, com isso, podem existir fragilidades não descobertas.Pode ser feita engenharia reversa em cima de um produto que implemente o algoritmo e pode ser descoberto o código.

Vantagens:O código foi avaliado por muitas pessoas tornado o algoritmo mais confiável.Maior facilidade de padronização e produção por fabricantes diferentes.

Desvantagens:No caso de descoberta de uma vulnerabilidade no algoritmo, imediatamente todos os usuários estão comprometidos.

Fundamentos de Criptografia

Page 21: Aula 4 Criptografia

• A chave de cifração é igual à chave de decifração.OU

• A chave de cifração pode ser facilmente gerada a partir da chave de decifração e vice-versa. • Sejam:

• Ek( ) a função cifração com a chave k;

• Dk( ) a função de decifração com a chave k;

• M o texto em claro e C o texto cifrado.

• Logo Ek(M)=C, Dk(C)=M e Dk(Ek(M))=M.

cifração decifraçãotexto claro texto cifrado texto claro

chave K chave K

Criptografia Simétrica

Page 22: Aula 4 Criptografia

• A chave de cifração é diferente da de decifração e uma não pode facilmente ser gerada somente a partir da outra. • As duas são relacionadas matematicamente. • Sejam:

• Ekx( )a função cifração com a chave kx;

• Dkx( )a função de decifração com a chave kx;

• M o texto em claro e C o texto cifrado.• Logo:

• Ek1(M)=C, Dk2(C)=M e Dk2(Ek1(M))=M.

• Ek2(M)=C, Dk1(C)=M e Dk1(Ek2(M))=M.

cifração decifraçãotexto claro texto cifrado texto claro

chave K1 chave K2

Criptografia de Chave Pública

Page 23: Aula 4 Criptografia

● Substituição– Monoalfabética - utiliza um alfabeto de substituição;

– Polialfabética - utiliza vários alfabetos de substituição.

● Permutação ou transposição - modifica a posição dos símbolos.

Criptografia – Tipos de Operação

Page 24: Aula 4 Criptografia

● Bloco – processa a entrada de um bloco de elementos de cada vez, produzindo um bloco de saída para cada bloco de entrada.

● Fluxo – processa os elementos da entrada continuamente, produzindo a saída de um elemento de cada vez, enquanto prossegue.

Criptografia – Modo de Processamento

Page 25: Aula 4 Criptografia

• Em funções unidirecionais, para uma dada entrada, é relativamente fácil calcular a saída da função. Mas dada uma saída, é extremamente difícil calcular uma possível entrada desta função. • Ou seja, dado x é fácil calcular f(x), mas dado f(x) é difícil calcular x.• Analogia com o dia a dia: a quebra de um prato.

Funções unidirecionais (one way)

x

xx

xx

x

xx

xx

xx x

x

fácil

difícil

Funções Hash

Page 26: Aula 4 Criptografia

• Uma função de condensação (hash) é uma função que recebe, como entrada, uma string de tamanho variável (chamada de pré-imagem) e a converte em uma string de saída de tamanho fixo, geralmente menor, chamada de valor hash (resumo ou valor condensado).

Funções de condensação (hash functions)

x

xx

xx

x

xx

xx

Funções Hash

Page 27: Aula 4 Criptografia

• Exemplos:

• Dígito verificador em CPFs;

• Função que pega uma pré-imagem e retorna um byte que consiste no XOR de todos os bytes de entrada.

Funções de condensação (hash functions)

entrada 0101 01101001 01010100 01100001 1011

saída 1001 1110

Funções Hash

Page 28: Aula 4 Criptografia

• A finalidade de uma função de hash é produzir uma “impressão digital” de um arquivo, mensagem ou outro bloco de dados.

• Exemplo de aplicação:

• Armazenamento de senhas.

Funções de condensação unidirecionais

x

xx

xx

x

xx

xx

difícil

Funções Hash

Page 29: Aula 4 Criptografia

● DES● 3DES● AES● Modos de Operação● One-Time Pad● RC4

Algoritmos Simétricos

Page 30: Aula 4 Criptografia

● Algoritmo amplamente difundido e estudado.

● Originado a partir do Lucifer (IBM).

● Aprovado como padrão em 1977.

● Mensagem: 64 bits.

● Chave: 56 bits (64 mas 8 são de paridade).

● Mensagem cifrada: 64 bits.

Algoritmos Simétricos – DES

Page 31: Aula 4 Criptografia

● As caixas S (S-Boxes) foram definidas pelo NSA (National Security Agency), órgão do governo americano, sem que deixasse claro o porque de tais escolhas.

● Depois de alguns anos descobriu-se que essas caixas S faziam com que as criptoanálises linear e diferencial não se tornassem ataques práticos.

● Existem pessoas que desconfiam que as caixas S imponham algum tipo de backdoor (porta dos fundos) no algoritmo do DES mas isto não ficou provado até hoje e não passa apenas de especulação.

DES

Page 32: Aula 4 Criptografia

● O tamanho de chave aplicado ao DES (56 bits) já foi quebrado por um ataque de força bruta em um tempo relativamente pequeno (22 horas e 15 minutos).

● Em uma busca exaustiva da chave do DES, teríamos que, a princípio, testar as 256 possíveis chaves.

● Mas o DES possui a seguinte característica:

– seja uma chave K;

– seja K’ a chave complemento bit a bit (ou seja se a chave K=0110 então K’=1001 – trocam-se os 1’s por 0’s e vice-versa);

– então EK(P)=C e EK’(P)=C’, onde C’ é o complemento bit a bit de C.

DES

Page 33: Aula 4 Criptografia

● Considere que temos um bloco cifrado e queremos realizar uma busca exaustiva da chave, ou seja, decifrar este bloco com todas as possíveis chaves e achar o texto em claro que fizesse sentido no contexto aplicado (por exemplo, achar um bloco que contenha uma palavra conhecida).

● Neste caso, não precisamos decifrar o bloco com todas as chaves, uma vez que, se decifrarmos com a chave K e acharmos o texto em claro P, logo, se decifrarmos com a chave K’ iremos achar o texto em claro P’.

● Com isso é necessário testar apenas 255 chaves e não 256.

DES

Page 34: Aula 4 Criptografia

● O AES é definido no FIPS PUBS 197 (Federal Information Processing Standards Publication 197).

● Padronizado em 2001.● O AES foi escolhido entre diversas cifras que

foram submetidas para análise.● A cifra escolhida foi o RIJNDAEL, que

originalmente trabalhava com blocos de 128, 192 ou 256 bits e chaves de 128, 192 ou 256 bits.

● O AES possui:– tamanho de bloco de 128 bits;– tamanho da chave de 128, 192 ou 256 bits.

AES

Page 35: Aula 4 Criptografia

• O One-Time Pad (OTP) é o esquema de cifração perfeito.

• Em dados binários, ele utiliza uma chave gerada de forma aleatória, do tamanho do texto.

• A operação de cifração consiste na operação XOR bit a bit do texto em claro com a chave.

• Neste método de cifração, a busca exaustiva da chave não é eficaz, uma vez que todos os possíveis textos são achados quando se aplica a busca exaustiva.

Cifras de Fluxo – OTP

Page 36: Aula 4 Criptografia

Exemplo: Suponha que temos um texto cifrado que é 0101. Se aplicarmos a busca exaustiva, obteremos:

texto cifrado chave de busca exaustiva

texto em claro analisado

0101 0000 0101

0101 0001 0100

0101 0010 0111

0101 0011 0110

0101 0100 0001

0101 0101 0000

0101 0110 0011

0101 0111 0010

0101 1000 1101

0101 1001 1100

0101 1010 1111

0101 1011 1110

0101 1100 1001

0101 1101 1000

0101 1110 1011

0101 1111 1010

Cifras de Fluxo – OTP

Page 37: Aula 4 Criptografia

Exemplo (cont.):

• Ou seja, se tentarmos a busca exaustiva iremos achar todos os possíveis textos em claro e não poderemos identificar qual era o texto em claro original a não ser que tenhamos a chave utilizada na cifração.

Cifras de Fluxo – OTP

Page 38: Aula 4 Criptografia

• É uma cifra de fluxo de tamanho de chave variável (até no máximo 2048 bits)

• Desenvolvida em 1987 por Ron Rivest para a empresa RSA Data Security, Inc.

Cifras de Fluxo – RC4

Page 39: Aula 4 Criptografia

Algoritmos de Chave Pública• RSA• Diffie-Hellman

Page 40: Aula 4 Criptografia

43

● Aplicações para criptossistemas de chave pública:– criptografia/decriptografia;– assinatura digital;– troca de chave.

Algoritmos de Chave Pública

Page 41: Aula 4 Criptografia

● Publicado em 1978.● Nome RSA provém das iniciais dos autores

(Ron Rivest, Adi Shamir e Len Adleman).● Baseado na dificuldade de fatorar um número

inteiro grande.● Amplamente difundido.

RSA

Page 42: Aula 4 Criptografia

● Sejam dois números primos grandes p e q.

● Calcule n = p.q.

● Seja e escolhido randomicamente tal que e e (p-1)(q-1) sejam primos entre si.

● Calcule d tal que e.d ≡1 mod(p-1)(q-1).

● Desta forma:

• e e n formam a chave pública;

• d e n formam a chave privada.

Geração das chaves pública e privada

RSA

Page 43: Aula 4 Criptografia

● Divida a mensagem em blocos numéricos menores que n

● Seja mi o bloco de texto claro que se deseja cifrar

● Seja ci o bloco de texto cifrado correspondente a mi

● ci é calculado da seguinte forma:

ci=mie mod n

Cifração

RSA

Page 44: Aula 4 Criptografia

● Seja ci o bloco de texto cifrado que se deseja decifrar.

● Seja mi o bloco de texto claro correspondente a ci.

● mi é calculado da seguinte forma:

mi=cid mod n

Decifração

RSA

Page 45: Aula 4 Criptografia

● Passo 1 - escolha de p e q

– Suponha que escolhamos p = 47 e q = 71

● Passo 2 - Cálculo de n

– n = p.q = 3337

● Passo 3 - escolha de e

– Lembre que e não pode ter fatores em comum com (p-1)(q-1) = 46.70 = 3220

– Suponha que escolhamos e = 79.

● Passo 4 - cálculo de d

– Utilizaremos o algoritmo euclidiano estendido para calcular d

– d = 79-1 mod 3220 = 1019

● Passo 5 - Torne público e e n e mantenha d secreto. Descarte p e q.

Exemplo – geração das chaves:

RSA

Page 46: Aula 4 Criptografia

● Para cifrar a mensagem: m=6882326879666683● Primeiro quebre-a em blocos pequenos. Blocos de três dígitos

funcionam bem neste caso. A mensagem é quebrada em seis blocos, mi, que são:– m1=688– m2=232– m3=687– m4=966– m5=668– m6=003

● O primeiro bloco é cifrado da seguinte forma: 68879 mod 3337 = 1570 = c1

● Realizando a mesma operação nos blocos subseqüentes, será gerada a seguinte mensagem cifrada:

c = 1570 2756 2091 2276 2423 158

Exemplo – cifração:

RSA

Page 47: Aula 4 Criptografia

● Decifrar a mensagem consiste em realizar a mesma operação de exponenciação usando a chave de decifração 1019, então:

15701019 mod 3337 = 688 = m1

● O resto da mensagem será decifrado da mesma maneira.

Exemplo – decifração:

RSA

Page 48: Aula 4 Criptografia

• Segurança baseada na dificuldade de se calcular o logaritmo discreto em corpos finitos.

• Pode ser usado para troca de chaves.

• Não pode ser usado para cifrar ou decifrar mensagens.

Alg. Diffie-Hellman (Troca de Chaves)

Page 49: Aula 4 Criptografia

• Suponha que Alice e Bob desejam combinar uma chave.

• Primeiro eles combinam dois números primos grandes n e g tal que g é primitivo mod n.

• Esses dois números não precisam ser secretos e podem ser usados por várias pessoas.

• Depois, o algoritmo se segue da seguinte forma:

• Alice escolhe um número inteiro aleatório grande x e envia para Bob X calculado da seguinte forma: X=gx

mod n;

• Bob escolhe um número inteiro aleatório grande y e envia para Alice Y calculado da seguinte forma: Y=gy mod n;

Alg. Diffie-Hellman (Troca de Chaves)

Page 50: Aula 4 Criptografia

• (Cont.):

• Alice calcula k = Yx modn;

• Bob calcula k’=Xy mod n;

• k e k’são iguais a gxy mod n e ninguém que tenha monitorado a linha de comunicação poderá calcular este valor.

Alg. Diffie-Hellman (Troca de Chaves)

Page 51: Aula 4 Criptografia

Exemplo: Sejam o numero primo n=97 e a raiz primitiva g=5

ALICE

GERAALEATORIAMENTE

x=36 (chave privada) y=58 (chave privada)

GERAALEATORIAMENTE

CALCULA

X= 536 mod 97 = 50(chave pública)

CALCULA

Y= 558 mod 97 = 44(chave pública)

Alice envia X=50 para Bob

Bob envia Y=44 para Alice

CALCULA

K= 4436 mod 97 = 75(chave secretacompartilhada porBob e Alice)

CALCULA

K= 5058 mod 97 = 75(chave secretacompartilhada porBob e Alice)

BOB

Alg. Diffie-Hellman (Troca de Chaves)

Page 52: Aula 4 Criptografia

Funções de Hash – Requisitos

• Para ser útil para autenticação de mensagens, uma função de hash H(x) precisa ter as seguintes propriedades:

• H(x) pode ser aplicada a um bloco de dados de qualquer tamanho.

• H(x) produz uma saída de comprimento fixo.

x

xx

xx

x

xx

xx

difícil

H(x)

Page 53: Aula 4 Criptografia

● (Cont.):

– H(x) é facil de calcular para qualquer x, tornando as implementações de hardware e software práticas.

– Para qualquer valor de h dado, é computacionalmente inviável encontrar x tal que H(x) = h.

– Para qualquer bloco dado x, é computacionalmente inviável encontrar y ≠ x tal que H(y) = H(x).

– É computacionalmente inviável encontrar qualquer par (x,y) tal que H(x) = H(y).

Funções de Hash – Requisitos

Page 54: Aula 4 Criptografia

• Especificado na FIPS PUB 180-3 (Federal Information Processing Standards Publications).

• Nome do padrão: Secure Hash Signature Standard (SHS) (FIPS PUB 180-3).

• O padrão especifica cinco algoritmos hash seguros – SHA-1, SHA-224, SHA-256, SHA-384 e SHA-512.

• Segundo o padrão, é computacionalmente inviável:

• achar uma mensagem que corresponda a um message digest;

• achar duas mensagens que possuam o mesmo message digest.

Funções de Hash – SHS

Page 55: Aula 4 Criptografia

Características:

Algoritmo

Tamanho da

mensagem (bits)

Tamanho do bloco (bits)

Tamanho da palavra

(bits)

Tamanho do

message digest (bits)

Segurança (bits)

SHA-1 < 264 512 32 160 80

SHA-224 < 264 512 32 224 112

SHA-256 < 264 512 32 256 128

SHA-384 < 2128 1024 64 384 192

SHA-512 < 2128 1024 64 512 256

• O item segurança considera que o ataque do aniversário em um message digest de tamanho n produz uma colisão com fator de trabalho de aproximadamente 2n/2.

Funções de Hash – SHS

Page 56: Aula 4 Criptografia

● O algoritmo utiliza:

– 80 palavras de 32 bits fixas (constantes);

– 5 variáveis de 32 bits (A, B, C, D, E);

– Um valor hash com 5 palavras de 32 bits.

● Deve ser feito o pré-processamento antes da execução do algoritmo:

– “padding” para um múltiplo de 512 e divisão em blocos de 512.

Funções de Hash – SHA-1

Page 57: Aula 4 Criptografia

● Para cada um dos N blocos de 512 bits:

– Iteração de 80 repetições com as operações:

● f(x,y,z);

● adições mod 232;

● deslocamentos e rotações;

– As variáveis utilizadas serão inicializadas e apresentarão valores que serão passados para as iterações com os outros blocos (N).

● Ao final, as cinco palavras de 32 bits serão concatenadas, gerando o hash final de 160 bits.

Funções de Hash – SHA-1

Page 58: Aula 4 Criptografia

● A mensagem final deve ter um número de bits múltiplo de 512.

● Exemplo: a mensagem é “abc”

– acrescenta-se um bit 1;

– vários bits 0;

– 64 bits representando o tamanho original da mensagem.

Funções de Hash – SHA-1

Page 59: Aula 4 Criptografia

• Melhoria do MD4.

• Projetado por Ron Rivest (também autor do MD4).

• MD (Message Digest).

• MD5 e MD4 produzem um hash de 128 bits.

• MD5 roda 30% mais lento que o MD4.

Funções de Hash – MD-5