Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Entropy Crosscheck — Controprova Indipendente

⚠ **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. Vedi SECURITY-NOTES.md per 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).

Perché esiste

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.

I 6 test, e perché sono indipendenti da quelli già esistenti

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.

Uso

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".

Dimensioni e tempi di calcolo

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.

Cosa NON fa

  • 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.

About

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. Verifica l'eventuale presenza di pattern anche se le sorgenti arrivano da fonti diverse.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages