Sto lavorando a un progetto per creare software per la crittografia dei file con AES in Java, il suo funzionamento è abbastanza semplice, ma mi chiedevo se fosse davvero sicuro.
Il programma richiede all'utente una passphrase per crittografare il file selezionato, dopo aver inserito la passphrase, è protetto con una funzione di derivazione chiave PBKDF2 con Hmac-SHA256, sale è un generatore di numeri pseudocasuali su 8-byte SHA1 PRNG
, le iterazioni sono 100.000 e la lunghezza della chiave è 256 bit.
La chiave sicura generata viene utilizzata per crittografare il file.
Il vettore di inizializzazione per AES è un generatore di numeri pseudocasuali di 16 byte SHA1 PRNG
, il file è ora crittografato.
I primi 16 byte del file crittografato vengono salvati nella IV e per gli ultimi 8 byte per memorizzare il sale di PBKDF2.
Salt e IV non sono crittografati insieme ai file, ma vengono aggiunti in seguito. Queste operazioni sono sicure?