Está en la página 1de 6

ACTAS DE LA XI RECSI

M xima Seguridad para Firmas Digitales con a Vericaci n Distribuida o


Javier Herranz1 , Alexandre Ruiz1 , Germ n S ez1 a a
AbstractUna de las opciones para proteger el nivel de anonimato o privacidad de un rmante es construir rmas digitales con vericaci n distribuida: se requiere la colaboraci n o o de un subconjunto autorizado de usuarios para vericar la (in)validez de una rma. En RECSI08, se propuso un esquema de este tipo, pero que no alcanzaba el m ximo nivel de seguridad. a En este trabajo proponemos el primer esquema de rma digital con vericaci n distribuida que consigue seguridad m xima, o a en t rminos de infalsicabilidad y privacidad. Demostramos e formalmente estas dos propiedades por reducci n a problemas o computacionales est ndar, en el modelo del or culo aleatorio. a a Index TermsFirma digital, compartici n de secretos, modelo o del or culo aleatorio, indistinguibilidad a

II. E SQUEMAS DE FIRMA CON VERIFICACI ON DISTRIBUIDA Un esquema de rma con vericaci n distribuida consiste o en cuatro protocolos probabilsticos y de tiempo de ejecuci n o polin mico: o 1) Ini. La entrada es un par metro de seguridad . Las a salidas son unos par metros p blicos params utilizados a u en todo el esquema. .Ini(1 ) = params 2) Gen Cla. Este protocolo utiliza dos algoritmos. El primero corresponde al rmante A que obtendr un par a de claves (skA , pkA ), donde skA es la clave privada para rmar y pkA es la correspondiente clave p blica. u El segundo algoritmo corresponde a un conjunto B de n vericadores, que tiene asociada una estructura de acceso (mon tona creciente) B 2B , que contiene o los subconjuntos autorizados a vericar. Estos usuarios obtendr n cierta informaci n privada {skj }jB que va a o a ser usada m s tarde en el proceso de vericaci n a o distribuida, y cierto valor p blico pkB com n para el u u conjunto B. El proceso de generaci n de claves para o el colectivo B puede ser ejecutado por una tercera autoridad de conanza o de manera conjunta por ellos mismos, usando t cnicas conocidas [3]. e .GC(params, A, individual) = (skA , pkA ) .GC(params, B, B , colectivo) = ({skj }jB , pkB ) 3) Firm. Este algoritmo es ejecutado por el rmante A; toma como entrada un mensaje m, su clave privada skA y la clave p blica asociada a un grupo B de u vericadores, y da como salida una rma (m) del mensaje. .Firm(params, m, pkB , skA ) = (m) 4) Ver Dist. Dado B B un subconjunto de vericadores, este protocolo toma como mensaje m, una rma , la clave p blica u fragmentos skj de los usuarios j B. La 1 si (m) es una rma v lida de m y 0 a contrario. autorizado entrada un pkA y los salida ser a en el caso

I. I NTRODUCCI ON En algunas situaciones la propiedad de vericaci n univero sal en una rma digital puede ser no deseable, si el rmante desea un cierto nivel de anonimato o de privacidad. Una posible soluci n a este problema consiste en exigir la colaboraci n o o de varios usuarios para que el protocolo de vericaci n se o pueda ejecutar correctamente. Este tipo de esquemas recibe el nombre de esquemas de rma con vericaci n distribuida, o que pueden aplicarse en situaciones reales como subastas o votaciones electr nicas. o En [6], se denen las propiedades de seguridad (infalsicabilidad y privacidad) que debe satisfacer un esquema de rma con vericaci n distribuida. Tambi n se propone un esquema o e concreto, pero dicho esquema no alcanza el m ximo nivel de a seguridad respecto a la propiedad de privacidad. En este trabajo proponemos el primer esquema de rma con vericaci n distribuida que satisface las m ximas propiedades o a 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 atacando). a Conviene remarcar que esta propiedad (conocida como insider security, en ingl s) no es en absoluto f cil de conseguir: e a incluso construcciones gen ricas obtenidas al combinar un e esquema de rma con un esquema de cifrado con descifrado distribuido no satisfacen este nivel m ximo de seguridad. a La denici n detallada de estas propiedades de seguridad o se puede encontrar en la Secci n III. El dise o del nuevo o n esquema, que se presenta en la Secci n IV, sigue las ideas del o esquema de cifrado distribuido de Shoup y Gennaro [9]. En la Secci n V, demostraremos formalmente las dos propiedades o de seguridad, en el modelo del or culo aleatorio, por reducci n a o a dos problemas est ndar: el problema del logaritmo discreto, a y el problema Computacional de Dife-Hellman.
1 MAIV,

