Gerçek rassal sayı üreteci
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Sun-crypto-accelerator-1000.jpg/220px-Sun-crypto-accelerator-1000.jpg)
Programlama alanında kullanılan donanım rassal sayı üreteci (gerçek rassal sayı üreteci, GRSÜ) bilgisayar programı kullanmayarak, fiziksel bir işleyiş ile rassal sayı üretimi için kullanılır. Bu tip cihazlar genel olarak mikroskobik olay tabanlı, istatistiksel olarak rassal gürültü sinyalleri içeren; ısıl gürültü, fotoelektrik etkisi kullanan hüzme bölücü ve diğer kuantum etkisi içeren olayları kullanır. Bu stokastik süreçler, teoride önceden kestirilemez ve teorinin öne sürdüğü sava göre deneysel test sonuçlarına tabiidir. Bir donanım rassal sayı üreteci genel olarak bir tip fiziksel bir gücü elektrik sinyaline dönüştürmek için güç çevirici, rassal dalgalanma genliklerini ölçülebilir seviyelere getirebilmek için güç yükselteç ve diğer elektrik devreleri ve de çıkışı sayısal bir veriye dönüştürebilmek için bir çeşit analog sayısal çevirici içerir. Genel olarak elde edilen sayı ikili sayı sisteminin elemanları olan 0 veya 1 dir. Arka arkaya alınan rassal değişen sayı örnekleri sayesinde sıralı olarak rassal sayılar elde edilir.
Güvenli veri aktarımında oluşturulan kripto anahtarları için ihtiyaç duyulan donanım rassal sayı üretecinin ana kullanım alanı kriptografidir. Ayrıca, Güvenli Yuva Katmanı(SSL) gibi internet şifreleme protokollerinde yaygın olarak kullanılmaktadır.
Donanım rassal sayı üreteçleri yazı tura veya zar atmak, rulet tekerleği çevirmek ve piyango makineleri gibi rassal makro işleyişler kullanılarak da inşa edilebilir. Bu olaylardaki kestirilemezlik, kararsız dinamik sistemler ve de kaos teori ile açıklanabilir. Newton mekaniklerine göre makro işleyişler rassal olamamasına rağmen iyi tasarlamış bir rulet tekerleğinin sonucu pratik olarak önceden belirlenemez. Çünkü sonuç her kullanışta çok hassas başlangıç değerlerine bağlıdır.
Zar genel olarak kumar içinde oyunun (Örneğin; rol yapma oyunları) olasılık katan parçası olarak kullanılmasına rağmen Viktorya dönemi bilim adamlarından Francis Galton zarın bilimsel amaçlı rassal sayılar üretmek için kullanılabilmesi için 1980 yılında bir yol tanımlamıştır.[1]
Donanım Rassal Sayı Üreteçleri birim sürede sınırlı sayıda sayı üretebilmektedirler. Veri üretim hızını arttırabilmek adına; sözde rastlantısal çıkış dizisini oluşturan kriptolojik olarak güvenli sözde rastlantısal sayı üretecine 'tohum' yaratılır.
Kullanım
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/6sided_dice.jpg/220px-6sided_dice.jpg)
Kestirilemez rassal sayılar öncelikle kumar konsepti içerisinde, zar, oyun kartları, rulet tekerlekleri gibi cihazlar icat edilerek kullanılmıştır. Adil olarak üretilmiş rassal sayılar elektronik kumar için çok önemlidir. Üretiliş yöntemlerinin kontrolleri için kamu tarafından oyun komiteleri kurulabilir. Rassal sayılar aynı zamanda kumar dışında amaçlar için de kullanılır. Matematiksel doğrulukları, kamuoyu yoklamalarında ve adaletin rastlantısal yakınsallık ile sağlandığı jüri üyeleri seçimleri ve ordu giriş seçimlerinde de kullanılır.
Kriptografi
Donanım rassal sayı üreteçlerinin ana kullanımı veri şifreleme alanıdır. Örnek olarak kriptografi anahtarları ile veri şifrelenmesi gösterilebilir. Rassal sayılar üretmede kullanılan bilgisayar programlarından olan sözde rastlantısal sayı üreteçlerine(SRSÜ) göre daha güvenilir bir alternatif oluşturular. SRSÜ'ler rassal olmayan bir algoritma kullanarak sayı serisini oluştururlar. Bu sözde rastlantısal sayı algoritmaları istatistiksel desen testlerini geçseler de rassal olmayan algoritmayı ve başlangıç koşullarını bilerek,ki buna tohum denir, çıkış önceden bilinebilir. Rassal sayının bu yöntemle önceden bilinebilmesinden dolayı bu sayılarla şifrelenmiş veriler kripto analizlerine savunmasızdırlar. Donanım rassal sayı üreteçleri kestirimi mümkün olmayan sayılar oluşturduklarından veri şifrelemek için en iyi güvenilirliği sağlar.
İlk Çalışmalar
İlk zamanlarda rassal sayı üretiminde kullanılan yöntemler keno oynayan veya piyango çeken makinelerin varyasyonundan geçiyordu. Bu method karışık numaralandırılmış masa tenisi toplarını hava ile hareketlendirerek ve belkide mekaniksel karıştırmalar ile bir haznede tutmayı içeriyordu (ABD patent 4.786.056). Bu yöntem, bazı durumlarda makul sonuçlar verebilir, ama bu sayede üretilen rastgele sayıların üretimi oldukça pahalı olur. Bu yöntem doğal olarak yavaştır ve çoğu bilgisayar uygulaması için kullanılamaz.
29 Nisan 1947'de RAND Şirketi, saniyede 100,000 darbe kullanan rassal frekans kaynağı kullanarak beslediği bir 5 bit ikili sistem sayıcı kullanarak elektronik olarak rulet tekerleğini modellemiş ve rassal sayılar oluşturmaya başlamıştır. Douglas Aircraft cihazı inşa etmiş ve Cecil Hasting'in öneris ile gürültü kaynağı için de uyarlamıştır. (RAND P-113)[2] Bu özellik iyi bilinen 6D4 minyatür gaz tiratron tübünün manyetik alandaki davranışı ile de açıklanabilir.[3] 32 mümkün sayaç değerlerinden 20 adedi, 10 ikili sistem değerlerine eşlenmiş ve diğer 12 sayaç değeri atılmıştır.[4]
Uzun süre çalışan RAND makinesinin sonuçları filtrelenmiş, test edilmiş ve de bir tabloya dönüştürülmüştür. Kitap 1995 yılında yayınlanmıştır: Bir Milyon Haneli Rassal bir sayı ile 100.000 Normal Sapma. RAND tablosu büyük bir çıkış noktasıdır çünkü daha önce bu büyüklükte ve dikkatte hazırlanmış bir rassal sayı dizisi yaratılmamıştır. Simülasyonlar, modelleme ve sabit değer atanımı için faydalı bir kaynak olmuştur. Ayrıca kriptografi algoritmalarında kötü niyetli sabit değerlerin tespitinde kullanılmıştır. Blok şifreleme Khufu ve Khafre RAND tablosunu kullanan uygulamalardandır.[5] Bkz: Kol numaramdan başka bir şey yok.
Rassal özellikleri ile fiziksel olaylar
Kuantum olasılık özellikleri
Pratik kuantum rastlantısallığının iki temel kaynağı vardır: atom veya atom altında kuantum mekanikleri ve de termal gürültü(birazı da kuantum mekaniği tabanlıdır). Kuantum mekaniği nükleer bozunma gibi bazı fiziksel olayların temel olarak rastlantısal ve kestirilemez olduğunu savunur. (Kuantum belirsizliği ile ilgili deneyler için: Bell test deneyleri).
Mutlak sıfır derece üzerinde bir sıcaklıkta yaşadığımız için tüm sistemler hallerinde rassal bir varyasyona sahiptir. Örneğin havayı oluşturan gaz molekülleri devamlı birbirleri ile rastlantısal olarak çarpışırlar. (bkz: istatistiksel mekanik.) Bu rassallık bir kuantum fenomenidir. (bkz: Fonon).
Kuantum-mekaniğin olayların sonucunu prensipte tahmin edemeyişi onu rastgele sayı üretimi için ‘altın standart’ haline getirir. Rastgele sayı üretimi için kullanılan bazı kuantum fenomenleri:
- Saçma gürültüsü, elektronik devrelerindeki kuantum mekanik gürültü kaynağıdır. Fotodiyot ile parlayan bir lamba basit bir örnek olarak gösterilebilir. Belirsizlik ilkesi ile devreye gelen fotonlar bir gürültü kaynağıdır. Bu gürültünün daha sonra kullanmak için toplanması belirli problemlere yol açabilir fakat oldukça basit bir beyaz gürültü kaynağıdır. Bununla birlikte saçma gürültüsü enerjisi her zaman istenilen bant aralığında dağılmayabilir. Gaz diyot ve tiratron elektron tüpleri manyetik alan altında önemli bir gürültü kaynağı olabilir (daha büyük direnç yüklerine 10 Volt ve fazlasını sağlayabilir) fakat enerji dağılımları çok tepelidir ve kullanımı için bant boyunca itinalı bir filtreleme ister.[6]
- Geiger sayacı bağlı bir PC ile Nükleer bozunma ve radyasyon kaynağı tespiti (Örneğin, bazı ticari duman dedektörleri)
- Yarı saydam ayna ya doğru yolculuk eden foton. Biribirinden bağımsız bir şekilde yansıma veya iletim yaşar ve tespit edilir. 0 veya 1 ile ilişkilendirilebilir.
- Ters-etkinmiş transistörün tabanında üretilen sinyalin yükseltilmesi. Emitör bağıl doymuştur ve elektronlar bazen band aralığında tünel bulup baz üzerinden çıkış sağlar. Bu sinyal arkasından birkaç transistörde daha yükselir ve sonuç sinyal ile Schmitt tetikleyici beslenir.
- Parametrik optik osilatör, kendiliğinden parametrik aşağı-çevrim ile ikili sistem faz seçimi.[7]
- Vakum enerji dalgalanmalarının homodyne algılama ile ölçülmesi.[8][üçüncül kaynak gerekli]
Klasik olasılık özellikleri
Termal olayları tespit etmek kolaydır. Birçok sistem gürültünün yarıya azalacağı örneğin 150 K sıcaklıklarına inilmesi durumunda çalışmayı durduracak olmasına rağmen sistem bir şekilde sıcaklık azaltılması durumuna karşı korunmasızdır. Kullanılan bazı Bazı termal fenomenler:
- Bir direnç üzerindeki termal gürültünün rastgele voltaj kaynağı olabilmesi için yükseltilmesi.[9]
- Çığ diyottan oluşturulan bir çığ gürültü veya Zener çöküş gürültüsünden bir ters-etkin Zener diyot.
- Atmosferik gürültü, radyo alıcısına bağlı bir Bilgisayar ile tespit edilir. (Bunun gibi yıldırım gürültüsü de düzgün termal gürültü değildir ama büyük olasılıkla bir kaotik fenomendir).
Kuantum etkileri veya termal gürültünün olmadığı durumlarda; fiziksel olarak kolay olarak karakterize edilemeyecek diğer fenomenler de kullanılabilir. Bu gibi diğer kaynaklar dikkatlice birleştirildiğinde kriptografi anahtarları ve sayıları yaratılması için gerekli dağınım sınırlı hızda olsa da üretilebilir. (Örneğin Yarrow algoritması ve Fortuna CSPRNG) Bu methodun avantajı prensipte herhangi bir ekstra donanım gerektirmemesidir. Dezavantajı ise yeterince bilgiye sahip bir saldırgan, gizlice yazılımı veya girişlerini modifiye edebilir ve çıkışın rassallığını belkide önemli seviyelerde düşürebilir. Rassallığın öncelikli kaynağı tipik olarak klavye gibi mekanik giriş ve çıkış cihazları, disk sürücüleri ve çeşitli sistem bilgi sayaçlarının araya girmelerinin kesin zamanlamalarıdır.
Son yaklaşım dikkatli bir şekilde uygulanmalıdır ve dikkatli olunmadığı durumlarda karşı saldırılara tabi olunabilir. Örneğin Linux 2.6.10 çekirdeği ileri-güvenlik üreteci 264 veya 296 hesaplama karmaşıklığı ile çözülebilir.[10]
Saat akıntısı
Bir diğer ölçülmesi kolay fiziksel olgu değişkeni de saat akıntısıdır. Bu olguyu rastlantı kaynağı olarak kullanmanın birkaç yolu vardır.
Intel 82802 donanımsal yazılımı çip içerisine dahil bir donanım RSÜ'sü[11] eklemiştir. Biri hızlı biri yavaş iki serbest çalışan osilatör içermektedir. Termal gürültü(ortak mod kazancı bir olmayan iki adet diyot kullanılarak) yavaş çalışan osilatörün frekansı modüle edilmiş ve bu şekilde hızlı çalışan osilatörün tetiği sağlanmıştır. Von Neumann tipi bir korelasyon engelleyici bir yapı ile çıkış tetiklenmiştir. (Aşağıya bakınız) Bu cihazın çıkış hızı 100,000 bit/s dan biraz daha aşağıdadır. Bu çip 840 çipset ailesinin opsiyonel bir elemanıdır ve bir önceki Intel donanım mimarisini desteklemektedir. Modern bilgisayarlarda bulunmamaktadır.
2003 ten beri tüm Tüm VIA C3 mikroişlemcileri donanım RSÜ'sü içermiştir. Termal gürültü yerine serbest çalışan ve farklı frekanslarda çalışan 4 adet osilatör barındırır. İki osilatörün çıkışları XOR'lanır ve üçüncüsünün etkinliğini kontrol için kullanılır. Üçüncüsünün çıkışı ise dördüncüsünü tetikler ve yeni bir bit oluşturulur. Sıcaklıktaki küçük varyasyonlar, silikon karakteristikleri ve lokal elektriksel koşullar osilatör hız varyasyonları oluşmasına neden olur ve oluşan bitlerin rassallığı ile sonuçlanır. Rassallığı daha da kesinleştirmek için her bir çipte 2 adet RSÜ bulunup her ikisi de ayrı çevresel faktörler altında bulunmaktadır. Sonuç bu iki çıkışın karıştırılmasından oluşmaktadır. Ham çıkış hızı 10-100 Mb/s arasındadır ve tamamen rassallaşma hızı birkaç Mb/s dır. Kullanıcı yazılımı, üretilmiş rassal bit dizisine ayrıcalıksız makine dili talimatlarını kullanarak ulaşabilmektedir.
Sıradan donanımlar ile ilgili olan bir yazılım uygulaması, bir kriptografik rutin kütüphanesi olan CryptoLib'e[12] dahil edilmiştir. Bu algoritmaya truerand denir. Çoğu modern bilgisayarda biri gerçek zaman saati bir diğeri ise birincil CPU saati için, iki kristal osilatör bulunmaktadır. Truerand, bu durumdan faydalanmaktadır, gerçek zamanlı saatin çalışmasını sağlayan bir alarm veren, bir işletim sistemi servisi kullanır. Bir altprogram, bir saat vuruşunda alarmın çalmasını ayarlar (genellikle saniyenin 1/60'ı). Bir diğeri ise alarmın tetiklenmesini beklerken while döngüsüne girer. Alarm her zaman tam olarak bir saat vuruşu ile tetiklenmeyeceğinden, alarmı ve tetikleyiciyi ayarlamak arasındaki döngü iterasyonlarının en az anlamlı bitleri, bazı kullanımlar için yeterince değişebilmektedir..Beri alarm her zaman tetikleyici tam bir kene, en az önemli bit sayısı döngü tekrar arasında ayar, alarm ve onun tetikleyici olur değişir rastgele, belki yeterince için kullanır. Truerand, ek donanım gerektirmez, ancak çoklu-görev sistemlerinde diğer işlemlerden rassal olmayan paraziti önlemek için büyük özen gösterilmelidir. (Örneğin; işletim sistemi zamanlayıcısı başlatılırken sayma döngüsü işleminin askıya alınmasında, çeşitli işlemler başlatılır ve durdurulur).
RdRand işlem kodu, bütünleşik donanımsal rassal sayı üretecinden değerleri döndürecektir. Bu durum 2015 yılından beri Intel Ivy Bridge ve AMD64 işlemcilerinde mevcuttur.[13]
Etkinme Yaklaşımı
1s ya da 0s'in baskın olduğu bu tür sistemlerden gelen bit dizisi,yanlı olmaya eğilimlidir. Burada yapay olgu ve etkinme yaklaşımı olarak iki yaklaşım bulunmaktadır. İlki, üretecin işlemlerinde kendine özgü etkinliği minimuma indirecek rassal sayı üretecini tasarlamaktır. Bunu düzeltmek için bir yöntem, üreticinin sapmasını ayarlamak için, düşük geçişli bir filtre ile filtreleyerek, bit dizisini geri beslemektir. Merkezi limit teoremi ile geri besleme döngüsü, 'neredeyse her zaman' iyi ayarlanmış olma eğilimindedir. Ultra yüksek hızlı rastgele sayı üreteçleri genellikle bu yöntemi kullanır. O durumda bile, üretilen sayılar genellikle biraz sapmalıdır.
Yazılım beyazlatma
Etkinme ile uğraşmanın bir diğer yaklaşımı ise, üretimden sonra azaltmaktır (donanımda ve yazılımda). Yukarıda bahsedilen donanımsal etkinme azaltıcı adımlar gerçekleştirilmiş olsa bile, bit dizisi hala etkinme ve korelasyon içerebilir. Bağlantılı bir sinyalden beyaz gürültü üretme gibi problemlere benzer olarak, "beyazlatma" algoritmaları olarak adlandırılan, etkinme ve korelasyonu azaltmak için bazı yöntemler bulunmaktadır. Her bir rastgele sayı bloğunda dinamik olarak, statik rastgele olma kontrolü sağlayan dinamik-statik testi adlı başka bir yol vardır. Saniyede 1 gigabayt ya da daha fazla miktarda, kısa bir süre içerisinde kullanılabilmektedir. Bu yöntemde, bir blok şüpheli olarak tespit edilirse, o blok geçerli sayılmaz ve iptal edilir.Bu yöntem ANSI(X9F1) taslağında istenmektedir.
John von Neumann basit etkinmeyi düzeltmek ve korelasyonu azaltmak için basit bir algoritma icat etti. Bu algoritma, aynı anda iki biti ele alır (birbiri ile çakışmayan), üç işlemden birini seçer: seçilen iki bit eşitse, bu bitler atılır; 1,0 dizisi olursa 1 haline gelir; ve 0,1 dizisi olursa 0 haline gelir. Böylece, düşen kenar 1 ile temsil edilir ve yükselen kenar ise 0 ile temsil edilir. Bu işlem etkinmeyi ortadan kaldırır ve bu işlemin dijital mantık veya bir bilgisayar programı olarak uygulanması kolaydır. Bu teknikte bitlerin nasıl üretildiği önem arz etmez. Ancak, çıktılarında rassallığı garanti edemez. Yapabileceği şey (önemli sayıda biti atarak), etkinmeli bir rassal bit dizisini etkinmesiz bir hale dönüştürmektir.
Rassal bit dizisini iyileştirmek için bir diğer teknik, Blum Blum Shub ya da dizi şifreleme gibi, yüksek kaliteli kriptografik olarak güvenli sözde rassal sayı üreteçleri çıktısı ile bit dizisini dışlamalı veya (exclusive - or) işlemine tabii tutmaktır. Bu düşük maliyet ile ilintisizleştirme ve basamak etkinmesini, yazılımla gerçekleştirmek yerine, FPGA gibi donanımlar yardımıyla daha hızlı bir şekilde geliştirir.
Yakın rassal bit dizilerinde etkinmeyi azaltacak bir diğer metot, iki ya da daha fazla bağımlı olmayan yakın rassal bit dizilerini alarak, bunları dışlamalı veya (exclusive-or) işleminden geçirmektir. −1/2 ≤ e ≤ 1/2 olduğu durumda, bit dizisinin 0 olma olasılığı 1/2 + e olsun. e ise bit dizisindeki etkinmeyi temsil etsin. Eğer etkinmeleri ile birlikte, iki bağımlı olmayan bit dizisine e denilirse, bu iki bit dizisi dışlamalı veya (exlusive-or) yapıldığında, etkinme sonucu 2e² olur. Bu daha fazla bit dizisi ile tekrarlanabilir. (Ayrıca Bkz: Piling-up lemma).
Bazı tasarımlar, MD5, SHA-1veya RIPEMD-160 veya hatta bir CRC fonksiyonu gibi kriptografik özet fonksiyonlarını bit dizisinin bir kısmına veya tamamına uygularlar, daha sonra bu işlemlerden sonucunda elde edilen çıktıyı rassal bit dizisi olarak kullanırlar. Bu tasarım kısmen caziptir, çünkü diğer yöntemlerden bazıları ile karşılaştırıldığında nispeten hızlıdır, fakat biraz teorik temelin bulunabileceği özet çıktısındaki niteliklere önemli ölçüde bağlıdır.
Birçok fiziksel olgu, yüksek etkinmekte olan bitleri üretmek için kullanılabilir, ancak her bit, diğerlerinden bağımsızdır.Bir Geiger sayacı, (tüp geri dönüştürme süresinden daha uzun bir örnek zamanına sahip) ya da yarı saydam bir ayna foton dedektörü, çoğunlukla "0" (sessiz ya da iletim), nadiren "1" (tıklama ya da yansıtma) olan bit dizileri üretir. Eğer her bir bit diğerlerinden bağımsız ise, Von Neumann stratejisi, oldukça yüksek etkinmeli bir bit dizisinden nadir olan "1" bitlerinin her biri için etkinmesiz rassal çıktı bitleri oluşturur. Gelişmiş Çok Seviyeli Strateji (AMLS)[14] gibi beyazlatma teknikleri, bu tür yüksek etkinmeli bit dizilerinden, daha fazla sayıda rassal ve etkinmesiz olan çıktı bitleri verebilir.[15]
Periyodik olarak yenilenmiş rassal anahtarı ile Sözde Rassal Sayı Üreteci (PRNG)
Diğer tasarımlar, şifrelenmiş çıktıyı rassal bit dizisi olarak alarak, yüksek kaliteli blok şifreleme algoritması anahtarı olarak, gerçek rassal bitler olarak kabul edilen bitleri kullanırlar. Ancak bu durumlarda uygun bir blok modu seçmek için dikkatli olunmalıdır. Bazı uygulamalarda, donanım üreteci cihaz yeni bir çekirdek üretirken, Sözde Rassal Sayı Üreteci sınırlı sayıda basamak için çalıştırılır.
Gözlemlenen olayları kullanma
Gerçek rassal sayı üreteçleri bulunmayan yazılım mühendisleri, genellikle yazılım için mevcut olan fiziksel olayları ölçerek, bunları geliştirmeye çalışmaktadırlar. Örnek olarak, kullanıcıların her tuşa basma işlemleri arasındaki zamanı ölçerek, rassal sayı olarak ölçtükleri değerin en az anlamlı bitini (iki veya üç) almak verilebilir.Benzer bir yaklaşım, görev zamanlamasını, ağ vuruşlarını, disk başı arama sürelerini ve diğer iç olayları ölçer.Bir Microsoft tasarımı, bu iç değerlerin bulunduğu çok uzun bir liste içerir. içeren birçok uzun bir liste gibi iç değerleri (CSPRNG makalesini inceleyiniz).
Bu yöntem bilgisayar yönetimli durumlarda risklidir. Çünkü zeki ve kötü amaçlı bir saldırgan harici olayları kontrol ederek şifreleme anahtarını tahmin edebilir. Aynı zamanda varsayılan kullanıcı tarafından oluşturulan etkinlik (örneğin; tuşa basmak) "rassal değerlerin" kontrolüne izin veren yeterince usta bir saldırgan tarafından aldatma saldırısı ile ele geçirilebilir, bu durum da oldukça risklidir.
Halbuki yeterli bir özenle, modern bir bilgisayardaki mevcut rassallık kaynakları ile kriptografik olarak güvenli rassal sayılar üreten bir sistem tasarlanabilir. Temel tasarım, saldırgan tarafından bilinmediği varsayılan, rassal bitlerin bulunduğu "entropi havuzu"nu sağlamaktadır. Yeni rassal işlem kullanılabilir olduğunda (örneğin; kullanıcı bir tuşa bastığında) eklenir ve saldırgan tarafından bilinemeyen, hesaplanan bit sayılarının havuzda tutulması sağlanır. Kullanımdaki stratejilerden bazıları şunlardır:
- Rassal bitler için istek geldiğinde, entropi havuzundan üretilen çok sayıda bit getirilir (bir kriptografik özet fonksiyonu tarafından) ve havuzda kalan rassal bit sayısının tahmini azaltılır. Eğer yeterince bilinmeyen bit yoksa, yeterli bit sayısı olana kadar beklenir. Bu üst düzey tasarım, Linux işletim sistemindeki "/dev/random" aygıtına aittir. Theodore Ts'o tarafından yazılmıştır ve çoğu Unix benzeri işletim sistemlerinde kullanılır. Rassal input tahminleri yeterince tedbirli olduğu zaman, uzun süre yüksek kalitede rassal sayılar sağlar. Linux "/dev/urandom" cihazı girdi rassallığına ilişkin tahminleri dikkate almayan basit bir modifikasyondur. Bu nedenle yüksek entropiye sahip olma olasılığı daha düşüktür.
- Anahtarlı bir dizi şifresi ve Başlangıç vektörü (IV) entropi havuzundan elde edilir. Yeterli miktarda entropi toplandığında, hem anahtar hem de IV'yi yeni rassal değerler ile değiştirin ve havuzda kalan tahmini entropiyi azaltın. Bu yaklaşım, Yarrow kütüphanesinden alınan bir yaklaşımdır. Bu yaklaşım, bazı saldırılara karşı direnç sağlar ve elde edilmesi zor olan entropiyi korur.
Sorunları
Rassal sayı üreten donanımsal veya yazılımsal aygıtları yanlış yapılandırmak oldukça kolaydır. Ayrıca, çoğu belli etmeden (sessizce) bozundukça genelde rassal sayı değerlerini azalarak üretirler. Fiziksel bir örnek olarak, daha önce de bahsedilen duman dedektörlerinin hızla azalan radyoaktivitesi verilebilir. Bu tür cihazlardaki hata modları çok çeşitli, karmaşık, yavaş ve tespit edilmesi zordur.
Birçok entropi kaynağı genellikle oldukça kırılgan ve belli etmeden bozulduğu için, bu entropiler üzerinde sürekli olarak verdikleri çıktıları takip eden istatistiksel testler gerçekleştirilmelidir. Bu tür cihazların çoğunluğu, yazılım içerisinde cihazı okuyan testler içermektedir.
Saldırılar
Kriptografi sistemindeki diğer bileşenlerinde olduğu gibi, belirli saldırılara karşı koymak amacıyla yazılımsal bir rassal sayı üreteci tasarlanmalıdır. Bu saldırılara karşı savunma yapmak zordur.
Netscape taracıyısının 1.1 sürümünde kriptografik amaçlar için kullanılan rassal sayı üreteci savunmasızdı ve bu durum 2.0 sürümünde hemen düzeltildi.
Entropi Tahmini
Bir dizi sembolün entropisini tahmin etmek için matematiksel teknikler bulunmaktadır. Hiçbiri tamamen güvenilir olmamakla birlikte tahminlerine de tamamen güvenmek doğru olmayabilir; her zaman onaylanması çok zor olan varsayımlar vardır. Örneğin; bu teknikler, bir tohum havuzunda yeterli entropi olup olmadığının belirlenmesi için yararlıdır. Ancak genel olarak, gerçek bir rassal kaynak ve yalancı rassal sayı üreteci arasında ayrım yapamazlar.
Performans testi
Donanımsal rassal sayı üreteçleri, düzgün çalışması için sürekli izlenmelidir (takip edilmelidir). RFC 4086, Information Processing Standards|FIPS[ölü/kırık bağlantı] Pub 140-2 ve NIST Special Publication 800-90b,[16] bunun için kullanılabilecek testleri içermektedir. Ayrıca Yeni Zelanda kriptografik yazılım kütüphanesi olan cryptlib belgelerine bakabilirsiniz.
Birçok pratik tasarım, girdi olarak bir donanım kaynağına güvendiğinden, en azından kaynağın hala çalıştığını kontrol etmek faydalı olacaktır. Örneğin, boş olduğu düşünülen bir kanalda yayın yapan radyo istasyonu gibi bir gürültü kaynağının arızasını istatistiksel testler genellikle algılayabilir. Bir "beyazlatma" dan geçmeden önce, gürültü üreteci çıkışı test için örnek alınmalıdır. Bazı beyazlatma tasarımları, rassal girdiler olmadan da istatistiksel testlerden geçebilir. Mükemmellikten büyük bir sapma tespit etmek, gerçek bir rassal ses kaynağının bozulmuş olabileceğinin işareti olabilir, küçük sapmalar normaldir ve düzgün çalışmasının bir göstergesi olarak değerlendirilir. Girişlerdeki yanlılığın korelasyonu, diğer parametreler (örneğin; iç sıcaklık, veri yolu voltajı) ile birlikte, bir ek kontrol yolu olarak daha yararlı olabilir. Ne yazık ki, şu anda mevcut (ve öngörülen) testler ve bu testlerden geçmek, çıkış dizilerinin rassal olduğundan emin olmak için yeterli olmamaktadır. Dikkatli ve özenle seçilmiş bir tasarım, üretilen cihazın sağladığı bu tasarımı ve sürekli olan kurcalamalara karşı temin edilen fiziksel güvenliği doğrulaması, yüksek önemdeki kullanımların test edilmesine ek olarak gerekli olabilir.
Ayrıca bakınız
- AN/CYZ-9
- Bell test deneyleri
- Donanımsal rastgele sayı üreteçleri karşılaştırması
- /dev/random
- ERNIE
- Rassal sayı üreteçleri listesi
- Piyango makinesi
- Sözde Rastsal sayı üreteci (PRNG)
- Rassal sayı üretimi
- Rassallık çıkarıcı
- RdRand
Başvurular
- ^ Galton, Francis (1890). "Dice for statistical experiments" (PDF). Nature. Cilt 42. ss. 13-14. doi:10.1038/042013a0. 4 Mart 2016 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 14 Mayıs 2014.
- ^ P-113, Papers, Rand Corporation, 5 Haziran 2007 tarihinde kaynağından arşivlendi, erişim tarihi: 6 Nisan 2018 .
- ^ Cobine, Curry (1947), "Electrical Noise Generators", Proceedings of the I.R.E., September 1947, ss. 875–9
- ^ Monograph report, Rand Corporation, 15 Nisan 2018 tarihinde kaynağından arşivlendi, erişim tarihi: 6 Nisan 2018 .
- ^ Schneier, Bruce. "Other Stream Ciphers and Real Random-Sequence Generators". Applied Cryptography (Second bas.). John Wiley & Sons, Inc. s. 423. ISBN 0-471-11709-9.
- ^ 6D4 electron tube reference, Sylvania .
- ^ Marandi, A.; N. C. Leindecker; K. L. Vodopyanov; R. L. Byer (2012). "All-optical quantum random bit generation from intrinsically binary phase of parametric oscillators". Opt. Express. Cilt 20. ss. 19322-19330. doi:10.1364/OE.20.019322. 18 Ekim 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Nisan 2018.
- ^ Symul, T.; S. M. Assad; P. K. Lam (2011). "Real time demonstration of high bitrate quantum random number generation with coherent laser light". Appl. Phys. Lett. Cilt 98. arXiv:1107.4438 $2. doi:10.1063/1.3597793.
- ^ Roger R. Dube (2008). "Hardware Key Generation". Hardware-based Computer Security Techniques to Defeat Hackers: From Biometrics to Quantum Cryptography. John Wiley & Sons. ss. 47-50. ISBN 978-0-470-42547-3.
Thermal noise does not have its origins in a quantum mechanical process
- ^ Analysis of the Linux Random Number Generator (PDF), IACR, 7 Aralık 2017 tarihinde kaynağından (PDF) arşivlendi, erişim tarihi: 6 Nisan 2018
- ^ Intel Corporation Intel® 810 Chipset Design Guide, June 1999 3 Mart 2016 tarihinde Wayback Machine sitesinde arşivlendi. Ch. 1.3.5, p. 1-10.
- ^ Lacy, J.B.; D.P. Mitchell; W.M. Schell (1993). "CryptoLib: Cryptography in Software" (PDF). Proc. 4th USENIX Security Symp. ss. 1-17. 29 Haziran 2017 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 6 Nisan 2018.
- ^ "AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions" (PDF). AMD Developer Guides, Manuals & ISA Documents. Haziran 2015. 22 Aralık 2017 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 16 Ekim 2015.
- ^ Peres, Yuval (1 Mart 1992), "Iterating Von Neumann's Procedure for Extracting Random Bits", Annals of Statistics, 20 (1), ss. 590-97, doi:10.1214/aos/1176348543 .
- ^ Crowley, Paul, Generating random binary data from Geiger counters, Cipher Goth, 17 Şubat 2020 tarihinde kaynağından arşivlendi, erişim tarihi: 27 Aralık 2020 .
- ^ "Elaine Barker and John Kelsey, Recommendation for the Entropy Sources Used for Random Bit Generation, NIST SP 800-90b" (PDF). 17 Şubat 2013 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 6 Nisan 2018.
Genel başvurular
Dış bağlantılar
- RFC 4086 on Randomness Recommendations for Security (replaces earlier RFC 1750), IETF, 9 Mayıs 2018 tarihinde kaynağından arşivlendi, erişim tarihi: 6 Nisan 2018 .
- The Intel Random Number Generator (PDF), Intel, 13 Şubat 2015 tarihinde kaynağından (PDF) arşivlendi, erişim tarihi: 6 Nisan 2018 .
- Entropy Key, Simtec, 19 Nisan 2018 tarihinde kaynağından arşivlendi, erişim tarihi: 6 Nisan 2018,
uses P-N semiconductor junctions reverse biassed with a high enough voltage to bring them near to, but not beyond, breakdown in order to generate noise
. - Download Random Numbers, randomserver, 26 Kasım 2019 tarihinde kaynağından arşivlendi, erişim tarihi: 6 Nisan 2018,
uses a TRNG9803 hardware random number generator
.