MD5
Descubro sin sorpresa que ya existe la base de datos de cadenas MD5 que tarde o temprano se iba a crear: otra herramienta más para averiguar contraseñas inseguras que se suma a las que emplean bien los crackers, bien los administradores de sistemas (existen compañías dedicadas exclusivamente a la recuperación de claves).
Las funciones hash MD5 se emplean ampliamente en criptografía y, sin extenderse en el algoritmo, es fácil explicar cómo trabajan y qué cometido cumplen. Su labor es transformar una cadena cualquiera en un número de cierta magnitud, que por comodidad de ha representado siempre en hexadecimal. Por ejemplo, la palabra Phineus queda convertida en el valor db7dc4eb07aeefff972b0595a06485a4. En el proceso no ha intervenido ninguna clave ni elemento azaroso alguno, de modo que tantas veces como apliquemos la conversión obtendremos el mismo resultado. Hasta aquí no habría diferencia con otras operaciones que pudiéramos hacer con un texto. Lo que hace especial a MD5 (Message-Digest algorithm 5) es el hecho de que no se conozca un procedimiento para averiguar la palabra que originó el resultado. Es decir, en nuestro ejemplo, si nos diesen el número db7dc4eb07aeefff972b0595a06485a4, no tendríamos modo de saber la cadena de origen. Salvo, claro está, probar con todas las combinaciones de letras que se nos ocurriesen. A este método se le denomina fuerza bruta.
MD5, como he dicho, se usa por su sencillez en bastantes sistemas para identificar usuarios. Usted, pongamos por caso, se conecta a una página en Internet, y ésta le pide su clave. Si se pasase sin codificar, una tercera persona podría averiguarla, espiando lo que su ordenador envía. La forma de evitar podría ser -con una leve modificación que no merece la pena precisar- mandar el valor transformado a través de MD5 (del que, como hemos dicho, no se sabe extraer el original). El destinatario realiza el mismo cálculo y si coinciden los resultados, da por buena su identidad.
En realidad, este sistema de identificación es común a muchos algoritmos criptográficos, y por muy potentes que estos sean, no pueden hacer frente al enemigo más ridículo y difícil de erradicar: la desidia. Es muy común emplear como contraseñas simples palabras, fechas o, si son conjuntos aleatorios de letras, de poca longitud para que nos sea fácil recordarlas. El software al que al comienzo me refería explota casi siempre estos errores: para un ordenador no supone esfuerzo probar miles de combinaciones en un instante, sean unas pocas letras o cifras al azar, o palabras de un diccionario. La recomendación que subyace a esta explicación es más que evidente.