.Ver(params, m, , pkA , B, {skj }jB ) = 1 o 0 Hay que remarcar que el primer y segundo protocolos se ejecutan s lo una vez. Los otros dos protocolos, i.e. el proceso o de rma y de vericaci n, se ejecutan tantas veces como los o participantes quieran rmar o vericar.

UPC, Barcelona, Spain, {jherranz,aruiz,german}@ma4.upc.edu

ACTAS DE LA XI RECSI

III. M ODELO DE SEGURIDAD Las propiedades de seguridad que un esquema de rma con vericaci n distribuida deber satisfacer son las de ino a falsicabilidad y privacidad. Nuestro objetivo es considerar las nociones de seguridad m s fuertes posibles. Por esta a raz n al adversario se le permite hacer peticiones de rma o y vericaci n para diferentes usuarios, mensajes y rmas. o Adem s se le permite corromper al mayor n mero de a u participantes posibles (con la excepci n de los usuarios que o sean objetivo de su ataque en cada caso). En particular, la infalsicabilidad se alcanza incluso cuando el adversario conoce toda la informaci n secreta de todos los participantes o con la excepci n del rmante que quiere atacar. Por otra parte, o la privacidad se consigue incluso en el caso que el adversario conozca las claves secretas de todos los posibles rmantes y de un subconjunto no autorizado de vericadores. Este nivel de seguridad recibe en ingl s el nombre de insider security. e A. Infalsicabilidad La infalsicabilidad existencial contra ataques de mensaje escogido [5] requiere que cualquier atacante debe tener probabilidad despreciable 1 de falsicar una rma v lida de un a usuario (del cual no conoce su clave secreta), incluso si el atacante puede obtener previamente otros pares (mensaje,rma) v lidos, para mensajes y conjuntos de vericadores que el a escoge adaptativamente. Esta propiedad se formaliza con el siguiente juego, en el que dado un par metro de seguridad un retador externo reta a a un atacante FINF para que intente falsicar una rma v lida a nueva: 1) El retador ejecuta params .Ini(1 ) y da todos los valores obtenidos junto con una estructura de acceso a FINF . 2) FINF escoge un participante A para ser atacado. El retador ejecuta (skA , pkA ) .GC(params, A , individual), se guarda skA y le da pkA a FINF . 3) [Generaci n de nuevas claves] El atacante puede ejecutar o (skA , pkA ) .GC(params, A, individual) para rmantes A = A de su elecci n, y tambi n puede ejecutar o e .GC(params, B, B , colectivo) = ({skj }jB , pkB ) para conjuntos B de su elecci n. o 4) [Peticiones hash] Si la seguridad se considera en el modelo del or culo aleatorio [1], FINF puede hacer a peticiones al or culo que modela el comportamiento de a ciertas funciones hash. 5) [Peticiones rma] FINF puede escoger, de manera adaptativa, tuplas (m , pkB ) y enviarlas a un or culo de rma a para el rmante A . FINF obtiene como respuesta las rmas (m ) .Firm(params, m , pkB , skA ). 6) [Falsicaci n] En un cierto momento, FINF publica o un par (m , ) y una clave pkB para un conjunto B y una estructura de acceso B . El atacante FINF gana el juego si (m , ) = (m , (m )),
1 Formalmente, decimos que una funci n f es despreciable (o negligible, en o ingl s) en k si existe un polinomio p() y un valor entero positivo k0 tal que e f (k) 1/p(k) para todo k k0 . Usualmente, se escribe f (k) = negl(k) para las funciones f despreciables en k.

