- Desde
- 21 Ene 2018
- Mensajes
- 4,576
- Puntuación
- 10,529
A veces los entendidos, escriben sobre cosas que se dan por sabidas.
El hilo esta abierto a mas aportaciones y/o correcciones. He intentado resumir algunos conceptos que he leído, aunque me ha salido un poco largo...
Una de esas cosas es el nombre-verbo HASH
Hay varios usos, en las monedas criptográficas para este termino.
Hash
HashPower
Hashrate
El Hash Criptográfico es una función matemática o un conjunto de ellas, que transforma un mensaje de entrada de diferente longitud en una sola salida y de longitud fija.
También se puede definir como una etiqueta o huella digital del mensaje inicial
Criptográfico significa que tiene que tener un conjunto de objetivos de diseño y unas propiedades particulares para su uso en áreas donde se quiera conseguir seguridad, privacidad, autenticidad y confidencialidad
Una propiedad de un Hash criptográfico requiere que sea eficiente, rápido. Es decir, que dada una entrada no requiera mucho tiempo y recursos para calcular la salida.
Otra propiedad requerida es que tenga lo que le llaman Resistencia a la Colisión. Significa que sea difícil encontrar dos entradas distintas que den la misma salida o Hash. Aunque dicen que es matemáticamente imposible garantizar que no pueda ocurrir. Aunque, actualmente, seria necesaria una gran potencia computacional y tiempo astronómico para conseguir una colisión.
También se necesita que la salida hash no releve y oculte los datos del texto inicial. Que no pueda haber ninguna correlación. Tan simple. p.e. como ¿era par o impar la entrada inicial?
Sigamos...otra característica seria que la salida o Hash, debería parecer aleatoria. Aunque digan que la aleatoriedad no existe en computadoras
Estas cualidades se están apoyando mutuamente. Si se cumple una o varias se cumplirían las restantes.Por ejemplo. Si hay aleatoriedad en las salidas, es mas difícil el encontrar Colisiones
Estas funciones Hash se utilizan en firmas digitales, en los protocolos del comercio electrónico.Para autentificar mensajes. Generar numeros “aleatorios” (sabemos que estos no existen). En la elaboración y uso de contraseñas de seguridad entre otros usos.
Pero, lo que nos importa aquí y ahora (...) es para la Generación de Bitcoins y su protocolo
Por ejemplo. Para generar una clave Publica y según la wiki, son necesarios 10 pasos.Véase cuantas funciones Hash son necesarias
0 – Tener una clave privada ECDSA
1 –Seleccionar la clave pública generada por ECDSA:
2 –Hacer un hash con SHA-256 sobre la clave pública:
3 –Hacer un hash con RIPEMD-160 sobre el resultado anterior del hash SHA-256:
4 –Añadir el byte de versión delante del hash que ha creado RIPEMD-160 hash
5 –Hacer un hash SHA-256 sobre el resultado extendido de RIPEMD-160
6 –Hacer un hash SHA-256 sobre el hash anterior SHA-256:
7 –Seleccionar los primeros 4 bytes del último hash SHA-256. Ese es el identificador checksum de la dirección pública
8 –Añadir los 4 bytes del checksum del punto anterior al hash extendidoRIPEMD-160 del punto 4. Esto es una dirección Bitcoin de 25 bytes binaria
9 – Convertir el resultado de una cadena de bytes a una cadena con base58
Y con eso obtenemos finalmente nuestra dirección pública Bitcoin
El hilo esta abierto a mas aportaciones y/o correcciones. He intentado resumir algunos conceptos que he leído, aunque me ha salido un poco largo...
Una de esas cosas es el nombre-verbo HASH
Hay varios usos, en las monedas criptográficas para este termino.
Hash
HashPower
Hashrate
El Hash Criptográfico es una función matemática o un conjunto de ellas, que transforma un mensaje de entrada de diferente longitud en una sola salida y de longitud fija.
También se puede definir como una etiqueta o huella digital del mensaje inicial
Criptográfico significa que tiene que tener un conjunto de objetivos de diseño y unas propiedades particulares para su uso en áreas donde se quiera conseguir seguridad, privacidad, autenticidad y confidencialidad
Una propiedad de un Hash criptográfico requiere que sea eficiente, rápido. Es decir, que dada una entrada no requiera mucho tiempo y recursos para calcular la salida.
Otra propiedad requerida es que tenga lo que le llaman Resistencia a la Colisión. Significa que sea difícil encontrar dos entradas distintas que den la misma salida o Hash. Aunque dicen que es matemáticamente imposible garantizar que no pueda ocurrir. Aunque, actualmente, seria necesaria una gran potencia computacional y tiempo astronómico para conseguir una colisión.
También se necesita que la salida hash no releve y oculte los datos del texto inicial. Que no pueda haber ninguna correlación. Tan simple. p.e. como ¿era par o impar la entrada inicial?
Sigamos...otra característica seria que la salida o Hash, debería parecer aleatoria. Aunque digan que la aleatoriedad no existe en computadoras
Estas cualidades se están apoyando mutuamente. Si se cumple una o varias se cumplirían las restantes.Por ejemplo. Si hay aleatoriedad en las salidas, es mas difícil el encontrar Colisiones
Estas funciones Hash se utilizan en firmas digitales, en los protocolos del comercio electrónico.Para autentificar mensajes. Generar numeros “aleatorios” (sabemos que estos no existen). En la elaboración y uso de contraseñas de seguridad entre otros usos.
Pero, lo que nos importa aquí y ahora (...) es para la Generación de Bitcoins y su protocolo
Por ejemplo. Para generar una clave Publica y según la wiki, son necesarios 10 pasos.Véase cuantas funciones Hash son necesarias
0 – Tener una clave privada ECDSA
1 –Seleccionar la clave pública generada por ECDSA:
2 –Hacer un hash con SHA-256 sobre la clave pública:
3 –Hacer un hash con RIPEMD-160 sobre el resultado anterior del hash SHA-256:
4 –Añadir el byte de versión delante del hash que ha creado RIPEMD-160 hash
5 –Hacer un hash SHA-256 sobre el resultado extendido de RIPEMD-160
6 –Hacer un hash SHA-256 sobre el hash anterior SHA-256:
7 –Seleccionar los primeros 4 bytes del último hash SHA-256. Ese es el identificador checksum de la dirección pública
8 –Añadir los 4 bytes del checksum del punto anterior al hash extendidoRIPEMD-160 del punto 4. Esto es una dirección Bitcoin de 25 bytes binaria
9 – Convertir el resultado de una cadena de bytes a una cadena con base58
Y con eso obtenemos finalmente nuestra dirección pública Bitcoin
Última edición: