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

Capítulo 1 — Raciocínio matemático

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 1 — Raciocínio matemático

Mapa da aula

Aula 01 publicada. Mapa, exemplo, EX001.

flowchart TD
  N0["1.1 O caso e as afirmações precisas"]
  N1["1.2 O XOR e sua álgebra"]
  N2["Laboratório — Reutilização do one-time pad"]
  N3["1.3 Por que a reutilização falha"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX001"]

Desenho lógico

flowchart LR
  N0["1.1 O caso e as afirmações precisas"]
  N1["1.2 O XOR e sua álgebra"]
  N2["Laboratório — Reutilização do one-time pad"]
  N3["1.3 Por que a reutilização falha"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX001"]
[1.1 O caso e as afirmações precisas]
    |
    v
[1.2 O XOR e sua álgebra]
    |
    v
[Laboratório — Reutilização do one-time pad]
    |
    v
[1.3 Por que a reutilização falha]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX001]

Objetivos de aprendizagem

Você vai (1) raciocinar com precisão sobre definições e afirmações em criptografia; (2) usar a operação XOR e suas propriedades algébricas; (3) provar por que reutilizar a chave de um one-time pad falha.

1.1 O caso e as afirmações precisas

Priya Raman é estudante do primeiro ano de bacharelado na fictícia Ashford University. Ao longo de quatro anos, ela vai trabalhar com o fictício Tidewell Public Library Consortium, doze bibliotecas que compartilham um portal de leitores, um serviço de e-books e sistemas internos, orientada pelo professor Dr. Tomás Echeverría e pela líder de TI do consórcio, Grace Okafor. Todos os leitores, chaves e números aqui são sintéticos. Sua primeira lição é que a criptografia é uma disciplina matemática: uma afirmação como "esta cifra é segura" não significa nada até que a segurança seja definida, o atacante seja descrito e a afirmação seja provada ou reduzida a uma premissa bem estudada, como insistem Katz e Lindell.

1.2 O XOR e sua álgebra

O ou exclusivo, escrito XOR, compara dois bits e devolve 1 quando eles diferem. Ele tem propriedades que Priya prova a partir da tabela-verdade: x XOR x = 0, x XOR 0 = x, e o XOR é associativo e comutativo. Isso torna o XOR reversível: se c = p XOR k, então c XOR k = p. O one-time pad cifra fazendo o XOR de uma mensagem com uma chave verdadeiramente aleatória do mesmo tamanho, usada uma única vez, e Shannon provou que ele tem sigilo perfeito nessas condições. Provar com cuidado pequenos fatos algébricos é um treino para ler as provas das disciplinas posteriores.

Laboratório — Reutilização do one-time pad

"""Why a one-time pad must never be reused: XOR of two ciphertexts cancels the key (toy data)."""
import secrets
def xor(a, b): return bytes(x ^ y for x, y in zip(a, b))

def main():
    p1, p2 = b"RENEW BOOK 0417", b"FINE PAID  0938"
    key = bytes.fromhex("8f1e2a77c03b5d9e4412ab6f0e7c31")  # fixed demo pad, used twice on purpose
    c1, c2 = xor(p1, key), xor(p2, key)
    print("c1 xor c2 == p1 xor p2:", xor(c1, c2) == xor(p1, p2))
    guess = xor(xor(c1, c2), b"RENEW BOOK 0417")
    print("knowing p1 reveals p2:", guess.decode())
    fresh = secrets.token_bytes(len(p1))
    print("fresh pad length matches message:", len(fresh) == len(p1))

if __name__ == "__main__":
    main()

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

c1 xor c2 == p1 xor p2: True
knowing p1 reveals p2: FINE PAID  0938
fresh pad length matches message: True

1.3 Por que a reutilização falha

O laboratório cifra de propósito duas mensagens de leitores com o mesmo pad. Fazer o XOR dos dois textos cifrados cancela a chave, já que (p1 XOR k) XOR (p2 XOR k) = p1 XOR p2, o que o laboratório confirma como True. Se um atacante conhece ou adivinha uma das mensagens, como um aviso padrão "RENEW BOOK", a outra aparece em claro: FINE PAID 0938. A prova cabe em três linhas, e a lição dura uma carreira: um esquema perfeito nas suas condições pode falhar completamente quando uma condição, aqui "usar uma vez", é violada. O pad novo, gerado com o módulo secrets, mostra como as chaves devem ser geradas, embora os sistemas reais usem cifras padronizadas em vez de pads.

Exemplo resolvido

Priya prova x XOR x = 0 a partir da tabela-verdade, deduz c1 XOR c2 = p1 XOR p2 e usa o laboratório para recuperar uma segunda mensagem a partir de uma primeira mensagem conhecida quando um pad é reutilizado.

Caso sintético. A Tidewell, seus leitores e suas mensagens são inventados.

Erros e limites

O sigilo perfeito só vale para chaves verdadeiramente aleatórias, nunca reutilizadas e do tamanho da mensagem; sistemas práticos usam AES-GCM ou algo semelhante, de bibliotecas avaliadas, e não pads. Demonstrações de brinquedo não são projetos.

Exercícios

Síntese

A criptografia começa com definições e provas precisas; o one-time pad mostra como um esquema perfeito desmorona quando uma condição é violada.

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

← Início do curso · Índice das aulas · Capítulo 02 →

Continue para a próxima aula já escrita.