Criptografía asimétrica: Sistemas de Cifra con Clave Pública – Conceptos Bitcoin (II)

Sistema cifra de clave pública o asimetrico

(OroyFinanzas.com) – En nuestro artículo anterior explicamos los principios de los sistemas de clave secreta o criptografía simétrica. En este artículo explicaremos los fundamentos de la criptografía asimétrica o de clave pública para entender su relevancia en el protocolo Bitcoin.

La principal ventaja de la criptografía simétrica sobre la criptografía asimétrica es su velocidad. Es más rápida porque los métodos de cifrado utilizados son más sencillos y por eso el cifrado y descifrado es mucho más rápido, pero veremos ahora la importancia del problema de la distribución de la clave para la criptografía.

El problema de la distribución de la clave con la criptografía simétrica

Las comunicaciones utilizando criptografía simétrica o de clave secreta implican que la clave sólo la conocen el emisor y receptor del mensaje cifrado.

El problema con la criptografía simétrica es cómo enviar al destinatario la clave con la que se cifró el mensaje. Porque si es una persona que se conoce y vive cerca se puede quedar y entregar personalmente. Pero si vive lejos o se tienen que enviar mensajes a muchas personas, entonces sería inmanejable. Hasta mediados del siglo XX, muy pocos necesitaban realmente hacer uso de la criptografía: militares, diplomáticos y algunas empresas. Por eso tenían suficiente con la criptografía de clave simétrica. Podían gastar tiempo y dinero en distribuir las claves.

Los militares podían enviarlas custodiadas por soldados, los políticos podían protegerlas por fuerzas de seguridad y las grandes empresas podían contratar a agentes de seguridad.

A finales del siglo XX cada vez era mayor la demanda del uso de la criptografía, por lo que resultaba necesario encontrar un mecanismo capaz de distribuir claves secretas de manera rápida, segura y al alcance de todos.

¿Cómo enviar la clave secreta de forma segura a través de un canal inseguro?

Volvamos a los candados. Pensemos en un sencillo candado con su llave. El candado representará el algoritmo de cifrado y la llave representará la clave de cifrado.

Con un candado pueden realizarse dos operaciones, abrir y cerrar:

1. Cerrar: Para cerrarlo basta con apretar el gancho hasta que haga clic y todo el mundo lo puede hacer.

2. Abrir: Para abrir el candado se necesita la llave y eso solo lo puede hacer una persona.

Todo el mundo sabe cómo cerrar el candado, basta con apretarlo, pero sólo una persona sabe cómo abrirlo, la que posea esa llave y no cualquier llave.

¿Y cómo se envía una clave secreta usando un candado?

Imagínese que gestiona un servicio de mensajería entre un grupo de personas y quiere asegurar que los mensajes no puedan ser interceptados. Entonces diseñaría un sistema en el que enviaría una caja y un candado abierto a todos los clientes. Los clientes pondrían su carta en la caja y cerrarían el candado para enviar el mensaje a un miembro del grupo. El problema de este servicio sería que todos tendrían que tener la misma llave para abrir los candados y si todos tuvieran diferentes llaves sería muy complicado gestionar la distribución de las cajas y llaves correspondientes. Esta analogía explica el problema de la criptografía simétrica.

Con la criptografía asimétrica tenemos otras soluciones para el servicio de mensajería. En vez de que cada persona tenga que utilizar llaves privadas diferentes podemos crear dos tipos de clave. Una clave es privada y otra clave es pública, la clave pública se deriva matemáticamente de la clave privada, pero no se puede deducir la clave privada conociendo la clave pública. Veremos en artículos posteriores que el funcionamiento de direcciones públicas y privadas del protocolo Bitcoin funciona de la misma forma.

En los sistemas de clave pública lo único importante es la protección de la clave privada. Ese es el fundamento de cómo funciona la criptografía de clave pública.

Bases de la criptografía de clave pública

Para cifrar información no usaremos candados para cifrar la información sino una analogía que nos ayuda a comprender cómo funcionan los algoritmos de cifrado de clave pública. Se dispone de dos claves: una es pública y por tanto conocida por todo el mundo y la otra es privada y conocida solamente por su poseedor. Aunque cualquiera puede cifrar usando la clave pública, sólo el que posee la correspondiente clave privada podrá descifrar.

En este tipo de criptografía se utiliza una pareja de claves: una para cifrar y otra para descifrar. La clave pública debe ser conocida por todo el mundo, lo que facilita su distribución. En el protocolo Bitcoin la clave pública es la dirección a la que podemos enviar bitcoins a otros usuarios.

La clave pública interesa que todo el mundo la conozca. Así que se puede colgar en una página web, mandarla por correo electrónico o incluso escribirla en la tarjeta de visita.

Una vez que alguien conoce tu clave pública, puede enviarte mensajes cifrados con la seguridad de que nadie más que tú podrá descifrarlos, porque sólo tú posees la clave privada correspondiente a esa clave pública. La clave privada es muy importante que se mantenga en secreto y sólo el propietario la conozca.

Video Sistemas de cifra con clave pública (Intypedia)

Por eso a la criptografía de clave pública se le llama también asimétrica.

Si se cifra un mensaje con la clave pública no se podrá descifrarlo usando esa misma clave pública. Se necesitará usar la clave privada. Lo que se cifra con una clave, se debe descifrar con la otra. Es lo que en matemática discreta se conoce como inversos.

Criptografía de clave pública para la Firma Digital

Firma Digital: ¿También puede cifrarse con la clave privada?

Sí, no hay por qué usar la clave pública sólo para cifrar y la privada, sólo para descifrar. También puede hacerse al revés.

Si cifra algo con su clave privada, entonces cualquiera que conozca su clave pública podrá descifrarlo.

Como esa operación sólo se puede hacer con la clave privada, lo interesante de esto es que entonces también se puede firmar un mensaje con una firma digital. Cifrar un mensaje con una clave privada equivale a firmarlo porque nadie más que el poseedor de la clave privada podría haber cifrado ese mensaje. Cuando cifras algo con tu clave privada estás demostrando tu autoría: sólo tú puedes haberlo cifrado. Eso es lo que se llama autenticación. Aunque cifrar con tu clave privada no proporciona confidencialidad al mensaje, es decir no le añade secreto, sí asegura la autenticación: sólo tú pudiste haberlo cifrado. Equivale por tanto a haberlo firmado.

Cualquiera puede descifrar el mensaje usando la clave pública, lo que equivale a verificar una firma.

En la práctica, debido a que los algoritmos de cifrado asimétrico son muy lentos, no suelen usarse para cifrar todo el mensaje, sino un resumen del mismo. Explicaremos ese concepto en las funciones unidireccionales.

Si un atacante descifra el mensaje que yo he cifrado con mi clave privada usando mi clave pública y luego lo cifra usando su clave privada, ¿qué pasaría?

Cuando los destinatarios intenten verificar una firma, o lo que es lo mismo descifrar usando nuestra clave pública, entonces se obtendrá un texto sin ningún sentido, porque no se puede descifrar un texto cifrado con una clave privada mediante una clave pública que no le corresponde. Eso es lo de los inversos que antes habíamos comentado.

Por eso cuando se cifra algo con su clave privada luego no puede decir que no lo firmó.

Y esta propiedad del cifrado asimétrico se conoce como no repudio, ya que no podrás repudiar tus mensajes.

Criptografía asimétrica en Bitcoin

El sistema de cifra con clave pública es una parte fundamental del protocolo Bitcoin para el envío y recepción de la moneda bitcoin entre los participantes del sistema.

Por ejemplo una clave pública Bitcoin podría ser esto 31uEbMgunupShBVTewXjtqbBv5MndwfXhb ya que todas las direcciones públicas Bitcoin siempre empiezan por 1 o 3.

Ejemplo de una clave privada 5Kb8kLf9zgWQnogidDA76MzPL6TsZZY36hWXMssSzNydYXYB9KF. Las claves privadas Bitcoin siempre empiezan por 5.

Cuando se envía desde un monedero (cliente) dinero se tiene que firmar la transacción con la clave privada enviándola a una clave o dirección pública del receptor. Todo el mundo podrá comprobar el saldo de una clave pública en una página como Blockchain.info o blockchainexplorer.com, pero solamente el propietario de la clave privada de esa cuenta podrá utilizar el saldo disponible en la clave pública. En este sentido el protocolo Bitcoin funciona bajo el mismo principio que la firma digital o el envío de mensajes cifrados.

¿Cómo es posible que conociendo la clave pública no pueda descifrarse el mensaje cifrado con ella?

En un buen algoritmo de clave asimétrica el conocimiento de la clave pública no permite obtener ninguna información sobre la correspondiente clave privada ni descifrar el texto que con ella se ha cifrado. Para comprender cómo funcionan hay que entender primero qué son las funciones hash que explicamos en el próximo artículo.

Fuente: Intypedia

© OroyFinanzas.com

loading...

© OroyFinanzas.com

Sobre el autor

Alex Preukschat
Autor de BitcoinComic.org - Estudioso del dinero en todos sus formatos con énfasis en el oro y Bitcoin. Twitter @AlexPreukschat
mencionado en: