La ofuscación de indistinguibilidad ( IO ) es una primitiva criptográfica que proporciona una noción formal de ofuscación de programa . De manera informal, la ofuscación oculta la implementación de un programa y, al mismo tiempo, permite a los usuarios ejecutarlo. [1]
Construcciones candidatas
En 2013 se publicó una construcción candidata de IO con seguridad demostrable bajo supuestos de dureza concretos relacionados con mapas multilineales , pero este supuesto fue posteriormente invalidado. [2] [3]
El trabajo ha continuado intentando establecer condiciones previas a partir de supuestos más estándar, en particular el trabajo de 2020 de Jain, Lin y Sahai basado en los supuestos XDH , LWE y LPN . [3] [4] La propuesta de Jain, Lin y Sahai también requiere la existencia de un generador pseudoaleatorio de estiramiento superlineal en la clase de función NC 0 . [4] La existencia de generadores pseudoaleatorios en NC 0 (incluso con estiramiento sub-lineal) fue un problema abierto de larga data hasta 2006. [5]
Aplicaciones potenciales
Los ofuscadores de indistinguibilidad, si existen, podrían utilizarse para una enorme variedad de aplicaciones criptográficas . [1] [3] Concretamente, un ofuscador de indistinguibilidad podría usarse para construir los siguientes tipos de criptografía:
- Criptografía de clave pública (y una versión segura de IND-CCA ) [6]
- Firmas digitales cortas [6]
- IND-CCA -Secure clave de encapsulación esquemas [6]
- Pruebas de conocimiento cero, no interactivas, de conocimiento cero perfectamente y argumentos sucintos no interactivos [6]
- Protocolos de conocimiento cero concurrentes de ronda constante [4]
- Mapas multilineales con grados polinomiales acotados [4]
- Funciones de trampilla inyectiva [6]
- Cifrado totalmente homomórfico [4]
- Testigo de cifrado [4]
- Uso compartido secreto para cualquier lenguaje NP monótono [4]
- Semi-honesto transferencia ajeno [6]
- Encriptación denegable (tanto por el remitente como por completo) [6] [4]
- Intercambio de claves no interactivo entre varias partes [4]
- RAM distorsionada sucinta y segura adaptativamente [4]
- Ofuscación de indistinguibilidad para programas en el modelo RAM [4]
- Funciones de correlación intratables [4]
- Cifrado basado en atributos [4]
- Dureza PPAD . [4]
Sin embargo, la ofuscación de indistinguibilidad no puede utilizarse para construir todos los protocolos criptográficos posibles: por ejemplo, ninguna construcción de caja negra puede convertir un ofuscador de indistinguibilidad en una familia de funciones hash resistente a colisiones , incluso con una permutación de trampilla , a menos que se produzca una pérdida exponencial de seguridad. [7]
Ver también
- Ofuscación de caja negra , una forma más fuerte de ofuscación que ha demostrado ser imposible
Referencias
- ↑ a b Klarreich, Erica (3 de febrero de 2014). "El avance de la criptografía podría hacer que el software sea imposible de piratear" . Revista Quanta .
- ^ Sanjam Garg; Craig Gentry ; Shai Halevi ; Mariana Raykova; Amit Sahai ; Aguas de Brent (2013). "Ofuscación de indistinguibilidad de candidatos y cifrado funcional para todos los circuitos". Focs 2013 . IEEE: 40–49. CiteSeerX 10.1.1.672.1968 . doi : 10.1109 / FOCS.2013.13 . ISBN 978-0-7695-5135-7.
- ^ a b c Klarreich, Erica (10 de octubre de 2020). "Los científicos informáticos logran la 'joya de la corona' de la criptografía" . Revista Quanta .
- ^ a b c d e f g h yo j k l m n Jain, Aayush; Lin, Huijia; Sahai, Amit (2020). "Ofuscación de indistinguibilidad de supuestos bien fundamentados" . arXiv : 2008.09317 . Cite journal requiere
|journal=
( ayuda ) - ^ Applebaum, B; Ishai, Y; Kushilevitz, E (2006). "Criptografía en NC0" (PDF) . Revista SIAM de Computación . 36 (4): 845–888. doi : 10.1137 / S0097539705446950 .
- ^ a b c d e f g Sahai, Amit; Aguas, Brent (2013). "Cómo utilizar la ofuscación de indistinguibilidad: cifrado denegable y más" . Cite journal requiere
|journal=
( ayuda ) - ^ Asharov, Gilad; Segev, Gil (2015). "Límites en el poder de la confusión de la indistinguibilidad y el cifrado funcional" . Cite journal requiere
|journal=
( ayuda )