stringtranslate.com

Función pseudoaleatoria ajena

Una función pseudoaleatoria ajena ( OPRF ) es una función criptográfica , similar a una función hash con clave , pero con la distinción de que en una OPRF dos partes cooperan para calcular de forma segura una función pseudoaleatoria (PRF). [1]

Definición

Específicamente, una OPRF es una función pseudoaleatoria con las siguientes propiedades:

La función se denomina función pseudoaleatoria ajena , porque la segunda parte no tiene conocimiento de la salida de la función. Esta parte no aprende información nueva al participar en el cálculo del resultado.

Sin embargo, debido a que solo la segunda parte es la que posee el secreto, la primera parte debe involucrar a la segunda parte para calcular el resultado de la función pseudoaleatoria (PRF). Este requisito permite que la segunda parte implemente controles de acceso , limitación , registro de auditoría u otras medidas de seguridad.

Historia

Si bien las funciones pseudoaleatorias convencionales calculadas por una sola parte se formalizaron por primera vez en 1986, [2] no fue hasta 1997 que se describió en la literatura la primera función pseudoaleatoria ajena de dos partes , [3] pero el término "función pseudoaleatoria ajena" no fue acuñado hasta 2005 por algunos de los mismos autores. [4]

Aplicaciones

Los OPRF tienen muchas aplicaciones útiles en criptografía y seguridad de la información .

Estos incluyen la derivación de claves basada en contraseñas , el acuerdo de claves basado en contraseñas , el endurecimiento de contraseñas, los CAPTCHA no rastreables , la gestión de contraseñas , la gestión de claves homomórficas y la intersección de conjuntos privados . [1] [5]

Una OPRF puede verse como un caso especial de cifrado homomórfico , ya que permite a otra parte calcular una función sobre una entrada cifrada y producir un resultado (que permanece cifrado) y, por lo tanto, no aprende nada sobre lo que calculó.

Derivación de claves basada en contraseñas

La mayoría de las formas de derivación de claves basadas en contraseñas sufren el problema de que las contraseñas suelen contener una pequeña cantidad de aleatoriedad (o entropía) en comparación con las claves de cifrado de longitud completa de 128 o 256 bits. Esto hace que las claves derivadas de contraseñas sean vulnerables a ataques de fuerza bruta .

Sin embargo, esta amenaza se puede mitigar utilizando la salida de un OPRF que toma la contraseña como entrada.

Si la clave secreta utilizada en la OPRF es de alta entropía, entonces la salida de la OPRF también será de alta entropía. Esto resuelve el problema de que la contraseña sea de baja entropía y, por lo tanto, vulnerable a ser descifrada mediante fuerza bruta .

Esta técnica se llama endurecimiento de contraseñas . [6] Cumple una función similar a la de la ampliación de claves , pero el endurecimiento de contraseñas añade significativamente más entropía.

Además, dado que cada intento de adivinar una contraseña reforzada de esta manera requiere interacción con un servidor, se evita un ataque fuera de línea y, por lo tanto, se permite alertar al usuario o al administrador del sistema sobre cualquier intento de descifrado de contraseñas.

La clave recuperada puede luego usarse para autenticación (por ejemplo, realizando una autenticación basada en PKI usando un certificado digital y una clave privada ), o puede usarse para descifrar contenido confidencial, como un archivo cifrado o una billetera criptográfica .

Intercambio de claves autenticado mediante contraseña

Una contraseña puede utilizarse como base de un protocolo de acuerdo de claves para establecer claves de sesión temporales y autenticar mutuamente al cliente y al servidor. Esto se conoce como intercambio de claves autenticadas mediante contraseña o PAKE .

En la autenticación básica , el servidor aprende la contraseña del usuario durante el transcurso de la autenticación. Si el servidor se ve comprometido, se expone la contraseña del usuario, lo que compromete la seguridad del usuario.

Sin embargo, con PAKE, la contraseña del usuario no se envía al servidor, lo que evita que caiga en manos de un espía. Puede considerarse como una autenticación a través de una prueba de contraseña de conocimiento cero .

Varias " formas aumentadas " de PAKE incorporan una función pseudoaleatoria despreocupada, de modo que el servidor nunca ve la contraseña del usuario durante la autenticación, pero sin embargo puede autenticar que el cliente está en posesión de la contraseña correcta. Esto se hace asumiendo que solo el cliente que conoce la contraseña correcta puede usar la OPRF para derivar la clave correcta.

