• No se han encontrado resultados

Informe esamcid sobre protocolos criptográficos

N/A
N/A
Protected

Academic year: 2021

Share "Informe esamcid sobre protocolos criptográficos"

Copied!
38
0
0

Texto completo

(1)

criptogr´

aficos

Diciembre de 2017

Resumen

En este documento se hace una presentaci´on de diferentes tipos de protocolo criptogr´afico que potencialmente pueden aplicarse en la Sociedad Digital actual.

Los protocolos se agrupan en dos grandes familias: protocolos relacio-nados con cifrado (confidencialidad) de la informaci´on por un lado, y protocolos relacionados con firma (autenticaci´on) de la informa-ci´on por otro lado. Se explican diferentes extensiones de los conceptos cl´asicos de cifrado y firma, el estado del arte para cada una de esas extensiones, y las posibles aplicaciones que esos protocolos podr´ıan tener en situaciones reales.

Tambi´en se dedica una secci´on independiente al tema de la cripto-graf´ıa funcional, que engloba protocolos relacionados con cifrado y con firma, y que est´a recibiendo mucha atenci´on por parte de la co-munidad criptogr´afica en los ´ultimos a˜nos, debido a la gran cantidad de aplicaciones que tiene.

El objetivo de este documento es dar a conocer al lector interesado un buen n´umero de protocolos criptogr´aficos existentes, diferentes a los t´ıpicos protocolos b´asicos de cifrado y firma. Para permitir una lectura m´as fluida y que el texto llegue a un p´ublico lo m´as amplio posible, se ha evitado entrar en definiciones y descripciones demasiado formales, siempre que ha sido posible. De todas maneras, al final del documento se listan los principales tipos de protocolo criptogr´afico que aparecen en el texto, acompa˜nados del enlace de wikipedia en el que est´an descritos con m´as detalle.

Subvencionado por el Ministerio Espa˜nol de Econom´ıa y Universidades me-diante el projecto MTM2013-41426-R.

(2)

´Indice

1. Introducci´on 1

1.1. Criptograf´ıa moderna: el paradigma de la seguridad

de-mostrable . . . 1

1.2. Funcionalidades criptogr´aficas b´asicas: cifrado y firma 2 1.3. Criptograf´ıa sim´etrica y criptograf´ıa asim´etrica . . . . 3

1.4. Nuevos escenarios criptogr´aficos: la criptograf´ıa funcio-nal . . . 6

1.5. Entornos matem´aticos donde se dise˜nan protocolos crip-togr´aficos . . . 7

1.5.1. Factorizaci´on de enteros . . . 8

1.5.2. Logaritmo discreto . . . 9

1.5.3. Emparejamientos bilineales . . . 9

1.5.4. Ret´ıculos euclideanos . . . 10

2. Protocolos criptogr´aficos de cifrado 13 2.1. Cifrado homom´orfico . . . 13

2.1.1. Aplicaciones . . . 14

2.1.2. Esquemas concretos existentes . . . 14

2.2. Cifrado determinista . . . 15

2.3. Cifrado que preserva el formato o el orden . . . 16

3. Protocolos criptogr´aficos de firma 17 3.1. Firmas ciegas . . . 17

3.1.1. Aplicaciones . . . 18

3.1.2. Esquemas concretos existentes . . . 19

3.2. Firmas an´onimas: de grupo o de anillo . . . 19

3.2.1. Aplicaciones . . . 20

3.2.2. Esquemas concretos existentes . . . 21

3.3. Firmas agregadas . . . 21

3.3.1. Aplicaciones . . . 22

3.3.2. Esquemas concretos existentes . . . 23

4. Protocolos de criptograf´ıa funcional 24 4.1. Criptograf´ıa basada en identidades . . . 24

(3)

4.1.2. Esquemas concretos existentes . . . 25

4.2. Criptograf´ıa basada en atributos . . . 25

4.2.1. Aplicaciones . . . 26

4.2.2. Esquemas concretos existentes . . . 27 5. Referencias externas sobre los protocolos criptogr´aficos de

este informe 28

(4)

1.

Introducci´

on

1.1.

Criptograf´ıa moderna: el paradigma de la seguridad

demostrable

¿Qu´e quiere decir que un protocolo criptogr´afico sea seguro? La respuesta a esta pregunta depender´a del tipo de protocolo criptogr´afico, y posiblemen-te haya varias respuestas posibles, cada una correspondienposiblemen-te a un nivel de seguridad deseado (de m´as d´ebil a m´as fuerte).

Por ejemplo, consideremos una aplicaci´on de cifrado de mensajes electr´ oni-cos: si un usuario A quiere enviar un mensaje m cifrado a un usuario B, la aplicaci´on calcula un valor cifrado c = Enc(m, A, B) y lo env´ıa por co-rreo electr´onico (a trav´es de un canal posiblemente p´ublico) al usuario B, qui´en ejecuta una funci´on de descifrado para recuperarm = Dec(c, A, B). Posiblemente alguna de esas dos funciones necesiten recibir como entrada las claves p´ublicas y/o privadas deA y/o deB. Puesto que el canal por el que viaja el valor ces p´ublico, un primer nivel de seguridad parece obvio: un atacante (es decir, un usuario diferente de B) que obtenga el valorcno debe ser capaz de recuperar el mensaje escondido,m. Pero, ¿qu´e pasa si el atacante encuentra la manera de determinar, no todo el mensaje escondido m, pero s´ı el valor del ´ultimo bit de m? No ser´ıa un ataque tan poderoso como recuperar el mensajemen su totalidad, pero podr´ıa tener consecuen-cias no deseadas, por ejemplo si el ´ultimo bit de m contiene la respuesta, “s´ı” o “no”, a una pregunta privada.

Tambi´en se pueden considerar situaciones diferentes en funci´on de cu´antos usuarios est´en envi´andose mensajes, si sus claves est´an relacionadas o no, cu´antos mensajes cifrados y cu´antos mensajes en claro puede obtener el atacante, etc. Por ´ultimo, es imprescindible tener en cuenta cu´ales son los recursos computacionales y temporales de los que dispone el atacante: ¿tie-ne capacidad de c´alculo y tiempo ilimitados? o bien ¿dispone de una canti-dad de tiempo limitada y de una capacicanti-dad de c´alculo est´andar, por ejemplo la proporcionada por un ordenador? o incluso ¿dispone el atacante de un ordenador cu´antico?

A la vista de tantas situaciones posibles, es obvio que la respuesta a la pregunta inicial no es f´acil ni ´unica. Se tratar´a pues de fijar un modelo de seguridad concreto para el protocolo criptogr´afico concreto que estemos analizando. El modelo de seguridad definir´a cu´ales son los recursos dispo-nibles para un atacante, y cu´al es su objetivo final. Despu´es, diremos que el protocolo es seguro en ese modelo si podemos demostrar que es imposible que un atacante tenga ´exito al intentar romper el protocolo en ese modelo

(5)

de seguridad.

Aqu´ı hay que detenerse para comentar el significado de las palabras “impo-sible” y “demostrar” en el p´arrafo anterior. En la gran mayor´ıa de protocolos criptogr´aficos modernos, la seguridad no es absoluta: primero, se conside-ran atacantes con limitaciones de tiempo y capacidad de c´alculo (lo que se conoce como atacantes en tiempo polin´omico); segundo, no se demuestran resultados absolutos del tipo:

“Ning´un atacante en tiempo polin´omico puede romper este protocolo crip-togr´afico en este modelo de seguridad”.

Lo que se demuestra son resultados relativos: relaciones entre la dificultad de romper el protocolo criptogr´afico y la dificultad de romper alg´un otro problema (en general, de matem´aticas o de teor´ıa de la computaci´on) co-mo por ejemplo el problema de factorizar un n´umero entero muy grande. Es decir, un resultado de seguridad t´ıpico en criptograf´ıa moderno podr´ıa tener el aspecto siguiente:

“Si un atacante en tiempo polin´omicotpudiese romper este protocolo crip-togr´afico en este modelo de seguridad, entonces ser´ıa posible factorizar un n´umero entero de tama˜no2t en tiempo polin´omico ent”.

Por tanto, la seguridad del protocolo criptogr´afico se basa en la (hipot´ eti-ca) dificultad de un problema matem´atico concreto. En el ejemplo anterior, puesto que no se conoce ninguna manera de factorizar enteros de tama˜no2t en tiempo polin´omico en t, la conclusi´on ser´ıa que el protocolo criptogr´ afi-co resiste la acci´on de atacantes en tiempo polin´omico, en ese modelo de seguridad.

1.2.

Funcionalidades criptogr´

aficas b´

asicas: cifrado y

fir-ma

El objetivo de la criptograf´ıa es proporcionar algunas propiedades de segu-ridad a las comunicaciones digitales. Ejemplos de dichas propiedades pue-den ser la confipue-dencialidad, la autenticaci´on, el no repudio, el anonimato o la robustez. Algunas de esas propiedades pueden ser (parcialmente) in-compatibles entre si, como el no repudio y el anonimato.

Para obtener esas propiedades, hace falta utilizar una o varias funcionali-dades criptogr´aficas. A grandes rasgos, elcifradoproporciona confidenciali-dad, lafirmas digitales(y algunas de sus variantes) proporcionan autentica-ci´on, no repudio y anonimato, y las pruebas de conocimientoproporcionan robustez: es posible detectar si un usuario est´a efectuando las operaciones criptogr´aficas de manera correcta.

(6)

