• Nenhum resultado encontrado

F 2 corpo finito com dois elementos

3.5 Esquemas de Comprometimento

Um esquema de comprometimento permite a um emissor se comprometer com um determinado valor sem torná-lo público. O esquema dá a possibilidade do emissor revelar, posteriormente, o tal valor secreto de modo que o receptor possa ter certeza de que o valor revelado é, de fato, aquele com o qual o emissor se comprometeu. Uma possível analogia é a de que o emissor tranca uma mensagem em um cofre e envia esse cofre ao receptor. Posteriormente o emissor pode revelar o segredo de abertura do cofre. Desse modo o receptor pode ter certeza de que a mensagem não foi alterada.

Duas propriedades são importantes para um esquema de comprometimento. A primeira delas, a do sigilo, estabelece que o receptor não pode aprender nada sobre o valor com o qual o emissor se comprometeu até que ele seja revelado. Ou seja, na analogia, o emissor não consegue inferir algo sobre a mensagem dentro do cofre (muito menos abrir o cofre).

A segunda propriedade, a da não-ambiguidade, estabelece que o emissor não pode revelar um valor diferente do qual ele se comprometeu sem que o receptor perceba. Na analogia, isso significa que, uma vez dentro do cofre, a mensagem não pode ser alterada pelo emissor.

Registramos, a seguir, a definição de um esquema de comprometimento para um bit. Utilizamos as definições 3.9 (Máquina de Turing interativa) e 3.10 (Computação conjunta de duas MTIs) como auxiliares.

Definição 3.14 (Esquema de comprometimento para um bit - Definição 4.4.1 de GOLDREICH (2001)). Um esquema de comprometimento para um bit C é um par(S, R) de MTIs de tempo polinomial (S de sender e R de receiver) tais que:

1. (Entradas:) A entrada compartilhada por S e R é um parâmetro de segurança n (represen- tado em unário). A entrada auxiliar de S é um bit v com o qual ele quer se comprometer. 2. (Sigilo:) O receptor R, mesmo adotando uma estratégia arbitrária, não consegue distinguir

3.5. ESQUEMAS DE COMPROMETIMENTO 48

Ou seja, para toda MTI R∗de tempo polinomial interagindo com S: {hS(0),R∗i(1n)}n∈N

c

≡ {hS(1),R∗i(1n)}n∈N

3. (Não-ambiguidade:) Definições auxiliares:

- A visão(r, ¯m) que o receptor tem da interação com o emissor consiste da fonte de aleatoriedade r utilizada pelo receptor e da sequência ¯m das mensagens recebidas do emissor.

- Seja σ∈ {0,1} um bit. Uma visão (r, ¯m) é um comprometimento com σ se existe uma cadeia s∈ {0,1}∗tal que ¯mé a sequência das mensagens recebidas por R na interação com S quando S usa s como fonte de aleatoriedade e tem σ como entrada auxiliar .

- A visão(r, ¯m) é ambígua se ela é tanto um comprometimento com 0 quanto um comprometimento com 1.

Um esquema é não-ambíguo se apenas uma quantidade desprezível de fontes de aleatorie- dade r∈ {0,1}ntornam ambígua a visão(r, ¯m) do receptor para alguma sequência ¯mde mensagens recebidas.

A propriedade de sigilo estabelece que a interação com S quando ele executa sobre entrada auxiliar 0 é indistinguível daquela em que ele executa sobre entrada auxiliar 1. Ou seja, nenhuma estratégia arbitrária R∗consegue determinar, com probabilidade não desprezível, se S se comprometeu com 0 ou com 1. A estratégia é arbitrária para ressaltar que o sigilo da entrada de S não é garantido apenas na interação com a estratégia honesta de R, mas na interação com qualquerestratégia (eficiente).

As propriedades de sigilo e não-ambiguidade ressaltam a importância da fonte de aleatori- edade utilizada por S. De fato, se S não usasse uma fonte de aleatoriedade, ele se comprometeria com o bit 1 (ou com 0) sempre da mesma maneira. Dessa forma, o sigilo de tal bit seria trivialmente quebrado.

