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

Capítulo 1 — Cálculo I

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 — Cálculo I

Mapa da aula

Aula 01 publicada. Mapa, exemplo, EX001.

flowchart TD
  N0["1.1 O caso e por que o crescimento importa"]
  N1["1.2 Logaritmos domam números enormes"]
  N2["Laboratório — Tempo de busca exaustiva"]
  N3["1.3 Ler a estimativa"]
  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 por que o crescimento importa"]
  N1["1.2 Logaritmos domam números enormes"]
  N2["Laboratório — Tempo de busca exaustiva"]
  N3["1.3 Ler a estimativa"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX001"]
[1.1 O caso e por que o crescimento importa]
    |
    v
[1.2 Logaritmos domam números enormes]
    |
    v
[Laboratório — Tempo de busca exaustiva]
    |
    v
[1.3 Ler a estimativa]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX001]

Objetivos de aprendizagem

Você vai (1) ler taxas de crescimento como a linguagem da força criptográfica; (2) usar logaritmos para comparar quantidades enormes; (3) estimar o tempo de busca exaustiva para diferentes tamanhos de chave.

1.1 O caso e por que o crescimento importa

Aiyana Torres é estudante do primeiro ano de engenharia no fictício Halden Institute of Engineering. Ao longo de cinco anos, ela vai ajudar a fictícia Ridgeway Water Utility a projetar como seus 50.000 medidores inteligentes de água autenticam as leituras e aceitam atualizações de firmware, sob a mentoria do engenheiro da companhia Marcus Webb. Todos os medidores, chaves e números deste livro são sintéticos. O cálculo começa com taxas de variação, e a criptografia depende sobretudo de uma delas: a rapidez com que cresce o trabalho de adivinhar uma chave à medida que a chave fica mais longa. O crescimento linear soma uma quantidade fixa a cada passo; o crescimento exponencial multiplica. A busca de chaves é exponencial, e essa diferença explica por que alguns bits a mais protegem tanto.

1.2 Logaritmos domam números enormes

Uma chave de 128 bits tem 2^128 valores possíveis, cerca de 3,4 × 10^38, um número grande demais para imaginar. Os logaritmos transformam multiplicação em soma: log10(2^128) = 128 × log10(2), aproximadamente 38,5. Aiyana aprende a comparar níveis de segurança comparando expoentes, e não os números brutos. A derivada de 2^x é ln(2) × 2^x, de modo que a própria taxa de crescimento é proporcional ao tamanho atual, a marca do comportamento exponencial. Quando os engenheiros dizem que um tamanho de chave oferece "segurança de 128 bits", querem dizer que um atacante precisa de trabalho da ordem de 2^128 operações, e Katz e Lindell usam a mesma convenção ao definir a segurança concreta.

Laboratório — Tempo de busca exaustiva

"""Exhaustive-search time for key lengths at a hypothetical 10^12 guesses per second (synthetic rate)."""
import math
RATE = 10**12
YEAR = 365.25 * 24 * 3600

def main():
    for bits in (40, 56, 80, 128):
        years = 2 ** (bits - 1) / RATE / YEAR  # expected half the space
        print(f"{bits:>3}-bit key: log10(years) = {math.log10(years):6.2f}")
    print(f"each extra bit multiplies work by {2 ** 1}; 10 extra bits by {2 ** 10}")

if __name__ == "__main__":
    main()

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

 40-bit key: log10(years) =  -7.76
 56-bit key: log10(years) =  -2.94
 80-bit key: log10(years) =   4.28
128-bit key: log10(years) =  18.73
each extra bit multiplies work by 2; 10 extra bits by 1024

1.3 Ler a estimativa

A uma taxa hipotética de um trilhão de tentativas por segundo, uma chave de 40 bits cai numa fração de segundo (log10 dos anos em torno de -7,8), e uma chave de 56 bits, o tamanho da cifra DES, já aposentada, em cerca de um dia (log10 em torno de -2,9). Uma chave de 80 bits exige por volta de dezenove mil anos, e uma de 128 bits, cerca de 10^18,7 anos, muito mais do que a idade do universo. Cada bit a mais dobra o trabalho, e dez bits a mais o multiplicam por 1.024. Aiyana anota que a taxa é inventada e que os atacantes reais melhoram, e é por isso que normas como o AES do FIPS 197 começam em 128 bits, e não no limite do viável.

Exemplo resolvido

Aiyana tabula os tempos de busca para 40, 56, 80 e 128 bits, compara-os por seus logaritmos de base 10 e recomenda que a Ridgeway nunca aceite chaves de medidor abaixo de 128 bits.

Caso sintético. A Ridgeway, seus medidores e a taxa de tentativas são inventados; o FIPS 197 é a norma real do AES.

Erros e limites

A busca exaustiva é apenas um ataque; uma chave longa não ajuda se for mal armazenada ou gerada a partir de uma fonte aleatória fraca. Estimativas logarítmicas são ordens de grandeza, não cronogramas.

Exercícios

Síntese

O cálculo dá aos engenheiros o vocabulário do crescimento; espaços de chaves exponenciais, comparados por meio de logaritmos, explicam por que as chaves modernas começam em 128 bits.

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

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

Continue para a próxima aula já escrita.