para toda rma obtenida durante el ataque, y adem s a .Ver(params, m , , pkA , B, {skj }jB ) = 1, para alg n subconjunto B B . u La ventaja de un adversario FINF en romper la infalsicabilidad de un esquema de rma con vericaci n distribuida se o dene como VentFINF () = Pr[FINF gana el juego]. Denici n 1: Un esquema de rma con vericaci n diso o tribuida es infalsicable si para cualquier adversario FINF de tiempo polin mico, el valor VentFINF () es despreciable o con respecto al par metro de seguridad . a B. Privacidad Intuitivamente, en una rma digital con vericaci n diso tribuida se requiere que un atacante que corrompa a un subconjunto de usuarios no autorizado, no pueda obtener ninguna informaci n sobre la (in)validez de las rmas calculadas por o el usuario A. Para formalizar exactamente qu quiere decir e no obtener ninguna informaci n, se adapta el concepto de o seguridad sem ntica (inicialmente introducido para esquemas a de cifrado y conocido tambi n como indistinguibilidad contra e ataques de cifrado escogido [4] o IND-CCA). De manera informal, dados dos mensajes escogidos por un atacante, y una rma v lida para uno de estos mensajes, el adversario a no debe ser capaz de distinguir qu mensaje ha sido rmado e con probabilidad signicativamente mayor que 1/2 (respuesta aleatoria). Para formalizar esta idea intuitiva, detallamos aqu un juego de indistinguibilidad donde un atacante FIND intenta ganar a un retador externo: 1) El retador ejecuta params .Ini(1 ) y da todos los valores obtenidos a FIND . 2) FIND escoge un conjunto de vericadores B , una es tructura de acceso B 2B y un subconjunto no autorizado B B , cuyos usuarios puede corromper. / El retador ejecuta el protocolo ({skj }jB , pkB ) .GC(params, B , B , colectivo), da al atacante FIND los valores pkB y {skj }jB , y mantiene el resto de valores skj en secreto. 3) [Generaci n de nuevas claves] El atacante puede ejecuo tar (skA , pkA ) .GC(params, A, individual) para rmantes A de su elecci n, y tambi n puede ejecutar o e .GC(params, B, B , colectivo) = ({skj }jB , pkB ) o para parejas (B, B ) = (B , B ) de su elecci n. 4) [Peticiones hash] Si la seguridad se considera en el modelo del or culo aleatorio, FIND puede hacer peticiones a al or culo que modela el comportamiento de ciertas a funciones hash. 5) [Peticiones vericaci n] FIND escoge diferentes tuplas o (m , , pkA ) para rmantes A de su elecci n y o hace peticiones, de manera adaptativa, a un or culo a de vericaci n para estas rmas, con conjunto de veo ricadores B . FIND obtiene como respuesta toda la informaci n emitida durante la ejecuci n del protocolo o o .Ver(params, m , , pkA , B , {skj }jB ).

ACTAS DE LA XI RECSI

6) FIND escoge dos mensajes m0 , m1 de la misma longitud y un rmante A con claves (skA , pkA ), que FIND enva al retador. 7) [Desafo] El retador escoge un bit aleatorio b {0, 1} y ejecuta .Firm(params, mb , pkB , skA ). La rma resultante se enva a FIND . 8) [M s peticiones] Los pasos 4 y 5 son repetidos, con la a restricci n que las tuplas (mi , , pkA ) no pueden ser o enviadas al or culo de vericaci n, para i = 0, 1. a o 9) Finalmente, FIND devuelve un bit b {0, 1}. Decimos que FIND gana el juego si b = b. La ventaja de un tal adversario FIND en romper la privacidad de un esquema de rma con vericaci n distribuida se dene como o VentFIND () = |2 Pr[b = b] 1| . Denici n 2: Un esquema de rma con vericaci n diso o tribuida satisface la propiedad de privacidad si para cualquier adversario FIND de tiempo polin mico, el valor o VentFIND () es despreciable con respecto al par metro de a seguridad . IV. E L ESQUEMA PROPUESTO En esta secci n se describe un esquema especco de o rma con vericaci n distribuida. El dise o de este nuevo o n esquema sigue las ideas del esquema de cifrado distribuido propuesto por Shoup y Gennaro [9]. Demostraremos que el nuevo esquema satisface las nociones m ximas de seguridad a de infalsicabilidad y privacidad. Para simplicar y por falta de espacio, consideramos el escenario donde los vericadores act an correctamente en el proceso distribuido. Una modiu caci n simple de nuestro esquema, incluyendo pruebas no o interactivas de conocimiento cero sobre la igualdad de dos logaritmos discretos, permite a adir robustez al esquema para n detectar participantes deshonestos en el proceso distribuido de vericaci n. o Detallamos a continuaci n los protocolos que componen o nuestro esquema de rma con vericaci n distribuida , o para un rmante A y un conjunto B = {1, . . . , n} de n vericadores. 1) Ini. .Ini(1 ). Dado un par metro de seguridad N, se escogen dos a n meros primos p y q tales que |q| = y q|(p1). Se esu coge tambi n un grupo cclico G = g de orden primo e q. Se escoge otro par metro de seguridad, sucientea mente grande (por ejemplo = 160) para evitar ataques de colisi n al esquema. Posteriormente se escogen y o publican cuatro funciones hash H0 : {0, 1} {0, 1} , H1 : {0, 1} G, H2 : {0, 1} Zq y H3 : {0, 1} {0, 1} . En la demostraci n de seguridad, supondremos o que las funciones hash H0 , H1 , H2 se comportan como un or culo aleatorio [1]. Del protocolo se obtienen los a valores params = (p, q, G, g, , H0 , H1 , H2 , H3 ). 2) Gen Cla. .GC(params, A, individual) .GC(params, B, B , colectivo). Para el rmante A, la clave secreta es un elemento aleatorio xA Z que guarda de manera privada, q

mientras que la clave p blica correspondiente es yA = u g xA mod p. Para el colectivo B de n usuarios se publica el valor yB = g xB para un valor aleatorio xB Z que es q desconocido para los miembros de B. Cada vericador j de B recibe un fragmento sj del secreto xB , correspondiente a un esquema de compartici n de secretos de o espacio vectorial [2] para la estructura de acceso B . Es decir, para cada conjunto autorizado B B existen coecientes {B }jB tales que jB B sj = xB . j j 3) Firm. .Firm(params, m, yB , xA ). Si A quiere rmar un mensaje m {0, 1} , ejecuta los siguientes pasos: a) Escoge un valor aleatorio r Z y calcula R = q g r mod p. b) Calcula k = H0 (R, yB , (yB )r , yA ) y c = H3 (k, m). c) Elige valores aleatorios 1 , 2 Z y calcula q Y1 = g 1 mod p, Y2 = g 2 mod p. d) Calcula g = H1 (c, R, Y1 , Y2 , yA , YB ) G, y posteriormente R = g r mod p, Y1 = g 1 mod p. Y1 , Y2 , Y1 , yA , yB ). e) Calcula h = H2 (c, R, g , R, f) Calcula s1 = 1 h r mod q. g) Calcula s2 = 2 h xA mod q. h) Devuelve la rma (m) = (c, R, R, h, s1 , s2 ). 4) Ver Dist. .Ver(params, m, , yA , B, {sj }jB ). Si los participantes de un subconjunto autorizado B 0 quieren cooperar para vericar la rma (m) = (c, R, R, h, s1 , s2 ) del mensaje m, ejecutan los siguientes pasos. a) Cada vericador j B calcula g = H1 (c, R, g s1 Rh , g s2 (yA )h , yA , yB ) y comprueba entonces que la siguiente igualdad se verica: h = H2 (c, R, g , R, g s1 Rh , g s2 (yA )h , g s1 Rh , yA , yB ) b) Si la igualdad no se verica, j devuelve (j, 0). c) En caso contrario, j B devuelve el valor Tj = Rsj mod p. d) Una vez se han recibido valores v lidos Tj , difea rentes de (j, 0), correspondientes al subconjunto autorizado B B , se recupera el valor RxB :
jB

Tj j = RxB mod p, donde B Zq son los j

coecientes denidos por el esquema de compartici n de secretos de espacio vectorial. o e) Se calcula k = H0 (R, yB , RxB , yA ). f) Finalmente, para vericar la validez de la rma se comprueba la igualdad c = H3 (k, m) devolviendo 1 si la igualdad es v lida y 0 en caso contrario. a Intuitivamente, dada una rma (m) = (c, R, R, h, s1 , s2 ), los dos primeros elementos (c, R) son un c digo de auteno ticaci n del mensaje (MAC, en ingl s) para el mensaje m, o e que puede ser vericado s lo si sucientes miembros de o B cooperan. El resto de elementos (R, h, s1 , s2 ) corresponden a una prueba de conocimiento cero del logaritmo discreto de yA y de la igualdad entre los logaritmos discretos LogDiscg (R) = DiscLogg (R). La vericaci n de dicha o prueba de conocimiento se realiza en los pasos a) y b) del

ACTAS DE LA XI RECSI

protocolo Ver Dist. V. A N ALISIS DE SEGURIDAD En este apartado demostramos que el esquema de rma con vericaci n distribuida propuesto en la secci n anterior satiso o face las propiedades denidas en la Secci n III, alcanzando o pues el m ximo nivel de seguridad que se puede exigir a este a tipo de rmas. La seguridad se considera en el modelo del or culo aleatorio a [1], donde el atacante puede hacer peticiones al or culo que a modela el comportamiento de ciertas funciones de hash. Basaremos la seguridad del esquema propuesto en los siguientes problemas computacionales. Dado un par metro de a seguridad N, un n mero primo q de bits y un grupo u cclico G = g de orden primo q: El problema del Logaritmo Discreto (LD): para una entrada (G, y), tal que y G, el objetivo del algoritmo ALD es encontrar un entero x Z tal que y = g x . Para q un algoritmo en tiempo polin mico ALD que recibe la tuo pla (G, y), denimos VentALD () como la probabilidad de que A encuentre ese valor x Z tal que y = g x . La q hip tesis del Logaritmo Discreto asume que el problema o LD es difcil de resolver, es decir que VentALD () es depreciable en . El problema Computacional de Dife-Hellman (CDH): para una entrada (G, g, g a , g b ), tal que a, b Z son q valores aleatorios, el objetivo del algoritmo ACDH es calcular el valor de g ab G. Denimos VentACDH () y la hip tesis Computacional de Dife-Hellman de manera o an loga al problema LD. a La infalsicabilidad del nuevo esquema se basar en la dia cultad de resolver el problema LD, mientras que la privacidad se basar en la dicultad de resolver el problema CDH. a A. Infalsicabilidad Antes de proceder con la demostraci n de infalsicabilidad, o recordamos una simplicaci n del Forking Lemma, introo ducido por Pointcheval y Stern en [7]. Lema 1: [Forking Lemma modicado] Consideremos un esquema de rma digital gen rico 2 con par metro de see a guridad . Dado un algoritmo B que obtiene una rma v lida (m, R, h, s) con probabilidad al menos (), existe otro a algoritmo B que utiliza B como subrutina y que produce con probabilidad () O ()2 dos rmas v lidas a (m, R, h, s) y (m, R , h , s ) tales que h = h . A continuaci n demostramos por reducci n que nuestro o o esquema de rma con vericaci n distribuida es infalsicable, o en el modelo del or culo aleatorio [1], bas ndonos en la a a suposici n que el problema del logaritmo discreto es como putacionalmente irresoluble en grupos de orden primo. Teorema 1: Sea N un par metro de seguridad. Para a cualquier atacante FINF contra la infalsicabilidad de nuestro esquema de rma con vericaci n distribuida, existe un o
2 Las rmas gen ricas tienen la forma (m, R, h, s), donde R es un valor e aleatorio escogido dentro de un conjunto muy grande (de tama o exponencial n en el par metro de seguridad), y h = H(m, R) para una funci n de hash H. a o

algoritmo ALD para el problema del logaritmo discreto, esencialmente con el mismo tiempo de ejecuci n que FINF , o tal que VentALD () O VentFINF ()2 . Proof: Asumiendo que tenemos un atacante FINF que tiene ventaja VentFINF () en romper la infalsicabilidad de nuestro esquema de rma, vamos a construir un algoritmo ALD , que va a ir ejecutando a su vez el atacante FINF como subrutina, simulando su entorno y respondiendo a sus peticiones. Aplicando el Lema 1 al atacante FINF , el algoritmo ALD ser capaz de resolver el problema del logaritmo discreto. a ALD recibe como entrada un grupo cclico G = g de orden primo q, junto con un valor y G. El objetivo de ALD es encontrar un entero x Zq tal que y = g x . I NICIALIZACI ON DE FINF . El protocolo .Ini(1 ) es eje cutado por ALD : este da a FINF los valores params = (p, q, G, g, , H0 , H1 , H2 , H3 ). Aqu las funciones hash H0 : {0, 1} {0, 1} , H1 : {0, 1} G y H3 : {0, 1} {0, 1} son elegidas arbitrariamente por ALD . Sin embargo, H2 es modelada como un or culo aleatorio y por ello ALD a mantendr una tabla TAB2 que servir para responder a las a a peticiones hash de FINF . Para simular la ejecuci n o del protocolo .GC(params, A , individual), para el rmante A escogido por FINF , el algoritmo ALD dene la clave p blica u de A como yA = y y se la enva a FINF . N tese que la o correspondiente clave secreta xA , que es desconocida por ALD , es precisamente la soluci n buscada al problema del o Logaritmo Discreto. G ENERACI ON DE NUEVAS CLAVES . El atacante FINF puede generar libremente nuevas claves p blicas y secretas para otros u rmantes A = A y para colectivos (B, B ) de vericadores de su elecci n. o P ETICIONES HASH . Como la prueba es en el modelo del or culo aleatorio para la funci n hash H2 , FINF puede hacer a o peticiones de esta funci n aleatoria. Para ello, ALD crea y o mantiene una tabla TAB2 que responde de la siguiente manera a estas peticiones: la primera vez que se hace una petici n, se o escoge un valor aleatorio h Zq , se devuelve h a FINF , y se guardan los valores de la petici n junto con el valor devuelto h o en TAB2 . Si la misma petici n se hace en el futuro, buscamos o en la tabla y ALD responde con el mismo valor h que se encuentra en la salida existente. P ETICIONES FIRMA . Cuando FINF solicita rmas v lidas a para mensajes m y claves p blicas yB de su elecci n, donde u o el rmante es A y B es el colectivo de vericadores, ALD simula y devuelve rmas (m), de la siguiente manera: 1) Elige un valor aleatorio r Z que le sirve para calcular q r R = g r mod p, k = H0 (R, yB , (yB ) , yA ) y c = H3 (k, m ). 2) Elige valores aleatorios h, s1 , s2 Zq y calcula Y1 = g s1 Rh mod p, Y2 = g s2 (yA )h mod p. 3) Calcula g = H1 (c, R, Y1 , Y2 , yA , yB ), y posterior mente R = g r mod p, Y1 = g s1 Rh mod p.

