Os números aleatórios que guiam nossas vidas e a busca para encontrá-los
Mesmo com toda sua capacidade, existem coisas que os computadores não fazem muito bem. Uma delas é definir números aleatórios.
O grupo de amigos explicou da melhor forma possível o que eles estavam procurando: um rádio cheio de ruído. Sabe, aquele tipo que traz uma chuva de estática entre as estações, quando giramos o botão de sintonia.
Mas o vendedor não sabia o que responder. "Acho que ele pensou que nós fôssemos malucos", relembra Mads Haahr.
O ano era 1997. Ele e seus amigos vasculhavam uma loja da rede Radio Shack em Berkeley, na Califórnia (Estados Unidos).
A maioria dos rádios à venda tinha filtros de ruído, que eliminam aqueles estalos que eram exatamente o que eles estavam procurando.
Depois de algum trabalho de convencimento, o vendedor concordou em mostrar para Haahr e seus amigos um dos aparelhos mais baratos, que estavam guardados na parte de trás da loja.
Quando eles colocaram duas pilhas no radinho cinza de US$ 10 (cerca de R$ 56), surgiu uma onda de zumbidos - um barulho insuportável.
"Ficamos pulando de alegria", conta Haahr. Aquele radinho poderia estar a um passo de deixá-los ricos.
Haahr e três dos seus amigos trabalhavam na criação de software de apostas - máquinas caça-níqueis digitais que eles queriam oferecer online. Na época, os cassinos online estavam apenas começando.
Para levar adiante o projeto, Haahr precisaria gerar números aleatórios de forma confiável. Fluxos infinitos de dígitos determinariam o que iriam mostrar os caça-níqueis quando alguém acionasse a alavanca digital, ou quais cartas apareceriam no jogo de pôquer online.
Se esses eventos não fossem aleatórios, o cassino digital não seria justo e os jogadores poderiam até tentar ludibriar o sistema, procurando padrões previsíveis nos jogos.
Por isso, os quatro amigos procuraram uma fonte de aleatoriedade que todos pudessem concordar que fosse confiável. Algo que, por definição, não poderia sofrer viés.
Foi assim que a ideia do ruído de um rádio analógico barato atingiu a cabeça de Haahr com a força de uma tonelada de fichas de cassino.
O ruído emitido por um aparelho deste tipo, de fato, é um sinal caótico, definido pelos raios e pela atividade eletromagnética na atmosfera da Terra. É isso que gera a conhecida e imprevisível rajada de estática.
Haahr havia planejado manter um computador na escuta de toda essa algazarra atmosférica, que convertesse os altos e baixos em pequenos números 1 e 0, também conhecidos como bits. E estes bits seriam então usados para gerar conjuntos de números aleatórios - algo como 4107567387, por exemplo.
Em um exemplo muito simples, este número poderia determinar que a próxima carta que você irá pegar no seu jogo de pôquer online será, digamos, o seis de espadas.
Ah, você queria o cinco de paus? Então precisa saber em que momento deve embaralhar as cartas.
Mesmo com toda a sua capacidade, existem coisas que os computadores não fazem muito bem. Uma delas é definir números aleatórios.
Sim, os computadores liberam dados o tempo todo, mas não números aleatórios. Por quê?
Os computadores dependem de mecanismos internos que, em algum nível, são previsíveis. Por isso, os resultados dos algoritmos dos computadores, em algum momento, também se tornam previsíveis - é exatamente o que você não quer que aconteça, quando administra um cassino.
O mesmo problema também causa dores de cabeça para os criptógrafos. Quando você criptografa informações, você quer que o código seja o mais aleatório possível, para que ninguém consiga descobrir como você codificou o texto original. Isso impede que as pessoas leiam a mensagem secreta.
Há muito tempo, as pessoas buscam fontes externas de aleatoriedade para servir de base para a geração de números aleatórios. E, nesta busca da verdadeira aleatoriedade, elas já examinaram praticamente tudo, em busca de fenômenos caóticos que não possam ser previstos, nem manipulados.
Os pesquisadores já ouviram os ruídos das tempestades elétricas, tiraram fotos de gotas de chuva no vidro e brincaram com as minúsculas partículas do Universo conhecido. E a busca está longe de terminar.
O pequeno radinho cinza não deixou Haahr e seus amigos ricos. A indústria de jogos online estava ainda muito no começo para que os jovens empreendedores ganhassem rios de dinheiro com aquilo.
Mas eles perceberam que o gerador de números aleatórios que eles construíram ainda poderia ser útil. Por isso, Haahr o levou a público no site random.org. E, desde então, ele vem gerando números aleatórios e recebendo muitos visitantes.
"Posso mencionar a Prefeitura de São Francisco [Califórnia, EUA]", afirma Haahr. "Eles usam o nosso serviço para sortear os vencedores que terão a sorte de conseguir casas a preços populares."
Outros usuários incluem pessoas que administram loterias comunitárias locais. Eles escolhem os números ganhadores toda semana no website de Haahr.
Cientistas chegaram a usar o gerador de números online para classificar participantes de experimentos aleatoriamente. Empresas de marketing que oferecem prêmios aos consumidores também sorteiam os ganhadores com a ajuda do site random.org.
"As pessoas usam para exames de drogas, por exemplo, selecionando funcionários aleatoriamente", conta Haahr.
O site também oferece a possibilidade de escolher senhas aleatórias. E, claro, alguns serviços de apostas online também usam o random.org.
Uma pessoa chegou a dizer que usou o site para ajudá-lo a escolher quais discos, da sua coleção de 700 CDs, ele deveria colocar no carro toda semana.
Todos estes resultados - incluindo, em alguns casos, sorteios ou processos de seleção que mudam a vida das pessoas - são derivados da atividade atmosférica captada por um conjunto de receptores de rádio.
Haahr confessa que o radinho original de US$ 10 já se extraviou há muito tempo. Ao longo dos anos, ele e seus colegas instalaram equipamentos mais avançados para gerar ruído atmosférico de alta qualidade.
Atualmente, o site usa nove grandes receptores, em diferentes locais geográficos.
Se você nunca comprou um bilhete de loteria, nem tem intenção de participar de um estudo clínico, talvez você ache que os números aleatórios, na verdade, não têm importância na sua vida. Mas isso não é verdade.
Sempre que você escolhe uma nova senha, mesmo que você mesmo a tenha criado, um computador acrescenta a ela mais um conjunto de dados, que a codifica para armazenagem. Com isso, se alguém hackear um banco de dados e roubar a sua senha, haverá dificuldades para decifrá-la e ter acesso à sua conta.
Esse conjunto de dados acrescentado à senha é chamado de "sal" - e é derivado de um número aleatório.
"Nós usamos [os números aleatórios] todos os dias, sem nem mesmo sabermos", afirma o especialista em segurança de computadores Alan Woodward, da Universidade de Surrey, no Reino Unido.
Ele destaca que os números aleatórios são essenciais para a segurança das informações. Eles são usados sempre que um computador criptografa dados para que, para um observador casual, eles pareçam apenas letras ininteligíveis.
Quando você visita um website que começa com "https://", por exemplo, você está pedindo ao seu computador e ao servidor que armazena o website, entre outras coisas, para gerar números aleatórios, trocá-los entre si e usá-los para criptografar os dados intercambiados, enquanto você carrega o website para uso. É claro que esta é uma enorme simplificação do intercâmbio de informações que ocorre em apenas alguns milissegundos, mas serve para explicar o que acontece.
Quando dados sensíveis estão viajando entre as redes de computadores, especialmente as que são acessíveis ao público, é essencial garantir a segurança dessa informação.
A empresa de tecnologia Cloudflare, que fornece serviços de segurança em nuvem, utiliza muitos números aleatórios nos seus centros de dados. Ela procurou formas surpreendentes de gerar aleatoriedade, incluindo uma coleção de lâmpadas de lava.
"Começou quase como uma brincadeira, até que dissemos 'espere um minuto, nós realmente podemos fazer isso'", conta o chefe de tecnologia da empresa, John Graham-Cumming.
No escritório da Cloudflare em São Francisco, nos Estados Unidos, uma câmera no teto fica apontada em direção a uma parede de lâmpadas de lava coloridas. "O movimento dessas lâmpadas e seu conteúdo ceroso, oleoso, cheio de bolhas, não é previsível", explica Graham-Cumming.
Ou seja, a câmera pode tirar fotografias das bolhas em intervalos regulares e elas são convertidas em uma série de números, mais ou menos com base na forma e na posição das bolhas.
Esta ideia foi demonstrada pela primeira vez por uma empresa chamada Silicon Graphics, no final dos anos 1990. Ela é uma das diversas técnicas desenvolvidas pela Cloudflare para gerar números aleatórios e oferecer segurança das informações.
Do DNA às bananas
A lista de tentativas das pessoas na busca de números aleatórios é estranha e curiosa.
Um engenheiro de software percebeu, quando andava na rua em um dia úmido, que as gotas de chuva que caíam sobre os seus óculos poderiam fornecer uma fonte adequada de aleatoriedade. Ele então experimentou simular os padrões com um pequeno código.
Outra pessoa tentou capturar a atividade das bolhas no seu aquário de peixes, como base de geração de números aleatórios. Outra técnica usou o comportamento imprevisível de um gato, capturando seus movimentos com uma webcam.
Um grupo de pesquisadores chegou a procurar aleatoriedade observando as sequências genéticas únicas contidas nas moléculas de DNA presentes em todas as coisas vivas.
Existem também muitas tentativas de detectar os cliques da degradação radioativa captada por contadores Geiger, por exemplo. É impossível prever exatamente quando um átomo irá se degradar e liberar partículas subatômicas que serão captadas pelo contador Geiger, que é considerado uma boa fonte de aleatoriedade.
Existe até mesmo um projeto que empregou uma banana para produzir um gerador de números, já que se sabe que a fruta, além de nutritiva, é levemente radioativa.
Em 2016, o jornal The New York Times mencionou o exemplo de um jovem jogador que encontrou uma forma de criar uma espécie de gerador de números aleatórios no jogo Minecraft.
O jogador elaborou uma espécie de torneio para os seus amigos, dentro do mundo do Minecraft. Mas ele queria poder acionar uma armadilha em intervalos aleatórios, para tentar capturar os participantes do jogo.
Para isso, ele decidiu construir compartimentos fechados e, no seu interior, aprisionar vacas virtuais, conhecidas no jogo como "coguvacas" ("mooshrooms", em inglês), pois elas andam em padrões aleatórios.
Sempre que uma coguvaca pisasse em uma das placas instaladas pelo jogador no piso dos compartimentos, ela acionaria uma armadilha no "jogo dentro do jogo" que ele havia projetado. Uma solução "engenhosa", segundo o The New York Times.
Existem muitas outras fontes mais simples de geração de números aleatórios. É possível usar o movimento do cursor do mouse em uma tela de computador, o tempo entre cada tecla pressionada em um teclado ou o ruído do tráfego em uma rede de computadores, por exemplo.
"Temos bastante confiança de que [o ruído do tráfego na rede de computadores] é seguro", afirma o professor de engenharia de segurança Steven Murdoch, do University College de Londres. Ele é o criador do navegador Tor, que oferece navegação segura na internet com diversas camadas de criptografia.
Murdoch defende que temos o conhecimento necessário para gerar números aleatórios adequadamente, mas, muitas vezes, não existe verificação suficiente para garantir que um resultado supostamente aleatório realmente é imprevisível.
"Eu gostaria de ver mais testes e projetos cuidadosos", destaca ele. Mas esta é realmente a parte mais difícil.
"Você não consegue dizer se algo é aleatório - você só pode detectar se não for aleatório", explica o professor de segurança da informação Darren Hurley-Smith, da Universidade de Londres Royal Holloway.
Os pesquisadores têm formas de identificar geradores de números não aleatórios. Análises estatísticas buscam sequências em que um dos números aparece com mais frequência do que se fosse uma sequência realmente aleatória - muitos números 3, por exemplo.
Mas isso não é suficiente. E se a sua sequência for "123123123123123"?
Neste caso, Hurley-Smith explica que você terá muitos números 3, mas eles não são representados com mais frequência do que os números 1 ou 2. Ainda assim, existe um padrão extremamente óbvio na sequência, uma estrutura por trás dele, que fornece um resultado considerado não aleatório.
Para conjuntos de números realmente grandes, os testes estatísticos de aleatoriedade ficam muito complicados. E, mesmo assim, você nunca consegue provar que algo é realmente aleatório - apenas que é indistinguível do aleatório, com base na sua melhor análise.
Mas as consequências de errar a aleatoriedade são sérias. Quando os geradores de números aleatórios não fazem seu trabalho corretamente, podemos esperar que pessoas maliciosas irão tentar explorar aquela falha.
Em 2017, a revista americana Wired relatou o caso de um hacker russo, que supostamente conseguiu que as pessoas filmassem a atividade das máquinas caça-níqueis nos cassinos.
Com base nos resultados de cada jogada, ele conseguiu prever o funcionamento dos geradores de números aleatórios das máquinas. Com isso, ele pôde determinar quando elas liberariam o próximo prêmio.
Cerca de uma década atrás, pesquisadores de segurança da Universidade de Cambridge, no Reino Unido (entre eles, Murdoch), ficaram famosos por descobrir que scammers poderiam roubar dinheiro das pessoas, prevendo os números supostamente aleatórios gerados pelos cartões dos seus bancos.
Esses números são necessários para autenticar transações, quando você paga alguma compra em uma loja. Mas ocorreu que era possível prever os números seguintes e, com isso, clonar o cartão de débito de uma pessoa para gastar seu dinheiro sem autorização.
Esses golpes provavelmente são perpetrados até hoje, segundo um dos pesquisadores que descobriram a falha.
Mecânica quântica
Mesmo se você descontar as falhas de engenharia, a maioria dos geradores de números aleatórios mencionados acima ainda poderia ser um pouco mais consistente.
As fontes de aleatoriedade utilizadas são, no máximo, aleatórias apenas para nós. Se, de alguma forma, conseguíssemos conhecer cada detalhe do Universo e elaborar um modelo perfeito, provavelmente poderíamos prever o burburinho do ruído atmosférico ou o padrão das gotas de chuva que caem sobre o vidro.
Por isso, algumas pessoas defendem que o melhor gerador de números aleatórios é o gerador quântico, que é baseado nos efeitos da mecânica quântica. Estes, até onde sabemos, são os mais aleatórios possíveis.
O estranho comportamento, ou entropia, das partículas subatômicas - como o tempo de degradação radioativa de um único átomo, por exemplo - é totalmente imprevisível.
Há quem questione se a verdadeira aleatoriedade realmente existe em algum lugar, mas podemos deixar esta discussão para os físicos teóricos.
Para os propósitos práticos, o momento de chegada dos fótons - as minúsculas partículas de luz - a um detector é considerado verdadeiramente imprevisível e, por isso, apropriado para servir de base para a geração de números aleatórios.
Outra técnica consiste em contar os fótons emitidos por um pulso de laser. Em configurações experimentais especiais, ela irá gerar um número de fótons aleatoriamente par ou ímpar. E, repetindo este procedimento várias vezes, é possível gerar um conjunto de bits aleatórios, que pode ser usado para gerar números imprevisíveis.
Em princípio, os geradores quânticos de números aleatórios são "intrinsecamente imprevisíveis", segundo uma das fundadoras da empresa britânica Quantum Dice, Zhanet Zaharieva. A empresa está desenvolvendo sua própria tecnologia de geração quântica de números aleatórios.
Ainda assim, alguns desses sistemas mais novos são suscetíveis a falhas que podem desvirtuar os resultados. "Você acaba tendo um sistema que é uma mistura de entropia quântica [...] e ruídos clássicos", explica Zaharieva.
Hurley-Smith destaca, por exemplo, que alguns geradores quânticos de números aleatórios usam equipamentos que podem fazer com que eles percam a aleatoriedade ao longo do tempo.
"Se um fóton atingir o sensor, ele sempre irá aquecê-lo levemente, o que possivelmente o deixará mais ou menos sensível a eventos futuros", explica ele.
Em outras palavras, você tem um fenômeno realmente aleatório, mas que irá acabar desvirtuando sua detecção de uma forma ou de outra, reduzindo a aleatoriedade do resultado.
Com o desenvolvimento da tecnologia quântica, podemos esperar geradores de números aleatórios ainda mais criativos e, com sorte, ainda mais confiáveis no futuro. E, até lá, sempre teremos o site random.org.
Às vezes, as pessoas escrevem para Mads Haahr, reclamando que obtiveram o que parece ser uma sequência de números previsíveis nos resultados do site. Mas isso só acontece porque os seres humanos reconhecem muito mal a aleatoriedade, segundo ele.
Aparentemente, somos predispostos a ver padrões em tudo. Mas Haahr gosta de se ocupar em responder e explicar estes conceitos com mais detalhes.
Sua intenção original pode não ter sido criar um recurso como random.org. Mas, com o passar do tempo, Haahr percebeu que aquilo era algo que ele queria fazer. Talvez porque ele seja natural da Dinamarca, um país regularmente avaliado com os menores níveis de corrupção do mundo, sugere ele.
Agora, as pessoas usam seu website para convencer seus usuários, participantes ou o público em geral de que estão lançando uma moeda honesta para o cara ou coroa. Ou que qualquer jogo ou processo conduzido por eles é justo e honesto, pelo menos, dentro das fronteiras da aleatoriedade.
É preciso observar que haveria um incentivo muito maior para que Haahr e seus colegas, colaboradores do site random.org, manipulassem os resultados do site. Bastaria que ele permitisse a eles determinar o resultado de uma loteria, por exemplo.
Haahr insiste que eles nunca fariam isso, porque contradiz tudo o que eles defendem. Mas o questionamento é justo porque, como ele próprio admite, isso é possível.
Quando a sorte é lançada, a beleza de princípios de um gerador de números aleatórios não importa. Você ainda precisa confiar que a pessoa que o dirige não perdeu os seus escrúpulos.
"Acho que é sempre necessário algum grau de confiança em algum ponto do processo", afirma Haahr. "Você precisa acreditar naquilo."
Leia a versão original desta reportagem (em inglês) no site BBC Innovation.