La razón para el fortalecimiento de la clave es que las contraseñas no tienen tanta entropía como se espera para la clave. El tiempo que toma romper una tecla es proporcional al número de teclas posibles. Los algoritmos de fortalecimiento utilizados en las contraseñas compensan la escasa entropía aumentando la constante de proporcionalidad. Pero la brecha es tan grande que el fortalecimiento no puede compensar. Una contraseña con 64 bits de entropía es muy difícil de memorizar: son 10 caracteres ASCII imprimibles al azar (si empiezas a imponer características memorables, la entropía se va mucho hacia abajo) o 14 al azar letras minúsculas, pero para alcanzar 128 bits de "dificultad de craqueo", que corresponde al tamaño de clave más común para el cifrado simétrico, necesitaría un silbido 2 ^ 64, aproximadamente un siglo de tiempo de CPU.
En su escenario, una contraseña memorable es el método incorrecto. Sería una contraseña que raramente usa, pero que necesita ser muy fuerte y, por lo tanto, difícil de memorizar.
Use una clave aleatoria, en lugar de una clave derivada de la contraseña, e imprímala . Guarde la impresión en un lugar seguro.
Si el software que usa requiere una contraseña, genere una contraseña aleatoria con tanta entropía como la clave. 20 caracteres imprimibles en ASCII, o 28 letras minúsculas al azar, o algo equivalente, te dan 128 bits de entropía. Si la tecnología avanza hasta el punto de que esto se puede romper, la clave que está cifrando probablemente ya no estará segura de todos modos. Ya que su contraseña tiene suficiente entropía para una clave, no necesita fortalecerla. Una vez más, imprímelo.
Una vez que recorras esa ruta, también puedes imprimir la clave original y olvidarte de cargarla. Pero agregar un nivel de direccionamiento indirecto tiene ventajas. Esto significa que un adversario debe obtener tanto una copia de la clave cifrada como una copia de la clave de cifrado de la clave. Con esta separación, si una de las partes está comprometida, es posible que tenga tiempo para actuar antes de que la segunda también esté comprometida. También puede almacenar la clave de cifrado de clave en varias partes separadas. Hay algoritmos de intercambio secreto que permiten dividir una clave en n piezas para que pueda recuperarse de cualquier pieza de k , pero no menos. Si desea mantener las cosas simples, puede generar múltiples claves de cifrado de claves, cargar la clave maestra cifrada con cada uno de estos, y dividir las claves de cifrado de claves y enviar las piezas para que se necesite más de un solo lugar para recuperar todo. .