◇ OpenCyber Academy
Graduação · Capítulo 17 · Português

Capítulo 17 — Conceitos de criptografia

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Capítulo 17 — Conceitos de criptografia

Mapa da aula

Aula 17 publicada. Mapa, exemplo, EX049.

flowchart TD
  N0["17.1 O princípio de Kerckhoffs"]
  N1["Laboratório — Quebrar uma cifra de César"]
  N2["17.2 Por que as cifras clássicas falham"]
  N3["Síntese"]
  N0 --> N1 --> N2 --> N3
  N3 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX049"]

Desenho lógico

flowchart LR
  N0["17.1 O princípio de Kerckhoffs"]
  N1["Laboratório — Quebrar uma cifra de César"]
  N2["17.2 Por que as cifras clássicas falham"]
  N3["Síntese"]
  N0 --> N1 --> N2 --> N3 --> Q["EX049"]
[17.1 O princípio de Kerckhoffs]
    |
    v
[Laboratório — Quebrar uma cifra de César]
    |
    v
[17.2 Por que as cifras clássicas falham]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX049]

Objetivos de aprendizagem

Você vai (1) explicar o princípio de Kerckhoffs; (2) mostrar por que as cifras clássicas falham; (3) definir objetivos modernos de segurança, como a indistinguibilidade.

17.1 O princípio de Kerckhoffs

Uma cifra deve continuar segura mesmo que tudo sobre ela, exceto a chave, seja público. Esse princípio, enunciado por Auguste Kerckhoffs no século XIX, orienta a criptografia moderna: o AES é integralmente publicado no FIPS 197, e sua segurança se apoia no sigilo das chaves. Priya aprende por que algoritmos secretos são uma aposta ruim: eles acabam sendo descobertos por engenharia reversa, recebem pouco escrutínio público e mudá-los é caro. Normas públicas e bem analisadas concentram a atenção dos especialistas onde as fraquezas podem ser encontradas e corrigidas cedo. Os fornecedores da Tidewell são solicitados a confirmar que usam algoritmos publicados.

Laboratório — Quebrar uma cifra de César

"""Break a toy Caesar cipher by frequency analysis to show why classical ciphers fail."""
from collections import Counter
TEXT = "THE LIBRARY OPENS AT NINE AND THE READING ROOM CLOSES AT EIGHT EVERY EVENING"

def shift(s, k):
    return "".join(chr((ord(c) - 65 + k) % 26 + 65) if c.isalpha() else c for c in s)

def main():
    ct = shift(TEXT, 11)
    top = Counter(c for c in ct if c.isalpha()).most_common(1)[0][0]
    k = (ord(top) - ord("E")) % 26
    print("ciphertext:", ct[:30], "...")
    print("most common letter:", top, "-> guessed shift", k)
    print("recovered:", shift(ct, -k)[:30], "...")
    print("keys to try by brute force:", 25)

if __name__ == "__main__":
    main()

Execute com python3 lab_caesar.py. Saída verificada:

ciphertext: ESP WTMCLCJ ZAPYD LE YTYP LYO  ...
most common letter: P -> guessed shift 11
recovered: THE LIBRARY OPENS AT NINE AND  ...
keys to try by brute force: 25

17.2 Por que as cifras clássicas falham

O laboratório cifra uma frase sobre o horário da biblioteca com um deslocamento de César de 11. A letra mais comum do texto cifrado é P, e supor que ela representa o E, a letra mais comum do inglês, dá o deslocamento 11 e recupera o texto. Mesmo sem análise de frequência, existem apenas 25 deslocamentos, então a força bruta é instantânea. Priya amplia a lição: as cifras de substituição preservam os padrões das letras, e qualquer cifra que vaze estrutura sobre o texto claro pode ser atacada estatisticamente. O Handbook of Applied Cryptography, no capítulo 7, faz um panorama desses sistemas clássicos e de por que eles foram abandonados.

17.3 Objetivos modernos

A criptografia moderna define a segurança com precisão. Katz e Lindell descrevem a indistinguibilidade: um atacante que escolhe duas mensagens e vê a cifração de uma delas não deve conseguir dizer qual, com probabilidade significativamente melhor do que o lançamento de uma moeda. Isso exclui o vazamento de padrões, à parte o tamanho. Um esquema determinístico, em que a mesma mensagem sempre é cifrada da mesma forma, falha nessa definição, porque as mensagens repetidas ficam visíveis. É por isso que a cifração moderna usa nonces aleatórios ou únicos e por que a cifração autenticada também garante a integridade.

Exemplo resolvido

Priya quebra uma cifra de César com deslocamento 11 por análise de frequência, explica o princípio de Kerckhoffs usando o FIPS 197 e mostra por que a cifração determinística falha na indistinguibilidade.

Caso sintético. A mensagem é inventada; o FIPS 197 e o Handbook são reais.

Erros e limites

A indistinguibilidade não esconde o tamanho da mensagem. As cifras clássicas servem para a história e o ensino, nunca para a proteção.

Exercícios

Síntese

Algoritmos públicos, definições precisas e cifração aleatorizada substituíram as cifras clássicas, cujos padrões as denunciavam.

Continue estudando — aula 17 (capítulo 17 de 40)

← Capítulo 16 · Índice das aulas · Capítulo 18 →

Continue para a próxima aula já escrita.