Joseph Mauborgne propose un miglioramento al cifrario di Vernam, suggerì di utilizzare una chiave randomica che fosse lunga quanto il messaggio, così che la chiave non si dovesse ripetere. In più, la chiave era usata per crittare/decrittare un solo messaggio, poi veniva distrutta. Ogni nuovo messaggio richiede una nuova chiave. One-time pad non è vulnerabile a nessun attacco. OTP produce un output randomico che genera un testo cifrato che non ha alcun dipendenza statistica con il testo in chiaro.
Un esempio: supponiamo che stiamo usando uno schema di Vigenère con 27 caratteri in cui il 27-esimo carattere è lo spazio, ma con una one-time key che è lunga quanto il messaggio.
ANKYODKYUREPFJBYOJDSPLREYIUNOFDOIURFPLUYTS
Ecco due modi diversi di decrittare la frase con due chiavi diverse:
Ciphertext: | ANKYODKYUREPFJBYOJDSPLREYIUNOFDOIURFPLUYTS |
---|---|
Key: | pxlmvmsydofuyrvzwc tnlebnecvgdupahfzzlmnyih |
Plaintext: | mr mustard with the candlestick in the hall |
Ciphertext: | ANKYODKYUREPFJBYOJDSPLREYIUNOFDOIURFPLUYTS |
---|---|
Key: | pftgpmiydgaxgoufhklllmhsqdqogtewbqfgyovuhwt |
Plaintext: | miss scarlet with the knife in the library |
Come fa il cripto-analista a decidere qual è la chiave giusta?
Non c'è nessun modo.
One-time-pad presenta alcune difficoltà: