Una función hash asigna datos de cualquier tamaño a un valor de tamaño fijo. La misma entrada siempre produce la misma salida. Si se modifica un bit, la salida cambia por completo. Esta propiedad hace que los hashes sean útiles para verificar la integridad de los datos. Descargue un archivo y compare su hash con el valor publicado. Si coinciden, el archivo llegó intacto. Si no, algo lo modificó.
Las funciones hash son unidireccionales. No se puede reconstruir el dato original a partir de un hash. Esto las hace útiles para el almacenamiento de contraseñas. Los sistemas almacenan el hash de una contraseña, no la contraseña en sí. Al iniciar sesión, el sistema calcula el hash de lo que se ha escrito y lo compara con el hash almacenado. Si la base de datos se filtra, el atacante obtiene los hashes, no las contraseñas. Las contraseñas débiles aún pueden descifrarse con tablas arcoíris o fuerza bruta, por lo que el uso de sal es importante. La sal es un dato aleatorio que se añade a cada contraseña antes de calcular el hash, de modo que contraseñas idénticas producen hashes diferentes. SHA-256 y SHA-3 son hashes criptográficos comunes. MD5 y SHA-1 son vulnerables y no deben utilizarse para la seguridad. Las funciones hash también son la base de las cadenas de bloques, las firmas digitales y la deduplicación de archivos.
Propiedades de la función hash
- Determinista: misma entrada, misma salida
- Rápido: cálculo rápido
- Resistente a la preimagen: no se puede revertir
- Resistente a colisiones: es difícil encontrar dos entradas con el mismo hash.
Un hash es una huella digital, no un cifrado. Demuestra la integridad. No oculta datos.
Comments
No comments yet. Be the first to share a thought.
Leave a comment