Un ejemplo de un PAKE aumentado que utiliza un OPRF de esta manera es OPAQUE . [7] [8] [9] [10]

Recientemente, las OPRF se han aplicado al intercambio de claves basado en contraseñas para realizar copias de seguridad de los historiales de chat cifrados en WhatsApp [11] y Facebook Messenger . [12] Se planea agregar un caso de uso similar en Signal Messenger . [13]

CAPTCHAs no rastreables

Un CAPTCHA o " prueba de Turing pública completamente automatizada para diferenciar entre computadoras y humanos" [14] es un mecanismo para evitar que los robots automatizados o ( bots ) accedan a sitios web. Últimamente, los mecanismos para ejecutar pruebas CAPTCHA se han centralizado en servicios como Google y CloudFlare , pero esto puede ir en detrimento de la privacidad del usuario.

Recientemente, CloudFlare desarrolló una tecnología de preservación de la privacidad llamada "Privacy Pass" [15]. Esta tecnología se basa en OPRF y permite que el navegador del cliente obtenga pases de CloudFlare y luego los presente para eludir las pruebas CAPTCHA. Debido a que el servicio CloudFlare no sabe qué pases se proporcionaron a qué usuarios, no hay forma de que pueda correlacionar a los usuarios con los sitios web que visitan. Esto evita el seguimiento del usuario y, por lo tanto, preserva su privacidad.

Un gestor de contraseñas mejorado

Un administrador de contraseñas es un software o un servicio que almacena muchas credenciales de cuenta diferentes en nombre del usuario. Por lo tanto, el acceso al administrador de contraseñas es muy sensible: un ataque podría exponer muchas credenciales al atacante.

La primera propuesta de un gestor de contraseñas basado en OPRF fue SPHINX [16] . Utiliza dos dispositivos (como el ordenador portátil y el teléfono del usuario) que colaboran para calcular una contraseña para una cuenta determinada (identificada por el nombre de usuario y el nombre de dominio del sitio web). Como los dos dispositivos del usuario intercambian valores según un protocolo OPRF, interceptar la conexión entre ellos no revela nada sobre la contraseña ni sobre los valores internos que cada dispositivo utilizó para calcularla. El hecho de que se necesiten dos dispositivos para calcular cualquier contraseña también garantiza que un ataque a cualquiera de los dispositivos no permita al atacante calcular ninguna de las contraseñas. Una desventaja de este enfoque es que el usuario siempre necesita tener acceso a ambos dispositivos cuando quiera iniciar sesión en cualquiera de sus cuentas.

El Monitor de contraseñas de Microsoft Edge utiliza un OPRF para poder consultar a un servidor si se sabe que una credencial (que el usuario guardó en el navegador) está comprometida, sin necesidad de revelar dicha credencial al servidor. [17]

Un sistema de gestión de claves homomórficas

De manera similar a cómo proteger las contraseñas administradas por un administrador de contraseñas, se puede utilizar un OPRF para mejorar la seguridad de un sistema de administración de claves .

Por ejemplo, una OPRF permite que un sistema de gestión de claves emita claves criptográficas a usuarios autenticados y autorizados, sin jamás ver, aprender o estar en posición de aprender ninguna de las claves que proporciona a los usuarios. [18]

Intersección de conjunto privado

La intersección de conjuntos privados es una técnica criptográfica que permite a dos o más partes comparar sus conjuntos privados para determinar qué entradas comparten en común, pero sin revelar ninguna entrada que no tengan en común.

Por ejemplo, dos usuarios de una red social podrían utilizar la intersección de conjuntos privados para determinar qué amigos tienen en común, sin revelar la identidad de los amigos que no tienen en común. Para ello, podrían compartir los resultados de una OPRF aplicada a la identidad del amigo (por ejemplo, el número de teléfono o la dirección de correo electrónico del amigo).

La salida del OPRF no se puede invertir para determinar la identidad del usuario y, dado que el OPRF puede tener una velocidad limitada , evitará un ataque de fuerza bruta (por ejemplo, iterar sobre todos los números de teléfono posibles). [19]

Implementaciones

Existen varias funciones matemáticas que pueden servir como base para implementar una OPRF.

