Introducción
La criptografía de curva elíptica (del inglés, Elliptic Curve Cryptography, o por sus siglas, ECC) es una de las formas de criptografía más potentes en la actualidad. Una que nos permite obtener un par de claves a las que conocemos como clave pública y privada, permitiéndonos compartir y resguardar secretos de una forma muy segura. Tal es así, que la criptografía ECC es considerada desde su creación hasta nuestros días, una de las tecnologías criptográficas más prometedoras. No sólo porque proporciona la misma o mayor seguridad que el resto de algoritmos de clave pública, sino que también es más eficiente, rápida y escalable. Su uso ha alcanzado prácticamente cualquier escenario donde la seguridad, fiabilidad y confianza son claves. Y de allí, que sea la tecnología elegida para su uso en la tecnología blockchain permitiéndole alcanzar una altísima seguridad.
¿Qué es la Criptografía de Curva Elíptica (ECC)?
La criptografía de curva elíptica (ECC) es un método ampliamente utilizado en la criptografía de datos. Este método se enfoca en la creación de un sistema de cifrado asimétrico, o de clave pública/privada. Sin embargo, la ECC usa una estructura algebraica de curvas elípticas sobre campos finitos para garantizar la seguridad y fiabilidad de sus procesos criptográficos. De esa forma, la ECC permite que las claves sean más pequeñas en extensión en comparación con otros sistemas criptográficos. Y todo ello, sin renunciar en ningún momento a la seguridad del sistema.
Debido a esta característica, su fácil implementación, su altísima escalabilidad gracias a lo poco complejo de sus cálculos, la criptografía ECC es muy ampliamente usada. De hecho, algunas de las aplicaciones más populares de las ECC se ven reflejadas en muchos casos. Entre ellos, en los acuerdos de claves, firmas digitales, generadores pseudoaleatorios, y otras aplicaciones. Adicional a todo esto, la ECC también se puede utilizar para el cifrado, combinando el acuerdo de claves con un esquema de cifrado simétrico, buscando con ello una mejor protección.
Como toda la criptografía de clave pública, ECC se basa en funciones matemáticas que son simples de calcular en una dirección, pero muy difíciles de revertir. Es decir, resulta muy fácil crear una clave ECC, pero romperla es prácticamente imposible. En el caso de ECC, esta dificultad reside en la inviabilidad de calcular el logaritmo discreto de un elemento de curva elíptica aleatoria con respecto a un punto base conocido públicamente. Esta propiedad es conocida como el "problema de logaritmo discreto de curva elíptica" (ECDLP).
Uno de los casos más famosos de uso de ECC es el algoritmo de firma digital de curva elíptica (ECDSA). Este es un algoritmo de firma ampliamente utilizado para la criptografía de clave pública que usa ECC. Un algoritmo que se usa en prácticamente la mayor parte de Internet, y por supuesto, en gran parte de los proyectos de criptomonedas como Bitcoin y Ethereum.
Relacionado: ¿Qué es la criptografía asimétrica?
Historia de la ECC
La criptografía basada en las matemáticas de las curvas elípticas no es un tema nuevo. A mediados de la década de los 1980, los desarrolladores Victor Miller de IBM y Neal Koblitz de la Universidad de Washington, hacen su primera propuesta sobre el uso de las curvas elípticas. En dicho estudio, destacan sus propiedades matemáticas para su uso en aplicaciones de criptografía altamente seguras.
Desde ese momento y hasta la actualidad, la ECC ha demostrado su seguridad al soportar una generación de ataques. Esto debido al crecimiento del sector computacional y al advenimiento de la economía de las criptomonedas. Pero también relacionado con la ampliación del sector de dispositivos inalámbricos que requieren métodos de cifrado más amigables, pero manteniendo los estándares de seguridad.
La tecnología de cifrado de datos basada en las curvas elípticas (ECC) ha estado ganando cada vez más terreno. Sobre todo, en empresas y espacios donde la seguridad y la privacidad son vitales.
En este sentido, la ECC ha sido normalizada por el Instituto Americano de Estándares Nacionales (ANSI), el Instituto Nacional de Estándares y Tecnología (NIST) y por Estándares Federales de Procesamiento de la Información (FIPS). Con ello demuestra, que no solo es una tecnología de gran confianza, sino que también es madura y con gran aplicabilidad.
¿Cómo funciona la ECC?
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:
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.
ECC y su papel en la seguridad de Internet
Los datos encriptados se han convertido en la piedra angular del proceso de compartir información a través de la red. Por lo tanto, no es de sorprender que se estén dedicando largas horas de trabajo en el estudio, análisis y desarrollo de nuevas tecnologías que permitan brindar mayor seguridad a los datos.
En este sentido, la criptografía basada en las curvas elípticas ECC, se ha convertido en una opción bastante importante, debido a la generación de claves criptográficas de longitud mucho más cortas que las que se obtienen de la tecnología RSA, lo que las hace idóneas para aplicaciones criptográficas en móviles y equipos de poca potencia computacional.
Por lo general, el cifrado simétrico es un algoritmo se utiliza para cifrar datos con fines de confidencialidad, como el cifrado de bloque estándar de cifrado avanzado (en inglés AES); el algoritmo asimétrico que utiliza a menudo firmas digitales y transporte de claves, como el RSA; el algoritmo de claves simétricas como es el caso de “Diffie-Hellman” (en inglés DH) y el SHA- 1 de los algoritmos de hash seguros SHA-256 que son aplicados a la integridad.
Como ya se mencionó, ECC puede proporcionar la seguridad mediante el uso de una clave de longitud más corta. Por lo que se adelantan estudios para implementar este tipo de algoritmos en el internet de las cosas (IoT) debido a su baja exigencia de memoria y velocidad de procesamiento características comunes en estos tipos de dispositivos.
ECC y su papel en el mundo de las criptomonedas
El mundo de las criptomonedas es un campo que no podía escapar de las bondades de la ECC. Satoshi Nakamoto se encontró en la encrucijada de disponer de un mecanismo apropiado que le permitiera obtener claves seguras. En su trabajo se encontró que la longitud de muchas de estas claves se convertiría en un problema al momento de compartir claves. Algo especialmente delicado cuando se requería usar dichas claves en dispositivos móviles o simplemente anotarlas en un papel. En tal sentido, se decantó por el uso de criptografía asimétrica basada en las curvas elípticas (ECC), específicamente el estándar ECDSA ya mencionado.
Mediante la aplicación de esta tecnología, Satoshi logró conseguir claves privadas y públicas con una longitud mucho más cortas y con una seguridad equiparable a la que se obtiene con RSA. No obstante, mediante el proceso de encriptado logró que esta longitud se acorta aún más, logrando longitudes de hasta 51 caracteres por clave.
Debido al estado actual de desarrollo de los equipos de computación, se puede afirmar que estos estándares de cifrado y seguridad en la red estarán con nosotros por años.
Pero teniendo siempre en mente, que la tecnología en el desarrollo de nuevos procesadores y el surgimiento de nuevas generaciones de computadoras, dan pie para pensar que algún día estos métodos de criptografía ya no serán confiables y por ende, el estudio de nuevas formas de cifrar los datos es una actividad en constante movimiento.
Pros y contras de las ECC
Pros
- La criptografía asimétrica de clave pública (ECC) es compatible con la mayoría de sistemas operativos y navegadores web modernos.
- Las claves que se obtienen mediante ECC son más pequeñas, lo que significa un mejor rendimiento con menor sobrecarga.
- El ECC escala mejor, a medida que las claves crecen el RSA se vuelve muy lento y pesado.
- Quantum Computing o la Computación cuántica, es un gran enemigo del RSA. Ya que permite romper las claves rápidamente. Por otro lado, el ECC es mucho menos vulnerable a esta nueva generación de computadoras.
Contras
- Una de las principales desventajas de ECC que se ha reportado, es que aumenta significativamente el tamaño del mensaje cifrado, más que el cifrado RSA.
- El algoritmo ECC es más complejo y más difícil de aplicar que RSA. Esto aumenta la probabilidad de errores de implementación, reduciendo así la seguridad del algoritmo.
- La criptografía de clave pública es computacionalmente más costosa que el cifrado de clave privada, que emplea una clave de cifrado compartida única.
- En los dispositivos inalámbricos, el cifrado de clave pública puede acortar la vida útil de las baterías o de los propios dispositivos.
Relacionado: ¿Qué es SHA-256? El algoritmo criptográfico usado por Bitcoin
Futuro de la tecnología ECC
El futuro de la criptografía basada en las curvas elípticas es muy prometedor. Esto dado que su adopción implica mejoras en el rendimiento debido a la rapidez con que se obtienen las claves. Adicional a esto, su longitud de clave mucho más corta lo hace más manejable para distintos dispositivos. Esto unido a su mejor escalabilidad en comparación con otros métodos y su menor vulnerabilidad al análisis criptográfico. Todas estas características le hacen la predilecta de muchos proyectos enfocados en la seguridad.
No obstante las desventajas reportadas por algunas personas, los estudios que se adelantan para optimizar los detalles y características de estas tecnologías de seguridad criptográfica allanará el camino para futuras implementaciones en los que se requiera la disposición de un sistema de cifrado escalable, rápido, compacto y especialmente seguro.
Conclusiones
No cabe duda que el tema de la seguridad de nuestros datos en la red, es uno de los más relevantes. Y de hecho, es un tema que ha consumido miles de horas de estudio y análisis. Todo ello con el fin de disponer de los mejores sistemas de cifrado de datos para tranquilidad de todos. En tal sentido, la ECC es una tecnología que ha ido tomando su sitial en las preferencias de muchas aplicaciones tanto para equipos de escritorios como para móviles. Y en los últimos años, ha tomado lugar en el terreno de la IoT y blockchain, gracias a su versatilidad y seguridad.
Esta tecnología ha estado atrayendo el interés significativo, y continuará en los próximos años. A pesar de la constante innovación, esta temática sigue confrontando nuevas dificultades y severos retos. Donde algunos de ellos implican una revisión constante de sus características con la finalidad de obtener un producto de gran confiabilidad y aceptación en el público en general.