Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
openentropy — Raccolta di entropia open-source da sorgenti hardware non convenzionali. SDK Rust + Python. | Kitploit
Strumenti/GitHubGitHub/amenti-labs/openentropy
Analisi StaticaCrittografiaSicurezza HardwarePaper e RicercaApprendimento e Formazione
GitHubamenti-labs/openentropy

openentropy

Raccolta di entropia open-source da sorgenti hardware non convenzionali. SDK Rust + Python.

Vedi Repository
28226 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
logo openentropy

openentropy

Misura e operazionalizza l'entropia hardware per ricerca e sicurezza.

Crates.io PyPI docs.rs Docs License: MIT CI Platform

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


Avvio Rapido

root@kitploit:~
# 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 --all per includere fonti più lente (DNS, TCP, GPU, BLE). L'alias posizionale all è accettato anche per compatibilità.

Hardware QRNG esterno

La maggior parte delle fonti OpenEntropy proviene dalla macchina host stessa. OpenEntropy supporta anche dispositivi hardware esterni quando sono collegati e rilevabili:

  • Crypta Labs QCicada USB QRNG — esposto come sorgente 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.

Python

root@kitploit:~
pip install openentropy
root@kitploit:~
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):

root@kitploit:~
git clone https://github.com/amenti-labs/openentropy.git && cd openentropy
pip install maturin
maturin develop

Due Pubblici

Ingegneri della sicurezza utilizzano OpenEntropy per validare la qualità dell'entropia e seminare CSPRNG:

root@kitploit:~
openentropy analyze --profile security --output audit.md

Ricercatori utilizzano OpenEntropy per studiare le caratteristiche del rumore grezzo:

root@kitploit:~
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:

  • Caratterizzazione hardware — misura min-entropia, autocorrelazione e proprietà spettrali delle singole fonti di rumore
  • Validazione del silicio — confronta i profili di rumore tra revisioni del chip, stati termici e domini di tensione
  • Rilevamento anomalie — monitora la salute delle fonti di entropia per individuare segni di degrado hardware o manomissioni
  • Analisi cross-dominio — studia correlazioni tra domini di entropia indipendenti (termico vs temporizzazione vs IPC)

Cosa Rende Questo Diverso

La maggior parte dei generatori di numeri casuali sono pseudocasuali — algoritmi deterministici seminati una volta. OpenEntropy raccoglie continuamente rumore fisico reale dal tuo hardware:

  • Rumore termico — tre battiti di oscillatore indipendenti (cristallo CPU vs PLL audio, PLL display, PLL PHY PCIe)
  • Temporizzazione e microarchitettura — rumore di fase dell'orologio, conflitti del buffer di riga DRAM, varianza di esecuzione speculativa, TLB shootdown, gare DVFS, contenzione del bus ICC, stato del prefetcher, temporizzazione JIT APRR, attraversamento del dominio di clock ANE
  • I/O e IPC — latenza disco e NVMe (incluso polling sensori IOKit, dispositivo raw e passthrough Linux), enumerazione USB, IPC Mach port, allocazione buffer pipe, eventi kqueue, journal fsync
  • GPU e calcolo — divergenza warp GPU, temporizzazione cross-dominio IOSurface, temporizzazione inferenza Neural Engine
  • Scheduling e sistema — deriva nanosleep, code dispatch GCD, ciclo di vita dei thread, migrazione P/E-core, coalescenza timer, contatori kernel, snapshot tabella processi
  • Rete e sensori — temporizzazione risoluzione DNS, varianza handshake TCP, RSSI WiFi, RF ambientale BLE, rumore ADC audio
  • Hardware profondo — battiti di dominio di clock duali, SITVA, commutazione contesto AES-XTS, broadcast SEV, seqlock COMMPAGE, termistore SMC, reseed TRNG getentropy

Il pool combina flussi indipendenti con XOR. Nessun singolo guasto di una fonte può compromettere il pool.

Modalità di Condizionamento

Il condizionamento è opzionale e configurabile. Usa --conditioning sulla CLI o ?conditioning= sull'API HTTP:

