pt.phhsnews.com


pt.phhsnews.com / Como os computadores geram números aleatórios

Como os computadores geram números aleatórios


Os computadores geram números aleatórios para tudo, desde criptografia até 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 a criação de dados a partir dele. Isso é conhecido como entropia. Outras vezes, eles geram números “pseudo-aleatórios” usando um algoritmo para que os resultados pareçam aleatórios, embora não sejam.

Este tópico se tornou mais controverso recentemente, com muitas pessoas questionando se o gerador de números aleatórios de hardware integrado da Intel chip é confiável. Para entender por que ele 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 eles são usados.

Quais números aleatórios são usados ​​para

Números aleatórios foram usados por muitos milhares de anos. Seja jogando uma moeda ou jogando um dado, o objetivo é deixar o resultado final até a chance aleatória. 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.

RELATED: O que é criptografia e como funciona?

Geradores de números aleatórios são úteis para muitos diferentes finalidades. Além de aplicações óbvias, como gerar números aleatórios para fins de jogo ou criar 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 repetidamente. Queremos gerar esses números de uma maneira muito imprevisível, para que os invasores não os adivinhem. Esses números aleatórios são essenciais para criptografia segura, esteja você criptografando seus próprios arquivos ou apenas usando um site HTTPS na Internet.

True Random Numbers

Você pode estar se perguntando como um computador pode na verdade, gerar um número aleatório. De onde vem essa "aleatoriedade". Se é 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 são gerados: “True” random números e números pseudo-aleató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 o decaimento radioativo de um átomo. De acordo com a teoria quântica, não há como saber com certeza quando o decaimento radioativo irá ocorrer, então isso é essencialmente “pura aleatoriedade” do universo. Um atacante não seria capaz de prever quando a deterioração radioativa ocorreria, então eles não saberiam o valor aleatório.

Para um exemplo mais diário, o computador pode confiar no ruído atmosférico ou simplesmente usar o exato vez que você pressiona as teclas do teclado como fonte de dados imprevisíveis ou entropia. Por exemplo, seu computador pode perceber que você pressionou uma tecla exatamente 0,23423523 segundos depois das 2 da tarde… Pegue um número suficiente de horários específicos associados a essas teclas pressionadas e você terá uma fonte de entropia que pode ser usada para gerar um aleatório “verdadeiro” número. Você não é uma máquina previsível, então um invasor não pode adivinhar o momento exato em que você pressiona essas teclas. O dispositivo / dev / random no Linux, que gera números aleatórios, “bloqueia” e não retorna um resultado até reunir a entropia suficiente para retornar um número verdadeiramente aleatório.

Números pseudo-aleatórios

Números pseudo-aleatórios são uma alternativa para Números aleatórios "verdadeiros". Um computador pode usar um valor de semente e um algoritmo para gerar números que parecem ser aleatórios, mas que na verdade são 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 representados por números aleatórios "verdadeiros" ou números pseudo-aleatórios. Por outro lado, se você estiver usando criptografia, não desejará usar números pseudo-aleatórios que um invasor possa adivinhar.

Por exemplo, digamos que um invasor conheça o algoritmo e o valor inicial de um gerador de números pseudo-aleatórios. 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á trabalhar para trás 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 por Hardware da Intel

Para facilitar as coisas para desenvolvedores e desenvolvedores Para 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 dele. Se a RdRand contivesse um backdoor da NSA, o governo seria capaz de quebrar as chaves de criptografia que foram geradas com apenas dados fornecidos por esse gerador de números aleatórios.

Isso é 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 qualquer backdoor no gerador de números aleatórios não importaria. O Linux já funcionava dessa forma, randomizando ainda mais os dados aleatórios vindos da RdRand para que não fosse previsível, mesmo que houvesse um backdoor. [Source] Em um recente AMA ("Ask Me Anything") no Reddit, o CEO da Intel, Brian Krzanich, não respondeu a perguntas sobre essas preocupações. [Source]

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


Para gerar números aleatórios “verdadeiros”, geradores de números aleatórios coletam “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 usar apenas um algoritmo e um valor de semente.

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


Como desativar as sugestões de aplicativos da Siri no iPhone

Como desativar as sugestões de aplicativos da Siri no iPhone

O iOS 10 inclui um recurso que oferece atalhos rápidos para os aplicativos que você acredita usar, com base em sua localização ou em outros fatores. Veja como desativar essas sugestões. Você provavelmente notou esses aplicativos sugeridos quando eles aparecem na tela de bloqueio no canto inferior esquerdo.

(how-top)

Fixar o painel de controle à sua barra de tarefas para um acesso mais rápido às ferramentas mais usadas do Windows

Fixar o painel de controle à sua barra de tarefas para um acesso mais rápido às ferramentas mais usadas do Windows

Se houver aplicativos do painel de controle que você usa o tempo todo, por que não acessá-los mais rapidamente? Basta fixar o Painel de Controle na barra de tarefas ou no menu Iniciar e fixar os aplicativos individuais em sua lista de atalhos. Enquanto escrevia artigos sobre como personalizar sua barra de tarefas e fixar pastas na barra de tarefas, ocorreu-me que em todos esses anos de uso Windows, eu nunca me preocupei em fixar o Painel de Controle.

(how-top)