En criptografía , la separación de dominios es una construcción que se utiliza para implementar múltiples funciones diferentes utilizando una única plantilla subyacente de manera eficiente. [ 1 ] La separación de dominios se puede definir como la partición del dominio de una función para asignar subdominios separados a diferentes aplicaciones de la misma función. [ 2 ]
Por ejemplo, los protocolos criptográficos suelen basarse en oráculos aleatorios (OR, funciones que devuelven un valor totalmente determinado por su entrada, pero que por lo demás es aleatorio). Las pruebas de seguridad para estos protocolos se basan en la suposición de que el oráculo aleatorio es único para cada protocolo: si dos protocolos comparten el mismo OR, las suposiciones de la prueba ya no se cumplen. Dado que crear una nueva primitiva criptográfica desde cero cada vez que se necesita un OR es poco práctico, se generan varios OR (por ejemplo, OR1 y OR2) anteponiendo etiquetas de separación de dominio únicas (DST, también conocidas como separadores de dominio ) a la entrada de un OR base:
- RO1(x) := RO("RO1" || x)
- RO2(x) := RO("RO2" || x)
donde "RO1" y "RO2" son las cadenas que representan los DST únicos y || es un operador de concatenación . [ 3 ] Si la función RO subyacente es segura (por ejemplo, es un hash criptográfico ), RO1 y RO2 son estadísticamente independientes . [ 1 ] La técnica fue propuesta originalmente [ 4 ] por Bellare y Rogaway en 1993. [ 5 ]
Usos
La estructura de separación de dominios se puede utilizar para múltiples propósitos:
- proporcionar RO independientes para protocolos; [ 6 ]
- extendiendo el tamaño de salida de un RO (por ejemplo, usando el RO varias veces (numeradas del 1 al L), cada vez usando una representación del número de oráculo como DST. Esta técnica se llama "modo contador" debido a su similitud con el modo contador de un cifrado de bloques ; [ 7 ]
- "clave" el oráculo utilizando una clave de cifrado como DST. [ 8 ]
En el sentido práctico, la separación de dominios puede proporcionar "personalización", un equivalente al tipado fuerte en programación: impone el uso de cálculos independientes para diferentes tareas, de modo que un atacante que haya conocido el resultado de un cálculo no obtendrá información sobre otro. [ 9 ]
Tipos de funciones
La separación de dominios se puede utilizar con funciones que implementan diferentes primitivas criptográficas .
Funciones hash
La separación de dominios se utiliza con mayor frecuencia con funciones hash. El dominio de entrada de una función hash es prácticamente ilimitado, y es fácil particionarlo entre cualquier número de funciones derivadas, por ejemplo, anteponiendo o añadiendo un DST al mensaje. [ 10 ] [ 1 ]
La separación de dominios se utiliza en la implementación de algunas funciones hash para producir múltiples funciones diferentes a partir del mismo diseño. [ 11 ] Por ejemplo, en SHA-3 la separación de dominios asegura que las funciones con nombres diferentes (como SHA3-512 o SHAKE128 ) sean independientes. [ 9 ]
Cifrados simétricos y MAC
La seguridad de los cifrados simétricos y los MAC depende fundamentalmente de que la clave no se utilice para otros fines. Si una aplicación necesita varias claves pero solo dispone de una fuente de material de clave , normalmente empleará una función de derivación de claves para generarlas. Las KDF suelen producir una salida de longitud arbitraria, por lo que pueden utilizarse para generar cualquier número de claves. [ 12 ]
Además, al igual que las funciones hash, algunos cifrados simétricos y MAC utilizan internamente la separación de dominios. [ 13 ]
Firmas
En muchos casos, es conveniente utilizar una única clave de firma para generar firmas digitales con distintos fines. Si se opta por esta opción, es importante asegurarse de que los mensajes firmados destinados a un fin no puedan utilizarse para otro. Una forma sencilla de lograrlo es añadir a cada mensaje un identificador que especifique su finalidad y rechazar el mensaje si el identificador no coincide. [ 14 ]
Referencias
- ^ Hampiholi y cols . 2015 , pág. 317.
- ↑ Kelsey, Chang y Perlner 2016 , pág. 3.
- ^ Faz-Hernández et al. 2023 , Separación de Dominios.
- ↑ Bellare, Bernstein y Tessaro 2016 , p. 566.
- ↑ Bellare y Rogaway 1993 .
- ↑ Mittelbach y Fischlin 2021 , p. 357.
- ↑ Mittelbach y Fischlin 2021 , p. 358.
- ↑ Mittelbach y Fischlin 2021 , p. 359.
- 1 2 Kelsey, Chang y Perlner 2016 , pág. 1.
- ↑ Gunsing, Aldo; Mennink, Bart (10 de abril de 2020). "Colapso de hashes de árbol" . PQCrypto 2020: Criptografía post-cuántica . doi : 10.1007/978-3-030-44223-1_28 . hdl : 2066/219338 .
- ↑ Bertoni, Guido; Daemen, Joan; Hoffert, Seth; Peeters, Michael; Van Assche, Gilles; Van Keer, Ronny; Viguier, Benoît (2023). "TurboSHAKE" .
- ↑ Wong, David (19 de octubre de 2021). Criptografía en el mundo real . Simon and Schuster. ISBN 9781638350842.
- ↑ Aumasson, Jean-Philippe; Jovanovic, Philipp; Neves, Samuel. "NORX: AEAD paralelo y escalable" . Seguridad informática - ESORICS 2014. doi : 10.1007 /978-3-319-11212-1_2 .
- ↑ Blum, Erica; Katz, Jonathan; Loss, Julian (22 de noviembre de 2019). "Consenso síncrono con garantías de respaldo asíncronas óptimas" . TCC 2019: Theory of Cryptography . doi : 10.1007/978-3-030-36030-6_6 .
Fuentes
- Bellare, Mihir; Rogaway, Phillip (1993). Los oráculos aleatorios son prácticos: un paradigma para diseñar protocolos eficientes (PDF) . ACM Press. doi : 10.1145/168588.168596 . ISBN 978-0-89791-629-5.
- Bellare, Mihir; Bernstein, Daniel J.; Tessaro, Stefano (2016). «PRF basadas en funciones hash: AMAC y su seguridad multiusuario». Avances en criptología – EUROCRYPT 2016. Vol. 9665. Berlín, Heidelberg: Springer Berlin Heidelberg. doi : 10.1007/978-3-662-49890-3_22 . ISBN 978-3-662-49889-7.
- Faz-Hernandez, A.; Scott, S.; Sullivan, N.; Wahby, RS; Wood, CA (agosto de 2023). "RFC 9380: Hashing a curvas elípticas" . The RFC Series. 2.2.5. Separación de dominios. ISSN 2070-1721 .
- Hampiholi, Brinda; Alpár, Gergely; van den Broek, Fabian; Jacobs, Bart (2015). «Hacia firmas prácticas basadas en atributos» . Security, Privacy, and Applied Cryptography Engineering . Vol. 9354. Cham: Springer International Publishing. pp. 310–328 . doi : 10.1007/978-3-319-24126-5_18 . ISBN 978-3-319-24125-8.
- Kelsey, John; Chang, Shu-jen; Perlner, Ray (2016). "NIST SP 800-185: Funciones derivadas de SHA-3: cSHAKE, KMAC, TupleHash y ParallelHash" . Centro de recursos de seguridad informática del NIST . NIST . Consultado el 6 de mayo de 2024 .
- Mittelbach, Arno; Fischlin, Marc (2021). La teoría de las funciones hash y los oráculos aleatorios: un enfoque para la criptografía moderna . Seguridad de la información y criptografía. Springer International Publishing. ISBN 978-3-030-63287-8. Consultado el 22 de junio de 2023 .
- Criptografía