Al ser el ´ultimo tipo de funcionalidad, las pruebas de conocimiento, el m´as t´ecnico, espec´ıfico y trasversal, hemos decidido no considerarlo en este in-forme; nos centraremos en las funcionalidades relacionadas con el cifrado y la firma digital. Esta elecci´on tambi´en puede interpretarse de otra ma-nera: consideraremos usuarios potencialmente curiosos (es decir, posibles ataques que quieran romper la confidencialidad, la autenticaci´on o el ano-nimato) pero honestos (es decir, los usuarios siempre ejecutan los proto-colos criptogr´aficos correspondientes de manera correcta). Las pruebas de conociemiento son una capa adicional de seguridad que se puede a˜nadir a este nivel, y que permite resistir tambi´en la acci´on de usuarios deshonestos que se desv´ıan del protocolo criptogr´afico.

El lector interesado en las pruebas de conocimiento puede obtener m´as in-formaci´on sobre ellas a partir del enlace correspondiente, en la Secci´on 5. Para un uso concreto de pruebas de conocimiento, se puede consultar el in-forme sobre votaci´on electr´onica, disponible en la p´agina web del proyecto eSAMCid.

La estructura de un sistema b´asico de cifrado y la de un sistema b´asico de firma son bastante parecidas. En los dos casos hay un protocolo de generaci´on de claves, KG, que toma como entrada el nivel de seguridad deseado (por ejemplo, la longitud de las claves secretas que se considera suficientemente segura) y da como salida unas claves criptogr´aficas para cada usuario. En el caso de un sistema de cifrado, siguen dos protocolos m´as: el protocolo de cifrado en si mismo,Enc, que toma como entrada una clavek1 y un texto en claromy da como salida un texto cifradoc, lo

escribi-mos Enc(k1, m) → c; y el protocolo de descifrado, que toma como entrada

un texto cifrado c y una clave k2, y da como salida un texto en claro m,

lo escribimos Dec(k2, c) → m. En el caso de firma, siguen al protocolo de

generaci´on de claves dos protocolos diferentes, uno para firmar el mensa-je,Sign y otro para verificar que una firma es correcta,Vfy. An´alogamente al caso del cifrado, escribiremos Sign(k3, m) → σ y Vfy(k4, σ, m) → 1

(fir-ma v´alida) o 0 (firma no v´alida), donde k3 es la clave de firma y k4 es la

correspondiente clave de verificaci´on.

1.3.

Criptograf´ıa sim´

etrica y criptograf´ıa asim´

etrica

Existen dos posibles escenarios para un protocolo criptogr´afico, seg´un el tipo de claves criptogr´aficas que poseen los usuarios que se est´an comuni-cando entre si.

(7)

re-monta a las comunicaciones secretas en el Imperio Romano (la cifra de C´esar, por ejemplo). Aqu´ı, el emisor y el receptor de la comunica-ci´on (sea cifrada y/o autenticada) deben compartir alguna clave, que sea secreta para el resto de los usuarios (potenciales atacantes). Con la notaci´on de la secci´on anterior, esto se traduce en que la misma clave que se usa para cifrar un mensaje, se usa para descifrar el texto cifrado resultante; y la misma clave que se usa para firmar un men-saje se usa para verificar que una firma es v´alida. Es decir k1 = k2 y

k3 =k4.

Los protocolos de cifrado y de firma que funcionan en un entorno de clave sim´etrica son (mucho) m´as eficientes que los que veremos en el segundo escenario. Algunos ejemplos son DES y AES para cifrado, o sistemas de firma sim´etrica (en ingl´es,Message Authentication Codes, MACs) que est´an basados en funcioneshash.

En cambio, el escenario de clave sim´etrica tiene dos inconvenientes bastante evidentes. Por un lado, un usuario Adebe compartir al me-nos una clave secreta kAB con cada otro usuario B con el que vaya a comunicarse. En muchas aplicaciones de la vida real (por ejemplo, el correo electr´onico), el n´umero de usuarios es muy grande, y por tanto mantener tantas claves secretas es inviable. Por otro lado, no es nada trivial c´omo dos usuarios A y B pueden acordar una clave secreta com´un, kAB, sin que el resto de usuarios la conozca, en un entorno de comunicaci´on digital donde por ejemploAyB no pueden encontrarse f´ısicamente de manera segura. Este problema se conoce como el problema del acuerdo de clave (en ingl´es,key agreement). El objetivo de la criptograf´ıa asim´etrica, inventada en 1976 por Diffie y Hellman [19], fue precisamente minimizar estos dos problemas de la criptograf´ıa sim´etrica.

Criptograf´ıa asim´etrica. En este escenario, cada usuario A genera por si mismo un par de claves: una clave secreta skA que s´olo cono-cer´a ´el, y una clave p´ublica asociada,pkA, que pone a disposici´on del resto de los usuarios. Cuando un usuario cualquiera quiera enviar un mensaje cifrado a A, utilizar´a para cifrar la clave p´ublicapkA, lo que dar´a lugar a Enc(pkA, m) → c; s´olo A podr´a usar skA para descifrar c y recuperar el mensaje en claro m, a trav´es de Dec(pkA, c) → m. En el caso de la firma digital en un entorno de criptograf´ıa asim´ etri-ca, cuando A quiera firmar un mensaje m usar´a skA para calcular

Sign(skA, m) → σ. Si el sistema es seguro, Aser´a el ´unico que podr´a calcular firmas v´alidas de esa manera, puesto que es el ´unico usuario

(8)

que conoce skA. Despu´es, cualquier otro usuario podr´a verificar que la firma ha sido calculada porA, a partir del protocolo de verificaci´on

Vfy(pkA, σ, m).

En efecto, la criptograf´ıa asim´etrica resuelve los dos inconvenientes principales de la criptograf´ıa sim´etrica: cada usuario A puede gene-rar sus claves de manera individual, sin interactuar con otros usua-rios; yA tiene que almacenar en privado s´olo una clave secreta, skA, independientemente del n´umero de usuarios con los que se vaya a comunicar.

Por otro lado, la criptograf´ıa asim´etrica tambi´en tiene desventajas. Primero, para evitar ataques de suplantaci´on de identidad (en ingl´es, man in the middle attacks), el sistema tiene que disponer de autorida-des de certificaci´on que den fe que una clave p´ublica pkA pertenece realmente al usuario A. Segundo, dise˜nar protocolos espec´ıficos en este entorno asim´etrico es m´as dif´ıcil que en el entorno sim´etrico, puesto que un atacante tiene m´as informaci´on (todas las claves p´ ubli-cas de todos los usuarios) que en el entorno sim´etrico. Por ejemplo, debe ser imposible poder obtener skA a partir de pkA y adem´as es-tas claves deben ser compatibles despu´es con operaciones de cifrado, descifrado, firma y verificaci´on, o sea que tienen que tener una es-tructura matem´atica m´as rica que en la criptograf´ıa sim´etrica. En la pr´actica, esto se traduce en el uso de funciones matem´aticas que sean f´aciles de calcular pero muy dif´ıciles de invertir; el primer candida-to fue el sistema RSA, propuescandida-to en 1978. Para que un atacante no pueda invertir esas funciones matem´aticas en tiempo polin´omico, los n´umeros implicados (las claves secretas y p´ublicas) tienen que ser muy grandes, y por tanto las operaciones de cifrar, descifrar, firmar, etc. se hacen m´as ineficientes que en el escenario de la criptograf´ıa sim´etrica.

En muchas aplicaciones de la vida real, lo que se hace es combinar los dos escenarios, para intentar retener las mejores propiedades de cada uno de ellos. Es lo que se conoce como criptograf´ıa h´ıbrida: si dos usuarios Ay B van a iniciar una comunicaci´on, se usa el escenario de clave p´ublica pa-ra genepa-rar las claves individuales, (skA,pkA)para Ay (skB,pkB) paraB, y luego se usa una ronda de comunicaci´on (secreta y autenticada median-te cifrado m´as firma) de clave p´ublica entre ellos para acordar de manera privada una clave com´un kAB. A partir de ese momento, para el resto de mensajes que se intercambien A y B, pueden usar protocolos criptogr´ afi-cos sim´etricos con la clave secreta com´un kAB, consiguiendo mucha m´as

(9)

eficiencia en las comunicaciones posteriores.

1.4.

Nuevos escenarios criptogr´

aficos: la criptograf´ıa

fun-cional

En los ´ultimos a˜nos, con la aparici´on de nuevas y m´as complejas formas de comunicaci´on digital en la vida real, se han propuesto otros escenarios criptogr´aficos diferentes a los que hemos visto en el apartado anterior, el de criptograf´ıa sim´etrica y el de criptograf´ıa asim´etrica.

Uno de estos nuevos escenarios es el de la criptograf´ıa basada en identi-dades, que naci´o con el objetivo de minimizar uno de los problemas de la criptograf´ıa asim´etrica: la necesidad de certificados digitales que vinculen la identidad del usuarioA con su clave p´ublica pkA. La soluci´on propuesta por la criptograf´ıa basada en identidades es que la clave p´ublicapkA de un usuario A sea directamente alg´un elemento ´unico de su identidad, como puede ser un n´umero de documento de identidad, un n´umero de tel´efono, una direcci´on de correo electr´onico... algo que todo el mundo pueda aso-ciar de manera inequ´ıvoca con el usuarioA, sin necesidad de una autoridad que lo certifique. Pero el problema entonces es: ¿qui´en y c´omo genera una clave secreta skA asociada a esa clave p´ublica pkA ≈ idA? La funci´on que calculeskAa partir deidAdebe involucrar alg´un tipo de informaci´on secre-ta, porque de lo contrario cualquiera podr´ıa ejecutarla y obtener la clave secreta skA de cualquier usuario A, a partir de su identidad (p´ublica) idA. La soluci´on propuesta consiste en disponer de autoridades m´aster, terceras partes de confianza que usan sus propias claves secretas para calcular skA a partir deidAy enviarskA aAde manera segura.

Por tanto, el precio a pagar para evitar la necesidad de gesti´on de certifi-cados digitales es la necesidad de terceras partes de confianza que generan (y por tanto conocen) las claves secretas de todos los usuarios del sistema. Con sus ventajas e inconvenientes, la criptograf´ıa basada en identidades puede ser una soluci´on muy interesante para las comunicaciones digitales por ejemplo dentro de una organizaci´on jerarquizada.

Una caracter´ıstica com´un de los tres entornos criptogr´aficos que hemos vis-to hasta ahora (sim´etrico, asim´etrico y basado en identidades) es que cada operaci´on criptogr´afica est´a muy ligada a un usuario individual concreto, el que hemos denominadoA. Por ejemplo, un sistema de cifrado se usa pa-ra enviar un mensaje a A de manera confidencial, ya sea usandokAB,pkA o idA a la hora de ejecutar el protocolo de cifrado Enc. De manera an´ alo-ga, una firma la calcula A y su validez se verifica usando la informaci´on

(10)

espec´ıfica de A, para llegar a la conclusi´on que ha sido efectivamente el usuario individualAqui´en ha firmado el mensaje.

Podemos considerar situaciones m´as generales en las que se cifra un men-saje con la idea que m´as de un usuario tenga la capacidad de descifrar el texto cifrado y recuperar el mensaje en claro, posiblemente sin saber exac-tamente la lista concreta de usuarios que tienen o tendr´an esa capacidad. Por ejemplo, cifrar una base de datos m´edicos, resultante de alg´un ensayo cl´ınico, de manera que s´olo puedan descifrar aquellos usuarios que sean o bien m´edicos del hospitalH1o bien empleados de la casa farmac´eutica F2 o bien directores de los hospitales afiliados H3, H4, H5. Esta situaci´on ser´ıa un ejemplo de cifrado basado en atributos, que es un caso particular (igual que la criptograf´ıa basada en identidades) de lo que se conoce como criptograf´ıa funcional: la capacidad de un usuario A para poder efectuar una operaci´on criptogr´afica secreta (como descifrar o firmar) depender´a de si los atributos xAdel usuarioAsatisfacen alguna condici´onyimpuesta por la persona que ha cifrado o firmado el mensaje, es decir, si se cumple f(xA, y) = 1para alguna relaci´on booleana concretaf.

La criptograf´ıa funcional est´a recibiendo mucha atenci´on por parte de la comunidad criptogr´afica internacional en los ´ultimos a˜nos, debido a sus m´ultiples aplicaciones en situaciones reales (control de acceso, delegaci´on de c´alculos costosos, almacenaje seguro en la Nube, etc.). Detallamos un poco m´as algunas de estas aplicaciones en la Secci´on 4.

1.5.

Entornos matem´

aticos donde se dise˜

nan protocolos

criptogr´

aficos

La gran parte de los protocolos criptogr´aficos concretos que se han pro-puesto en los ´ultimos a˜nos y que se usan en la vida real, y en el caso de la criptograf´ıa asim´etrica y funcional, todos ellos, se basan en el uso de objetos y operaciones matem´aticas que tengan (hipot´eticamente) propie-dades interesantes desde el punto de vista criptogr´afico. Por ejemplo, como hemos comentado anteriormente, para poder implementar un sistema de cifrado de clave p´ublica, se necesitan funciones c = Enc(pkA, m) que se puedan calcular de manera eficiente, pero que sean muy dif´ıciles (compu-tacionalmente imposibles) de invertir, para que un atacante diferente deA no pueda recuperar el mensaje en clarom a partir dec; a la vez, la funci´on debe poder invertirse de alguna manera si se conoce el valor de la clave secretaskA, para que el usuarioAs´ı que pueda descifrar y recuperarm. En resumen, se necesitan funciones unidireccionales con trampa.

(11)

Se han propuesto diferentes entornos matem´aticos que se pueden usar para dise˜nar protocolos criptogr´aficos concretos, con las propiedades de seguri-dad deseadas, bas´andose en la dificultad computacional de resolver alg´un problema matem´atico asociado a cada uno de esos entornos. Repasamos a continuaci´on cuatro de esos entornos, posiblemente los m´as conocidos y usados.

1.5.1. Factorizaci´on de enteros

La primera candidata concreta a funci´on unidireccional con trampa fue la funci´on RSA propuesta por Rivest, Shamir y Adleman en 1978 [49], basada en la idea de que factorizar n´umeros grandes es muy dif´ıcil.

En concreto, siN =p·qes el producto de dos n´umeros primos (cada uno conλ/2bits de longitud), entonces no se conoce ning´un algoritmo eficiente (es decir, en tiempo polin´omico en λ) que encuentre la factorizaci´on de N dado s´olo N como dato. Es lo que se conoce como el problema de la factorizaci´on. Si usamos la notaci´on ZN = {0,1, . . . , N −1}, entonces hay otros problemas que se suponen dif´ıciles computacionalmente (sin soluci´on polin´omica a d´ıa de hoy) y que est´an relacionados con el problema de la factorizaci´on (todos se podr´ıan resolver a partir de la soluci´on del problema de la factorizaci´on). Aqu´ı van algunos ejemplos:

Calcular ra´ıces cuadradas m´odulo N. Dados N y un n´umero alea-torioz ∈ZN, encontrarw∈ZN tal quew2 =z m´odN.

Decidir la residuosidad cuadr´atica en ZN. Dados N y un n´umero aleatorioz ∈ZN, decidir sizes un residuo cuadr´atico o no. Un n´ ume-roz ∈ZN es residuo cuadr´atico si existe alg´unw∈ZN tal quew2 =z m´odN.

El problema RSA. Sea e ∈ ZN un n´umero que sea coprimo con φ(N) = (p−1)(q −1). El problema RSA consiste en, dados N, e y un n´umero aleatorio y ∈ ZN, encontrar una ra´ız e-´esima de y, es decir un n´umerox∈ZN tal quexe=y m´odN.

La seguridad de muchos protocolos criptogr´aficos se basa en estos proble-mas, incluyendo el cifrado y la firma RSA [49], el cifrado de Goldwasser-Micali [28], el cifrado de Paillier [43], la firma y el cifrado de Rabin [47], etc.

(12)

1.5.2. Logaritmo discreto

Dado un grupo finito c´ıclico de orden primop, es decirG=hgi ={1, g, g2,

. . . , gp−1}, donde el n´umero primoptieneλ bits de longitud, no se conoce

ning´un algoritmo eficiente y general (que funcione en cualquier grupoGy emplee tiempo polin´omico en λ) para resolver el problema del logaritmo discreto: dadosp,G, g y un elemento aleatorioy∈G, encontrar el n´umero x∈Zp ={0,1, . . . , p−1}tal quey=gx.

Hay otros dos problemas que se pueden definir en este tipo de grupos, y que tambi´en se consideran intratables computacionalmente a d´ıa de hoy (aunque ambos podr´ıan resolverse si se resolviese el problema del logarit-mo discreto):

El problema computacional de Diffie-Hellman.Dadosg, ga, gb para dos n´umeros aleatorios a, b∈Zp, calcular el valorgab.

El problema decisional de Diffie-Hellman.Dados g, ga, gb para dos n´umeros aleatoriosa, b∈Zp, y un elementoy∈G, se trata de decidir siy =gab o siyes un elemento aleatorio de

G.

Algunos ejemplos de criptosistemas cuya seguridad se basa en la dificultad computacional de resolver estos los problemas mencionados son los cifra-dos de ElGamal [22] o Cramer-Shoup [18], el intercambio de claves de Diffie-Hellman [19], o el sistema de firma de Schnorr [53].

1.5.3. Emparejamientos bilineales

Usando herramientas sofisticadas de teor´ıa de n´umeros y curvas el´ıpti-cas, se pueden encontrar ejemplos de tripletas de grupos finitos c´ıclicos,

G1,G2,GT, todos con el mismo orden primo p, que admitan un empareja-miento bilineal no-degenerado: es decir, una aplicaci´one:G1×G2 −→GT tal que, siG1 =hg1iyG2 =hg2i, se verifique

(i) e(ga

1, g2b) = e(g1, g2)ab para cualquier par de n´umerosa, b∈Zp.

(ii) e(·,·)puede calcularse de manera eficiente (tiempo polin´omico enλ). (iii) El elementogT =e(g1, g2)genera todo el grupoGT.

Algunos ejemplos son el emparejamiento de Weil, el de Tate o el ate. Usan-do las propiedades algebraicas de estos emparejamientos, se pueden di-se˜nar protocolos criptogr´aficos mucho m´as eficientes (por ejemplo el sis-tema de firma BLS [13]) y tambi´en se encuentran soluciones para algunas

(13)

funcionalidades (como la criptograf´ıa basada en identidades o en atributos, dentro de la criptograf´ıa funcional) para las que no se conoce/conoc´ıa solu-ci´on en otros escenarios m´as cl´asicos, como el de factorizaci´on o logaritmo discreto.

Para demostrar la seguridad de los protocolos propuestos en un escenario de emparejamiento bilineal, adem´as de asumir la dificultad del problema del logaritmo discreto en cada uno de los grupos, a menudo hay que basarse en la seguridad de alg´un otro problema espec´ıfico de este escenario. Un par de ejemplos:

