OpenSSL EVP aes_256_cbc Tamaño de vector de inicialización

9

Estoy viendo los ejemplos de bibliotecas criptográficas (programados en c) proporcionados para OpenSSL EVP en OpenSSL Wiki .

Su ejemplo para un vector de inicialización de 128 bits es el siguiente:

  

/ * A 128 bit IV * /
   unsigned char * iv = (unsigned char *) "01234567890123456";

0-9 - > 10 caracteres
0-6 - > 7 caracteres
Total: 17 caracteres

Cada caracter es de 1 byte (8 bits) en mi sistema. Por lo tanto, el IV es 8 * 17 = 136 bits. ¿Por qué dicen que el tamaño total de IV es de 128 bits? ¿Es este un error de off-by-1 o me falta algo?

Respuesta: Stephen tenía razón. Esto fue muy fácil de verificar, simplemente cambié el IV para que tuviera la longitud correcta y el texto cifrado permaneció igual. Por lo tanto, el byte extra no se utiliza en el algoritmo y alguien cuenta incorrectamente.

Predeterminado IV:

  

/ * A 128 bit IV * /
   unsigned char * iv = (unsigned char *) "01234567890123456";

Salida:

  

El texto cifrado es:
  0000 - e0 6f 63 a7 11 e8 b7 aa-9f 94 40 10 7d 46 80 a1 .oc ....... @.} F ..
  0010 - 17 99 43 80 ea 31 d2 a2-99 b9 53 02 d4 39 b9 70 ..C..1 .... S..9.p
  0020 - 2c 8e 65 a9 92 36 ec 92-07 04 91 5c f1 a9 8a 44, .e..6 ........ D

Nuevo IV:

  

/ * A 128 bit IV * /
     unsigned char * iv = (unsigned char *) "0123456789012345";

Ejecuta make de nuevo para construir el programa.

Salida:

  

El texto cifrado es:
  0000 - e0 6f 63 a7 11 e8 b7 aa-9f 94 40 10 7d 46 80 a1 .oc ....... @.} F ..
  0010 - 17 99 43 80 ea 31 d2 a2-99 b9 53 02 d4 39 b9 70 ..C..1 .... S..9.p
  0020 - 2c 8e 65 a9 92 36 ec 92-07 04 91 5c f1 a9 8a 44, .e..6 ........ D

    
pregunta peevishprogrammer 24.02.2017 - 01:20
fuente

0 respuestas

Lea otras preguntas en las etiquetas