Il formato di file specifico è irrilevante nella crittografia. Ciò che conta sono fattori come il supporto su cui si trova il file, il meccanismo di accesso e, in una certa misura, la dimensione del file (che si applica più alla differenza tra un'immagine del disco rigido e un piccolo file di documento, non tanto alla differenza tra un PDF e un DOCX). Se il file è estremamente grande, le crittografie con una piccola dimensione di blocco (come Blowfish, IDEA e CAST5) iniziano a diventare meno sicure. Crittografare più di 4 GB di dati con questi codici può essere pericoloso.
Anche se il cifrario stesso può essere abbastanza strong, la modalità operativa può creare o distruggere un criptosistema, e queste modalità sono molto dipendenti dal contesto:
-
ECB - In sostanza nessuna modalità. Ogni blocco è crittografato con la stessa chiave. A meno che non si stia criptando un singolo blocco, questa modalità è pericolosa e può dar luogo al pinguino della BCE .
-
CBC - Fornisce una scarsa protezione della malleabilità, ma di solito è utile per la riservatezza. Ci sono molti attacchi contro CBC, ma si applicano solo in contesti specifici.
-
CTR - È estremamente sensibile agli attacchi di riutilizzo e malleabilità nonce, ma è veloce ed è buono per la parallelizzazione. Questa modalità trasforma un cifrario a blocchi in un codice di flusso. CTR utilizza in realtà encryption sia per la crittografia che per la decrittografia, quindi vengono annullate due crittografie CTR con la stessa chiave.
-
GCM - Simile al CTR, ma autenticato. Ciò garantisce l'integrità oltre alla riservatezza a scapito di uno spazio aggiuntivo per ciascun messaggio. Questo è usato nelle reti.
-
XTS - Una "modalità di blocco stretto modificabile" che viene comunemente utilizzata per la crittografia dei dispositivi a blocchi. Richiede il doppio della dimensione della chiave per funzionare, ma fornisce una minima resistenza alla malleabilità.
Questi sono quelli comuni. Alcuni meno comuni sono XEX, LRW, PCBC, CFB, OCB, OFB, CTS, EME, EME2 e molto altro. Sono molto più limitati di proposito (PCBC ad esempio è come CBC, ma progettato in modo tale che un singolo errore di crittografia o decrittografia si propaga e manipola tutti i risultati futuri), o sono brevettati o altrimenti difficili da usare in un ampio contesto legalmente (tale come EME2 e OCB).
Per rispondere alla tua domanda, userei CBC per questo. Se il tuo modello di minaccia non coinvolge qualcuno che ha intenzionalmente problemi con i file crittografati e solo impedendo a qualcuno di visualizzarne il contenuto, CBC va bene. È la modalità più comune per la crittografia dei file.
Non implementare crypto da solo
Le sfumature specifiche sono molto difficili da ottenere, e si può facilmente finire con uno schema molto rotto nonostante l'uso di primitive ben consolidate. Dovresti usare una libreria o un programma esistente per crittografare i tuoi file, come GnuPG. Anche l'uso della funzione di crittografia di 7zip sarebbe sufficiente.