Como usamos o computador como gerador de números aleatórios

gerador de número aleatório Os computadores geram um número aleatório para tudo, desde criptografia a videogames e jogos de azar. Existem duas categorias de números aleatórios - verdadeiro números aleatórios e números pseudoaleatórios. E a diferença é importante para a segurança dos sistemas de criptografia. Neste artigo, vamos falar sobre como usamos o computador como gerador de números aleatórios. Vamos começar!





Este tópico se tornou mais polêmico recentemente, junto com muitas pessoas questionando se o chip gerador de número aleatório de hardware integrado da Intel é confiável ou não. Para entender por que ele pode não ser confiável, você terá que entender. É assim que 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 ​​| gerador de números aleatórios

Os números aleatórios têm sido usados ​​por muitos milhares de anos. Quer seja jogar uma moeda ou jogar um dado, o objetivo é deixar o resultado final ao acaso. O gerador de números aleatórios em um computador é semelhante. Eles são uma tentativa de alcançar um resultado imprevisível e aleatório.

Geradores de números aleatórios são muito ú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 é muito importante para a criptografia.



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



Números Aleatórios Verdadeiros | gerador de números aleatórios

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

Geralmente agrupamos os computadores do número aleatório gerado em dois tipos. Isso depende de como eles são gerados: Verdadeiro números aleatórios e números pseudo-aleatórios.



como limpar um canal de discórdia

Para gerar um verdadeiro número aleatório, 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 ocorrerá o decaimento radioativo. Então, isso é essencialmente pura aleatoriedade do universo. Um invasor não seria capaz de prever quando a decomposição radioativa ocorreria. Portanto, 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 tempo exato em que você pressiona as teclas do teclado como uma fonte de dados imprevisíveis ou entropia. Por exemplo, seu computador pode notar que você pressionou uma tecla exatamente 0,23423523 segundos após as 14h00. Pegue o suficiente dos tempos específicos associados a esses pressionamentos de tecla e você terá uma fonte de entropia que pode usar para gerar um verdadeiro número aleatório. Você não é uma máquina previsível. Portanto, um invasor não consegue adivinhar o momento preciso em que você pressiona essas teclas. O dispositivo / dev / random no Linux, que gera números aleatórios, blocos e não retorna um resultado até que reúna entropia suficiente para retornar um número verdadeiramente aleatório.

Números pseudoaleatórios | gerador de números aleatórios

Números pseudo-aleatórios são uma alternativa para verdadeiro Números aleatórios. 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ê estiver jogando um videogame. Não importa realmente se os eventos que ocorrem nesse jogo são causados ​​por verdadeiro números aleatórios ou números pseudoaleatórios. Por outro lado. Se estiver usando criptografia, você não deseja usar números pseudo-aleató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 usa-o 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. 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 dá 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. Isso foi gerado apenas com dados fornecidos por aquele gerador de números aleatórios.

qual é melhor obs ou xsplit

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. Isso garante que quaisquer backdoors no gerador de números aleatórios não importem. 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 AMA recente ( Me pergunte qualquer coisa ) no Reddit, o CEO da Intel, Brian Krzanich, não respondeu a perguntas sobre essas preocupaçõ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. Essa controvérsia mostra por que é tão importante gerar números aleatórios que sejam verdadeiramente aleatórios e não previsíveis.

Para gerar verdadeiro números aleatórios, geradores de números aleatórios se 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.

Conclusão

Tudo bem, isso foi todo pessoal! Espero que goste deste artigo sobre gerador de números aleatórios e o considere útil. Dê-nos o seu feedback sobre isso. Além disso, se você quiser fazer mais perguntas relacionadas a ele. Então deixe-nos saber na seção de comentários abaixo. Nós entraremos em contato com você em breve.

Tenha um ótimo dia!

Veja também: NSFW: Significado e como realmente funciona