Los rotores de una máquina Enigma.
¿Qué es hash?
Hashing es un método de criptografía que convierte cualquier forma de datos en una cadena de texto única. Se puede codificar cualquier dato, sin importar su tamaño o tipo. En el hashing tradicional, independientemente del tamaño, el tipo o la longitud de los datos, el hash que produce cualquier dato siempre tiene la misma longitud. Un hash está diseñado para actuar como una función unidireccional: puede colocar datos en un algoritmo hash y obtener una cadena única, pero si encuentra un nuevo hash, no podrá descifrar los datos de entrada que representa. Una pieza única de datos siempre producirá el mismo hash.
¿Como funciona?
Hashing es una operación matemática que es fácil de realizar, pero extremadamente difícil de revertir. (La diferencia entre hashing y cifrado es que el cifrado se puede revertir o descifrar con una clave específica). Las funciones de hashing más utilizadas son MD5, SHA1 y SHA-256. Algunos procesos hash son significativamente más difíciles de descifrar que otros. Por ejemplo, SHA1 es más fácil de descifrar que bcrypt.
Algunos ejemplos de datos se ejecutan a través de hashes SHA1. Los hashes SHA1 siempre serán los mismos para estos datos.
¿Quién usa hash?
El usuario promedio se encuentra diariamente con hash en el contexto de las contraseñas. Por ejemplo, cuando crea una dirección de correo electrónico y una contraseña, es probable que su proveedor de correo electrónico no guarde su contraseña. Más bien, el proveedor ejecuta la contraseña a través de un algoritmo hash y guarda el hash de su contraseña. Cada vez que intenta iniciar sesión en su correo electrónico, el proveedor de correo electrónico procesa la contraseña que ingresa y compara este hash con el hash que ha guardado. Solo cuando los dos hash coincidan estará autorizado a acceder a su correo electrónico.
Hashing en Criptomonedas
En la cadena de bloques de Bitcoin, la "minería" se lleva a cabo esencialmente mediante la ejecución de una serie de funciones hash SHA-256. En las cadenas de bloques de criptomonedas de hoy, el hashing se usa para escribir nuevas transacciones, marcarlas con una marca de tiempo y, en última instancia, agregarles una referencia en el bloque anterior. Cuando se agrega un bloque de transacciones a la cadena de bloques y se llega a un consenso entre los operadores de diferentes nodos (validando que todos tengan la versión correcta y verdadera de todo el libro mayor), es casi imposible revertir una transacción debido a la enorme la potencia informática que requeriría cualquiera que intente manipular la cadena de bloques y la naturaleza unidireccional del hash. Por lo tanto, el hashing es crucial para mantener la integridad criptográfica de la cadena de bloques.
Hashing y Ciberseguridad
Cuando una organización descubre que las contraseñas de una plataforma se han visto comprometidas, generalmente significa que los piratas informáticos han adquirido los hash que representan las contraseñas. Luego, los piratas informáticos ejecutan los hashes de palabras comunes y combinaciones de palabras y números comunes para descifrar algunas de las contraseñas que los usuarios han guardado. La industria de la ciberseguridad ahora utiliza un mecanismo llamado 'salting'. Salar incluye agregar datos aleatorios a una contraseña antes de codificarla y luego almacenar ese 'valor de sal' con el hash. Este proceso hace que sea más difícil para los piratas informáticos utilizar técnicas de cálculo previo y descifrar contraseñas de datos hash que han adquirido.
El hashing criptográfico ha desempeñado durante mucho tiempo un papel en la ciberseguridad y ahora está preparado para impulsar la próxima ola de aplicaciones de cadena de bloques.
Recursos:
Generadores de hash en línea. Puede ejecutar un MD5, SHA1, SHA-256 y otras funciones hash en sus datos aquí: