Dimensioni del vettore di inizializzazione e testo in chiaro in modalità CBC

1

Se ho una sequenza di 16 numeri (7,7,7, .... 7), e ho bisogno di crittografarlo usando un semplice codice di sostituzione a 4 bit, devo "tagliare" il testo in chiaro blocchi che hanno le stesse dimensioni della IV?

Nella mia situazione la IV viene specificata come deve essere esattamente 4 bit. Diciamo che è 1001 .

Quindi il mio testo in chiaro è 001101110111,.....,0011 .

Quando inizio, dico 'IV' XOR '4bit plaintext' quindi == > 1001 XOR 0011 = 1010 che corrisponde a 10 in decimale. Se cerco il 10 nel mio cifrario di sostituzione corrisponde a 9 , quindi 1001 è il ciphertext corrispondente C1 .

Quindi continuo XORando il successivo testo in chiaro a 4 bit (lo stesso di prima) con C1 e così via.

L'unica cosa che non mi è chiara è se sto facendo la cosa giusta dividendo il testo in chiaro in 4 bit perché anche l'IV deve essere a 4 bit?

    
posta DSF 15.06.2015 - 10:40
fonte

1 risposta

2

In modalità CBC, l'IV è SEMPRE della stessa dimensione della dimensione del blocco utilizzata dall'algoritmo di crittografia.

Quindi, se utilizzi AES, il tuo IV dovrà essere di esattamente 128 bit, indipendentemente dalla dimensione dei dati che devi crittografare.

Quindi, il modo corretto per crittografare i dati in modalità CBC è:

  • Dividi i tuoi dati in blocchi di dimensioni appropriate (128 bit per AES) bit
  • Se necessario, Aggiungi padding l'ultimo blocco per estenderlo al limite del blocco.
  • Genera un IV delle stesse dimensioni della dimensione del blocco utilizzata dall'algoritmo (128 bit per AES)
  • XOR il tuo IV con il primo blocco e applica il tuo algoritmo di crittografia al risultato.
  • Prendi il primo blocco di testo cifrato e XOR con il secondo blocco di testo normale.
  • Ripeti.
risposta data 15.06.2015 - 12:37
fonte

Leggi altre domande sui tag