Post
Topic
Board Español (Spanish)
Re: Sobre SHA-256
by
Shevek
on 03/06/2013, 14:54:07 UTC
Voy a redondear un poco la explicación de dserrano5

Segundo : No acabo de entender de donde aparece la direccion BTC. Creia que era la clave publica. De hecho yo doy publicamente mi clave (direccion) para que me puedan "enviar " BTC´s

Hay dos conceptos públicos: la "dirección" y la "clave pública". La "dirección" es un resumen de la "clave pública"; el resumen consta de 192 bits (160 + 32 bits de comprobación de errores), que se transcriben en un alfabeto de 58 caracteres (letras minúsculas + letras mayúsculas + números - algunas letras/números que pueden ser confundidos con otros).

La "dirección" siempre es pública, mientras que la "clave pública" no tanto. Todo lo que necesita alguien para enviarte monedas es la "dirección". No hace falta la "clave pública".

Ahora bien, cuando intentas gastar el dinero que tienes en esa dirección, el programa recurre a un algoritmo de firma (técnicamente ECDSA) que usa tu clave privada. En ese momento, tu "clave pública" se hace pública de forma efectiva, para que todo el mundo pueda comprobar la firma (con otro algoritmo que se llama verificación ECDSA... ¡qué sorpresa!).

Tercero : Me queda claro de donde aparecen el par de claves de BTC. La privada se obtiene de un generador PRNG y la publica del producto de curva eliptica, ... muy bien ya tengo mis dos claves, ok. ¿Entiendo bien si digo que la clave de mi wallet me la invento yo y queda encriptada por criptografia simetrica y punto?.

Creo que estás aludiendo a lo que en la jerga se denomina "brain wallet". Puedes proveer una contraseña (aparte, nueva) y con ella se obtiene, mediante SHA256, una clave privada válida. Es la estrategia que usa bitaddress.org

https://dserrano5.es/btc/bitaddress.org.html

Puedes recuperar tu clave privada siempre que te acuerdes de tu contraseña y le pases el SHA256.

O también puede que te refieras a si hay una forma de saltarse el PRNG, de forma que uno mismo provea los suficientes números aleatorios para generar la clave, sin fiarse de los mecanismos internos del programa que genera claves. Digamos, tirando dados.

Ahora mismo no lo hay, pero al creador de bitaddress.com le he sugerido que implemente la opción de introducir tiradas de dados reales. Con 99 tiradas de dados se puede conseguir un número de 256 bits, que puede actuar perfectamente de clave privada. 6^99 ~ 2^256; si queréis comprobarlo con una calculadora: 99 log(6) ~ 256 log(2).

También podrías usar 256 tiradas de una moneda e ir apuntando caras (=0 por ejemplo) y cruces (=1) en su orden. Pasas ese número a hexadecimal y le añades "04" y ya puedes importarlo como clave privada.