Ho diversi campi in una tabella di database che vorrei crittografare, ma mi piacerebbe farlo in un modo che mi consenta di cambiare facilmente la chiave di crittografia ogni n mesi per motivi di sicurezza.
Il mio pensiero iniziale era quello di memorizzare il IV con la riga in modo da poterlo usare per decodificare ogni voce in cui la chiave per la crittografia sarebbe stata memorizzata altrove, nel codice o in un file di configurazione. Sembra che sarà un incubo ogni n mesi in cui ho bisogno di cambiare la chiave, dato che avrei dovuto fare un po 'di lavoro che avrebbe dovuto cambiare la IV per ogni riga e decodificare / criptare di nuovo tutte le colonne necessarie per la nuova chiave.
Sembra proprio che questo approccio potrebbe anche rallentare il sistema durante il tentativo di decodificare e crittografare di nuovo. Non ho visto molti articoli che descrivono approcci pratici a questo problema, solo menzionando che la chiave dovrebbe essere cambiata periodicamente. Qualsiasi aiuto sarebbe molto apprezzato, io sono nuovo al gioco di crittografia.
Inoltre, sto usando la crittografia AES-256. Sto usando SQL Server ma potrei migrare a MySQL in futuro. L'applicazione è codificata in C # .Net. Stiamo memorizzando informazioni personali (irst, secondo nome, cognome, ssn, ecc.) E dev'essere conforme HIPAA e vogliamo essere sicuri che se una chiave viene compromessa, possiamo cambiare rapidamente la chiave.