¿Por qué un archivo cifrado sería ~ 35% más grande que uno sin cifrar?

42

Según la documentación de ownCloud , si habilita el cifrado, los tamaños de archivo pueden ser ~ 35% más grande que sus formas sin cifrar.

Según mi conocimiento del cifrado, el tamaño de los archivos debería ser más o menos idéntico (tal vez algunos bits de 0 rellenos al final para convertirlo en un múltiplo del tamaño de la clave).

¿Eso es incorrecto? Si no, ¿por qué?

    
pregunta warren 10.03.2016 - 19:37
fuente

3 respuestas

79

Lo más probable es que el archivo cifrado esté codificado en base64, lo que representaría un aumento del 33,3% en el archivo (usted codifica tres bytes de datos en cuatro bytes de datos base64). Insertar una nueva línea cada 64 caracteres para facilitar la lectura (como lo hace la armadura ASCII en openssl, GPG, PGP) aumentará el tamaño en 65/64.

La combinación de estos dos efectos hace que el nuevo archivo sea (4/3) * (65/64) = 135.4% del tamaño del original o un aumento en el tamaño del archivo del 35.4%.

He pasado por el cálculo en esta respuesta aquí .

Sin embargo, es correcto que el cifrado no deba cambiar significativamente el tamaño del archivo. Es posible que agregue un par de bloques de datos si hay un encabezado, un vector / nonce de inicialización, algunos rellenos para que sea un bloque completo y / o MAC para verificar la integridad, aunque estos cambios serán insignificantes para archivos grandes (por ejemplo, agregar cuatro bloques a un archivo codificado AES que es de 1 MB haría que el archivo sea un 0,006% más grande).

Sin embargo, para no aumentar el tamaño de los archivos, debe estar bien almacenando y pasando los datos cifrados como un binario arbitrario. Los binarios arbitrarios a menudo se bloquean por correo electrónico para evitar la propagación de virus informáticos y, a menudo, son difíciles de abrir fuera de los hexeditores. Los archivos codificados en Base64 son más fáciles de transmitir y son un formato más portátil que los archivos binarios de un tipo de archivo desconocido.

    
respondido por el dr jimbob 10.03.2016 - 20:10
fuente
6

Si los archivos se están comprimiendo, es posible que vea esta discrepancia.

Los algoritmos de compresión funcionan mejor en datos no aleatorios. El cifrado tiene como objetivo generar aleatoriedad a partir de la información. La información es generalmente fácil de comprimir ya que tiene patrones. Sin embargo, si lo cifra, generalmente está borrando cualquier patrón (e información).

Ejemplo: 2.75GB de archivos de correo electrónico se pueden comprimir fácilmente hasta < .5GB. Sin embargo, si estos archivos de correo electrónico estuvieran cifrados, la versión comprimida estaría mucho más cerca de 2.75 GB.

    
respondido por el d1str0 10.03.2016 - 20:17
fuente
3

Normalmente, la marca% dice que el archivo podría estar codificado en Base64 después del cifrado, y también podría obtener cierta suma de comprobación en cada bloque para evitar la corrupción. Base64 codifica caracteres de 8 bits en caracteres de 6 bits, lo que significa que el archivo en cuestión es un 30% más grande debido a que se requieren más caracteres para renderizar todo el archivo. Agregue una suma de comprobación por bloque y estará hasta el 35%.

Normalmente, el cifrado en sí agrega cierta sobrecarga. Normalmente, la sobrecarga es encabezado + pie de página, eventual clave cifrada, parámetros, sales, suma de comprobación y también un tamaño de bloque menos 1, porque si los datos cifrados no son divisibles de manera uniforme con el tamaño de bloque, tendrá que rellenar con hasta bloque tamaño - 1.

Pero todos los datos de la oración anterior agregarían una cantidad estática de datos a cada archivo, independientemente de su tamaño, incluso si es de 1 o 100 GB.

La ampliación de datos expresada en% dice que es un proceso de recodificación como base64 o algo similar.

    
respondido por el sebastian nielsen 10.03.2016 - 19:54
fuente

Lea otras preguntas en las etiquetas