Articulo de referencia

Plan de compromiso

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 reve...

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:

  1. la fase de compromiso durante la cual se elige un valor y se compromete con él.
  2. 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:

  1. Alice "dice" el resultado del lanzamiento de la moneda,
  2. Bob lanza la moneda,
  3. 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.

  1. Alice "llama" al lanzamiento de la moneda pero solo le comunica a Bob su compromiso con su llamada,
  2. Bob lanza la moneda y comunica el resultado.
  3. Alice revela a qué se comprometió,
  4. Bob verifica que la llamada de Alice coincide con su compromiso,
  5. 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ño2k{\displaystyle 2^{k}}, es decir, se puede representar como una cadena de k bits, y dejemos Comprometersek{\displaystyle {\text{Comprometer}}_{k}}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 generanincógnita,incógnita{\displaystyle x,x'}yopagminorte,opagminorte{\displaystyle abierto, abierto'}de longitud creciente k , la probabilidad de queincógnitaincógnita{\displaystyle x\neq x'}yComprometersek(incógnita,opagminorte)=Comprometersek(incógnita,opagminorte){\displaystyle {\text{Commit}}_{k}(x,open)={\text{Commit}}_{k}(x',open')}es 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 es(t,ϵ){\displaystyle (t,\epsilon )}seguro, si para todos los algoritmos que se ejecutan en tiempo t y la salidaincógnita,incógnita,opagminorte,opagminorte{\displaystyle x,x',open,open'}la probabilidad de queincógnitaincógnita{\displaystyle x\neq x'}yComprometerse(incógnita,opagminorte)=Comprometerse(incógnita,opagminorte){\displaystyle {\text{Commit}}(x,open)={\text{Commit}}(x',open')}es como máximoϵ{\displaystyle \epsilon }.

Ocultamiento perfecto, estadístico y computacional

DejarUk{\displaystyle U_{k}}sea ​​la distribución uniforme sobre el2k{\displaystyle 2^{k}}valores 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 todosincógnitaincógnita{\displaystyle x\neq x'}los conjuntos de probabilidad{Comprometersek(incógnita,Uk)}knorte{\displaystyle \{{\text{Commit}}_{k}(x,U_{k})\}_{k\in \mathbb {N} }}y{Comprometersek(incógnita,Uk)}knorte{\displaystyle \{{\text{Commit}}_{k}(x',U_{k})\}_{k\in \mathbb {N} }}son 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

(h,F(incógnita),bh(incógnita)){\displaystyle (h,f(x),b\oplus h(x))}

