Una tarde lluviosa, allí donde fuera que viviese.
En la esquina de una cafetería con la persiana ya medio bajada, el hacker de nuestra historia, Alex, esperaba con ese café que hacía ya varias horas había llegado ardiendo a su mesa y que ahora apenas conservaba algo de calor.
Porque los hackers toman café.
Ya sabía que iba a reventar la seguridad del sistema. Ya lo conocía.
Utilizaba funciones hash para verificar la autenticidad de los documentos. Autenticidad, una de las 5 patas de la ciberseguridad con las que se pegaba todos los días. Confidencialidad, integridad, disponibilidad, autenticidad y no-repudio.
Los cinco jinetes. Los pilares de cualquier sistema seguro.
Pero un hash no es más que una promesa de las matemáticas.
La promesa de unos cuantos genios encerrados entre pizarras llenas de números y letras, jurando que, si dos documentos comparten el mismo hash, entonces, por fuerza, deben ser el mismo documento.
Pero Alex no era de esos que se conformaban con promesas.
Con la parsimonia del que hace horas soplaba las velas de su cumpleaños (que, casualmente, compartía con un chaval en la otra esquina de la cafetería), Alex generaba documentos uno tras otro, realizando pequeñas modificaciones cada vez.
Cada intento era un invitado más. Había que acabarse la tarta.
Documento tras documento, pequeño cambio tras pequeño cambio, la tarta se iba acabando.
Hasta que, finalmente, dos documentos completamente distintos acabaron compartiendo la misma huella: el mismo hash.
La probabilidad de que dos personas compartan cumpleaños en un grupo de 23 personas supera el 50 %.
Y con los hashes ocurre lo mismo. La probabilidad de una colisión no es alta, pero está ahí.
Siempre acechando a la buena suerte.
A la suerte, mejor dicho. La buena suerte, Alex ya sabía, era otra cosa.
Alex ha tenido suerte utilizando el ataque del cumpleaños.
El ataque del cumpleaños es una técnica que explota una realidad matemática:
en vez de buscar que un documento concreto coincida con otro, basta con encontrar cualquier par de documentos que, por pura casualidad, generen el mismo hash.
La probabilidad de esa coincidencia, aunque improbable, crece rápidamente con el número de intentos.
Exactamente igual que en una fiesta de cumpleaños: no hace falta llenar un estadio de la Champions League, basta con 23 personas para que haya más de un 50 % de probabilidad de coincidencia.
En el mundo de la ciberseguridad, eso significa que, si los algoritmos de hash no son lo suficientemente resistentes, tarde o temprano alguien como Alex encontrará dos documentos distintos con el mismo identificador.
Y entonces, la confidencialidad, integridad, disponibilidad, autenticidad y no-repudio, se convierten en humo.
La paradoja del cumpleaños no es magia. Es matemática.
Y aquí, en este juego al que estamos jugando, las mates siempre ganan.