• Nenhum resultado encontrado

topico 06 GPNA GNA HASH MAC

N/A
N/A
Protected

Academic year: 2021

Share "topico 06 GPNA GNA HASH MAC"

Copied!
34
0
0

Texto

(1)

Geradores de Números, HASH e MAC

Geradores aleatórios e pseudoaleatórios. Autenticação de Mensagem. Algoritmos MAC. Requisitos. HASH (SHA, MD5, Whirlpool). Definições. Requisitos para função de HASH.

(2)

Aleatoriedade

A palavra aleatoriedade é utilizada para exprimir

quebra de ordem, propósito, causa, ou

imprevisibilidade em uma terminologia não

científica.

Um processo aleatório é o processo repetitivo

cujo resultado não descreve um padrão

determinístico, mas segue uma distribuição de

probabilidade.

(3)

• É possível criar aleatoriedade no computador através de um dispositivo que monitore um evento aleatório natural, e envie seus resultados para o computador.

• Exemplos de dispositivos que podem fornecer aleatoriedade.

– Contador geiger (a partir de um elemento radioativo) – Energia elétrica predial (centésimos da energia

fornecida)

(4)

Geração de um números aleatório

Por exemplo, você pode colocar um pedaço de material radioativo em frente a um contador Geiger e conectar o contador Geiger a um computador. Um vez que a radioatividade decaia em aleatoriedade, o contador Geiger irá criar números aleatórios administráveis. Este acesso é realmente raro, pois muitas pessoas não têm contadores Geiger conectados as suas máquinas.

(5)

• Números verdadeiramente aleatórios são muito difíceis de obter

• É possível criar uma fórmula que gere um número pseudo-aleatório.

• Quando projeta a fórmula, a idéia é produzir uma série de

números, que irão parecer aleatórios para qualquer um que não saiba o que é a fórmula.

(6)

Números Pseudoaleatórios

As características de uma boa fórmula incluem:

• não repetição: a seqüência não pode estar em ciclo e nem se repetir;

• boa distribuição numérica: se a fórmula está gerando números aleatórios entre 0 e 9, o número de zeros, uns, dois, etc. que ela gera devem ser aproximadamente iguais depois de um longo período de tempo;

• ausência de previsões: você não tem como prever qual será o próximo número, a não ser que conheça a fórmula e a origem (o valor inicial, ou semente).

• a mesma semente sempre produz a mesma sequência • rápida e de baixo custo computacional

(7)

Método do Meio do Quadrado

• eleva-se o número anterior, Nn, ao quadrado e extrai-se do resultado apenas os dígitos do meio, que constituirão o próximo elemento da sequência, Nn+1.

Por exemplo: para sequências de três dígitos N0 = 121 → N02 = 14641

N1 = 464 → N02 = 215296 e assim por diante.

• O problema nesse método é que ele tende a gerar um ciclo muito curto, especialmente depois que um dígito 0 (zero) entra no padrão.

(8)

Emprego de algoritmos pseudoaleatórios

• Em algoritmos de cifra de fluxo, para gerar cifras contínuas

• Na criação de chaves de criptografia simétrica • Na criação de chaves de sessão.

Obs.: em algoritmos de cifra de fluxo, não é possível

utilizar cifras aleatórias, pois é necessário decifrar, a partir de uma semente (chave) previamente acordada entre as partes !!!

• São outros algoritmos geradores de números pseudoaleatórios:

– Blum Blum Shub – Linear Congruente

(9)

Autenticação de mensagem

a autenticação de mensagem é voltada para:

– proteger a integridade da mensagem

– validar a identidade afirmada pelo emissor

– irretratabilidade da origem (solução de controvérsias)

consideraremos os requisitos de segurança

são três funções alternativas:

– criptografia de mensagens

– código de autenticação de mensagens (MAC) – função de hash

(10)

Requisitos de autenticação

A autenticação deve impedir: • divulgação • análise de tráfego • mascaramento • modificação de conteúdo • modificação de seqüência • modificação de tempo • retratação da origem • retratação do destino

(11)

Criptografia de mensagens

• a criptografia de mensagens, por si só, pode oferecer uma medida de autenticação

• se a criptografia simétrica for usada, então:

– o receptor sabe que o emissor deve tê-la criado uma vez que somente o emissor e o receptor conhecem a chave usada

– agora o conteúdo não pode ser alterado

– se a mensagem tem estrutura adequada, uma soma de verificação poderá detectar alterações

(12)

Criptografia de mensagens

se é usada a criptografia de chave pública:

– a criptografia não oferece confidencialidade para o emissor, uma vez que qualquer um, potencialmente, conhece a chave pública

todavia, caso o emissor assine a mensagem usando a chave privada e criptografe com a chave pública do receptor, ele terá confidencialidade e autenticação

– novamente é necessário identificar as mensagens adulteradas, mas a custo do uso de duas chaves públicas para a mensagem.

(13)

Código de autenticação de mensagem (MAC)

• gerado por um algoritmo que cria um pequeno bloco de dados de tamanho fixo

• depende tanto da mensagem quanto da chave

– todavia não precisa ser reversível, ao contrário de outras cifras criptográficas

fica anexado à mensagem como uma assinatura • o receptor realiza o mesmo cálculo na mensagem e

verifica se corresponde ao MAC

• oferece garantia de que a mensagem está inalterada e provém do emissor

(14)
(15)

Códigos de autenticação de mensagem

• como mostrado, o MAC oferece autenticação

• também pode usar criptografia para confidencialidade – geralmente usa uma chave separada para cada

– podemos calcular o MAC tanto antes como depois da criptografia

– em geral, considera-se que é melhor calcular antes • porque usar um MAC?

– às vezes, é necessária somente a autenticação

– às vezes, é necessária a autenticação para se

permanecer mais tempo do que em criptografia (por exemplo, em arquivamento)

(16)

Propriedades do MAC

o MAC é uma soma de verificação criptográfica

MAC = CK(M)

– condensa uma mensagem M de comprimento variável

– usando uma chave secreta K

– para um autenticador de comprimento fixo

é uma função muitos-para-um

– potencialmente, muitas mensagens têm o mesmo MAC

(17)

Requisitos para MACs

levando em consideração o tipo de ataque

é necessário que o MAC satisfaça o seguinte:

1. conhecendo a mensagem e o MAC, é inviável

encontrar outra mensagem com o mesmo MAC

2. os MACs devem ser uniformemente distribuídos 3. o MAC deveria depender igualmente de todos os

(18)

Funções de hash

• condensam a mensagem arbitrariamente para um tamanho fixo, sem a necessidade de chave.

h = H(M)

• o hash é usado para detectar alterações na mensagem • podemos usá-lo de várias formas com mensagens

(19)

Funções de hash e assinaturas digitais

PR – chave privada PU – chave pública

E(PRa[H(M)]

(20)

Requisitos para uma função de hash

1. pode ser aplicado a uma mensagem M de qualquer

tamanho

2. produz uma saída de comprimento fixo h

(21)

1. Para qualquer h é inviável encontrar x, tal que H(x)=h

• propriedade unidirecional

2. para qualquer x é inviável encontrar y, tal que

H(y)=H(x)

• resistência fraca a colisões

3. é inviável encontrar qualquer par x,y, tal que H(y)=H(x)

• Resistência forte a colisões •

Importante: Uma propriedade sendo quebrada, a cifra estará quebrada.

(22)

Segurança das funções de hash e MACs

assim como as cifras de blocos, têm:

ataques por força bruta

– para forte resistência a colisão, a função de hash tem um nível de esforço 2m/2

• há um projeto de uma máquina de busca de colisão para MD5

• um código de 128 bits parece vulnerável, um de 160 bits é melhor

• um ataque por força bruta a um MAC requer pares mensagem-MAC conhecidos

• pode atacar todo o conjunto de valores possíveis de chave ou atacar o valor MAC

• para segurança, é necessário, pelo menos, um código MAC de 128 bits

(23)

Algoritmos de hash e de MAC

funções de hash

– condensam arbitrariamente o tamanho da mensagem para um tamanho fixo

– processando a mensagem em blocos

– por meio de uma função de compressão

– sejam baseadas em projeto específico ou em cifra de bloco

código de autenticação de mensagem (MAC)

– autenticador de tamanho fixo para algumas mensagens

– oferece autenticação para a mensagem usando uma cifra de bloco simétrico, em um modo de

(24)

Estrutura Básica de um algoritmo de hash

IV = valor inicial L = número de blocos de entrada CVi = variável de encadeamento n = tamanho do código de hash Yi = i-ésimo bloco de entrada b = tamanho do bloco de entrada F = algoritmo de compressão

(25)

Algoritmo de hash seguro

• o SHA foi originalmente desenvolvido pelo NIST, em 1993

• foi revisado em 1995 como SHA-1

• padrão para uso com esquema de assinatura digital

– o padrão é FIPS 180-1 1995, também Internet RFC 3174 – note que o algoritmo é o SHA, o padrão é o SHS

• baseado no projeto do MD4 com diferenças de chave • produz um valor de hash de 160 bits

• em 2005 o NIST anunciou a intenção de retirar

gradualmente a aprovação do SHA-1 e que passará a contar com outras versões do SHA por volta de 2010

(26)

Versão revisada do padrão

o NIST publicou a versão FIPS 180-2 em 2002

acrescentou três versões adicionais do SHA

– SHA-256, SHA-384, SHA-512

objetivando compatibilidade com aumento de

segurança proporcionado pela cifra AES

estrutura e detalhes são similares ao SHA-1

portanto,a análise deve ser similar

(27)

Whirlpool

Tese de doutorado de um brasileiro, Paulo Barreto,

tem como co-autor o americano radicado na Bélgica

Vincent Rijman, co-autor do algoritmo RSA.

recomendada pelo projeto europeu NESSIE

usa funções de compressão e internas do AES

modificadas

há questões quanto ao uso de cifras de bloco vistas

anteriormente

com desempenho comparável ao de algoritmos

(28)
(29)

Desempenho e segurança do Whirlpool

• o Whirlpool é ainda considerada uma proposta muito recente

• portanto, há pouca experiência de uso

• mas, pela semelhança de características, muitas conclusões referentes ao AES podem ser aplicáveis

• aparentemente, necessita de mais recursos de hardware que o SHA, mas funciona melhor em termos de saída

(30)

Comentários:

Funções de hash cifradas como MACs

requerem uma MAC baseada em uma função de

hash

– porque as funções de hash, em geral, são mais rápidas

– os códigos para criptografar funções de hash são amplamente disponíveis

o hash inclui uma chave, juntamente com a

mensagem

proposta original:

KeyedHash = Hash(Key|Message)

– alguns pontos fracos foram encontrados, conseqüentemente, apontando para o

(31)

HMAC

• especificado como um padrão de Internet RFC2104 • emprega uma função de hash onde se cifra com uma

chave.

• a exigência é a de mais três cálculos de hash do que a mensagem precisa sozinha

• qualquer função de hash pode ser usada

(32)

HMAC Security

• a segurança do HMAC está baseada na função de hash embutida

• um ataque ao HMAC requer:

– um ataque por força bruta à chave

– ou um ataque de aniversário (mas o atacante teria de observar um grande número de mesagens)

(33)

CMAC

emprega do modo de operação CBC juntamente

com um MAC.

utiliza duas chaves e preenchimento

formando assim o modo de operação

Cipher-based Message Authentication Code (CMAC)

adotado pelo NIST SP800-38B

(34)

HASH x MAC

• HASH – MD5 (quebrado, 128 b) – SHA-1 (obsoleto, 160 b) – SHA-256 – SHA-396 – SHA-512 – Whirlpool (512 b) • MAC – HMAC – CMAC'

Referências

Documentos relacionados

RESUMO - O trabalho objetivou avaliar a qualidade das sementes de arroz utilizadas pelos agricultores em cinco municípios (Matupá, Novo Mundo, Nova Guarita, Alta Floresta e Terra

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

Pensar a formação continuada como uma das possibilidades de desenvolvimento profissional e pessoal é refletir também sobre a diversidade encontrada diante

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

Dessa maneira, os resultados desta tese são uma síntese que propõe o uso de índices não convencionais de conforto térmico, utilizando o Índice de Temperatura de Globo Negro e

 Houve incremento temporal nos testes de mobilidade, durante a execução de dupla tarefa motora e cognitiva para os três grupos quando comparado aos testes simples, com

O período de redemocratização foi consolidado com a edição da Constituição Federal, de 5 de outubro de 1988, instrumento jurídico democrático que restaura a