• Nenhum resultado encontrado

F 2 corpo finito com dois elementos

3.8 Esquemas de Criptografia Assimétricos

2. O algoritmo Enc recebe como entrada uma chave pública pk e uma mensagem m de algum espaço de purotextos, o qual pode depender de pk. Ele dá como resultado um cifrotexto c= Enc(pk, m).

3. O algoritmo Dec recebe como entrada uma chave secreta sk e um cifrotexto c e dá como saída uma mensagem m ou um símbolo especial⊥ simbolizando falha. Podemos assumir sem perder generalidade que Dec é determinístico11. Denotamos o resultado da operação de decriptação como m= Dec(sk, c).

Como requisito de correção, exige-se que, para todo n, todo par(pk, sk) gerado por Gen(1n) e toda mensagem m retirada do espaço de purotextos, a seguinte propriedade se verifique:

Dec(sk, Enc(pk, m)) = m

Fora a importante exigência de correção, a Definição 3.23 é basicamente sintática. No entanto, para que um esquema criptográfico seja útil, além de correto, ele precisa, naturalmente, ser seguro. Para definir segurança vamos utilizar um experimento. Nele, consideramos um adversário abelhudo (ou passivo), ou seja, um que tem apenas o poder de observar mensagens, e não o de alterá-las. Pedimos ao adversário que forneça duas mensagens à sua escolha, mas desde que tenham o mesmo tamanho. Sorteamos uma dessas mensagens e a encriptamos. Enviamos ao adversário o cifrotexto resultante e ele deve adivinhar qual mensagem foi encriptada. Definimos esse experimento a seguir.

Definição 3.24 (Experimento da indinstinguibilidade de cifrotextos na presença de um abelhudo). Seja Γ= (Gen, Enc, Dec) um esquema criptográfico assimétrico, n∈ N um parâmetro de segu- rança e A um adversário abelhudo. O procedimento a seguir, denotado por IndA,Γ(n), é chamado

de experimento da indistinguibilidade de crifrotextos na presença de um abelhudo. 1. Gen(1n) é executado para gerar as chaves (pk, sk).

2. O adversário A recebe pk e escolhe duas mensagens m0, m1com|m0| = |m1|.

3. Um bit b∈ {0,1} é escolhido aleatoriamente. O cifrotexto c = Enc(pk,mb) é calculado e

enviado para A. O cifrotexto c é chamado de cifrotexto-desafio. 4. O adversário A dá como saída um bit b0∈ {0,1}.

5. O resultado do experimento é 1 se b0= b e 0 caso contrário.

O resultado do experimento IndA,Γ(n) é 1 quando o adversário é bem sucedido em

adivinhar qual das mensagens fornecidas foi encriptada. A probabilidade disso acontecer é

11Isso porque podemos assumir que qualquer fonte de aleatoriedade necessária para decriptar c está embutida no

pelo menos 12, pois o adversário pode simplesmente gerar uma resposta aleatória. Para que um esquema criptográfico tenha a propriedade de indistinguibilidade de cifrotextos na presença de um abelhudo, essa probabilidade não pode exceder 12 em um valor não desprezível. Registramos essa definição a seguir.

Definição 3.25 (Indinstinguibilidade de cifrotextos na presença de um abelhudo - Definição 11.2 de KATZ e LINDELL (2014)). Um esquema criptográfico assimétrico Γ= (Gen, Enc, Dec) tem a propriedade de indinstinguibilidade de cifrotextos na presença de um abelhudo se, para todo adversário probabilístico A de tempo polinomial e todo parâmetro de segurança n∈ N, existe uma função µ desprezível (em n) tal que:

Pr[IndA,Γ(n) = 1]≤

1

2+ µ(n)

A probabilidade acima leva em conta a aleatoriedade de A, assim como a utilizada para gerar as chaves, escolher b e encriptar mb.

A Definição 3.25 estabelece que um adversário não deve conseguir extrair qualquer informação parcial do purotexto a partir do cifrotexto, mesmo que ele saiba os possíveis valores para o purotexto. De fato, nem mesmo se esses possíveis valores para o purotextos forem cuidadosamente escolhidos por ele próprio.

Apesar de simples, a Definição 3.25 é equivalente a outras formulações aparentemente mais fortes. Por exemplo, ela garante que Γ é seguro contra ataques de purotextos escolhidos (chosen-plaintext attacks). O experimento relacionado a esse ataque é semelhante ao da Defini- ção 3.24, mas com a diferença de que o adversário A pode utilizar o algoritmo de encriptação como uma “caixa-preta” para realizar uma quantidade polinomial de consultas. Em cada uma dessas consultas ele obtém um cifrotexto correspondente a um purotexto de sua escolha sem que, naturalmente, a chave secreta de encriptação seja revelada.

A Definição 3.25 também garante a Γ a propriedade de indistinguibilidade de múltiplos cifrotextos. Essa propriedade se baseia em um experimento semelhante ao da Definição 3.24, mas com a diferença de que o adversário fornece dois vetores de mensagens. Intuitivamente isso significa que o adversário tem acesso a vários cifrotextos correspondentes a purotextos escolhidos por ele e gerados sobre a mesma chave. É notável que essa equivalência só se dê para esquemas assimétricos12.

Por fim, a Definição 3.25 é também equivalente à chamada segurança semântica. Em linhas gerais, um esquema é semanticamente seguro se a probabilidade de um adversário calcular uma propriedade f de um purotexto dados o cifrotexto-desafio c e uma outra propriedade h for a

12Isso ocorre porque esquemas simétricos podem ter indistinguibilidade de cifrotextos mesmo que o método de

encriptação utilizado seja determinístico. Mas, para se ter indinstinguibilidade de múltiplos cifrotextos, é necessário que o método de encriptação seja probabilístico. Um esquema assimétrico, por outro lado, precisa de um método probabilístico de encriptação já para alcançar a indistinguibilidade de cifrotextos. Para mais sobre essa diferença, ver o Teorema 10.10 e a Afirmação 3.20 de KATZ e LINDELL (2014).

3.8. ESQUEMAS DE CRIPTOGRAFIA ASSIMÉTRICOS 58

mesma de quando o adversário não tem acesso a c. As propriedade f, h são funções polinomiais calculadas sobre o purotexto13.

3.8.1 Construção a partir de Funções Arapuca

No Capítulo 4 utilizaremos o fato de que esquemas criptográficos assimétricos podem ser construídos a partir de funções arapuca. Deixamos registrado como isso pode ser feito na definição a seguir.

Definição 3.26 (Um esquema criptográfico assimétrico a partir de uma família de funções arapuca - Construção 5.3.13 de GOLDREICH (2004)). Seja{ fα : Dα → Dα} uma família de funções e(I, S, F, F−1) os algoritmos de acordo com a Definição 3.6. Seja ainda b um predicado núcleo-duro para essa família de funções arapuca. Definimos a implementação dos algoritmos de um esquema criptográfico assimétrico Γ= (Gen, Enc, Dec) como a seguir:

1. (Gen:) A geração das chaves pública e secreta consiste em invocar I para obter um índice α para uma função fα e uma arapuca τ correspondente. O índice α é a chave pública e a

arapuca τ, a secreta. Isto é, Gen(1n) = I(1n).

2. (Enc:) Para se encriptar um bit σ , o algoritmo Enc seleciona um elemento r∈ Dα

aleatoriamente e define o cifrotexto como ( fα(r), σ ⊕ b(r)). Ou seja, Enc(α,σ) =

(F(α, r), σ⊕ b(r)), em que r = S(α).

3. (Dec:) Para decriptar um cifrotexto(y, z), Dec calcula z⊕b( fα−1(y)), em que, naturalmente, fα é invertida com o auxílio da arapuca τ. Ou seja, Dec(τ, (y, z)) = z⊕ b(F−1(τ, y)).

Podemos facilmente verificar que o esquema da Definição 3.26 atende ao requisito de corretude. De fato: D(τ, E(α, σ )) = D(τ, (F(α, S(α)), σ⊕ b(S(α))) = (σ⊕ b(S(α))) ⊕ b(F−1(τ, F(α, S(α)))) = σ⊕ b(S(α)) ⊕ b( fα−1( fα(S(α))) = σ⊕ b(S(α)) ⊕ b(S(α)) = σ  3.1

A segurança (de acordo com a Definição 3.25) do esquema da Definição 3.26 se baseia na dificuldade de se inverter uma função arapuca sem a arapuca correspondente e, além disso, na dificuldade de se calcular b(r) dado apenas fα(r). Uma prova formal de que esse esquema tem

indistinguibilidade de cifrotextos pode ser encontrada na Proposição 5.3.14 de GOLDREICH (2004).