Por outro lado, o receptor R poderia temer que S se comprometesse com um bit σ e depois conseguisse achar uma fonte de aleatoriedade s que fizesse parecer que ele se comprometera com 1− σ. A propriedade de não-ambiguidade garante que isso só é possível com uma probabilidade desprezível (no parâmetro de segurança).

Uma característica que vale ser notada na Definição 3.14 é que o comprometimento de um emissor é a própria interação com o receptor, no mesmo espírito de um sistema de prova de conhecimento. No entanto, é conveniente adotar uma definição mais “concreta”, que aproxime a ideia de um esquema de comprometimento da sua implementação. Fazemos isso na definição a seguir.

Definição 3.15 (Esquema de comprometimento para um bit (revisitada)). Seja σ∈ {0,1} um bit, 1num parâmetro de segurança e s∈ {0,1}numa cadeia. Um esquema de comprometimento para um bit é um algoritmo determinístico C de tempo polinomial tal que Cs(σ ) é o resultado

de se comprometer com σ utilizando s como fonte de aleatoriedade.

Existem duas abordagens para que o receptor verifique se Cs(σ ) foi de fato gerado sobre

o par(s, σ ) eventualmente revelado pelo emissor. Pode-se admitir a existência de um algoritmo Verifica tal que Verifica(s, σ ,Cs(σ )) = 1 se e somente se Cs(σ ) foi gerado com o par (s, σ ).

Outra possível abordagem, adotada neste trabalho, é a de que o algoritmo C é conhecido pelo receptor. Portanto, ele pode executar C sobre as entradas(s, σ ) e verificar se o resultado coincide com Cs(σ ).

Fazendo uma relação com a Definição 3.14, C é a estratégia do emissor S. Já Cs(σ )

é a visão que R tem da interação com S quando S usa s como fonte de aleatoriedade e σ como entrada auxiliar. A propriedade de sigilo significa que Cs(σ ) não revela ao receptor

informação alguma sobre s ou σ . Já a não-ambiguidade significa que não existe s0∈ {0,1}ntal que Cs0(1− σ) = Cs(σ ) (na verdade s0existe apenas com probabilidade desprezível).

Algo importante a ser ressaltado da Definição 3.15 é o fato de o algoritmo C ser determi- nístico. De fato, C é determinístico porque recebe explicitamente uma fonte de aleatoriedade (s). Essa característica é importante, por exemplo, para possibilitar que R verifique a validade do comprometimento a partir de s e σ .

De maneira geral, pode ser necessário ao emissor S se comprometer com uma cadeia de bitsao invés de com um único bit. Naturalmente isso pode ser alcançado através do comprometi- mento com cada bit da cadeia individualmente. Definimos a seguir a notação que utilizaremos nesse caso.

Definição 3.16 (Esquema de comprometimento para cadeias de bits (notação)). Seja C um

esquema de comprometimento para um bit como na Definição 3.15, 1n um parâmetro de

segurança e x∈ {0,1}∗ uma cadeia. Para todo i∈ {1,··· ,|x|}, seja si∈ {0,1}n uma cadeia.

Definimos a cadeia s∈ {0,1}n·|x| def= s1||···||s|x| como a concatenação de todas as cadeias si.

Definimos ainda xicomo o i-ésimo bit de x.

Definimos Cs(x) def

= (Cs1(x1),··· ,Cs|x|(x|x|)) como o resultado de se comprometer com

a cadeia x usando s como fonte de aleatoriedade. Note que Cr(x) é a sequência dos resultados

de se comprometer com cada bit de x.

3.5.1 Esquemas de Comprometimento Equívocos

No decorrer deste trabalho estaremos também interessados em sistemas de compro- metimento equívocos. Tais sistemas permitem que o emissor quebre a propriedade de não- ambiguidade sem que o receptor perceba. Isso é feito através de um par de algoritmos: um para gerar um comprometimento “coringa” e outro para gerar uma fonte de aleatoriedade compatível com tal “coringa”.