Aula 1: Conceitos Básicos e Aplicações

Sessão 1: Pilares da Segurança da Informação

Os pilares da segurança não são isolados; eles interagem para garantir a proteção do ativo mais valioso de uma organização: a informação. Em concursos, esses conceitos são baseados principalmente na ISO/IEC 27001 e na bibliografia de William Stallings.

Confidencialidade (Confidentiality)

A confidencialidade garante que a informação não seja disponibilizada ou revelada a indivíduos, entidades ou processos não autorizados.

  • Foco: Proteção contra leitura/acesso não autorizado.
  • Mecanismos de Criptografia: * Cifras simétricas (AES) e assimétricas (RSA) para proteger dados em repouso e em trânsito.
    • Túneis VPN (IPsec, TLS).
  • Exemplo Prático: Um e-mail criptografado com a chave pública do destinatário. Somente o dono da chave privada correspondente poderá ler o conteúdo.
  • Ataque comum: Sniffing (interceptação de tráfego) e engenharia social.

Integridade (Integrity)

A integridade garante que a informação não foi alterada de maneira não autorizada ou acidental durante o seu ciclo de vida (processamento, armazenamento ou transmissão).

  • Foco: Proteção contra modificação não autorizada.
  • Mecanismos de Criptografia:
    • * Funções Hash: (SHA-256, SHA-3) geram uma “impressão digital” do dado. Qualquer alteração no bit altera o hash (efeito avalanche).
    • HMAC (Hash-based Message Authentication Code): Garante integridade e autenticidade simultaneamente.
  • Exemplo Prático: Ao baixar uma ISO de um sistema operacional, o site fornece um código SHA-256. Você calcula o hash do arquivo baixado e compara; se forem iguais, o arquivo é íntegro.
  • Ataque comum: Ataques de bit-flipping ou injeção de código.

Disponibilidade (Availability)

Garante que a informação e os sistemas estejam acessíveis e utilizáveis no momento em que usuários autorizados precisarem.

  • Foco: Garantia de acesso e continuidade.
    • Mecanismos: * Redundância e Failover (clusters).
      • Backups e planos de recuperação de desastres (DRP).
      • Proteção contra ataques de negação de serviço (DoS/DDoS).
    • Exemplo Prático: Um servidor de banco de dados operando em regime de alta disponibilidade (Active-Active) em zonas de disponibilidade diferentes.
    • Ataque comum: Ransomware (que afeta a disponibilidade ao cifrar os dados sem autorização) e DDoS.

Autenticidade (Authenticity)

Refere-se à garantia de que a comunicação, o documento ou a entidade é de fato quem afirma ser. É a validação da origem.

  • Foco: Identificação da autoria.
  • Mecanismos de Criptografia: * Certificados Digitais (Padrão X.509).
    • Assinaturas Digitais.
  • Exemplo Prático: O protocolo HTTPS usa certificados para garantir que você está realmente conectado ao site do seu banco e não a um clone.

Não-Repúdio ou Irretratabilidade (Non-repudiation)

É a capacidade de garantir que o emissor de uma mensagem ou o executor de uma ação não possa, posteriormente, negar a autoria ou a ocorrência do evento.

  • Foco: Prova legal de autoria e integridade.
  • Mecanismos de Criptografia: * Assinatura Digital: É o principal mecanismo. Como a chave privada é de uso exclusivo e intransferível do autor, a assinatura vincula o autor ao conteúdo de forma inegável.
  • Exemplo Prático: Um contrato assinado com certificado digital padrão ICP-Brasil tem validade jurídica, impedindo que o assinante negue ter firmado o documento.

Tabela Resumo para Revisão Rápida

PilarObjetivo PrincipalFerramenta Criptográfica
Confidencialidade (Confidentiality)Sigilo / PrivacidadeCifragem (Simétrica/Assimétrica)
Integridade (Integrity)Precisão / Não-alteraçãoFunções Hash (SHA-2)
Disponibilidade (Availability)Acesso constanteRedundância / Backups
Autenticidade (Authenticity)Verificação de origemAssinatura Digital / Certificados
Não-Repúdio ou Irretratabilidade (Non-repudiation)Impossibilidade de negaçãoAssinatura Digital (Chave Privada)

Sessão 2: Terminologia Fundamental da Criptografia

O processo de transformar informações para protegê-las baseia-se em quatro componentes essenciais que operam em conjunto.

1. Texto Claro (Plaintext)

O Plaintext é o dado original que se deseja proteger. É a informação em sua forma inteligível, que pode ser lida ou compreendida sem a necessidade de chaves especiais.

  • Representação Matemática: Frequentemente denotado pela letra P ou M (Message).
  • Em Concursos: As bancas podem se referir a ele como “texto simples”, “texto em claro” ou “dados originais”.

2. Texto Cifrado (Ciphertext)

O Ciphertext é o resultado da aplicação do algoritmo de criptografia sobre o texto claro. É uma sequência de dados que deve parecer aleatória e ininteligível para qualquer pessoa que não possua a chave correta.

  • Representação Matemática: Denotado pela letra C.
  • Propriedade: Deve ser resistente à análise; ou seja, não deve revelar padrões sobre o texto claro original.

3. Algoritmo de Criptografia (Cifra)

O algoritmo, ou Cifra, é a função matemática ou o conjunto de passos lógicos utilizados para realizar a transformação dos dados. Existem dois processos principais:

  • Cifragem (Encryption): Transforma P em C.
  • Decifragem (Decryption): Transforma C de volta em P.
  • Segurança: Segundo o Princípio de Kerckhoffs (tema recorrente em provas), a segurança de um sistema criptográfico deve residir inteiramente na chave, e não no segredo do algoritmo. Algoritmos públicos e testados (como o AES) são preferíveis a algoritmos “secretos” e proprietários.

4. Chave (Key)

A Chave é um valor (geralmente uma string de bits) que serve como parâmetro para o algoritmo. É a chave que personaliza a transformação: para um mesmo algoritmo e um mesmo texto claro, chaves diferentes produzirão textos cifrados completamente distintos.

  • Representação Matemática: Denotado pela letra K.
  • Importância: O tamanho da chave (ex: 128 bits, 256 bits) determina o “espaço de chaves” e a resistência a ataques de força bruta.

O Fluxo Criptográfico (Fórmulas de Estudo)

Para fins de prova, memorize as relações fundamentais:

  • Cifragem: E(K, P) = C (O algoritmo de cifragem E, usando a chave K sobre o texto claro P, resulta no texto cifrado C).
  • Decifragem: D(K, C) = P (O algoritmo de decifragem D, usando a chave K sobre o texto cifrado C, recupera o texto claro P).

Exemplo Prático: Cifra de Substituição Simples

Para ilustrar de forma didática (comum em questões introdutórias):

  1. Plaintext (P): “BOLA”
  2. Algoritmo: Cifra de César (Deslocamento de letras no alfabeto).
  3. Chave (K): 3 (deslocar três posições à frente).
  4. Cifragem:
    • B + 3 = E
    • O + 3 = R
    • L + 3 = O
    • A + 3 = D
  5. Ciphertext (C): “EROD”

Sesssão 3 História e Cifras Clássicas

Da Substituição Simples à Mecanização

A criptografia clássica baseia-se em dois princípios fundamentais: Substituição (trocar um caractere por outro) e Transposição (embaralhar a ordem dos caracteres). Os métodos abaixo focam predominantemente na substituição.

Cifra de César (Substituição Monoalfabética)

É um dos métodos mais antigos e simples. Baseia-se na substituição de cada letra do texto claro por outra que se encontra um número fixo de posições à frente no alfabeto.

  • Funcionamento Matemático:
    Seja $P$ a posição da letra original e $k$ a chave (deslocamento):
    $$C \equiv (P + k) \pmod{26}$$
  • Exemplo (Chave $k = 3$):
    • Texto Claro: S E R V I D O R
    • Processo: S(+3)=V, E(+3)=H, R(+3)=U, V(+3)=Y…
    • Texto Cifrado: V H U Y L G R U
  • Vulnerabilidade: É extremamente fraca. Como existem apenas 25 chaves possíveis (no alfabeto de 26 letras), pode ser quebrada por força bruta em segundos ou por análise de frequência (a letra que mais aparece no cifrado provavelmente corresponde à letra que mais aparece no idioma original, como o “A” ou “E” em português).


Cifra de Vigenère (Substituição Polialfabética)

Criada no século XVI, foi chamada de “le chiffre indéchiffrable” por séculos. Ao contrário da Cifra de César, ela utiliza uma palavra-chave para variar o deslocamento a cada letra.

  • Funcionamento: Utiliza-se a Tabula Recta (Quadrado de Vigenère). Cada letra da mensagem é somada à letra correspondente da chave (repetida ciclicamente).
  • Exemplo:
    • Texto Claro: C A S A
    • Chave: B E M (repetida vira B E M B)
    • Processo:
      • C (pos. 2) + B (pos. 1) = D (pos. 3)
      • A (pos. 0) + E (pos. 4) = F (pos. 4)
    • Texto Cifrado: D F E B
  • Vulnerabilidade: Embora resista à análise de frequência simples, foi quebrada por Friedrich Kasiski no século XIX através do Exame de Kasiski, que identifica repetições no texto cifrado para descobrir o tamanho da chave.

Esteganografia

A esteganografia (do grego “escrita escondida”) difere da criptografia. Enquanto a criptografia torna a mensagem ininteligível, a esteganografia oculta a existência da mensagem.

  • Métodos Clássicos:
    • Tatuagem em couro cabeludo: Raspava-se a cabeça de um mensageiro, tatuava-se a mensagem e esperava-se o cabelo crescer.
    • Tintas invisíveis: Uso de substâncias como suco de limão (que revela a escrita ao ser aquecido).
    • Acatafonia: Esconder mensagens em textos triviais (ex: a primeira letra de cada palavra de um parágrafo forma a mensagem real).
  • Contexto Moderno: Esconder dados nos bits menos significativos (LSB) de arquivos de imagem (JPG) ou áudio (MP3).

A Máquina Enigma

Utilizada pela Alemanha nazista na Segunda Guerra Mundial, representa o auge da criptografia mecânica.

  • Componentes:
    • Rotores: Discos móveis que mudavam o circuito elétrico a cada tecla pressionada (substituição polialfabética extremamente complexa).
    • Painel de Conexões (Plugboard): Trocava pares de letras antes e depois de passarem pelos rotores.
    • Refletor: Garantia que o processo de cifragem fosse o mesmo da decifragem, mas impedia que uma letra fosse cifrada como ela mesma (uma falha fatal explorada pelos aliados).
  • A Quebra: O esforço liderado por Alan Turing em Bletchley Park, utilizando as máquinas “Bombes”, foi crucial para decifrar as comunicações alemãs e antecipar movimentos de guerra.

Tabela Comparativa para Revisão

MétodoTipoCaracterística PrincipalPrincipal Fraqueza
Cifra de César (Substituição Monoalfabética)MonoalfabéticaDeslocamento fixoForça bruta / Análise de frequência
Cifra de Vigenère (Substituição Polialfabética)PolialfabéticaChave variável (palavra)Método de Kasiski
EsteganografiaOcultaçãoEsconde a existência do dadoSe o método for descoberto, o dado é lido
A Máquina EnigmaMecânicaRotores e PlugboardUma letra nunca era cifrada como ela mesma

Sessão 4: Teoria da Informação na Criptografia

Este tópico trata da base científica da criptografia moderna. Claude Shannon, em 1949, publicou o artigo “Communication Theory of Secrecy Systems”, que transformou a criptografia de uma arte baseada em “tentativa e erro” em uma disciplina matemática rigorosa.

Entender o que torna um algoritmo “matematicamente forte” é essencial.

Entropia de Shannon

A entropia é a medida da incerteza ou da aleatoriedade associada a uma fonte de dados. Na criptografia, usamos a entropia para medir quão imprevisível é uma chave ou um texto cifrado.

  • O Conceito: Se um sistema tem alta entropia, ele é altamente aleatório e difícil de prever. Se tem baixa entropia, possui padrões que podem ser explorados por criptoanalistas.
  • Fórmula Matemática: A entropia H de uma variável aleatória X é calculada por:
H(X)=i=1np(xi)log2p(xi)H(X) = -\sum_{i=1}^{n} p(x_i) \log_2 p(x_i)

Onde:

p(xi)p(x_i)

é a probabilidade de ocorrência do caractere i.

  • Aplicação em Provas:
    • Sigilo Perfeito: Shannon provou que o One-Time Pad possui sigilo perfeito porque o texto cifrado não fornece nenhuma informação sobre o texto claro (a entropia do texto cifrado é máxima).
    • Espaço de Chaves: Uma chave de 256 bits deve idealmente ter 256 bits de entropia. Se o gerador de números aleatórios for ruim, a entropia real pode ser menor, facilitando ataques.

Confusão e Difusão

Estes são os dois pilares que Shannon identificou como necessários para frustrar a criptoanálise baseada em estatística.

Confusão (Confusion)

Busca tornar a relação entre as estatísticas do texto cifrado e o valor da chave de cifragem a mais complexa possível.

  • Objetivo: Impedir que o atacante descubra a chave a partir do texto cifrado.
  • Mecanismo principal: Substituição.
  • Exemplo moderno: As S-Boxes (Caixas de Substituição) do algoritmo AES. Elas realizam trocas não-lineares de bits que “confundem” a relação lógica.

Difusão (Diffusion)

Busca espalhar a influência de um único caractere do texto claro (ou da chave) por todo o texto cifrado.

  • Objetivo: Se alterarmos um único bit no texto claro, aproximadamente metade dos bits no texto cifrado deve mudar (conhecido como Efeito Avalanche).
  • Mecanismo principal: Transposição (ou Permutação).
  • Exemplo moderno: As etapas ShiftRows e MixColumns do AES, que movem e misturam os bits entre as colunas do bloco.

Redundância e Distância de Unicidade

  • Redundância: Línguas naturais (como português ou inglês) são redundantes (ex: após a letra “Q” quase sempre vem “U”). A criptografia deve remover essa redundância para ser segura.
  • Distância de Unicidade: É a quantidade mínima de texto cifrado que um criptoanalista precisa para conseguir quebrar a cifra de forma única (sem ambiguidades).

Exemplo Prático de Fixação

Imagine o algoritmo AES (Advanced Encryption Standard):

  1. Confusão: É gerada pelo SubBytes. Ele troca os bytes por outros de uma tabela fixa de forma altamente não-linear.
  2. Difusão: É gerada pelo ShiftRows (troca as linhas de lugar) e MixColumns (combina matematicamente os dados das colunas).

Questão Típica de Concurso: “O processo de substituir elementos do texto claro por outros para ocultar a relação entre o texto cifrado e a chave é definido por Shannon como…”

Resposta: Confusão.

Sessão 5: Gerenciamento de Números Aleatórios em Criptografia

Na computação, gerar um número “realmente” aleatório é um desafio, pois computadores são máquinas determinísticas. Para resolver isso, dividimos os geradores em três categorias principais.

1. TRNG (True Random Number Generator)

Os Geradores de Números Aleatórios Reais utilizam fenômenos físicos externos ao sistema computacional, que são inerentemente imprevisíveis.

  • Fontes de Entropia (Ruído): Decaimento radioativo, ruído térmico em semicondutores, ruído atmosférico ou variações no tempo de resposta de hardware.
  • Características:
    • Não-determinístico: A mesma entrada nunca produzirá a mesma saída.
    • Lento: Depende da coleta de fenômenos físicos.
    • Uso: Geralmente usado para gerar a “semente” (seed) inicial para geradores baseados em software.

2. PRNG (Pseudo-Random Number Generator)

São algoritmos matemáticos que produzem sequências de números que apenas parecem aleatórias, mas são totalmente determinadas por um valor inicial chamado Semente (Seed).

  • Funcionamento: Se você conhece o algoritmo e a semente, você pode prever cada número da sequência.
  • Características:
    • Determinístico: Mesma semente = Mesma sequência.
    • Rápido: Extremamente eficiente para processamento em massa.
    • Uso: Simulações estatísticas, jogos, procedimentos científicos (onde a reprodutibilidade é necessária).
  • Risco em Criptografia: Um PRNG comum (como a função rand() em C ou Math.random() em JavaScript) nunca deve ser usado para segurança, pois sua sequência é previsível após a observação de alguns resultados.

3. CSPRNG (Cryptographically Secure PRNG)

É um subconjunto dos PRNGs que atende a requisitos rigorosos para suportar o uso em criptografia (chaves, IVs, salts, nonces).

  • Requisitos Fundamentais:
    1. Teste do Próximo Bit: Dado os primeiros k bits da sequência, não deve haver algoritmo capaz de prever o próximo bit com probabilidade superior a 50%.
    2. Resistência ao Compromisso de Estado: Se a “chave interna” do gerador for revelada, deve ser impossível reconstruir a sequência de números gerada antes do vazamento.
  • Implementações Comuns:
    • Algoritmos baseados em cifras de bloco (como o AES no modo CTR).
    • Algoritmos baseados em Hash (HMAC-DRBG).
  • Exemplos em Sistemas Operacionais:
    • Linux/Unix: /dev/random (bloqueante, alta entropia) e /dev/urandom (não-bloqueante, CSPRNG).
    • Windows: BCryptGenRandom.
    • Java: java.security.SecureRandom.

Tabela Comparativa para Estudo

CaracterísticaTRNGPRNG ComumCSPRNG
FonteFenômenos FísicosAlgoritmos MatemáticosAlgoritmos + Alta Entropia
VelocidadeBaixaMuito AltaAlta
Determinístico?NãoSimSim (mas imprevisível)
Seguro para Chaves?SimNãoSim
ExemploRuído térmicoL Linear CongruentialAES-CTR DRBG

O Conceito de Entropia e “Pools”

Em sistemas operacionais modernos, existe um Entropy Pool (Reserva de Entropia). O sistema coleta ruídos de dispositivos (teclado, mouse, interrupções de disco) para “alimentar” o CSPRNG. Quando o pool esvazia, o gerador /dev/random pode travar o sistema até que mais entropia seja coletada, enquanto o /dev/urandom continua gerando dados baseando-se no estado interno anterior.

Dica de Concurso:

Fique atento à diferença entre /dev/random e /dev/urandom.

  • Historicamente: Dizia-se que o /dev/urandom era menos seguro por não “bloquear”.
  • Visão Atual (e cobrada em provas recentes): Para quase todos os propósitos criptográficos modernos, o /dev/urandom é o recomendado, pois uma vez semeado com entropia suficiente, o algoritmo CSPRNG é matematicamente robusto.

Sessão 6: Aplicações Práticas da Criptografia

Com certeza! Vou consolidar os pontos fundamentais das fontes para criar um guia completo de estudo e memorização sobre as aplicações práticas da criptografia.

1. Terminologia e Pilares Fundamentais

Para aprender criptografia, você deve entender que ela serve para garantir a Tríade CIA: Confidencialidade, Integridade e Disponibilidade.

  • Texto Claro (Plaintext): Dado original inteligível.
  • Texto Cifrado (Ciphertext): Dado transformado e ininteligível.
  • Algoritmo (Cifra): O processo lógico de transformação.
  • Chave (Key): O parâmetro secreto que personaliza a cifragem.

2. Proteção de Dados em Repouso (Data at Rest)

Foca em dados gravados em HDs, SSDs ou nuvem para impedir acesso em caso de roubo do hardware.

  • BitLocker (Windows): Usa o algoritmo AES e o chip TPM para guardar chaves.
  • LUKS (Linux): Padrão do kernel Linux que permite múltiplas chaves para o mesmo volume.
  • Dica de Memorização: A proteção ocorre no nível de setores e blocos, sendo transparente para o usuário após o login.

3. Proteção de Dados em Trânsito (Data in Transit)

Protege dados que viajam pela rede contra interceptações (Eavesdropping).

  • TLS (sucessor do SSL): Base do HTTPS. Usa criptografia híbrida: assimétrica para trocar chaves e simétrica para os dados reais.
  • VPNs:
    • IPsec: Opera na Camada 3. O Modo Transporte cifra apenas o conteúdo; o Modo Túnel cifra o pacote inteiro.
    • OpenVPN: Baseado em OpenSSL, é excelente para atravessar firewalls.

4. Criptografia de Ponta-a-Ponta (E2EE)

