signature – ¿Qué esquemas de firma ciega existen y cómo se comparan?

Pregunta:

Estoy investigando esquemas de firmas ciegas para usar como efectivo digital. Me he encontrado con RSA ciego y Lucre (basado en DH). ¿Hay otros esquemas disponibles y cómo se comparan? Sospecho que debería haber un esquema de curva elíptica, que podría tener un mejor rendimiento que los otros esquemas.

En particular me interesa:

  • Rendimiento: ¿qué tan caro es crear / validar la firma? Me preocupo principalmente por el costo de la autoridad (firma y verificación), y menos por el desempeño del cliente (hace cegamiento y verificación)
  • Patentes – ¿Está patentado el esquema? ¿Han expirado las patentes?
  • Sencillez: ¿es fácil de entender? ¿Es fácil cometer errores sutiles que comprometen el anonimato o la seguridad?

Mi evaluación actual de RSA y Lucre:

RSA cegado

  • Requiere una operación de clave privada RSA para firmar. Esto es relativamente caro, especialmente si se utilizan claves más grandes (digamos, 2048 bits).
  • Patentado por Chaum, pero las patentes ya deberían haber expirado
  • Bastante simple, incluso yo lo entiendo

Lucro

  • No estoy seguro del rendimiento, pero no espero un rendimiento mucho mejor que con RSA.
  • El papel afirma que está libre de patentes, al menos en algunas variaciones.
  • Hay algunos puntos sutiles. Si se usa incorrectamente, el firmante podría abusar de la posibilidad de elegir k de una manera que comprometa el anonimato. Realmente no lo entiendo (todavía).

Al leer el periódico unas cuantas veces más, parece que la mayoría de las variantes de lucro no son firmas "reales" que puedan ser verificadas por todos. Pero más bien necesita realizar una prueba probabilística interactiva. Algunas variantes no sufren este problema, pero pueden tener otros problemas.

Mi impresión subjetiva es que no me gusta el lucro. Parece que su única razón de ser es evitar las patentes de Chaum. Pero si están vencidos, esto ya no debería ser un problema.

Respuesta:

Conceptualmente comparable al esquema de firma de persianas RSA de Chaums, hay otro elegante esquema de firma de persianas de dos movimientos llamado esquema de firma ciego Gap-DH , que se puede instanciar con grupos de curvas elípticas amigables emparejadas.

Este esquema de firma ciega puede basarse en el esquema de firma BLS compacto (que se basa en grupos gap-DH, es decir, grupos en los que el DDHP es fácil pero el CDHP sigue siendo difícil) y el cegamiento funciona de manera similar al esquema de firma ciega RSA de Chaum .

Sea $ e: G \ times G \ rightarrow G_T $ un emparejamiento y $ G $, $ G_T $ grupos de orden principal $ p $ y $ H: \ {0,1 \} ^ * \ rightarrow G $ una función hash y deje que $ g $ sea un generador de $ G $ (yo uso notación multiplicativa y describo aquí la Firma BLS para emparejamientos simétricos, pero también se pueden definir para emparejamientos asimétricos de Tipo 2 y Tipo 3, ver por ejemplo aquí ).

Para generar una firma BLS, el firmante con clave privada $ x \ en Z_p ^ * $ ($ y = g ^ x $ es la clave pública) calcula $ \ sigma = H (m) ^ x $ y el verificador comprueba si $ e (H (m), y) = e (\ sigma, g) $ se cumple. La exactitud es obvia, ya que $ e (H (m), y) = e (H (m), g ^ x) = e (H (m), g) ^ x = e (H (m) ^ x, g) = e (\ sigma, g) $.

Ahora la versión de firma ciega es la siguiente:

  • Receptor (cegador): Manteniendo el mensaje $ m $, elija $ r \ in_R \ mathbb {Z} _p ^ * $ y calcule $ \ overline {h} = H (m) g ^ r $ y envíe $ \ overline {h} $ al firmante.
  • Firmante: Calcule $ \ overline {\ sigma} = \ overline {m} ^ x $ y envíe $ \ overline {\ sigma} $ al receptor.
  • Receptor (desenmascaramiento): Calcule $ \ sigma = \ overline {\ sigma} y ^ {- r} $, que es una firma para $ m $.

Es fácil verificar que esto sea correcto, ya que $ \ sigma'y ^ {- r} = (H (m) g ^ r) ^ xy ^ {- r} = H (m) ^ xg ^ {rx} g ^ {- rx} = H (m) ^ x = \ sigma $.

Hay varios otros esquemas de firma ciega basados ​​en registros discretos que podrían usarse en la configuración de curvas elípticas, pero el esquema de firma GDH ciego anterior produce firmas cortas, requiere solo dos movimientos y todos los demás esquemas DL requieren más interacción (al menos tres movimientos) y son mucho más complicadas. Sin embargo, suelen ser más baratos en términos de cálculo. Por ejemplo, la versión ciega del protocolo Schnorr propuesto por Okamoto aquí en el Apéndice B de Crypto'92. Además, como menciona Matteo, también existen variantes ciegas de ElGamal.

No conozco ningún problema de patentes con estos, pero la patente original para firmas RSA ciegas de David Chaum está vencida.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım