Un ataque de cumpleaños es un ataque de colisión por fuerza bruta que explota las matemáticas detrás del problema del cumpleaños en la teoría de la probabilidad . Este ataque puede usarse para abusar de la comunicación entre dos o más partes. El ataque depende de la mayor probabilidad de colisiones encontradas entre intentos de ataque aleatorios y un grado fijo de permutaciones ( palomas ). Seasea el número de valores posibles de una función hash, con. Con un ataque de cumpleaños, es posible encontrar una colisión de una función hash conoportunidad en dóndees la longitud en bits de la salida hash, [ 1 ] [ 2 ] y consiendo la seguridad de resistencia de preimagen clásica con la misma probabilidad. [ 2 ] Existe un resultado general (aunque controvertido [ 3 ] ) de que las computadoras cuánticas pueden realizar ataques de cumpleaños, rompiendo así la resistencia a colisiones, en. [ 4 ]
Aunque existen algunas vulnerabilidades de firma digital asociadas con el ataque de cumpleaños, este no puede utilizarse para romper un esquema de cifrado más rápido que un ataque de fuerza bruta . [ 5 ] : 36
Comprender el problema

Como ejemplo, consideremos el escenario en el que un profesor con una clase de 30 alumnos (n = 30) pregunta la fecha de nacimiento de cada uno (para simplificar, ignoremos los años bisiestos ) para determinar si dos alumnos tienen la misma fecha de nacimiento (lo que corresponde a una colisión de hash, como se describe más adelante). Intuitivamente, esta probabilidad puede parecer pequeña. Contrariamente a la intuición, la probabilidad de que al menos un alumno tenga la misma fecha de nacimiento que cualquier otro alumno en cualquier día es de alrededor del 70 % (para n = 30), según la fórmula. [ 6 ]
Si el profesor hubiera elegido un día específico (por ejemplo, el 16 de septiembre), entonces la probabilidad de que al menos un estudiante hubiera nacido en ese día específico es, aproximadamente el 7,9%.
En un ataque de cumpleaños, el atacante prepara varias variantes de contratos, tanto benignos como maliciosos, cada uno con su firma digital . Se busca un par de contratos, uno benigno y otro malicioso, con la misma firma. En este ejemplo ficticio, supongamos que la firma digital de una cadena es el primer byte de su hash SHA-256 . El par encontrado se indica en verde ; cabe destacar que encontrar un par de contratos benignos (azul) o un par de contratos maliciosos (rojo) es inútil. Después de que la víctima acepta el contrato benigno, el atacante lo sustituye por el malicioso y afirma que la víctima lo firmó, como lo demuestra la firma digital.
Relación con el problema de meter las bolas en los contenedores
El ataque de cumpleaños puede modelarse como una variación del problema de colocar bolas en contenedores , donde las bolas (entradas de la función hash) se colocan aleatoriamente en contenedores (salidas de la función hash). Se produce una colisión hash cuando al menos dos bolas se colocan en el mismo contenedor.
Matemáticas
Dada una funciónEl objetivo del ataque es encontrar dos entradas diferentes.de tal manera queUna pareja asíSe denomina colisión. El método utilizado para encontrar una colisión consiste simplemente en evaluar la función.para diferentes valores de entrada que pueden ser elegidos aleatoriamente o pseudoaleatoriamente hasta que se encuentre el mismo resultado más de una vez. Debido al problema del cumpleaños, este método puede ser bastante eficiente. Específicamente, si una funciónproduce cualquiera dediferentes resultados con igual probabilidad ySi es suficientemente grande, entonces esperamos obtener un par de argumentos diferentes.ycondespués de evaluar la función durante aproximadamentediferentes argumentos en promedio.
Consideremos el siguiente experimento. De un conjunto de H valores, elegimos n valores uniformemente al azar, permitiendo así repeticiones. Sea p ( n ; H ) la probabilidad de que durante este experimento se elija al menos un valor más de una vez. Esta probabilidad se puede aproximar como
dóndees el número de valores elegidos (entradas) yes el número de resultados posibles (salidas hash posibles).
Sea n ( p ; H ) el número más pequeño de valores que debemos elegir, de modo que la probabilidad de encontrar una colisión sea al menos p . Al invertir esta expresión anterior, encontramos la siguiente aproximación
y asignando una probabilidad de colisión de 0,5 llegamos a
Sea Q ( H ) el número esperado de valores que debemos elegir antes de encontrar la primera colisión. Este número se puede aproximar mediante
Por ejemplo, si se utiliza un hash de 64 bits, hay aproximadamente1,8 × 10 19 resultados diferentes. Si todos son igualmente probables (el mejor caso), entonces se necesitarían 'solo' aproximadamente 5 mil millones de intentos (5,38 × 10 9 ) para generar una colisión usando fuerza bruta. [ 8 ] Este valor se llama límite de cumpleaños [ 9 ] y podría aproximarse como 2 l /2 , donde l es el número de bits en H. [ 10 ] Otros ejemplos son los siguientes:
- La tabla muestra el número de hashes n ( p ) necesarios para lograr la probabilidad de éxito dada, suponiendo que todos los hashes son igualmente probables. Para comparar,10 −18 a10 −15 es la tasa de error de bits no corregible de un disco duro típico. [ 11 ] En teoría, los hashes MD5 o UUID , que son aproximadamente 128 bits, deberían mantenerse dentro de ese rango hasta unos 820 mil millones de documentos, incluso si sus posibles salidas son muchas más.
Es fácil ver que si las salidas de la función se distribuyen de forma desigual, entonces se podría encontrar una colisión aún más rápido. La noción de "equilibrio" de una función hash cuantifica la resistencia de la función a los ataques de cumpleaños (que explotan la distribución desigual de claves). Sin embargo, determinar el equilibrio de una función hash normalmente requerirá que se calculen todas las entradas posibles y, por lo tanto, es inviable para funciones hash populares como las familias MD y SHA. [ 12 ] La subexpresiónen la ecuación parano se calcula con precisión para tamaños pequeñoscuando se traduce directamente a lenguajes de programación comunes log(1/(1-p))debido a la pérdida de significado . Cuando log1pestá disponible (como en C99 ), por ejemplo, -log1p(-p)se debe usar la expresión equivalente en su lugar. [ 13 ] Si no se hace esto, la primera columna de la tabla anterior se calcula como cero, y varios elementos en la segunda columna no tienen ni siquiera un dígito significativo correcto.
Aproximación simple
Una buena regla general que se puede utilizar para el cálculo mental es la relación
que también se puede escribir como
- .
o
- .
Esto funciona bien para probabilidades menores o iguales a 0,5.
Este esquema de aproximación es especialmente fácil de usar cuando se trabaja con exponentes. Por ejemplo, supongamos que está construyendo hashes de 32 bits () y queremos que la probabilidad de una colisión sea como máximo de una entre un millón (), ¿cuántos documentos podríamos tener como máximo?
que se acerca a la respuesta correcta de 93.
Susceptibilidad a la firma digital
Las firmas digitales pueden ser susceptibles a un ataque de cumpleaños o, más precisamente, a un ataque de colisión de prefijo elegido. Un mensajeNormalmente se firma mediante el primer cálculo, dóndees una función hash criptográfica y luego se utiliza alguna clave secreta para firmarSupongamos que Mallory quiere engañar a Bob para que firme un contrato fraudulento . Mallory prepara un contrato justo.y uno fraudulentoLuego encuentra una serie de puestos dondese pueden cambiar sin cambiar el significado, como insertar comas, líneas en blanco, uno o dos espacios después de una oración, reemplazar sinónimos, etc. Al combinar estos cambios, puede crear una gran cantidad de variaciones enque son todos contratos justos.
De manera similar, Mallory también crea una gran cantidad de variaciones del contrato fraudulento.Luego aplica la función hash a todas estas variaciones hasta que encuentra una versión del contrato justo y una versión del contrato fraudulento que tienen el mismo valor hash.Ella le presenta la versión correcta a Bob para que la firme. Después de que Bob firma, Mallory toma la firma y la adjunta al contrato fraudulento. Esta firma "prueba" que Bob firmó el contrato fraudulento.
Las probabilidades difieren ligeramente del problema original del cumpleaños, ya que Mallory no gana nada al encontrar dos contratos justos o dos fraudulentos con el mismo hash. La estrategia de Mallory es generar pares de un contrato justo y uno fraudulento. Para una función hash dadaes el número de hashes posibles, dondees la longitud en bits de la salida hash. Las ecuaciones del problema del cumpleaños no se aplican exactamente aquí. Para una probabilidad del 50% de una colisión, Mallory necesitaría generar aproximadamentehashes, que es el doble del número requerido para una colisión simple bajo el problema clásico del cumpleaños.
Para evitar este ataque, la longitud de salida de la función hash utilizada para un esquema de firma se puede elegir lo suficientemente grande como para que el ataque de cumpleaños se vuelva computacionalmente inviable, es decir, aproximadamente el doble de bits que los necesarios para prevenir un ataque de fuerza bruta ordinario .
Además de utilizar una longitud de bits mayor, el firmante (Bob) puede protegerse realizando algunos cambios aleatorios e inofensivos en el documento antes de firmarlo, y conservando una copia del contrato que firmó, para que al menos pueda demostrar ante el tribunal que su firma coincide con ese contrato, y no solo con el fraudulento.
El algoritmo rho de Pollard para logaritmos es un ejemplo de un algoritmo que utiliza un ataque de cumpleaños para el cálculo de logaritmos discretos .
Ataque inverso
El mismo fraude es posible si quien firma es Mallory, no Bob. Bob podría proponerle un contrato a Mallory para que lo firme. Mallory podría encontrar una versión modificada de este contrato legítimo con la misma firma que un contrato fraudulento, y podría entregárselo a Bob junto con la firma. Posteriormente, Mallory podría presentar la copia fraudulenta. Si Bob no tiene la versión modificada del contrato (quizás solo encontró la propuesta original), el fraude de Mallory es perfecto. Si Bob la tiene, Mallory al menos puede alegar que es Bob quien cometió el fraude.
Véase también
Notas
- ↑ "Evitando colisiones, funciones hash criptográficas" (PDF) . Fundamentos de criptografía, Departamento de Ciencias de la Computación, Wellesley College .
- 1 2 Dang, QH (2012). Recomendación para aplicaciones que utilizan algoritmos hash aprobados (Informe). Gaithersburg, MD: Instituto Nacional de Estándares y Tecnología. doi : 10.6028/nist.sp.800-107r1 .
- ↑ Daniel J. Bernstein. "Análisis de costos de colisiones de hash : ¿Harán las computadoras cuánticas que SHARCS quede obsoleto?" (PDF) . Cr.yp.to. Consultado el 29 de octubre de 2017 .
- ↑ Brassard, Gilles; HØyer, Peter; Tapp, Alain (20 de abril de 1998). «Criptoanálisis cuántico de funciones hash y sin garra». LATIN'98: Informática Teórica . Notas de clase en Ciencias de la Computación. Vol. 1380. Springer, Berlín, Heidelberg. págs. 163–169 . arXiv : quant-ph/9705002 . doi : 10.1007/BFb0054319 . ISBN 978-3-540-64275-6. S2CID 118940551 .
- ↑ R. Shirey (agosto de 2007). Glosario de seguridad de Internet, versión 2. Grupo de trabajo de redes. doi : 10.17487/RFC4949 . RFC 4949 .Informativo.
- ↑ "Problema de cumpleaños" . Brilliant.org . Brilliant_(sitio web) . Consultado el 28 de julio de 2023 .
- ↑ Bellare, Mihir; Rogaway, Phillip ( 2005). "El problema del cumpleaños". Introducción a la criptografía moderna (PDF) . págs. 273–274 . Recuperado el 31 de marzo de 2023 .
- ^ Flajolet, Philippe; Odlyzko, Andrew M. (1990). "Estadísticas de mapeo aleatorio" . En Quisquater, Jean-Jacques; Vandewalle, Joos (eds.). Avances en criptología: EUROCRYPT '89 . Apuntes de conferencias sobre informática. vol. 434. Berlín, Heidelberg: Springer. págs. 329–354 . doi : 10.1007/3-540-46885-4_34 . ISBN 978-3-540-46885-1.
- ↑ Véanse los límites superior e inferior .
- ↑ Jacques Patarin, Audrey Montreuil (2005). "Revisión de los esquemas de Benes y Butterfly" ( PostScript , PDF ) . Universidad de Versalles . Consultado el 15 de marzo de 2007 .
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda ) - ↑ Gray, Jim; van Ingen, Catharine (25 de enero de 2007). "Mediciones empíricas de tasas de fallos y errores de disco". arXiv : cs/0701166 .
- ↑ "CiteSeerX" . Archivado del original el 23 de febrero de 2008. Consultado el 2 de mayo de 2006 .
- ↑ "Calcula log(1+x) con precisión para valores pequeños de x" . Mathworks.com . Archivado del original el 30 de agosto de 2012. Consultado el 29 de octubre de 2017 .
Referencias
- Mihir Bellare , Tadayoshi Kohno: Equilibrio de la función hash y su impacto en los ataques de cumpleaños. EUROCRYPT 2004: pp . 401-418
- Criptografía aplicada, 2.ª ed., por Bruce Schneier
Enlaces externos
- "¿Qué es una firma digital y qué es la autenticación?" (de las preguntas frecuentes sobre criptografía de RSA Security) .
- Preguntas frecuentes sobre criptomonedas de X5 Networks: "Ataque de cumpleaños"
- ataques criptográficos