Medida de la fortaleza criptográfica
En criptografía, el nivel de seguridad es una medida de la fuerza que logra una primitiva criptográfica , como un cifrado o una función hash . El nivel de seguridad generalmente se expresa como un número de " bits de seguridad" (también fuerza de seguridad ), [1] donde n -bit de seguridad significa que el atacante tendría que realizar 2 n operaciones para romperlo, [2] pero se han propuesto otros métodos 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 hay 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 nivel de seguridad de la reivindicación de seguridad o el nivel de seguridad objetivo es el nivel de seguridad que un primitivo fue diseñado inicialmente para alcanzar, aunque a veces también se utiliza "nivel de seguridad" en esos contextos. Cuando se encuentran ataques que tienen un costo menor que la reivindicación de seguridad, se considera que el primitivo está dañado . [4] [5]
En criptografía simétrica
Los algoritmos simétricos suelen tener una exigencia de seguridad estrictamente definida. 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 suelen tener un nivel de seguridad de resistencia a colisiones n /2 y un nivel de resistencia a preimagen n . Esto se debe a que el ataque de cumpleaños general siempre puede encontrar colisiones en 2 n/2 pasos. [7] Por ejemplo, SHA-256 ofrece una resistencia a colisiones de 128 bits y una resistencia a preimagen de 256 bits.
Sin embargo, existen algunas excepciones. 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 tanto para la resistencia a colisiones como a preimagen. [9]
En criptografía asimétrica
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 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, sino que representa un supuesto de dureza computacional , que se ajusta para que coincida con el mejor ataque 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.
- Para el criptosistema RSA con un nivel de seguridad de 128 bits, NIST y ENISA recomiendan utilizar claves de 3072 bits [10] [11] y claves IETF de 3253 bits. [12] [13] La conversión de la longitud de la clave a una estimación del nivel de seguridad se basa en la complejidad del GNFS . [14] : §7.5
- El intercambio de claves Diffie-Hellman y DSA son similares a RSA en términos de la conversión de la longitud de la clave a una estimación del nivel de seguridad. [14] : §7.5
- La criptografía de curva elíptica requiere claves más cortas, por lo que las recomendaciones para 128 bits son 256-383 (NIST), 256 (ENISA) y 242 bits (IETF). La conversión del tamaño de clave f al nivel de seguridad es aproximadamente f / 2: esto se debe a que el método para resolver el problema del logaritmo discreto de curva elíptica, el método rho, termina en 0,886 sqrt(2 f ) adiciones. [15]
Niveles típicos
La siguiente tabla muestra ejemplos de niveles de seguridad típicos para tipos de algoritmos como los que se encuentran en la sección 5.6.1.1 de la Recomendación para la gestión de claves SP-800-57 del NIST de EE. UU. [16] : Tabla 2
- ^ ab DEA (DES) quedó obsoleto en 2003 en el contexto de las recomendaciones del NIST.
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 proporciona para el costo de descifrar un objetivo, no para el costo amortizado de un grupo de objetivos. Se necesitan 2 128 operaciones para encontrar una clave AES-128, pero se requiere la misma cantidad de operaciones amortizadas para cualquier cantidad m de claves. Por otro lado, descifrar m claves ECC utilizando el método rho requiere sqrt( m ) veces el costo base. [15] [17]
Significado de "roto"
Se considera que una primitiva criptográfica está rota cuando se descubre que un ataque tiene un nivel de seguridad menor al anunciado. Sin embargo, no todos estos ataques son prácticos: la mayoría de los ataques demostrados actualmente requieren menos de 2 40 operaciones, lo que se traduce en unas pocas horas en una PC promedio. El ataque demostrado más costoso contra funciones hash es el ataque 2 61.2 contra SHA-1, que llevó 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 divisoria entre ataques prácticos e imprácticos en 280 operaciones y propone una nueva terminología: [19]
- Una primitiva rota tiene un ataque que requiere ≤ 2 80 operaciones. Es plausible que se lleve a cabo un ataque.
- Un primitivo herido puede realizar un ataque que requiere entre 280 y 2100 operaciones . En este momento no es posible realizar un ataque, pero es probable que las mejoras futuras lo hagan posible.
- Un primitivo atacado tiene un ataque que es más barato que la reclamación de seguridad, pero mucho más costoso que 2 100. Un ataque de este tipo está muy lejos de ser práctico.
- Finalmente, un primitivo analizado es aquel que no tiene ataques más baratos que su afirmación de seguridad.
Referencias
- ^ Publicación especial 800-57 del NIST, Parte 1, Revisión 5. Recomendación para la gestión de claves: Parte 1 – General, pág. 17.
- ^ Lenstra, Arjen K. "Longitudes de clave: contribución al Manual de seguridad de la información" (PDF) .
- ^ Bernstein, Daniel J. ; Lange, Tanja (4 de junio de 2012). "Grietas no uniformes en el hormigón: el poder de la precomputación libre" (PDF) . Avances en criptología - ASIACRYPT 2013 . Apuntes de clase en informática. págs. 321–340. doi :10.1007/978-3-642-42045-0_17. ISBN 978-3-642-42044-3.
- ^ Aumasson, Jean-Philippe (2011). Criptoanálisis vs. Realidad (PDF) . Black Hat Abu Dhabi.
- ^ abc Bernstein, Daniel J. (25 de abril de 2005). Entender la fuerza bruta (PDF) . Taller ECRYPT STVL sobre cifrado de clave simétrica.
- ^ ab Lenstra, Arjen K. (9 de diciembre de 2001). "Seguridad increíble: igualación de la seguridad AES mediante sistemas de clave pública" (PDF) . Avances en criptología — ASIACRYPT 2001. Apuntes de clase sobre informática. Vol. 2248. Springer, Berlín, Heidelberg. págs. 67–86. doi :10.1007/3-540-45682-1_5. ISBN 978-3-540-45682-7.
- ^ Alfred J. Menezes ; Paul C. van Oorschot ; Scott A. Vanstone . "Capítulo 9 - Funciones hash e integridad de datos" (PDF) . Manual de criptografía aplicada. pág. 336.
- ^ Ferguson, Niels; Whiting, Doug; Schneier, Bruce; Kelsey, John; Lucks, Stefan; Kohno, Tadayoshi (24 de febrero de 2003). "Helix: cifrado rápido y autenticación en una única primitiva criptográfica" (PDF) . Cifrado rápido de software . Notas de clase en informática. Vol. 2887. Springer, Berlín, Heidelberg. págs. 330–346. doi :10.1007/978-3-540-39887-5_24. ISBN . 978-3-540-20449-7.
- ^ Dworkin, Morris J. (agosto de 2015). Estándar SHA-3: funciones de salida extensibles y hash basadas en permutaciones (PDF) (informe). NIST. p. 23. doi :10.6028/nist.fips.202.
- ^ Barker, Elaine (enero de 2016). Recomendación para la gestión de claves, parte 1: general (PDF) (informe). NIST. NIST. pág. 53. CiteSeerX 10.1.1.106.307 . doi :10.6028/nist.sp.800-57pt1r4.
- ^ Informe sobre algoritmos, tamaño de clave y parámetros – 2014. ENISA. Oficina de Publicaciones. 2013. p. 37. doi :10.2824/36822. ISBN 978-92-9204-102-1.
{{cite book}}
: Mantenimiento de CS1: otros ( enlace ) - ^ Orman, Hilarie; Hoffman, Paul (abril de 2004). Determinación de la fortaleza de las claves públicas utilizadas para intercambiar claves simétricas. RFC. IETF. doi :10.17487/RFC3766.
- ^ Giry, Damien. "Keylength - Compare all Methods" (Longitud de clave: comparar todos los métodos). keylength.com . Consultado el 2 de enero de 2017 .
- ^ abc "Guía de implementación para FIPS 140-2 y el programa de validación de módulos criptográficos" (PDF) .
- ^ ab "El método rho" . Consultado el 21 de febrero de 2024 .
- ^ Barker, Elaine (mayo de 2020). Recomendación para la gestión de claves, parte 1: general (PDF) (informe). NIST. NIST. pág. 158. CiteSeerX 10.1.1.106.307 . doi :10.6028/nist.sp.800-57pt1r5.
- ^ "Después de ECDH con Curve25519, ¿no tiene sentido utilizar algo más potente que AES-128?". Cryptography Stack Exchange .
- ^ Gaëtan Leurent; Thomas Peyrin (8 de enero de 2020). SHA-1 es un desastre: primera colisión de prefijos elegidos en SHA-1 y aplicación a la red de confianza de PGP (PDF) (informe). Archivo de publicaciones electrónicas de criptología de la IACR.
- ^ Aumasson, Jean-Philippe (2020). Demasiadas criptomonedas (PDF) . Simposio sobre criptomonedas en el mundo real.
Lectura adicional
- Aumasson, Jean-Philippe (2020). Too Much Crypto (PDF) . Simposio sobre criptomonedas en el mundo real.
Véase también