
Open-Source-Entropiegewinnung aus unkonventionellen Hardware-Quellen. Rust + Python SDK.
Hardware-Entropie für Forschung und Sicherheit messen und operationalisieren.
Sammle Entropie von On-Device-Hardwarequellen, analysiere die Quellqualität mit statistischen Tests und liefere rohe oder konditionierte Ausgaben über CLI, Rust, Python und HTTP-Schnittstellen.
Ein Workflow für Entropieforschung, Validierung und kryptografische Bereitstellung.
Von Amenti Labs
# Installieren
cargo install openentropy-cli
# Entropiequellen auf Ihrem Rechner erkennen
openentropy scan
# Alle schnellen Quellen benchmarken
openentropy bench
# 64 zufällige Hex-Bytes ausgeben
openentropy stream --format hex --bytes 64
# Live-TUI-Dashboard
openentropy monitor
Standardmäßig werden nur schnelle Quellen (<2s) verwendet. Mit
--allwerden auch langsamere Quellen (DNS, TCP, GPU, BLE) einbezogen. Das Positionsaliasallwird aus Kompatibilitätsgründen ebenfalls akzeptiert.
Die meisten OpenEntropy-Quellen stammen vom Host-Rechner selbst. OpenEntropy unterstützt auch externe Hardware-Geräte, wenn sie angeschlossen und erkennbar sind:
qcicada-Quelle. OpenEntropy kann die Quantenausgabe des Geräts lesen und benchmarken, analysieren, aufzeichnen oder mit Quellen auf dem Host vergleichen. Die eigenen Ausgabemodi des Geräts sind raw, sha256 und samples, und OpenEntropy nutzt jetzt QCicadas Fresh-Start-Continuous-Mode-Helfer aus qcicada 0.2.2, sodass nach dem Wechsel in den Continuous-Mode einmalig bereits gepufferte Geräteeingaben verworfen werden, anstatt den ersten Lesevorgang aus veralteten Warteschlangen-Bytes zu bedienen. Siehe das QCicada-Handbuch.pip install openentropy
from openentropy import EntropyPool, detect_available_sources
sources = detect_available_sources()
print(f"{len(sources)} Entropiequellen verfügbar")
pool = EntropyPool.auto()
source = sources[0]["name"]
data = pool.get_source_bytes(source, 256, conditioning="sha256")
Aus dem Quellcode bauen (native Erweiterung):
git clone https://github.com/amenti-labs/openentropy.git && cd openentropy
pip install maturin
maturin develop
Sicherheitsingenieure nutzen OpenEntropy, um die Entropiequalität zu validieren und CSPRNGs zu seeden:
openentropy analyze --profile security --output audit.md
Forscher nutzen OpenEntropy, um die Eigenschaften des rohen Rauschens zu untersuchen:
openentropy analyze --profile deep --output analysis.json
Sicherheitsingenieure seeden CSPRNGs, generieren Schlüssel und ergänzen /dev/urandom mit unabhängiger Hardware-Entropie. Die SHA-256-konditionierte Ausgabe (--conditioning sha256, Standard) liefert kryptografisch sichere Zufallsbytes. Das security-Profil aktiviert die NIST-Testsuite, die Min-Entropie-Aufschlüsselung und die SHA-256-Konditionierung mit einem Flag.
Forscher untersuchen die Eigenschaften des rohen Rauschens von Hardware-Komponenten. Mit --conditioning raw erhalten Sie ungeglättete, nicht konditionierte Bytes, die das tatsächliche Rauschsignal jeder Quelle erhalten. Das deep-Profil aktiviert 100K Samples, Kreuzkorrelation und PEAR-artige Versuchsanalyse.
Der Raw-Modus ermöglicht:
Die meisten Zufallszahlengeneratoren sind pseudozufällig — deterministische Algorithmen, die einmal geseedet werden. OpenEntropy sammelt kontinuierlich echtes physikalisches Rauschen von Ihrer Hardware:
Der Pool kombiniert unabhängige Ströme mittels XOR. Kein einzelner Quellenausfall kann den Pool gefährden.
Konditionierung ist optional und konfigurierbar. Verwenden Sie --conditioning in der CLI oder ?conditioning= in der HTTP-API:
| Modus | Flag | Beschreibung |
|---|---|---|
| SHA-256 (Standard) | --conditioning sha256 | SHA-256-Konditionierung. Kryptografische Qualität. |
| Von Neumann | --conditioning vonneumann | Nur Entzerrung (Debiasing) — entfernt Verzerrungen, bewahrt aber mehr der rohen Signalstruktur. |
| Raw | --conditioning raw | Keine Verarbeitung. Quell-Bytes ohne Glättung – bewahrt das tatsächliche Hardware-Rauschsignal für die Forschung. |
Der Raw-Modus macht OpenEntropy für die Forschung nützlich. Die meisten HWRNG-APIs führen eine DRBG-Nachbearbeitung durch, die jede Quelle wie gleichmäßig zufällige Bytes erscheinen lässt und damit die Informationen zerstört, die Forscher benötigen. Die rohe Ausgabe bewahrt die Rauschstruktur pro Quelle: Verzerrung, Autokorrelation, spektrale Merkmale und quellenübergreifende Korrelationen. Siehe Konditionierung für Details.