Come usare un time pad se la chiave è più corta del testo in chiaro?

5

Comprendo che uno dei requisiti (e uno svantaggio principale) di OTP è che la chiave deve essere lunga quanto il messaggio.

Cosa succede se ho una chiave più breve? Il messaggio verrebbe parzialmente crittografato, giusto?

Ad esempio se la mia chiave era "The" e il mio messaggio era "Hello, there" il testo cifrato risultante avrebbe dovuto essere lungo solo tre byte. Destra? In questo caso solo "28 13 9" (in formato decimale).

Voglio solo confermare che la mia comprensione è corretta e che la chiave non si avvolge o qualcosa del genere.

    
posta S.L. Barth 18.12.2013 - 01:58
fonte

2 risposte

6

"One-Time Pad" è più un concetto che un algoritmo rigorosamente definito. Se esistesse una specifica di un "algoritmo di crittografia OTP" (ad esempio, in formato RFC o simile), che indica dove va ogni byte e quando, allora quella specifica ti dirà cosa succede quando la lunghezza della chiave non corrisponde alla lunghezza dei dati. Inoltre, se, nel caso in cui la chiave fosse più corta dei dati da crittografare, quella specifica ti dicesse nient'altro che: "se la chiave è più corta, la crittografia deve essere interrotta"; quindi quella specifica non si qualifica come una vera implementazione del concetto "One-Time Pad".

In questo senso, non ci può essere alcun "key wrapping around" per un One-Time Pad perché quindi il "pad" (cioè la chiave) non è più "una tantum".

Una specifica dell'algoritmo OTP sarebbe piuttosto semplice, ma c'è ancora spazio per le varianti. Quando i dati da crittografare sono una sequenza di bit (come è tipico nei computer), è consuetudine parlare di OTP con XOR come operazione per la crittografia e la decrittografia. Tuttavia, qualsiasi operazione di gruppo può svolgere il lavoro. Ad esempio, se i dati sono una sequenza di ottetti (detti anche "byte"), come è anche molto tipico nei computer, allora puoi fare un OTP con una aggiunta di byte per byte (modulo 256), mentre la decrittazione userebbe la sottrazione. Anche questo funziona bene e soddisfa il concetto di One-Time Pad. Molti usi pre-computer di OTP (con documenti e cervello umano) funzionavano con lettere , in cui l'operazione era matematicamente equivalente all'aggiunta modulo 26 (il gruppo sottostante era, in quel caso, Z 26 , mappato alle lettere da A a Z).

Non sono a conoscenza di specifiche stabilite e ben definite per un one-time pad basato sul computer, perché, diciamocelo, per gli usi pratici one-time pad tende a succhiare. Possiamo trovare tracce del concetto OTP in alcuni casi degenerati (ad esempio, la crittografia ElGamal può essere descritta matematicamente come scambio di chiavi Diffie-Hellman risultante in una chiave condivisa, che viene quindi utilizzata per crittografare il breve messaggio da inviare con un pad monouso funzionante nello stesso gruppo della parte DH).

    
risposta data 18.12.2013 - 14:10
fonte
2

Questa è una domanda specifica per l'implementazione.

Se dovessi implementare OTP, potrei riutilizzare la chiave, in modo errato, e criptare completamente il messaggio con la chiave. Come puoi vedere, lo svantaggio di ciò è che la sicurezza non esiste.

Se hai implementato l'OTP, la tua implementazione sarebbe corretta e assicuravi un OTP corretto. Il tuo messaggio verrebbe troncato per essere la lunghezza della chiave e una parte del tuo messaggio sarebbe mancante. Lo svantaggio della tua implementazione è che gli utenti potrebbero non avere una chiave abbastanza grande e perdere parte del messaggio.

'' Cosa accadrebbe '' non è una buona domanda dato che alla fine della giornata qualcuno deve costruire il software / hardware e decidere cosa succederebbe, e poi implementarlo.

Detto ciò, ciò che DOVREBBE accadere per garantire la sicurezza è che il messaggio è troncato .... come hai indovinato

    
risposta data 18.12.2013 - 02:32
fonte

Leggi altre domande sui tag