Gerçek bir rasgele sayı üreteci web servisine ihtiyacım var [kapalı]


10

Random.org, IP başına analog dünyadan ( cf. ) 200k ücretsiz rastgele bit (sadece 6250 32 bit tamsayı!) Sağlar .

Günde daha fazla isteğe bağlı rastgele bit sağlayan alternatif bir web hizmeti bilen var mı?

(fiyat, ABD doları başına 1000 × 1024 bit "beklentiler dahilinde" olduğu sürece ödeme iyidir) (random.org'un ücretli servis ücreti 100 × bu fiyattan ücretlendirilir)


9
Daha büyük soru, "neden" "gerçekten" rastgele bir sayı üretecine ihtiyacınız var mı?
Karanlık Gece

5
Saf yazılımda gerçek bir rastgele jeneratör yoktur. Yaklaşabilirsiniz, günün sonunda, gerçekten rastgele olmayacak.
Ramhound

10
Bunun için neye ihtiyacın var? Bir oyun ya da bir şeyse, sözde rastgele normalde yeterince iyidir. Kriptografi ise, bir web hizmeti kullanmamalısınız. Sizi uygun çözümlere yönlendirmeden önce bunun ne için olduğunu açıklamanız gerekir.
Michael Kohne

4
Buyurun! [webservice] public int GetRandomNumber() { return 4; // rfc 1149.5 }. Kredi bilgileri: xkcd.com/221
Homde

3
Affedersiniz efendim, tam sayı satın almak ister misiniz? Sadece en iyi serbest aralıklı artisinal tamsayıları stoklarız.
Rein Henrichs

Yanıtlar:


25

Belki bu.

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

Siteden:

Foton varış sürelerinin kuantum rasgeleliğine dayalı yeni bir kuantum rastgele sayı üreteci (QRNG) sunuyoruz. Kanıtlanabilir ve uzun vadeli istatistiksel kalite, hız ve uygun fiyat vaat ediyor. Tasarımımız, halka açık olan önceki çözümlerden önemli ölçüde daha yüksek bit hızları sunması anlamında yeni bir kalite yaratıyor. Bu, en yeni foton zamanlama enstrümantasyonundan ve donanımdaki son teknoloji veri işleminden faydalanarak mümkün hale geldi.

Yüksek hız (USB üzerinden 150 Mbits / s'ye kadar) sağlamanın yanı sıra, ham verilere uygulanan post-proses algoritması, rasgele korunmayı garanti eden bilgi teorisinden sağlam tahminlere dayanmaktadır. Bu, teslim edilen rasgele sayıların koşulsuz olarak güvenli şifreleme düzenlerinde kullanılmasına izin verir.
[...]
Erişim Politikaları
Sunulan verilerin hiçbiri ne tek bir kullanıcıya ne de bağımsız kullanıcılara birden fazla teslim edilmez. Hizmeti kullanmak ücretsizdir, ancak kayıt gerektirir.


1
(0.o)?! egad! Ben bir şaka olduğunu düşündüm, ama hayır gerçekten yok :) (+1) büyük bulmak
Darknight

4
Düşük kaliteli cevap için -1. Bu çok iyi bir çözüm olabilir, ancak bağlantı / hizmet hakkında hiçbir ayrıntı vermediniz ve bir bağlantı için tüm bağlantıyı okumak umurumda değil. P.SE ile ilgili bir yanıt bağlantı gerektirdiğinde, lütfen bağlanmakta olduğunuz çözümün bir özetini sağlayın. Cevabınızı gözden geçirirseniz downvote'umu kaldırmayı düşüneceğim.
Craige

4
@NimChimpsky - Neden? Çünkü P.SE'ye böyle kaliteli bir cevap yazıyorsunuz. ba__friend, bu soruyu okuyanlar için hizmetin kısa bir açıklamasını göndermeliydi. Hizmetin rasgele sayıları nasıl oluşturduğuna dair hızlı bir açıklama / alıntı olabilir.
Craige

2
@Craige Yazıyı siteden bir alıntı ile güncelledim.
Adam Lear

5
@NimChimpsky: Çünkü linkrot olur.
Jon Purdy

31

Sorduğunuz şey Kutsal su ve düzenli su kullanma önerisini reddediyorsunuz. Kutsal suyu su yerine tercih etmenin tek nedeni dinidir. Bilinen herhangi bir işlemle gerçek fiziksel rastgelelikten ayırt edilemeyen basit, rastgele tohumlanmış PRNG'ler vardır. Ve bu sistemler şunlardır olmayan deterministik.

Gerçek dünyadaki bir bilgisayarın çeşitli gerçek fiziksel rastgelelik kaynakları vardır. Örneğin, modern bir x86 CPU, talimat döngüsü sayısını ölçen bir 'TSC'ye sahiptir (ve dolaylı olarak, saniyenin milyarda birinin çözünürlüğüne kadar geçen süre).

Bir ağ paketi geldiğinde TSC'yi yakalayabilirsiniz. TSC'nin düşük bitleri, ağ arayüzünü zamanlayan kristal osilatör ile CPU'yu çalıştıran kristal osilatör arasındaki kesin ofsete bağlı olacaktır. Bu, gerçekte rastgele olduğuna inanılan iki kuvars kristalindeki mikroskopik bölge sıcaklık değişimlerine bağlıdır.

Benzer şekilde, veriler sabit diskten geldiğinde TSC'yi yakalayabilirsiniz. Düşük bitler, sabit sürücü yüzeyi ile kasa arasındaki türbülanslı hava akışının kesilmesine bağlıdır. Bunun da gerçekten rastgele olduğuna inanılıyor.

Linux çekirdeğinin kullandığı gibi iyi bilinen algoritmalar (M. Matsumoto ve Y. Kurita'nın çalışmalarına dayanarak Theodore Ts'o tarafından geliştirilmiştir), birkaç öngörülemeyen biti çok daha büyük bir sayıya dönüştürmek için çığ etkisini kullanır. Bu algoritmaların çıktıları arasındaki tek farklar (TSC verileri tarafından düzgün bir şekilde tohumlandıkları varsayılarak) ve gerçek fiziksel rastgelelik çıktısı dinseldir - bilinen hiçbir yöntem bu çıktıları ayırt edemez. Birinin geçip diğerinin başarısız olacağına dair bir test yoktur.

Bağımsız casino sertifikası alan online casino kullanımı için rasgele sayı üreteçleri geliştirdim. Bu yöntemler gerçek dünyada kullanılan yöntemlerdir.


6
Sağduyu, ilginç örnekler ve güzel kutsal su metaforu için +1!
mikera


@David, Merhaba, zihin "online casino kullanımı için rasgele sayı üreteçleri geliştirdim" hikayesini detaylandırıyor ..?
Pacerier

O kadar ilginç değil. Çevrimiçi bir kumarhane, onlar için bir RNG geliştirmem için beni işe aldı ve yaptım ve bir Avustralya sertifikasyon firması olan TST tarafından onaylandı.
David Schwartz

13

Hala kriptografik bir PRNG'nin neden probleminiz için yeterince iyi olmadığını anlamıyorum. Bir kripto-PRNG'nin tanımlayıcı özelliği, çıktısını gerçek bir RNG'den ayırt etmenin (makul miktarda donanımla) mümkün olmamasıdır.

Bu, kriptografik anahtarların oluşturulması veya kripto PRNG'nin kendisinin başlatılması dışında düşünebileceğim her türlü simülasyon veya uygulama için yeterince iyi olduğu anlamına gelir (başlamak için açıkçası birkaç yüz bitlik gerçek entropiye ihtiyaç vardır).

Öte yandan webservis RNG'leri kripto para için kullanılamaz.

  1. Gerçek bir PRNG olduklarını kanıtlayamazsınız, çünkü çıktılarını bir PRNG'den ayırt edemezsiniz.
  2. Hizmetin operatörüne güvenmeniz gerekiyor
  3. Rastgele veriler size daha düşük güvenlik kanalı üzerinden iletilir. PRNG'yi kırabilecek bir saldırgan SSL'yi de kırabilir.

Bu yüzden iyi bir PRNG yerine bir webservice RNG tercih tek bir kullanım düşünemiyorum. Gerçekten gerçek ve güvenli rasgele sayılara ihtiyacınız varsa, kendiniz donanım oluşturmaya alternatif göremiyorum.


Evet, çıktının gerçekten rastgele olduğunu kanıtlayamıyorum. ancak random.org/statistics'e güvenmek o kadar da zor değil . Güvenliğin benim şartımdan biri olduğunu varsayın, ama değil. Tam bir rastgele sayıya ihtiyacım var. Rastgele ve güvenli bir sayı değil. (Eğer bir saldırgan kulak misafiri olmak
istemezse,

1
Gerçek bir RNG'den ayırmanın çok zor matematiksel problemlerin çözülmesini gerektirdiği matematiksel olarak kanıtlanmış bir PRNG'ye güvenmek zor değildir .
CodesInChaos

@CodeInChaos bir online casino çok zor bir matematik problemidir? Öyle değil, ama bu tür gerçek bir rastgelelik gerektiriyor, öyle değil mi?
Pacerier

2
İyi bir PRNG'nin bazen yüz bitlik gerçek bir entropi almasının çevrimiçi bir casino için bile yeterli olmamasının teknik bir nedeni görmüyorum . Yasal nedenler olabilir , ancak bu durumda gerçek rastgele sayınızı yerel olarak oluşturmanız gerektiğini varsayıyorum, çünkü bu size gerçek rastgele sayılar kullandığınızı kanıtlama şansı verir.
CodesInChaos

8
+1 Sana tamamen katılıyorum. Gerçekçi rastgele veriler üretmesi gereken bir oyun oluşturuyorsanız, PRNG ile gerçekten rastgele bir sayı üretecinden daha iyi durumdasınız. İlk olarak, olasılık dağılımına uygun istatistiksel olarak rastgele veriler ürettiğine dair matematiksel bir kanıt vardır. İkincisi, bu olasılık dağılımını seçebilirsiniz. Üçüncü olarak, uygulamanızı kararlı bir şekilde test edebilirsiniz. Dördüncüsü, başlangıçta tohumu seçebilirsiniz, böylece asla iki kez aynı şekilde davranmaz. Şahsen ben OP'nin aslında rasgeleliğin ne anlama geldiğini veya neden ona ihtiyacı olduğunu anlamadığını düşünüyorum.

5

Birkaç yıl önce SGB'nin mevcut blob şeklini ve bir web kamerası tarafından izlenen bir lav lambasının konumunu kullanarak rastgele sayılar üreten lavarand'ı arayabilirsiniz .

Artık gitmiş olsa da, bir web kamerası ve açık kaynak kodunu LavaRnd'deki ince kaynaklardan kolayca oluşturabilirsiniz (EDIT: bir süredir aşağı. Wayback Machine Sourceforge Project ). Lav lambasına hiç ihtiyacınız olmadığı ortaya çıkıyor: web kamerası ışık geçirmez bir kapta mühürlenirken CCD tarafından alınan gürültü, kriptografik olarak rasgele sayılar üretmek için harika bir kaynaktır.

(Bunun şu anda kullanabileceğiniz bir hizmet olmadığını biliyorum, ama eskiden olduğu için, çok havalı olduğu için ve neredeyse ücretsiz bir tane kolayca oluşturabildiğiniz için, bir cevap olmaya değer olduğunu düşündüm.)


ama zamanla web kamerası tarafından üretilen "rastgele" gürültü normal bir dağılıma uyuyor mu? Açık olmasını ister miyim bilmiyorum?
Karanlık Gece

4
@Darknight: Dağıtımın rastgelelikle ne ilgisi var? Herhangi bir dağılımı eşleştirmek için deterministik diziler oluşturmak mümkündür ve rastgele sayıların herhangi bir dağılıma uyması mümkündür.
David Thornley

2
@Darknight David'in belirttiği gibi, sayıların sonunda normal bir dağılıma uyup uymadığı rastgeleliği etkilemez. Kriptografik olarak (veya kripto güçlü) rasgele bir sayı üreteci yapmak için gerekenlerle ilgileniyorsanız, LavaRnd adamlarının sitelerinde bir ton "stat nerd" bilgisi ve bağlantılarının yanı sıra LavaRnd ile ilişkisi vardır.
Matthew Frederick

Cidden kolay bir şekilde Matthew yaratmanın bir yolu yok. Kolayca tam olarak nasıl tanımlıyorsunuz?
Pacerier

2
@Pacerier "Kolay" ın bir perspektif meselesi olduğu konusunda haklısınız. Sunucunuza erişiminiz varsa ve uygun bir web kamerası bulmak uzun sürmezse bu yöntem kolaydır - ebay'de 10 $ "şimdi satın alın" deyin. Böylece kamera takılır; ücretsiz yazılımı indirme, derleme ve çalıştırma; ve kodunuzdaki hizmete bir çağrı ekleme. Önemsiz değil, ama oldukça kolay, son derece ucuz ve sınırsız sayıda istek sağlar.
Matthew Frederick

1

Herhangi bir ana makine / bağlantı noktasına bir TCP bağlantısı açın ve gereken nanosaniye sayısını sayın. Rastgele numaran var.


Umarım bu rastgele sayılar üretmemenizdir.
Craige

9
(Hafif alaycı) cevabımın amacı, paketlerin seyahat etmesi için gereken zamandaki entropinin, entropisine üçüncü taraf bir sunucuya güvendiğiniz "rastgele" bir sayıdan çok daha değerli olmasıdır.
R .. GitHub BUZA YARDIMCI DURDUR

5
@Pacerier: Zeki kimse, uzman olmadıkça kendi kriptolarını yazmaz. Bu, düz metninizi bir web hizmetine göndermek ve şifre metnini geri almaktan farklıdır. Benzer şekilde, muhtemelen kendi kuantum rasgelelik sisteminizi tasarlamaya çalışmak istemezsiniz, ancak HTTP aracılığıyla size rastgele sayılar gönderilmesi güvenilir değildir.
David Thornley

1
@Pacerier Ancak, arada bir entropi enjeksiyonu (yerel entropi kaynaklarından) ile yerel bir PRNG kullanma alternatifinin neden mümkün olmadığını hala göstermediniz.
CodesInChaos

1
@Pacerier: Bana güven: Ekonomi simülasyonları için gerçek rastgele sayılara ihtiyacınız yok. İyi bir sözde- (ya da eşit dağılımına önem veriyorsanız, yarı-) rasgele üretici yeterli olacaktır. Sorunlar başka bir yerde yatıyor (örneğin: sayıların birçok boyutta ilişkisiz olmasını istiyorsunuz - kullandığınız web hizmetinin, sayılarının 20 boyutlu bir alanı nasıl doldurduğunu kontrol etmek için bile rahatsız edici olduğunu nasıl biliyorsunuz?).
quant_dev

1

işte başka bir kuantum bazlı jeneratör, dinlenme api daha az değil:

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

ANU'daki araştırmacılar fiziksel bir kuantum kaynağından gerçek rastgele sayılar üretiyorlar. Bunu bir ışık huzmesini iki huzmeye bölerek ve sonra her hüzmedeki gücü ölçerek yaparız. Işık nicelendirildiği için, her ışındaki ışık yoğunluğu ortalamada dalgalanır. Bu dalgalanmalar, sonuçta kuantum vakumuna bağlı olarak, rastgele sayılar kaynağına dönüştürülebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.