Thomas Pornin (l'altro orso) ha pubblicato una spiegazione eccellente di come le modalità di crittografia influiscono su questo aspetto del tuo cifrario . La risposta breve è che se si utilizza l'uscita del blocco precedente per impostare lo stato per il blocco successivo, si corre il rischio di ripetersi.
In particolare, nella modalità OFB, si entra in un ciclo quando il modello si ripete. Questo potrebbe essere un ciclo molto stretto, o c'è la possibilità che il ciclo non si ripeta affatto fino a quando tutti i possibili valori sono esplorati. La dimensione del ciclo medio è a N / 2 bit. In particolare, con 2 N stati possibili totali, in media, eseguirai 2 N / 2 di questi stati prima di ripetere. Poiché il tuo contatore di stati ha tipicamente le stesse dimensioni del tuo blocco, quindi con una dimensione di blocco di 128 bit, in media scorrerai attraverso 2 blocchi 64 (non bit, non byte) prima di ripetere.
Al contrario, l'operazione "counter mode" ("CTR") utilizza un semplice contatore come stato di cifratura. Ciò significa che hai la certezza di scorrere l'intero spazio possibile prima di ripetere. Quindi se il tuo stato è di 128 bit, allora passerai in rassegna tutti e 2 gli stati 128 prima di ripetere.
Vale la pena sottolineare che uno spazio di quelle dimensioni è effettivamente infinito. Si tratta di circa 5.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000 di byte prima di dover cambiare le chiavi. E questo è con un blocco di 128 bit; con un blocco a 256 bit, raddoppi il numero di zeri.
La modalità CBC (probabilmente la più comune) utilizza l'output di un determinato blocco di codice per impostare lo stato per il blocco successivo, il che significa che lo stato è pesantemente influenzato dal contenuto del blocco precedente crittografato . Ciò significa che la presenza e la dimensione dei cicli (se presenti) sarebbero in parte determinati dal fatto che il testo in chiaro sia crittografato. Ciò rende la matematica un po 'meno esatta, ma non dovresti eliminare le prestazioni peggiori rispetto alla modalità OFB.
TL; DR: usa la modalità CTR e non preoccuparti di cambiare tasti.