⚠ **v1.0.0-beta5 — Quinta iterazione risposta a un primo audit esterno indipendente (2 rilievi confermati e corretti, 1 rilievo riverificato e non confermato come bug funzionale — solo refactor di chiarezza — con dettaglio completo in
CHANGELOG.md; nel riverificarli trovato e corretto anche un problema di intermittenza nell'autotest, non segnalato dall'audit). In questa build, aggiunta una nota esplicita sul tasso di falso allarme atteso quando si confrontano più di 2 sorgenti insieme. Ancora non sottoposta a un secondo giro di audit indipendente. VediSECURITY-NOTES.mdper i principi di design.
Quarto strumento della stessa serie (EntropyPipeline / entropy-extractor / entropy-extractor-raw-2photo), con uno scopo diverso dagli altri tre: non estrae entropia, la cerca di smentire. Dato uno o più blocchi di dati (bit grezzi pre-estrazione, oppure output finali prodotti da uno degli altri tre tool), cerca correlazioni, bias e pattern usando metodi statistici deliberatamente diversi da quelli già impiegati altrove — così un eventuale punto cieco condiviso non passerebbe inosservato in entrambi i posti.
Standalone, offline, un solo file HTML, nessuna dipendenza esterna (a parte l'API
CompressionStream del browser per il test di compressione, con degradazione
automatica se non disponibile).
I tre tool della serie stimano la min-entropia e cercano pattern con un set di metodi comune: Clopper-Pearson su MCV/Collision/Markov, t-Tuple/LRS (mode-count), RCT/APT, correlazione incrociata a lag fisso (z-score, CLT). Sono rigorosi, ma sono la stessa famiglia di strumenti che scrive e giudica sé stessa. Questo tool è pensato come controprova indipendente — utile in particolare per verificare a mano se due sorgenti che l'utente sa già provenire dalla stessa origine (stesso sensore, stessa foto, stesso momento) vengono effettivamente riconosciute come correlate, sia a monte (dati grezzi) sia a valle (output finale dopo Peres+Toeplitz). O se effettivamente esistono pattern inaspettati su sorgenti diverse.
| Test | Cosa misura | Perché è un metodo diverso |
|---|---|---|
| Compressione (deflate) | Struttura/ridondanza generale | Non usa stime di min-entropia: se comprime, c'è struttura, punto. Baseline calcolata dal vivo (CSPRNG di riferimento della stessa lunghezza, stessa API), non una soglia fissa. |
| Chi² uniformità byte | Distribuzione dei valori byte (0-255) | Granularità byte, non bit; verifica l'intera distribuzione, non solo il conteggio 0/1. |
| Chi² n-gram (blocchi non sovrapposti) | Pattern a k bit, k adattivo | Chi-quadro su TUTTE le categorie (non solo la più frequente come t-Tuple), su blocchi non sovrapposti — vedi nota sul bug trovato in fase di test. |
| Pearson + permutazione | Correlazione lineare fra due sorgenti | Metrica diversa (valori di byte, non bit ±1) e p-value non parametrico (permutazione), non asintotico (CLT). |
| Chi² di indipendenza | Dipendenza generale (anche non lineare) fra due sorgenti | Tabella di contingenza binnata — vede dipendenze che una correlazione lineare non vede. |
| Hamming multi-shift (binomiale esatto) | Sovrapposizione bit-a-bit a shift diversi | P-value esatto (beta incompleta), non approssimazione normale; corretto con Bonferroni sui confronti multipli. |
Nessuno di questi ricalcola MCV, Collision, Markov, t-Tuple, LRS, RCT, APT o la correlazione a lag della batteria esistente.
Apri entropy-crosscheck-beta.html in un browser moderno. Incolla in ciascuna
finestra i dati da esaminare (minimo 500 byte / ~4000 bit), etichettali, premi
"Analizza sorgenti". Per confrontare due o più sorgenti (es. per verificare se
un bias condiviso sopravvive fra due dati che sai provenire dalla stessa fonte),
usa "Confronta A↔B" o "Confronta tutte le coppie".
L'analisi per sorgente (compressione, chi² byte, chi² n-gram) resta
trascurabile qualunque sia la dimensione incollata (misurato: ~220ms anche a
5.000.000 byte). Oltre 5.000.000 byte per sorgente (MAX_PER_SOURCE_BYTES),
il tool tronca automaticamente in fase di parsing, prima di costruire la
rappresentazione bit-per-bit (8× più grande dei byte) — pensato per limitare
memoria e reattività del browser su paste patologicamente grandi, dichiarato
esplicitamente nello stato della sorgente. L'analisi a coppie è più
costosa (il test di Pearson con permutazione scala linearmente): oltre
400.000 byte per sorgente, l'analisi a coppie usa automaticamente un
sottocampione (i primi 400.000 byte di ciascuna), dichiarato esplicitamente
nel risultato, per restare entro ~10-15 secondi di calcolo anche su hardware
non particolarmente veloce. Un banner "Calcolo in corso…" compare sempre prima
di un calcolo che richiede più di un istante. Dettagli del benchmark in
CHANGELOG.md.
- Non estrae né purifica entropia (nessun Peres/Toeplitz qui).
- Non sostituisce i gate di min-entropia degli altri tre tool.
- Non prova sicurezza crittografica: un report "pulito" significa solo che questi 6 test specifici non hanno trovato nulla, non che la sorgente sia davvero imprevedibile per un avversario.
- Non va usato su output di chiavi reali destinate a restare segrete — vedi
SECURITY-NOTES.md.