Die Erzeugung von Zufallszahlen spielt eine entscheidende Rolle in vielfältigen Bereichen wie der Kryptografie, Computersimulationen und Datenverschlüsselung. Während Pseudozufallszahlengeneratoren (PRNGs) mathematisch deterministisch sind, setzt ein wahrer Zufallszahlengenerator (True Random Number Generator, TRNG) auf physikalische Prozesse, deren Ergebnisse nicht vorhersagbar sind. Eine faszinierende Möglichkeit, eine solche physikalisch basierte Zufallsquelle zu erzeugen, ist die Nutzung von PN-Übergängen, also den Grenzflächen in Halbleiterdioden. Im Jahr 2013 diskutierte und untersuchte eine Community von Entwicklern und Elektronikbegeisterten intensiv die Realisierung eines TRNGs mithilfe eines PN-Übergangs, der mit einem Mikrocontroller wie dem Arduino verbunden wurde. Dabei ergaben sich zahlreiche Erkenntnisse zur Qualität der Zufallszahlen, aber auch zu den Schwierigkeiten, echte Zufälligkeit sicherzustellen.
Eine Kernidee lag darin, die in einem PN-Übergang entstehende Rauschspannung als Entropiequelle für den Zufallsgenerator zu nutzen. Der PN-Übergang in Halbleitern bringt bei Sperrrichtung einen sogenannten Durchbruch der Bandlücke mit sich, der thermisches und sogenanntes Avalanche-Rauschen erzeugt. Diese unregelmäßigen Schwankungen können als Grundlage für Randomness dienen. Doch die Herausforderung besteht stets darin, diese physikalischen Signale so zu verarbeiten, dass sich daraus statistisch einwandfreie Zufallszahlen ergeben, die den Anforderungen moderner Kryptografie genügen. Im konkreten Fall wurde bei den Arduino-Projekten auf das Modell von Rob Seward zurückgegriffen, bei dem das Rauschen über einen Avalanche-Transistor verstärkt, dann digitalisiert und mit einem sogenannten von Neumann-Entropie-Extraktor verarbeitet wurde.
Der von Neumann-Extractor funktioniert, indem er aus Paaren von Bits diejenigen herausfiltert und kombiniert, die wenig Bias aufweisen, indem etwa gleichwertige Paare wie „00“ und „11“ verworfen werden. Dennoch ist die rohe Bitfolge nicht immer perfekt zufällig, so dass weitere Nachverarbeitungen notwendig sind. Eine weit verbreitete Methode zur Verbesserung der Verteilung der Daten ist das sogenannte Whitening, also die Verarbeitung der Rohdaten durch kryptographische Hashfunktionen. In den Versuchen aus 2013 wurde der SHA-1-Algorithmus genutzt, um Blöcke von jeweils 20 Bytes zu hashen, sodass daraus nochmal 20 Bytes mit höherer Entropie gewonnen wurden. Die Entropiemessung ergab eine Zunahme nach der Verarbeitung, was auf die Effektivität dieses Ansatzes hindeutet.
Nichtsdestoweniger zeigte eine Analyse der zugrundeliegenden Datenverteilung, dass das Ursprungsmaterial keineswegs einer einheitlichen Wahrscheinlichkeitsverteilung entspricht. Die Spannungswerte weisen eher eine Normalverteilung oder eine Art Rauschprofil auf, das für Menschen intuitiv wenig an Zufall erinnert. Trotzdem können solche Messungen ausreichend sein, weil die zeitliche und räumliche Unvorhersagbarkeit der Signale Basis der Zufallsqualität ist. Zentral in den Diskussionen war die Spannung, ob solche PN-basierenden Generatoren für sicherheitskritische Anwendungen geeignet sind. Für kryptografische Zwecke müssen Randomness-Quellen strengsten Anforderungen genügen, da ein Angreifer andernfalls Rückschlüsse auf etwaige Schlüssel ziehen könnte.
Die Community berichtete zwar von ersten guten Ergebnissen, jedoch waren Verbesserungen insbesondere bei der kontinuierlichen Kalibrierung des Schwellenwerts für das Bit-Sampling über die Zeit notwendig, da sich mit Temperaturänderungen und Bauteilalterung Drift-Effekte ergeben. Eine Herausforderung bestand außerdem darin, zuverlässige statistische Tests unter verschiedenen Betriebssystemen durchzuführen. Unter macOS wurde beispielsweise das Programm ENT genutzt, um die Zufallsqualität zu prüfen. Dieses Test-Tool bewertet Parameter wie Entropie pro Byte, Chi-Quadrat-Verteilung, serielle Korrelation und die Annäherung an eine wahre Zufallsverteilung. Die Ergebnisse der PN-basierten Generatoren konnten dabei mit etablierten Quellen wie /dev/random auf Unix-Systemen zwar vergleichbar sein, jedoch überwiegend noch verbessert werden.
Die Einbindung mehrerer unabhängiger Entropiequellen wurde als perspektivisch sinnvoll angesehen. Ein Beispiel ist das Verknüpfen von zwei unterschiedlichen Generatoren mittels exklusivem Oder (XOR), um so mögliche Schwächen einer einzelnen Quelle auszugleichen und die Gesamtqualität zu verbessern. Insbesondere wurde diskutiert, den Hardware-TRNG mit einer weiteren Quelle, etwa dem Jitter der Watchdog-Timer im Arduino, zu kombinieren. Ein weiterer wichtiger Punkt ist die Hardware-Implementierung: Am Beispiel der Transistoren zeigte sich, dass die Wahl der Komponenten große Auswirkungen auf das Signalverhalten hat. Die ursprüngliche Schaltung von Rob Seward basierte auf 2N3904-Transistoren, die eine bessere Verstärkung und Signalform lieferten als andere Typen wie der BC550CG.
Daraus folgte die Empfehlung, die Originalkomponenten oder zumindest gleichwertige Halbleiterbauteile zu verwenden. Am Oszilloskop konnten so stabilere Rauschsignale gemessen werden. Eine neuere Idee war das kontinuierliche Kalibrieren des Schwellenwerts für die Digitalsignalgewinnung auch während des Betriebs. Bisher fand die Kalibrierung oft nur beim Systemstart statt, was zu Driftproblem beim Langzeitbetrieb führte. Einhergehend damit ist auch der Gedanke, mehrere dieser Generatoren parallel zu betreiben und deren Ergebnisse zu kombinieren, was die Wahrscheinlichkeit erhöht, dass wenigstens eine Quelle ausreichend hohe Entropie liefert und so den Gesamtoutput stärkt.
Das Messen und Auswerten der Autokorrelation erwies sich als wesentlicher Indikator für die Unabhängigkeit der erzeugten Bits. Niedrige Autokorrelationswerte signalisieren eine gute Zufälligkeit, da sie auf mangelnde Vorhersagbarkeit zwischen aufeinanderfolgenden Bits hindeuten. Für die vorgestellten PN-Junction-Generatoren wurden solche Kennwerte meistens akzeptabel beobachtet. Insgesamt zeigt die Entwicklung im Jahr 2013, dass PN-Übergänge eine praktikable, wenn auch technisch anspruchsvolle Basis für hardwarebasierte Zufallszahlengeneratoren darstellen. Insbesondere in Verbindung mit nachgeschalteten Software-Algorithmen zur Verbesserung der Entropie bestehen gute Chancen, brauchbare Zufallsquellen zu erzeugen.
Dennoch gilt, dass für kryptografische Anwendungen eine genaue Evaluation und Kombination mehrerer Techniken unumgänglich ist. Parallel zu den hybriden Systemen mit PN-Übergängen gewann der Ansatz, Schwankungen im Arduino-internen Watchdog-Timer zu nutzen, an Beliebtheit. Diese Methode kommt komplett ohne zusätzliche Hardware aus und ist somit besonders attraktiv für Low-Cost-Projekte. Allerdings ist hier die Datenrate begrenzt, weshalb oft eine Kombination mit anderen Quellen angestrebt wird. Die Forschung und Entwicklung in diesem Bereich sind somit ein Musterbeispiel für die komplexe Wechselwirkung von Elektronik, Softwareverarbeitung und statistischer Analyse.