• No results found

Chapter 4: Quality in ECEC services and in ECEC service systems In the preceding chapters, the issue of ECEC service quality has arisen repeatedly.

4.3 Practitioner qualifications and ECEC quality

Hasta la segunda mitad de la década de los 70 del siglo pasado, la criptografía se fundamentaba en los sistemas de clave simétrica, es decir, que la misma clave con la que se cifraba una información servía para descifrarla. Eso suponía que las claves secretas debían compartirse entre, al menos, dos usuarios de tales sistemas. Además de las ya por todos conocidas recomendaciones de nuestro refranero sobre los secretos compartidos entre dos, o entre tres o más, la criptografía de clave simétrica adolece de diversos problemas:

 Si deseamos mantener al mínimo la magnitud del número de claves compartidas en una red de usuarios, es decir, que cada clave se comparta entre tan solo dos usuarios, debe manejarse un número de claves, lo que origina un resultado cuadrático en función de .

 La distribución de claves secretas debe realizarse bien por comunicación directa (que no siempre es posible), bien sobre canales de comunicación generalmente inseguros.

Para eliminar estos problemas, en la década de los 70 del pasado siglo se atisbaron diferentes soluciones que culminaron en 1976 con la publicación del intercambio de claves Diffie-Hellman [12] y el establecimiento por estos autores de cómo debería construirse un protocolo de firma digital mediante funciones unidireccionales (anexo A), aunque dejando abierta la búsqueda de las funciones adecuadas. Un año más tarde

se diseñó el algoritmo RSA de Rivest, Shamir y Adleman [13], el primer criptosistema de clave pública. Posteriormente, algunos años después, pudieron ver la luz otros diseños de criptosistemas como ElGamal [14] o la criptografía sobre curva elíptica [15, 16] (ambos de 1985). Desde entonces, la comunidad criptográfica está trabajando en la búsqueda de nuevas funciones unidireccionales basadas en problemas matemáticos diferentes, así como en el análisis del considerable conjunto ya encontrado de las mismas, para establecer esquemas más eficientes y seguros que perfeccionen los resultados.

De acuerdo a los fundamentos para el intercambio de claves Diffie-Hellman, el uso más extendido de un criptosistema de clave pública completo como RSA se encuentra en crear una infraestructura de comunicaciones seguras mediante el desdoblamiento de las claves clásicas en dos: una privada, solo conocida por su propietario, y otra pública, derivada de la privada y de conocimiento público, asumiendo que de esta clave pública no es posible el cálculo de la privada bajo el estado actual de la tecnología.

Las funcionalidades más comunes de la criptografía de clave pública son las siguientes:

 Por un lado, la encriptación de la información: cualquier conocedor de la clave pública puede codificar cualquier información, y esta información codificada solo podrá decodificarse mediante la clave privada correspondiente y no por la clave pública conocida, por lo que podrá transmitirse sin problemas por un canal de comunicación inseguro.

 Por otro, la autenticación: cualquier información cifrada con una clave privada puede descifrarse con su correspondiente clave pública. Es evidente que todo el mundo tiene acceso a la información en claro y no se cumple en este sentido la función de encriptación, pero supuesto que la clave pública está directamente vinculada a una cierta identidad, ésta no podrá repudiar su origen, es decir, no podrá negar que la información ha sido encriptada con su correspondiente clave privada. Es el fundamento de la firma digital.

Los fundamentos matemáticos de estos criptosistemas los encontramos en funciones unidireccionales cuya imagen es computable fácilmente, pero cuya función inversa es computacionalmente intratable en la actualidad. RSA, por ejemplo, está basado en la facilidad del cálculo de la multiplicación de dos números primos y , aunque sean de gran tamaño (digamos del orden de10200), para obtener un producto , y en la idea básica de que conocido no pueden obtenerse fácilmente y . Formalmente, definimos la función RSA como:

en la que es el producto de dos primos y (en la práctica, como hemos anticipado, de gran tamaño), mientras que es un entero tal que (correspondiendo a la función de Euler sobre ), y primo con respecto a . La clave privada será tal que

mientras que la clave pública corresponderá al par . Tanto , , como deben permanecer secretos.

En resumen, la multiplicación puede realizarse eficientemente, pero no es factible computar desde en sin conocer y , y estos a su vez no pueden computarse hoy por hoy mediante la factorización de si son lo suficientemente grandes.

Otro ejemplo de estas funciones unidireccionales, también denominadas funciones trampa, más conocidas por su denominación en inglés trapdoor functions, la encontramos en la exponenciación discreta y en su inversa, el logaritmo discreto, en las que está basado el criptosistema de ElGamal, entre otros. Ahora tenemos un primo y sea un generador del grupo cíclico . Definimos esta función como:

donde resulta en un homomorfismo desde un grupo aditivo a uno multiplicativo, en el que encontraríamos, por ejemplo, que . Pero también es un isomorfismo puesto que admite la función inversa

denominándose esta última función como función del logaritmo discreto. En este caso, mientras que puede computarse de manera eficiente, se mantiene hoy intratable computacionalmente para una lo suficientemente grande.

Existen otras funciones trampa de uso más o menos generalizado en criptografía, pero la búsqueda de utilidad para nuestro contexto en Blockchain/Bitcoin nos lleva a contemplar con algo más de profundidad un esquema análogo al del problema del logaritmo discreto, pero ahora sobre los puntos definidos en una curva elíptica cuyas coordenadas pertenecen a un cuerpo finito.