Capítulo 2 — Matemática discreta
Mapa da aula
Aula 02 publicada. Mapa, exemplo, EX004.
flowchart TD
N0["2.1 Conjuntos de arquivos"]
N1["2.2 Lógica booleana na busca"]
N2["2.3 Casa dos pombos e hashes"]
N3["2.4 Contagem"]
N4["2.5 Relações e grafos"]
N5["Hábitos de demonstração"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX004"]
Desenho lógico
flowchart LR
N0["2.1 Conjuntos de arquivos"]
N1["2.2 Lógica booleana na busca"]
N2["2.3 Casa dos pombos e hashes"]
N3["2.4 Contagem"]
N4["2.5 Relações e grafos"]
N5["Hábitos de demonstração"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX004"]
[2.1 Conjuntos de arquivos]
|
v
[2.2 Lógica booleana na busca]
|
v
[2.3 Casa dos pombos e hashes]
|
v
[2.4 Contagem]
|
v
[2.5 Relações e grafos]
|
v
[Hábitos de demonstração]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX004]
Objetivos de aprendizagem
Você vai (1) aplicar conjuntos, lógica e contagem a evidências; (2) raciocinar sobre colisões de hash com o princípio da casa dos pombos; (3) expressar regras de filtragem como lógica booleana; (4) contar espaços de busca.
2.1 Conjuntos de arquivos
Uma imagem é um conjunto de arquivos. Os arquivos conhecidos K, os arquivos de interesse I e o conjunto completo F permitem que os peritos enunciem as operações com precisão: o conjunto de revisão é F menos K. A interseção I ∩ K nomeia os arquivos de interesse que um filtro de arquivos conhecidos esconderia. Priya constrói os conjuntos a partir de listas de hashes, e não de nomes de arquivo, porque os nomes mudam e o conteúdo identifica o arquivo. Um conjunto de arquivos conhecidos pode conter arquivos do sistema operacional de uma instalação de referência. Um arquivo de interesse que também aparece nesse conjunto (I ∩ K) não é suspeito só porque correspondeu, mas ainda assim não é seguro escondê-lo, por isso o filtro grava I ∩ K à parte para revisão.
2.2 Lógica booleana na busca
Uma regra de palavras-chave como (fatura AND NOT modelo) OR pagamento é uma expressão booleana. Escrevê-la formalmente evita ambiguidade quando outro perito repete a busca, o que a ISO/IEC 27041 trata como parte de garantir que os métodos são adequados. Os parênteses mudam o significado: fatura AND (NOT modelo OR pagamento) seleciona documentos diferentes dos da regra acima. Priya escreve cada busca com parênteses explícitos e a registra ao lado de sua contagem de resultados. Quando um segundo perito executa de novo a expressão idêntica contra o mesmo índice e obtém uma contagem diferente, a discrepância aponta para uma diferença de ferramenta ou de índice, e não para um mal-entendido sobre o que foi pedido.
2.3 Casa dos pombos e hashes
O SHA-256 mapeia qualquer entrada para uma de 2^256 saídas. Como há mais entradas possíveis do que saídas, colisões precisam existir (princípio da casa dos pombos). O que importa é que ninguém consiga encontrar uma na prática; para o MD5 há colisões práticas conhecidas, por isso a orientação moderna prefere o SHA-256 para integridade. O ponto prático é que a verificação de integridade depende de quão difícil é encontrar uma colisão, e não de as colisões existirem. Uma correspondência MD5 entre uma cópia de evidência e seu original ainda é muito provavelmente correta quando ninguém teve oportunidade de adulterá-la. Onde um adversário pode ter fabricado arquivos, porém, o MD5 não consegue sustentar esse peso, por isso o Northfield registra o SHA-256 e mantém o MD5 apenas por compatibilidade com conjuntos de hashes mais antigos.
2.4 Contagem
Um PIN de quatro dígitos tem 10^4 = 10.000 possibilidades; um PIN de seis dígitos tem um milhão. A contagem diz aos peritos quão grande é um espaço de busca, não como atacar um dispositivo; Priya a usa apenas para explicar por que as proteções dos dispositivos importam. A contagem também dimensiona cargas de trabalho comuns. Uma imagem com 400.000 arquivos, dos quais 300.000 correspondem a hashes conhecidos, deixa 100.000 para revisão. Se um filtro de palavras-chave mantém um em cada vinte desses, restam cerca de 5.000. Priya escreve a aritmética em seu plano para que um supervisor veja para onde vai o esforço de revisão e conteste um filtro que descarte demais.
2.5 Relações e grafos
"Enviou mensagem para" é uma relação entre contas; desenhá-la como grafo mostra quem se comunicou com quem num caso sintético. No caso sintético, o grafo tem as contas como nós e uma aresta de A para B sempre que A enviou mensagem a B. Contar as arestas de entrada e de saída de um nó mostra quem mais envia e quem mais recebe. Um caminho de A até D passando por B e C mostra que a informação poderia ter viajado indiretamente, mas não que viajou. Priya rotula cada aresta com o horário da primeira e da última mensagem, para que o desenho nunca sugira contato fora do período observado.
Hábitos de demonstração
A matemática discreta treina Priya para justificar cada passo. Quando ela afirma que o conjunto de revisão contém 47 arquivos de interesse, mostra a subtração e a sobreposição, para que um revisor possa conferir a aritmética sem precisar confiar nela.
Exemplo resolvido
F tem 10.000 arquivos, K corresponde a 7.400 e I (plantado) tem 50, dos quais 3 também estão em K. O conjunto de revisão tem 2.600 arquivos e vai conter 47 dos 50 arquivos de interesse; os 3 em I ∩ K são escondidos pela filtragem.
Caso sintético. As contagens são inventadas.
Erros e limites
A notação de conjuntos só é exata se as entradas forem exatas; um conjunto de conhecidos mal rotulado dá uma resposta precisamente errada.
Exercícios
- EX004 — Arquivos escondidos. Que conjunto nomeia os arquivos de interesse escondidos pela filtragem? Rubrica: 3 = I ∩ K, explicado; 2 = só a notação; 1 = F − K; 0 = nada.
- EX005 — Existência de colisões. Por que colisões do SHA-256 precisam existir, e por que isso não o arruína? Rubrica: 3 = casa dos pombos; nenhuma encontrável na prática; 2 = um; 1 = elas não existem; 0 = nada.
- EX006 — Contagem da revisão. Com 8.000 arquivos e 5.500 conhecidos, quantos restam? Rubrica: 3 = 2.500 com o cálculo; 2 = só o número; 1 = errado; 0 = nada.
Síntese
Conjuntos, lógica e contagem tornam as operações periciais exatas e repetíveis.
Continue estudando — capítulo 02 de 50
← Capítulo 01 (rascunho) · Índice de capítulos do curso · Capítulo 03 (rascunho) →