Crypto Academy / Temporada 3 / Semana 2 - Publicación de tareas para @pelon53 de @juanjo09 | Hash y Cryptografia.
Un saludo a todos amigos y profesores de la academia, en esta oportunidad gracias a la iniciativa del profesor @pelon53 aprenderemos un poco más sobre criptografía y las funciones Hash, su excelente y sencilla conferencia (véase aquí) nos enseña sobre la función Hash y su diferencia a la Criptografía.
En este post discutiremos un poco más en relación a estos temas, por tanto, mi publicación va orientada a responder las preguntas dadas por la conferencia antes mencionada del profesor @pelon53, sin más que decir, comencemos.
1.- Explique ¿Qué significa la resistencia a la colisión? Y ¿Qué significa resistencia a la preimagen?
Muy bien, sabemos bien cuál es el papel y como funciona la función Hash, sin embargo, ¿Qué entendemos por resistencia a colisión o resistencia a preimagen? Pues, primero conozcamos estos conceptos.
Entre las propiedades de una función Hash una característica de esta son las coliciones
Coliciones: las colisiones se definen como la situación en que dos entradas distintas generan el mismo Hash, por ejemplo, veamos la siguiente imagen.
Supóngase que introducimos tres datos a una función Hash, y estás en la salida produce el mismo Hash para los datos de @pelon53 y @imagen esto es lo que se conoce como colisión y es una situación posible pero indeseable.
Preimagen: la preimagen es la situación donde se encuentra una entrada que produzca la colisión con otra. Por ejemplo en la imagen siguiente
Vemos que la palabra @pelon53 produce un Hash y descubrí que @imagen produce el mismo Hash, por tanto, encontré que entrada produce la colisión con la entrada @pelon53.
Ahora si, con esto entendemos, entonces, que un sistema resistente a colisiones sería aquel que logré evitar una colision de Hash.
Ahora surge aquí una pregunta importante ¿Es posible que suceda una colisión? Pues claro que es posible, pues, Supóngase que conocemos la función Hash y tenemos un conjunto grande de entradas, 2^256 para una salida de 256 bit y producimos el Hash de cada una de estas y luego comparamos cada una para encontrar la colisión, note entonces que podríamos encontrar la colisión.
sin embargo, suponiendo que un ordenador produzca 16.385 Hash por segundo está tardaría nada más y nada menos que 2,24x10^65 años realizar el Hash de todas las entradas serían más que la edad teórica del universo. Aquí mi cálculo para estimar esto.
Esto es lo que vuelve, por ejemplo a la función SHA-256 (una función muy utilizada para las criptomonedas) resistente a colisiones.
Por otro lado una función Hash resistente a la preimagen tiene el papel de que además de ser resistente a colisiones, debe ser computacionalmente inabordable, que a partir de una salida o entrada sea imposible hallar su par de colisión, sin más que decir una resistencia a la pre-imagen no es más que cumplir con la característica de la unidireccionalidad de la función.
2.- 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.
Usemos Tronscan y Etherscan para ver la comparación de un Hash de un bloque y una transacción, lo que será buen ejercicio para reconocer e identificar estos.
Tronscan
Primero ingresamos a su red, ahora en su misma página inicial bajamos un poco y podemos ver el último bloque y transacción del momento.
Al ingresar al último bloque creado, podemos ver la información completa de este, y ver su Hash
Cuyo Hash completo es: 0000000001e364c783fcda4488e041ca4aeff5507aeb7713897fc6f9bbe1282e
De igual manera podemos ingresar a la última transacción del momento de la tarea es:
En este podemos observar su Hash y la diferencia entre este y el del bloque
Etherscan
Igualmente que en tronscan, en la página de inicio, bajando un poco en Etherscan, podemos ver los últimos bloques y transacciones realizadas en la cadena.
Aquí podemos dar click y ver el último bloque y transacción generados en la cadena Ethereum, veamos el bloque y su Hash
Podemos ver el Hash completamente del bloque, ahora si buscamos la última transacción, podemos comparar el Hash y lo distintos que son.
3.- 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.
Primero ingresamos a la página dada por el profesor de generador de Hash.
Este tiene una interfaz muy sencilla primero ingresaremos la palabra "CryptoAcademy"
Ahora veamos el Hash de la palabra "cryptoacademy"
Podemos ver entonces que:
"CryptoAcademy" = D03CA34B258E6E0FD06B2070DDE61B50BD4EEF6161A8EDAA4A420C9AE1BEB7F9
Y
"cryptoacademy" = 0592F5DD27DC72E675B2AB9C77487A69FAAF84196597FA052EC099C18EE7C4C5
Aquí entonces podemos apreciar dos Hash totalmente diferentes pero es que ¿Acaso no son palabras iguales? Lo cierto es que no, si podemos atención notamos que la primera tiene una estructura de camello la letra "C" de Cryptos está en mayúscula al igual que la "A" de Academy en cambio la segunda palabra no, todo está en minúscula. Esta pequeña diferencia hace que el Hash sea totalmente diferente.
4.- En sus propias palabras explique la diferencia entre el hash y la criptografía.
Sin duda, después de hacer la tarea podemos entender claramente que Hash y Criptografía no es lo mismo y podemos entender sus diferencia de la siguiente manera:
Hash es una función Criptográfica y Criptografía es una ciencia, por tanto, Hash es la aplicación de la ciencia y criptografía la ciencia que fundamenta el Hash. La criptografía ofrece un conjunto de técnicas para el desarrollo de mensajes cifrados y he ahí donde entra el Hash una de estas para cifrar un conjunto de caracteres para ser emitidos e indecifrable por terceros. Sólo emitidos, recibídos y distribuidos de manera automática o intencional. Aquí lo que, para mí, es una de las cúspide de la criptografia, las criptomonedas y la blockchain.
Conclusión
La función Hash es una de las claves del conjunto que dio éxito a las criptomonedas y su descentralización, la posibilidad de codificar, cifrar y volver inhackeable estos sistemas, sin duda da la seguridad y confianza suficiente para la implementación práctica de la blockchain.
Esta tarea me ha enseñado el poder del Hash y su conjunto y como se implementa ampliamente en la criptografia, hoy por hoy estamos tan rodeados de funciones Hash que la solemos ignorar, espero por tanto que esta tarea ayude al aprendizaje, comprensión y entendimiento de esta herramienta criptográfica.
Este post fue compartido en Facebook: https://m.facebook.com/story.php?story_fbid=4432873000108301&id=100001569332622