Meio Bit » Ciência » Usando DNA para gerar números aleatórios

Usando DNA para gerar números aleatórios

Números aleatórios são essenciais para a Internet, mas é bem complicado chegar a eles. Agora temos mais uma forma: Usando... DNA.

3 anos atrás

Números aleatórios são essenciais tanto no mundo da espionagem quanto no dia a dia, seu computador vive gerando chaves criptográficas o tempo todo, mas é surpreendentemente complicado gerar um número realmente aleatório.

Imagem meramente ilustrativa (Crédito: 20th Century Fox)

Primeiro de tudo, esqueça as funções nativas de sua linguagem preferida. Todos os algoritmos são lixo. Principalmente se precisarem de uma “semente”, um valor inicial. Um grupo de matemáticos especializados se obtiverem essa semente conseguem deduzir todos os outros números gerados.

Para piorar, muitos algoritmos usam valores pseudorandômicos, como temperatura da CPU, velocidade das ventoinhas, hora do dia, teclas apertadas pelo usuário. Todos esses fatores são aleatórios dentro de um universo limitado de possibilidades, ou seja: A velocidade das ventoinhas varia entre zero e o máximo especificado pelos fabricantes.

Gente mais parruda, tipo a CIA e a KGB usam técnicas como medir emissão de elementos radioativos, caso uma partícula seja detectada no momento da medição, temos um 1, caso contrário, um zero.

Outro método conhecido era usar radiotelescópios para medir a radiação solar e extrapolar números aleatórios dali.

A preocupação com a aleatoriedade era tanta que a CIA chegou a pesquisar se paranormais conseguiriam afetar geradores de números aleatórios.

Um método popular entre a turma nerd é o usado pela Cloudflare, eles usam lâmpadas de lava, aquela decoração bem kitsch aonde uma quantidade de parafina em um compartimento com álcool é aquecida por uma lâmpada, derrete, sobe no álcool, esfria, desce e o ciclo se repete.

Como não dá para calcular quando cada bolha vai se formar, uma simples webcam observando a lâmpada gera bons números aleatórios, mas agora uma pesquisa encabeçada pela Dra Linda C. Meister propôs uma forma diferente e eficiente: Gerar números aleatórios através de... DNA.

Uma molécula de DNA é uma longa (longa mesmo, o DNA de uma única de suas células se desenrolado teria 2 metros de comprimento)  hélice dupla de bases nucleicas, quatro para ser preciso: adenina (A), citosina (C), guanina (G) e timina (T). Sendo que adenina se conecta somente com timina e guanina somente com citosina.

Modelo bem simplificado. (Crédito: Wikimedia commons)

Se você escolher perfeitamente a sequência de ATs e GCs em uma molécula de DNA, você consegue a Luciana Vendramini. Se soltar tudo de qualquer jeito, acaba com um comentarista de portal.

A graça é que é bem simples gerar DNA em uma sequência aleatória. O projeto de Dra Linda consiste em adicionar bases nucléicas em um reator de síntese de DNA, sem nenhuma ordem, e deixar toda a entropia natural do Universo tomar conta e recombinar as moléculas.

Uma única reação produz 7 milhões de Gigabytes de zeros e uns perfeitamente randômicos.

A amostra de 204 µg de DNA foi gerada por um provedor comercial, levou 8.75 horas para ser produzida e o custo foi de... US$100,00.

Como sempre a parte que complica é a leitura dos dados. Usando sequenciadores de alta capacidade eles conseguem ler 20 bilhões de bases nucleicas em 36 horas, mas o custo é de US$22 mil. Não que pra CIA isso seja caro.

Obviamente o custo cai a cada dia, e não é impossível imaginar que um dia nossos computadores -ou pelo menos os servidores dos nossos bancos- terão um compartimento aonde você alimentará seu gerador de números aleatórios com DNA em forma de pozinho, líquido ou -sei lá- gel de cabelo.

Leia mais sobre: , , .

relacionados


Comentários