stringtranslate.com

Generación de claves distribuidas

La generación de claves distribuidas (DKG) es un proceso criptográfico en el que varias partes contribuyen al cálculo de un conjunto de claves públicas y privadas compartidas. A diferencia de la mayoría de los modelos de cifrado de claves públicas , la generación de claves distribuidas no depende de terceros de confianza . [1] En cambio, la participación de un umbral de partes honestas determina si un par de claves se puede calcular correctamente. [2] La generación de claves distribuidas evita que una sola parte tenga acceso a una clave privada. La participación de muchas partes requiere la generación de claves distribuidas para garantizar la confidencialidad en presencia de contribuciones maliciosas al cálculo de la clave. [1]

La generación de claves distribuidas se utiliza comúnmente para descifrar textos cifrados compartidos o crear firmas digitales grupales . [2]

Historia

El protocolo de generación de claves distribuidas fue especificado por primera vez por Torben Pedersen en 1991. Este primer modelo dependía de la seguridad del Protocolo Joint-Feldman para el intercambio de secretos verificables durante el proceso de intercambio de secretos. [3]

En 1999, Rosario Gennaro, Stanislaw Jarecki, Hugo Krawczyk y Tal Rabin produjeron una serie de pruebas de seguridad que demostraban que el intercambio de secretos verificables de Feldman era vulnerable a contribuciones maliciosas al generador de claves distribuidas de Pedersen que filtrarían información sobre la clave privada compartida. [4] [5] El mismo grupo también propuso un esquema actualizado de generación de claves distribuidas que impedía que las contribuciones maliciosas afectaran el valor de la clave privada.

Métodos

El protocolo de generación de claves distribuidas especificado por Gennaro, Jarecki, Krawczyk y Rabin supone que una parte honesta ya ha establecido un grupo de jugadores antes de la generación de la clave. También supone que la comunicación entre las partes es sincrónica . [5]

  1. Todas las partes utilizan el protocolo de intercambio de secretos verificables de Pedersen para compartir los resultados de dos funciones polinomiales aleatorias .
  2. Cada parte verifica entonces todas las acciones que recibió. Si la verificación falla, el destinatario transmite una queja de la parte cuya acción falló. Cada parte acusada luego transmite sus acciones. Cada parte tiene entonces la oportunidad de verificar las acciones transmitidas o descalificar a las partes acusadas. Todas las partes generan una lista común de partes no descalificadas.
  3. Cada parte no descalificada transmite un conjunto de valores construidos elevando un generador común a la potencia de cada valor utilizado en un polinomio en la Parte 1 .
  4. Cada parte verifica estos valores de transmisión de forma similar a como se hizo en la Parte 2. Cuando falla una verificación, la parte transmite tanto los valores recibidos en la Parte 1 como los valores recibidos en la Parte 3. Para cada parte con quejas verificables, todas las demás partes reconstruyen sus propios conjuntos de valores para eliminar las contribuciones descalificadas.
  5. El grupo calcula la clave privada como el producto de cada contribución calificada (el polinomio aleatorio de cada parte calificada se evalúa en 0). [5]

Evitar el supuesto de sincronía

En 2009, Aniket Kate e Ian Goldberg presentaron un protocolo de generación de claves distribuidas adecuado para su uso en Internet. [6] A diferencia de las construcciones anteriores, este protocolo no requiere un canal de difusión ni el supuesto de comunicación sincrónica, y hay disponible una biblioteca lista para usar.

Robustez

En muchas circunstancias, es necesario un generador de claves distribuido y robusto . Los protocolos de generadores robustos pueden reconstruir claves públicas para eliminar las acciones maliciosas incluso si las partes maliciosas aún permanecen en el grupo calificado durante la fase de reconstrucción. [5] Por ejemplo, las firmas digitales multipartitas robustas pueden tolerar una cantidad de usuarios maliciosos aproximadamente proporcional a la longitud del módulo utilizado durante la generación de claves. [7]

DKG de evaluación dispersa

Los generadores de claves distribuidos pueden implementar una matriz de evaluación dispersa para mejorar la eficiencia durante las etapas de verificación. La evaluación dispersa puede mejorar el tiempo de ejecución de (donde es el número de partes y es el umbral de usuarios maliciosos) a . En lugar de una verificación robusta, la evaluación dispersa requiere que un pequeño conjunto de partes verifique un pequeño conjunto de recursos compartidos elegidos al azar. Esto da como resultado una pequeña probabilidad de que la generación de claves falle en el caso de que no se elija una gran cantidad de recursos compartidos maliciosos para la verificación. [8]

Aplicaciones

La generación de claves distribuidas y la criptografía de claves distribuidas rara vez se aplican en Internet debido a la dependencia de la comunicación sincrónica. [5]

