Saya membutuhkan layanan web generator nomor acak yang sebenarnya [ditutup]

10

Random.org menyediakan 200k bit acak gratis (hanya 6250 bilangan bulat 32-bit!) Dari dunia analog ( lih. ) Per IP per hari.

Adakah yang tahu tentang layanan web alternatif yang menyediakan lebih banyak bit acak sesuai permintaan per hari?

(membayar tidak apa-apa asalkan harganya "dalam harapan" 1000 × 1024bits per usd cent) (biaya layanan berbayar random.org 100x harga ini)

Pacerier
sumber
9
Pertanyaan yang lebih besar adalah "mengapa" Anda membutuhkan generator angka acak "benar"?
Darknight
5
Generator acak sejati dalam perangkat lunak murni tidak ada. Anda bisa mendekati, pada akhirnya, itu tidak akan benar-benar acak.
Ramhound
10
Untuk apa Anda membutuhkannya? Jika itu adalah permainan atau sesuatu, maka pseudo-random biasanya cukup baik. Jika itu kriptografi, mereka sebaiknya tidak menggunakan layanan web. Anda perlu menjelaskan untuk apa itu sebelum kami dapat mengarahkan Anda ke solusi yang layak.
Michael Kohne
4
Ini dia! [webservice] public int GetRandomNumber() { return 4; // rfc 1149.5 }. Kredit: xkcd.com/221
Homde
3
Maaf pak, apakah Anda ingin membeli beberapa bilangan bulat? Kami hanya menyediakan bilangan bulat artifisial rentang bebas terbaik.
Rein Henrichs

Jawaban:

25

Mungkin yang ini.

http://qrng.physik.hu-berlin.de/

Dari situs:

Kami menyediakan generator nomor acak kuantum (QRNG) baru berdasarkan keacakan kuantum kali kedatangan foton. Ini menjanjikan kualitas statistik yang dapat dibuktikan dan jangka panjang, kecepatan serta keterjangkauan. Desain kami menciptakan kualitas baru dalam arti menawarkan tingkat bit yang jauh lebih tinggi daripada solusi sebelumnya yang tersedia untuk umum. Ini menjadi mungkin dengan memanfaatkan instrumentasi waktu foton terbaru dan pemrosesan data canggih dalam perangkat keras.

Selain memberikan kecepatan tinggi (hingga 150 Mbits / s lebih dari USB), algoritma pasca-pemrosesan yang diterapkan pada data mentah didasarkan pada prediksi yang kuat dari teori informasi yang menjamin konservasi keacakan. Hal ini memungkinkan untuk penggunaan nomor acak yang dikirimkan dalam skema enkripsi aman tanpa syarat.
[...]
Kebijakan Akses
Tidak satu pun dari data yang disajikan dikirimkan lebih dari sekali, baik kepada satu pengguna maupun lintas> pengguna independen. Menggunakan layanan ini gratis, tetapi memerlukan pendaftaran.

teman ba__
sumber
1
(0.o)?! egad! Saya pikir itu adalah lelucon, tetapi tidak ada itu benar-benar ada :) (+1) Temukan
Darknight
4
-1 untuk jawaban berkualitas buruk. Ini bisa menjadi solusi yang bagus, tetapi Anda tidak memberikan rincian tentang tautan / layanan, dan saya tidak peduli untuk membaca seluruh tautan untuk ringkasan. Saat jawaban pada P.SE membutuhkan tautan, berikan ringkasan solusi yang Anda tautkan. Saya akan mempertimbangkan menghapus downvote saya jika Anda merevisi jawaban Anda.
Craige
4
@NimChimpsky - Kenapa? Karena itulah cara Anda menulis jawaban berkualitas di P.SE. ba__friend seharusnya memposting deskripsi singkat tentang layanan untuk mereka yang membaca pertanyaan ini. Mungkin penjelasan / kutipan cepat tentang bagaimana layanan ini menghasilkan angka acak.
Craige
2
@Craige Saya memperbarui posting dengan kutipan dari situs.
Adam Lear
5
@NimChimpsky: Karena linkrot terjadi.
Jon Purdy
31

Apa yang Anda minta adalah air suci, dan Anda menolak saran bahwa Anda menggunakan air biasa. Satu-satunya alasan memilih air suci daripada air adalah alasan agama. Ada PRNG sederhana dan diunggulkan secara acak yang tidak dapat dibedakan dari keacakan fisik yang sebenarnya dengan proses apa pun yang diketahui. Dan sistem ini bersifat non-deterministik.

Komputer dunia nyata memiliki beberapa sumber keacakan fisik yang sebenarnya. Sebagai contoh, CPU x86 modern memiliki 'TSC' yang mengukur jumlah siklus instruksi (dan dengan demikian, secara tidak langsung, waktu untuk resolusi sepersejuta detik atau lebih).

Anda dapat menangkap TSC ketika paket jaringan tiba. Bit rendah dari TSC akan tergantung pada offset yang tepat antara osilator kristal yang kali antarmuka jaringan dan osilator kristal yang menjalankan CPU. Ini tergantung pada variasi suhu zona mikroskopis dalam dua kristal kuarsa yang diyakini benar-benar acak.

Demikian pula, Anda dapat menangkap TSC ketika data datang dari hard drive. Bit rendah tergantung pada geser aliran udara turbulen antara permukaan hard drive dan casing. Ini juga diyakini benar-benar acak.

Algoritma terkenal, seperti yang digunakan oleh kernel Linux (dikembangkan oleh Theodore Ts'o berdasarkan karya M. Matsumoto dan Y. Kurita) menggunakan efek longsoran salju untuk mengubah beberapa bit yang tidak dapat diprediksi menjadi jumlah yang jauh lebih besar. Satu-satunya perbedaan antara output dari algoritma ini (dengan asumsi mereka diunggulkan dengan benar oleh data TSC) dan output dari keacakan fisik yang sebenarnya adalah religius - tidak ada metode yang diketahui dapat membedakan output ini. Tidak ada tes yang satu akan lulus dan yang lainnya akan gagal.

Saya telah mengembangkan generator angka acak untuk penggunaan kasino online yang telah mencapai sertifikasi independen. Metode-metode ini adalah yang digunakan di dunia nyata.

David Schwartz
sumber
6
1 untuk akal sehat, contoh menarik dan metafora air suci yang bagus!
mikera
@ David, Hai, tolong uraikan cerita "Saya telah mengembangkan generator nomor acak untuk penggunaan kasino online" ..?
Pacerier
Itu tidak menarik. Kasino online mempekerjakan saya untuk mengembangkan RNG untuk mereka, saya lakukan, dan disertifikasi oleh TST, sebuah perusahaan sertifikasi Australia.
David Schwartz
13

Saya masih tidak mengerti mengapa PRNG kriptografi tidak cukup baik untuk masalah Anda. Properti mendefinisikan crypto-PRNG adalah bahwa tidak mungkin (dengan jumlah perangkat keras yang wajar) untuk membedakan outputnya dari RNG yang sebenarnya.

Ini berarti cukup baik untuk segala jenis simulasi atau aplikasi yang dapat saya pikirkan, terlepas dari kunci kriptografi generasi atau menginisialisasi crypto PRNG itu sendiri (itu jelas membutuhkan beberapa ratus bit entropi sejati untuk memulai).

Di sisi lain, layanan web RNG tidak dapat digunakan untuk kripto sejak saat itu

  1. Anda tidak dapat membuktikan bahwa mereka sebenarnya PRNG sejati karena Anda tidak dapat membedakan hasil mereka dari PRNG
  2. Anda perlu mempercayai operator layanan
  3. Data acak dikirimkan kepada Anda melalui saluran keamanan yang lebih rendah. Seorang penyerang yang dapat merusak PRNG juga dapat merusak SSL.

Jadi saya tidak bisa memikirkan penggunaan tunggal di mana orang lebih memilih layanan web RNG daripada PRNG yang baik. Jika Anda benar-benar membutuhkan nomor acak nyata dan aman saya tidak melihat alternatif untuk membangun perangkat keras sendiri.

CodesInChaos
sumber
Ya saya tidak dapat membuktikan bahwa hasilnya benar-benar acak. tapi itu tidak sulit untuk mempercayainya random.org/statistics . Anda tampaknya menganggap keamanan adalah salah satu persyaratan saya tetapi tidak. Saya butuh nomor acak fullstop. Bukan nomor acak dan aman. (Jika seorang penyerang ingin menguping merasa bebas, tidak ada ruginya)
Pacerier
1
Tidak sulit untuk mempercayai PRNG yang telah terbukti secara matematis bahwa untuk membedakannya dari RNG sejati membutuhkan pemecahan masalah matematika yang sangat sulit.
CodesInChaos
@CodeInChaos adalah kasino online masalah matematika yang sangat sulit? Bukan, tapi itu menuntut keacakan yang benar, bukankah begitu?
Pacerier
2
Saya tidak melihat alasan teknis mengapa PRNG yang baik kadang-kadang menerima seratus bit entropi sejati seharusnya tidak cukup bahkan untuk kasino online. Mungkin ada alasan hukum , tetapi saya berasumsi dalam hal ini Anda perlu membuat keacakan asli Anda secara lokal karena ini memberi Anda kesempatan lebih baik untuk membuktikan bahwa Anda menggunakan angka acak yang sebenarnya.
CodesInChaos
8
+1 Saya sangat setuju dengan Anda. Jika Anda membuat game yang perlu menghasilkan data acak realistis, maka Anda lebih baik menggunakan PRNG daripada generator angka yang benar-benar acak. Pertama ada bukti matematis yang menghasilkan data acak secara statistik yang sesuai dengan distribusi probabilitas. Kedua, Anda dapat memilih distribusi probabilitas itu. Ketiga, Anda dapat menguji aplikasi Anda secara deterministik. Keempat, Anda dapat memilih benih saat start up sehingga tidak pernah berperilaku dua kali dengan cara yang sama. Secara pribadi saya pikir OP tidak benar-benar mengerti arti keacakan, atau mengapa dia membutuhkannya.
5

Beberapa tahun yang lalu Anda dapat memanggil lavarand SGI yang menghasilkan angka acak dengan menggunakan bentuk gumpalan saat ini dan posisi lampu lava yang ditonton oleh webcam.

Meskipun sekarang sudah tidak ada, Anda dapat dengan mudah membuat generator sendiri dengan webcam dan kode sumber terbuka dari orang-orang baik di LavaRnd (EDIT: down untuk beberapa waktu sekarang. Wayback Machine Sourceforge Project ). Ternyata Anda tidak membutuhkan lampu lava sama sekali: suara yang ditangkap oleh CCD saat webcam disegel dalam wadah anti-cahaya adalah sumber yang bagus untuk menghasilkan angka acak yang terdengar secara kriptografis.

(Saya tahu ini bukan layanan yang dapat Anda gunakan sekarang, tetapi karena dulu, karena sangat keren, dan karena Anda dapat membuat yang hampir gratis dengan sangat mudah, saya pikir itu layak menjadi jawaban.)

Matthew Frederick
sumber
tapi tentunya seiring waktu noise "acak" yang dihasilkan oleh webcam akan sesuai dengan distribusi normal? Saya tidak tahu apakah itu akan diklarifikasi?
Darknight
4
@Darknight: Apa hubungannya distribusi dengan keacakan? Dimungkinkan untuk menghasilkan urutan deterministik agar sesuai dengan distribusi apa pun, dan dimungkinkan untuk angka acak agar sesuai dengan distribusi apa pun.
David Thornley
2
@Darknight Seperti yang dicatat David, apakah angka-angka tersebut pada akhirnya cocok dengan distribusi normal atau tidak, tidak mempengaruhi keacakan. Jika Anda tertarik pada apa yang diperlukan untuk membuat generator angka acak terdengar kriptografis (atau kripto kuat), orang-orang LavaRnd punya banyak info "stat nerd" dan tautan di situs mereka, bersama dengan bagaimana mereka berhubungan dengan LavaRnd.
Matius Frederick
Serius, tidak ada cara untuk membuat Matius dengan mudah. Bagaimana tepatnya Anda mendefinisikan mudah?
Pacerier
2
@Pacerier Anda benar bahwa "mudah" adalah masalah perspektif. Metode ini mudah jika Anda memiliki akses ke server Anda dan menemukan webcam yang cocok tidak butuh waktu lama - $ 10 "beli sekarang" di ebay, katakanlah. Itu berarti menempelkan kamera; mengunduh, mengompilasi, dan menjalankan perangkat lunak gratis; dan menambahkan panggilan ke layanan dalam kode Anda. Tidak sepele, tetapi cukup mudah, sangat murah, dan menyediakan jumlah permintaan yang tidak terbatas.
Matthew Frederick
1

Buka koneksi TCP ke semua host / port dan hitung jumlah nanodetik yang diperlukan. Ada nomor acak Anda.

R .. GitHub BERHENTI MEMBANTU ES
sumber
Saya harap ini bukan bagaimana Anda benar-benar menghasilkan angka acak.
Craige
9
Inti dari jawaban saya (sarkastik ringan) adalah bahwa entropi pada saat dibutuhkan paket untuk melakukan perjalanan bernilai jauh lebih banyak daripada nomor "acak" yang entropinya Anda percayai ke server pihak ketiga.
R .. GitHub BERHENTI MEMBANTU ICE
5
@Pacerier: Tidak ada yang pintar menulis crypto mereka sendiri, kecuali mereka ahli. Itu berbeda dari mengirim plaintext Anda ke layanan web dan mendapatkan ciphertext kembali. Demikian pula, Anda mungkin tidak ingin mencoba merancang sistem keacakan kuantum Anda sendiri, tetapi mendapatkan nomor acak yang dikirimkan kepada Anda melalui HTTP tidak dapat diandalkan.
David Thornley
1
@Pacerier Tetapi Anda masih belum menunjukkan mengapa alternatif menggunakan PRNG lokal dengan injeksi entropi sesekali (dari sumber entropi lokal) tidak dimungkinkan.
CodesInChaos
1
@ Peracerier: percayalah pada saya ini: Anda tidak perlu nomor acak asli untuk simulasi ekonomi. Generator acak pseudo- (atau quasi-, jika Anda peduli dengan pemerataan) akan cukup. Masalahnya terletak di tempat lain (misalnya: Anda ingin angka tidak berkorelasi dalam banyak dimensi - bagaimana Anda tahu bahwa layanan web yang Anda gunakan bahkan mengganggu untuk memeriksa bagaimana angka mereka mengisi ruang 20-dimensi?).
quant_dev
1

di sini adalah generator berbasis kuantum lain, dengan api sisanya:

http://photonics.anu.edu.au/qoptics/Research/qrng.php

Para peneliti di ANU menghasilkan bilangan acak asli dari sumber kuantum fisik. Kami melakukan ini dengan membagi berkas cahaya menjadi dua balok dan kemudian mengukur daya di setiap balok. Karena cahaya dikuantifikasi, intensitas cahaya di setiap balok berfluktuasi tentang rata-rata. Fluktuasi-fluktuasi itu, yang pada akhirnya disebabkan oleh kekosongan kuantum, dapat dikonversi menjadi sumber bilangan acak.

NimChimpsky
sumber