Un esquema de compromiso es una primitiva criptográfica que permite comprometerse con un valor (o enunciado) elegido, manteniéndolo oculto a terceros, con la posibilidad de revelarlo posteriormente. [ 1 ] Los esquemas de compromiso están diseñados para que una parte no pueda modificar el valor o el enunciado una vez que se haya comprometido con él; es decir, los esquemas de compromiso son vinculantes . Los esquemas de compromiso tienen aplicaciones importantes en diversos protocolos criptográficos, como el lanzamiento seguro de monedas, las pruebas de conocimiento cero y la computación segura .
Una forma de visualizar un esquema de compromiso es imaginar que un remitente guarda un mensaje en una caja cerrada con llave y se la entrega a un receptor. El mensaje permanece oculto para el receptor, quien no puede abrir la cerradura por sí mismo. Dado que el receptor posee la caja, el mensaje en su interior no puede modificarse ; solo se revelará si el remitente decide entregarle la llave posteriormente.
Las interacciones en un esquema de compromiso se desarrollan en dos fases:
- la fase de compromiso durante la cual se elige un valor y se compromete con él.
- la fase de revelación durante la cual el remitente revela el valor, y luego el receptor verifica su autenticidad.
En la metáfora anterior, la fase de compromiso consiste en que el remitente deposita el mensaje en la caja y la cierra con llave. La fase de revelación consiste en que el remitente entrega la llave al receptor, quien la utiliza para abrir la caja y verificar su contenido. La caja cerrada representa el compromiso y la llave, la prueba.
En los protocolos sencillos, la fase de confirmación consiste en un único mensaje del remitente al receptor. Este mensaje se denomina confirmación . Es fundamental que el receptor no pueda extraer del mensaje el valor específico elegido en ese momento (esto se conoce como propiedad de ocultación ). Una fase de revelación sencilla consistiría en un único mensaje, la apertura , del remitente al receptor, seguido de una verificación realizada por este último. El valor elegido durante la fase de confirmación debe ser el único que el remitente pueda calcular y que se valide durante la fase de revelación (esto se conoce como propiedad de vinculación ).
El concepto de esquemas de compromiso fue formalizado quizás por primera vez por Gilles Brassard , David Chaum y Claude Crépeau en 1988, [ 2 ] como parte de varios protocolos de conocimiento cero para NP , basados en varios tipos de esquemas de compromiso. [ 3 ] [ 4 ] Pero el concepto se usó antes de eso sin ser tratado formalmente. [ 5 ] [ 6 ] La noción de compromisos apareció primero en trabajos de Manuel Blum , [ 7 ] Shimon Even , [ 8 ] y Adi Shamir et al. [ 9 ] La terminología parece haber sido originada por Blum, [ 6 ] aunque los esquemas de compromiso pueden ser llamados indistintamente esquemas de compromiso de bits , a veces reservado para el caso especial donde el valor comprometido es un bit . Antes de eso, el compromiso a través de funciones hash unidireccionales fue considerado, por ejemplo, como parte de, digamos, la firma de Lamport , el esquema de firma de un bit de un solo uso original.
Aplicaciones
lanzamiento de moneda
Supongamos que Alice y Bob quieren resolver una disputa lanzando una moneda al aire . Si se encuentran físicamente en el mismo lugar, un procedimiento típico podría ser:
- Alice "dice" el resultado del lanzamiento de la moneda,
- Bob lanza la moneda,
- Si Alice acierta, gana; de lo contrario, gana Bob.
Si Alice y Bob no se encuentran en el mismo lugar, surge un problema. Una vez que Alice ha "anunciado" el resultado del lanzamiento de la moneda, Bob puede estipular que dicho resultado sea el que más le convenga. Del mismo modo, si Alice no le comunica su "anunciación" a Bob, después de que este lance la moneda y anuncie el resultado, Alice puede informar que acertó con el resultado que más le convenga. Alice y Bob pueden utilizar compromisos en un procedimiento que les permita a ambos confiar en el resultado.
- Alice "llama" al lanzamiento de la moneda pero solo le comunica a Bob su compromiso con su llamada,
- Bob lanza la moneda y comunica el resultado.
- Alice revela a qué se comprometió,
- Bob verifica que la llamada de Alice coincide con su compromiso,
- Si la revelación de Alice coincide con el resultado de la moneda que Bob informó, Alice gana.
Para que Bob pueda manipular los resultados a su favor, debe comprender la implicación oculta en el compromiso de Alice. Si el esquema de compromiso es adecuado, Bob no podrá alterar los resultados. Del mismo modo, Alice no podrá influir en el resultado si no puede modificar el valor al que se compromete.
Existe una aplicación práctica de este problema cuando las personas (a menudo en los medios de comunicación) se comprometen a tomar una decisión o dan una respuesta en un "sobre sellado", que luego se abre. "Veamos si eso es lo que respondió el candidato", por ejemplo, en un concurso de televisión, puede servir como modelo de este sistema.
Pruebas de conocimiento cero
Un ejemplo particularmente motivador es el uso de esquemas de compromiso en pruebas de conocimiento cero . Los compromisos se utilizan en pruebas de conocimiento cero con dos propósitos principales: primero, para permitir que el probador participe en pruebas de "corte y elección", donde al verificador se le presenta la opción de elegir qué aprender, y el probador solo revela lo que corresponde a la elección del verificador. Los esquemas de compromiso permiten al probador especificar toda la información por adelantado y revelar únicamente lo que debe revelarse posteriormente en la prueba. [ 10 ] Segundo, los compromisos también son utilizados en pruebas de conocimiento cero por el verificador, quien a menudo especifica sus elecciones con anticipación en un compromiso. Esto permite que las pruebas de conocimiento cero se compongan en paralelo sin revelar información adicional al probador. [ 11 ]
esquemas de firmas
El esquema de firma Lamport es un sistema de firma digital que se basa en mantener dos conjuntos de paquetes de datos secretos , publicar hashes verificables de dichos paquetes y, posteriormente, revelar selectivamente partes de paquetes de datos secretos de forma que se ajusten específicamente a los datos que se van a firmar. De este modo, el compromiso público previo con los valores secretos se convierte en una parte fundamental del funcionamiento del sistema.
Dado que el sistema de firmas Lamport no puede utilizarse más de una vez, se desarrolló un sistema para combinar varios conjuntos de claves Lamport bajo un único valor público que puede vincularse a una persona y ser verificado por terceros. Este sistema utiliza árboles de hashes para comprimir numerosos conjuntos de claves Lamport publicadas en un único valor hash que puede asociarse con el posible autor de datos posteriormente verificados.
Compartir secretos verificables
Otra aplicación importante de los compromisos se encuentra en el reparto verificable de secretos , un componente fundamental de la computación multipartita segura . En un esquema de reparto de secretos , cada una de las partes recibe "partes" de un valor que debe permanecer oculto para todos. Si suficientes partes se reúnen, sus partes pueden utilizarse para reconstruir el secreto, pero incluso un grupo malicioso de tamaño insuficiente no debería obtener ninguna información. El reparto de secretos es la base de muchos protocolos para la computación segura : para calcular de forma segura una función de una entrada compartida, se manipulan las partes del secreto. Sin embargo, si las partes maliciosas van a generar partes, puede ser importante que estas puedan verificarse. En un esquema de reparto verificable de secretos, la distribución de un secreto va acompañada de compromisos con las partes individuales. Los compromisos no revelan nada que pueda ayudar a un grupo deshonesto, pero las partes permiten a cada participante comprobar si sus partes son correctas. [ 12 ]
Seguridad
Las definiciones formales de los esquemas de compromiso varían considerablemente en notación y en su naturaleza. La primera de estas características radica en si el esquema de compromiso proporciona seguridad perfecta o computacional con respecto a las propiedades de ocultación o vinculación. Otra característica es si el compromiso es interactivo, es decir, si tanto la fase de confirmación como la de revelación pueden considerarse ejecutadas por un protocolo criptográfico , o si son no interactivas y constan de dos algoritmos: Commit y CheckReveal . En este último caso, CheckReveal suele considerarse una versión desaleatorizada de Commit , donde la aleatoriedad utilizada por Commit constituye la información inicial.
Si el compromiso C a un valor x se calcula como C:=Commit(x,open) donde open es la aleatoriedad utilizada para calcular el compromiso, entonces CheckReveal (C,x,open) se reduce a simplemente verificar la ecuación C=Commit (x,open) .
Utilizando esta notación y algunos conocimientos sobre funciones matemáticas y teoría de la probabilidad, formalizamos diferentes versiones de las propiedades de vinculación y ocultación de los compromisos. Las dos combinaciones más importantes de estas propiedades son los esquemas de compromiso perfectamente vinculantes y computacionalmente ocultos, y los esquemas de compromiso computacionalmente vinculantes y perfectamente ocultos. Nótese que ningún esquema de compromiso puede ser a la vez perfectamente vinculante y perfectamente oculto: un adversario computacionalmente ilimitado puede simplemente generar Commit(x,open) para cada valor de x y abrir hasta encontrar un par que produzca C , y en un esquema perfectamente vinculante esto identifica de forma única a x .
Enlace computacional
Sea abierto elegido de un conjunto de tamaño, es decir, se puede representar como una cadena de k bits, y dejemos sea el esquema de compromiso correspondiente. Como el tamaño de k determina la seguridad del esquema de compromiso, se le llama parámetro de seguridad .
Entonces, para todos los algoritmos de tiempo polinomial probabilístico no uniformes que generanyde longitud creciente k , la probabilidad de queyes una función insignificante en k .
Esta es una forma de análisis asintótico . También es posible enunciar el mismo requisito utilizando seguridad concreta : Un esquema de compromiso Commit esseguro, si para todos los algoritmos que se ejecutan en tiempo t y la salidala probabilidad de queyes como máximo.
Ocultamiento perfecto, estadístico y computacional
Dejarsea la distribución uniforme sobre elvalores de apertura para el parámetro de seguridad k . Un esquema de compromiso es respectivamente perfecto, estadístico o de ocultación computacional, si para todoslos conjuntos de probabilidadyson iguales, estadísticamente similares o computacionalmente indistinguibles .
Imposibilidad de esquemas de compromiso universalmente componibles
Es imposible implementar esquemas de compromiso en el marco de la componibilidad universal (UC). La razón es que el compromiso UC debe ser extraíble , como lo demostraron Canetti y Fischlin [ 13 ] y se explica a continuación.
La funcionalidad de compromiso ideal, denotada aquí por F , funciona aproximadamente de la siguiente manera. El emisor C envía el valor m a F , que lo almacena y envía "recibo" al receptor R. Posteriormente, C envía "abrir" a F , que envía m a R.
Ahora bien, supongamos que tenemos un protocolo π que implementa esta funcionalidad. Supongamos que el confirmador C está corrompido. En el marco de UC, esto significa esencialmente que C ahora está controlado por el entorno, que intenta distinguir la ejecución del protocolo del proceso ideal. Consideremos un entorno que elige un mensaje m y luego le indica a C que actúe según lo prescrito por π , como si se hubiera comprometido con m . Nótese que para implementar F , el receptor debe, después de recibir un compromiso, emitir un mensaje de "recibo". Después de que el entorno ve este mensaje, le indica a C que abra el compromiso.
El protocolo solo es seguro si este escenario es indistinguible del caso ideal, donde la funcionalidad interactúa con un simulador S. Aquí, S controla C. En particular, cada vez que R emite "receipt", F debe hacer lo mismo. La única forma de lograrlo es que S le indique a C que envíe un valor a F. Sin embargo, cabe señalar que, en este punto, S desconoce m . Por lo tanto, cuando se abre el compromiso durante la ejecución del protocolo, es improbable que F se abra a m , a menos que S pueda extraer m de los mensajes recibidos del entorno antes de que R emita el recibo.
Sin embargo, un protocolo que se puede extraer en este sentido no puede ocultarse estadísticamente. Supongamos que existe un simulador S de este tipo. Ahora consideremos un entorno que, en lugar de corromper C , corrompe R. Además , ejecuta una copia de S. Los mensajes recibidos de C se envían a S , y las respuestas de S se reenvían a C.
El entorno inicialmente le indica a C que se comprometa con un mensaje m . En algún momento de la interacción, S se comprometerá con un valor m′ . Este mensaje se le entrega a R , quien emite m′ . Nótese que, por hipótesis, tenemos m' = m con alta probabilidad . Ahora bien, en el proceso ideal, el simulador debería generar m . Pero esto es imposible, porque en este punto el compromiso aún no se ha abierto, por lo que el único mensaje que R puede haber recibido en el proceso ideal es un mensaje de "recibo". Por lo tanto, tenemos una contradicción.
Construcción
Un esquema de compromiso puede ser perfectamente vinculante (es imposible que Alice altere su compromiso después de haberlo hecho, incluso si tiene recursos computacionales ilimitados); o perfectamente oculto (es imposible que Bob descubra el compromiso sin que Alice lo revele, incluso si tiene recursos computacionales ilimitados); o formulado como un esquema de compromiso dependiente de la instancia, que es oculto o vinculante dependiendo de la solución a otro problema. [ 14 ] [ 15 ] Un esquema de compromiso no puede ser perfectamente oculto y perfectamente vinculante al mismo tiempo.
Compromiso de bits en el modelo de oráculo aleatorio
Los esquemas de compromiso de bits son triviales de construir en el modelo de oráculo aleatorio . Dada una función hash H con una salida de 3k bits, para comprometer el mensaje de k bits m , Alice genera una cadena aleatoria de k bits R y envía a Bob H( R || m ). La probabilidad de que existan cualesquiera R′ , m′ donde m′ ≠ m tales que H( R′ || m′ ) = H( R || m ) es ≈ 2 − k , pero para probar cualquier suposición del mensaje m Bob necesitará hacer 2 k (para una suposición incorrecta) o 2 k -1 (en promedio, para una suposición correcta) consultas al oráculo aleatorio. [ 16 ] Observamos que los esquemas anteriores basados en funciones hash, esencialmente pueden considerarse esquemas basados en la idealización de estas funciones hash como oráculos aleatorios.
Compromiso de bits a partir de cualquier permutación unidireccional
Se puede crear un esquema de asignación de bits a partir de cualquier función unidireccional que sea inyectiva . El esquema se basa en el hecho de que toda función unidireccional puede modificarse (mediante el teorema de Goldreich-Levin ) para que posea un predicado computacionalmente complejo (manteniendo la propiedad de inyectividad).
Sea f una función inyectiva unidireccional, con h un predicado de núcleo duro. Entonces, para comprometerse con un bit b, Alice elige una entrada aleatoria x y envía la tripleta
a Bob, dondedenota XOR, es decir , suma bit a bit módulo 2. Para desvincularse, Alice simplemente envía x a Bob. Bob verifica calculando f ( x ) y comparándolo con el valor vinculado. Este esquema es oculto porque para que Bob recupere b debe recuperar h ( x ). Dado que h es un predicado computacionalmente difícil, recuperar h ( x ) de f ( x ) con una probabilidad mayor a un medio es tan difícil como invertir f . La vinculación perfecta se deduce del hecho de que f es inyectiva y, por lo tanto, f ( x ) tiene exactamente una preimagen.
Compromiso de bits de un generador pseudoaleatorio
Cabe señalar que, dado que no sabemos cómo construir una permutación unidireccional a partir de ninguna función unidireccional, esta sección reduce la solidez del supuesto criptográfico necesario para construir un protocolo de compromiso de bits.
En 1991, Moni Naor demostró cómo crear un esquema de compromiso de bits a partir de un generador de números pseudoaleatorios criptográficamente seguro . [ 17 ] La construcción es la siguiente. Si G es un generador pseudoaleatorio tal que G toma n bits a 3 n bits, entonces si Alice quiere comprometerse con un bit b :
- Bob selecciona un vector aleatorio de 3n bits , R , y se lo envía a Alice.
- Alice selecciona un vector aleatorio de n bits Y y calcula el vector de 3 n bits G ( Y ).
- Si b = 1, Alice envía G ( Y ) a Bob; de lo contrario, envía el OR exclusivo bit a bit de G ( Y ) y R a Bob.
Para desvincularse, Alice envía Y a Bob, quien luego puede verificar si inicialmente recibió G ( Y ) o G ( Y ).R.
Este esquema es estadísticamente vinculante, lo que significa que incluso si Alice no tiene límites computacionales, no puede hacer trampa con una probabilidad mayor que 2 − n . Para que Alice haga trampa, necesitaría encontrar un Y' tal que G ( Y' ) = G ( Y )R. Si pudiera encontrar tal valor, podría desvincularse enviando la verdad y Y , o enviar la respuesta opuesta y Y' . Sin embargo, G ( Y ) y G ( Y' ) solo pueden producir 2n valores posibles cada uno (es decir, 2²ⁿ ) , mientras que R se elige de entre 2³ⁿ valores . Ella no elige R , por lo que hay una probabilidad de 2²ⁿ / 2³ⁿ = 2 − n de que exista un Y' que satisfaga la ecuación requerida para hacer trampa.
La propiedad de ocultación se deriva de una reducción estándar: si Bob puede saber si Alice se comprometió a un cero o a un uno, también puede distinguir la salida del generador pseudoaleatorio G de la de un generador verdaderamente aleatorio, lo que contradice la seguridad criptográfica de G.
Un esquema perfectamente vinculante basado en el problema del logaritmo discreto y más allá.
Alice elige un grupo de orden primo p , con generador g .
Alice elige aleatoriamente un valor secreto x entre 0 y p − 1 para comprometerse con él, calcula c = g x y publica c . El problema del logaritmo discreto dicta que, a partir de c , es computacionalmente inviable calcular x , por lo que, bajo esta suposición, Bob no puede calcular x . Por otro lado, Alice no puede calcular un x ′ <> x , tal que g x ′ = c , por lo que el esquema es vinculante.
Este esquema no oculta perfectamente el compromiso, ya que alguien podría descubrirlo si logra resolver el problema del logaritmo discreto . De hecho, este esquema no oculta nada con respecto al juego de ocultación estándar, donde un adversario no debería poder adivinar a cuál de los dos mensajes elegidos corresponde el compromiso, de forma similar al juego IND-CPA . Una consecuencia de esto es que, si el espacio de valores posibles de x es pequeño, un atacante podría simplemente probarlos todos y el compromiso no estaría oculto.
Un mejor ejemplo de un esquema de compromiso perfectamente vinculante es aquel en el que el compromiso es el cifrado de x bajo un esquema de cifrado de clave pública semánticamente seguro con completitud perfecta, y el descompromiso es la cadena de bits aleatorios utilizada para cifrar x . Un ejemplo de un esquema de compromiso que oculta la información teóricamente es el esquema de compromiso de Pedersen, [ 18 ] que es computacionalmente vinculante bajo la suposición del logaritmo discreto. [ 19 ] Además del esquema anterior, utiliza otro generador h del grupo primo y un número aleatorio r . El compromiso se establece. [ 20 ]
Estas construcciones están estrechamente relacionadas con las propiedades algebraicas de los grupos subyacentes y se basan en ellas, y la noción originalmente parecía estar muy relacionada con el álgebra. Sin embargo, se demostró que es posible basar esquemas de compromiso estadísticamente vinculantes en supuestos generales no estructurados, a través de la noción de hash interactivo para compromisos a partir de supuestos de complejidad general (específicamente y originalmente, basados en cualquier permutación unidireccional) como en [ 21 ] .
Un esquema de compromiso perfectamente oculto basado en RSA
Alice seleccionade tal manera que, dóndeyson grandes números primos secretos. Además, ella selecciona un primode tal manera queyAlice calcula entonces un número público.como elemento de orden máximo en elgrupo. [ 22 ] Finalmente, Alice se compromete con su secretogenerando primero un número aleatorio.dey luego mediante computación.
La seguridad del compromiso anterior se basa en la dificultad del problema RSA y tiene ocultación perfecta y vinculación computacional. [ 23 ]
Propiedades homomórficas aditivas y multiplicativas de los compromisos
El esquema de compromiso de Pedersen introduce una interesante propiedad homomórfica que permite realizar sumas entre dos compromisos. Más específicamente, dados dos mensajesyy aleatoriedady, respectivamente, es posible generar un nuevo compromiso tal que:Formalmente:
Para abrir el compromiso de Pedersen mencionado anteriormente a un nuevo mensaje, la aleatoriedadydebe añadirse.
De manera similar, el compromiso basado en RSA mencionado anteriormente tiene una propiedad homomórfica con respecto a la operación de multiplicación. Dados dos mensajesycon aleatoriedady, respectivamente, se puede calcular:Formalmente: .
Para abrir el compromiso anterior a un nuevo mensaje, la aleatoriedadydebe agregarse. Este compromiso recién generado se distribuye de manera similar a un nuevo compromiso a.
Revelación parcial
Algunos esquemas de compromiso permiten que se dé una prueba de solo una parte del valor comprometido. En estos esquemas, el valor secretoes un vector de muchos valores separables individualmente.
El compromisose calcula a partir deen la fase de compromiso. Normalmente, en la fase de revelación, el probador revelaría todoy algunos datos de prueba adicionales (comoen simple compromiso de bits ). En cambio, el probador puede revelar cualquier valor único delvector, y crear una prueba eficiente de que es el auténticoel enésimo elemento del vector original que creó el compromisoLa demostración no requiere ningún valor deotro queser revelado, y es imposible crear pruebas válidas que revelen valores diferentes para cualquiera de losque el verdadero. [ 24 ]
Hashing vectorial
El hash vectorial es un esquema de revelación parcial de compromiso vectorial ingenuo basado en el compromiso de bits. Valoresse eligen aleatoriamente. Los compromisos individuales se crean mediante hash.El compromiso total se calcula como
Para probar un elemento del vector, el probador revela los valores
El verificador es capaz de calculardeyy luego puede verificar que el hash de todosLos valores son el compromiso. Desafortunadamente la prueba esen tamaño y tiempo de verificación. Alternativamente, sies el conjunto de todosvalores, entonces el compromiso esen tamaño, y la prueba esen tamaño y tiempo de verificación. De cualquier manera, el compromiso o la prueba se escalan conlo cual no es óptimo.
Árbol de Merkle
Un ejemplo común de un esquema práctico de revelación parcial es un árbol Merkle , en el que se crea un árbol hash binario de los elementos deEste esquema crea compromisos que sonen tamaño y pruebas que sonen tamaño y tiempo de verificación. El hash raíz del árbol es el compromiso.Para probar que una revelaciónes parte del árbol original, soloLos valores hash del árbol, uno de cada nivel, deben revelarse como prueba. El verificador puede seguir el camino desde el nodo hoja reclamado hasta la raíz, aplicando el hash a los nodos hermanos en cada nivel y, finalmente, llegando a un valor de nodo raíz que debe ser igual a. [ 25 ]
Compromiso de KZG
Un compromiso Kate-Zaverucha-Goldberg (KZG) utiliza criptografía basada en emparejamientos para construir un esquema de revelación parcial contamaños de compromiso, tamaños de prueba y tiempo de verificación de prueba. En otras palabras, como, el número de valores en, los aumentos, los compromisos y las pruebas no aumentan, y las pruebas no requieren más esfuerzo para verificarse.
Un compromiso KZG requiere un conjunto predeterminado de parámetros para crear un emparejamiento y un elemento de puerta trasera de confianza. Por ejemplo, se puede utilizar un emparejamiento Tate . Supongamos queson los grupos aditivos yes el grupo multiplicativo del emparejamiento. En otras palabras, el emparejamiento es el mapa. Dejarser el elemento de trampilla (sies el orden primo dey), y dejaryser los generadores deyrespectivamente. Como parte de la configuración de parámetros, asumimos queyson valores conocidos y compartidos para una cantidad arbitraria de valores enteros positivos de, mientras que el valor de la trampillaEn sí misma es descartada y desconocida para todos.
Comprometerse
Un compromiso KZG reformula el vector de valores a comprometer como un polinomio. Primero, calculamos un polinomio tal quepara todos los valores deen nuestro vector. La interpolación de Lagrange nos permite calcular ese polinomio.
Bajo esta formulación, el polinomio ahora codifica el vector, donde. Dejarsean los coeficientes de, de tal manera queEl compromiso se calcula como
Esto se calcula simplemente como un producto escalar entre los valores predeterminados.y los coeficientes del polinomio. Desdees un grupo aditivo con asociatividad y conmutatividad,es igual simplemente, ya que todas las sumas y multiplicaciones conpuede distribuirse fuera de la evaluación. Dado que el valor de la trampillaes desconocido, el compromisoes esencialmente el polinomio evaluado en un número desconocido para todos, con el resultado oscurecido en un elemento opaco de.
Revelar
Una prueba KZG debe demostrar que los datos revelados son el valor auténtico decuandofue calculado. Deje, el valor revelado que debemos probar. Dado que el vector defue reformulado en un polinomio, realmente necesitamos demostrar que el polinomio, cuando se evaluó en, adquiere valor. Simplemente, solo necesitamos demostrar queLo haremos demostrando que restardeproduce una raíz en. Definir el polinomiocomo
Este polinomio es en sí mismo la prueba de que, porque sientonces existees divisible por, lo que significa que tiene una raíz en, entonces(o, en otras palabras,). La prueba KZG demostrará queexiste y posee esta propiedad.
El probador calculamediante la división polinómica anterior, se calcula el valor de prueba KZG.
Esto es igual a, como se indicó anteriormente. En otras palabras, el valor de la prueba es el polinomioevaluado nuevamente en el valor de la trampillaoculto en el generadorde.
Este cálculo solo es posible si los polinomios anteriores fueran divisibles exactamente, porque en ese caso el cocientees un polinomio, no una función racional . Debido a la construcción de la trampilla, no es posible evaluar una función racional en el valor de la trampilla, solo evaluar un polinomio utilizando combinaciones lineales de las constantes conocidas precalculadas dePor eso es imposible crear una prueba para un valor incorrecto de.
Verificar
Para verificar la prueba, se utiliza el mapa bilineal del emparejamiento para mostrar que el valor de la pruebaresume un polinomio realque demuestra la propiedad deseada, que es quese dividió equitativamente porEl cálculo de verificación comprueba la igualdad.
dóndees la función de mapeo bilineal como se indicó anteriormente.es una constante precalculada,se calcula en función de.
Al reescribir el cálculo en el grupo de emparejamiento, sustituyendo enyy dejarAl ser una función auxiliar para elevar al grupo de emparejamiento, la verificación de la prueba es más clara.
Suponiendo que el mapa bilineal se construye válidamente, esto demuestra que, sin que el validador sepa quéoson. El validador puede estar seguro de esto porque si, entonces los polinomios se evalúan al mismo resultado en el valor de la trampilla.Esto demuestra que los polinomios son idénticos, porque, si los parámetros se construyeron válidamente, el valor de la trampilla es desconocido para todos, lo que significa que diseñar un polinomio para que tenga un valor específico en la trampilla es imposible (según el lema de Schwartz-Zippel ). SiAhora se ha verificado que es cierto, entoncesSe verifica que existe, por lo tantodebe ser divisible por polinomios, entoncesdebido al teorema del factor . Esto prueba que elEl valor del vector comprometido debe haber sido igual a, ya que ese es el resultado de evaluar el polinomio comprometido en.
La utilidad del emparejamiento de mapas bilineales es permitir la multiplicación deporpara que ocurra de forma segura. Estos valores residen realmente endonde se supone que la división es computacionalmente difícil. Por ejemplo,podría ser una curva elíptica sobre un campo finito, como es común en la criptografía de curva elíptica . Entonces, la suposición de división se llama el problema del logaritmo discreto de curva elíptica , y esta suposición es también la que protege el valor de la puerta trasera de ser calculado, lo que la convierte también en un fundamento de los compromisos KZG. En ese caso, queremos comprobar siEsto no se puede hacer sin un emparejamiento, porque con valores en la curva deyno podemos calcularEso violaría la suposición computacional de Diffie-Hellman , una suposición fundamental en la criptografía de curva elíptica . En su lugar, utilizamos un emparejamiento para sortear este problema.sigue multiplicado porLlegarpero el otro lado de la multiplicación se realiza en el grupo emparejado., entonces,Calculamos ., que, debido a la bilinealidad del mapa, es igual aEn este grupo de salidaTodavía tenemos el problema del logaritmo discreto , así que aunque sabemos que el valor y, no podemos extraer el exponente, evitando cualquier contradicción con el logaritmo discreto anterior. Este valor se puede comparar conSin embargo, y sipodemos concluir que, sin saber nunca cuál es el valor real dees, por no hablar de.
Además, un compromiso KZG puede extenderse para probar los valores de cualquier arbitrariovalores de(no solo un valor), con el tamaño de la prueba restantepero el tiempo de verificación de la prueba se escala conLa demostración es la misma, pero en lugar de restar una constante..., restamos un polinomio que causa raíces múltiples, en todas las ubicaciones que queremos demostrar, y en lugar de dividir pordividimos porpara esos mismos lugares. [ 26 ]
Compromiso con el bit cuántico
En criptografía cuántica, resulta interesante plantearse si existen protocolos de compromiso de bits incondicionalmente seguros a nivel cuántico; es decir, protocolos que sean (al menos asintóticamente) vinculantes y que oculten la información incluso sin restricciones en los recursos computacionales. Cabría esperar que existiera una forma de explotar las propiedades intrínsecas de la mecánica cuántica , como en los protocolos para la distribución de claves incondicionalmente segura .
Sin embargo, esto es imposible, como demostró Dominic Mayers en 1996. Cualquier protocolo de este tipo puede reducirse a uno en el que el sistema se encuentra en uno de dos estados puros después de la fase de compromiso, dependiendo del bit que Alice quiera confirmar. Si el protocolo oculta incondicionalmente, entonces Alice puede transformar unitariamente estos estados entre sí utilizando las propiedades de la descomposición de Schmidt , lo que anula efectivamente la propiedad de vinculación.
Una suposición sutil de la prueba es que la fase de confirmación debe finalizar en algún momento. Esto deja margen para protocolos que requieren un flujo continuo de información hasta que se revele el bit o se cancele el protocolo, en cuyo caso deja de ser vinculante. [ 28 ] De manera más general, la prueba de Mayers se aplica solo a protocolos que explotan la física cuántica pero no la relatividad especial . Kent ha demostrado que existen protocolos incondicionalmente seguros para la confirmación de bits que explotan el principio de la relatividad especial que establece que la información no puede viajar más rápido que la luz. [ 29 ]
Compromisos basados en funciones físicas no clonables
Las funciones físicas inclonables (PUF) se basan en el uso de una clave física con aleatoriedad interna, que es difícil de clonar o emular. Las PUF electrónicas, ópticas y de otros tipos [ 30 ] se han tratado ampliamente en la literatura, en relación con sus posibles aplicaciones criptográficas, incluidos los esquemas de compromiso. [ 31 ] [ 32 ]
Véase también
- Transferencia inconsciente
- Acumulador (criptografía)
- Fiesta de firma de llaves
- Red de confianza
- Zerocoin
- Anagramas : utilizados por los filósofos naturales del siglo XVII para establecer la prioridad de un descubrimiento sin revelarlo a otros.
Referencias
- ↑ Oded Goldreich (2001). Fundamentos de criptografía : Volumen 1, Herramientas básicas. Cambridge University Press. ISBN 0-521-79172-3. : 224
- ↑ Gilles Brassard, David Chaum y Claude Crépeau, Pruebas de conocimiento de divulgación mínima , Journal of Computer and System Sciences, vol. 37, pp. 156–189, 1988.
- ↑ Goldreich, Oded; Micali, Silvio; Wigderson, Avi (1991). "Pruebas que no aportan nada más que su validez" . Journal of the ACM . 38 (3): 690– 728. CiteSeerX 10.1.1.420.1478 . doi : 10.1145/116825.116852 . S2CID 2389804 .
- ↑ Russell Impagliazzo, Moti Yung: Cálculos directos de conocimiento mínimo. CRYPTO 1987: 40-51
- ↑ Naor, Moni (1991). "Compromiso de bits mediante pseudorandomness" . Journal of Cryptology . 4 (2): 151– 158. doi : 10.1007/BF00196774 . S2CID 15002247 .
- 1 2 Claude Crépeau, Compromiso , Laboratorio de Criptografía e Información Cuántica, Escuela de Ciencias de la Computación de la Universidad McGill , consultado el 11 de abril de 2008.
- ↑ Manuel Blum, Coin Flipping by Telephone , Actas de CRYPTO 1981, págs. 11–15, 1981, reimpreso en SIGACT News vol. 15, págs. 23–27, 1983, Carnegie Mellon School of Computer Science .
- ↑ Shimon Even. Protocolo para la firma de contratos. En Allen Gersho , ed., Avances en criptografía (actas de CRYPTO '82), págs. 148–153, Santa Bárbara, CA, EE. UU., 1982.
- ↑ A. Shamir, RL Rivest y L. Adleman, " Mental Poker " . En David A. Klarner , ed., The Mathematical Gardner ( ISBN 978-1-4684-6686-7), págs. 37–43. Wadsworth, Belmont, California, 1981.
- ↑ Oded Goldreich , Silvio Micali y Avi Wigderson , Pruebas que no producen nada más que su validez, o todos los lenguajes en NP tienen sistemas de prueba de conocimiento cero , Journal of the ACM , 38: 3, pp. 690–728, 1991
- ↑ Oded Goldreich y Hugo Krawczyk , Sobre la composición de sistemas de prueba de conocimiento cero , SIAM Journal on Computing , 25: 1, pp. 169–192, 1996
- ↑ Gennaro; Rosario; Rabin, Michael O.; Rabin, Tal. "VSS simplificado y computación multipartita de vía rápida con aplicaciones a la criptografía de umbral". Actas del Decimoséptimo Simposio Anual de la ACM sobre Principios de Computación Distribuida . Junio de 1998.
- ↑ R. Canetti y M. Fischlin. Compromisos universalmente componibles.
- ↑ Shien Hin Ong y Salil Vadhan (1990). Conocimiento cero perfecto en ronda constante, En Proc. STOC, págs. 482–493, citado en Shien Hin Ong y Salil Vadhan (2008). Una equivalencia entre conocimiento cero y compromisos, Teoría de la criptografía.
- ^ Toshiya Itoh, Yiji Ohta, Hiroki Shizuya (1997). Una primitiva criptográfica dependiente del lenguaje, en J. Cryptol., 10(1):37-49, citado en Shien Hin Ong y Salil Vadhan (2008). Una equivalencia entre conocimiento cero y compromisos, teoría de la criptografía.
- ↑ Wagner, David (2006), Solución de mitad de período , pág. 2 , consultado el 26 de octubre de 2015
- ↑ "Citas: Compromiso de bits mediante generadores pseudoaleatorios - Naor (ResearchIndex)" . Citeseer.ist.psu.edu . Consultado el 7 de junio de 2014 .
- ↑ Pedersen, Torben Pryds (1992). «Compartición de secretos verificable, segura y no interactiva desde el punto de vista de la teoría de la información». Avances en criptología – CRYPTO '91 . Notas de clase en ciencias de la computación. Vol. 576. Berlín, Heidelberg: Springer Berlin Heidelberg. págs. 129–140 . doi : 10.1007/3-540-46766-1_9 . ISBN 978-3-540-55188-1.
- ↑ Metere, Roberto; Dong, Changyu (2017). "Análisis criptográfico automatizado del esquema de compromiso de Pedersen". Conferencia Internacional sobre Métodos Matemáticos, Modelos y Arquitecturas para la Seguridad de Redes Informáticas . Springer. pp. 275–287 .
- ↑ Tang, Chunming; Pei, Dingyi; Liu, Zhuojun; He, Yong (16 de agosto de 2004). "Pedersen: Compartición de secretos verificable segura, no interactiva y basada en la teoría de la información" (PDF) . Cryptology ePrint Archive . Advances in Cryptology CRYPTO 1991 Springer. Archivado del original (PDF) el 11 de agosto de 2017. Recuperado el 2 de febrero de 2019 .
- ↑ Moni Naor, Rafail Ostrovsky, Ramarathnam Venkatesan, Moti Yung: Argumentos de conocimiento cero perfectos para NP usando cualquier permutación unidireccional. J. Cryptology 11(2): 87–108 (1998)
- ↑ Menezes, Alfred J; Van Oorschot, Paul C; Vanstone, Scott A (2018). Manual de criptografía aplicada . CRC Press.
- ↑ Mouris, Dimitris; Tsoutsos, Nektarios Georgios (26 de enero de 2022). "Masquerade: Agregación multipartita verificable con compromisos multiplicativos seguros" (PDF) . Cryptology ePrint Archive .
- ↑ Catalano, Dario; Fiore, Dario (2013). "Compromisos vectoriales y sus aplicaciones" . Criptografía de clave pública – PKC 2013. Notas de clase en informática. Vol. 7778. Springer Berlin Heidelberg. pp. 55–72 . doi : 10.1007/978-3-642-36362-7_5 . ISBN 978-3-642-36362-7.Catalano, Dario; Fiore, Dario (2013). "Compromisos vectoriales y sus aplicaciones" (PDF) . Asociación Internacional para la Investigación Criptológica .
- ^ Becker, Georg (18 de julio de 2008). "Esquemas de firma de Merkle, árboles de Merkle y su criptoanálisis" (PDF) . Universidad del Ruhr de Bochum. pag. 16. Archivado desde el original (PDF) el 22 de diciembre de 2014 . Consultado el 20 de noviembre de 2013 .
- ↑ Kate, Aniket; Zaverucha, Gregory; Goldberg, Ian (2010). "Compromisos de tamaño constante con polinomios y sus aplicaciones" (PDF) . Conferencia Internacional sobre la Teoría y Aplicación de la Criptología y la Seguridad de la Información .
- ↑ Brassard, Gilles; Crépeau, Claude; Mayers, Dominic; Salvail, Louis (1997). "Una breve revisión sobre la imposibilidad del compromiso de bits cuánticos". arXiv : quant-ph/9712023 .
- ↑ Kent, Adrian (1999). "Compromiso seguro de bits clásicos mediante canales de comunicación de capacidad fija". arXiv : quant-ph/9906103 .
- ↑ Kent, A. (1999). "Compromiso de bits incondicionalmente seguro". Phys. Rev. Lett . 83 (7): 1447– 1450. arXiv : quant-ph/9810068 . Bibcode : 1999PhRvL..83.1447K . doi : 10.1103/PhysRevLett.83.1447 . S2CID 8823466 .
- ↑ McGrath, Thomas; Bagci, Ibrahim E.; Wang, Zhiming M.; Roedig, Utz; Young, Robert J. (2019-02-12). "Una taxonomía de PUF" . Applied Physics Reviews . 6 (1): 011303. Bibcode : 2019ApPRv...6a1303M . doi : 10.1063/1.5079407 .
- ↑ Rührmair, Ulrich; van Dijk, Marten (2013-04-01). "Sobre el uso práctico de funciones físicas no clonables en protocolos de transferencia ciega y compromiso de bits". Journal of Cryptographic Engineering . 3 (1): 17– 28. doi : 10.1007/s13389-013-0052-8 . hdl : 1721.1/103985 . ISSN 2190-8516 . S2CID 15713318 .
- ↑ Nikolopoulos, Georgios M. (30 de septiembre de 2019). "Esquema óptico para compromisos criptográficos con claves físicas no clonables". Optics Express . 27 (20): 29367– 29379. arXiv : 1909.13094 . Bibcode : 2019OExpr..2729367N . doi : 10.1364/OE.27.029367 . ISSN 1094-4087 . PMID 31684673. S2CID 203593129 .
Enlaces externos
- Compromiso de bits cuánticos en arxiv.org
- Compromisos polinomiales de tamaño constante de Kate-Zaverucha-Goldberg (KZG) - Alin Tomescu
- Compromisos polinomiales de Kate
- Criptografía de clave pública
- Protocolos de conocimiento cero
- Compartir secretos
- Primitivas criptográficas