HASH Y CRIPTOGRAFIA
Imagen de tumbledore en Pixabay
Gracias profesor @pelon53 por impartir esta clase, la verdad nunca me había preocupado por estos temas.
TAREA:
Explique ¿Qué significa la resistencia a la colisión? Y ¿Qué significa resistencia a la preimagen?
Una colisión se produce cuando dos entradas distintas nos dan como resultado la misma salida, cuando hay dos mensajes distintos que tienen el mismo hash, la probabilidad de que se den esas colisiones va depender del tamaño del hash, mientras mas grande sea el hash, las probabilidades de colisión van a ser mas pequeñas.
La resistencia simple a colisiones pretende evitar que un potencial atacante que disponga de un mensaje M y por tanto su correspondiente hash h(M), puede encontrar otro mensaje M´ (siendo M´distinto de M) cuyo hash h(M´) sea el mismo que el anterior, lo que permitiria al atacante poder reemplazar un mensaje M por otro M`anterior.
Ejemplo de colisión, “x” e “y” son distintos y sin embargo cuando les aplicamos la función hash producen la misma salida (la comprobación de la firma son iguales).
La probabilidad de una colisión usando el algoritmo SHA256 son extremadamente bajas mas no imposibles, son muy bajas por la cantidad bits que utiliza.
La resistencia a preimagen, ocurre cuando tenemos un valor resumen H = h(m) debe ser computacionalmente imposible encontrar una pre imagen M para ese valor H, es decir, será computacionalmente difícil que conocido H, se encuentre un mensaje M tal que h (M)=H (principio de unidireccionalidad) puedo convertir una vaca en una hamburguesa pero no puedo convertir la hamburguesa en una vaca, ese es el ejemplo mas claro que encontré.
Esta resistencia a preimagen va depender de la longitud del resumen, y mediante técnicas de fuerza bruta se podria obtener una preimagen de un hash después de 2 elevado a la (n-1) intentos.
Fortaleza para SHA1= 7,307 x 10 elevado a 47 intentos
Fortaleza para SHA256(usado para bitcoin) = 5,789 x 10 elevado a 76 intentos
Es decir que si alguien mal intencionado quisiera atacar y romper algoritmo le llevaría algo así como 30 mil millones de años con la tecnología actual, estamos hablando de un numero increíblemente alto, en ello radica su seguridad y ya están trabajando el próximo algoritmo el SHA-3 que será aun mas difícil de romper.
La resistencia a preimagen es importante para proteger datos porque un simple hash de un mensaje puede demostrar su autenticidad, sin la necesidad de divulgar la información, en la práctica, muchos proveedores de servicios y aplicaciones web almacenan y utilizan hashes generados a partir de contraseñas en lugar de contraseñas en texto plano, en lugar de guardar nuestras contraseñas los sitios web guardan un hash, y lo comparan con el hash cuando ingresamos la contraseña, si el hash es el mismo podemos acceder, si no, no podremos ingresar.
Use tronscan y etherscan para verificar el hash del último bloque y el hash de esa transacción. Se requiere capture de pantalla para su comprobación.
El hash de esta transacción 0x8f7027120326e2e32fb2d ed4f95557040817a32c9713b7ae0f7fbb8a3b370b50 corresponde al mismo bloque, es decir, este fue el minero que valido la transacción y recibió una recompensa.
Ahora vamos al explorador de bloques de TRON.
Observemos el numero de bloque generado el 31715426 el cual genero 16 trx de recompensa
Detalle de transacción correspondiente al mismo bloque, el hash corresponde al bloque 31715426
Genere el hash usando SHA-256, de la palabra CryptoAcademy y de cryptoacademy. Se requiere capture de pantalla. ¿Observa alguna diferencia entre ambas palabras? Explique.
Generamos un hash usando el algoritmo SHA-256 a continuación podemos observar que el resultado es decir el hash de ambas palabras son totalmente diferentes.
cryptoacademy hash = 0592F5DD27DC72E675B2AB9 C77487A69FAAF84196597FA052EC099C18EE7C4C5
CryptoAcademy hash = D03CA34B258E6E0FD06B207 0DDE61B50BD4EEF6161A8EDAA4A420C9AE1BEB7F9
No se parecen en lo absoluto esto es debido a que la primera palabra esta escrita todo en letras minúsculas, mientras quela segunda palabra, la primera letra esta escrita en mayúscula, esta pequeña diferencia termino en esta gran diferencia, esto es porque el algoritmo convierte la función a un mensaje (hash) totalmente aleatorio, y una minúscula diferencia genera un hash totalmente diferente debido a este proceso de aleatoriedad, no importa que sea una letra diferente, siempre nos va dar un hash totalmente aleatorio.
En sus propias palabras explique la diferencia entre el hash y la criptografía:
En primer lugar el hash es unidireccional (no se puede revertir), es una función como vimos, de longitud fija y generan una cadena de caracteres única, en cambio la criptografía es bidireccional (se puede descifrar), por ejemplo encriptar un texto significa aplicarle un algoritmo que, en relación a una cierta variable (clave de encriptación), lo transforma en otro texto incomprensible e indescifrable por parte de quien no posee la clave, pero la función es reversible, si posees la llave puedes descifrar el mensaje, es común confundir hash y criptografía porque ciertamente están relacionadas, criptografía es la disciplina y el hash es una herramienta de criptografía.
👆 Buen ejemplo, la carne de hamburguesa.
Pregunta 2: Faltó explicar un poco el proceso completo de encontrar los hash.
Pregunta 3: Muy bien explicada.
Pregunta 4: Muy bien explicada. Pero para mejorar la presentación se puede hacer tipo tabla o separadas ambas.
Buen trabajo, continua mejorando, sigue adelante.
Recomendaciones:
Es importante que coloques tus propias conclusiones de tu investigación. En algunas preguntas profundizar un poco más, como el caso de la pregunta 2.Calificación: 8.0
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit