Publicación de tarea de Crypto Academy de la semana 2 de la temporada 3 para (@ pelon53) Hash y criptografía
Explique ¿Qué significa la resistencia a la colisión? Y ¿Qué significa resistencia a la preimagen?
La resistencia a la colisión es una propiedad que tienen los hashes, si partimos de que un hashs no es mas que una propiedad que existe en la criptografia, donde se codifica uno o varios datos y da como resultado la generación aleatoria de caracteres alfanuméricos. El resultado de estos datos sera único e irrepetible ademas con una logitud que no varia dependiendo de la codificación que se este usando.
Entonces una colisión en términos de criptografia seria que dos entradas con datos completamente distintos generarían al final de la codificación el mismo Hash, tan sencillo como eso, aunque la probabilidad de que esto suceda es casi imposible debemos tener en cuenta que puede llegar a suceder, debido a que dependiendo de la codificación existe un numero finito de hashes posibles, mientras que las entradas no tienen limites.
Sabiendo todo esto se puede decir que la resistencia a la colision es una función que tienen los hashes para evitar que esto suceda, sera imposible que se cree el mismo hash si se insertan dos datos diferentes, una curiosidad a tener en cuenta que si se modifica un dato de entrada así sea un solo bit, el hash final sera totalmente diferente.
Desde luego hay funciones que no son resistentes a este tipo de coliciones, pero gracias a la evolución de la tecnología se ha dejado esto atrás, una de las funciones mas recordadas que no era resistente a estas colisiones es la MD5.
¿ Y la resistencia a la Pre-Imagen ?
Para entender este concepto tenemos que comprender que es una IMAGEN y PRE-IMAGEN, y para esto tenemos que irnos a una función matemática. donde una PRE-IMAGEN es un conjunto de números o datos , en el caso de la criptografia seria los datos a ingresar, y este conjunto de números o datos tiene como resultado una IMAGEN en el caso de la criptografia seria un Hash
Datos ( Entrada) Pre-Imagen | HASH ( Salida ) (Imagen ) |
---|---|
H | 4 |
O | 5 |
L | 3 |
A | 7 |
- | 9 |
Como vemos el cuadro anterior tenemos unos datos que dan resultado una codificación
Ejemplo:
- El si insertamos un H la salida o codificación seria un 4
- Si insertamos un O la salida o codificacion seria un 5
- Si insertamos un L la codificación de salida seria un 3
- Si insertamos un A no tendría de salida un 7
Todos los datos de entrada es lo que se conoce en el mundo de las matemáticas y criptografia como una PRE-IMAGEN, en este ejemplo serian H-O-L-A
Ahora todo los datos de salida o IMAGEN serian 4-5-3-7-9
Cabe destacar que el 9 es un dato adicional que se agrega según la función de codificación para agregar mas dificultad.
Partiendo de todo esto por lógica un atacante que quiera descubrir los datos originales ( PRE-IMAGEN ) o de entrada solo tendría que usar los datos de la ( IMAGEN ) o salida para descubrir el mensaje original.
En este caso he creado una función la cual existe una probabilidad de que encuentren el mensaje inicial ya que mi hash es muy simple, por eso mi ejemplo no es resistente a un ataque de PRE-IMAGEN.
Ahora una resistencia al ataque de pre-imagen es una función Hash mas elaborada, donde respeta la unidireccionalidad esto significa que a travez de una función es imposible encontrar otra PRE-IMAGEN u entrada que genere una colisión y cada dato insertado da un resultado diferente agregando caracteres alfanuméricos aleatorios, y va dependiendo de la entrada, gracias a estas variaciones se hace casi imposible descubrir el mensaje inicial, esta dificultad se le conoce como resistencia a la Pre-imagen.
Explicando esto con el ejemplo anterior :
Imaginemos que el atacante intenta descubrir que numero es la letra H nosotros de antemano sabemos que es 4 pero al escribir la letra H la función del hash le arrojaría la misma cantidad de números como hubiéramos escrito una frase.
Al insertar una H el resultado seria 5-4-2-8-7
- Espero que esta parte se haya comprendido ya que aunque se explico con una función matemática en la criptografia se usa la misma lógica para crear los Hashes.
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.
Para verificar el hash del ultimo bloque de las transaccion y el hash de la transaccion en https://tronscan.org y nos vamos en el apartado de bloques y seleccionamos ver mas.
Estando ya en la lista de bloques seleccionamos el ultimo bloque creado
Aqui verificamos el Hash del bloque que es
0000000001e37e4e6b6c3dc6c159e5eb0d931f112d9e29aedf64cc144450d214
Bajamos a las transacciones y vemos el numero de bloque coincida con la transaccion en mi caso es la primera obcion y la seleccionamos.
Y aquí vamos a encontrar los detalles de la transacción y el respectivo Hash 4751b00fbde5d07c53f96761fd9b3ae5a2f2f5b00e69b4cdd8922f868364c44e
Para buscar la ultima transaccion en https://etherscan.io/
Para observar el ultimo bloque vamos hacer clip aqui.
Y aqui optendremos el hash del bloque. que es:
0x89ca4dc42cf1242255f8625a3ec33c24b6f86b45a3f44539be6a996c822791b9
Para ver el hash de la transaccion debemos irnos a este apartado.
y aquí observamos el hash de esta transacción.
0x907d4d87b49b07e7f50ca9e51141d39050bd84fe8ad59329a0b833ceaba214fa
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.
CryptoAcademy
D03CA34B258E6E0FD06B2070DDE61B50BD4EEF6161A8EDAA4A420C9AE1BEB7F9
cryptoacademy
0592F5DD27DC72E675B2AB9C77487A69FAAF84196597FA052EC099C18EE7C4C5
Como observamos a simple vista parecen ser las mismas palabras pero vemos que no ya que la primera palabra contiene dos letras mayusculas CriptoAcademy, mientras que la segunda palabra esta toda en minuscula criptoacademy esto da como resultado que la funcion de crear hash, genere salidas que son totalmente diferente, esto se debe a la resistencia de colisión que posee la función del generador de hash SHA-256
En sus propias palabras explique la diferencia entre el hash y la criptografía.
La criptografia es el estudio que se dedica a crear y comprender todo esos procedimientos y tecnicas para transformar un texto facilmente leible a un codigo o texto imposible de interpretar, y una de las funciones mas usadas en la criptografia es la de creacion de hash entonces gracias a esto existen diferencias notables entre ambas y son.
HASH | CRIPTOGRAFIA |
---|---|
Es un algoritmo matematico | Es una ciencia que estudia muchos algoritmos matematicos |
Convierte una entrada en un valor Hash | Convierte cualquier valor o entrada en algoritmos tanto estaticos como el hash asi como algoritmos personalizados por personas o instituciones |
Los hash son imposibles de descifrar | En la criptografia con una clave puedes descubrir el mensaje cifrado |
Son Unidireccionales | Son Bidireccionales |
La logitud de los datos cifrados son estáticos y no varían | La longitud de los datos cifrados varían dependiendo de la información de entrada |
Conclusion
Para concluir se puede decir que gracias a los avances en la tecnologia las funciones para crear hash nos han dado la posibilidad de crear sistemas financieros completos ya que estas codificaciones nos generan una seguridad que es casi imposible de romper, por eso las transacciones en cripto monedas son encriptadas con estos algoritmos, y he aqui el pilar fundamental del las nuevas economías ya que las personas siempre estamos buscando un nivel mayor en seguridad de nuestros datos y si se trata de transacciones financieras mas todavia, nos queda claro que las funciones de hash a sido un acierto y que gracias a estas funciones tenemos todo un ecosistema de cripto monedas que a simple vista son el futuro y actualidad en seguridad a la hora de resguardar datos que sean imposibles de modificar.
Banners tomados del post Principal @pelon
Espectacular trabajo todos los créditos para el
👆 Es la función hash que genera el hash, que hace que sea resistente a la colisión.
Resistencia a Preimagen, muy creativa tu explicación. Pero hay que dejar claro que un atacante desea adivinar la entrada con un hash de salida. Menor probabilidades que esto ocurra, mayor resistencia a preimagen.
Muy buen trabajo, felicitaciones. Creo que te esforzaste por investigar.
Calificación: 9.8
Gracias primera vez que saco tanta nota jajaja. bueno una curiosidad es que aprendi un poco sobre criptografia gracias al documental del asesino del zodiaco de history channel por eso fue que tengo años entendiendo el tema. jaja saludos desde turmero @pelon