La criptografía de claves distribuidas es útil en los servicios de custodia de claves , en los que una empresa puede cumplir un umbral para descifrar una versión de texto cifrado de una clave privada. De esta manera, una empresa puede exigir a varios empleados que recuperen una clave privada sin entregar al servicio de custodia una copia en texto simple. [1]

La generación de claves distribuidas también es útil en la autenticación de contraseñas del lado del servidor . Si los hashes de contraseñas se almacenan en un solo servidor, una vulneración en el servidor daría como resultado que todos los hashes de contraseñas estuvieran disponibles para que los atacantes los analizaran sin conexión. Las variaciones de la generación de claves distribuidas pueden autenticar las contraseñas de los usuarios en varios servidores y eliminar los puntos únicos de falla . [9] [10]

La generación de claves distribuidas se utiliza con más frecuencia para las firmas digitales grupales. Esto actúa como una forma de votación, donde un umbral de miembros del grupo tendría que participar para que el grupo firme digitalmente un documento. [2]

Referencias

  1. ^ abc Kate, Aniket; Goldberg, Ian (2010). "Generadores de claves privadas distribuidas para criptografía basada en identidad". Seguridad y criptografía para redes . Apuntes de clase en informática. Vol. 6280. págs. 436–453. CiteSeerX  10.1.1.389.4486 . doi :10.1007/978-3-642-15317-4_27. ISBN . 978-3-642-15316-7.
  2. ^ abc Boldyreva, Alexandra (2003). "Firmas de umbral, firmas múltiples y firmas ciegas basadas en el esquema de firma Gap-Diffie-Hellman-Group" (PDF) . Criptografía de clave pública — PKC 2003. Apuntes de clase en informática. Vol. 2567. págs. 31–46. doi :10.1007/3-540-36288-6_3. ISBN 978-3-540-00324-3. {{cite book}}: |journal=ignorado ( ayuda )
  3. ^ Pedersen, TP (1992). "Intercambio de secretos verificables, seguros y no interactivos con teoría de la información". Avances en criptología – CRYPTO '91 . Apuntes de clase en informática. Vol. 576. págs. 129-140. doi :10.1007/3-540-46766-1_9. ISBN 978-3-540-55188-1.
  4. ^ Gennaro, Rosario; Jarecki, Stanisław; Krawczyk, Hugo; Rabin, Tal (1999). "Generación segura de claves distribuidas para criptosistemas basados ​​en registros discretos". Actas de la 17.ª Conferencia internacional sobre teoría y aplicación de técnicas criptográficas . EUROCRYPT'99. Berlín, Heidelberg: Springer-Verlag: 295–310. ISBN 978-3-540-65889-4.
  5. ^ abcde Gennaro, Rosario; Jarecki, Stanislaw; Krawczyk, Hugo; Rabin, Tal (24 de mayo de 2006). "Generación segura de claves distribuidas para criptosistemas basados ​​en registros discretos". Revista de criptología . 20 (1): 51–83. CiteSeerX 10.1.1.134.6445 . doi :10.1007/s00145-006-0347-3. S2CID  3331212. 
  6. ^ Kate, Aniket; Goldberg, Ian (2006). "Generación de claves distribuidas para Internet". IEEE ICDCS . doi :10.1109/ICDCS.2009.21.
  7. ^ Castelluccia, Claude; Jarecki, Stanisław; Kim, Jihye; Tsudik, Gene (2006). "Agregación de reconocimiento seguro y multifirmas con robustez limitada". Redes de computadoras . 50 (10): 1639–1652. doi :10.1016/j.comnet.2005.09.021.
  8. ^ Canny, John; Sorkin, Steve (2004). "Generación práctica de claves distribuidas a gran escala". Avances en criptología - EUROCRYPT 2004 (PDF) . Apuntes de clase en informática. Vol. 3027. págs. 138–152. CiteSeerX 10.1.1.69.6028 . doi :10.1007/978-3-540-24676-3_9. ISBN  978-3-540-21935-4.
  9. ^ MacKenzie, Philip; Shrimpton, Thomas; Marcus, Jakobsson (2006). "Intercambio de claves autenticado mediante contraseña de umbral". Revista de criptología . 19 (1): 27–66. CiteSeerX 10.1.1.101.6403 . doi :10.1007/s00145-005-0232-5. S2CID  1732140. 
  10. ^ Jarecki, Stanislaw; Kiayias, Aggelos; Krawczyk, Hugo (2014). "Intercambio de secretos protegidos con contraseña de manera óptima y T-PAKE en el modelo de solo contraseña" (PDF) . Archivo de ePrints de criptología . 650 . Consultado el 5 de noviembre de 2014 .