ModalitàFlagDescrizione
SHA-256 (default)--conditioning sha256Condizionamento SHA-256. Output di qualità crittografica.
Von Neumann--conditioning vonneumannSolo debiasing — rimuove il bias preservando più struttura del segnale grezzo.
Raw--conditioning rawNessuna 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.


Documentazione

  • Sito della documentazione: https://amenti-labs.github.io/openentropy/
  • Pacchetto PyPI: https://pypi.org/project/openentropy/
DocDescrizione
Catalogo FontiCatalogo fonti con spiegazioni fisiche e note sulla piattaforma
Riferimento CLIRiferimento completo ai comandi ed esempi
CondizionamentoModalità di condizionamento Raw vs VonNeumann vs SHA-256
Metodologia Analisi ProveProve stile PEAR a 200 bit, gate di calibrazione e riferimenti
Modello TelemetriaModello contestuale sperimentale telemetry_v1 e punti di integrazione
API RustSuperficie API Rust principale
ArchitetturaStruttura crate e decisioni di progettazione
SDK PythonBinding PyO3 e riferimento API Python
EsempiEsempi di codice Rust e Python
Risoluzione ProblemiProblemi comuni e soluzioni
SicurezzaModello di minaccia e divulgazione responsabile

Riconoscimenti

La roadmap ampliata di analisi statistica e l'inventario dei metodi sono stati informati da:

  • vikingdude81/qrng-analysis-toolkit

Apprezziamo il lavoro open-source che ha contribuito a dare forma a questa superficie comparativa di analisi QRNG/PRNG.


Fonti di Entropia

Il registro delle fonti attuale copre 13 categorie basate sul meccanismo; la disponibilità effettiva varia per piattaforma:

CategoriaConteggio
Termiche4
Temporizzazioni7
Scheduling6
IO6
IPC4
Microarchitettura16
GPU3
Rete3
Sistema6
Segnale3
Sensore4
Quantistica1

Per descrizioni complete per fonte, disponibilità su piattaforma e note fisiche, vedi Catalogo Fonti.

Hardware esterno attualmente supportato:

  • qcicada — Crypta Labs QCicada USB QRNG (manuale)

Riferimento CLI

Per il riferimento completo ai comandi e agli esempi, vedi Riferimento CLI.

Flussi di lavoro più usati:

root@kitploit:~
openentropy scan
openentropy bench
openentropy stream --format hex --bytes 64
openentropy analyze --profile security         # Batteria NIST + entropia + sha256
openentropy analyze --profile deep             # 100K + forense + cross-corr + prove
openentropy record clock_jitter --duration 30s
openentropy sessions sessions/<id> --profile deep
openentropy compare sessions/<id-a> sessions/<id-b> --profile deep

Su sessions, i preset del profilo si applicano solo quando viene fornito un percorso di sessione specifico. openentropy sessions senza percorso rimane sempre in modalità elenco.

La metodologia di prova stile PEAR (prove a 200 bit, Z terminale, composizione Stouffer pesata, gate di calibrazione) è documentata in Metodologia Analisi Prove.


API Rust

root@kitploit:~
[dependencies]
openentropy-core = "0.12"
root@kitploit:~
use openentropy_core::{ConditioningMode, EntropyPool, detect_available_sources};

let sources = detect_available_sources();
println!("{} fonti disponibili", sources.len());

let pool = EntropyPool::auto();
let source = pool.source_names()[0].clone();
let bytes = pool
    .get_source_bytes(&source, 256, ConditioningMode::Sha256)
    .unwrap();
let health = pool.health_report();

Analizza e confronta i dati di entropia in modo programmatico:

root@kitploit:~
use openentropy_core::{full_analysis, compare, trial_analysis};

let data = pool.get_source_raw_bytes(&source, 5000).unwrap();

// Analisi statistica per fonte
let analysis = full_analysis(&source, &data);
println!("Entropia di Shannon: {:.4} bit/byte", analysis.shannon_entropy);

// Confronto differenziale di due flussi
let other = pool.get_source_raw_bytes(&source, 5000).unwrap();
let diff = compare("stream_a", &data, "stream_b", &other);