El problema computacional bilineal de Diffie-Hellman. Dados los elementos de grupo g1, g1a, g1b, g1c ∈ G1 y g2, ga2, g2b, gc2 ∈ G2, para tres

n´umeros aleatorios a, b, c∈Zp, calcular el valore(g1, g2)abc.

El problema decisional lineal. Dados f, g, fa, gb

G1 para dos

ele-mentos aleatorios f, g ∈ G1 y dos n´umeros aleatorios a, b ∈ Zp, y dos elementos h, h0 ∈ G2, se trata de decidir si h0 = hx+y o si h0 es aleatorio e independiente deh.

1.5.4. Ret´ıculos euclideanos

Todos los problemas computacionales relacionados con los diferentes en-tornos matem´aticos que hemos visto hasta ahora tienen un inconveniente: se pueden resolver de manera eficiente (en tiempo polin´omico en la lon-gitud de las clavesλ) con un ordenador cu´antico, a trav´es del ataque pro-puesto por Shor. A d´ıa de hoy, no se dispone a´un de ordenadores cu´anticos suficientemente potentes y polivalentes para llevar a cabo ese ataque, pero la investigaci´on en ese ´ambito avanza, y no es descabellado suponer que alg´un d´ıa no muy lejano existir´an ordenadores cu´anticos donde se pueda ejecutar el ataque de Shor y que permitan, por tanto, factorizar enteros o calcular logaritmos discretos de manera eficiente.

Cuando llegue ese d´ıa, todos los criptosistemas cuya seguridad se basa en los problemas computacionales de los tres escenarios anteriores dejar´an de ser seguros autom´aticamente. Por eso, la comunidad criptogr´afica tambi´en trabaja en proponer otros protocolos criptogr´aficos que utilicen herramien-tas matem´aticas diferentes, de manera que se pueda basar su seguridad en la dificultad de romper otros problemas computacionales que resistan el ataque de un ordenador cu´antico. Se dice entonces que estos protoco-los tienen seguridadpost-cu´antica. Entre estos nuevos escenarios para pro-porcionar seguridad post-cu´antica, el que est´a recibiendo m´as atenci´on y

(14)

generando m´as resultados (algunos sorprendentes) es el de la criptograf´ıa basada en ret´ıculos (en ingl´es,lattice-based cryptography).

Un ret´ıculo euclideano de dimensi´onnes un subgrupo deRnque es isom´ orfi-co aZn. Es decir, un ret´ıculo Λ Rntiene la forma Λ = ( n X i=1 ai~vi / ai ∈Z )

para una cierta base {~v1, . . . , ~vn}de Rn. Es decir, son las combinaciones

li-neales, con coeficientes enteros, de los vectores de esa base. Los vectores de la base puede que no tengan coeficientes enteros. Un ejemplo en R2,

tomando~v1 = (0,

2)y~v2 = (1,0), el ret´ıculo generado por esa base

con-tendr´ıa puntos como el (3,√2)o el(−2,−√2), pero no contendr´ıa ning´un punto cuyas dos coordenadas fuesen n´umeros enteros.

Cuando n es un n´umero bastante grande (mayor a 100, por ejemplo), al-gunos problemas matem´aticos se consideran computacionalmente intrata-bles, es decir que no se conoce ning´un algoritmo que funcione en tiempo polin´omico enn y los resuelva, ni siquiera usando un ordenador cu´antico. Un par de esos problemas son:

El problema del vector m´as corto (SVP).Dado un ret´ıculo, se trata de encontrar el punto del ret´ıculo que tiene norma m´as peque˜na, cuando lo pensamos como vector deRn.

El problema del vector m´as cercano (CVP). Dado un ret´ıculo Λ ⊂

Rny un puntoP ∈Rn−Λ, fuera del ret´ıculo, se trata de encontrar el

punto deΛque se encuentra m´as pr´oximo aP.

Adem´as, hay otros problemas matem´aticos relacionados con sistemas de ecuaciones lineales con coeficientes enteros a las que se le a˜nade un ruido (un n´umero elegido seg´un una distribuci´on gaussiana discreta de proba-bilidad), que en principio no parecen relacionados con el mundo de los ret´ıculos, pero que se puede demostrar que son al menos tan dif´ıciles de resolver como alguno de los problemas anteriores, definidos en ret´ıculos. Sin entrar en definir de manera formal ninguno de estos problemas, s´ı que podemos mencionar algunos, como el problema de encontrar soluciones peque˜nas de sistemas ecuaciones (SIS, Short Integer Solution) o bien el problema de aprendizaje con errores (LWE,Learning With Errors). El lector interesado en profundizar en estos conceptos de la criptograf´ıa basada en ret´ıculos, puede consultar Wikipedia o bien, como referencia m´as formal pero tal vez m´as dif´ıcil de leer, el tutorial [45].

(15)

Algunos ejemplos de protocolos criptogr´aficos con seguridad post-cu´antica, basados en ret´ıculos euclideanos, son el sistema de cifrado de Regev [48], los sistemas de firma de Lyubashevsky [42], los sistemas NTRU tanto para cifrar como para firmar [36, 37], y los protocolos de cifrado completamen-te homom´orficos (empezando por el original de Gentry [27]), que supu-sieron una aut´entica revoluci´on en el mundo de la criptograf´ıa. Tambi´en hay protocolos criptogr´aficos basados en ret´ıculos para diferentes tipos de criptograf´ıa funcional, incluyendo la basada en identidades y la basada en atributos.

(16)

2.

Protocolos criptogr´

aficos de cifrado

Puesto que la confidencialidad de la informaci´on es posiblemente la propie-dad m´as importante, sensible y deseada en las comunicaciones digitales, es natural que los sistemas de cifrado sean los que reciben m´as atenci´on, tan-to te´orica como pr´actica. En particular, hay varios est´andares criptogr´aficos proponiendo esquemas concretos de cifrado y longitudes de clave, tanto para el caso de cifrado sim´etrico (por ejemplo el sistema AES) como para cifrado asim´etrico (por ejemplo RSA-OAEP o DHAES). Un par de enlaces con ejemplos de estos est´andares:

https://en.wikipedia.org/wiki/Cryptography_standards https://en.wikipedia.org/wiki/IEEE_P1363

Podemos observar en el segundo enlace que el instituto americano IEEE ya incluye propuestas de sistemas est´andar para funcionalidades m´as avan-zadas, como el cifrado basado en identidades, y tambi´en para entornos matem´aticos no cl´asicos: emparejamientos bilineales (pairings, en ingl´es) y cifrado basado en ret´ıculos.

En el resto de la secci´on explicaremos algunas propiedades o funcionalida-des adicionales que pueden tener los sistemas de cifrado, y algunas posibles aplicaciones de esas propiedades en situaciones de la vida real.

2.1.

Cifrado homom´

orfico

Supongamos que los textos en claro que puede cifrar un sistema de cifrado pertenecen a un conjunto matem´atico (M,⊕) con una operaci´on interna ⊕ y que los textos cifrados pertenecen a otro conjunto matem´atico(C,⊗). Diremos que el sistema de cifrado es homom´orfico si se cumple que, para todo cifrado c1 de un texto en claro m1, y para todo cifradoc2 de un texto

en claro m2, el texto cifrado c = c1 ⊗c2 es un texto cifrado v´alido para el

texto en clarom =m1⊕m2.

Cuando la operaci´on ⊕ consiste en la suma de n´umeros enteros (posible-mente con reducci´on modular), se dice que la propiedad homom´orfica es aditiva. Cuando la operacion ⊕ consiste en la multiplicaci´on de n´umeros enteros (posiblemente con reducci´on modular), se dice que la propiedad homom´orfica es multiplicativa.

Si un sistema de cifrado tiene a la vez propiedades homom´orficas aditivas y multiplicativas, se dice que es un sistemacompletamente homom´orfico(en ingl´es,fully homomorphic encryption scheme).

(17)

2.1.1. Aplicaciones

Una de las aplicaciones m´as conocidas de los criptosistemas homom´ orfi-cos es el voto electr´onico. Por ejemplo, en un refer´endum donde haya que escoger entre dos opciones, una puede representarse con el texto en claro m0 = 0 y otra con el texto en claro m1 = 1. Si el sistema de cifrado es

aditivamente homom´orfico, cada votante cifrar´a su voto. Al final de la vo-taci´on, se operar´an todos losnvotos cifrados recibidosC =c1⊗. . .⊗cny el resultado ser´a un cifrado v´alido de la suma de votantes que hayan elegido la opci´onm1 = 1. La autoridad de la votaci´on, que estar´a en posesi´on de la

clave secreta de descifrado, descifrar´aC y har´a p´ublico ese resultado. Otra aplicaci´on que ha recibido mucha atenci´on en los ´ultimos a˜nos es la delegaci´on de c´alculo sobre datos (cifrados) en la Nube. Un usuario puede guardar sus datos confidenciales en la Nube, cifrados, y si luego quiere realizar alg´un c´alculo sobre sus datos (por ejemplo, el promedio de unos cuantos de los valores en esa base de datos cifrados), puede hacer una petici´on al servicio que almacena sus datos en la Nube, que operar´a los textos cifrados de la manera adecuada y enviar´a el texto cifrado resultante al usuario. El usuario, que ser´a qui´en tenga la clave secreta de descifrado, podr´a descifrar ese texto cifrado y recuperar el valor (en claro) del c´alculo que hab´ıa pedido.

2.1.2. Esquemas concretos existentes

