Idoneidad de los algoritmos de cifrado para diferentes tipos de contenido

2

¿Hay algoritmos de encriptación que sean "más adecuados para" (es decir, brindan mayor seguridad cuando) encriptan ciertos tipos de contenido?

Por ejemplo, si tengo un archivo PDF que necesito cifrar, es el hecho de que el contenido que se va a cifrar está en formato PDF (a diferencia del texto ASCII simple o MSWord o .xlsx) un factor para decidir qué cifrado algoritmo a utilizar?

    
pregunta Ajoy Bhatia 29.11.2017 - 01:15
fuente

2 respuestas

1

El formato de archivo específico es irrelevante en el cifrado. Lo que importa son factores como el medio en el que se encuentra el archivo, el mecanismo de acceso y, en cierta medida, el tamaño del archivo (que se aplica más a la diferencia entre una imagen de disco duro y un archivo de documento pequeño, no tanto a la diferencia entre un PDF y un DOCX). Si el archivo es extremadamente grande, los cifrados con un tamaño de bloque pequeño (como Blowfish, IDEA y CAST5) comienzan a ser menos seguros. Encriptar más de 4 GiB de datos con estos cifrados puede ser peligroso.

Si bien el cifrado en sí puede ser bastante sólido, el modo de operación puede hacer o deshacer un sistema criptográfico, y estos modos son muy dependientes del contexto:

  • ECB - Esencialmente no hay modo. Cada bloque está encriptado con la misma clave. A menos que esté cifrando un solo bloque, este modo es peligroso y puede dar lugar al pingüino del BCE .
  • CBC : brinda poca protección de maleabilidad, pero generalmente es buena para una confidencialidad simple. Hay muchos ataques contra CBC, pero solo se aplican en contextos específicos.
  • CTR : es muy sensible a los ataques de reutilización y maleabilidad, pero es rápido y es bueno para la paralelización. Este modo convierte un cifrado de bloque en un cifrado de flujo. CTR realmente utiliza cifrado tanto para el cifrado como para el descifrado, por lo que se cancelan dos cifrados CTR con la misma clave.
  • GCM : similar a CTR, pero autenticado. Esto proporciona integridad además de la confidencialidad a expensas de un espacio adicional para cada mensaje. Esto se utiliza en redes.
  • XTS : un "modo de bloque estrecho que se puede modificar" que se usa comúnmente para la encriptación de dispositivos de bloque. Requiere el doble del tamaño de la llave para funcionar, pero proporciona cierta resistencia a la maleabilidad mínima.

Estos son los más comunes. Algunos menos comunes son XEX, LRW, PCBC, CFB, OCB, OFB, CTS, EME, EME2 y muchos más. Tienen un propósito mucho más limitado (PCBC, por ejemplo, es como CBC, pero están diseñados de tal manera que un solo error en el cifrado o descifrado se propaga y maneja toda la producción futura), o están patentados o son difíciles de usar en un contexto amplio legalmente (como como EME2 y OCB).

Para responder a tu pregunta actual, usaría CBC para eso. Si su modelo de amenaza no implica que alguien intencionalmente juegue con los archivos cifrados, y solo evitando que alguien vea el contenido, CBC está bien. Es el modo más común para el cifrado de archivos.

No implementes crypto por tu cuenta

Los matices específicos son muy difíciles de entender, y puedes terminar fácilmente con un esquema muy roto a pesar de usar primitivos bien establecidos. Debe usar una biblioteca o programa existente para cifrar sus archivos, como GnuPG. Incluso utilizar la función de cifrado de 7zip sería suficiente.

    
respondido por el forest 29.11.2017 - 04:38
fuente
1

No . Todos los algoritmos modernos (por ejemplo, AES) proporcionarán indistinguabilidad de texto cifrado , por lo que, si todo se hace correctamente, no importa el tipo de contenido que está almacenando.

No es específico de ningún algoritmo de cifrado, como sucedería con todos ellos, pero está relacionado con la pregunta:

  • Sabiendo que es un PDF (o MSWord, o Excel) permitiría algún texto plano conocido para alguien atacando el cifrado (por ejemplo, si tuviera que aplicar una fuerza bruta al archivo cifrado, podría verificar si el contenido descifrado con el cifrado la clave del candidato comienza como lo hacen los archivos PDF).

  • La simple aplicación de un "algoritmo de cifrado" puede no ocultar la longitud de sus datos. Es posible que desee agregar algo de relleno al archivo (o al menos usar un modo de cifrado de bloque).

  • Debes usar iv en los archivos.

  • Recuerda que debes verificar el contenido, no solo verificar si se descifra a "algo". En ciertos tipos de archivos, sería posible un ataque ciego donde el archivo cifrado podría modificarse para obtener una salida diferente.

respondido por el Ángel 29.11.2017 - 02:11
fuente

Lea otras preguntas en las etiquetas