C'è un vantaggio nella misurazione della casualità? Come sarebbe fatto?

4

C'è qualche vantaggio nel determinare in che modo un file, flusso, segnale è casuale?

Immagino che sarebbe utile per determinare

  1. Se qualcosa è (male) crittografato
  2. Per verificare la corretta crittografia di un file, dati (GCM, SALSA20 o codice sconosciuto)
  3. Per rilevare che viene inviato un segnale segreto

Supponendo che io sia il ruolo di "Bob" o "Mallory", come potrei misurare quanto sono casuali un determinato flusso di 1 e 0? (usando qualsiasi metodo di cifratura)

    
posta random65537 25.11.2015 - 02:07
fonte

2 risposte

1

Oh ragazzo, tempo della filosofia. Cos'è la casualità? Può essere misurata la casualità? Che cos'è un segnale comunque?

Intuitivamente possiamo dire che Thing A è più casuale di Thing B se ha un'entropia più alta. L'entropia è uno di quei concetti che è facile da definire e parlare, ma in realtà misurarlo da un set di dati è l'incubo di un giornalista. Se il tuo RNG produce aaaaaaa... o il tuo RNG succhia i limoni, o colpisci quello in una probabilità 10 -n . Con un solo punto dati, è impossibile dirlo.

Affinché qualsiasi analisi statistica della casualità sia significativa, è necessario almeno un milione di campioni generati in un ambiente di laboratorio in cui è possibile dimostrare che il proprio RNG è stato seminato correttamente per ciascun campione. E anche in questo caso devi stare molto attento a quali test statistici usi perché hanno tutti un pregiudizio verso certi tipi di pattern. Cercare di trarre conclusioni sulla qualità della casualità con meno rigore di questo sarà ... inconcludente al meglio.

In conclusione: misurare l'entropia crittografica nella pratica è difficile e preferibile ai ricercatori.

Quindi questa è la risposta teorica. In pratica si può avere un'idea molto approssimativa della quantità di casualità in una stringa o in un file usando i metodi citati nei commenti / altre risposte: eseguirlo attraverso uno strumento di compressione (che è una sottocategoria dei test di complessità di Kolmogorov), o uno dei test delle statistiche di stima dell'entropia menzionati nella risposta di @ Edward Barnard.

Questo tipo di cose è probabilmente abbastanza buono per distinguere un file crittografato da un file di testo in chiaro, ma probabilmente non è in grado di distinguere tra un file compresso e un file crittografato o, in ogni caso, tra un file correttamente crittografato e uno cattivo file crittografato.

Per quanto riguarda il rilevamento di segnali segreti, sei piuttosto sfortunato se stai cercando una soluzione generale. Dimmi quali sono i test statistici disponibili che utilizzi e creerò un metodo steganografia che lo inganni . Per avere qualche speranza di scoprirlo, è necessario conoscere una buona parte delle proprietà statistiche sia del segnale portante, sia del segnale nascosto atteso, e progettare un algoritmo di rilevamento attorno a questo. E naturalmente più rumore si verifica naturalmente nel segnale portante, più posti nascondono i segnali nascosti.

    
risposta data 05.01.2017 - 23:00
fonte
0

L'articolo di Wikipedia Test di casualità risponde a entrambe le domande (i vantaggi di misurare la casualità, come farlo). Come sottolineato dai commenti OP, la casualità non è utile per misurare la validità / sicurezza di una crittografia.

L'uso più vicino legato alla crittografia potrebbe essere la valutazione di generatori di numeri pseudo casuali o altre fonti di casualità.

    
risposta data 05.01.2017 - 21:38
fonte

Leggi altre domande sui tag