a Bob, donde{\displaystyle \oplus }denota 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 ).{\displaystyle \oplus }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 ){\displaystyle \oplus }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 establecedo=gramoincógnitahr{\displaystyle c=g^{x}h^{r}}. [ 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 seleccionanorte{\displaystyle N}de tal manera quenorte=pagq{\displaystyle N=p\cdot q}, dóndepag{\displaystyle p}yq{\displaystyle q}son grandes números primos secretos. Además, ella selecciona un primomi{\displaystyle e}de tal manera quemi>norte2{\displaystyle e>N^{2}}ygramodod(mi,ϕ(norte2))=1{\displaystyle gcd(e,\phi (N^{2}))=1}Alice calcula entonces un número público.gramometro{\displaystyle g_{m}}como elemento de orden máximo en elZnorte2{\displaystyle \mathbb {Z} _{N^{2}}^{*}}grupo. [ 22 ] Finalmente, Alice se compromete con su secretometro{\displaystyle m}generando primero un número aleatorio.r{\displaystyle r}deZnorte2{\displaystyle \mathbb {Z} _{N^{2}}^{*}}y luego mediante computacióndo=metromigramometror{\displaystyle c=m^{e}g_{m}^{r}}.

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 mensajesmetro1{\displaystyle m_{1}}ymetro2{\displaystyle m_{2}}y aleatoriedadr1{\displaystyle r_{1}}yr2{\displaystyle r_{2}}, respectivamente, es posible generar un nuevo compromiso tal que:do(metro1,r1)do(metro2,r2)=do(metro1+metro2,r1+r2){\displaystyle C(m_{1},r_{1})\cdot C(m_{2},r_{2})=C(m_{1}+m_{2},r_{1}+r_{2})}Formalmente:

do(metro1,r1)do(metro2,r2)=gramometro1hr1gramometro2hr2=gramometro1+metro2hr1+r2=do(metro1+metro2,r1+r2){\displaystyle C(m_{1},r_{1})\cdot C(m_{2},r_{2})=g^{m_{1}}h^{r_{1}}\cdot g^{m_{2}}h^{r_{2}}=g^{m_{1}+m_{2}}h^{r_{1}+r_{2}}=C(m_{1}+m_{2},r_{1}+r_{2})}

Para abrir el compromiso de Pedersen mencionado anteriormente a un nuevo mensajemetro1+metro2{\displaystyle m_{1}+m_{2}}, la aleatoriedadr1{\displaystyle r_{1}}yr2{\displaystyle r_{2}}debe 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 mensajesmetro1{\displaystyle m_{1}}ymetro2{\displaystyle m_{2}}con aleatoriedadr1{\displaystyle r_{1}}yr2{\displaystyle r_{2}}, respectivamente, se puede calcular:do(metro1,r1)do(metro2,r2)=do(metro1metro2,r1+r2){\displaystyle C(m_{1},r_{1})\cdot C(m_{2},r_{2})=C(m_{1}\cdot m_{2},r_{1}+r_{2})}Formalmente: do(metro1,r1)do(metro2,r2)=metro1migramometror1metro2migramometror2=(metro1metro2)migramometror1+r2=do(metro1metro2,r1+r2){\displaystyle C(m_{1},r_{1})\cdot C(m_{2},r_{2})=m_{1}^{e}g_{m}^{r_{1}}\cdot m_{2}^{e}g_{m}^{r_{2}}=(m_{1}\cdot m_{2})^{e}g_{m}^{r_{1}+r_{2}}=C(m_{1}\cdot m_{2},r_{1}+r_{2})}.

Para abrir el compromiso anterior a un nuevo mensajemetro1metro2{\displaystyle m_{1}\cdot m_{2}}, la aleatoriedadr1{\displaystyle r_{1}}yr2{\displaystyle r_{2}}debe agregarse. Este compromiso recién generado se distribuye de manera similar a un nuevo compromiso ametro1metro2{\displaystyle m_{1}\cdot m_{2}}.

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 secretoincógnita{\displaystyle X}es un vector de muchos valores separables individualmente.

incógnita=(incógnita1,incógnita2,...,incógnitanorte){\displaystyle X=(x_{1},x_{2},...,x_{n})}

El compromisodo{\displaystyle C}se calcula a partir deincógnita{\displaystyle X}en la fase de compromiso. Normalmente, en la fase de revelación, el probador revelaría todoincógnita{\displaystyle X}y algunos datos de prueba adicionales (comoR{\displaystyle R}en simple compromiso de bits ). En cambio, el probador puede revelar cualquier valor único delincógnita{\displaystyle X}vector, y crear una prueba eficiente de que es el auténticoi{\displaystyle i}el enésimo elemento del vector original que creó el compromisodo{\displaystyle C}La demostración no requiere ningún valor deincógnita{\displaystyle X}otro queincógnitai{\displaystyle x_{i}}ser revelado, y es imposible crear pruebas válidas que revelen valores diferentes para cualquiera de losincógnitai{\displaystyle x_{i}}que 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. Valoresmetro1,metro2,...metronorte{\displaystyle m_{1},m_{2},...m_{n}}se eligen aleatoriamente. Los compromisos individuales se crean mediante hash.y1=H(incógnita1||metro1),y2=H(incógnita2||metro2),...{\displaystyle y_{1}=H(x_{1}||m_{1}),y_{2}=H(x_{2}||m_{2}),...}El compromiso total se calcula como

do=H(y1||y2||...||ynorte){\displaystyle C=H(y_{1}||y_{2}||...||y_{n})}

Para probar un elemento del vectorincógnita{\displaystyle X}, el probador revela los valores

(i,y1,y2,...,yi1,incógnitai,metroi,yi+1,...,ynorte){\displaystyle (i,y_{1},y_{2},...,y_{i-1},x_{i},m_{i},y_{i+1},...,y_{n})}

El verificador es capaz de calcularyi{\displaystyle y_{i}}deincógnitai{\displaystyle x_{i}}ymetroi{\displaystyle m_{i}}y luego puede verificar que el hash de todosy{\displaystyle y}Los valores son el compromisodo{\displaystyle C}. Desafortunadamente la prueba esO(norte){\displaystyle O(n)}en tamaño y tiempo de verificación. Alternativamente, sido{\displaystyle C}es el conjunto de todosy{\displaystyle y}valores, entonces el compromiso esO(norte){\displaystyle O(n)}en tamaño, y la prueba esO(1){\displaystyle O(1)}en tamaño y tiempo de verificación. De cualquier manera, el compromiso o la prueba se escalan conO(norte){\displaystyle O(n)}lo 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 deincógnita{\displaystyle X}Este esquema crea compromisos que sonO(1){\displaystyle O(1)}en tamaño y pruebas que sonO(registro2norte){\displaystyle O(\log _{2}{n})}en tamaño y tiempo de verificación. El hash raíz del árbol es el compromiso.do{\displaystyle C}Para probar que una revelaciónincógnitai{\displaystyle x_{i}}es parte del árbol original, soloregistro2norte{\displaystyle \log _{2}{n}}Los 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 ado{\displaystyle C}. [ 25 ]

Compromiso de KZG

Un compromiso Kate-Zaverucha-Goldberg (KZG) utiliza criptografía basada en emparejamientos para construir un esquema de revelación parcial conO(1){\displaystyle O(1)}tamaños de compromiso, tamaños de prueba y tiempo de verificación de prueba. En otras palabras, comonorte{\displaystyle n}, el número de valores enincógnita{\displaystyle X}, 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 queGRAMO1,GRAMO2{\displaystyle \mathbb {G} _{1},\mathbb {G} _{2}}son los grupos aditivos yGRAMOT{\displaystyle \mathbb {G} _{T}}es el grupo multiplicativo del emparejamiento. En otras palabras, el emparejamiento es el mapami:GRAMO1×GRAMO2GRAMOT{\displaystyle e:\mathbb {G} _{1}\times \mathbb {G} _{2}\rightarrow \mathbb {G} _{T}}. DejartFpag{\displaystyle t\in \mathbb {F} _{p}}ser el elemento de trampilla (sipag{\displaystyle p}es el orden primo deGRAMO1{\displaystyle \mathbb {G} _{1}}yGRAMO2{\displaystyle \mathbb {G} _{2}}), y dejarGRAMO{\displaystyle G}yH{\displaystyle H}ser los generadores deGRAMO1{\displaystyle \mathbb {G} _{1}}yGRAMO2{\displaystyle \mathbb {G} _{2}}respectivamente. Como parte de la configuración de parámetros, asumimos queGRAMOti{\displaystyle G\cdot t^{i}}yHti{\displaystyle H\cdot t^{i}}son valores conocidos y compartidos para una cantidad arbitraria de valores enteros positivos dei{\displaystyle i}, mientras que el valor de la trampillat{\displaystyle t}En 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 quepag(i)=incógnitai{\displaystyle p(i)=x_{i}}para todos los valores deincógnitai{\displaystyle x_{i}}en nuestro vector. La interpolación de Lagrange nos permite calcular ese polinomio.

pag(incógnita)=i=0norte1incógnitai0j<norte,jiincógnitajij{\displaystyle p(x)=\sum _{i=0}^{n-1}x_{i}\prod _{0\leq j<n,j\neq i}{\frac {x-j}{i-j}}}

Bajo esta formulación, el polinomio ahora codifica el vector, dondepag(0)=incógnita0,pag(1)=incógnita1,...{\displaystyle p(0)=x_{0},p(1)=x_{1},...}. Dejarpag0,pag1,...,pagnorte1{\displaystyle p_{0},p_{1},...,p_{n-1}}sean los coeficientes depag{\displaystyle p}, de tal manera quepag(incógnita)=i=0norte1pagiincógnitai{\textstyle p(x)=\sum _{i=0}^{n-1}p_{i}x^{i}}El compromiso se calcula como

do=i=0norte1pagiGRAMOti{\displaystyle C=\sum _{i=0}^{n-1}p_{i}Gt^{i}}

Esto se calcula simplemente como un producto escalar entre los valores predeterminados.GRAMOti{\displaystyle G\cdot t^{i}}y los coeficientes del polinomiopagi{\displaystyle p_{i}}. DesdeGRAMO1{\displaystyle \mathbb {G} _{1}}es un grupo aditivo con asociatividad y conmutatividad,do{\displaystyle C}es igual simplementeGRAMOpag(t){\displaystyle G\cdot p(t)}, ya que todas las sumas y multiplicaciones conGRAMO{\displaystyle G}puede distribuirse fuera de la evaluación. Dado que el valor de la trampillat{\displaystyle t}es desconocido, el compromisodo{\displaystyle C}es esencialmente el polinomio evaluado en un número desconocido para todos, con el resultado oscurecido en un elemento opaco deGRAMO1{\displaystyle \mathbb {G} _{1}}.

Revelar

Una prueba KZG debe demostrar que los datos revelados son el valor auténtico deincógnitai{\displaystyle x_{i}}cuandodo{\displaystyle C}fue calculado. Dejey=incógnitai{\displaystyle y=x_{i}}, el valor revelado que debemos probar. Dado que el vector deincógnitai{\displaystyle x_{i}}fue reformulado en un polinomio, realmente necesitamos demostrar que el polinomiopag{\displaystyle p}, cuando se evaluó eni{\displaystyle i}, adquiere valory{\displaystyle y}. Simplemente, solo necesitamos demostrar quepag(i)=y{\displaystyle p(i)=y}Lo haremos demostrando que restary{\displaystyle y}depag{\displaystyle p}produce una raíz eni{\displaystyle i}. Definir el polinomioq{\displaystyle q}como

q(incógnita)=pag(incógnita)yincógnitai{\displaystyle q(x)={\frac {p(x)-y}{x-i}}}

Este polinomio es en sí mismo la prueba de quepag(i)=y{\displaystyle p(i)=y}, porque siq{\displaystyle q}entonces existepag(incógnita)y{\displaystyle p(x)-y}es divisible porincógnitai{\displaystyle x-i}, lo que significa que tiene una raíz eni{\displaystyle i}, entoncespag(i)y=0{\displaystyle p(i)-y=0}(o, en otras palabras,pag(i)=y{\displaystyle p(i)=y}). La prueba KZG demostrará queq{\displaystyle q}existe y posee esta propiedad.

El probador calculaq{\displaystyle q}mediante la división polinómica anterior, se calcula el valor de prueba KZG.π{\displaystyle \pi }

π=i=0norte1qiGRAMOti{\displaystyle \pi =\sum _{i=0}^{n-1}q_{i}Gt^{i}}

Esto es igual aGRAMOq(t){\displaystyle G\cdot q(t)}, como se indicó anteriormente. En otras palabras, el valor de la prueba es el polinomioq{\displaystyle q}evaluado nuevamente en el valor de la trampillat{\displaystyle t}oculto en el generadorGRAMO{\displaystyle G}deGRAMO1{\displaystyle \mathbb {G} _{1}}.

Este cálculo solo es posible si los polinomios anteriores fueran divisibles exactamente, porque en ese caso el cocienteq{\displaystyle q}es 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 deGRAMOti{\displaystyle G\cdot t^{i}}Por eso es imposible crear una prueba para un valor incorrecto deincógnitai{\displaystyle x_{i}}.

Verificar

Para verificar la prueba, se utiliza el mapa bilineal del emparejamiento para mostrar que el valor de la pruebaπ{\displaystyle \pi }resume un polinomio realq{\displaystyle q}que demuestra la propiedad deseada, que es quepag(incógnita)y{\displaystyle p(x)-y}se dividió equitativamente porincógnitai{\displaystyle x-i}El cálculo de verificación comprueba la igualdad.

mi(π,HtHi) =¿ mi(doGRAMOy,H){\displaystyle e(\pi ,H\cdot t-H\cdot i)\ {\stackrel {?}{=}}\ e(C-G\cdot y,H)}

dóndemi{\displaystyle e}es la función de mapeo bilineal como se indicó anteriormente.Ht{\displaystyle H\cdot t}es una constante precalculada,Hi{\displaystyle H\cdot i}se calcula en función dei{\displaystyle i}.

Al reescribir el cálculo en el grupo de emparejamientoGRAMOT{\displaystyle \mathbb {G} _{T}}, sustituyendo enπ=q(t)GRAMO{\displaystyle \pi =q(t)\cdot G}ydo=pag(t)GRAMO{\displaystyle C=p(t)\cdot G}y dejarτ(incógnita)=mi(GRAMO,H)incógnita{\displaystyle \tau (x)=e(G,H)^{x}}Al ser una función auxiliar para elevar al grupo de emparejamiento, la verificación de la prueba es más clara.

mi(π,HtHi)=mi(doGRAMOy,H){\displaystyle e(\pi ,H\cdot t-H\cdot i)=e(C-G\cdot y,H)}
mi(GRAMOq(t),HtHi)=mi(GRAMOpag(t)GRAMOy,H){\displaystyle e(G\cdot q(t),H\cdot t-H\cdot i)=e(G\cdot p(t)-G\cdot y,H)}
mi(GRAMOq(t),H(ti))=mi(GRAMO(pag(t)y),H){\displaystyle e(G\cdot q(t),H\cdot (t-i))=e(G\cdot (p(t)-y),H)}
mi(GRAMO,H)q(t)(ti)=mi(GRAMO,H)pag(t)y{\displaystyle e(G,H)^{q(t)\cdot (t-i)}=e(G,H)^{p(t)-y}}
τ(q(t)(ti))=τ(pag(t)y){\displaystyle \tau (q(t)\cdot (t-i))=\tau (p(t)-y)}

Suponiendo que el mapa bilineal se construye válidamente, esto demuestra queq(incógnita)(incógnitai)=pag(incógnita)y{\displaystyle q(x)(x-i)=p(x)-y}, sin que el validador sepa quépag{\displaystyle p}oq{\displaystyle q}son. El validador puede estar seguro de esto porque siτ(q(t)(ti))=τ(pag(t)y){\displaystyle \tau (q(t)\cdot (t-i))=\tau (p(t)-y)}, entonces los polinomios se evalúan al mismo resultado en el valor de la trampilla.incógnita=t{\displaystyle x=t}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 ). Siq(incógnita)(incógnitai)=pag(incógnita)y{\displaystyle q(x)(x-i)=p(x)-y}Ahora se ha verificado que es cierto, entoncesq{\displaystyle q}Se verifica que existe, por lo tantopag(incógnita)y{\displaystyle p(x)-y}debe ser divisible por polinomios(incógnitai){\displaystyle (x-i)}, entoncespag(i)y=0{\displaystyle p(i)-y=0}debido al teorema del factor . Esto prueba que eli{\displaystyle i}El valor del vector comprometido debe haber sido igual ay{\displaystyle y}, ya que ese es el resultado de evaluar el polinomio comprometido eni{\displaystyle i}.

