esquema de compromiso


Un esquema de compromiso es una primitiva criptográfica que permite comprometerse con un valor elegido (o declaración elegida) mientras lo mantiene oculto para otros, con la capacidad de revelar el valor comprometido más adelante. [1] Los esquemas de compromiso están diseñados para que una parte no pueda cambiar el valor o la declaración después de haberse comprometido con él: es decir, los esquemas de compromiso son vinculantes . Los esquemas de compromiso tienen aplicaciones importantes en una serie de protocolos criptográficos, incluido el lanzamiento seguro de monedas, pruebas de conocimiento cero y computación segura .

Una forma de visualizar un esquema de compromiso es pensar en un remitente que pone un mensaje en una caja cerrada y le da la caja a un receptor. El mensaje en el cuadro está oculto para el receptor, que no puede abrir la cerradura por sí mismo. Dado que el receptor tiene la caja, el mensaje que contiene no se puede cambiar, simplemente se revela si el remitente decide darle la clave en algún momento posterior.

En la metáfora anterior, la fase de confirmación es que el remitente coloca el mensaje en el cuadro y lo bloquea. La fase de revelación es cuando el remitente entrega la clave al receptor, quien la usa para abrir la caja y verificar su contenido. La caja cerrada es el compromiso, y la llave es la prueba.

En los protocolos simples, la fase de compromiso consiste en un solo mensaje del remitente al receptor. Este mensaje se llama el compromiso . Es esencial que el valor específico elegido no pueda ser conocido por el receptor en ese momento (esto se denomina propiedad de ocultación ). Una fase de revelación simple consistiría en un solo mensaje, la apertura , del remitente al receptor, seguido de una verificación realizada por el receptor. El valor elegido durante la fase de confirmación debe ser el único que el remitente pueda calcular y que valide durante la fase de revelación (esto se denomina propiedad vinculante ).

El concepto de esquemas de compromiso quizás fue formalizado por primera vez por Gilles Brassard , David Chaum y Claude Crepeau en 1988, [2] como parte de varios protocolos de conocimiento cero para NP , basados ​​en varios tipos de esquemas de compromiso (ver también: [3] [4] ). Pero el concepto se usó antes de eso sin ser tratado formalmente. [5] [6] La noción de compromisos apareció más temprano en los trabajos de Manuel Blum , [7] Shimon Even , [8] y Shamir et al. [9] La terminología parece haber sido originada por Blum,[6] aunque los esquemas de compromiso pueden denominarse indistintamente esquemas de compromiso de bits, a veces reservados para el caso especial en el que el valor comprometido es un bit . Antes de eso, se consideró el compromiso a través de funciones hash unidireccionales, por ejemplo, como parte de, digamos, la firma Lamport , el esquema original de firma de un bit de una sola vez.

Supongamos que Alice y Bob quieren resolver una disputa lanzando una moneda al aire . Si están físicamente en el mismo lugar, un procedimiento típico podría ser: