Arduino bir HRNG (donanım rastgele sayı üreteci) yapmak için ideal mi?


21

Ben entropi (birden fazla kaynaktan kullanacak bir donanım rasgele sayı üreteci için bir tasarım kuruyorum kombine ):

  • Ortam ışığı
  • Ortam sesi (ve ses seviyeleri)
  • Ortam sıcaklığı
  • Ortam nemi
  • Cihazın kendisi (baş aşağı, sola yatırılmış, sağa başlıklı vb.)
  • Gelecekteki diğer kaynaklar, muhtemelen GPS verileri bile (iki kişi yan yana durduğundan, bu nedenle bunları biliyorsanız muhtemelen belirleyici olabilir.

Benim fikrim, bir USB sürücüye yazmaya devam ederken insanların gün içinde yanlarında taşıyabilecekleri bir entropi havuzu oluşturmaktır.

Birkaç saat sonra, kullanıcı bir PC'ye takılıp kullanılabilecek 4 ~ 4 GB'lık bir entropi havuzuna sahip olacak. Hafif veya radyoaktif bozulmaya dayanan gerçekten pahalı QRNG'leri karşılayamam, bu yüzden daha ucuz bir şey bulmaya çalışıyorum.

Sizce Arduino bu prototip yapımında en iyi seçenek midir? Olmazsa ne önerirsin?

Yanıtlar:


22

Bence busz'ın önerdiği yoldan aşağı gitmek isteyeceksiniz. "Diyot gürültüsü" kavramını arayın. Diyotlardaki ve transistörlerdeki PN bağlantı noktaları, kusursuz Gaussian beyaz gürültüsüne yakın olabilir. Herhangi bir çevresel kaynaktan daha iyi bir entropi kaynağı olması gereken örnekleme.

Çevresel / ortam verilerinin çoğunda sorun, zaman içerisinde çok fazla değişmeyen değerlerdir: sıcaklık, nem, ışık ve sesin tümü gerçekten güçlü modlarda değişkenlik derecesinin altındadır. Bir insanın üzerine monte edildiğinde hareketi ölçmek için bir ivmeölçer iyi bir değişkenlik kaynağı olabilir, ancak insanların nasıl hareket ettiğini gösteren normal salınım modlarını kaldırmak için bir miktar sinyal işleme yapmanız gerekebilir. Bir ortam ışığı ve ses kaynağı, yüksek yoğunluklu bir kentsel alana yerleştirilirse oldukça yüksek bir değişkenliğe sahip olabilir, ancak yine de çok fazla tekrarlama olacağını düşünüyorum.


8

Ortam entropi kaynaklarına ihtiyaç duymadan HRNG için bazı ilginç devreler var: http://www.cryogenius.com/hardware/rng/ http://robseward.com/itp/adv_tech/random_generator/ ve daha fazlası ...

Bu devrelerden birini bir Arduino ekranına uyarlamak kesinlikle mümkün . Arduino daha sonra HRNG ve bir PC arasında bir geçit görevi görür.

Gerçekten ortam entropi girişine ihtiyacınız varsa, arduino'da 6 analog giriş kanalı bulunur, böylece verileri düşünebileceğiniz ve rastgele bir tohum kaynağı olarak kullanabileceğiniz hemen hemen tüm sensörleri okuyabilirsiniz .


6

İki yorum:

  1. Bruce Schneier'in Yarrow PRNG algoritmasına bakın. Asıl nokta, gerçekten kötü bir "gerçek" rastgele bilgi kaynağına sahip olmanız olabilir; Zaman içinde yeterince biriktirdiğiniz sürece, ortaya çıkan belirsizlik, makul rastgele sayılar elde etmek için sözde rasgele sayı üretme teknikleriyle birleştirilebilir.

  2. Öte yandan, diğer çoğu cevaplayıcıyla aynı fikirdeyim. Çevresel sensörlerden gelen yavaşça değişen sinyaller berbat bir entropi kaynağıdır ve kolayca etkilenebilir. İçsel cihaz gürültüsüne dayanan bir şey kullandığınızdan emin olun; bu çevresel değişikliklere karşı duyarsız olacaktır.



3

Yukarıdaki iki cevaba katılıyorum. İnsan faaliyetleri ve çevre okumaları korkunç bir rastgele havuz yapacaktır. Ancak, bunu deneyerek ve elde edilen rastgeleliği kendiniz kontrol ederek, ikna olacaksınız gibi geliyor. Sizin için harika bir öğrenme deneyimi olacak!

Arduino bu uygulama için iyidir. İlgilendiğiniz tüm sensörler Arduino'ya bağlanabilir ve bu sensörler için mevcut olan Arduino kütüphaneleri vardır.

Sensörleri Arduino'ya bağlamakla ilgili bu eğitimlere göz atın: http://www.ladyada.net/learn/sensors/



3

Analog müzik sentezleyicilerindeki (Moog ve Arp) bir dizi beyaz gürültü üreteci bir transistörün çığını açar. Çevrimiçi olarak Minimoog şemasını veya ARP4027'yi sorgularsanız, şemayı bulmanız gerekir.

ARP4027 için bir PCB düzeni yaptım. Şemayı bulamıyorsanız, bana bir e-posta gönderin.

Ulusal dijital rasgele sayı üreteci yapmıştı - MM5437. IIRC de bunu yapacak bir AT-minik için bazı programlar vardı. Eğlenceli küçük bir proje olabilir.


2

Son zamanlarda rastgele ses üretmek için direnç kullanmanın çok ilginç bir tartışmasını okudum. Kuantum etkilerinden dolayı, bir direnç çok küçük bir voltaj üretecektir. Bu, yüksek kalitede bir rastgele gürültü kaynağı üretmek için bir op-amp ile yükseltilebilir.


2

Sensör girişini sözde rasgele sayı üretecine tohum olarak kullanabilirsiniz. Linux işletim sistemi, klavyeden / fareden gelen girdileri / dev / random olarak tohum kullanır. Sadece bir fikir.

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.