¿Puede alguien simplemente explicar los significados y la diferencia entre la clave simétrica y el tamaño del bloque?
¿Por qué el tamaño de 64 bloques ya no es seguro y lo aumentan a 128 (AES, ..., Serpiente)? ¿Y qué pasa con el tamaño de la clave?
Un algoritmo de clave simétrica es uno que usa la misma clave tanto para el cifrado como para el descifrado. Ejemplos de algoritmos de clave simétrica son AES, 3DES, Blowfish.
Por otra parte, un algoritmo de clave asimétrica , utiliza 2 claves, una para el cifrado y otra para el descifrado. Un algoritmo de clave asimétrica está diseñado de tal manera que no es factible derivar la clave privada de la clave pública. Un algoritmo de clave asimétrica común es RSA.
El término tamaño de bloque se refiere al cifrado de bloque. Básicamente, hay 2 tipos de cifrados.
Cifrado de transmisión : el algoritmo cifra / descifra el mensaje 1 bit a la vez.
Cifrado de bloque : el algoritmo cifra / descifra el mensaje bloque por bloque, un bloque que se refiere a un grupo de bits. Los cifrados de bloque comunes incluyen AES, que funciona en bloques de 128 bits, y Blowfish, que funciona en bloques de 64 bits.
Toda esta información se puede encontrar en sus respectivas entradas de Wikipedia:
Haces 2 preguntas diferentes pero relacionadas.
En un cifrado de bloque , los datos de texto sin formato de un tamaño fijo (el tamaño del bloque) se cifran exactamente en el texto cifrado el mismo tamaño. Sin embargo, el número total de posibles bloques de texto cifrado es solo 2 tamaño de bloque , y cuando usa solo la raíz cuadrada de ese número de bloques, tiene un 50% de posibilidades de tener un bloque duplicado, lo que genera información . La raíz cuadrada de 2 64 es 2 32 y 2 32 bloques de 2 3 bytes = 2 35 Bytes = 32 GiB. Por lo tanto, en una unidad 1 TiB con cifrado de disco completo, esperaría encontrar aproximadamente 1,000 bloques de texto cifrado duplicados. (De la fórmula aquí : (2 40 / 2 3 ) 2 / 2 64 ) Para ser justos, un bloque de texto cifrado duplicado no es un desastre, ya que las técnicas se utilizan para garantizar que el mismo texto simple no se encripte. texto cifrado cada vez, por lo que lo contrario también es cierto: los textos cifrados duplicados no representan necesariamente los puntos de vista duplicados. El punto más importante es que la potencia de cómputo y el espacio de almacenamiento han superado los bloques de texto cifrado de 64 bits.
Por lo tanto, los cifrados de bloque actuales utilizan bloques de 128 bits, lo que hace que sea poco probable que se vea un duplicado en Exbibytes (millones de Tebibytes) de datos, lo que debería ser suficiente por un tiempo. La mayoría de las otras formas de ataque son igualmente mucho más difíciles debido a este aumento en el tamaño del bloque.
El tamaño de la clave es el tamaño del "secreto" utilizado para cifrar los datos. En un cifrado perfecto, tendría que probar cada clave posible para garantizar que podría descifrar algunos datos cifrados y, en promedio, tendría que probar la mitad de las claves posibles para tener éxito. Cuando se publicó el DES, 56 bits era un espacio clave lo suficientemente grande como para ser "lo suficientemente duro" para que la fuerza bruta no fuera razonable en la computación civil. Luego, en 1998, la Electronic Frontier Foundation creó una máquina para descifrar por fuerza bruta DES por $ 250,000. Ahora, con la explosión del poder de la computación civil, particularmente el aprovechamiento de la computación paralela enormemente poderosa en las GPU, incluso 128 bits solo se considera lo suficientemente seguro para el nivel más bajo de información clasificada, SECRET.
Además, ningún cifrado es perfecto, y muchos ataques pueden recuperar parte de la clave, por lo que las claves más largas brindan seguridad adicional, ya que incluso si se recupera parte de la clave, todavía hay un gran espacio clave que queda por ser una fuerza bruta atacado
AES, 3DES, Blowfish ... son cifrados de bloque . Un cifrado de bloque es una función que toma como entrada un bloque de datos de un tamaño determinado (un número fijo de bits) y una clave (que también es una secuencia de bits, no necesariamente del mismo tamaño que el bloque); y la salida es otro bloque del mismo tamaño que el bloque de entrada. Además, para una clave fija , la función debe ser una permutación: dos bloques de entrada distintos producirán dos bloques de salida distintos.
Por ejemplo, Triple-DES (también llamado 3DES) utiliza bloques de 64 bits y claves de 192 bits (sucede que la Triple -El algoritmo DES ignora totalmente 24 de los 192 bits de clave, por lo que a menudo decimos que Triple-DES usa una clave de 168 bits; sin embargo, la implementación compatible con el estándar espera una clave de 192 bits, también conocida como 24 bytes).
Los bloques de cifrado y descifrado están bien, pero generalmente queremos cifrar "mensajes", es decir, flujos largos de bytes de datos, con una longitud que no es necesariamente un múltiplo del tamaño del bloque, y que puede ser bastante alto (por ejemplo, puede cifrar varios gigabytes de datos). Para convertir un cifrado de bloque en un motor que pueda cifrar y descifrar mensajes, debe utilizar un modo de operación . Hacer buenos modos es un arte; hay muchos defectos sutiles que pueden invalidar la seguridad si el modo no ha sido bien diseñado. El tamaño del bloque parece ser un factor importante: en la mayoría de los modos, la seguridad disminuye, a veces bastante bruscamente, cuando la longitud del mensaje de entrada excede un umbral que depende del tamaño del bloque; es decir, si su cifrado de bloque usa bloques de bits n y cifra más que bloques de datos 2n/2 , entonces está en problemas . Para un cifrado de bloque que utiliza bloques de 64 bits, el umbral es de aproximadamente 32 gigabytes ( 2 32 bloques de 8 bytes). Cuando se diseñó el DES, 32 gigabytes eran de ciencia ficción; Hoy en día, 32 gigabytes son una unidad flash USB de 20 $.
Así que ahora preferimos cifrados de bloque con bloques de 128 bits. Fue un criterio de diseño para el AES .
Tamaño de clave es un problema ortogonal. Las claves para los cifrados de bloque son secuencias de bits de una longitud determinada, que dependen de la estructura interna del cifrado de bloque. No hay ningún requisito para que la longitud de la clave coincida con el tamaño del bloque de ninguna manera; sin embargo, los criptógrafos están enamorados de los binarios, por lo que la longitud de la clave generalmente será una potencia de 2 como 128 o 256, y así será el tamaño del bloque. AES se ha definido para utilizar claves de 128, 192 o 256 bits.
Lo que se necesita para la seguridad es que hay dos muchas claves posibles para que un atacante las pruebe todas (probar todas las claves posibles hasta que se encuentre una coincidencia se denomina búsqueda exhaustiva ). Cada bit de clave adicional duplica el número de tamaños de clave posibles. Las claves de 128 bits son lo suficientemente grande con un margen cómodo; los tamaños de clave más grandes están ahí para el cumplimiento burocrático, los administradores paranoicos y los desarrolladores que se sienten amenazados en su virilidad.
Con respecto a su pregunta, los 64 bits ahora son menos seguros que los 128 bits: con cada aumento de la potencia de procesamiento, se necesita menos tiempo para descifrarlos con fuerza bruta. Este artículo proporciona una buena referencia para el tiempo que toma la fuerza bruta de una clave:
El artículo asume que 2 procesadores Pentium 3.2 GHz realizarán el trabajo. La capacidad del procesador aumenta todo el tiempo y es probable que no estemos muy lejos de los 64 procesadores centrales e incluso de los 256 procesadores disponibles comercialmente.
Lea otras preguntas en las etiquetas encryption