Un sistema de cifrado que tenga propiedades homom´orficas nunca puede poseer el nivel de seguridad m´as alto propuesto (seguridad frente a ataques de texto cifrado escogido, denotada como seguridad IND-CCA). Existen propuestas de sistemas homom´orficos en distintos escenarios matem´aticos, por ejemplo el sistema de Paillier [43] es aditivamente homom´orfico y ba-sa su seguridad en la dificultad de factorizar n´umeros enteros grandes. Por otro lado, el sistema de ElGamal [22] es multiplicativamente homom´orfico y basa su seguridad en la dificultad de calcular logaritmos discretos. Entre los sistemas cuya seguridad se basa en la dificultad de resolver problemas en ret´ıculos euclideanos, podemos citar el criptosistema aditivamente ho-mom´orfico de Regev [48].

Cap´ıtulo aparte merecen los sistemas completamente homom´orficos. Du-rante m´as de 30 a˜nos el problema de encontrar un sistema de cifrado com-pletamente homom´orfico permaneci´o abierto. De hecho muchos investiga-dores estaban convencidos que alg´un d´ıa se podr´ıa demostrar la imposibi-lidad de tener un sistema seguro con esas caracter´ısticas. Sin embargo, en

(18)

2009 Gentry propuso un sistema con esas propiedades [27], y una demos-traci´on de seguridad basada en la dificultad de algunos problemas relacio-nados con los ret´ıculos euclideanos. Ese resultado supuso una revoluci´on en el ´ambito de la criptograf´ıa, y desde entonces se han propuesto varios candidatos a sistemas de cifrado completamente homom´orficos, con mejo-ras tanto a nivel de eficiencia como de garant´ıas de seguridad. Sin embargo, la eficiencia de todos esos esquemas a´un es muy baja, y por tanto la idea de tener un sistema de cifrado completamente homom´orfico funcionando de manera pr´actica a´un est´a lejos de implementarse en la vida real.

2.2.

Cifrado determinista

Para poseer un cierto nivel de seguridad, una funci´on de cifrado ha de ser probabil´ıstica: para cifrar un mensaje, se utiliza una aleatoriedad escogi-da de un conjunto suficientemente grande. Eso quiere decir que un mismo texto en claro puede tener muchos textos cifrados v´alidos (uno para cada valor posible de la aleatoriedad). Si una funci´on de cifrado no es proba-bil´ıstica, entonces esdeterminista: existe un ´unico texto cifrado v´alido para cada texto en claro, y dicho texto cifrado se calcula sin utilizar ning´un valor aleatorio externo.

Un sistema de cifrado de clave p´ublica determinista no puede alcanzar el nivel de seguridad sem´antica, que exige que ning´un atacante sea capaz de distinguir si un texto cifradoc∗ =Enc(pk, mb)corresponde al texto en claro m0o al texto en clarom1, dondem0ym1han sido escogidos por el atacante,

y el bitb∈ {0,1}es un bit aleatorio. Si el sistema de cifrado es determinista, cualquier atacante puede calcular c0 = Enc(pk, m0) y c1 = Enc(pk, m1),

comparar esos textos cifrados con c∗ y distinguir f´acilmente qu´e texto en claro ha sido cifrado en c∗.

Por tanto, los sistemas de cifrado de clave p´ublica deterministas no son adecuados para determinadas situaciones que requieran un nivel de segu-ridad sem´antica. Sin embargo, pueden ser adecuados para otras situaciones en las que un nivel de seguridad inferior (por ejemplo, la unidireccionali-dad entre texto en claro y texto cifrado) sea suficiente. En esos casos, co-mo queda claro del ataque contra la seguridad sem´antica explicado en el p´arrafo anterior, la seguridad real proporcionada por un sistema determi-nista depender´a directamente de la entrop´ıa del espacio de posibles textos en claros; es decir, de cu´antos textos en claro tienen una probabilidad no nula de ser el origen de un texto cifrado concreto, y cu´al es el valor de esas probabilidades.

(19)

efi-ciente de datos concretos en una base de datos (muy grande) cifrada, tal y como se explica en [5]. Los esquemas que se presentan en ese art´ıculo re-presentan a´un a d´ıa de hoy el estado del arte en cuanto a sistemas concretos eficientes. Otros art´ıculos posteriores son de car´acter m´as te´orico [23].

2.3.

Cifrado que preserva el formato o el orden

En algunas situaciones, se quiere proteger la confidencialidad de algunos datos pero de manera que la versi´on cifrada de esos datos a´un preserve alguna propiedad de los datos originales, por ejemplo para facilitar el al-macenamiento, la gesti´on o la verificaci´on de los datos.

Un sistema de cifrado preserva el orden cuando se puede definir un orden tanto en el espacio de textos en claro como en el espacio de textos cifrados y, adem´as, se cumple que para toda pareja de textos en claro m1, m2 y

cualquier texto cifrado v´alidoc1 dem1 yc2 dem2, se verifica quem1 ≤m2

si y s´olo sic1 ≤c2.

Un sistema de cifrado preserva el formato cuando los textos cifrados resul-tantes de aplicar la funci´on de cifrado dan lugar a elementos que conservan alg´un aspecto del formato del texto en claro. Por ejemplo, si el formato de un n´umero de DNI es de ocho cifras y luego una letra que es una funci´on determinista de las ocho cifras anteriores, entonces cifrar un DNI debe dar lugar a otro conjunto de ocho cifras y una letra que tambi´en sea funci´on determinista de esas ocho cifras; es decir, el cifrado de un DNI v´alido debe ser un n´umero de DNI potencialmente v´alido (aunque posiblemente inexis-tente e idealmente nada relacionado con el DNI v´alido que se ha cifrado). Otro ejemplo muy habitual se da a la hora de cifrar n´umeros de tarjetas de cr´edito. De hecho, esta ´ultima aplicaci´on es la que ha tenido m´as ´exito, hasta el punto que los sistemas de cifrado que preservan el formato han sido estandarizados [21].

Los sistemas que preservan el orden no han sido de momento estandari-zados, pero s´ı que tienen muchas aplicaciones en ´areas de bases de datos, puesto que permiten hacer muchas peticiones simples (ordenar, consultar elementos en un rango concreto, obtener el m´aximo, etc.) sobre datos ci-frados. Todos los sistemas de cifrado que preservan el orden (ver [9] para algunos ejemplos) funcionan en el escenario de la criptograf´ıa sim´etrica.

(20)

3.

Protocolos criptogr´

aficos de firma

Una firma digital est´andar proporciona a una comunicaci´on digital las pro-piedades de autenticaci´on universal, integridad y no repudio. La primera propiedad quiere decir que todo el mundo puede verificar qui´en ha sido el usuario que ha calculado la firma digital y por tanto cu´al es el origen de la comunicaci´on digital. La segunda propiedad asegura que el mensaje recibido es exactamente igual al mensaje enviado, es decir que no ha sido alterado durante el env´ıo. La ´ultima propiedad se refiere al hecho que el emisor de una comunicaci´on firmada no puede negar posteriormente ser el autor de dicha comunicaci´on.

Estas propiedades son b´asicas para asegurar unas comunicaciones digita-les fiabdigita-les; por tanto las firmas digitadigita-les son consideradas como el segundo pilar fundamental de la criptograf´ıa, junto con los sistemas de cifrado, y han recibido una atenci´on similar por parte de la comunidad criptogr´afica. Eso quiere decir que los diferentes est´andares criptogr´aficos (ver por ejem-plo los enlaces en la Secci´on 2) tambi´en recomiendan sistemas de firma digital y tama˜nos de claves concretos, tanto en el escenario de criptograf´ıa sim´etrica como en el escenario de criptograf´ıa asim´etrica.

En lo que s´ı supera la firma digital al cifrado es en el n´umero de extensiones y propiedades adicionales que se han propuesto al concepto b´asico origi-nal. Una lista de extensiones del concepto de firma digital existentes en la literatura incluir´ıa, entre otras, las firmas ciegas, las firmas innegables, las firmas camale´onicas, las firmas nominativas, las firmas por delegaci´on, las firmas agregadas, las firmas con confirmador, las firmas con verificador de-signado, las firmas de grupo, las firmas de anillo, las firmas transitivas, las firmas sanitizables, las firmas de umbral, las multi-firmas...

Repasar todas estas extensiones llevar´ıa a un documento demasiado largo, as´ı que hemos escogido seleccionar algunas de ellas, usando como criterio el n´umero de aplicaciones a situaciones actuales de la vida real que pueden tener los sistemas de firma resultantes.

3.1.

Firmas ciegas

En un sistema de firma ciega participan dos usuarios, el firmante y el clien-te. El firmante tiene su par de claves p´ublica y privada,(pk,sk), como en un sistema normal de firma digital en un escenario de criptograf´ıa asim´etrica. El objetivo del cliente es obtener una firma v´alida del firmante a un mensa-jem, sin que el firmante obtenga ninguna informaci´on sobre el mensajem.

(21)

Se trata de un protocolo interactivo en el que cliente y firmante intercam-bian mensajes, que van calculando en funci´on de los mensajes anteriores y en funci´on de los valores que s´olo cada usuario conoce (s´olo el cliente conoce el mensajemy s´olo el firmante conoce la clave secretask). El resul-tado de la interacci´on es que el cliente puede calcular una firma σ tal que

Vfy(pk, σ, m)→1(firma v´alida del mensajemproveniente del firmante con clave p´ublicapk).