Por qué se utiliza el emparejamiento de mapas bilineales

La utilidad del emparejamiento de mapas bilineales es permitir la multiplicación deq(incógnita){\displaystyle q(x)}porincógnitai{\displaystyle x-i}para que ocurra de forma segura. Estos valores residen realmente enGRAMO1{\displaystyle \mathbb {G} _{1}}donde se supone que la división es computacionalmente difícil. Por ejemplo,GRAMO1{\displaystyle \mathbb {G} _{1}}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 siq(incógnita)(incógnitai)=pag(incógnita)y{\displaystyle q(x)(x-i)=p(x)-y}Esto no se puede hacer sin un emparejamiento, porque con valores en la curva deGRAMOq(incógnita){\displaystyle G\cdot q(x)}yGRAMO(incógnitai){\displaystyle G\cdot (x-i)}no podemos calcularGRAMO(q(incógnita)(incógnitai)){\displaystyle G\cdot (q(x)(x-i))}Eso 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.q(incógnita){\displaystyle q(x)}sigue multiplicado porGRAMO{\displaystyle G}LlegarGRAMOq(incógnita){\displaystyle G\cdot q(x)}pero el otro lado de la multiplicación se realiza en el grupo emparejado.GRAMO2{\displaystyle \mathbb {G} _{2}}, entonces,H(ti){\displaystyle H\cdot (t-i)}Calculamos .mi(GRAMOq(t),H(ti)){\displaystyle e(G\cdot q(t),H\cdot (t-i))}, que, debido a la bilinealidad del mapa, es igual ami(GRAMO,H)q(t)(ti){\displaystyle e(G,H)^{q(t)\cdot (t-i)}}En este grupo de salidaGRAMOT{\displaystyle \mathbb {G} _{T}}Todavía tenemos el problema del logaritmo discreto , así que aunque sabemos que el valor ymi(GRAMO,H){\displaystyle e(G,H)}, no podemos extraer el exponenteq(t)(ti){\displaystyle q(t)\cdot (t-i)}, evitando cualquier contradicción con el logaritmo discreto anterior. Este valor se puede comparar conmi(GRAMO(pag(t)y),H)=mi(GRAMO,H)pag(t)y{\displaystyle e(G\cdot (p(t)-y),H)=e(G,H)^{p(t)-y}}Sin embargo, y simi(GRAMO,H)q(t)(ti)=mi(GRAMO,H)pag(t)y{\displaystyle e(G,H)^{q(t)\cdot (t-i)}=e(G,H)^{p(t)-y}}podemos concluir queq(t)(ti)=pag(t)y{\displaystyle q(t)\cdot (t-i)=p(t)-y}, sin saber nunca cuál es el valor real det{\displaystyle t}es, por no hablar deq(t)(ti){\displaystyle q(t)(t-i)}.

