
Raccolta di entropia open-source da sorgenti hardware non convenzionali. SDK Rust + Python.
Misura e operazionalizza l'entropia hardware per ricerca e sicurezza.
Raccogli entropia da fonti hardware del dispositivo, analizza la qualità delle fonti con test statistici e fornisci output grezzo o condizionato tramite interfacce CLI, Rust, Python e HTTP.
Un unico flusso di lavoro per la ricerca, validazione e distribuzione crittografica dell'entropia.
Di Amenti Labs
# Installa
cargo install openentropy-cli
# Scopri le fonti di entropia sulla tua macchina
openentropy scan
# Benchmark di tutte le fonti veloci
openentropy bench
# Output 64 byte esadecimali casuali
openentropy stream --format hex --bytes 64
# Dashboard TUI live
openentropy monitor
Per impostazione predefinita, vengono utilizzate solo fonti veloci (<2s). Passa
--allper includere fonti più lente (DNS, TCP, GPU, BLE). L'alias posizionaleallè accettato anche per compatibilità.
La maggior parte delle fonti OpenEntropy proviene dalla macchina host stessa. OpenEntropy supporta anche dispositivi hardware esterni quando sono collegati e rilevabili:
qcicada. OpenEntropy può leggere l'output quantistico del dispositivo e fare benchmark, analizzare, registrare o confrontarlo insieme alle fonti dell'host. Le modalità di output del dispositivo sono mappate a raw, sha256 e samples, e OpenEntropy ora utilizza l'helper di modalità continua a nuovo avvio di QCicada da qcicada 0.2.2, quindi scarta l'input già bufferizzato del dispositivo una volta dopo essere entrato in modalità continua invece di servire la prima lettura da byte in coda obsoleti. Vedi il manuale QCicada.pip install openentropy
from openentropy import EntropyPool, detect_available_sources
sources = detect_available_sources()
print(f"{len(sources)} fonti di entropia disponibili")
pool = EntropyPool.auto()
source = sources[0]["name"]
data = pool.get_source_bytes(source, 256, conditioning="sha256")
Compila dal sorgente (estensione nativa):
git clone https://github.com/amenti-labs/openentropy.git && cd openentropy
pip install maturin
maturin develop
Ingegneri della sicurezza utilizzano OpenEntropy per validare la qualità dell'entropia e seminare CSPRNG:
openentropy analyze --profile security --output audit.md
Ricercatori utilizzano OpenEntropy per studiare le caratteristiche del rumore grezzo:
openentropy analyze --profile deep --output analysis.json
Gli ingegneri della sicurezza seminano CSPRNG, generano chiavi e integrano /dev/urandom con entropia hardware indipendente. L'output condizionato con SHA-256 (--conditioning sha256, il default) produce byte casuali di qualità crittografica. Il profilo security abilita la batteria di test NIST, la scomposizione della min-entropia e il condizionamento SHA-256 in un unico flag.
I ricercatori studiano le caratteristiche del rumore grezzo dei sottosistemi hardware. Passa --conditioning raw per ottenere byte non sbiancati e non condizionati che preservano il segnale di rumore effettivo di ciascuna fonte. Il profilo deep abilita 100K campioni, cross-correlazione e analisi di prove stile PEAR.
La modalità raw consente:
La maggior parte dei generatori di numeri casuali sono pseudocasuali — algoritmi deterministici seminati una volta. OpenEntropy raccoglie continuamente rumore fisico reale dal tuo hardware:
Il pool combina flussi indipendenti con XOR. Nessun singolo guasto di una fonte può compromettere il pool.
Il condizionamento è opzionale e configurabile. Usa --conditioning sulla CLI o ?conditioning= sull'API HTTP:
| Modalità | Flag | Descrizione |
|---|---|---|
| SHA-256 (default) | --conditioning sha256 | Condizionamento SHA-256. Output di qualità crittografica. |
| Von Neumann | --conditioning vonneumann | Solo debiasing — rimuove il bias preservando più struttura del segnale grezzo. |
| Raw | --conditioning raw | Nessuna elaborazione. Byte della fonte senza sbiancamento — preserva il segnale di rumore hardware effettivo per la ricerca. |
La modalità raw è ciò che rende OpenEntropy utile per la ricerca. La maggior parte delle API HWRNG esegue post-elaborazione DRBG che rende ogni fonte simile a byte casuali uniformi, distruggendo le informazioni di cui i ricercatori hanno bisogno. L'output raw preserva la struttura del rumore per fonte: bias, autocorrelazione, caratteristiche spettrali e correlazioni cross-fonte. Vedi Condizionamento per dettagli.