Como os computadores geram números aleatórios

Nov 4, 2024
Privacidade e segurança

Os computadores geram números aleatórios para tudo, desde criptografia a videogames e jogos de azar. Existem duas categorias de números aleatórios - números aleatórios “verdadeiros” e números pseudo-aleatórios - e a diferença é importante para a segurança dos sistemas de criptografia.

Os computadores podem gerar números verdadeiramente aleatórios observando alguns dados externos, como movimentos do mouse ou ruído do ventilador, o que não é previsível, e criando dados a partir deles. Isso é conhecido como entropia. Outras vezes, eles geram números “pseudoaleatórios” usando um algoritmo para que os resultados pareçam aleatórios, embora não sejam.

Este tópico se tornou mais polêmico recentemente, com muitas pessoas questionando se o chip gerador de número aleatório de hardware integrado da Intel é confiável. Para entender por que pode não ser confiável, você terá que entender como os números aleatórios são gerados em primeiro lugar e para que são usados.

Para que os números aleatórios são usados

Os números aleatórios têm sido usados ​​por muitos milhares de anos. Seja jogando uma moeda ou um dado, o objetivo é deixar o resultado final ao acaso. Geradores de números aleatórios em um computador são semelhantes - eles são uma tentativa de alcançar um resultado aleatório imprevisível.

RELACIONADOS: O que é criptografia e como funciona?

Os geradores de números aleatórios são úteis para muitos propósitos diferentes. Além de aplicações óbvias, como a geração de números aleatórios para fins de jogos de azar ou a criação de resultados imprevisíveis em um jogo de computador, a aleatoriedade é importante para a criptografia.

Criptografia requer números que os invasores não conseguem adivinhar. Não podemos simplesmente usar os mesmos números continuamente. Queremos gerar esses números de uma forma muito imprevisível para que os invasores não consigam adivinhá-los. Esses números aleatórios são essenciais para a criptografia segura, esteja você criptografando seus próprios arquivos ou apenas usando um HTTPS site na Internet.

Números Aleatórios Verdadeiros

Você pode estar se perguntando como um computador pode realmente gerar um número aleatório. De onde vem essa “aleatoriedade”. Se for apenas um pedaço de código de computador, não é possível que os números gerados pelo computador sejam previsíveis?

Geralmente agrupamos os números aleatórios que os computadores geram em dois tipos, dependendo de como eles são gerados: números aleatórios “verdadeiros” e números pseudoaleatórios.

Para gerar um número aleatório “verdadeiro”, o computador mede algum tipo de fenômeno físico que ocorre fora do computador. Por exemplo, o computador pode medir a decadência radioativa de um átomo. De acordo com a teoria quântica, não há como saber com certeza quando a decadência radioativa ocorrerá, então isso é essencialmente "pura aleatoriedade" do universo. Um invasor não seria capaz de prever quando o decaimento radioativo ocorreria, então eles não saberiam o valor aleatório.

Para um exemplo mais cotidiano, o computador pode contar com o ruído atmosférico ou simplesmente usar o momento exato em que você pressiona as teclas do teclado como fonte de dados imprevisíveis ou entropia. Por exemplo, o seu computador pode notar que você pressionou uma tecla exatamente a 0,23423523 segundos após as 14h. Pegue o suficiente dos horários específicos associados a esses pressionamentos de tecla e você terá uma fonte de entropia que pode usar para gerar um "verdadeiro" aleatório número. Você não é uma máquina previsível, então um invasor não pode adivinhar o momento preciso em que você pressiona essas teclas. o / dev / random device no Linux , que gera números aleatórios, "bloqueia" e não retorna um resultado até que reúna entropia suficiente para retornar um número verdadeiramente aleatório.

Números Pseudo-Aleatórios

Os números pseudoaleatórios são uma alternativa aos números aleatórios “verdadeiros”. Um computador pode usar um valor de semente e um algoritmo para gerar números que parecem aleatórios, mas que são de fato previsíveis. O computador não coleta dados aleatórios do ambiente.

Isso não é necessariamente uma coisa ruim em todas as situações. Por exemplo, se você está jogando um videogame, não importa realmente se os eventos que ocorrem nesse jogo são causados ​​por números aleatórios “verdadeiros” ou números pseudoaleatórios. Por outro lado, se você estiver usando criptografia, não deve usar números pseudoaleatórios que um invasor possa adivinhar.

Por exemplo, digamos que um invasor conheça o algoritmo e o valor da semente que um gerador de números pseudo-aleatórios usa. E digamos que um algoritmo de criptografia obtenha um número pseudo-aleatório desse algoritmo e o use para gerar uma chave de criptografia sem adicionar qualquer aleatoriedade adicional. Se um invasor souber o suficiente, ele poderá retroceder e determinar o número pseudo-aleatório que o algoritmo de criptografia deve ter escolhido nesse caso, quebrando a criptografia.

O NSA e o gerador de números aleatórios de hardware da Intel

Para tornar as coisas mais fáceis para os desenvolvedores e ajudar a gerar números aleatórios seguros, os chips Intel incluem um gerador de números aleatórios baseado em hardware conhecido como RdRand. Este chip usa uma fonte de entropia no processador e fornece números aleatórios ao software quando o software os solicita.

O problema aqui é que o gerador de números aleatórios é essencialmente uma caixa preta e não sabemos o que está acontecendo dentro dela. Se o RdRand contivesse uma porta dos fundos da NSA, o governo seria capaz de quebrar as chaves de criptografia geradas apenas com os dados fornecidos por aquele gerador de número aleatório.

Essa é uma preocupação séria. Em dezembro de 2013, os desenvolvedores do FreeBSD removeram o suporte para usar o RdRand diretamente como uma fonte de aleatoriedade, dizendo que não podiam confiar nele. [ Fonte ] A saída do dispositivo RdRand seria alimentada em outro algoritmo que adiciona entropia adicional, garantindo que quaisquer backdoors no gerador de número aleatório não importariam. O Linux já funcionava dessa forma, randomizando ainda mais os dados aleatórios vindos do RdRand para que não fossem previsíveis, mesmo que houvesse um backdoor. [ Fonte ] Em um recente AMA (“Ask Me Anything”) no Reddit, o CEO da Intel, Brian Krzanich, não respondeu a perguntas sobre essas questões. [ Fonte ]

Claro, isso provavelmente não é apenas um problema com os chips Intel. Os desenvolvedores do FreeBSD também chamaram os chips da Via pelo nome. Esta controvérsia mostra por que gerar números aleatórios que são verdadeiramente aleatórios e não previsíveis é tão importante.


Para gerar números aleatórios “verdadeiros”, os geradores de números aleatórios reúnem “entropia” ou dados aparentemente aleatórios do mundo físico ao seu redor. Para números aleatórios que não realmente precisam ser aleatórios, eles podem apenas usar um algoritmo e um valor de semente.

Crédito da imagem: rekre89 no Flickr , Lisa Brewster no Flickr , Ryan Somma no Flickr , Huangjiahuion Flickr

How Do Computers Generate Random Numbers?

Why Computers Can't Generate Random Numbers

Can Computers Generate True Random Numbers | CodeinVeins

How Do Computers Generate Random Numbers? #shorts

How Machines Generate Random Numbers With Time

Can Computers Generate Random Numbers?! | Tech Shorts

How Computers Generate Random Numbers | Quantum, ITER, COVID Mutations

How Random Numbers Are Generated

Random Numbers - Numberphile

Almost All Random Numbers Are Actually Fake

Random Numbers (How Software Works)

How To Generate Pseudorandom Numbers | Infinite Series

Lecture 16 - Generation Of Random Numbers

What Is Random?

Pseudo Random Numbers And Stream Ciphers (CSS322, L9, Y14)

Is Anything Truly Random?

How Random Is A Computer Generator Actually?


Privacidade e segurança - Artigos mais populares

O que é Smishing e como você se protege?

Privacidade e segurança Jan 24, 2025

pedrorsfernandes/Shutterstock.com Você provavelmente está familiarizado com phishing baseado em e-mail, em que um golpista lhe envia um e-mail ..


O que são Office Intelligent Services e você deve desativá-los?

Privacidade e segurança Jan 17, 2025

Os principais aplicativos cliente do Office 365 da Microsoft - Word, Excel, PowerPoint e Outlook - todos contêm uma configuração que permite habilitar "Office Intelligent Service..


Mais de 10 ferramentas de sistema úteis ocultas no Windows

Privacidade e segurança Jul 24, 2025

O Windows contém uma variedade de utilitários de sistema que são úteis, mas bem ocultos. Alguns estão enterrados profundamente no menu Iniciar, enquanto outros você só pode a..


O que é HTTPS e por que devo me importar?

Privacidade e segurança Oct 15, 2025

HTTPS, o ícone de cadeado na barra de endereço, uma conexão de site criptografada - é conhecido como muitas coisas. Embora antes fosse reservado principalmente para senhas e out..


Como agendar uma verificação no Windows Defender

Privacidade e segurança Dec 9, 2024

O Windows Defender executa automaticamente verificações em segundo plano durante os momentos ociosos do seu PC, mas não inclui uma maneira fácil de agendar uma verifica..


O que são ataques de negação de serviço e DDoS?

Privacidade e segurança Apr 2, 2025

CONTEÚDO NÃO CHEGADO Os ataques DoS (Denial of Service) e DDoS (Distributed Denial of Service) estão se tornando cada vez mais comuns e potentes. Os ataques de negação de serviço ..


Qual é a diferença entre suspensão e hibernação no Windows?

Privacidade e segurança Jul 3, 2025

O Windows oferece várias opções para economizar energia quando você não está usando o PC. Essas opções incluem Sleep, Hibernate e Hybrid Sleep e são particularmente úteis ..


Os mineiros de criptomoeda explicaram: por que você realmente não quer esse lixo no seu PC

Privacidade e segurança Jul 3, 2025

O uTorrent recentemente ganhou as manchetes por agrupar junkware de mineração de criptomoedas. De todos os programas junkware agrupados com instaladores , m..


Categorias