Il motivo del rafforzamento delle chiavi è che le password non hanno un'entropia pari a quella prevista per la chiave. Il tempo necessario per interrompere un tasto è proporzionale al numero di possibili chiavi. Gli algoritmi di rafforzamento utilizzati sulle password compensano la scarsa entropia aumentando la costante di proporzionalità. Ma il divario è così grande che il rafforzamento non può compensare. Una password con 64 bit di entropia è molto difficile da memorizzare - si tratta di 10 caratteri di caratteri ASCII casuali casuali (se inizi a imporre caratteristiche memorabili, l'entropia va modo in basso) o 14 casuali lettere minuscole, ma per raggiungere 128 bit di "cracking difficoltà", che corrisponde alla dimensione della chiave più comune per la crittografia simmetrica, è necessario un whooping 2 ^ 64 - circa un secolo di tempo della CPU.
Nel tuo scenario, una password memorabile è il metodo sbagliato. Sarebbe una password che usi raramente, ma deve essere molto strong e quindi difficile da memorizzare.
Utilizza una chiave casuale, anziché una chiave derivata da password e stampala . Conservare la stampa in un luogo sicuro.
Se il software che usi richiede una password, genera una password casuale con la stessa entropia della chiave. 20 caratteri stampabili ASCII, o 28 lettere minuscole casuali, o qualcosa di equivalente, ti dà 128 bit di entropia. Se la tecnologia progredisce al punto che ciò è fragile, la chiave che stai crittografando probabilmente non sarà più sicura in ogni caso. Poiché la tua password ha abbastanza entropia per una chiave, non è necessario rafforzarla. Ancora una volta, stampalo.
Una volta che hai percorso questa strada, potresti anche stampare la chiave originale e dimenticarti di caricarla. Ma aggiungere un livello di riferimento indiretto ha dei vantaggi. Significa che un avversario deve ottenere sia una copia della chiave crittografata sia una copia della chiave di crittografia della chiave. Con questa separazione, se una delle parti viene compromessa, si può avere il tempo di agire prima che anche la seconda venga compromessa. È inoltre possibile memorizzare la chiave di crittografia della chiave in più parti separate. Esistono algoritmi condivisione segreta che consentono di suddividere una chiave in parti n in modo che possa essere recuperata da qualsiasi pezzo k , ma non di meno. Se vuoi mantenere le cose semplici, puoi generare più chiavi di crittografia delle chiavi, caricare la chiave master crittografata con ognuna di queste e dividere le chiavi di crittografia della chiave e inviare i pezzi in modo che ci voglia più di un singolo punto per recuperare l'intera cosa .