En criptografía, el nivel de seguridad es una medida de la solidez que alcanza una primitiva criptográfica , como un cifrado o una función hash . El nivel de seguridad generalmente se expresa como una cantidad de " bits de seguridad" (también fuerza de seguridad ), [1] donde la seguridad de n bits significa que el atacante tendría que realizar 2 n operaciones para romperla, [2] pero otros métodos tienen Se han propuesto modelos que modelan más de cerca los costos para un atacante. [3] Esto permite una comparación conveniente entre algoritmos y es útil cuando se combinan múltiples primitivas en un criptosistema híbrido , por lo que no existe un eslabón más débil claro. Por ejemplo, AES -128 ( tamaño de clave de 128 bits) está diseñado para ofrecer un nivel de seguridad de 128 bits, que se considera aproximadamente equivalente a un RSA que utiliza una clave de 3072 bits.
En este contexto, el reclamo de seguridad o el nivel de seguridad objetivo es el nivel de seguridad para el cual se diseñó inicialmente una primitiva, aunque a veces también se usa "nivel de seguridad" en esos contextos. Cuando se encuentran ataques que tienen un costo menor que el reclamo de seguridad, la primitiva se considera rota . [4] [5]
Los algoritmos simétricos suelen tener un reclamo de seguridad estrictamente definido. Para los cifrados simétricos , normalmente es igual al tamaño de la clave del cifrado, equivalente a la complejidad de un ataque de fuerza bruta . [5] [6] Las funciones hash criptográficas con un tamaño de salida de n bits generalmente tienen un nivel de seguridad de resistencia a colisiones n /2 y un nivel de resistencia de preimagen n . Esto se debe a que el ataque general de cumpleaños siempre puede encontrar colisiones en 2 n/2 pasos. [7] Por ejemplo, SHA-256 ofrece resistencia a colisiones de 128 bits y resistencia a preimagen de 256 bits.
Sin embargo, existen algunas excepciones a esto. Phelix y Helix son cifrados de 256 bits que ofrecen un nivel de seguridad de 128 bits. [5] [8] Las variantes SHAKE de SHA-3 también son diferentes: para un tamaño de salida de 256 bits, SHAKE-128 proporciona un nivel de seguridad de 128 bits para resistencia a colisiones y preimagen. [9]
El diseño de la mayoría de los algoritmos asimétricos (es decir, la criptografía de clave pública ) se basa en problemas matemáticos claros que son eficientes para calcular en una dirección, pero ineficientes para que el atacante los invierta. Sin embargo, los ataques contra los sistemas actuales de clave pública son siempre más rápidos que la búsqueda por fuerza bruta del espacio de claves. Su nivel de seguridad no se establece en el momento del diseño, pero representa una suposición de dureza computacional , que se ajusta para que coincida con el ataque más conocido actualmente. [6]
Se han publicado varias recomendaciones que estiman el nivel de seguridad de los algoritmos asimétricos, que difieren ligeramente debido a las diferentes metodologías.
La siguiente tabla son ejemplos de niveles de seguridad típicos para tipos de algoritmos que se encuentran en s5.6.1.1 de la Recomendación US NIST SP-800-57 para la administración de claves. [16] : Tabla 2
Según la recomendación del NIST, una clave de un nivel de seguridad determinado solo debe transportarse bajo protección utilizando un algoritmo de nivel de seguridad equivalente o superior. [14]
El nivel de seguridad se da por el costo de romper un objetivo, no por el costo amortizado por un grupo de objetivos. Se necesitan 2 128 operaciones para encontrar una clave AES-128, pero se requiere el mismo número de operaciones amortizadas para cualquier número m de claves. Por otro lado, descifrar m claves ECC utilizando el método rho requiere sqrt( m ) multiplicado por el costo base. [15] [17]
Una primitiva criptográfica se considera rota cuando se descubre que un ataque tiene un nivel de seguridad inferior al anunciado. Sin embargo, no todos estos ataques son prácticos: la mayoría de los ataques demostrados actualmente requieren menos de 240 operaciones , lo que se traduce en unas pocas horas en una PC promedio. El ataque demostrado más costoso a las funciones hash es el ataque 2 61.2 a SHA-1, que duró 2 meses en 900 GPU GTX 970 y costó 75.000 dólares (aunque los investigadores estiman que solo se necesitaron 11.000 dólares para encontrar una colisión). [18]
Aumasson traza la línea entre ataques prácticos y no prácticos en 2.80 operaciones . Propone una nueva terminología: [19]
{{cite journal}}
: Citar diario requiere |journal=
( ayuda ){{cite journal}}
: Citar diario requiere |journal=
( ayuda ){{cite book}}
: Mantenimiento CS1: otros ( enlace ){{cite journal}}
: Citar diario requiere |journal=
( ayuda ){{cite journal}}
: Citar diario requiere |journal=
( ayuda ){{cite journal}}
: Citar diario requiere |journal=
( ayuda )