Aggiornamento di un time pad utilizzando la crittografia con un time pad [duplicato]

1

Questa è una domanda noob assoluta - quindi per favore sii gentile con me! Vedo che domande simili sono state poste - ma penso che le mie siano diverse!

Oltre allo spreco nello spazio di archiviazione, qual è la debolezza del seguente semplice schema di crittografia? Assumi mezzi veramente casuali da una fonte naturale - come lo sfondo di un forno a microonde cosmico ...

Usa un time pad iniziale creato da una fonte veramente casuale che sia lunga almeno il doppio di qualsiasi messaggio concepibile che possa essere inviato. Scrivi messaggi con due parti di uguale dimensione: 1) Il messaggio di testo in chiaro. 2) Un aggiornamento all'OTP composto da dati veramente casuali. Entrambe le parti sono crittografate contro l'OTP originale. Quando viene ricevuto un messaggio, la prima metà viene decodificata contro l'OTP per rivelare il testo normale. Quindi la seconda metà viene decifrata per rivelare l'aggiornamento OTP. Sostituisci l'OTP iniziale con l'aggiornamento OTP.

Mi sembra che la forza dell'OTP sia preservata, vero?

Nessuna parte dell'OPT viene usata due volte contro il testo normale - viene immediatamente sostituita da dati casuali. Le parti dell'OTP che vengono riutilizzate vengono utilizzate contro dati casuali. Supponendo che l'aggiornamento sia veramente casuale, non è stato possibile utilizzarlo per dedurre l'OTP e quindi anche l'aggiornamento, vero?

Esempio di crittografia:

  1. Bob e Alice memorizzano entrambi la chiave iniziale 9462367503982349.
  2. Alice crittografa il suo messaggio "FLEE!", "66676" utilizzando parte della chiave 9462367503 e lo invia a Bob.
  3. Alice cambia la parte del suo pad usata per cifrare "FLEE!" utilizzando "66676"
  4. Bob riceve e decodifica nuovamente in "FLEE!", "66676".
  5. Bob ha ricevuto il messaggio "FLEE!"
  6. Bob cambia la parte del suo pad usata per cifrare "FLEE!" utilizzando "66676"
  7. Sia il pad di Alice che quello di Bob ora sono 6667667503982349
  8. Bob crittografa una risposta "THANKYOU", "73613451" utilizzando una parte del pad 6667667503982349
  9. Bob cambia il pad in modo che legga 7361346103982349
  10. Alice riceve e decodifica nuovamente in "GRAZIE", "73613451"
  11. Alice cambia il pad in modo che legga 7361346103982349

In tutti i casi una parte del pad viene usata solo una volta per crittografare un messaggio di testo in chiaro e quindi ottiene una parte di ricambio. Parti del pad vengono utilizzate più volte per crittografare i dati casuali, ma ciò non importa perché non rivela nulla sul pad. Se Eve intercetta un messaggio, la parte del testo in chiaro è stata crittografata su una parte del pad che è stata utilizzata solo una volta. Dovrebbe craccare la crittografia utilizzata nella parte di aggiornamento casuale del messaggio per ottenere qualsiasi informazione. Il problema di Eva è che non ci sono indizi perché è un pad casuale che crittografa dati casuali. Ogni volta che Eve intercetta un messaggio, è stato crittografato utilizzando un pad modificato.

Elenco dell'elemento

    
posta DSK 12.12.2016 - 17:48
fonte

1 risposta

2

Qualsiasi riutilizzo dell'OTP è fatale. Quello che stai proponendo è effettivamente un "doppio pad" che di sicuro non ha le stesse proprietà di sicurezza.

Tentativo di modellare il codice in una particolare impostazione:

Given plaintexts Pi of k bits and an initial key K0 of 2k bits:
K0 = K0aK0b

The corresponding ciphertext is the concatenation of the encryption of the Pi and the "update OTP" K1a:
C0 = C0aC0b
C0a = K0aP0
C0b = K0bK1a

The key is updated to:
K1 = K1aK0b

In the next round we have:
C1 = C1aC1b
C1a = K1aP1
C1b = K0bK2a

Note the re-use of K0b. The key is updated to:
K2 = K2aK0b

In the next round we have:
C2 = C2aC2b
C2a = K2aP2
C2b = K0bK3a

Now we can recover:

(C0bC1b) ⊕ C1a
= (K0bK1a) ⊕ (K0bK2a) ⊕ (K1a ⊕ P1)
= (K1aK2a) ⊕ (K1a ⊕ P1)
= K2a ⊕ P1

Il tuo cifrario fallisce già un attacco di testo in chiaro scelto. Come puoi vedere sopra, puoi recuperare la chiave di decodifica K 2a se conosci P 1 . Questo ti permette di recuperare P 2 .

Questo mostra perché il tuo codice è rotto.

    
risposta data 12.12.2016 - 22:07
fonte

Leggi altre domande sui tag