0% acharam este documento útil (0 voto)
6 visualizações12 páginas

Criptografia e MD5: Integridade de Dados

O documento discute a criptografia e algoritmos de hash como MD5. Explica que a criptografia protege informações transformando-as em formato ilegível e que algoritmos de hash geram impressões digitais de dados para garantir sua integridade e autenticidade. Também aborda breve história, usos atuais e desafios futuros da criptografia.

Enviado por

millyteles777
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
6 visualizações12 páginas

Criptografia e MD5: Integridade de Dados

O documento discute a criptografia e algoritmos de hash como MD5. Explica que a criptografia protege informações transformando-as em formato ilegível e que algoritmos de hash geram impressões digitais de dados para garantir sua integridade e autenticidade. Também aborda breve história, usos atuais e desafios futuros da criptografia.

Enviado por

millyteles777
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Ramon - 1

Introdução à Criptografia

A criptografia é uma técnica antiga e importante para proteger informações. Ela

consiste em transformar dados em formato ilegível para quem não tem a chave de

decodificação. Imagine que é como trancar uma mensagem em um cofre virtual,

onde apenas o destinatário autorizado possui a chave para abri-lo.

​ O Que É Criptografia?
● Criptografia é a arte de transformar informações de forma que
somente o destinatário pretendido possa entendê-las.
​ Por Que É Importante?
● Protege a confidencialidade das informações, garantindo que apenas
as pessoas autorizadas possam acessá-las.
● Ajuda a manter a integridade dos dados, assegurando que eles não
sejam alterados sem permissão.
● Permite a autenticação, garantindo que a origem das informações
possa ser verificada.
● Evita que as pessoas neguem o envio ou recebimento de uma
mensagem.
​ História Breve:
● A criptografia tem sido usada ao longo da história, desde a antiguidade,
quando cifras simples eram usadas para proteger mensagens
importantes.
● Com o tempo, métodos mais complexos foram desenvolvidos,
especialmente durante o Renascimento e a Revolução Científica.
​ Na Era Digital:
● Hoje em dia, a criptografia é fundamental para proteger dados digitais,
como informações bancárias, emails, mensagens de texto e muito
mais.
● Ela é usada em transações online, comunicações por telefone celular e
até mesmo para manter nossos dados seguros em redes sociais.

​ Desafios Futuros:
● Com o avanço da tecnologia, a criptografia precisa se adaptar para lidar
com novos desafios, como computação quântica e ameaças
cibernéticas cada vez mais sofisticadas.

Entender a importância da criptografia é essencial para proteger nossa privacidade e

segurança online. É como ter um cadeado virtual para manter nossas informações

pessoais seguras em um mundo digital cada vez mais interconectado.

Parte 2-Ramon

criptografia está intimamente ligada aos algoritmos de message digest, como o MD5

(Message Digest Algorithm 5), principalmente no contexto de garantir a integridade e

autenticidade dos dados.

O algoritmo de message digest MD5 (Message Digest Algorithm 5) é uma

ferramenta de segurança que converte dados, como texto ou arquivos, em uma

sequência curta e única de letras e números, chamada de "hash". Esse hash funciona

como uma espécie de impressão digital dos dados originais.

● Uso Comum: O MD5 é frequentemente usado para verificar se arquivos foram

alterados, garantindo que permaneçam os mesmos desde que foram criados.

● Rapidez: É rápido e fácil de usar, tornando-o popular em muitas aplicações de

segurança.

● Vulnerabilidades: No entanto, o MD5 tem algumas fraquezas e pode ser

vulnerável a certos tipos de ataques, o que significa que não é tão seguro

quanto alguns métodos mais recentes.

Em resumo, o MD5 é uma ferramenta prática para garantir a integridade e

autenticidade dos dados, mas é importante estar ciente de suas limitações de

segurança.
Nos tempos atuais, pode-se observar a grande expansão da tecnologia da
informação, e com essa expansão, surge também a necessidade de se ter uma
maior segurança da informação (XAVIER et al, 2009)