Por ejemplo, métodos de criptografía asimétrica , incluida la multiplicación de puntos de curva elíptica , la exponenciación modular Diffie-Hellman sobre un primo o un cálculo de firma RSA .

CE y Diffie-Hellman convencional

Se pueden utilizar curvas elípticas y campos de orden principal para implementar un OPRF. La idea básica es que la primera parte (el cliente) debe enmascarar criptográficamente la entrada antes de enviarla a la segunda parte.

Este cegamiento puede considerarse como una forma de cifrado que sobrevive al cálculo realizado por la segunda parte. Por lo tanto, la primera parte puede descifrar lo que recibe de la segunda parte para "desenmascararlo" y, de ese modo, recibir el mismo resultado que habría recibido si la entrada no hubiera estado cegada.

Cuando la segunda parte recibe la entrada oculta, realiza un cálculo sobre ella utilizando un secreto . El resultado de este cálculo no debe revelar el secreto.

Por ejemplo, la segunda parte puede realizar una multiplicación de un punto en una curva elíptica, o puede realizar una exponenciación modular módulo un primo grande .

La primera parte, al recibir el resultado y con conocimiento del factor de cegamiento, calcula una función que elimina la influencia del factor de cegamiento en el resultado devuelto por la segunda parte. Esto "desenmascara" el resultado, revelando la salida de la OPRF (o un resultado intermedio que luego utiliza el cliente para calcular la salida de la OPRF, por ejemplo, al aplicar un algoritmo hash a este resultado intermedio).

Ejemplo de protocolo OPRF

El siguiente es un pseudocódigo para los cálculos realizados por el cliente y el servidor utilizando un OPRF basado en una curva elíptica.

Cálculo del lado del cliente

El siguiente código representa los cálculos realizados por el cliente o la primera parte.

