Criptografía de Curva Elíptica (ECC), el corazón de la seguridad en el mundo cripto y de Internet

Los algoritmos de curva elíptica ECC, que se usan para cifrar o realizar firmas digitales, como “Elliptic Curve Digital Signature Algorithm” (ECDSA), no utilizan números primos, como en el caso de “Rivest Shamir Adleman” (RSA), sino coordenadas en una curva elíptica. 

En su representación algebraica, una curva elíptica se expresa con la siguiente ecuación: 

y^2 = x^3 ax b

Dependiendo del valor de a y b, las curvas elípticas tomarán distintas formas en el plano. En el caso de Bitcoin, se utiliza una curva elíptica ECDSA usando la curva secp256k1, que tiene la siguiente forma:

https://lh5.googleusercontent.com/zRRp_0uLadvJLWOjq3HOlK50LbaKxy4jpdrtjjirhxDlURIHom_f0OMoDksq8AL_W1-Fco1sAfDaeK45BLlvkfQEVQxPrQ7mZTSwuBgudaDXHu-Zgtro556Qn-AHbN_OgyqujQQJ

Un par de claves para el sistema

Los sistemas de criptografía asimétrica o de clave pública utilizan dos claves distintas: una de ellas puede ser pública, la otra es privada, esta última la resguarda el usuario para poder acceder a la información que recibe a través de su clave pública. 

La posesión de la clave pública no proporciona suficiente información para determinar cuál es la clave privada. Este tipo de sistemas se basa en la dificultad de encontrar la solución a ciertos problemas matemáticos. Uno de estos problemas es el llamado logaritmo discreto. 

Encontrar el valor de b dada la ecuación a^b = c, cuando a y c son valores conocidos, puede ser un problema de complejidad exponencial para ciertos grupos finitos de gran tamaño; mientras el problema inverso, la exponenciación discreta puede ser evaluado eficientemente usando por ejemplo exponenciación binaria. 

Tomando en consideración todo lo anterior, el proceso de crear una clave pública comienza con la creación de una clave privada aleatoriamente llamada k, que es un punto generador dentro de la curva elíptica. Este valor k se convierte en la clave privada y a partir de ésta se calcula la clave pública mediante las funciones algorítmicas correspondientes, propias del protocolo en el cual se generan dichas claves.

Mediante la clave pública es prácticamente imposible calcular la clave privada que se genera en el proceso, es por esta razón que a este método de calcular una clave pública y una privada relacionadas entre sí, se le llama criptografía asimétrica. 

Al final del proceso se obtienen entonces, dos claves encriptadas según los lineamientos de cada plataforma, donde el usuario que posea la clave privada tendrá acceso a la información encriptada con la clave pública correspondiente.