È estremamente importante capire che "One Time Pad" è un elemento del codice effettivo utilizzato, non un particolare protocollo. Ad esempio, SSL o TLS che utilizzano RC4 sta, in effetti, implementando un One Time Pad digitale, mentre SSL o TLS che utilizzano DES o AES non ne utilizzano uno.
One Time Pad si riferisce alla tecnica crittografica della vecchia scuola di stampare i pad di codice ... le cose reali di carta ... che potrebbero essere utilizzate per crittografare e decrittografare i messaggi. Il pad era effettivamente la chiave da utilizzare per crittografare un messaggio.
La forza di un One Time Pad deriva dal fatto che i tuoi messaggi sono generalmente brevi e la chiave viene utilizzata una volta sola. Ciò rende difficili gli attacchi statistici contro il testo cifrato. Tuttavia, se dovessi riutilizzare la chiave, inizierai immediatamente a compromettere la sicurezza generale dei dati, rendendo la crittanalisi statistica più praticabile.
Tuttavia ci sono altre caratteristiche importanti. Poiché One Time Pad utilizza la chiave una sola volta, significa anche che ottieni Perfect Forward Secrecy gratuitamente. PFS significa che se un utente malintenzionato "interrompe" una chiave, tramite un testo in chiaro scelto, un testo in chiaro noto o altra crittanalisi, la violazione di tale chiave non fornisce assolutamente alcuna informazione su alcuna chiave precedente o chiave futura, eccetto, ovviamente, che tali chiavi non sono la chiave attuale.
In pratica, i time pad digitali non cambiano la chiave dopo ogni singolo messaggio. Se lo facessero, sarebbe fantastico, ma semplicemente non è pratico. Per compensare questa deficienza (riutilizzo delle chiavi) le implementazioni includono in genere due cose. Il primo è un protocollo o un metodo per sostituire periodicamente la parte fissa della chiave in base al tempo o alla quantità di dati inviati. Il secondo è usare un certo tipo di "vettore di inizializzazione" casuale (pensatelo come un grande sale) che viene aggiunto alla chiave prima di crittografare ogni messaggio. Piuttosto che cambiare l'intera chiave, una parte fissa (in genere una porzione relativamente grande della chiave) rimane fissa per un certo periodo di tempo mentre l'IV (sale) viene modificato con ogni messaggio. Poiché il sale sta cambiando, deve essere comunicato al partner di comunicazione e in genere viene inviato in chiaro o in modo efficace in chiaro.
Un meraviglioso esempio di one time pad digitale è RC-4. Un esempio di implementazione scarsa (ben noto, ovviamente) è WEP, che utilizza un vettore di inizializzazione a 24 bit. WPA, il primo tentativo di "risolvere" questo, ha reso la porzione fissa della chiave più grande e ha aggiunto TKIP per passare periodicamente a una chiave casuale (porzione fissa) mentre si utilizza ancora RC-4 e IV.