O Random.org fornece 200k bits aleatórios gratuitos (apenas 6250 números inteiros de 32 bits!) Do mundo analógico ( cf. ) por IP por dia.
Alguém conhece um serviço da Web alternativo que fornece mais bits aleatórios sob demanda por dia?
(pagar é bom, desde que o preço esteja "dentro das expectativas" de 1000 × 1024bits por usd cent) (o serviço pago da random.org cobra 100 × esse preço)
[webservice] public int GetRandomNumber() { return 4; // rfc 1149.5 }
. Crédito: xkcd.com/221Respostas:
Talvez este.
http://qrng.physik.hu-berlin.de/
Do site:
fonte
O que você está pedindo é água benta e está rejeitando a sugestão de usar água comum. A única razão para preferir a água benta sobre a água é religiosa. Existem PRNGs simples e semeados aleatoriamente que não podem ser distinguidos da aleatoriedade física verdadeira por qualquer processo conhecido. E esses sistemas são não determinísticos.
Um computador do mundo real tem várias fontes de verdadeira aleatoriedade física. Por exemplo, uma CPU x86 moderna tem um 'TSC' que mede a contagem do ciclo de instruções (e, portanto, indiretamente, o tempo para uma resolução de um bilionésimo de segundo ou mais).
Você pode capturar o TSC quando um pacote de rede chegar. Os bits baixos do TSC dependerão do deslocamento preciso entre o oscilador de cristal que cronometra a interface de rede e o oscilador de cristal que executa a CPU. Isso depende das variações de temperatura da zona microscópica nos dois cristais de quartzo que se acredita serem verdadeiramente aleatórios.
Da mesma forma, você pode capturar o TSC quando os dados chegarem do disco rígido. Os bits baixos dependem de um corte turbulento do fluxo de ar entre a superfície do disco rígido e a caixa. Também se acredita que isso seja verdadeiramente aleatório.
Algoritmos conhecidos, como o que o kernel Linux usa (desenvolvido por Theodore Ts'o com base no trabalho de M. Matsumoto e Y. Kurita) usam o efeito avalanche para converter alguns bits imprevisíveis em um número muito maior. As únicas diferenças entre as saídas desses algoritmos (supondo que elas sejam adequadamente propagadas pelos dados do TSC) e a saída da verdadeira aleatoriedade física são religiosas - nenhum método conhecido pode distinguir essas saídas. Não há teste de que um passará e o outro falhará.
Eu desenvolvi geradores de números aleatórios para uso em cassinos online que obtiveram certificação independente. Esses métodos são os usados no mundo real.
fonte
Ainda não entendo por que um PRNG criptográfico não é bom o suficiente para o seu problema. Uma propriedade definidora de um crypto-PRNG é que não é possível (com quantidades razoáveis de hardware) distinguir sua saída de um verdadeiro RNG.
Isso significa que é bom o suficiente para qualquer tipo de simulação ou aplicação em que eu possa pensar, além de chaves criptográficas de geração ou inicializar o PRNG de criptografia propriamente dito (ele obviamente precisa de algumas centenas de bits de entropia verdadeira para começar).
Por outro lado, os RNGs de serviço da web também não podem ser usados para criptografia, pois
Portanto, não consigo pensar em um único uso em que alguém preferiria um RNG de serviço da web a um bom PRNG. Se você realmente precisa de números aleatórios reais e seguros, não vejo alternativa para a construção de hardware.
fonte
Há vários anos, você poderia chamar a lavagemand da SGI, que gerava números aleatórios usando a forma atual de blob e a posição de uma lâmpada de lava sendo observada por uma webcam.
Embora tenha acabado agora, você pode criar facilmente seu próprio gerador com uma webcam e o código-fonte aberto do pessoal do LavaRnd (EDIT: desativado já há algum tempo. Projeto Wayback Machine Sourceforge ). Acontece que você não precisa da lâmpada de lava: o ruído captado pelo CCD enquanto a webcam está selada em um recipiente à prova de luz é uma ótima fonte para gerar números aleatórios com criptografia.
(Eu sei que este não é um serviço que você pode usar agora, mas porque costumava ser, porque era muito legal e porque você pode criar um serviço quase gratuito com muita facilidade, achei que merecia ser uma resposta.)
fonte
Abra uma conexão TCP com qualquer host / porta e conte o número de nanossegundos necessários. Esse é o seu número aleatório.
fonte
aqui está outro gerador baseado em quantum, com uma API de descanso não menos:
http://photonics.anu.edu.au/qoptics/Research/qrng.php
fonte