ACTAS DE LA XI RECSI

4) Si la entrada (c, R, g , R, Y1 , Y2 , Y1 , yA , yB ) se encuen tra en TAB2 (lo que ocurre con probabilidad despreciable), se vuelve al paso 2. 5) ALD falsica el or culo aleatorio para H2 , imponiendo a la relaci n h = H2 (c, R, g , R, Y1 , Y2 , Y1 , yA , yB ) en o TAB2 . M s tarde, si FINF llamara al or culo aleatorio a a con esa misma entrada, se le devolvera el valor h. 6) Devuelve la rma (m ) = (c, R, R, h, s1 , s2 ) a FINF . Es f cil comprobar que la rma devuelta es consistente, si no a existen colisiones a la hora de falsicar el or culo aleatorio. a FALSIFICACI ON . En alg n momento FINF produce con u probabilidad VentFINF () una clave yB y una rma falsicada (m , ) para un conjunto de vericadores (B , Bs tar ), donde = (c , R , R , h , s , s ) verica 1 2 las siguientes dos propiedades. Primero, la rma (m , ) debe ser diferente a las solicitadas anteriormente durante las peticiones de rma y segundo, se debe vericar .Ver(params, m , , yA , B, {sj }jB ) = 1, para alg n u subconjunto B B . Puesto que la rma falsicada es v lida, obtenemos que a h = H2 (c , R , g , R , Y1 , Y2 , Y1 , yA , yB ), donde Y1 = s h h h g g s1 (R ) , Y2 = g s2 (yA ) , Y1 = ( ) 1 R . Adem s, puesto que esta falsicaci n es diferente de a o las rmas obtenidas durante las peticiones de rma, = podemos estar seguros que la entrada peticion (c , R , g , R , Y1 , Y2 , Y1 , yA , yB ) para H2 no ha sido falsicada y a adida a TAB2 por ALD . n R EPLICANDO EL ATAQUE . Ahora podemos aplicar las t cnicas de replicaci n del Forking Lemma modicado, dese o crito en el enunciado del Lema 1. De manera informal, ALD repetir la ejecuci n del adversario FINF , con la misma a o aleatoriedad pero cambiando los valores salida del or culo a aleatorio H2 para la entrada peticion . De esta manera, despu s que ALD ejecute dos vee ces a FINF , obtendremos con probabilidad cuadr tica en a VentFINF () (la probabilidad de obtener la primera rma falsicada) dos rmas v lidas = (c , R , R , h , s , s ) a 1 2 y = (c , R , R , h , s 1 , s 2 ) para los mismos valores (c , R , g , R , Y1 , Y2 , Y1 , yA , yB ) de H2 tales que h = h . Puesto que las dos rmas son v lidas, tenemos que a g s2 (yA )

propiedad de privacidad denida en la Secci n III, por reo ducci n al problema computacional de Dife-Hellman en o grupos de orden primo. Teorema 2: Sea N un par metro de seguridad. Para a cualquier atacante FIND contra la privacidad de nuestro esquema de rma con vercaci n distribuida, existe un o solucionador ACDH del problema computacional de DifeHellman, esencialmente con el mismo tiempo de ejecuci n que o FIND , tal que VentACDH () VentFIND ()/2. Proof: Asumiendo que tenemos un atacante FIND que tiene ventaja VentFIND () en romper la privacidad de nuestro esquema de rma, vamos a construir un algoritmo ACDH que ir usando a su vez a FIND como subrutina, para resolver el a problema Computacional de Dife-Hellman. El algoritmo ACDH recibe como entrada un grupo cclico G = g de orden primo q, junto con una tupla (g, g a , g b ). El objetivo de ACDH es calcular g ab . I NICIALIZACI ON DE FIND . El adverdario FIND escoge un conjunto de vericadores B = {1, . . . , n}, una estructura de acceso B 2B y un subconjunto de participantes corruptos B B . / ACDH simula una ejecuci n del protocolo .Ini(1 ): da a o FIND los valores params = (p, q, G, g, , H0 , H1 , H2 , H3 ), cuyas funciones hash H0 , H1 y H2 las modelar como a or culos aleatorios, mientras que la funci n H3 : {0, 1} a o {0, 1} la dene explcitamente. Por tanto, ACDH mantendr a tres tablas TAB0 , TAB1 y TAB2 que servir n para responder a a las peticiones hash de FIND . La ejecuci n o del protocolo .GC(params, B , B , colectivo) es simulada por ACDH de la siguiente manera: los fragmentos de los participantes corruptos, {sj }jB , son elegidos aleatoria e independientemente en Zq y dados posteriormente a FIND . En este punto, ACDH dene la clave p blica yB = g b que u tambi n se enva a FIND . Remarcamos que esto signica que e la clave secreta xB asociada est denida implcitamente a como b). G ENERACI ON DE NUEVAS CLAVES . El atacante FIND puede generar libremente nuevas claves p blicas y secretas para u rmantes A y para colectivos (B, B ) = (B , B ) de vericadores de su elecci n. o P ETICIONES HASH . Como la prueba es en el modelo del or culo aleatorio para las funcioness hash H0 , H1 y H2 , a ACDH crea y mantiene tres tablas TAB0 , TAB1 , y TAB2 que simulan estas funciones hash. Para responder a las peticiones hash solicitadas por FIND , el atacante ACDH comprueba si ya existe una entrada en la correspondiente tabla para la entrada de esa petici n. En ese caso, la salida existente es enviada a o FIND . En caso contrario, una nueva salida es elegida aleatoriamente para ser enviada a FIND . Posteriormente, la relaci n o entre la entrada y la salida es a adida a la correspondiente n tabla. Para peticiones de H1 , ACDH elige un valor aleatorio Zq y devuelve el valor g = (g b ) como nueva salida de H1 . El

= Y2 = g s 2 (yA )

lo cual implica que obtenemos la siguiente relaci n para el o valor inicial y = yA = g s2 s2


LD 1/(h h )

.
s s

2 Por tanto, A devuelve el valor x = h2 h mod q y resuelve el problema del logaritmo discreto de y en base g, con probabilidad de exito VentALD () O VentFINF ()2 .

B. Privacidad En el siguiente teorema demostraremos que nuestro esquema de rma con vericaci n distribuida verica la o

ACTAS DE LA XI RECSI

valor es guardado como valor adicional de la nueva entrada en la tabla TAB1 . En el caso que ACDH reciba peticiones de H0 cuyos primeros valores sean g a y g b , el tercer elemento de la entrada ser guardado en una tabla adicional TAB . La tabla TAB ser a a la respuesta nal de ACDH al problema CDH. P ETICIONES VERIFICACI ON . Cuando FIND solicita una petici n de vericaci n (m , , yA ) para rmantes A , con o o = (c , R , R , h , s1 , s2 ), ACDH comprueba la validez de la prueba de conocimiento cero (R , h , s1 , s2 ). Para ello, obtiene mediante una petici n hash el valor g = o H1 (c , R , g s1 R h , g s2 (yA )h , yA , yB ) = (g b ) y verica que se cumpla h = H2 (c , R , g , R , g s1 R h , g s2 h (yA )h , g 1 R , yA , yB ). En el caso que no se cumpla, s la respuesta de ACDH a la petici n ser 0. o a En caso contrario, ACDH debe calcular los valores s {R j }jB y envi rselos a FIND . Para los participantes a corruptos j B, ACDH puede calcular estos valores f cilmente ya que conoce {sj }jB . Adem s, como es v lida a a a la prueba de conocimiento de la igualdad de los logaritmos LogDiscg (R ) = LogDiscg (R ), siendo g = g b , tenemos b . Por tanto, ACDH puede calcular RxB = que R = R s x b 1/ R = R . Conociendo R B y {R j }jB , el algoritmo ACDH puede usar en el exponente las relaciones lineales entre fragmentos y secretos, determinadas por el esquema para compartir secreto que realize B , y obtener el resto de valores s {R j }jB \B . Finalmente, ACDH ejecuta una petici n hash o x H0 (R , yB , R B , yA ) = k , actualizando la tabla TAB0 en caso que esta petici n sea nueva, y verica si o H3 (k , m ) = c . Seg n el resultado de esa vericaci n, u o ACDH devuelve la salida 1 (rma v lida) o 0 (rma no a v lida). a D ESAFO . En un momento dado, FIND escoge y publica dos I mensajes m0 , m1 de la misma longitud, junto con un rmante A con valores (xA , yA ). Ahora ACDH debe enviar una rma a FIND , que obtiene de la siguiente manera: primero dene R = g a y elige valores aleatorios c {0, 1} , h , s , s Zq y Z . Con estos valores ADH dene q 1 2 g = g , R = (g a ) , Y1 = g s1 (R )h , Y2 = g s2 (yA )h h s y Y1 = g 1 (R ) . Si la entrada (c , R , Y1 , Y2 , yA , yB ) ya existe en (i ) TAB1 , o la entrada (c , R , g , R , Y1 , Y2 , Y1 , yi , Di ) ya existe en TAB2 , entonces ADH elige nuevos valores aleato rios c , h , s , s y . Por ultimo, las relaciones g = 1 2 H1 (c , R , Y1 , Y2 , yA , yB ) y h = H2 (c , R , g , R , Y1 , Y2 , Y1 , yA , yB ) son a adidas a las tablas TAB1 y TAB2 n respectivamente. La rma nal = (c , R , R , h , s , s ) es enviada al 1 2 atacante FIND . M AS PETICIONES . El atacante FIND puede hacer m s petia ciones hash y de vericaci n, que son respondidas de igual o manera a como ha sido descrito anteriormente. El unico problema podra aparecer cuando FIND pidiese una vericaci n de una rma v lida (m, , yA ), con = o a