Un sistema de firma ciega tiene que satisfacer dos propiedades de seguri-dad. Por un lado, un firmante no puede obtener ninguna informaci´on sobre los mensajes que est´a firmando (privacidad del mensaje). Por otro lado, un cliente que interact´ua con un firmante, con ´exito, un n´umero ` de veces no puede ser capaz de obtener`+ 1firmas v´alidas diferentes para la clave p´ublicapk(infalsificabilidad).

3.1.1. Aplicaciones

El concepto de firma ciega fue propuesto por Chaum [17] y las dos aplica-ciones que mencionaba en su art´ıculo eran el voto electr´onico (eVoting) y el dinero electr´onico (eCash).

En voto electr´onico, imaginemos que la junta electoral que gestiona el cen-so de votantes autorizados en una votaci´on juega el papel de firmante en el sistema de firma ciega. Cada votante autorizado a votar ser´a un cliente: acudir´a a la junta electoral, le demostrar´a que est´a autorizado a participar en la votaci´on (mostrando un DNI, por ejemplo) y juntos ejecutar´an el pro-tocolo de firma ciega, de manera que el mensaje privado del votante, m, sea su voto. El resultado del sistema ser´a una firma v´alida de ese voto por parte de la junta electoral. Esa pareja de voto y firma puede ser depositada de manera an´onima en la urna electoral: la validez de la firma ser´a veri-ficada por la entidad que realice el recuento, y los votos con firma v´alida ser´an los que se cuenten el el recuento final.

En dinero electr´onico, podemos suponer que cada moneda electr´onica tiene el mismo valor (por ejemplo, 10 euros). Cuando un cliente quiere obtener una moneda electr´onica, acude al banco (que ser´a el firmante) y le pide una moneda electr´onica: el banco le quita 10 euros de su cuenta, y entonces ejecutan el protocolo de firma ciega, donde el mensaje privado del cliente es un n´umero aleatorio m. Como resultado, el cliente obtiene una firma v´alida σ de m por parte del banco, que proporciona al comercio en el que quiera gastar 10 euros a cambio de alg´un producto. El comercio puede verificar que la firma es v´alida y cerrar la transacci´on. Despu´es, el comercio acudir´a al banco con la pareja (m, σ). El banco compara m con el resto

(22)

de c´odigos de monedas que almacena en su base de datos de monedas gastadas; si no est´a all´ı y la firma es v´alida, el banco da 10 euros al comercio y a˜nade el valorma la lista de c´odigos de monedas ya gastadas.

3.1.2. Esquemas concretos existentes

Existen esquemas de firma ciega cuya seguridad se basa en problemas cl´asicos como RSA [7, 17] o el logaritmo discreto [46]. Tambi´en se han propuesto esquemas de firma ciega (m´as eficientes) que utilizan entor-nos matem´aticos m´as avanzados, por ejemplo los emparejamientos bilinea-les [8, 26].

Por ´ultimo, tambi´en existen propuestas de sistemas de firma ciega con se-guridad post-cu´antica, basados en ret´ıculos euclideanos [51].

3.2.

Firmas an´

onimas: de grupo o de anillo

Las propiedades de autenticaci´on y no repudio que otorga una firma digital b´asica a una comunicaci´on digital a veces pueden ser no deseadas en algu-nas aplicaciones. Por ejemplo, a lo mejor una firma quiere demostrar que su autor es un usuario dentro de un determinado grupo de personas, pero sin especificar qu´e usuario concreto del grupo es el autor de la firma. De esa manera, una firma proporciona nivel de autenticaci´on a nivel de grupo, pero proporciona al firmante anonimato dentro del grupo.

Esta idea se ha materializado de dos maneras diferentes en la literatura criptogr´afica, dando pie a las firmas de grupo y a las firmas de anillo. Las diferencias son las siguientes:

- En un sistema de firma de grupo, existe una autoridad de grupo que gestiona las entradas y salidas de miembros en el grupo; cuando un usua-rio entra en el grupo, recibe de la autoridad una informaci´on secreta de pertenencia al grupo, que luego podr´a ser usada para calcular la firma en nombre de todo el grupo. El grupo dispone de una clave p´ublica de grupo, que es la que puede usar cualquiera para verificar la validez de una firma de grupo.

- En un sistema de firma de anillo, no hay ninguna autoridad central. Cada usuario tiene su par de claves (pk,sk), y los grupos se van creando ad-hoc en el momento de firmar: un usuario junta su clave p´ublica con otras claves p´ublicas de otros usuarios para formar una lista (o un anillo) de usuarios que ser´a el grupo origen de esa firma. Para verificar la validez de la firma, ser´a necesario usar todas las claves p´ublicas del grupo.

(23)

La existencia de una entidad central de confianza en las firmas de grupo ha-ce que sea m´as f´acil dise˜nar sistemas eficientes, por ejemplo produciendo firmas de grupo de tama˜no constante (independiente del tama˜no del gru-po). En cambio, la mayor´ıa de sistemas de firma de anillo propuestos en la literatura producen firmas cuyo tama˜no depende del n´umero de usuarios en el grupo.

Estos sistemas de firma an´onima tienen que satisfacer, al menos, dos propie-dades de seguridad. Por un lado el anonimato, que quiere decir que nadie (tal vez a excepci´on de la autoridad de grupo, en las firmas de grupo) pue-de distinguir qu´e miembro de un grupo es el autor real de una firma. Por otro lado, la infalsificabilidad, que quiere decir que un usuario (un atacan-te) que est´e fuera de un grupo de usuarios no debe ser capaz de producir una firma v´alida en nombre de ese grupo de usuarios.

3.2.1. Aplicaciones

Las firmas de grupo y de anillo, unidas a las firmas basadas en atributos que explicaremos m´as adelante, son la herramienta principal para aplicaciones en las que se requieren a la vez un cierto nivel de autenticaci´on (tener unas determinadas credenciales de pertenencia) y un nivel de anonimato. Algunos ejemplos de estas situaciones en la vida real pueden ser:

- Filtrar noticias a la prensa de manera fiable: tal vez un miembro de un gobierno o de un partido pol´ıtico quiere filtrar a la prensa una noticia pero de manera an´onima, sin que nadie pueda acusarle de ser el origen de la filtraci´on. Para ello, puede usar una firma de grupo o de anillo en el que el conjunto de posibles firmantes sea por ejemplo el conjunto de miembros del gobierno. De esa manera, la prensa dar´a credibilidad a la noticia. - Acceso privado a recursos: para acceder a un determinado recurso f´ısico o digital (puede ser la puerta de un gimnasio o una biblioteca, o bien par-tes protegidas de una p´agina web), se puede implementar un sistema de control de acceso con privacidad, de manera que cuando un usuario quiera acceder a ese recurso, el sistema escoge un mensaje (un reto) aleatorio m. El usuario debe ser capaz de calcular una firma de grupo v´alida para ese retom, tomando como grupo el conjunto de usuarios autorizados a acceder a ese recurso. Si la firma generada es verificada como v´alida por el sistema de acceso, el usuario puede acceder al recurso. El sistema mantiene el ano-nimato del usuario: s´olo se filtra el hecho de que es un usuario autorizado (o no) a acceder a ese recurso.

(24)

3.2.2. Esquemas concretos existentes

Existen propuestas de sistemas de firma de grupo y de firma de anillo en todos los escenarios matem´aticos que explicamos en la Secci´on 1.5.

Hay sistemas de firma de grupo basados en RSA [2], en la dificultad del problema de logaritmo discreto [14], m´as eficientes usando las propieda-des de los emparejamientos bilineales [30] y con seguridad post-cu´antica, basados en ret´ıculos euclideanos [40].

De la misma manera, hay sistemas de firma de anillo basados en RSA [50], en la dificultad del problema de logaritmo discreto [31, 35], m´as eficien-tes usando las propiedades de los emparejamientos bilineales [16] y con seguridad post-cu´antica, basados en ret´ıculos euclideanos [1].

3.3.

Firmas agregadas

En algunas situaciones reales hay que almacenar y verificar muchas firmas digitales, posiblemente provenientes de diferentes firmantes y correspon-dientes a diferentes mensajes. Por ejemplo, en el protocolo de telecomuni-caciones BGP (de Border Gateway Protocol), cada nodo intermedio recibe un paquete firmado por los nodos anteriores, verifica la validez de todas las firmas anteriores, a˜nade su firma digital al paquete recibido y env´ıa el resultado al nodo siguiente. Por tanto, el nodo n´umeroitiene que verificar i−1firmas digitales, dei−1usuarios (nodos) diferentes, calculadas sobre i−1mensajes diferentes (porque cada mensaje es igual al anterior m´as una firma digital).

La soluci´on inmediata a este problema es concatenar todas las firmas digi-tales y verificarlas todas, una a una, usando cada mensaje y la clave p´ublica de cada firmante. La idea de las firmas agregadas es encontrar soluciones m´as eficientes: dada una lista de n mensajes firmados por n usuarios, es decir, dada una lista dentripletas{(mi, σi,pki)}1≤i≤n, ¿existen maneras de agregar lasnfirmas en una firma ´unica, es decir sustituir{(mi, σi,pki)}1≤i≤n por(Σ,{(mi,pki)}1≤i≤n), de manera que verificar la validez de la firma

agre-gadaΣsea m´as r´apido que verificar una a una la validez de todas lasσi? Adem´as de ese objetivo de ganar en eficacia a la hora de verificar varias firmas, un sistema de agregaci´on de firmas debe ser seguro: qui´en verifique una firma agregadaΣtiene que estar convencido de que proviene den fir-mas individuales v´alidas, aunque nunca llegue a ver esas firmasσi. Es decir, la ´unica manera de generar una firma agregadaΣv´alida paranparejas de mensaje / usuario {(mi,pki)}1≤i≤n es conocer, para cada ´ındicei, o bien la

(25)

clave secretaski, o bien una firma v´alidaσipara el mensajemibajo la clave p´ublicapki.

3.3.1. Aplicaciones

Adem´as de protocolos de telecomunicaciones atravesando varios nodos, como hemos visto anteriormente en el caso de BGP, las firmas agregadas pueden aplicarse en otras situaciones. Describimos brevemente a continua-ci´on un par de ejemplos.

- Cadena de bloques (blockchain): es un paradigma, un modelo de compu-taci´on distribuida muy ´util para llegar a consensos sin la presencia de auto-ridades de confianza. Apareci´o por primera vez en el contexto de las cripto-monedas (como bitcoin) pero en los ´ultimos a˜nos su uso se ha extendido a otras aplicaciones, por ejemplo la firma de contratos.

La idea de blockchain es que se van creando cadenas de paquetes: cada paquete lo genera y agrega un usuario potencialmente diferente, a una cadena con la que el paquete est´e relacionado. Para a˜nadir autenticaci´on e integridad a esas bases de datos distribuidas, se pueden firmar digitalmente los paquetes almacenados (con firmas est´andar, o con firmas an´onimas de grupo/anillo). Para verificar la validez de una cadena, por tanto, habr´ıa que verificar todas las firmas de todos los paquetes que formen la cadena. Un sistema de firmas agregadas puede hacer que esa verificaci´on sea m´as eficiente, y que s´olo haya que almacenar la firma agregada de la cadena, que idealmente ocupa (mucha) menos memoria que almacenar todas las firmas individuales de cada paquete.

- Sistemas de contaje de visitas a una p´agina web. Algunas empresas pagan a p´aginas web para insertar publicidad de su empresa en ellas. La cantidad de dinero que pagan depende de las visitas que reciba esa p´agina web. Por tanto, el propietario de la p´agina web debe poder demostrar a la empresa que ha recibido un n´umero determinadoxde visitas en el mes actual, por ejemplo. Una manera de hacerlo es requerir que los usuarios que visitan la p´agina web firmen digitalmente un determinado mensaje, m = (web W,mes M,c´odigo C). Cuando la p´agina web haya recibido x visitas y por tanto recogidoxfirmas digitales de ese mensaje, provenientes dexusuarios diferentes, en vez de enviar todas las firmas a la empresa de publicidad, lo que puede hacer es usar un sistema de firma agregada para agregar todas las firmas en una firma m´as corta, que pueda ser verificada de manera m´as eficiente por la empresa que se publicita.

Debido a las propiedades de seguridad de las firmas agregadas, si la verifi-caci´on es correcta la empresa estar´a convencida que los x usuarios

(26)

efecti-vamente han firmado el mensaje y por tanto han accedido a la p´agina web (que es donde estaba el mensaje ma firmar).

3.3.2. Esquemas concretos existentes

Entre los sistemas de firma agregada propuestos en la literatura, se pueden distinguir dos tipos: los sistemas de agregaci´onsecuencialy los sistemas de agregaci´onlibre. En los primeros, las firmas se van agregando siguiendo un orden concreto, y ese orden tambi´en debe ser conocido por el verificador de la firma agregada. En los sistemas de segundo tipo, no existe esa restricci´on: las firmas pueden agregarse y verificarse sin seguir ning´un orden concreto (posiblemente oper´andolas todas a la vez).

Para algunas aplicaciones, como el protocolo BGP o algunos usos espec´ıfi-cos delblockchain, las firmas agregadas secuenciales pueden ser suficientes. Para otras aplicaciones, como el sistema de contaje de visitas a una p´agina web, es mejor que el sistema de agregaci´on empleado sea libre.

Los ´unicos sistemas de agregaci´on libre realmente eficientes propuestos en la literatura funcionan en el escenario matem´atico de los emparejamien-tos bilineales [12]. En cambio, para sistemas de agregaci´on secuencial, hay otras propuestas que funcionan en otros escenarios, por ejemplo en el es-cenario post-cu´antico basado en ret´ıculos euclideanos [4] o bien esque-mas gen´ericos basados en permutaciones unidireccionales con trampa (por ejemplo la funci´on RSA) [41].

(27)

4.

Protocolos de criptograf´ıa funcional

Tal y como explicamos en la Secci´on 1.4, en los ´ultimos a˜nos se han propus-to paradigmas crippropus-togr´aficos alternativos al paradigma cl´asico de un emisor y un receptor, ambos con una pareja de claves privada y p´ublica. El paradig-ma de la criptograf´ıa funcional es el que ha recibido m´as atenci´on, debido a sus potenciales aplicaciones en situaciones digitales actuales. Este para-digma incluye como casos particulares destacados la criptograf´ıa basada en identidades y la criptograf´ıa basada en atributos, que ya hemos introducido en la Secci´on 1.4. Repasamos a continuaci´on algunas aplicaciones de esos dos paradigmas concretos, y algunas propuestas existentes en la literatura para dichos paradigmas.

4.1.

Criptograf´ıa basada en identidades

Un criptosistema (ya sea de cifrado o de firma) basado en identidades es esencialmente un sistema de clave p´ublica en el que la clave p´ublica de cada usuario es su identidad,pk=id, y en el que la clave secreta asociada a cada identidad la debe calcula una autoridad de confianza.

4.1.1. Aplicaciones

Un sistema de cifrado basado en identidades tiene aplicaciones tanto te´ ori-cas como pr´acticas.

- A nivel pr´actico, adem´as de facilitar el tema de la gesti´on de certificados digitales (que es uno de los inconvenientes de la criptograf´ıa de clave p´ ubli-ca est´andar), otra peculiaridad del cifrado basado en identidades es que se puede cifrar un mensaje dirigido a una persona idincluso antes de que esa persona posea una clave secreta de descifrado (por ejemplo, antes de que empiece a formar parte de una comunidad concreta). Y no necesariamente debe ser una persona la designada porid, como vemos en la aplicaci´on que explicamos en el p´arrafo siguiente.

Supongamos que una persona dispone de informaci´on muy confidencial que quiere ir filtrando al p´ublico de manera gradual: una parte de la infor-maci´on cada mes, por ejemplo. Es un escenario similar al deWikileaks. Una posibilidad es que esa persona cifre toda la informaci´on usando un sistema de cifrado basado en identidades, cifrando cada parte de la informaci´on para la identidad id1 = enero, id2 = febrero, etc. Toda esa informaci´on

(28)

act´ua tambi´en como entidad de confianza que genera las claves secretas) s´olo tiene que calcular y publicar la clave secreta de descifrado asociada a la identidad correspondiente a ese mes. De esa manera, todo el mundo podr´a descifrar la informaci´on correspondiente a ese mes.

- A nivel te´orico, un sistema de cifrado basado en identidades directamente implica un sistema est´andar de firma digital, como observ´o Moni Naor en 2003 (comunicaci´on informal). Adem´as, se puede usar un sistema de ci-frado basado en identidades para aumentar el sistema de seguridad de un sistema de cifrado de clave p´ublica est´andar, hasta el nivel m´aximo (segu-ridad IND-CCA), tal y como se explica en [10].

4.1.2. Esquemas concretos existentes

El primer sistema eficiente de cifrado basado en identidades que se propuso funcionaba en el escenario de emparejamientos bilineales [11]. En el esce-nario basado en la dificultad de factorizaci´on, hay algunas propuestas no muy eficientes [38]. Recientemente, se ha propuesto un (complicado) sis-tema de cifrado basado en identidades que funciona en el escenario cl´asico basado en la dificultad del problema de logaritmo discreto, sin empareja-mientos bilineales [20]. Por ´ultimo, tambi´en hay propuestas de sistemas de cifrado basado en identidades con seguridad post-cu´antica, basados en ret´ıculos euclideanos [15].

En lo que refiere a sistemas de firma basados en identidades, son mucho m´as f´aciles de dise˜nar; de hecho, hay una construcci´on gen´erica para ob-tener un sistema de firma basado en identidades a partir de un sistema de firma est´andar [6], que tambi´en se puede extender para el caso de algu-nos sistemas de firma con propiedades adicionales (por ejemplo, las firmas ciegas) [24].

4.2.

Criptograf´ıa basada en atributos

En la criptograf´ıa basada en atributos, las operaciones secretas (descifrar o firmar) las pueden realizar s´olo aquellos usuarios cuyos atributos satisfa-gan una determinadapol´ıtica de acceso. Una de las propiedades m´as intere-santes de estos sistemas es que el hecho de realizar la operaci´on secreta no revela nada sobre el usuario, aparte del hecho que sus atributos son autorizados. Por tanto, es una herramienta criptogr´afica muy ´util para apli-caciones en las que se desea un cierto nivel de privacidad, a la vez que se desea restringir determinadas operaciones a usuarios suficientemente cua-lificados o autorizados.

(29)

4.2.1. Aplicaciones

Los sistemas criptogr´aficos basados en atributos tienen muchas aplicaciones pr´acticas. Tambi´en, debido a la complejidad de su definici´on, han dado pie a relaciones te´oricas con otras herramientas criptogr´aficas. Repasamos a continuaci´on algunas aplicaciones pr´acticas y te´oricas.

- A nivel pr´actico, un sistema de cifrado basado en atributos se puede usar para cifrar los datos m´edicos de un hospital, referidos a pacientes. Diferen-tes datos de los pacienDiferen-tes pueden tener un grado de confidencialidad dife-rente: a lo mejor algunos datos pueden ser consultados (descifrados) por cualquier enfermero o m´edico del hospital en el que est´e ingresado, mien-tras que otros datos s´olo pueden ser consultados por los m´edicos de ese hospital, y quiz´as otros datos puedan ser consultados por cualquier m´ edi-co de cualquier hospital del sistema de salud. Usando diferentes pol´ıticas de acceso para cifrar cada uno de esos datos, se obtiene la propiedad de confidencialidad deseada.

La misma idea puede usarse en un sistema de almacenamiento en la Nube: un usuario puede cifrar sus datos confidenciales para que los almacene un servidor Nube, con diferentes pol´ıticas de acceso, de manera que m´as tarde el mismo usuario (o tal vez tambi´en otros) puedan descifrar partes de esos datos en funci´on del dispositivo que usen (ordenador, tel´efono m´ovil...), de la fecha, de las credenciales que puedan poseer otros usuarios, etc.

Tambi´en se pueden usar los sistemas basados en atributos (de cifrado o de firma) para implementar un sistema de control de acceso restringido pero privado: cada usuario recibe una clave secreta en funci´on de sus atributos (sus credenciales personales, o el tipo de suscripci´on que haya pagado, por ejemplo), y eso le permite acceder a ciertas partes de un sistema de manera privada (contestando a un mensaje reto que debe firmar con una firma ba-sada en atributos, por ejemplo) o descifrar ciertos contenidos digitales (por ejemplo series o pel´ıculas) que vaya emitiendo un sistema de contenidos de pago.

- A nivel te´orico, el concepto de cifrado basado en atributos est´a relacio-nado con sistemas de delegaci´on verificable de c´alculo de funciones [44] y tambi´en con otros conceptos criptogr´aficos que han recibido mucha aten-ci´on en los ´ultimos a˜nos, como el cifrado completamente homom´orfico y la ofuscaci´on indistinguible [25].

(30)

4.2.2. Esquemas concretos existentes

El escenario matem´atico en el que se han propuesto m´as sistemas basa-dos en atributos es el de los emparejamientos bilineales. Hay sistemas de cifrado o de firma que pueden soportar cualquier tipo de pol´ıtica de acce-so [39, 52] y tambi´en hay otros, m´as eficientes, que s´olo sirven para unas pol´ıticas de acceso determinadas (como las de umbral) [3, 34].

En el escenario basado en la dificultad de factorizaci´on, s´olo existen pro-puestas de firma basada en atributos [32], ninguna de cifrado.

En el escenario cl´asico basado en la dificultad del logaritmo discreto, sin emparejamientos bilineales, los ´unicos sistemas existentes funcionan s´olo para situaciones restringidas a pocos usuarios [33].

Por ´ultimo, que aporten seguridad post-cu´antica, existen varias propuestas de sistemas criptogr´aficos basados en atributos dise˜nados a partir de los ret´ıculos euclideanos [29, 55].

(31)

5.

Referencias externas sobre los protocolos

crip-togr´

aficos de este informe

Esta secci´on incluye enlaces a los sitios de la web Wikipedia en los que se explican algunos de los conceptos m´as importantes que se han tratado en este documento. Con ello, pretendemos que el lector interesado pueda obtener m´as informaci´on y referencias. Ponemos los enlaces a los sitios en ingl´es porque suelen contener m´as informaci´on que las versiones en castellano (que, de hecho, no existen para todos los conceptos de la lista).

Criptograf´ıa Sim´etrica,

https://en.wikipedia.org/wiki/Symmetric-key_algorithm

Criptograf´ıa Asim´etrica,

https://en.wikipedia.org/wiki/Public-key_cryptography

Firma Digital,

https://en.wikipedia.org/wiki/Digital_signature

Pruebas de Conocimiento,

https://en.wikipedia.org/wiki/Zero-knowledge_proof

Criptograf´ıa basada en emparejamientos bilineales,

https://en.wikipedia.org/wiki/Pairing-based_cryptography

Criptograf´ıa basada en ret´ıculos euclideanos,

https://en.wikipedia.org/wiki/Lattice-based_cryptography

Cifrado determinista,

https://en.wikipedia.org/wiki/Deterministic_encryption

Cifrado que preserva el formato,

https://en.wikipedia.org/wiki/Format-preserving_encryption

Cifrado homom´orfico,

https://en.wikipedia.org/wiki/Homomorphic_encryption

Firma ciega,

https://en.wikipedia.org/wiki/Blind_signature

Firma de grupo,

(32)

Firma de anillo,

https://en.wikipedia.org/wiki/Ring_signature

Criptograf´ıa basada en identidades,

https://en.wikipedia.org/wiki/ID-based_cryptography

Criptograf´ıa basada en atributos,

(33)

Referencias

[1] C. Aguilar-Melchor, S. Bettaieb, X. Boyen, L. Fousse, P. Gaborit. “Adap-ting Lyubashevsky’s Signature Schemes to the Ring Signature Set-ting”. En Proc. AFRICACRYPT ’13, Lecture Notes in Computer Science 7918, 1–25. Springer, 2013. 21

[2] G. Ateniese, J. Camenisch, M. Joye, G. Tsudik. “A practical and pro-vably secure coalition-resistant group signature scheme”. En Proc. CRYPTO ’00, Lecture Notes in Computer Science 1880, 255–270. Springer, 2000. 21

[3] N. Attrapadung, J. Herranz, F. Laguillaumie, B. Libert, E. Panafieu, C. R`afols. “Attribute-based encryption schemes with constant-size cip-hertexts”. Theoretical Computer Science422, 15–38, 2012. 27 [4] R. El Bansarkhani, J. Buchmann. “Towards Lattice Based Aggregate

Signatures”. En Proc. AFRICACRYPT ’14, Lecture Notes in Computer Science8469, 336–355. Springer, 2014. 23

[5] M. Bellare, A. Boldyreva, A. O’Neill. “Deterministic and Efficiently Searchable Encryption”. En Proc. CRYPTO ’07, Lecture Notes in Com-puter Science 4622, 535–552. Springer, 2007. 16

[6] M. Bellare, C. Namprempre, G. Neven. “Security Proofs for Identity-Based Identification and Signature Schemes”. Journal of Cryptology 22(1), 1–61, 2009. 25

[7] M. Bellare, C. Namprempre, D. Pointcheval, M. Semanko. “The One-More-RSA-Inversion Problems and the Security of Chaum’s Blind Sig-nature Scheme”. Journal of Cryptology16(3), 185–215, 2003. 19 [8] A. Boldyreva. “Threshold Signatures, Multisignatures and Blind

Sig-natures Based on the Gap-Diffie-Hellman-Group Signature Scheme”. En Proc. PKC ’03, Lecture Notes in Computer Science 2567, 31–46. Springer, 2003. 19

[9] A. Boldyreva, N. Chenette, A. O’Neill. “Order-Preserving Encryption Revisited: Improved Security Analysis and Alternative Solutions”. En Proc. CRYPTO ’11, Lecture Notes in Computer Science 6841, 578– 595. Springer, 2011. 16

(34)

[10] D. Boneh, R. Canetti, S. Halevi, J. Katz. “Chosen-Ciphertext Security from Identity-Based Encryption”. SIAM Journal of Computing 36(5), 1301–1328, 2007. 25

[11] D. Boneh, M.K. Franklin. “Identity-Based Encryption from the Weil Pairing”. SIAM Journal of Computing32(3), 586–615, 2003. 25 [12] D. Boneh, C. Gentry, B. Lynn, H. Shacham. “Aggregate and Verifiably

Encrypted Signatures from Bilinear Maps”. En Proc. EUROCRYPT ’03, Lecture Notes in Computer Science 2656, 416–432. Springer, 2003. 23

[13] D. Boneh, B. Lynn, H. Shacham. “Short Signatures from the Weil Pai-ring”. Journal of Cryptology17, 297–319, 2004. 9

[14] J. Camenisch, M. Stadler. “Efficient Group Signature Schemes for Lar-ge Groups (Extended Abstract)”. En Proc. CRYPTO ’97, Lecture Notes in Computer Science1294, 410–424. Springer, 1997. 21

[15] D. Cash, D. Hofheinz, E. Kiltz, C. Peikert. “Bonsai Trees, or How to De-legate a Lattice Basis”. Journal of Cryptology 25(4), 601–639, 2012. 25

[16] N. Chandran, J. Groth, A. Sahai. “Ring signatures of sub-linear size without random oracles”. En Proc. ICALP ’07, Lecture Notes in Com-puter Science 4596, 423–434. Springer, 2007. 21

[17] D. Chaum. “Blind Signatures for Untraceable Payments”. En Proc. CRYPTO ’82, 199–203, ISBN 978-1-4757-0602-4. Springer, 1983. 18, 19

[18] R. Cramer, V. Shoup. “A Practical Public Key Cryptosystem Provably Secure Against Adaptive Chosen Ciphertext Attack”. En Proc. CRYPTO ’98, Lecture Notes in Computer Science1462, 13–25. Springer, 1998. 9

[19] W. Diffie, M.E. Hellman. “New directions in cryptography”. IEEE Transactions on Information Theory22(6), 644–654, 1976. 4, 9 [20] N. D¨ottling, S. Garg. “Identity-Based Encryption from the

Diffie-Hellman Assumption”. En Proc. CRYPTO ’17, Lecture Notes in Com-puter Science 10401, 537–569. Springer, 2017. 25

Referencias

Documento similar