Funções Hash

Um hash, também chamado de message digest ou checksum (DETOMINI,


2010), pode ser definido como uma função matemática e criptográfica unidirecional
que codifica uma mensagem de tamanho indeterminado em uma mensagem de
mesmo tamanho (MELO e ALMEIDA, 2020).

Fonte: Melo e Almeida, 2020.

Algoritmos hash com melhor desempenho se adaptam melhor para


aplicações que exigem como prioridade a velocidade, o tempo de resposta e cuja
função é somente para cálculos de integridade como, por exemplo: em Redes, onde
são usados para verificar se o arquivo não foi alterado ou corrompido durante a
transmissão dos dados; em aplicações Antivírus, onde é utilizado para identificação
de vírus e para proteção da integridade de arquivos; em Banco de Dados, protegem
as senhas no banco, onde o valor hash é armazenado no lugar da senha (XAVIER et
al, 2009).
Conforme Pires (2016), uma função hash deve possuir as seguintes
propriedades:
● A entrada pode ser qualquer sequência de caracteres de qualquer tamanho;
● A saída é uma sequência de caracteres de tamanho fixo;
● Sua eficiência é computável, ou seja, o tempo de execução da função para
uma entrada de n caracteres deve ser O(n).

As propriedades acima definem uma função hash de maneira geral,


suficientes para construir uma tabela de hash. No entanto, há mais duas
propriedades normalmente desejadas em uma função hash, ou propriedades que
caracterizam uma função hash criptográfico (NARAYANAN et a, 2016, apud PIRES,
2016).

● Resistente a colisões;
● Anti-reversão;

Ser resistente a colisões significa que a probabilidade de duas entradas


produzirem o mesmo hash deve ser pequena. Note que não se pode afirmar a
impossibilidade da ocorrência de colisão, uma vez que o domínio dessa função é
composto de todas as sequências de caracteres possíveis e a imagem pelo conjunto
de sequência de caracteres de um tamanho fixo. Se o domínio da função é um
conjunto infinito e a imagem um conjunto finito, as colisões são inevitáveis. No
entanto, boas funções de hash apresentam baixíssimas probabilidade de colisão. Na
prática, é quase impossível a ocorrência de uma colisão natural. A resistência à
colisão permite a utilização do hash como message digest (PIRES, 2016).
Ser anti-reversão significa que não é possível obter a mensagem de entrada x
a partir do hash h(x). Esta característica é alcançada fazendo com que a
probabilidade dos hashes na saída da função obedeçam uma distribuição uniforme.
Na prática, isto significa que não é possível correlacionar caracteres na entrada e na
saída da função apenas observando a frequência com que eles aparecem
(NARAYANAN et a, 2016, apud PIRES, 2016)
Elaine e Vitória
Message Digest (resumo de mensagem, síntese de mensagem)

O MD5 (Message Digest 5) é uma função criptográfica hash que recebe uma
mensagem de valor arbitrário e retorna um hash de 128 bits. É muito utilizado na
verificação de logins e senhas, integridade de arquivos e entre outros (DETOMINI,
2010).
Antes do MD5 tiveram alguns antecessores como o MD2 desenhado para
processadores de 8 bits e o MD4 que demonstrou que era possível achar colisões
em menos de um minuto utilizando um computador simples. A função foi
desenvolvida no MIT, por Ron Rivest, no início da década de 1990. Rivest também
desenvolveu o RSA, o RC5.
Rivest denota que o algoritmo MD5 requer 5 passos para que seja realizada
a criação do hash.

Preenchimento de Bits

Primeiramente temos o preenchimento de bits necessários para que a


