Zufallszahlen mit dem Geigerzähler

Begonnen von DL3HRT, Gestern um 08:09

⏪ vorheriges - nächstes ⏩

DL3HRT

Paul und Marc vom Cryptomuseum haben mich gebeten, für die Sonderausstellung Secret Communications 5 Ende des Jahres einen Zufallszahlengenerator zur Verfügung zu stellen.
Vor einigen Jahren habe ich dieses Buch mit dem AATiS-Geigerzähler erstellt:
Sie dürfen in diesem Board keine Dateianhänge sehen.
Genau diesen Geigerzähler bekommen Paul und Marc für ihre Ausstellung.

Die Erzeugung der Zufallszahlen ist wie folgt realisiert:
1. Im Mikrocontroller läuft ein 8 Bit Zähler mit 500 kHz
2. Bei Erkennung eines Zählrohrimpulses wird der Zählerstand ausgelesen und ergibt die Zufallszahl.
3. Im Binärmodus ist damit alles erledigt. Im Textmodus werden Ziffern zwischen 0 und 9 erzeugt. Dazu wird die Zufallszahl modulo 10 gerechnet. Zufallszahlen zwischen 250 und 255 werden ignoriert, damit die Ziffern 0 .. 5 nicht zu oft vorkommen.

Hier könnt ihr den Zufallszahlengenerator in Aktion sehen. Als Quelle habe ich eine Cerberus GR-16 Röhre mit Ra-226 benutzt.



DL3HRT

Vielleicht noch zur Erklärung, warum ich seinerzeit das Buch erstellt habe. Ich hatte eine Vorlage  ;).
https://en.wikipedia.org/wiki/A_Million_Random_Digits_with_100,000_Normal_Deviates

DL8BCN

Interessant für die Lottozahlen :D
Und es gibt sowas für einen Musiksythesizer zur Erzeugung von Zufallsnoten.
Hört sich nicht immer harmonisch an :blush:  ;)

Gigabecquerel

Ich weiß nicht, ob der Zähler wirklich die beste Methode ist, um eine Zufallszahl zu generieren.
Da sich die Zeit zwischen zwei Zählimpulsen um einen Mittelwert sammelt und der Zähler mit einer festen Frequenz arbeitet lässt sich zwar die individuelle Zahl nicht vorhersagen, aber es sollte sich doch ein Muster bilden, mit genug Statistik.

Die beste Methode, die ich bisher gelesen hab, besteht daraus, dass man die Zeit zwischen zwei Impulsen misst und falls sie höher ist als die zwischen den beiden vorherigen Impulsen ist es eine "1", falls sie kürzer ist eine "0". So pendelt sich nichts um einen Mittelwert ein. Da durch die sinkende Aktivität der Quelle der Abstand statistisch immer größer wird hat dieser Generator einen leichten Bias zur "1", jedoch ist der bei üblichen Halbwertszeiten verschwindend gering und, falls man z.B. auf Cosmics triggert, nicht existent.
Mit Cosmics ist jedoch die Rate so gering, dass man für lange Zahlen wirklich warten muss.
Gammaspektroskopie, Proportional- und Halbleiterzähler!

DL3HRT

Der Zähler läuft sehr schnell, so dass er zwischen den Impulsen eine ganze Reihe von "Runden" dreht. Ich hatte damals mehrere GigaByte Zufallszahlen erzeugt und sie durch die gängigen Tests laufen lassen. Es gab dabei keinerlei Beanstandungen.

Wichtig ist, dass das Zählrohr nicht in die Sättigung geht und keine sehr hohe Totzeit hat.

Die von dir vorgeschlagene Methode ist natürlich besser. Allerdings wird der Output damit auf 1/8 reduziert, da jeder Zählrohrimpuls nur ein Bit generiert.

Ich habe damals ein SBM-19 in Verbindung mit einem Glühstrumpf verwendet. Es ergaben sich damit ca. 5000 Impulse pro Minute bzw. ca. 83,3 Impulse pro Sekunde. Der Zähler selbst macht bei 500 kHz 1953,125 Durchläufe pro Sekunde.

Im Binärmodus konnte ich also ca. 5000 Zufalls-Bytes pro Minute erzeugen. Nach der Bit-Methode wären es nur 625 gewesen. Es war also eine rein pragmatische Entscheidung, den Zählerstand zu nehmen. Das Bestehen der verschiedenen Tests war für mich ausreichend.