La clave privada es una de las partes criptográficas que se generan durante el procedimiento de generación de claves del sistema criptográfico asimétrico.
Una clave privada o private key, es una clave secreta generada durante el proceso de criptografía asimétrica. Esta clave es la que permite la total propiedad y manejo de nuestros monederos de criptomonedas.
En Bitcoin, esta clave es generada usando criptografía del tipo ECDSA, usando la curva elíptica secp256k1. Este es un tipo especial de criptografía asimétrica, que nos ofrece un alto nivel de seguridad.
Gracias al uso de este sistema criptográfico, se pueden generar un número casi infinito de claves privadas. De hecho, casi cualquier número de 256 bits es una clave privada válida. Es decir, con este sistema somos capaces de producir 2^256 combinaciones de claves distintas. Tantas que al ritmo de creación actual tardaríamos al menos 4 trillones de años en crearlas todas. Su diversidad y la dificultad de calcularlas es precisamente lo que hace tan seguro este sistema.
Durante el proceso de creación de un monedero de Bitcoin, lo primero en crear es la clave privada. A continuación, se da inicio a la creación de la clave pública. Pues esta última, está relacionada matemáticamente con la llave privada. Una vez creadas ambas, la clave pública es usada para formar la dirección Bitcoin.
Todo este proceso sigue unas reglas fijas y es imposible hacer el proceso a la inversa. No podemos derivar la clave privada usando ni la dirección ni la clave pública.
¿Cómo funcionan las claves privadas?
El funcionamiento de las claves privadas es sencillo. Esta es tan solo un número aleatorio, que se aplica a la fórmula del sistema criptográfico. Esta fórmula puede responder a curvas conocidas como la secp256k1, secp256r1 o Curve25519. Una vez aplicado este número en la fórmula, se obtiene la llamada clave privada. Esta clave se utiliza para generar la clave pública y crear un sistema de criptografía asimétrica. Es decir, un sistema con dos claves, la privada y la pública.
Gracias a este sistema, podemos compartir con quien guste la clave pública. Esto no generará ningún problema de seguridad o de privacidad. Ello se debe a que no hay forma práctica de conseguir la clave privada de la cual se ha derivada la clave pública. Una situación positiva, pues podemos compartirla y recibir mensajes cifrados de otras personas que tengan acceso a nuestra clave pública. Estos mensajes, sólo podrán ser visibles para quien originó el mensaje y nosotros que tenemos la clave privada. Pues la única forma de descifrar el contenido es con dicha clave.
Claves privadas en Bitcoin
Una clave privada de 256 bits como las que se generan en Bitcoin, generalmente tiene la siguiente forma:
A5373D44C6D87DC0FA6A6738334369F4553213303DA61F20BD67FC233AA37485
Esta forma se explica por las siguientes reglas:
- Una clave privada de 256 bits, está dividida en una secuencia de 64 caracteres.
- El rango de los caracteres respeta la ordenación hexadecimal, con un rango que va de A-F y de 0-9.
Sin embargo, las claves bajo este formato son complejas de manejar para los usuarios. Por eso, para ciertas tareas en Bitcoin, se ha creado un algoritmo que las simplifica, con el objetivo de ponerlas a buen resguardo, puesto que son la llave para acceder a nuestro monedero. Este sistema creado por Bitcoin se llama: formato de importación Base 58.
Este formato de importación Base 58, no es más que un algoritmo especial que transforma nuestra clave privada, en una cadena criptográfica más corta y sencilla. Por ejemplo, de nuestra clave privada anteriormente dada, obtenemos:
C7w8CPTv25oeXXFPz3nnXCPQw7KPaCXHZD9DYWQ66TCg
Esta notación es la que más habitualmente vemos en Bitcoin como una clave privada. Se usa este formato, gracias a que incorpora una serie de elementos que ayudan a asegurar que el mismo es correcto, algo imposible con el formato original de clave privada. Adicionalmente, es más sencillo de manejar y su implementación en software, ayuda a mejorar los niveles de seguridad de los monederos.
Casos de uso de la clave privada
Pongamos un ejemplo de este caso:
Ejemplo de funcionamiento de una clave privada
Supongamos que Juan quiere comunicarse con María de forma segura. Para ello, Juan crea una clave privada y de allí deriva una clave pública. Una vez creadas ambas claves, Juan entrega la clave pública a María. Esta le permitirá a María, escribir un mensaje y enviarlo a Juan de forma cifrada. Todo ello, con la seguridad de que nadie más que él podrán ver el mensaje. Esto es gracias a que solo Juan tiene la clave privada, y solo él puede descifrar los mensajes cifrados con la clave pública que él ha generado.
Es precisamente este esquema de seguridad el que permite que el uso de las claves pública y privadas sea tan seguro. Y dado que las claves privadas son la llave que permite gastar los bitcoins, es imprescindible mantenerlas seguras. Las claves privadas pueden guardarse en archivos informáticos, pero al tratarse de simples números pueden también imprimirse en papel. Incluso muchos recomiendan cifrar en otro sistema las claves privadas, para agregar una capa más de seguridad.
Casos de uso de esta tecnología podemos verlo en el software PGP. Este sistema creado por Phil Zimmerman, permite utilizar criptografía asimétrica para enviar mensajes de forma segura. Otra variante muy conocida y utilizada es GPG desarrollado por Werner Koch, que utiliza el estándar OpenPGP.
El mismo sistema se utiliza también en las comunicaciones SSL/TLS de los sitios seguros de Internet. Prácticamente todo en Internet usa algún tipo de cifrado asimétrico, y ejemplo de ello este Academy.