¿La "armadura" de una cadena encriptada siempre produce la misma salida de longitud si el texto simple tiene la misma longitud?

3

Planeo encriptar numerosas cadenas de texto plano que tienen la misma longitud inicial. Planeo encriptar con la clave AES-128 bit usando GPG. Planeo "armar" la salida en caracteres alfanuméricos. Es probable que el texto sin formato sea menor o igual a 128 bits (será un número fijo una vez que esté configurado)

Mi caso de uso es muy sensible a la cantidad de caracteres que se crean, y tener los datos cifrados siempre tienen la misma longitud (o saber el límite superior) es necesario.

¿Se espera que todas mis salidas tengan la misma longitud? ¿Hay alguna forma de saber la longitud máxima, o forzar la salida para que siempre tenga la misma longitud?

    
pregunta nanotek 08.11.2017 - 23:22
fuente

1 respuesta

5

La armadura ASCII produce la misma longitud de salida para la misma longitud de entrada, donde la entrada para la armadura ASCII es el texto cifrado. Pero, el cifrado que realiza antes de la armadura no produce necesariamente la misma longitud de salida para la misma longitud de entrada, ya que el cifrado simétrico en GPG también implica compresión.

Por lo tanto, la longitud de los datos cifrados y, por lo tanto, la longitud de los datos blindados depende no solo de la longitud de la entrada, sino también de qué tan buena sea la entrada comprimida. Puedes desactivar la compresión con --compression-level 0 .

Pero incluso si ha desactivado la compresión, la longitud de salida puede ser diferente, ya que el nombre del archivo de entrada es diferente. Por lo tanto, debe leer desde la entrada estándar y escribir en la salida estándar (es decir, usar gpg como canalización) en lugar de especificar un nombre de archivo como argumento para el cifrado.

    
respondido por el Steffen Ullrich 09.11.2017 - 05:54
fuente

Lea otras preguntas en las etiquetas