La mia applicazione crittografa un file con AES e i dati vengono letti, crittografati e scritti con un buffer. La sua dimensione è definita con un valore BUF_SIZE, che è costante.
Cercherò di spiegare la mia domanda con un esempio.
E.g la dimensione del file è 1,73 GB e il buffer è 16 KB. L'applicazione calcola (fsize% BUF_SIZE) e scopre che resteranno 14K di dati.
Per ora, fa come segue:
1) Legge 14 KB di dati nel buffer
2) Riempie altri 2 KB con dati casuali
3) Crittografa e scrive l'intero buffer.
Il problema è che dopo tale crittografia persino un file di testo in chiaro da 310 byte diventa un mostro da 16 KB!
L'idea è di cambiare l'algoritmo per crittografare SOLO questo 14 KB e scriverli nel file risultante.
Quando stavo scrivendo quell'algoritmo, ho considerato il secondo modo inaccettabile; ora non riesco a ricordare il motivo.
È sicuro crittografare i file in questo modo?
Sono principalmente interessato a sapere se farlo in un modo o nell'altro come descritto sopra rende più semplici gli attacchi di recupero chiave completi. Sono uno studente che fa questo nel mio tempo libero, non un professionista.
EDIT 1 : la mia applicazione crittografa l'intestazione con AES / GCM-128 e gli altri dati - con la modalità AES / CFB-256. Quindi, per quanto ho capito, non c'è questione per la CFB quanti dati sono rimasti, giusto?
EDIT 2 : aggiunto questo approccio alla mia applicazione. Grazie a tutti coloro che hanno aiutato! (^ _ ^)