Garante que apenas os envolvidos leiam a mensagem; o servidor é apenas um repetidor de dados cifrados.

  • Protocolo Signal: Usa o algoritmo Double Ratchet para garantir a Forward Secrecy (segurança de mensagens passadas e futuras mesmo se uma chave vazar).

5. Integridade e Gerenciamento de Senhas

  • Funções de Hash (SHA-256, SHA-3): Funcionam como “impressões digitais”. São unidirecionais e resistentes a colisões.
  • Salting: Adiciona-se um dado aleatório (“Salt”) à senha antes de gerar o hash para evitar ataques de tabelas pré-calculadas.

6. Bases Teóricas (Conceitos de Shannon)

Para a criptografia ser forte, ela precisa de dois pilares identificados por Claude Shannon:

  • Confusão: Dificulta a relação entre a chave e o texto cifrado (geralmente via substituição).
  • Difusão: Espalha a influência de um bit do texto claro por todo o texto cifrado (via transposição/permutação).

Tabela de Revisão Rápida

AplicaçãoTecnologiaFoco Principal
Arquivos/HDAES + TPM (BitLocker)Roubo de hardware
Web (HTTPS)TLS (RSA + AES)Sigilo na internet
MensageriaSignal ProtocolPrivacidade total
IntegridadeSHA-256Não-alteração
Geração de ChavesCSPRNG (/dev/urandom)Imprevisibilidade

Material Complementar Recomendado

Se você deseja se aprofundar, as referências mais cobradas em exames e manuais técnicos são:

  1. William Stallings: “Criptografia e Segurança de Redes” (A base teórica de quase todos os concursos).
  2. Andrew Tanenbaum: “Redes de Computadores” (Focado em protocolos como IPsec e TLS).
  3. NIST (Padrões Internacionais): Especialmente as publicações SP 800-90A (números aleatórios) e FIPS 202 (SHA-3).

Sessão 7: Funções de Hash

Esta aula foi estruturada para que você domine os pontos mais cobrados sobre Funções de Hash em concursos de TI (como Cebraspe e FGV), focando em propriedades matemáticas e memorização de algoritmos.

1. O que é uma Função Hash?

Imagine uma “moenda” matemática: você insere dados de qualquer tamanho e ela entrega uma “impressão digital” (digest) de tamanho fixo.

  • Unidirecionalidade: É fácil gerar o hash, mas impossível “desfazer” a operação para encontrar o dado original.
  • Determinismo: A mesma entrada sempre gerará o mesmo hash.

2. As 3 Propriedades de Ouro (Cai muito!)

Para ser segura, a função deve cumprir estes requisitos:

  1. Resistência à Pré-imagem: Dado o hash, você não consegue descobrir a mensagem original (unidirecionalidade).
  2. Resistência à Segunda Pré-imagem (Colisão Fraca): Dada uma mensagem $m1$, é impossível encontrar outra mensagem $m2$ que resulte no mesmo hash.
  3. Resistência à Colisão (Colisão Forte): É impossível encontrar quaisquer duas mensagens diferentes que gerem o mesmo hash.
    • Dica de prova: Esta é a mais difícil de garantir devido ao Paradoxo do Aniversário.

3. Efeito Avalanche

Se você mudar apenas 1 bit na entrada, cerca de 50% dos bits do hash de saída devem mudar drasticamente. Isso impede que um atacante preveja padrões nos dados.

4. Tabela de Memorização: Algoritmos e Status

As bancas adoram confundir tamanhos de bits e segurança.

AlgoritmoSaída (Bits)EstruturaStatus de Segurança
MD5128Merkle-DamgårdInseguro (Colisões fáceis)
SHA-1160Merkle-DamgårdInseguro (Ataque SHAttered)
SHA-256256Merkle-DamgårdSeguro (Padrão atual)
SHA-512512Merkle-DamgårdSeguro (Alto desempenho 64-bit)
SHA-3VariávelEsponjaSeguro (Alternativa ao SHA-2)

5. Aplicações Práticas

  • Integridade: Verificar se um arquivo foi alterado (checksum).
  • Salting de Senhas: Para evitar ataques de Rainbow Table, adicionamos um dado aleatório (Salt) antes de gerar o hash da senha: $H(Senha + Salt)$.
  • Assinaturas Digitais: O hash garante que o conteúdo não foi modificado (integridade).

Dica Extra: Lembre-se que o SHA-3 (Keccak) usa uma estrutura de Esponja (Sponge), enquanto o SHA-2 usa Merkle-Damgård. Isso é um diferencial comum em questões de alto nível.


O Paradoxo do Aniversário e a Resistência à Colisão

As fontes mencionam que a Resistência à Colisão Forte é a mais difícil de garantir devido ao Paradoxo do Aniversário.

O que a banca cobra: Para uma função hash com saída de n bits, a força bruta para encontrar uma pré-imagem (reverter o hash) exige 2n tentativas. No entanto, para encontrar uma colisão (dois arquivos diferentes com o mesmo hash), são necessárias apenas aproximadamente 2n/2 tentativas.

Exemplo Prático: No MD5 (128 bits), seriam necessários 264 tentativas para achar uma colisão, o que hoje é computacionalmente viável, tornando-o inseguro.

Merkle-Damgård vs. Sponge (Esponja)

As fontes diferenciam as estruturas do SHA-2 e SHA-3, um ponto vital para concursos de TI.

Merkle-Damgård (SHA-1 e SHA-2): O dado é processado em blocos de tamanho fixo. Uma fraqueza teórica dessa estrutura é a suscetibilidade a ataques de extensão de comprimento (length extension attacks), onde um atacante pode calcular H(Mensagem+Extensa~o) sem conhecer a mensagem original.

Sponge Construction (SHA-3/Keccak): O SHA-3 utiliza as fases de “Absorção” (onde os dados são incorporados ao estado interno) e “Squeezing” (onde o hash é extraído). Essa estrutura é imune a ataques de extensão de comprimento, sendo o principal motivo para ser uma alternativa robusta ao SHA-2.

HMAC: Integridade + Autenticidade

Enquanto o hash simples garante apenas a integridade (verificar se o arquivo mudou), o HMAC (Hash-based Message Authentication Code) garante também a autenticidade.

Funcionamento: O HMAC combina uma chave secreta com a mensagem antes de aplicar a função hash.

Por que importa: Sem a chave, um atacante pode alterar a mensagem e gerar um novo hash (comprometendo a integridade). Com o HMAC, o atacante não consegue gerar um hash válido após a alteração, pois não possui a chave secreta.

Confusão e Difusão no Hash

Embora esses conceitos de Shannon sejam mais associados a cifras como o AES, eles se aplicam ao hash através do Efeito Avalanche.

Difusão: Garante que a mudança em um bit da entrada se espalhe por todo o digest de saída.

Confusão: É a propriedade de tornar a relação entre a entrada e o hash o mais complexa possível, dificultando a análise estatística para “adivinhar” o padrão

Autores Clássicos (Bases Teóricas)

William Stallings – Criptografia e Segurança de Redes: É a principal referência para funções hash, princípios de confusão e difusão, e a tríade da segurança.

Bruce Schneier – Applied Cryptography: Fundamental para entender as falhas do MD5 e a importância da entropia em geradores de números aleatórios.

Andrew S. Tanenbaum – Redes de Computadores: Muito utilizado pelo Cebraspe para questões de segurança em redes, como IPsec e TLS.

Behrouz Forouzan – Comunicação de Dados e Redes de Computadores: Referência para diagramas de protocolos e pilares da segurança.

Alfred J. Menezes – Handbook of Applied Cryptography: Fonte de nível avançado para a matemática de sequências aleatórias e teoria da informação.

Paar & Pelzl – Understanding Cryptography: Focado na transição da criptografia clássica para a moderna.

Simon Singh – O Livro dos Códigos: A melhor fonte didática para o contexto histórico da Cifra de Vigenère e da máquina Enigma.

Normas e Padrões Oficiais

NIST (EUA): Documentos como o FIPS 180-4 (SHA-1 e SHA-2), FIPS 202 (SHA-3) e SP 800-90A (geradores aleatórios) definem os padrões mundiais.

ISO/IEC: Normas 27001 e 27002 para gestão de segurança e a 18031 para geração de bits aleatórios.

Claude Shannon: O artigo original “Communication Theory of Secrecy Systems” (1949), que fundamenta a ciência da criptografia moderna.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *