0Pricing
Cryptology Academy · Aula

Aleatoriedade verdadeira versus pseudoaleatoriedade

Diferencie fontes de entropia de hardware de PRNGs de software.

Aleatoriedade verdadeira versus pseudoaleatoriedade é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.

Por que a aleatoriedade é importante

A segurança criptográfica depende fundamentalmente da imprevisibilidade. Se um invasor puder prever sua chave, seu vetor de inicialização ou seu valor de uso único — mesmo que parcialmente — todo o sistema criptográfico poderá ruir. Uma aleatoriedade fraca causou falhas catastróficas no mundo real.

Geradores de números aleatórios verdadeiros (TRNGs)

Os TRNGs coletam entropia física: ruído térmico em resistores, ruído de disparo em diodos polarizados reversamente, decaimento radioativo, movimentos do mouse, intervalos entre teclas e latências de busca em disco. Esses são fenômenos físicos genuinamente imprevisíveis.

Reservatório de entropia

O OS mantém um reservatório de entropia — uma coleção de amostras de ruído físico combinadas com XOR e processadas por funções de resumo criptográfico. O Linux: /dev/random e /dev/urandom extraem dados desse reservatório. O reservatório é reabastecido continuamente enquanto o sistema funciona.

Geradores de números pseudoaleatórios (PRNGs)

Um PRNG (também chamado de RNG determinístico ou DRNG) expande uma semente curta em um fluxo longo de bytes pseudoaleatórios usando um algoritmo determinístico. Dada a mesma semente, ele produz a mesma saída. Não é adequado para criptografia, a menos que seja inicializado com entropia verdadeira.

PRNG versus CSPRNG

Um PRNG pode apresentar viés estatístico detectável ou ser previsível a partir da saída observada. Um PRNG criptograficamente seguro (CSPRNG) adiciona: (1) segurança para frente (a saída passada não pode ser prevista a partir do estado atual) e (2) resistência a retrocesso (a saída futura não pode ser prevista a partir da saída passada).

Teste do distinguidor

Um PRNG é criptograficamente seguro se nenhum algoritmo de tempo polinomial conseguir distinguir sua saída de uma sequência verdadeiramente aleatória com probabilidade significativamente maior que 1/2. Esse é o critério da imprevisibilidade do próximo bit.

Fontes de entropia em diferentes plataformas

Linux: /dev/urandom (não bloqueante após a inicialização inicial), chamada de sistema getrandom(). Windows: CryptGenRandom(), BCryptGenRandom(). macOS/iOS: SecRandomCopyBytes(). Navegador: window.crypto.getRandomValues(). Todas alimentam o reservatório de entropia do OS.

Testes estatísticos

O NIST SP 800-22 fornece 15 testes estatísticos de aleatoriedade: frequência, frequência de blocos, sequências, teste universal de Maurer, complexidade linear etc. Passar nos testes estatísticos não prova a segurança criptográfica — apenas a ausência de um viés evidente.

Qualidade da semente

Um CSPRNG inicializado com entropia fraca (por exemplo, a hora atual em segundos) é previsível. Um invasor que conheça a semente poderá reconstruir toda a saída. Sempre inicialize a partir da entropia do OS: os.urandom(32) em Python, não time.time() nem random.random().

Geradores de números aleatórios de hardware

O RDRAND da Intel (uma instrução x86) retorna bytes aleatórios gerados por hardware a partir de um TRNG integrado ao chip. Existem equivalentes de hardware em AMD e ARM. O Linux combina RDRAND com /dev/urandom. Ele é usado como entropia suplementar, não como fonte única (devido a preocupações de confiança).

Geradores quânticos de números aleatórios

Os geradores quânticos de números aleatórios usam fenômenos da mecânica quântica (tempos de chegada de fótons e flutuações do vácuo) para produzir uma saída comprovadamente aleatória. Geradores quânticos comerciais (ID Quantique, Quantis) são usados em aplicações de alta segurança. O custo é proibitivo para uso geral.

Verificação rápida

Qual propriedade distingue um CSPRNG de um PRNG comum?

Recapitulação

Os TRNGs coletam entropia física; os PRNGs expandem uma semente de modo determinístico; os CSPRNGs são indistinguíveis de uma aleatoriedade verdadeira. Os reservatórios de entropia do OS combinam ambos. A seguir: projetos específicos de CSPRNG usados na prática.

Perguntas Frequentes

A aula “Aleatoriedade verdadeira versus pseudoaleatoriedade” é grátis?

Sim — o texto completo de “Aleatoriedade verdadeira versus pseudoaleatoriedade” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.

O que vou aprender em “Aleatoriedade verdadeira versus pseudoaleatoriedade”?

Diferencie fontes de entropia de hardware de PRNGs de software. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cryptology Academy?

Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Aleatoriedade verdadeira versus pseudoaleatoriedade”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cryptology Academy?

Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Aleatoriedade verdadeira versus pseudoaleatoriedade
  2. PRNGs criptograficamente seguros
  3. Esgotamento de entropia e erros de chaves fracas
  4. Geração segura de chaves, nonces e IVs
← Voltar para Cryptology Academy