Criptografía simétrica
Otro de los conceptos importantes en el mundo de las cripto, es entender la diferencia entre la criptografía simétrica y la criptografía asimétrica.
En la criptografía de clave simétrica, el mensaje se cifra y descifra con la misma palabra clave. Por ejemplo, si escribimos la palabra PAPA, siguiendo un algoritmo que suma letra a cada letra del mensaje “PAPA -> QBQB” la clave sería +1. El cifrado y el descifrado provienen de la clave.
Para que un emisor y un receptor intercambien un mensaje mediante cifrado simétrico, tienen que acordar la clave de antemano y compartirla por un medio seguro. Si el medio no es seguro, la clave y el mensaje pueden quedar comprometidos.
Los algoritmos de hasheo, de los que hablamos antes no son algoritmos de criptografía simétrica ( ni asimétrica ). Son encriptación unidireccional, no hay forma de desencriptar el mensaje.
¿Qué es la criptografía asimétrica?
La criptografía asimétrica es una técnica criptográfica en la que se generan dos claves, una pública y otra privada. La clave pública se comparte con otros emisores y receptores, de forma que puedan enviar un mensaje cifrado, o confirmar una firma de un documento.
Vamos a suponer que Pepe y María quieren mandarse un mensaje.
-> María escribe el mensaje, y lo cifra con la clave pública de Pepe.
-> Se lo manda a Pepe.
-> Pepe descrifra el mensaje con su clave privada, y lo lee.
De esa forma, María puede mandar un mensaje privado, y solo Pepe puede leerlo porque está cifrado con su clave privada. El mensaje podría ser interceptado, pero no podrá ser leído.
En el mundo de las criptomonedas, lo que queremos es firmar transacciones. Así que el camino es al revés.
-> Pepe escribe un mensaje, y lo firma digitalmente con su clave privada. No la revela, solo lo firma.
-> María comprueba la veracidad del mensaje usando la clave pública de Pepe.
-> María tiene total seguridad de que el mensaje ha sido emitido por Pepe.
Ahora, quitemos Pepe y María.
-> El usuario HUDSBBDBJDOODNO, escribe un mensaje y lo firma digitalmente con su clave privada. En el mensaje, establece que transmitirá 3 bitcoins de su cuenta al usuario DFNSDOINFSDFD
-> La red bitcoin comprueba con la clave pública del usuario HUDSBBDBJDOODNO, que el mensaje ha sido transmitido por él. Comprueba que existen los fondos en su cuenta en el ledger, y sella la transacción en la red.
Solo HUDSBBDBJDOODNO sabe quién es HUDSBBDBJDOODNO, y puede o no puede saber quien es DFNSDOINFSDFD. Pero toda la red sabe, gracias a las bondades de la criptografía asimétrica que el mensaje es verídico.
Es imposible, para una computadora como las que tenemos actualmente, encontrar la clave privada desde la clave pública, así que el sistema es seguro siempre y cuándo no se desvele la clave privada.
Recapitulando, tenemos tres tipos de sistemas de cifrado.
-> Cifrado de un solo camino, o hasheo, del que hablamos anteriormente. El mensaje no puede ser derivado desde el hash.
-> Cifrado simétrico, se usa la misma clave para cifrar y descrifrar.
-> Cifrado asimétrico, se usa una clave pública para comprobar la veracidad del emisor, y cifrar un mensaje que se envía al emisor. Firma y descifrado, se hacen con la clave privada que no debe comprometerse.
Tenemos una forma de alzar la voz, diciendo que algo es nuestro, siendo capaces de demostrarlo, sin que nadie pueda impersonarnos y sin dar nuestra identidad.
Este es otro elemento importante de las criptomonedas, sobre el que probablemente, ahonde más, porque solo he explicado lo que es conceptualmente, pero me gustaría explicarlo con algún ejemplo sencillo. Supongo que seguiré más a menudo en navidad, toda pregunta es bievenida. 