A criptografia tem uma história de milênios, com o objetivo de transformar mensagens em formas ilegíveis para terceiros não autorizados. Hoje, o campo distingue entre cifras (transformação bit a bit, sem considerar a linguagem) e códigos (substituição de palavras). O modelo básico envolve uma função de criptografia E com uma chave K que gera o texto cifrado a partir do texto simples P, e a função de descriptografia D que reverte C em P.
Três grandes grupos históricos contribuíram para a criptografia: militares, diplomatas, e pessoas privadas que desejam manter informação confidencial. Antes dos computadores, o segredo geralmente era o algoritmo conhecido apenas por quem realizava a criptografia; a chave era o segredo-chave que variava com o tempo. A ideia de que o segredo reside na chave (em vez do algoritmo) é associada a Auguste Kerckhoffs.
Notação comum: se E é a criptografia de P com chave K gerando C, então C = E_K(P) e P = D_K(C). A criptografia moderna assume que o algoritmo é público e a segurança depende da chave.
Princípio 1 – Redundância: toda mensagem criptografada deve conter informações redundantes, para que o receptor possa verificar se a mensagem recebida é válida. Exemplo: se uma encomenda inclui apenas 3 bytes de dados, a redundância ajuda a impedir que o intruso envie dados inválidos que pareçam válidos.
Princípio 2 – Prevenção de reuso (anti-replay): mecanismos para impedir que mensagens antigas sejam reutilizadas. Ter um tempo válido (ex.: 60 segundos) ou um contador ajuda a filtrar mensagens antigas.
Cifra de César é um caso particular de cifra de substituição monoalfabética, em que cada letra é deslocada por k posições no alfabeto. Em substituição monoalfabética, cada caractere é substituído por outro de forma fixa. Um criptoanalista pode usar estatísticas da língua (frequência de letras, digramas e trigramas) para adivinhar a substituição. Um exemplo simples ilustra como frequências ajudam a deduzir a chave.
Cifras de transposição rearranjam a ordem das letras sem alterar os símbolos. A cifra de transposição por colunas usa uma chave sem repetições (ex.: NEGABUCK). A mensagem é escrita horizontalmente; a leitura se faz por colunas seguindo a ordem determinada pela chave. Quebrar envolve estimar o número de colunas, deduzir o tamanho da chave a partir de padrões de digramas/trigramas, e então ordenar as colunas para reconstruir o texto simples.
O conceito de chave única (one-time pad, OTP) usa uma chave aleatória tão longa quanto a mensagem, com operações como XOR entre a mensagem e a chave para produzir o ciphertext. Teoricamente, OTP oferece segurança perfeita (informação nula na ciphertext). Na prática, a desvantagem é a distribuição e gestão de chaves extremamente grandes. A criptografia quântica (BB84) surge como uma forma de distribuir chaves de maneira segura.
Exemplo: se a mensagem "I love you" é convertida em ASCII de 7 bits e XOR com uma chave única, qualquer mensagem de tamanho correspondente pode ser gerada a partir do ciphertext, o que ilustra a propriedade de confidencialidade perfeita sob OTP.
A criptografia quântica BB84 descreve uma forma prática de distribuir chaves seguras usando fotões polarizados, com a presença de intrusos (p.ex., Trudy) sendo detectável pelas alterações nas bases de medição.
Observação: manter o algoritmo público e a chave secreta (Kerckhoffs) é a prática moderna. Oferecer redundância suficiente evita mensagens inválidas, mas também aumenta as informações que o atacante pode explorar. O equilíbrio entre segurança prática e teórica é fundamental.
Resposta correta: B) Redundância e prevenção de repetição
A redundância serve para validar a mensagem; a prevenção de repetição impede ataques de reutilização de mensagens antigas.
Resposta correta: B) Permitir ao receptor verificar se a mensagem é válida e não inválida
A redundância facilita a confirmação de validade e impede que dados inválidos sejam interpretados como válidos.
Resposta correta: C) Cada bloco de texto simples é codificado com a mesma chave, resultando no mesmo ciphertext para blocos iguais
O ECB é simples, mas vulnerável: blocos idênticos geram ciphertext idêntico, facilitando a análise.
Resposta correta: C) AES (Rijndael) usa blocos de 128 bits e chaves de 128, 192 ou 256 bits
O AES opera com blocos de 128 bits e suporta chaves de 128/192/256 bits, com várias rondas dependendo do tamanho da chave.