◇ OpenCyber Academy
Engenharia · Capítulo 3 · Português

Capítulo 3 — Física para computação

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 3 — Física para computação

Mapa da aula

Aula 03 publicada. Mapa, exemplo, EX007.

flowchart TD
  N0["3.1 A computação é física"]
  N1["3.2 Tempo e energia"]
  N2["3.3 Aleatoriedade física"]
  N3["Síntese"]
  N0 --> N1 --> N2 --> N3
  N3 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX007"]

Desenho lógico

flowchart LR
  N0["3.1 A computação é física"]
  N1["3.2 Tempo e energia"]
  N2["3.3 Aleatoriedade física"]
  N3["Síntese"]
  N0 --> N1 --> N2 --> N3 --> Q["EX007"]
[3.1 A computação é física]
    |
    v
[3.2 Tempo e energia]
    |
    v
[3.3 Aleatoriedade física]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX007]

Objetivos de aprendizagem

Você vai (1) relacionar sinais físicos ao vazamento de informação; (2) explicar canais laterais, como tempo e consumo de energia; (3) ligar a aleatoriedade física à geração de chaves.

3.1 A computação é física

Toda computação consome corrente, leva tempo e emite calor e radiação eletromagnética. A disciplina de física de Aiyana liga isso à segurança: um medidor que processa uma chave secreta pode vazar informação pelo tempo que uma operação leva ou pela energia que consome. Esses vazamentos são chamados de canais laterais. Eles importam porque os medidores da Ridgeway ficam em porões e em caixas na calçada, onde um atacante poderia conectar sondas. Um algoritmo matematicamente forte pode ser quebrado na prática se sua implementação vazar bits da chave pela física, e é por isso que organismos de normalização e fabricantes testam implementações, e não apenas projetos.

3.2 Tempo e energia

Um canal lateral de tempo aparece quando o tempo de execução depende de dados secretos, por exemplo numa comparação que para no primeiro byte errado. Medir muitas tentativas pode revelar quantos bytes iniciais estavam certos. A análise de consumo de energia registra a corrente consumida durante operações criptográficas; diferenças entre processar um bit 0 e um bit 1 podem, com estatística, revelar chaves. As defesas incluem código de tempo constante, mascaramento e hardware projetado para resistir à análise. Aiyana aprende que o hmac.compare_digest do Python existe justamente para que a comparação de tags de autenticação leve o mesmo tempo, não importa onde elas difiram.

3.3 Aleatoriedade física

As chaves precisam ser imprevisíveis, e a imprevisibilidade vem, em última instância, de ruído físico, como flutuações térmicas ou o jitter de osciladores. Fontes de entropia de hardware alimentam geradores determinísticos de bits aleatórios, especificados no NIST SP 800-90A, que expandem uma semente pequena e bem medida em muitos bits imprevisíveis. Um medidor que inicializa sempre no mesmo estado, sem boa entropia, pode produzir as mesmas chaves que milhares de outros medidores. Aiyana anota que os sistemas operacionais expõem geradores avaliados, e que o módulo secrets do Python os usa, de modo que os engenheiros nunca devem inventar suas próprias rotinas de números aleatórios para chaves.

Exemplo resolvido

Aiyana lista três vazamentos físicos de um medidor instalado numa caixa na calçada (tempo, energia, emissão eletromagnética) e associa cada um a uma defesa: comparação em tempo constante, hardware mascarado e blindagem, além de entropia avaliada para a geração de chaves.

Caso sintético. A instalação dos medidores é inventada; o SP 800-90A é a recomendação real do NIST.

Erros e limites

A resistência a canais laterais não pode ser confirmada apenas lendo o código; ela exige medições no dispositivo real. A entropia física pode falhar silenciosamente, então os geradores precisam de testes de saúde.

Exercícios

Síntese

A criptografia roda em dispositivos físicos; o tempo, o consumo de energia e a entropia determinam se um algoritmo sólido continua seguro num medidor instalado num porão.

Continue estudando — aula 03 (capítulo 03 de 50)

← Capítulo 02 · Índice das aulas · Capítulo 04 →

Continue para a próxima aula já escrita.