entrada tenha comprimento igual a 448, módulo de 512. Desse modo, a mensagem
deve ter apenas 64 bits menor antes de ser múltiplo de 512, temos então:
mensagem + 64 % 512 = 0. O preenchimento dos bits sempre ocorre, mesmo sendo
múltiplo de 512. Sempre 1 bit é adicionado e o restante é preenchido com 0.
Por exemplo, se a nossa mensagem tiver 400 bits, adicionaremos um bit "1" e
47 bits '0', o que nos dá 448 bits, ou seja, 64 bits que não são divisíveis por 512. Se
a nossa mensagem tiver 1200 bits, adicionaremos um bit '1' e 271 bits '0', o que nos
dá 1472 bits. 1472+64 é divisível por 512. Pelo menos 1 bit e no máximo 512 bits
são acrescentados à mensagem original.
Parte (1) Fabricio

Anexo de tamanho

No segundo passo, os 64 bits restantes são preenchidos com um inteiro


representando o tamanho da mensagem original. Agora a mensagem tem um
comprimento que é exatamente divisível por 512 ou a mensagem é múltipla de 512.
Que por sua vez é divisível por 16.
Neste ponto a entrada é dividida em blocos de 512 bits e cada bloco de 512 é
subdividido em 16 blocos de 32 bits. Os blocos são processados e o valor hash é
dado pela concatenação das variáveis A, B, C e D resultando um hash de 4*32 =128
bits.
Parte (1) Fabricio

Inicializando as variáveis

O MD5 usa variáveis de quatro palavras, cada uma com 32 bits de


comprimento. Nós os denotamos por A,B,C,D. Estes são pré-inicializados como:

● A: 0x01234567
● B: 0x89abcdef
● C: 0xfedcba98
● D: 0x76543210
Processar a Mensagem em Blocos de 16 Palavras

Primeiro é necessário definir quatro funções auxiliares que recebem como


entrada 3 palavras de 32-bits e produzem como saída uma palavra de 32-bits.

Depois é criado uma tabela com 64 elementos utilizando a seguinte função:

abs(sin(i + 1)) × 2³²

A tabela é pré-processada dando o seguinte resultado:


A aplicação mais comum do MD5 é na verificação de integridade de arquivos e na
autenticação de dados. Aqui estão alguns usos específicos:

Integridade de arquivos: Pode-se calcular o hash MD5 de um arquivo e fornecer


essa impressão digital junto com o arquivo. Quando alguém recebe o arquivo, pode
recalcular o hash MD5 e compará-lo com o valor fornecido. Se os valores
coincidirem, isso indica que o arquivo não foi corrompido ou alterado durante a
transferência.

Armazenamento de senhas: Antigamente, o MD5 era usado para armazenar senhas


em sistemas. No entanto, devido a vulnerabilidades conhecidas, não é mais
considerado seguro para esse fim. Recomenda-se o uso de algoritmos mais
seguros, como bcrypt ou Argon2, para armazenar senhas hoje em dia.

Verificação de integridade de mensagens: Em algumas aplicações de rede, MD5


pode ser usado para verificar a integridade de mensagens transmitidas. Se a
mensagem for alterada durante a transmissão, o hash recalculado não
corresponderá ao valor esperado.
Parte (3) Emilly .

Também é pré-definida a quantidade de deslocações a esquerda que irá ser


realizada para cada bloco.

Cada palavra dos 4 passos é obtida a partir dessa função e posteriormente


cada palavra é concatenada uma na outra.

b = ((a + f(b, c, d) + M[g] + K[i]) <<< s[i]) + b

● a, b, c e d são as 4 variáveis definidas pelo próprio MD5;


● f é uma das funções auxiliares
● <<< s é a deslocação circular a esquerda pré-calculados
● M[g] é um dos 16 blocos de 32 bits
● g é um índice calculado dependendo de qual bloco ele está executando
● K[i] é um valor da tabela de 64 elementos

Para a primeira rodada com i de 0 a 15 (0 <= i <= 15):

● f = (B ^ C) V ((~B) ^ D)
● g=i

Para a segunda rodada com i de 16 a 31 (16 <= i <= 31):

● f = (D ^ B) V ((~D) ^ C)
● g = (5i + 1) % 16

Para a terceira rodada com i de 32 a 47 (32 <= i <= 47):


● f=B⊕C⊕D
● g = (3i + 5) % 16
Para a quarta rodada com i de 48 a 63 (48 <= i <= 47):