// Analisi di prova stile PEAR
let trials = trial_analysis(&data, &Default::default());
println!("Z terminale: {:.4}, p = {:.4}", trials.terminal_z, trials.terminal_p_value);

Analisi della teoria del caos (distinguere casualità reale da caos deterministico):

root@kitploit:~
use openentropy_core::chaos::chaos_analysis;

let result = chaos_analysis(&data);
println!("Hurst H={:.4}, Lyapunov λ={:.4}, D₂={:.4}",
    result.hurst.hurst_exponent,
    result.lyapunov.lyapunov_exponent,
    result.correlation_dimension.dimension);

Architettura

Workspace Cargo con 6 crate:

CrateDescrizione
openentropy-coreLibreria principale — fonti, pool, condizionamento
openentropy-cliBinario CLI con dashboard TUI
openentropy-serverServer HTTP Axum per entropia
openentropy-testsBatteria di test ispirata a NIST SP 800-22
openentropy-pythonBinding Python tramite PyO3/maturin
openentropy-wasmCrate entropia WebAssembly/browser
root@kitploit:~
flowchart TD
    Sources[Fonti 63] --> Raw[campioni raw]
    Raw --> Pool[Pool Entropia combinazione XOR]
    Pool --> Modes{Modalità condizionamento}
    Modes -->|default| Sha[sha256]
    Modes --> Vn[vonneumann]
    Modes -->|passthrough| RawMode[raw]
    Sha --> Output[Superfici di output]
    Vn --> Output
    RawMode --> Output
    Output --> Rust[API Rust]
    Output --> CLI[CLI e TUI]
    Output --> Http[Server HTTP]
    Output --> Pipe[Named Pipe]
    Output --> Py[SDK Python]

Supporto Piattaforme

PiattaformaFontiNote
MacBook (serie M)63/63Suite completa — WiFi, BLE, fotocamera, microfono
Mac Mini / Studio / Pro50–55Nessuna fotocamera integrata, microfono su alcuni modelli
Mac Intel~20Alcune fonti silicio/microarch sono specifiche ARM
Linux12–15Fonti temporizzazione, rete, disco, processo + passthrough NVMe

La libreria rileva l'hardware disponibile a runtime e attiva solo le fonti funzionanti.


Compilazione dal Sorgente

Richiede Rust 1.85+ e macOS o Linux.

root@kitploit:~
git clone https://github.com/amenti-labs/openentropy.git
cd openentropy
cargo build --release --workspace --exclude openentropy-python
cargo test --workspace --exclude openentropy-python
cargo install --path crates/openentropy-cli

Pacchetto Python

root@kitploit:~
pip install maturin
maturin develop --release
python3 -c "from openentropy import EntropyPool; print(EntropyPool.auto().get_random_bytes(16).hex())"

Contribuire

Vedi CONTRIBUTING.md. Idee:

  • Nuove fonti di entropia (soprattutto specifiche per Linux)
  • Miglioramenti delle prestazioni
  • Implementazioni aggiuntive di test NIST
  • Supporto per piattaforma Windows

Riferimenti

  • NIST SP 800-22: A Statistical Test Suite for Random and Pseudorandom Number Generators
  • Bone, A. (2026): QRNG Analysis Toolkit — i metodi di analisi della teoria del caos (esponente di Hurst, esponente di Lyapunov, dimensione di correlazione, BiEntropy, Epiplexity) sono stati reimplementati in Rust a partire da definizioni matematiche, ispirandosi a questo toolkit Python
  • Croll, G.J. (2013): BiEntropy — The Approximate Entropy of a Finite Binary String
  • Hurst, H.E. (1951): Long-term storage capacity of reservoirs
  • Rosenstein, M.T., Collins, J.J. & De Luca, C.J. (1993): A practical method for calculating largest Lyapunov exponents from small data sets
  • Grassberger, P. & Procaccia, I. (1983): Measuring the strangeness of strange attractors
  • Shannon, C.E. (1948): A Mathematical Theory of Communication

Licenza

MIT — Copyright © 2026 Amenti Labs

Scarica lo strumento