byte [] calculateOPRF ( byte [] input ) { // Aplicar algoritmo de hash de puntos // Por ejemplo, como se describe en RFC 9380 ECPoint hashedPoint = hashToPoint ( input );          // Generar un factor de cegamiento aleatorio Scalar b = randomScalar ();     // Ciego la entrada a través de una curva multiplicada ECPoint blindedInput = ECMultiply ( hashedPoint , b );      // Enviar solicitud al servidor para obtener respuesta ECPoint serverResponse = sendRequest ( blindedInput );     // Calcular el inverso multiplicativo de b Inverso escalar = modInverse ( b );     // Desbloquea la respuesta para producir el resultado ECPoint result = ECMultiply ( serverResponse , inverse );      // Mezcle el resultado no cegado para completar el cálculo OPRF return hash ( result ); }  

Notas:

El cliente calcula el inverso multiplicativo del factor de cegamiento. Esto le permite invertir el efecto del factor de cegamiento en el resultado y obtener el resultado que el servidor habría devuelto si el cliente no hubiera cegado la entrada.

Como paso final, para completar la OPRF, el cliente realiza un hash unidireccional en el resultado para garantizar que la salida de la OPRF sea uniforme , completamente pseudoaleatorio y no invertible.

Cálculo del lado del servidor

El siguiente código representa los cálculos realizados por el servidor o la segunda parte.

El servidor recibe el valor de entrada ciego del cliente y puede realizar la autenticación, el control de acceso, la limitación de solicitudes u otras medidas de seguridad antes de procesar la solicitud. Luego utiliza su propio secreto para calcular:

ECPoint processRequest ( ECPoint blindedInput , Scalar secret ) { // Aplicar secreto para calcular la respuesta ECPoint response = ECMultiply ( blindedInput , secret ); return response ; }             

Luego devuelve la respuesta, que es la salida ciega, al cliente.

Notas:

Debido a que la multiplicación de puntos de la curva elíptica es computacionalmente difícil de invertir (como el problema del logaritmo discreto ), el cliente no puede aprender de manera factible el secreto del servidor a partir de la respuesta que produce.

Sin embargo, tenga en cuenta que esta función es vulnerable a ataques de computadoras cuánticas . Un cliente o un tercero en posesión de una computadora cuántica podría resolver el secreto del servidor sabiendo el resultado que produjo para una entrada determinada.

Firmas ciegas RSA

Cuando la salida de un esquema de firma ciega es determinista, se puede utilizar como base para construir una OPRF, por ejemplo, simplemente aplicando un hash a la firma resultante.

Esto se debe a que, debido al cegamiento, la parte que calcula la firma ciega no aprende ni la entrada (lo que se está firmando) ni la salida (la firma digital resultante ).

Extensiones

La construcción OPRF se puede ampliar de varias maneras, entre ellas: versiones verificables, parcialmente ignorantes, con umbral seguro y con seguridad postcuántica.

OPRF verificable

Muchas aplicaciones requieren que la primera parte pueda verificar que la salida OPRF se calculó correctamente. Por ejemplo, cuando se usa la salida como clave para cifrar datos. Si se calcula el valor incorrecto, esos datos cifrados pueden perderse para siempre.

Afortunadamente, la mayoría de las OPRF admiten la verificabilidad. Por ejemplo, cuando se utilizan firmas ciegas RSA como construcción subyacente, el cliente puede, con la clave pública, verificar la exactitud de la firma digital resultante .

Al utilizar OPRF basados ​​en curvas elípticas o Diffie-Hellman , y conocer la clave pública y = g x , es posible utilizar una segunda solicitud al servidor OPRF para crear una prueba de conocimiento cero de corrección para el resultado anterior. [20] [21]

PRF parcialmente inconsciente

Una modificación de una OPRF se denomina PRF parcialmente inconsciente o P-OPRF.

Específicamente, una P-OPRF es cualquier función con las siguientes propiedades:

El caso de uso para esto es cuando el servidor necesita implementar limitaciones específicas o controles de acceso en la entrada expuesta ( E ), por ejemplo, ( E ) podría ser una ruta de archivo o un nombre de usuario, para el cual el servidor aplica controles de acceso y solo atiende solicitudes cuando el usuario solicitante está autorizado.

El servicio "Pythia PRF" utilizó un P-OPRF basado en emparejamientos bilineales . [22]

Recientemente han aparecido versiones de P-OPRF no basadas en emparejamientos, como una versión estandarizada en el IETF RFC 9497. [21] así como una mejora más reciente. [23]

Implementaciones de umbral

Para una seguridad aún mayor, es posible umbralizar el servidor , de modo que el secreto ( S ) no esté en manos de ningún servidor individual, y así la vulneración de cualquier servidor individual, o conjunto de servidores por debajo de un umbral definido, no expondrá el secreto.

Esto se puede lograr haciendo que cada servidor sea accionista de un esquema de intercambio de secretos . En lugar de usar su secreto para calcular el resultado, cada servidor usa su parte del secreto para realizar el cálculo.

El cliente toma entonces un subconjunto de los resultados calculados por el servidor y los combina, por ejemplo, calculando un protocolo conocido como interpolación en el exponente . Esto recupera el mismo resultado que si el cliente hubiera interactuado con un solo servidor que tiene el secreto completo.

Este algoritmo se utiliza en varios protocolos criptográficos distribuidos. [24]

Implementaciones seguras post-cuánticas

Encontrar implementaciones post-cuánticas seguras y eficientes de OPRF es un área de investigación activa. [25]

"Con la excepción de las OPRF basadas en primitivas simétricas, todas las construcciones OPRF eficientes conocidas se basan en supuestos de dureza de tipo logaritmo discreto o factorización. Se sabe que estos supuestos caen con el auge de las computadoras cuánticas". [1]

Dos posibles excepciones son las OPRF basadas en retículas [26] y las OPRF basadas en isogenias [27] , pero se requiere más investigación para mejorar su eficiencia y establecer su seguridad. Los ataques recientes a las isogenias plantean dudas sobre la seguridad del algoritmo. [28]

Un enfoque más seguro, pero menos eficiente, para lograr una OPRF segura post-cuántica es utilizar un protocolo de cálculo seguro de dos partes para calcular una PRF utilizando una construcción de clave simétrica , como AES o HMAC .

Véase también

Referencias

  1. ^ abc Casacuberta, Sílvia; Hesse, Julia; Lehmann, Anja (2022). "SoK: Funciones pseudoaleatorias ajenas". Archivo de ePrints de criptología . Artículo 2022/302.
  2. ^ Goldreich, Oded; Goldwasser, Shafi; Micali, Silvio (1986). "Cómo construir funciones aleatorias" (PDF) . Revista de la ACM . 33 (4): 792–807. doi :10.1145/6490.6503.
  3. ^ Naor, Moni; Reingold, Omer (2004). "Construcciones teóricas de números de funciones pseudoaleatorias eficientes". Revista de la ACM . 51 (2): 231–262. doi :10.1145/972639.972643.
  4. ^ Freedman, Michael; Ishai, Yuval; Pinkas, Benny; Reingold, Omer (2005). "Búsqueda de palabras clave y funciones pseudoaleatorias ajenas". Conferencia sobre teoría de la criptografía . Apuntes de clase en informática. TCC 2005: 303–324. doi :10.1007/978-3-540-30576-7_17. ISBN 978-3-540-24573-5.
  5. ^ Krawczyk, Hugo. "Funciones pseudoaleatorias ajenas y algunas aplicaciones (mágicas)" (PDF) . Universidad de Columbia . Consultado el 31 de enero de 2024 .
  6. ^ Ford, W.; Kaliski, BS (2000). "Generación asistida por servidor de un secreto fuerte a partir de una contraseña". Actas del 9.º Taller internacional IEEE sobre tecnologías facilitadoras: infraestructura para empresas colaborativas (WET ICE 2000) . págs. 176–180. doi :10.1109/ENABL.2000.883724. ISBN . 0-7695-0798-0. Número de identificación del sujeto  1977743.
  7. ^ Krawczyk, Hugo; Lewi, Kevin; Wood, Christopher (5 de febrero de 2021). "El protocolo PAKE asimétrico OPAQUE (borrador)". Grupo de trabajo de ingeniería de Internet .
  8. ^ Tatiana Bradley (8 de diciembre de 2020). "OPAQUE: Las mejores contraseñas nunca abandonan tu dispositivo". El blog de Cloudflare .
  9. ^ Bourdrez, Daniel; Krawczyk, Hugo; Lewi, Kevin; Wood, Christopher A. (6 de julio de 2022). "El protocolo OPAQUE Asymmetric PAKE (borrador de Internet)". IETF.
  10. ^ Matthew Green. "Hablemos de PAKE". 2018.
  11. ^ Davies, Gareth T.; Faller, Sebastian; Gellert, Kai; Handirk, Tobias; Hesse, Julia; Horváth, Máté; Jager, Tibor (2023). "Análisis de seguridad del protocolo de copia de seguridad cifrada de extremo a extremo de WhatsApp". Avances en criptología . Apuntes de clase en informática. Vol. Avances en criptología – CRYPTO 2023: 43.ª Conferencia anual internacional de criptología, CRYPTO 2023. págs. 330–361. doi :10.1007/978-3-031-38551-3_11. ISBN 978-3-031-38550-6. Recuperado el 2 de febrero de 2024 .
  12. ^ Lewi, Kevin; Millican, Jon; Raghunathan, Ananth; Roy, Arnab (2022). "Funciones revocables obvias e indexación cifrada". Archivo de ePrints de criptología . Artículo 2022/1044.
  13. ^ "Avance tecnológico para la recuperación segura del valor". Signal . Signal Foundation. 19 de diciembre de 2019.
  14. ^ "¿Qué es CAPTCHA?". Soporte de Google . Google Inc. Archivado del original el 6 de agosto de 2020 . Consultado el 9 de septiembre de 2022 . CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) es un [...]
  15. ^ Sullivan, Nick (9 de noviembre de 2017). "Cloudflare admite Privacy Pass". CloudFlare . CloudFlare.com . Consultado el 30 de enero de 2024 .
  16. ^ Shirvanian, Maliheh; Jarecki, Stanislaw; Krawczykz, Hugo; Saxena, Nitesh (2017). "SPHINX: un almacén de contraseñas que oculta perfectamente las contraseñas de sí mismo". 2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS) . págs. 1094–1104. doi :10.1109/ICDCS.2017.64. ISBN 978-1-5386-1792-2. Número de identificación del sujeto  4781641.
  17. ^ Lauter, Kristin; Kannepalli, Sreekanth; Laine, Kim; Cruz Moreno, Radames (1 de enero de 2021). «Monitor de contraseñas: protección de contraseñas en Microsoft Edge». Blog de investigación de Microsoft . Consultado el 1 de enero de 2021 .
  18. ^ Jarecki, Stanislaw; Krawczyk, Hugo; Resch, Jason (2019). "Gestión de claves ignorantes actualizables para sistemas de almacenamiento". Actas de la Conferencia ACM SIGSAC de 2019 sobre seguridad informática y de las comunicaciones . Vol. Noviembre de 2019. págs. 379–393. doi :10.1145/3319535.3363196. ISBN 978-1-4503-6747-9. Consultado el 27 de enero de 2024 .
  19. ^ Chase, Melissa; Miao, Peihan (agosto de 2020). "Intersección de conjuntos privados en el entorno de Internet a partir de PRF ligera e ignorante". IACR en CRYPTO 2020. Avances en criptología – CRYPTO 2020: 40.ª Conferencia anual internacional sobre criptología (actas, parte III): 34–63. doi :10.1007/978-3-030-56877-1_2. S2CID  220126483.
  20. ^ Jarecki, Stanislaw; Kiayias, Aggelos; Krawczyk, Hugo (2014). "Intercambio de secretos protegidos por contraseña de forma óptima y T-PAKE en el modelo de solo contraseña". Avances en criptología . Apuntes de clase en informática. Vol. ASIACRYPT 2014 - 20.ª Conferencia internacional sobre la teoría y la aplicación de la criptología y la seguridad de la información, Kaoshiung, Taiwán, ROC, 7 al 11 de diciembre de 2014, Actas, Parte II. págs. 233–253. doi :10.1007/978-3-662-45608-8_13. ISBN 978-3-662-45607-1.
  21. ^ ab Davidson, Alex; Faz-Hernandez, Armando; Sullivan, Nick; Wood, Christopher A. (2023). "Funciones pseudoaleatorias ajenas (OPRF) que utilizan grupos de orden primo". Grupo de trabajo de ingeniería de Internet . RFC 9497. doi :10.17487/RFC9497. S2CID  149835146.
  22. ^ Everspaugh, Adam; Chaterjee, Rahul; Scott, Samuel; Juels, Ari; Ristenpart, Thomas (2015). "El servicio PRF de Pythia". 24.º Simposio de seguridad de USENIX (USENIX Security 15) : 547–562. ISBN 978-1-939133-11-3.
  23. ^ Tyagi, Nirvan; Celi, Sofı́a; Ristenpart, Thomas; Sullivan, Nick; Tessaro, Stefano; Wood, Christopher A. (2021). "Un PRF parcialmente inconsciente rápido y simple, con aplicaciones". Archivo de ePrint de criptología . Artículo 2021/864.
  24. ^ Cachin, Christian; Krawczyk, Hugo; Rabin, Tal; Stathakopoulou, Chrysoula; Resch, Jason (14 de marzo de 2019). "Plataforma para criptografía de umbral robusta". Centro de recursos de seguridad informática del NIST . NIST.gov . Consultado el 27 de enero de 2024 .
  25. ^ Boneh, Dan; Ishai, Yuval; Passelègue, Alain; Sahai, Amit; Wu, David (2018). "Explorando la materia oscura criptográfica: nuevos candidatos de PRF simples y sus aplicaciones". Archivo de ePrints de criptología . Artículo 2018/1218.
  26. ^ Albrecht, Martin; Davidson, Alex; Deo, Amit; Smart, Nigel (2019). "Funciones pseudoaleatorias verificables, óptimas para todo el ciclo y ajenas a las redes ideales". Archivo de ePrints de criptología . Artículo 2019/1271.
  27. ^ Boneh, Dan; Kogan, Dmitry; Woo, Katharine (2020). "Funciones pseudoaleatorias ajenas a partir de isogenias". Avances en criptología . Apuntes de clase en informática. ASIACRYPT 2020: 26.ª Conferencia internacional sobre teoría y aplicación de la criptología y la seguridad de la información: 520–550. doi :10.1007/978-3-030-64834-3_18. ISBN 978-3-030-64833-6. Número de identificación del sujeto  228085090.
  28. ^ Castryck, Wouter; Decru, Thomas (2023). "Un ataque de recuperación de claves eficiente en SIDH". Avances en criptología . Apuntes de clase en informática. Vol. EUROCRYPT 2023: 42.ª Conferencia internacional anual sobre la teoría y las aplicaciones de las técnicas criptográficas. págs. 423–447. doi :10.1007/978-3-031-30589-4_15. ISBN 978-3-031-30588-7. Número de identificación del sujeto  258240788.