¿Proporcionar una contraseña a PBKDF2 en binario sin formato frente a base64?

2

Antecedentes: estoy trabajando con la biblioteca crypto de Node. Estoy usando PBKDF2 para convertir una "frase de contraseña" binaria de longitud variable en claves de longitud constante para un cifrado AES más adelante.

La fuente subyacente de esta frase de contraseña, por razones fuera de mi control, está codificada con base64. Por costumbre, decodifico la frase de contraseña de nuevo a binario antes de suministrarla a PBKDF2. Pero eso me hizo pensar ... La codificación Base64 hace que la frase de contraseña sea más larga, pero con un conjunto de caracteres más limitado. En aplicaciones prácticas, ¿esto haría que los datos sean mejores o peores como entrada para PBDKF2?

Dicho de otra manera, si se le da una opción entre:

key = pbkdf2(binaryPassphrase)

... versus ...

key = pbkdf2(base64encode(binaryPassphrase))

... ¿hay alguna diferencia en la seguridad ofrecida?

    
pregunta smitelli 07.01.2014 - 18:04
fuente

1 respuesta

2

Entre

  

key = pbkdf2 (binaryPassphrase)

y

  

key = pbkdf2 (base64encode (binaryPassphrase))

no hay diferencia en la cantidad de seguridad proporcionada. La frase de contraseña codificada en base64 es una entrada más larga, pero se basa en exactamente la misma cantidad de entropía y, por lo tanto, no ofrece seguridad adicional.

La función pbkdf2 lleva prácticamente el mismo tiempo para ejecutarse con cualquiera de las entradas (a menos que binaryPassphrase sea de varios kilobytes o más). La única diferencia significativa será que las claves resultantes derivadas serán diferentes.

    
respondido por el user4982 07.01.2014 - 18:35
fuente

Lea otras preguntas en las etiquetas