Nivel de seguridad


En criptografía, el nivel de seguridad es una medida de la fuerza que alcanza una primitiva criptográfica , como una función de cifrado o hash . El nivel de seguridad generalmente se expresa en " bits ", donde la seguridad de n bits significa que el atacante tendría que realizar 2 n operaciones para romperla, [1] pero se han propuesto otros métodos que modelan más de cerca los costos para un atacante. [2] 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 hay un vínculo 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 RSA de 3072 bits .

En este contexto, la declaración de seguridad o el nivel de seguridad de destino es el nivel de seguridad para el que 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 . [3] [4]

Los algoritmos simétricos suelen tener un reclamo de seguridad estrictamente definido. Para cifrados simétricos , normalmente es igual al tamaño de la clave del cifrado, equivalente a la complejidad de un ataque de fuerza bruta . [4] [5] Las funciones hash criptográficas con un tamaño de salida de n bits suelen tener 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 de cumpleaños general siempre puede encontrar colisiones en 2 n/2 pasos. [6] Por ejemplo, SHA-256 ofrece resistencia a la colisión de 128 bits y resistencia a la preimagen de 256 bits.

Sin embargo, hay algunas excepciones a esto. Phelix y Helix son cifrados de 256 bits que ofrecen un nivel de seguridad de 128 bits. [4] [7] 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 tanto para la colisión como para la resistencia a la preimagen. [8]

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 revertir por parte del atacante. Sin embargo, los ataques contra los sistemas de clave pública actuales siempre son más rápidos que la búsqueda por fuerza bruta del espacio de la clave. Su nivel de seguridad no se establece en el momento del diseño, sino que representa una suposición de dureza computacional , que se ajusta para que coincida con el mejor ataque conocido actualmente. [5]

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. Para el criptosistema RSA con un nivel de seguridad de 128 bits, NIST y ENISA recomiendan utilizar claves de 3072 bits [9] [10] e IETF de 3253 bits. [11] [12] La criptografía de curva elíptica requiere claves más cortas, por lo que las recomendaciones son 256-383 (NIST), 256 (ENISA) y 242 bits (IETF).