Funciones Hash: su explicación más sencilla
Un concepto muy sonado cuando se tratan temas sobre ciberseguridad, el blockchain o la criptografía son las funciones hash. Por esta razón, queremos explicarte, de la manera más sencilla posible, todo sobre este término tan importante en el mundo de la informática.
¿Qué es un hash?
Esta palabra anglosajona puede traducirse como “picadillo”. Se trata de un algoritmo matemático que transforma una determinada información en un código alfanumérico. Esta cadena de texto codificada por números y letras tiene una longitud fija y sigue un orden único e irrepetible.
¿Para qué sirven?
El uso principal de las funciones hash es proteger la confidencialidad de una clave. Es decir, proteger una contraseña de forma que no quede almacenada en un texto claro dentro de una base de datos.
Por ejemplo, si se recibe un ciberataque, los hackers pueden vulnerar un servicio y robar su base de datos. Pero si las contraseñas están hasheadas, no se ven expuestas. En caso contrario, las credenciales serían visibles inmediatamente y causaría un grave problema.
También se utiliza en páginas web con autenticación de usuario y clave o en algunas webs que permiten descargar archivos pesados. Otorgan la información del documento y verifican que no se ha manipulado, para evitar que se descarguen virus o cualquier programa malicioso ante un archivo sospechoso.
Además, los hashes son necesarios para asegurar la integridad de los mensajes. Para este objetivo, se comprueban aquellos que se han creado antes y después de la transmisión de datos. Si son iguales, la comunicación ha resultado segura, pero si no lo son, los datos han sido alterados y algo ha fallado.
Como se puede observar, muchas de las aplicaciones de las funciones hash están relacionadas con el campo de la criptografía, una rama de las matemáticas que proporciona herramientas para conseguir seguridad en los sistemas de información. Por ello, a las funciones que cumplen con estas propiedades se les denomina funciones hash criptográficas.
¿Cómo funciona?
Esta tecnología trabaja tomando unos datos que luego se organizan en una serie de bloque de datos, al ser sometidos a unos procesos matemáticos y lógicos.
Explicado de una forma más simple, se podría decir que esta función lo que hace es resumir una gran cantidad de datos en una cadena más pequeña, inimitable y definida.
Una fuerte ventaja de este funcionamiento es que el proceso de las funciones hash solo puede hacerse en un sentido. Esto significa que no se puede obtener la información de origen mediante un hash ya formado.
Para entenderlo mejor, este proceso se equipara a la realización de una tarta de cumpleaños. Cada ingrediente equivale a la entrada de datos, es decir, a los datos originales. De esta forma, el proceso de preparación y cocción de la tarta sería la codificación de los datos, entendidos como ingredientes, por la función hash. Al terminar, se obtiene un pastel de unas características únicas, según los ingredientes utilizados. Así pues, el proceso contrario, el de devolver la tarta a su estado de ingredientes inicial, es imposible.
Sus principales características
Así mismo, las funciones hash se caracterizan por ser:
- Unidireccionales. Como se acaba de mencionar, no son reversibles, pues primero se crea la función y luego se obtiene la información exacta. Una característica que hace que los hashes sean seguros.
- Compresibles. Lo que quiere decir que no importa el tamaño de los datos introducidos porque su resultado siempre es una cadena cuya longitud es fija. Dependiendo de su construcción, el resultado puede ser de 16, 32, 48, 64, 128, 256 o más caracteres alfanuméricos. Aunque el más común es el de 64.
- Fáciles de calcular. Para ejecutarlos no es necesario tener ordenadores con mucho potencial de cálculo, estos algoritmos son muy eficientes.
- Difusión de bits. Cualquier cambio en la entrada de datos, por pequeño que sea, origina un nuevo hash completamente diferente. Esta es otra razón por la que son tan seguros, pues no hay dos iguales.
- Resistentes a colisiones. Pueden ser débiles o fuertes y hace referencia a que no se puede calcular un hash que permita encontrar otro igual. Es el concepto base de su seguridad y también se conocen como pre-imagen y segunda imagen.
Nivel de seguridad
A pesar de que la seguridad absoluta no existe, las actuales funciones hash garantizan un nivel de seguridad infranqueable. Gracias a su constante evolución, estas herramientas se han ido mejorando a lo largo del tiempo y los usuarios simplemente deben elegir aquella opción que mejor proteja sus equipos.
Una de las primeras funciones, desarrollada hace más de 30 años, fue la función MD2 y, posteriormente, la MD5, aunque esta quedó obsoleta porque pudo romperse su seguridad. En 1992 llegó la función RIPEMD, cuyo nivel de seguridad es tan alto que hoy en día aún se utiliza. Pero se han creado otras funciones más efectivas como la función SHA, que es la más común actualmente por su elevado nivel de seguridad. De hecho, de ella surgió el SHA-256, que fue el que hizo posible que se desarrollara la criptomoneda Bitcoin. Se calcula que para romperla harían falta miles de años usando superordenadores modernos.
No hay comentarios