Um algoritmo de resumo de mensagem, recebe uma mensagem de tamanho variável como entrada e um resumo fixo como saída, a mensagem é totalmente incompreensível. Essa saída é chamada de Resumo e o algoritmo é chamado de One-Way Hash.
Um algoritmo de resumo de mensagem, recebe uma mensagem de tamanho variável como entrada e um resumo fixo como saída, a mensagem é totalmente incompreensível. Essa saída é chamada de Resumo e o algoritmo é chamado de One-Way Hash.
Linha 208:
Linha 209:
* A mensagem deve ser impossível de se determinar, baseando somente em seu Resumo.
* A mensagem deve ser impossível de se determinar, baseando somente em seu Resumo.
* Deve ser impossível encontrar uma mensagem qualquer que possa um Hash em particular ou desejado.
* Deve ser impossível encontrar uma mensagem qualquer que possa um Hash em particular ou desejado.
* É computacionalmente inviável duas mensagens ter o mesmo resumo.
*[[Arquivo:Haahhh.png|right|594x594px]]É computacionalmente inviável duas mensagens ter o mesmo resumo.
* O mapeamento de um Hash para uma mensagem deve parecer totalmente aleatório
* O mapeamento de um Hash para uma mensagem deve parecer totalmente aleatório
* A alteração de qualquer bit na mensagem original deve fazer com que a mensagem prozuda um Hash totalmente diferente.
* A alteração de qualquer bit na mensagem original deve fazer com que a mensagem prozuda um Hash totalmente diferente.
A palavra Criptografia vem do grego "Kryptós Gráphein", ou seja, "Escrita Oculta". Criptografia é o estudo a aplicação de técnicas para comunicação e armazenamento seguro de dados em sistemas computacionais.
Conceito
Criptografia é a técnica em que a informação transmitida pode ser transformada da sua forma original para outra impossível de ser identificada, a intenção é ter um armazenamento seguro de dados em sistemas computacionais e que apenas o destinatário certo e com a chave específica possa ter acesso àquela informação.
Encriptação
Encriptação é o processo que converte informações em um formato legível (texto puro) para um formato ilegível (texto cifrado), para isso, utiliza-se algoritmo criptográfico.
Decriptação
É o processo inverso da Encriptação, ou seja, é a transformação da informação ilegível em uma informação legível, utilizando-se também um algoritmo criptográfico.
Criptoanálise
Processo de transformação de dados cifrados (encriptados) em dados legíveis (decriptados) sem que conheça a chave de encriptação. Portanto, trata-se de decifrar a encriptação dos dados para obter acesso ao conteúdo das mensagens. Porém com o intuito de descobrir falhas nos algoritmos para torná-los mais seguros, validá-los ou descartá-los.
Tipos de Criptografia
Criptografia de Chave Simétrica
Este tipo de criptografia utiliza uma única chave, ou seja, uma mensagem pode ser encriptada pelo emissor e decriptada pelo destinatário utilizando-se a mesma chave. É chamada de simétrica por se tratar de uma chave (iguais).
Uma cifra simétrica é definida sobre um par de algoritmos de encriptação (E) e decriptação (D), onde:
m
=
Texto plano (mensagem)
c
=
Texto cifrado (encriptado)
k
=
Chave criptográfica
E
=
Algoritmo de encriptação(Randomizado)
D
=
Algoritmo de decriptação(Fixo)
c = E(k,m) e m = D(k,c). Logo: m = D(k,E(k,m)) Equação de consistência
Para todo m pertencente a m e k pertencente a k: D(k,E(k,m)) = m
Exemplo de algoritmo de chave simétrica
OTP (One-Time-Pad)
Gilbert Vernam, 1917, Bell Labs.
A chave é uma string de bits aleatória, com pelo menos o mesmo tamanho da mensagem em si.
Exemplo com o F da Tabela ASCII:
K exor m
Mensagem
1
0
0
0
1
1
0
Chave
1
1
0
0
0
1
1
C
0
1
0
0
1
0
1
K exor c
C
0
1
0
0
1
0
1
Chave
1
1
0
0
0
1
1
Mensagem
1
0
0
0
1
1
0
Ou seja, texto cifrado, é igual à aplicação do algoritmo de encriptação sobre a chave e a mensagem, que é igual à chave exor mensagem.
Criptografia de Chave Assimétrica
Esse tipo de criptografia utiliza duas chaves diferentes, por isso é chamada de Assimétrica. A mensagem é criada a partir da chave pública do destinatário e somente pode ser decriptada com a chave privada que somente o destinatário tem acesso, mesmo que, outra pessoa intercepte a mensagem e tenha a mensagem pública do destinatário, essa pessoa não poderá decriptar a mensagem.
Exemplo de algoritmo de chave assimétrica
RSA (Rivest, Shamir e Adleman)
Criado por Ron Rivest, Adi Shamir e Len Adleman, em 1977, é um dos algoritmos de chave assimétrica mais utilizados. Seu funcionamento consiste na multiplicação de 2 números primos (chave privada) muito grandes para a geração de um terceiro número (chave pública).
m
Texto plano (mensagem)
c
Texto cifrado (encriptado)
(e,n)
Chave pública
(d,n)
Chave privada
n
Produto de dois números primos
^
Operação de exponenciação
mod
Operação de módulo (resto da divisão inteira)
Criar um par de chaves
1.Pegar dois números primos p e q (tamanho aproximadamente igual). Calcular n = p*q.
2.Pegar um número e que não tem nenhum fator em comum com (p-1)*(q-1).
3.Calcular d como e*d mod (p-1)*(q-1) = 1.
O par (e,n) é a chave pública. (d,n) é a chave privada.
Exemplo :
Pegar dois números primos aleatórios: p = 29, q = 37
Calcular n = pq = 29 * 37 = 1073e deve ser escolhido de forma aleatória de modo que e não tenha nenhum fator em comum com(p-1) (q-1):
(p-1)(q-1) = (29-1)(37-1) = 1008
Pegar e = 71
Escolher d como 71*d mod 1008 = 1
Vamos encontrar d = 1079
Agora temos as nossas chaves:
A chave pública é (e,n) = (71,1073) (chave de criptografia)
A chave privada é (d,n) = (1079,1073) (chave de decodificação)
Criptografando a mensagem "HELLO", usando a tabela ASCII:
m = 7269767679
Então, temos que recortar a mensagem em blocos contendo menos dígitos do que N. N tem 4 dígitos, então vamos recortar a nossa mensagem em blocos de três dígitos:
726 976 767 900 (completa-se com zeros)
Criptografar cada bloco: c = m^e mod n
726^71 mod 1073 = 436 976^71 mod 1073 = 822 767^71 mod 1073 = 825 900^71 mod 1073 = 552
A mensagem criptografada é 436 822 825 552.
Mensagem descriptografada: m = c^d mod n
436^1079 mod 1073 = 726 822^1079 mod 1073 = 976 825^1079 mod 1073 = 767 552^1079 mod 1073 = 900
Ou seja, a sequência de números 726976767900.
A mensagem em texto simples 72 69 76 76 79: "HELLO".
Função de Hash (Resumo de Mensagem)
Um algoritmo de resumo de mensagem, recebe uma mensagem de tamanho variável como entrada e um resumo fixo como saída, a mensagem é totalmente incompreensível. Essa saída é chamada de Resumo e o algoritmo é chamado de One-Way Hash.
Um algoritmo Hash necessita, no mínimo, de:
A mensagem deve ser impossível de se determinar, baseando somente em seu Resumo.
Deve ser impossível encontrar uma mensagem qualquer que possa um Hash em particular ou desejado.
É computacionalmente inviável duas mensagens ter o mesmo resumo.
O mapeamento de um Hash para uma mensagem deve parecer totalmente aleatório
A alteração de qualquer bit na mensagem original deve fazer com que a mensagem prozuda um Hash totalmente diferente.