Una función pseudoaleatoria ciega ( 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:
- Las partes calculan: O = OPRF( I , S )
- La primera parte ( el cliente ) conoce la entrada ( I ) y aprende la salida ( O ), pero no aprende el secreto ( S ).
- La segunda parte ( el servidor ) conoce el secreto ( S ), pero no conoce ni la entrada ( I ) ni la salida ( O ).
- La función posee las mismas propiedades de seguridad que cualquier función pseudoaleatoria (criptográficamente segura) . En concreto, debería ser difícil distinguir el resultado de la verdadera aleatoriedad .
La función se denomina función pseudoaleatoria ajena , porque la segunda parte desconoce el resultado de la función. Esta parte no obtiene ninguna información nueva al participar en el cálculo del resultado.
Sin embargo, dado que solo la segunda parte posee el secreto, la primera parte debe involucrar a la segunda para calcular el resultado de la función pseudoaleatoria (FPA). Este requisito permite a la segunda parte implementar controles de acceso , limitación de velocidad , registro de auditoría y 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 a dos partes , [ 3 ] pero el término "función pseudoaleatoria ajena a dos partes" 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 irrastreables , la gestión de contraseñas , la gestión de claves homomórficas y la intersección de conjuntos privados . [ 1 ] [ 5 ]
Un OPRF puede considerarse 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 los métodos de derivación de claves basados en contraseñas presentan el inconveniente de que las contraseñas suelen contener una pequeña cantidad de aleatoriedad (o entropía) en comparación con las claves de cifrado completas 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 puede mitigarse utilizando la salida de un OPRF que tome la contraseña como entrada.
Si la clave secreta utilizada en el OPRF es de alta entropía, entonces la salida del 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 por fuerza bruta .
Esta técnica se llama endurecimiento de contraseñas . [ 6 ] Cumple un propósito similar al del estiramiento de claves , pero el endurecimiento de contraseñas agrega significativamente más entropía.
Además, dado que cada intento de adivinar una contraseña protegida de esta manera requiere la interacción con un servidor, se evita un ataque sin conexión y, por lo tanto, se permite que el usuario o el administrador del sistema reciban una alerta ante cualquier intento de descifrar la contraseña.
La clave recuperada puede utilizarse para la autenticación (por ejemplo, realizando una autenticación basada en PKI mediante un certificado digital y una clave privada ), o puede utilizarse para descifrar contenido confidencial, como un archivo cifrado o una cartera de criptomonedas .
Intercambio de claves autenticado por contraseña
Una contraseña puede utilizarse como base de un protocolo de intercambio de claves para establecer claves de sesión temporales y autenticar mutuamente al cliente y al servidor. Esto se conoce como intercambio de claves autenticado por contraseña o PAKE .
En la autenticación básica , el servidor obtiene la contraseña del usuario durante el proceso de autenticación. Si el servidor se ve comprometido, la contraseña del usuario queda expuesta, lo que compromete su seguridad.
Sin embargo, con PAKE, la contraseña del usuario no se envía al servidor, lo que impide que caiga en manos de un intruso. Puede considerarse una autenticación mediante una prueba de contraseña de conocimiento cero .
Diversas variantes de PAKE incorporan una función pseudoaleatoria que oculta la contraseña del usuario, de modo que el servidor nunca la ve durante la autenticación, pero aun así puede verificar que el cliente posee la contraseña correcta. Esto se logra asumiendo que solo el cliente que conoce la contraseña correcta puede usar la función pseudoaleatoria para derivar la clave.
Un ejemplo de un PAKE aumentado que utiliza un OPRF de esta manera es OPAQUE . [ 7 ] [ 8 ] [ 9 ] [ 10 ]
Recientemente, se han aplicado OPRF al intercambio de claves basado en contraseñas para respaldar los historiales de chat cifrados en WhatsApp [ 11 ] y Facebook Messenger . [ 12 ] Se planea agregar un caso de uso similar en Signal Messenger . [ 13 ]
CAPTCHA imposibles de rastrear
Un CAPTCHA o " Prueba de Turing pública completamente automatizada para distinguir entre ordenadores y humanos" [ 14 ] es un mecanismo para impedir 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 los presente para eludir las pruebas CAPTCHA. Dado que el servicio de CloudFlare desconoce qué pases se proporcionaron a cada usuario, no puede 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 gestor de contraseñas es un software o servicio que almacena potencialmente muchas credenciales de cuenta diferentes en nombre del usuario. Por lo tanto, el acceso al gestor de contraseñas es altamente 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 ] Este utiliza dos dispositivos (como el 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 dominio del sitio web). Dado que 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 los valores internos que cada dispositivo utilizó para calcularla. El hecho de que se requieran dos dispositivos para calcular cualquier contraseña también garantiza que la vulneración de cualquiera de ellos impida al atacante calcular ninguna contraseña. Una desventaja de este enfoque es que el usuario siempre necesita acceso a ambos dispositivos cuando desea iniciar sesión en cualquiera de sus cuentas.
Un OPRF es utilizado por el Monitor de contraseñas en Microsoft Edge para permitir consultar a un servidor si se sabe que una credencial (que el usuario guardó en el navegador) está comprometida, sin necesidad de revelar esta credencial al servidor. [ 17 ]
Un sistema de gestión de claves homomórfico
De forma similar a como se protegen las contraseñas gestionadas por un gestor de contraseñas, un OPRF puede utilizarse para mejorar la seguridad de un sistema de gestión de claves .
Por ejemplo, un OPRF permite que un sistema de gestión de claves emita claves criptográficas a usuarios autenticados y autorizados, sin ver, aprender ni 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 posean en común.
Por ejemplo, dos usuarios de una red social podrían usar la intersección de conjuntos privados para determinar qué amigos tienen en común, sin revelar la identidad de los amigos que no comparten. Para ello, podrían compartir los resultados de un OPRF aplicado a la identidad del amigo (por ejemplo, su número de teléfono o dirección de correo electrónico).
La salida del OPRF no se puede invertir para determinar la identidad del usuario, y dado que el OPRF puede tener un límite de velocidad , evitará un ataque de fuerza bruta (por ejemplo, iterar sobre todos los números de teléfono posibles). [ 19 ]
Implementaciones
Existen diversas funciones matemáticas que pueden servir de base para implementar un OPRF.
Por ejemplo, métodos de criptografía asimétrica , como la multiplicación de puntos de curvas elípticas , la exponenciación modular de Diffie-Hellman sobre un número primo o el cálculo de una firma RSA .
EC y Diffie-Hellman convencional
Las curvas elípticas y los campos de orden primo pueden utilizarse para implementar un OPRF. La idea fundamental es que la primera parte (el cliente) debe cifrar criptográficamente la entrada antes de enviarla a la segunda parte.
Este enmascaramiento puede considerarse una forma de cifrado que perdura tras el cálculo realizado por la segunda parte. Por lo tanto, la primera parte puede descifrar lo que recibe de la segunda para "desenmascararlo" y, de este modo, obtener el mismo resultado que habría obtenido si la entrada no hubiera estado enmascarada.
Cuando la segunda parte recibe la información oculta, realiza un cálculo 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 puntos 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 conociendo el factor de enmascaramiento, calcula una función que elimina la influencia de dicho factor sobre el resultado devuelto por la segunda parte. Esto "desenmascara" el resultado, revelando la salida del OPRF (o un resultado intermedio que el cliente utiliza posteriormente para calcular la salida del OPRF, por ejemplo, mediante el hash de este resultado intermedio).
Protocolo OPRF de muestra
A continuación se muestra el pseudocódigo para los cálculos realizados por el cliente y el servidor utilizando una función de respuesta óptica de probabilidad (OPRF) basada 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 [] computeOPRF ( byte [] input ) { // Aplicar algoritmo de hash de puntos // Por ejemplo, como se describe en RFC 9380 ECPoint hashedPoint = hashToPoint ( input );// Generar un factor de ceguera aleatorio Escalar b = randomScalar ();// Enmascarar la entrada mediante una multiplicación de curvas ECPoint blindedInput = ECMultiply ( hasshedPoint , b );// Enviar solicitud al servidor para obtener respuesta ECPoint serverResponse = sendRequest ( blindedInput );// Calcular el inverso multiplicativo de b Inverso escalar = modInverso ( b );// Descifrar la respuesta para producir el resultado ECPoint result = ECMultiply ( serverResponse , inverse );// Calcula el hash del resultado sin enmascarar para completar el cálculo de OPRF. Devuelve hash ( resultado ); }Notas:
El cliente calcula el inverso multiplicativo del factor de enmascaramiento. Esto le permite revertir el efecto del factor de enmascaramiento sobre el resultado y obtener el resultado que el servidor habría devuelto si el cliente no hubiera enmascarado la entrada.
Como paso final, para completar el OPRF, el cliente realiza una función hash unidireccional sobre el resultado para garantizar que la salida del OPRF sea uniforme , completamente pseudoaleatoria y no invertible.
Cálculo del lado del servidor
El siguiente código representa los cálculos realizados por el servidor o por la segunda parte.
El servidor recibe el valor de entrada enmascarado del cliente y puede realizar autenticación, control de acceso, 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 el secreto para calcular la respuesta ECPoint response = ECMultiply ( blindedInput , secret ); return response ; }A continuación, devuelve la respuesta, que es el resultado enmascarado, al cliente.
Notas:
Debido a que la multiplicación de puntos de una 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, cabe señalar que esta función es vulnerable a ataques de computadoras cuánticas . Un cliente o un tercero que posea una computadora cuántica podría descifrar el secreto del servidor conociendo el resultado que produjo para una entrada determinada.
Firmas ciegas RSA
Cuando el resultado de un esquema de firma ciega es determinista, puede utilizarse como base para construir un OPRF, por ejemplo, simplemente aplicando una función hash a la firma resultante.
Esto se debe a que, debido al enmascaramiento, la parte que calcula la firma ciega no conoce ni la entrada (lo que se está firmando) ni la salida (la firma digital resultante ).
Extensiones
La construcción OPRF se puede extender de varias maneras. Estas incluyen: versiones verificables, parcialmente ajenas a la realidad, con seguridad de umbral y con seguridad post-cuántica.
OPRF verificable
Muchas aplicaciones requieren que la primera parte pueda verificar que el resultado de OPRF se haya calculado correctamente. Por ejemplo, al usar dicho resultado como clave para cifrar datos. Si se calcula un valor incorrecto, esos datos cifrados podrían perderse para siempre.
Afortunadamente, la mayoría de los OPRF admiten la verificabilidad. Por ejemplo, al usar firmas ciegas RSA como base, el cliente puede, con la clave pública, verificar la corrección de la firma digital resultante .
Al utilizar OPRF basados en curvas elípticas o Diffie-Hellman , conociendo la clave pública y = g x es posible utilizar una segunda solicitud al servidor OPRF para crear una prueba de corrección de conocimiento cero para el resultado anterior. [ 20 ] [ 21 ]
PRF parcialmente ajeno
Una modificación de un OPRF se denomina PRF parcialmente inconsciente, o P-OPRF.
En concreto, una P-OPRF es cualquier función con las siguientes propiedades:
- Las partes calculan: O = POPRF( H , E , S )
- La primera parte ( el cliente ) conoce la entrada oculta ( H ) y la entrada expuesta ( E ), y aprende la salida ( O ), pero no aprende el secreto ( S ).
- La segunda parte ( el servidor ) conoce el secreto ( S ) y aprende la entrada expuesta ( E ), pero no aprende ni la entrada oculta ( H ) ni la salida ( O ).
El caso de uso para esto es cuando el servidor necesita implementar controles de acceso o limitación específicos 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 PRF Pythia" utilizó un P-OPRF basado en emparejamientos bilineales . [ 22 ]
Recientemente, han aparecido versiones de P-OPRF que no se basan en emparejamientos, como una versión estandarizada en el IETF RFC 9497, [ 21 ] así como en su mejora más reciente. [ 23 ]
Implementaciones de umbral
Para una seguridad aún mayor, es posible "establecer un umbral" en el servidor , de modo que el secreto ( S ) no esté en poder de ningún servidor individual, y así la vulneración de cualquier servidor individual, o de un conjunto de servidores cuyo número sea inferior a un umbral definido, no expondrá el secreto.
Esto se puede lograr haciendo que cada servidor sea accionista en un esquema de compartición 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, mediante un protocolo conocido como interpolación en el exponente . Esto permite obtener el mismo resultado que si el cliente hubiera interactuado con un único servidor que posee la clave secreta completa.
Este algoritmo se utiliza en varios protocolos criptográficos distribuidos. [ 24 ]
Implementaciones seguras post-cuánticas
Encontrar implementaciones seguras y post-cuánticas eficientes de OPRF es un área de investigación activa. [ 25 ]
"Con la excepción de los OPRF basados en primitivas simétricas, todas las construcciones de 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 los OPRF basados en retículos [ 26 ] y los OPRF basados en isogenias [ 27 ] , pero se requiere más investigación para mejorar su eficiencia y establecer su seguridad. Los recientes ataques a las isogenias generan dudas sobre la seguridad del algoritmo [ 28 ] .
Un enfoque más seguro, pero menos eficiente, para lograr un OPRF post-cuántico seguro es utilizar un protocolo de computación seguro de dos partes para calcular un PRF utilizando una construcción de clave simétrica , como AES o HMAC .
Véase también
Referencias
- 1 2 3 Casacuberta, Sílvia; Hesse, Julia; Lehmann, Anja (2022). "SoK: Funciones pseudoaleatorias inconscientes" . Cryptology ePrint Archive . Documento 2022/302.
- ↑ Goldreich, Oded; Goldwasser, Shafi; Micali, Silvio (1986). "Cómo construir funciones aleatorias" (PDF) . Journal of the ACM . 33 (4): 792– 807. doi : 10.1145/6490.6503 .
- ↑ Naor, Moni; Reingold, Omer (2004). "Construcciones basadas en la teoría de números de funciones pseudoaleatorias eficientes" . Journal of the ACM . 51 (2): 231– 262. doi : 10.1145/972639.972643 .
- ↑ Freedman, Michael; Ishai, Yuval; Pinkas, Benny; Reingold, Omer (2005). "Búsqueda por palabra clave y funciones pseudoaleatorias ajenas" . Teoría de la criptografía . Notas de clase en informática. Vol. 3378. págs. 303–324 . doi : 10.1007/978-3-540-30576-7_17 . ISBN 978-3-540-24573-5.
- ↑ Krawczyk, Hugo. "Funciones pseudoaleatorias inconscientes y algunas aplicaciones (mágicas)" (PDF) . Universidad de Columbia . Consultado el 31 de enero de 2024 .
- ↑ Ford, W.; Kaliski, BS (2000). "Generación de un secreto robusto a partir de una contraseña mediante asistencia del servidor". 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. S2CID 1977743 .
- ↑ 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 .
- ↑ Tatiana Bradley (08/12/2020). "OPAQUE: Las mejores contraseñas nunca salen de tu dispositivo" . El blog de Cloudflare .
- ↑ Bourdrez, Daniel; Krawczyk, Hugo; Lewi, Kevin; Wood, Christopher A. (2022-07-06). "El protocolo PAKE asimétrico OPAQUE (borrador de Internet)" . IETF.
- ↑ Matthew Green. "Hablemos de PAKE" . 2018.
- ↑ 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 cifrado de extremo a extremo de WhatsApp" . Avances en criptología – CRYPTO 2023. Notas de clase en informática. Vol. 14084. págs. 330–361 . doi : 10.1007/978-3-031-38551-3_11 . ISBN 978-3-031-38550-6Consultado el 2 de febrero de 2024 .
- ↑ Lewi, Kevin; Millican, Jon; Raghunathan, Ananth; Roy, Arnab (2022). "Funciones revocables inconscientes e indexación cifrada" . Cryptology ePrint Archive . Documento 2022/1044.
- ↑ "Vista previa de tecnología para la recuperación segura de valor" . Signal . Signal Foundation. 19 de diciembre de 2019.
- ↑ "¿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 (Prueba de Turing pública completamente automatizada para distinguir entre ordenadores y humanos) es un [...]
- ↑ Sullivan, Nick (9 de noviembre de 2017). "Cloudflare admite Privacy Pass" . CloudFlare . CloudFlare.com . Consultado el 30 de enero de 2024 .
- ↑ 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) . pp. 1094–1104 . doi : 10.1109/ICDCS.2017.64 . ISBN 978-1-5386-1792-2. S2CID 4781641 .
- ↑ 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 Microsoft Research . Consultado el 1 de enero de 2021 .
- ↑ Jarecki, Stanislaw; Krawczyk, Hugo; Resch, Jason (2019). «Gestión de claves ciegas actualizable para sistemas de almacenamiento» . Actas de la Conferencia ACM SIGSAC de 2019 sobre seguridad informática y de 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 .
- ↑ Chase, Melissa; Miao, Peihan (agosto de 2020). "Intersección de conjuntos privados en el entorno de Internet a partir de PRF ligero e inconsciente" . Avances en criptología – CRYPTO 2020. Notas de clase en ciencias de la computación. Vol. 12172. págs. 34–63 . doi : 10.1007/978-3-030-56877-1_2 . ISBN 978-3-030-56876-4. S2CID 220126483 .
- ↑ Jarecki, Stanislaw; Kiayias, Aggelos; Krawczyk, Hugo (2014). "Compartición de secretos protegida por contraseña con optimización de rondas y T-PAKE en el modelo solo de contraseña". Avances en criptología – ASIACRYPT 2014. Notas de clase en ciencias de la computación. Vol. 8874. págs. 233–253 . doi : 10.1007/978-3-662-45608-8_13 . ISBN 978-3-662-45607-1.
- 1 2 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 .
- ↑ Everspaugh, Adam; Chaterjee, Rahul; Scott, Samuel; Juels, Ari; Ristenpart, Thomas (2015). "El servicio Pythia PRF" . 24.º Simposio de Seguridad de USENIX (USENIX Security 15) : 547–562 . ISBN 978-1-939133-11-3.
- ↑ Tyagi, Nirvan; Celi, Sofía; Ristenpart, Thomas; Sullivan, Nick; Tessaro, Stefano; Wood, Christopher A. (2021). "Un PRF parcialmente ajeno rápido y sencillo, con aplicaciones" . Cryptology ePrint Archive . Documento 2021/864.
- ↑ Cachin, Christian; Krawczyk, Hugo; Rabin, Tal; Stathakopoulou, Chrysoula; Resch, Jason (14 de marzo de 2019). "Plataforma para criptografía de umbral robusto" . Centro de recursos de seguridad informática del NIST . NIST.gov . Consultado el 27 de enero de 2024 .
- ↑ Boneh, Dan; Ishai, Yuval; Passelègue, Alain; Sahai, Amit; Wu, David (2018). "Explorando la materia oscura criptográfica: nuevos candidatos a PRF simples y sus aplicaciones" . Cryptology ePrint Archive . Documento 2018/1218.
- ↑ Albrecht, Martin; Davidson, Alex; Deo, Amit; Smart, Nigel (2019). "Funciones pseudoaleatorias verificables y ajenas a la realidad con un número óptimo de rondas a partir de retículos ideales" . Cryptology ePrint Archive . Documento 2019/1271.
- ↑ Boneh, Dan; Kogan, Dmitry; Woo, Katharine (2020). "Funciones pseudoaleatorias inconscientes a partir de isogenias". Avances en criptología – ASIACRYPT 2020. Notas de clase en ciencias de la computación. Vol. 12492. págs. 520–550 . doi : 10.1007/978-3-030-64834-3_18 . ISBN 978-3-030-64833-6. S2CID 228085090 .
- ↑ Castryck, Wouter; Decru, Thomas (2023). "Un ataque eficiente de recuperación de claves en SIDH". Avances en criptología – EUROCRYPT 2023. Notas de clase en informática. Vol. 14008. págs. 423–447 . doi : 10.1007/978-3-031-30589-4_15 . ISBN 978-3-031-30588-7. S2CID 258240788 .
- Teoría de la criptografía
- Primitivas criptográficas
- Pseudoaleatoriedad