ACTAS DE LA XI RECSI 1 axima Seguridad para Firmas Digitales con Verificaci´ on Distribuida Javier Herranz 1 , Alexandre Ruiz 1 , Germ´ an S´ aez 1 Abstract—Una de las opciones para proteger el nivel de anonimato o privacidad de un firmante es construir firmas digitales con verificaci´ on distribuida: se requiere la colaboraci´ on de un subconjunto autorizado de usuarios para verificar la (in)validez de una firma. En RECSI’08, se propuso un esquema de este tipo, pero que no alcanzaba el m´ aximo nivel de seguridad. En este trabajo proponemos el primer esquema de firma digital con verificaci´ on distribuida que consigue seguridad m´ axima, en t´ erminos de infalsificabilidad y privacidad. Demostramos formalmente estas dos propiedades por reducci´ on a problemas computacionales est´ andar, en el modelo del or´ aculo aleatorio. Index Terms—Firma digital, compartici´ on de secretos, modelo del or´ aculo aleatorio, indistinguibilidad I. I NTRODUCCI ´ ON En algunas situaciones la propiedad de verificaci´ on univer- sal en una firma digital puede ser no deseable, si el firmante desea un cierto nivel de anonimato o de privacidad. Una posi- ble soluci´ on a este problema consiste en exigir la colaboraci´ on de varios usuarios para que el protocolo de verificaci´ on se pueda ejecutar correctamente. Este tipo de esquemas recibe el nombre de esquemas de firma con verificaci´ on distribuida, que pueden aplicarse en situaciones reales como subastas o votaciones electr´ onicas. En [6], se definen las propiedades de seguridad (infalsifica- bilidad y privacidad) que debe satisfacer un esquema de firma con verificaci´ on distribuida. Tambi´ en se propone un esquema concreto, pero dicho esquema no alcanza el m´ aximo nivel de seguridad respecto a la propiedad de privacidad. En este trabajo proponemos el primer esquema de firma con verificaci´ on distribuida que satisface las m´ aximas propiedades de seguridad. En particular, el esquema es seguro incluso ante atacantes que conocen las claves secretas de todos los participantes (excluido el participante que se est´ a atacando). Conviene remarcar que esta propiedad (conocida como insider security, en ingl´ es) no es en absoluto f´ acil de conseguir: incluso construcciones gen´ ericas obtenidas al combinar un esquema de firma con un esquema de cifrado con descifrado distribuido no satisfacen este nivel m´ aximo de seguridad. La definici´ on detallada de estas propiedades de seguridad se puede encontrar en la Secci´ on III. El dise˜ no del nuevo esquema, que se presenta en la Secci´ on IV, sigue las ideas del esquema de cifrado distribuido de Shoup y Gennaro [9]. En la Secci´ on V, demostraremos formalmente las dos propiedades de seguridad, en el modelo del or´ aculo aleatorio, por reducci ´ on a dos problemas est´ andar: el problema del logaritmo discreto, y el problema Computacional de Diffie-Hellman. 1 MAIV, UPC, Barcelona, Spain, {jherranz,aruiz,german}@ma4.upc.edu II. ESQUEMAS DE FIRMA CON VERIFICACI ´ ON DISTRIBUIDA Un esquema Σ de firma con verificaci´ on distribuida consiste en cuatro protocolos probabil´ ısticos y de tiempo de ejecuci´ on polin´ omico: 1) Ini. La entrada es un par´ ametro de seguridad λ. Las salidas son unos par´ ametros p´ ublicos params utilizados en todo el esquema. Σ.Ini(1 λ )= params 2) Gen Cla. Este protocolo utiliza dos algoritmos. El primero corresponde al firmante A que obtendr´ a un par de claves (sk A , pk A ), donde sk A es la clave privada para firmar y pk A es la correspondiente clave p´ ublica. El segundo algoritmo corresponde a un conjunto B de n verificadores, que tiene asociada una estructura de acceso (mon´ otona creciente) Γ B 2 B , que contiene los subconjuntos autorizados a verificar. Estos usuarios obtendr´ an cierta informaci´ on privada {sk j } j∈B que va a ser usada m´ as tarde en el proceso de verificaci´ on distribuida, y cierto valor p´ ublico pk B com´ un para el conjunto B. El proceso de generaci´ on de claves para el colectivo B puede ser ejecutado por una tercera autoridad de confianza o de manera conjunta por ellos mismos, usando t´ ecnicas conocidas [3]. Σ.GC(params, A, ‘individual’)=(sk A , pk A ) Σ.GC(params, B, Γ B , ‘colectivo’)=({sk j } j∈B , pk B ) 3) Firm. Este algoritmo es ejecutado por el firmante A; toma como entrada un mensaje m, su clave privada sk A y la clave p´ ublica asociada a un grupo B de verificadores, y da como salida una firma θ(m) del mensaje. Σ.Firm(params, m, pk B , sk A )= θ(m) 4) Ver Dist. Dado B Γ B un subconjunto autorizado de verificadores, este protocolo toma como entrada un mensaje m, una firma θ, la clave p´ ublica pk A y los fragmentos sk j de los usuarios j B. La salida ser´ a 1 si θ(m) es una firma v´ alida de m y 0 en el caso contrario. Σ.Ver(params, m, θ, pk A ,B, {sk j } jB )=1 ´ o 0 Hay que remarcar que el primer y segundo protocolos se ejecutan s´ olo una vez. Los otros dos protocolos, i.e. el proceso de firma y de verificaci´ on, se ejecutan tantas veces como los participantes quieran firmar o verificar.