Protezione dei dati tramite un'operazione XOR con chiavi sufficientemente lunghe

0

Supponiamo che due parti S e D vorrebbero proteggere un canale di comunicazione . Pertanto, S e D scambiano due sequenze di chiavi sufficientemente lunghe SB e DB di bit casuali su un canale sicuro [ad esempio, non su Internet]. Dopo questo scambio, entrambi si conoscono le chiavi dell'altro.

Ad esempio, S e D potrebbero scambiare (fisicamente) chiavette USB da 64 GB che contengono la sequenza di tasti dell'altro.

Se S vuole inviare un messaggio da M a D, S in realtà invia M xor SB *.

  • Se SB e DB contengono abbastanza entropia [quindi sono basati su una buona fonte casuale],
  • e SB e DB sono sufficientemente lunghi
  • questa tecnica protegge il messaggio M contro terzi ?

Come potrebbe una terza parte calcolare le chiavi SB e DB?

Questo non suona molto una linea one-time pad ?

Mentre ho usato XOR , in realtà intendo un'operazione matematica semplice (ad es. bit per op + addizione). In generale, ho pensato alla domanda, se è possibile una crittografia strong con una semplice matematica.

    
posta SteAp 08.09.2013 - 15:10
fonte

3 risposte

8

Quello che stai descrivendo è un pad singolo.

Supponendo che ogni singolo bit della chiave sia usato only una volta, il one-time pad è considerato un codice perfetto. Ovviamente, se riutilizzi qualsiasi parte della chiave, l'intero schema diventa ridicolmente deboli .

La più grande debolezza del sistema è la difficoltà del metodo di scambio delle chiavi. Le chiavi utilizzate nel pad singolo devono essere della stessa lunghezza o più lunghe del messaggio. Se si dispone di un metodo sicuro per il trasferimento di una quantità arbitraria di informazioni da utilizzare come materiale chiave, perché non utilizzare lo stesso metodo di trasferimento per trasferire il messaggio effettivo?

Inoltre, il materiale chiave deve essere veramente casuale.

    
risposta data 08.09.2013 - 15:22
fonte
4

Hai anche bisogno di autenticazione e controllo di integrità con un MAC strong che viene inviato con il testo cifrato per prevenire attacchi di bit-flipping. Cifra anche il MAC con alcuni dei dati casuali (usando lo stesso processo di crittografia).

Avrai bisogno di un modo per rimanere sincronizzato con l'altro utente in modo da non riutilizzare accidentalmente dati casuali. Pensa a come gestirai la perdita di pacchetti, la perdita di un messaggio o l'attacco di un utente malintenzionato. Controlla il protocollo SSH per alcuni indizi di progettazione. Una volta che hai usato parte dei dati casuali, deve essere immediatamente cancellato per impedire il riutilizzo. Dovresti designare parti separate dei dati per ciascuna parte da inviare, in modo tale che entrambi gli utenti non inviino accidentalmente utilizzando gli stessi dati casuali.

Assicurati che l'entropia sia propriamente casuale. Non dovresti assolutamente fidarti ciecamente di tutto ciò che il sistema operativo offre, specialmente con la nuova soluzione on-chip sviluppata da Intel in collusione con la NSA e la NSA inserendo backdoor in tutto. Includere anche alcuni input casuali dell'utente. Probabilmente avrai bisogno di una fonte fisica di casualità, forse una soluzione hardware e raccogliere da più fonti di entropia. Assicurati di eseguire tutta l'entropia attraverso un estrattore di casualità prima di usarla. Ad esempio, è necessario generare 128 GB di entropia, quindi eseguirlo attraverso il processo Von Neumann Whitening che ti darà 64 GB di entropia utilizzabile. Non utilizzare un CSPRNG se puoi aiutarlo, i pattern sottili potrebbero rivelare il seme utilizzato per generare l'intero dato casuale.

Per 64 GB ci vorrà un po 'per creare. Se veramente volevi usare un CSPRNG, potenzialmente potresti generare 3 chiavi lunghe (1024 bit +). Esegui ognuno attraverso un algoritmo CSPRNG separato per generare 3 output separati di 128 GB. Quindi esegui le uscite separate attraverso l'estrattore entropico fornendoti 64 GB per ciascuna uscita, quindi infine XOR le uscite insieme (uscita 1 uscita XOR 2 uscita XOR 3 ). L'output finale dovrebbe essere buono per 64 GB di dati casuali protetti e imprevedibile per qualsiasi aggressore.

La bellezza del pad singolo è che il testo cifrato può essere decodificato su qualsiasi testo in chiaro della stessa lunghezza. Un utente malintenzionato può provare tutte le chiavi che desidera, rivelerà semplicemente tutti i possibili testi in chiaro. Se mantieni la corretta gestione delle chiavi (eliminazione delle chiavi dopo l'uso) e altra sicurezza intorno all'implementazione, allora hai una negabilità plausibile. Se un attaccante ti obbliga a rivelare la tua chiave (con un tubo di gomma o una chiave inglese), non avrai più la chiave per aiutarli. E qualsiasi cosa tu abbia inviato potrebbe essere trasformata plausibilmente in qualsiasi cosa tu voglia dire invece. C'è una ragione per cui i militari e i governi lo usano ancora. Una volta che lo scambio di chiavi di crittografia quantistica diventa più ampiamente disponibile, il pad monouso sarà ancora più utilizzato. Fino ad allora, affronta i piccoli inconvenienti pratici e goditi la libertà e la segretezza perfetta.

    
risposta data 09.09.2013 - 07:15
fonte
2

C'è un altro modo per visualizzare un one-time-pad che può aiutare ad espandere la tua visione di ciò che è la sicurezza dei dati simmetrica.

Considera un messaggio P (testo normale) di lunghezza N (byte) :

  • Puoi dividere questo messaggio (mitosi crittografica in realtà) in due segreti casuali ( A e B ) di lunghezza N , utilizzando un casuale origine dati R (byte) di lunghezza N . Dopo la divisione, P e R possono essere scartati. I segreti A e B diventano la chiave / testo cifrato l'uno dell'altro .
  • Il testo in chiaro viene semplicemente rigenerato combinando i due segreti A e B .
  • Segreto A o B può essere diviso in più segreti di lunghezza N utilizzando ulteriori dati casuali completamente nuovi ( R 2 ).
  • Ogni pezzo segreto A , B , C , D , E , F , ... ecc. è:

    • Altrettanto necessario per produrre il testo in chiaro.
    • In grado di essere combinato in qualsiasi ordine per arrivare al testo semplice
    • è altrettanto sicuro; indipendentemente dal conoscere 1 dei 10 segreti o 9 dei 10 segreti.
  • Ciò significa che puoi proteggere un segreto suddividendolo su più CD o chiavette USB; o nascosti in posti diversi o dati a persone diverse. Una buona fonte di dati casuali è necessaria solo per la mitosi iniziale.

Questo è semplicemente un modo diverso di concettualizzare lo stesso modello di crittografia one-time-pad; ma utile perché mette in evidenza testo cifrato e chiavi come concetti completamente intercambiabili per i one-time-pad, a condizione che l'attaccante non abbia tutti i segreti.

Si applicano i soliti vincoli per i one-time-pad.

    
risposta data 09.09.2013 - 13:50
fonte

Leggi altre domande sui tag