(c, R, R, h, s1 , s2 ) tal que el valor g = H1 (c, R, g s1 Rh , g s2 (yA )h , yA , yB ) coincidiese con el valor g = g , ya que este ultimo valor no tiene por qu ser de la forma (g b ) . e Sin embargo, esto ocurrira unicamente cuando los valores de entrada de H1 tanto para esta rma como para la rma del desafo fuesen los mismos. Puesto que las pruebas de conocimiento cero son v lidas, obtendramos que los valores a R son iguales en ambos casos y, por tanto, que los valores h, s1 , s2 , yA tambi n deberan ser iguales. La conclusi n es e o que la rma solicitada sera la misma que la rma del desafo. Como esto est prohibido por denici n, nunca nos a o encontraremos con este caso. A N ALISIS FINAL . FIND devuelve un bit b con el que gana el juego con una probabilidad signicativamente mayor que 1/2. Puesto que H0 se comporta como una funci n aleatoria, o FIND puede ganar s lo si FIND ha preguntado anteriormente al o or culo aleatorio el valor H0 (g a , g b , g ab , yA ) correspondiente a al desafo . Por tanto, con una probabilidad no despreciable a VentFIND ()/2, el valor g ab est en la tabla TAB construida por ACDH , que contiene los candidatos a soluci n del proo blema CDH. Tal y como indican los autores de [9], podramos usar el auto-corrector Dife-Hellman descrito en [8] para transformar al atacante ACDH en otro que en vez de devolver toda una lista de candidatos TAB , devuelve unicamente la soluci n correcta del problema CDH. o Cabe remarcar que en contraposici n al esquema propuesto o en [6], que s lo asola la privacidad d bil, el esquema proo e puesto aqu es seguro incluso frente a adversarios que pueden hacer peticiones a un or culo de vericaci n. a o R EFERENCES
[1] M. Bellare y P. Rogaway. Random oracles are practical: a paradigm for designing efcient protocols. Proceedings of CCS93, ACM Press, pp. 6273 (1993). [2] E.F. Brickell. Some ideal secret sharing schemes. Journal of Combinatorial Mathematics and Combinatorial Computing, 9, pp. 105113 (1989). [3] R. Gennaro, S. Jarecki, H.Krawczyk and T. Rabin. Secure distributed key generation for Discrete-Log based cryptosystems. Journal of Cryptology, vol. 4 (1), Springer-Verlag, pp. 5183 (2007). [4] S. Goldwasser y S. Micali. Probabilistic encryption. Journal of Computer and System Sciences, 28, pp. 270299 (1984). [5] S. Goldwasser, S. Micali y R. L. Rivest. A digital signature scheme secure against adaptive chosen-message attacks. SIAM J. of Computing 17 (2), pp. 281308 (1988). [6] J. Herranz, A. Ruiz y G. S ez. Esquemas de rma digital con vericaci n a o distribuida. Actas de la X Reuni n Espa ola de Criptologa y Seguridad de o n la Informaci n, RECSI08, pp. 209216 (2008). o [7] D. Pointcheval y J. Stern. Security arguments for digital signatures and blind signatures. Journal of Cryptology 13 (3), Springer-Verlag, pp. 361 396 (2000). [8] V. Shoup. Lower bounds for discrete logarithms and related problems. Proceedings of Eurocrypt97, LNCS 1233, Springer-Verlag, pp. 256266 (1997). [9] V. Shoup y R. Gennaro. Securing threshold cryptosystems against chosen ciphertext attack. Journal of Cryptology, vol. 15 (2), Springer-Verlag, pp. 7596 (2002).

También podría gustarte