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.