llave de blowfish openssl limitada a 256 bits?

3

Recibo el siguiente error si doy una clave que es mayor que 64 caracteres hexadecimales (64 * 4 = 256 bits).

Segúneste documento oficial , blowfish puede admitir claves de 32 a 448 bits.

  

Longitud de clave variable: 32 bits a 448 bits

¿Es posible eludir esta limitación? ¿Qué pasa?

El tamaño real de la clave es lo suficientemente grande, pero me gustaría tener la mayor seguridad posible.

Gracias,

    
pregunta Jonas 13.12.2012 - 17:08
fuente

4 respuestas

4

Para programa de línea de comandos de OpenSSL ( openssl enc ) , el algoritmo elegido también selecciona la clave tamaño (por lo que tienen opciones separadas para aes-128, aes-192 y aes-256). Simplemente no tienen esta opción para Blowfish.

  

El programa enc solo admite un número fijo de algoritmos con ciertos parámetros. Entonces, si, por ejemplo, desea utilizar RC2 con una clave de 76 bits o RC4 con una clave de 84 bits, no puede usar este programa.

openssl enc -bf siempre usa una clave de 128 bits:

  

Los algoritmos Blowfish y RC5 utilizan una clave de 128 bits.

La documentación para las funciones de Blowfish dice que puede usar una clave de longitud variable, por lo que presumiblemente si usted escribió su propio programa compilado contra OpenSSL, podría usar el tamaño de clave que desee:

  

BF_set_key() configura la clave BF_KEY utilizando la clave len bytes en datos .

Si puede elegir su algoritmo y desea una clave más larga por cualquier motivo, OpenSSL realizará AES con claves de hasta 256 bits: ( openssl enc -aes-256 ).

Teniendo en cuenta lo anterior, esperarías que OpenSSL se quejara cuando superas los 32 caracteres (32 * 4 = 128), pero parece ignorar silenciosamente cualquier información después de los primeros 32 caracteres:

  

blong @ ubuntu: ~ $ openssl enc -bf -iv 0 -P -K 0000000000000000000000000000012345
  sal = 0700000000000000
  clave = 00000000000000000000000000000001
  iv = 0000000000000000

He enviado un informe de error, porque parece que están intentando detectar este caso, pero el error es para > 128 caracteres en lugar de > 128 bits .

    
respondido por el Brendan Long 13.12.2012 - 21:30
fuente
1

Por encima de 128 bits es innecesario. Con 128 bits hay 2 ^ 128 claves posibles, divididas por 100 mil millones de pruebas por segundo (lo que requeriría una granja de GPU formidable) y tomaría a alguien 7.8 * 10 ^ 9 veces la edad del universo para descifrarlo (aproximadamente 10 ^ 20 años).

Pero con toda seriedad, me pregunto por qué hay un límite en el tamaño de la clave.

    
respondido por el user42257 18.03.2014 - 21:59
fuente
0

No hay mejor seguridad que "no se puede romper ahora, tampoco se puede romper en 40 años". Las claves de 128 bits ya ofrecen este nivel de seguridad. Usted no obtendrá "más seguridad" al usar claves más grandes. Solo obtendrás llaves más grandes.

(Las claves de más de 128 bits existen principalmente para silenciar estructuras administrativas inflexibles que se sienten inseguras en su virilidad colectiva.)

    
respondido por el Thomas Pornin 28.12.2012 - 16:52
fuente
0

Comprendo los cálculos matemáticos detrás de la longitud de los bits clave, pero la investigación reciente me está haciendo comenzar a buscar claves más largas. Los clusters que utilizan GPU para acelerar los cálculos ya están alcanzando cientos de miles de millones de claves por segundo. Las claves de 128 bits aún son suficientes hoy (probablemente) pero su tiempo se está acortando.

    
respondido por el user18163 28.12.2012 - 21:54
fuente

Lea otras preguntas en las etiquetas