Aleatoriedade e geradores (em inglês: randomness and pseudo-random number generators)
O que é Aleatoriedade de Verdade
Por que humanos são péssimos em gerar números aleatórios — e o que isso tem a ver com segurança de senhas, fraudes em loterias e a diferença entre sorteio justo e manipulado.
🎰 Você consegue ser aleatório?
Clique nos botões abaixo na ordem que parecer mais aleatória possível (0/50):
Por que humanos falham em ser aleatórios
Quando pedimos a alguém para "pensar num número aleatório de 1 a 10", o 7 é escolhido desproporcionalmente — entre 20% e 30% das vezes, dependendo da cultura, quando a frequência esperada seria 10%. Em estudos, 3 e 7 são os favoritos; 1 e 10 são evitados por parecerem "óbvios".
Em sequências, humanos evitam repetir o número anterior. No simulador acima, uma sequência verdadeiramente aleatória de dígitos (0-9) deve ter aproximadamente 10% de repetições consecutivas. Humanos tipicamente produzem menos de 5% — porque "repetir parece menos aleatório".
🧠 O paradoxo do viés de aleatoriedade
Nosso cérebro evoluiu para detectar padrões — é uma vantagem de sobrevivência. Mas isso nos torna péssimos em reconhecer e gerar aleatoriedade genuína. Sequências verdadeiramente aleatórias parecem ter padrões ("o 7 saiu 3 vezes seguidas!"). Sequências que geramos parecem mais "equilibradas" — mas são na verdade mais previsíveis para quem conhece os vieses humanos.
Este fenômeno tem nome: viés de apofenia (em inglês: apophenia bias) — a tendência de ver padrões em ruído aleatório. É a mesma razão pela qual vemos rostos em nuvens e ouvimos mensagens em faixas de ruído branco.
Aleatoriedade verdadeira vs pseudoaleatoriedade
Computadores normais não geram números verdadeiramente aleatórios. Eles usam algoritmos determinísticos chamados geradores pseudoaleatórios (em inglês: pseudorandom number generators ou PRNG). A partir de uma "semente" (em inglês: seed), geram sequências que parecem aleatórias mas são completamente reproduzíveis — se você sabe a semente, pode prever todos os números futuros.
Para criptografia e segurança, isso não é suficiente. Sistemas seguros usam fontes de entropia verdadeira (em inglês: true entropy): ruído térmico de resistores, timing de eventos do usuário (movimentos do mouse, teclas digitadas), variações quânticas. O sistema operacional Linux usa o arquivo /dev/random para isso.
Como sorteios de loteria são auditados
A Caixa Econômica Federal sorteia as loterias com globos físicos e bolas numeradas — não com software. Os motivos são práticos e legais:
Auditabilidade: qualquer pessoa presente pode verificar que as bolas são idênticas em peso e diâmetro, que o processo é físico e que nenhum software pode ser manipulado sem detecção.
Confiança pública: um sorteio físico, realizado ao vivo e transmitido, é mais transparente para o público geral do que um algoritmo — mesmo que um bom algoritmo seja matematicamente superior em aleatoriedade.
Fraudes históricas em loterias físicas envolveram manipulação das bolas (injeção de fluido para tornar algumas mais pesadas), acesso antecipado ao resultado, ou substituição das bolas após o sorteio. Todos esses são vetores de ataque físico — não de software.
Senhas e aleatoriedade segura
Uma senha gerada por humanos ("minhasenha123", data de nascimento, nome do pet) é extremamente previsível. Atacantes com dicionários de senhas comuns testam bilhões por segundo em hardware moderno.
Uma senha verdadeiramente aleatória de 12 caracteres alfanuméricos (62 possibilidades por caractere) tem 62¹² ≈ 3 × 10²¹ combinações. Com um ataque de 10 bilhões de tentativas por segundo, levaria mais de 9 bilhões de anos para testar todas as possibilidades — tempo geologicamente impossível.
A diferença entre uma senha humana e uma aleatória não é o comprimento — é a previsibilidade. Um gerenciador de senhas (em inglês: password manager) usa um PRNG criptograficamente seguro para gerar senhas que nenhum humano conseguiria criar ou memorizar.
Resumindo em 4 pontos
- Humanos têm vieses sistemáticos ao gerar aleatoriedade — evitamos repetições e preferimos certos números.
- Computadores usam PRNGs (determinísticos) — reproduzíveis se a semente for conhecida.
- Sistemas seguros usam fontes de entropia física (ruído térmico, eventos de hardware) para aleatoriedade real.
- Sorteios físicos de loteria são auditáveis e confiáveis por razões de transparência, não de superioridade matemática.