● f = C ⊕ (B V ~D)
● g = (7i) % 16

Vale lembrar que os valores de A, B, C e D são trocados entre si ao decorrer


da execução.

Saída

No final as palavras geradas são concatenadas resultando no hash de 128


bits do MD5.
Arnaldo.

Vantagens do MD5
algumas das características que foram inicialmente consideradas vantagens do
MD5:

Rapidez de Computação: O MD5 é um algoritmo rápido e eficiente em termos de


processamento. Isso o tornou atraente para muitas aplicações que necessitavam de
cálculos rápidos de hashes.

Facilidade de Implementação: O MD5 é relativamente simples de implementar, o


que facilitou sua adoção em uma variedade de sistemas e linguagens de
programação.

Tamanho Fixo do Hash: O MD5 produz uma saída de tamanho fixo (128 bits ou 32
caracteres hexadecimais), o que pode ser conveniente em algumas situações para
armazenamento ou transmissão de hashes.
Ampla Aceitação Inicial: Por um período de tempo, o MD5 era amplamente aceito e
usado em muitas aplicações, incluindo verificação de integridade de arquivos e
autenticação.

Desvantagens do MD5
Essa função, atualmente, já não é muito utilizada em razão de sua fragilidade
na questão de colisão, ou seja, de que duas mensagens possam produzir um
mesmo hash. Apesar dessa fragilidade, sua utilização ainda é segura para casos de
verificação de integridade de documentos (MELO e ALMEIDA, 2020).
A falha foi descoberta em 2005 com uma equipe de pesquisadores da
Shandong University, China, liderada pela pesquisadora Xiaoyum Wang, anunciou
na CRYPTO 2004 (Conferência Internacional de Criptologia) que poderiam haver
37
várias colisões no MD5 na ordem de 2 passos. Logo, estava estampado que o
algoritmo apresenta vulnerabilidades (XAVIER, 2008).

Velocidade de Processamento: Embora a velocidade seja geralmente


considerada uma vantagem, no caso do MD5, sua velocidade pode ser explorada
por atacantes em ataques de força bruta e de dicionário, tornando-o vulnerável a
ataques de senha.

Uso para Senhas: MD5 não é recomendado para armazenamento de senhas


devido à sua rápida computação e às colisões potenciais. É preferível usar
algoritmos mais seguros, como bcrypt ou Argon2.

Aplicações Recomendadas:
Embora o MD5 não seja mais apropriado para aplicações de segurança, ele ainda
pode ser utilizado em contextos onde a resistência criptográfica não é uma
preocupação crítica. Algumas aplicações mais leves incluem:

Checksums Simples: MD5 ainda pode ser usado para gerar checksums simples
para verificar a integridade de arquivos não críticos ou para fins não criptográficos.

Verificação Rápida de Integridade: Em ambientes onde a segurança não é uma


preocupação crítica, o MD5 pode ser utilizado para verificar rapidamente a
integridade de arquivos ou mensagens.
No entanto, para aplicações onde a segurança é uma prioridade, é altamente
recomendado usar algoritmos mais seguros, como SHA-256 ou SHA-3, que
oferecem uma resistência criptográfica muito maior contra ataques. O MD5 é
considerado obsoleto e não deve ser utilizado em cenários que envolvem segurança
sensível.

Nimbe, P.; Weyori, B.A.; Adekoya, A.F.; Rotation of bits: a classical and quantum
perspective. Journal of Electrical Systems and Inf Technol 8, 4 (2021).
[Link]

XAVIER, R. L.; MENDES, L. A. M.; Monteiro, A. B.. ASSINATURA DIGITAL:


UTILIZAÇÃO NA SEGURANÇA DE SOFTWARE. Revista Eletrônica FESJ, , v. 2, 10
ago. 2009. Disponível em:
[Link]

PIRES, 2016
[Link]

MELO e ALMEIDA, 2020


[Link]
da_tcc.pdf

[Link]
[Link]
[Link]

Você também pode gostar