Además, un compromiso KZG puede extenderse para probar los valores de cualquier arbitrariok{\displaystyle k}valores deincógnita{\displaystyle X}(no solo un valor), con el tamaño de la prueba restanteO(1){\displaystyle O(1)}pero el tiempo de verificación de la prueba se escala conO(k){\displaystyle O(k)}La demostración es la misma, pero en lugar de restar una constante...y{\displaystyle y}, restamos un polinomio que causa raíces múltiples, en todas las ubicaciones que queremos demostrar, y en lugar de dividir porincógnitai{\displaystyle x-i}dividimos poriincógnitai{\textstyle \prod _{i}x-i}para 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

Referencias

  1. Oded Goldreich (2001). Fundamentos de criptografía : Volumen 1, Herramientas básicas. Cambridge University Press. ISBN 0-521-79172-3. : 224
  2. 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.
  3. 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 .  
  4. Russell Impagliazzo, Moti Yung: Cálculos directos de conocimiento mínimo. CRYPTO 1987: 40-51
  5. Naor, Moni (1991). "Compromiso de bits mediante pseudorandomness" . Journal of Cryptology . 4 (2): 151– 158. doi : 10.1007/BF00196774 . S2CID 15002247 . 
  6. 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.
  7. 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 .
  8. 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.
  9. 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.
  10. 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
  11. 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
  12. 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.
  13. R. Canetti y M. Fischlin. Compromisos universalmente componibles.
  14. 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.
  15. ^ 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.
  16. Wagner, David (2006), Solución de mitad de período , pág. 2 , consultado el 26 de octubre de 2015 
  17. "Citas: Compromiso de bits mediante generadores pseudoaleatorios - Naor (ResearchIndex)" . Citeseer.ist.psu.edu . Consultado el 7 de junio de 2014 .
  18. 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.
  19. 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 . 
  20. 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 .
  21. 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)
  22. Menezes, Alfred J; Van Oorschot, Paul C; Vanstone, Scott A (2018). Manual de criptografía aplicada . CRC Press.
  23. Mouris, Dimitris; Tsoutsos, Nektarios Georgios (26 de enero de 2022). "Masquerade: Agregación multipartita verificable con compromisos multiplicativos seguros" (PDF) . Cryptology ePrint Archive .
  24. 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 .
  25. ^ 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 . 
  26. 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 .
  27. 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 .
  28. Kent, Adrian (1999). "Compromiso seguro de bits clásicos mediante canales de comunicación de capacidad fija". arXiv : quant-ph/9906103 .
  29. 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 . 
  30. 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 .
  31. 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 .  
  32. 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 .   
  • 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