Il sito dedicato all'informatica ideato da Iasparra Francesco
La modalita' definisce come un cifrario debba applicare un algoritmo di cifratura.
Il cifrario a flusso cifra un byte alla volta, il cifrario a blocchi considera piu' byte alla volta (es 8).
Alcuni algoritmi consentono di specificare la grandezza del blocco.
Due tra le modalita' piu' comuni sono:
- ECB :[Elettronic Code Book] lo stesso blocco di dati in chiaro viene sempre cifrato con lo stesso blocco di dati cifrato.
- CBC :[Cipher Block Chaining] ogni blocco cifrato dipende dal relativo blocco in chiaro, ma anche da tutti i blocchi precedenti e da un vettore di inizializzazione IV.
Nei cifrari asimmetrici si usa quasi sempre ECB.
Padding
I cifrari a blocchi operano su blocchi di dati, ma i dati in chiaro difficilmente saranno esattamente un multiplo del blocco.
Prima di cifrare occorre dunque aggiungere il padding (spaziatura).
Il padding PKCS#5 (Public Key Criptography Standard) e' il piu' utilizzato per la Cifratura simmetrica e funziona in questo modo:
- ai byte che mancano per riempire un blocco viene assegnato un numero che equivale al numero di byte mancanti.
Gli standard per cifrare con RSA sono invece PKCS#1 e OAEP (Optimal Asymmetric Encryption Padding).
Esempio di codice java:
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");