• Nenhum resultado encontrado

3.3 Outros Tipos de Emparelhamentos

3.3.2 Conclus˜ ao

Este cap´ıtulo apresentou alguns conceitos fundamentais para a compreens˜ao da teoria dos emparelhamentos bilineares, como por exemplo, o c´alculo a fun¸c˜ao de Miller utilizando somas e duplica¸c˜oes sucessivas de pontos de curvas el´ıpticas. Apresentou os principais tipos de empa- relhamento, mostrando suas defini¸c˜oes e formas de c´alculo de cada um. Apresentou dois dos principais protocolos criptogr´aficos baseados em emparelhamentos bilineares que s˜ao o Acordo

Triplo de Chaves de Diffie-Hellman e a Criptografia Baseada em Identidades. No pr´oximo Cap´ıtulo, ser´a apresentada uma avalia¸c˜ao te´orica de trˆes emparelhamentos apresentados neste cap´ıtulo: Ate, R-Ate e Optimal Ate definidos sobre curvas Barreto-Naehrig.

Cap´ıtulo

4

An´alise de Custo do C´alculo de

Emparelhamentos Bilineares

Os n´ıveis 4 e 5 da Fig. 2.1 foram tratados em cap´ıtulos anteriores. Este cap´ıtulo dar´a ˆenfase aos n´ıveis 2 e 3, descrevendo as opera¸c˜oes aritm´eticas envolvidas no c´alculo dos emparelhamentos e seus respectivos custos. Na sequˆencia, o custo de c´alculo dos emparelhamentos Ate (Hess et al.; 2006), R-Ate (E. Lee and Park; 2008) e Optimal Ate (Vercauteren; 2010) ser´a estimado em fun¸c˜ao do n´umero de opera¸c˜oes de multiplica¸c˜ao, quadrado, adi¸c˜ao, invers˜ao e redu¸c˜ao modular no corpo finito Fp.

Na literatura, ´e poss´ıvel encontrar estimativas similares do c´alculo de emparelhamentos bilineares (Beuchat et al.; 2010; Aranha et al.; 2010; Grewal et al.; 2012; Aranha et al.; 2013; A. J. Devegili and Dahab; 2007). Por´em estas estimativas s˜ao independentes e apresentam algumas diferen¸cas, n˜ao fazendo uma compara¸c˜ao destes trˆes tipos de emparelhamentos sob as mesmas condi¸c˜oes.

Para estimar o custo de c´alculo destes emparelhamentos bilineares em rela¸c˜ao ao n´umero de opera¸c˜oes aritm´eticas sobre corpos finitos, deve-se recordar (Cap. 3) que emparelhamentos bilineares s˜ao fun¸c˜oes que recebem como argumento elementos de dois grupos aditivos G1 e G2

e os mapeiam em um grupo multiplicativo GT. Em nota¸c˜ao, um emparelhamento bilinear e ´e

uma fun¸c˜ao

e : G1XG2 → GT (4.1)

onde, G1 = E(Fp)[n], G2 ⊆ E0(Fpg)[n] e GT = F∗

pk.

Durante o c´alculo de emparelhamentos com caracter´ısticas similares as da fun¸c˜ao (4.1) s˜ao necess´arias opera¸c˜oes aritm´eticas sobre o corpo finito Fpk. Buscando maior eficiˆencia na imple-

menta¸c˜ao destas opera¸c˜oes, o padr˜ao IEEE P1363 prop˜oe a utiliza¸c˜ao de extens˜oes de corpos finitos em torre (Tower Extension) que ´e uma forma de representar elementos de Fpk como

polinˆomios de primeiro ou segundo grau e coeficientes em extens˜oes de Fp utilizando aritm´etica

sobre binˆomios irredut´ıveis (IEEE-P1363; 2008). Emparelhamentos bilineares definidos sobre curvas el´ıpticas do tipo Barreto-Naehrig s˜ao vistos como um mapeamento de estrutura seme- lhante a (4.1), com: G1 = E(Fp)[n], G2 ⊆ E0(Fp2)[n] e GT ⊆ F∗

p12. Neste caso, busca-se por

extens˜oes de corpos finitos que possam possibilitar opera¸c˜oes aritm´eticas eficientes em Fp12.

4.1

Extens˜ao em Torre de Corpos Finitos

Teorema 4.1 Seja q = pm, onde p ´e um n´umero primo e m ∈ N∗, tal que q ≡ 1 (mod 6). Seja ε ∈ Fq, tal que ε seja n˜ao-quadrado e n˜ao-cubo em Fq. Ent˜ao, os polinˆomios (x2− ε), (x3− ε)

e (x6 − ε) ∈ F

q[x] s˜ao irredut´ıveis sobre Fq (Naehrig; 2009).

Exemplo 4.1 Pelo Teorema 4.1 tem-se que pe ≡ 1 (mod 6). Ent˜ao, tomando ε ∈ F

pe sendo

n˜ao-quadrado e n˜ao-cubo em Fpe, o elemento ε pode ser usado para representar as extens˜oes do

corpo finito Fpe contidas no corpo Fpe·h. Ou seja,

Fph·e = Fpe[x]/(xh− ε)

Considerando alguns casos particulares, como e = {1, 2, 6} e h = {2, 3}. Tem-se que,

com, (e, h) = (1, 2) obtem-se Fp2 = Fp[x]/(x2 − ε);

com, (e, h) = (1, 3) obtem-se Fp3 = Fp[x]/(x3 − ε);

com, (e, h) = (2, 2) obtem-se Fp4 = Fp2[x]/(x2− ε);

com, (e, h) = (2, 3) obtem-se Fp6 = Fp2[x]/(x3− ε); (4.2)

com, (e, h) = (6, 2) obtem-se Fp12 = Fp6[x]/(x2− ε);

com, (e, h) = (6, 3) obtem-se Fp18 = Fp6[x]/(x3− ε).

Pelas equa¸c˜oes da torre (4.2), tomando β, ε, v ∈ Fpe n˜ao-quadrados e n˜ao-cubos e i, v, w ∈

Fp2 = Fp[i]/(i2− β); onde i ∈ Fp2 e β ∈ Fp

Fp6 = Fp2[v]/(v3− ε); onde v ∈ Fp6 e ε ∈ Fp2 (4.3)

Fp12 = Fp6[w]/(w2− v); onde w ∈ Fp12

Com o esquema de representa¸c˜ao em torre (4.3) pode-se representar elementos de Fp12 como

polinˆomios de grau m´aximo 1 e coeficientes em Fp6. Da mesma forma, pode-se representar

elementos de Fp6 como polinˆomios de grau m´aximo 2 e coeficientes em Fp2. E um elemento de

Fp2 ´e representado como polinˆomio de grau m´aximo 1 e coeficientes em Fp.

4.1.1

Opera¸c˜oes Aritm´eticas sobre Corpos de Extens˜ao

A seguir, ser˜ao apresentados exemplos que possibilitam demonstrar as opera¸c˜oes de adi¸c˜ao, multiplica¸c˜ao, quadrado e invers˜ao sobre os corpos de extens˜ao descritos em (4.3).

Sejam A, B e C ∈ Fp2. Ent˜ao, A = a0 + a1i, B = b0 + b1i e C = c0 + c1i, onde

a0, b0, c0, a1, b1, c1 ∈ Fp. As opera¸c˜oes sobre Fp2 s˜ao realizadas m´odulo um binˆomio irredut´ıvel

(i2− β). Ou seja, C ´e um polinˆomio de grau m´aximo um, caso a opera¸c˜ao aritm´etica envolvendo

A e B gere um polinˆomio de grau maior ou igual a dois, este ´e reduzido m´odulo (i2 − β).

Exemplo 4.2 Considerando A, B e C ∈ Fp2. Ent˜ao,

C = A + B ⇒ c0+ c1i = (a0+ a1i) + (b0+ b1i) ⇒ c0+ c1i = (a0+ b0) + (a1+ b1)i

A opera¸c˜ao de subtra¸c˜ao sobre Fp2 ´e realizada de forma similar a adi¸c˜ao.

Exemplo 4.3 Considerando A, B e C ∈ Fp2. Ent˜ao,

C = A · B ⇒ c0+ c1i = (a0+ a1i) · (b0+ b1i) ⇒ c0+ c1i = a0b0+ (a0b1+ a1b0)i + (a1b1)i2

Por´em, o polinˆomio resultante da multiplica¸c˜ao de A e B possui grau maior ou igual a dois, logo deve ser reduzido m´odulo (i2− β). Ent˜ao,

c0+ c1i = (a0b0+ βa1b1) + (a0b1+ a1b0)i (4.4)

Nos processadores atuais, o custo das opera¸c˜oes de multiplica¸c˜ao sobre um corpo finito Fp

´

apresentados no Cap. 5). Ent˜ao, uma forma de reduzir o custo de algoritmos que envolvam multiplica¸c˜oes ´e diminuir o n´umero de ocorrˆencias destas opera¸c˜oes, mesmo que para isso seja necess´ario aumentar ponderadamente a quantidade de adi¸c˜oes usando, por exemplo, o m´etodo Karatsuba de multiplica¸c˜ao. Uma forma de efetuar a opera¸c˜ao A · B utilizando o m´etodo Karatsuba de multiplica¸c˜ao ´e descrito no Algoritmo 4.1.

Algoritmo 4.1 Multiplica¸c˜ao Karatsuba

1: function MultKaratsuba 2: Entrada: A, B ∈ Fp2. 3: Sa´ıda: C ∈ Fp 4: t0 ←− a0b0 5: t1 ←− a1b1 6: t2 ←− (a0 + a1) 7: t3 ←− (b0+ b1) 8: c1 ←− t2t3 − t0− t1 9: t1 ←− βt1 10: c0 ←− t0+ t1 11: c0 ←− mod(c0) 12: c1 ←− mod(c1) 13: Retorna C = c0+ c1 14: end function

Repare que, o custo de c´alculo da multiplica¸c˜ao sobre Fp2 descrito na Equa¸c˜ao (4.4) ´e de:

quatro multiplica¸c˜oes em Fp, quatro adi¸c˜oes em Fp e uma multiplica¸c˜ao por β. J´a o custo

da multiplica¸c˜ao sobre Fp2 utilizando o m´etodo Karatsuba ´e de: trˆes multiplica¸c˜oes em Fp,

oito adi¸c˜oes em Fp e uma multiplica¸c˜ao por β. Mesmo o n´umero de adi¸c˜oes dobrando, a

utiliza¸c˜ao dessa t´ecnica ainda ´e vantajosa nos processadores onde uma multiplica¸c˜ao sobre Fp

tenha custo inferior ao de quatro adi¸c˜oes sobre este mesmo corpo. Uma an´alise mais detalhada desta discuss˜ao ser´a apresentada no Cap´ıtulo 5.

Opera¸c˜oes como as adi¸c˜oes (ou subtra¸c˜oes) das linhas oito e dez do Algoritmo 4.1 s˜ao deno- minadas opera¸c˜oes de dupla precis˜ao sobre Fp, pois seus operandos possuem tamanho at´e duas

vezes maior que dlog2pe bits. Estes operandos tˆem tamanho at´e 2dlog2pe bits pois s˜ao resul-

tados de opera¸c˜oes anteriores, neste caso das multiplica¸c˜oes das linhas quatro e cinco, que s˜ao armazenadas temporariamente em vetores de mem´oria, sem ser reduzidos. O fato de armazenar temporariamente estes resultados permite que as opera¸c˜oes de redu¸c˜ao modular sejam poster- gadas para os ´ultimos passos do algoritmo, neste caso para as linhas 11 e 12. Pela parametriza¸c˜ao da subfam´ılia das curvas Barreto-Naehrig (Pereira; 2011), o n´umero primo p ´e sempre dois bits menor que m´ultiplos de oito bits (tamanhos convencionais das palavras dos processadores). Este

fato permite que sejam efetuadas opera¸c˜oes de soma e subtra¸c˜ao envolvendo os inteiros que es- t˜ao armazenados em mem´oria tamb´em sem a necessidade de efetuar redu¸c˜oes modulares, por exemplo, na linha oito do Algoritmo 4.1 (Beuchat et al.; 2010). Nas opera¸c˜oes de quadrado e invers˜ao, tamb´em h´a ocorrˆencia de opera¸c˜oes de dupla precis˜ao sobre Fp, pelo mesmo fato

descrito anteriormente.

Exemplo 4.4 Considerando A e C ∈ Fp2. Ent˜ao,

C = A · A ⇒ c0+ c1i = (a0+ a1i)2 ⇒ c0+ c1i = (a20+ βa 2

1) + 2a0a1i (4.5)

A opera¸c˜ao de quadrado sobre Fp2 ´e efetuada de forma similar `a multiplica¸c˜ao sobre este

mesmo corpo. Por´em, n˜ao ´e utilizada a t´ecnica de multiplica¸c˜ao de Karatsuba. As redu¸c˜oes modulares nesta opera¸c˜ao tamb´em podem ser postergadas e, com isso, s˜ao efetuadas apenas duas redu¸c˜oes.

Exemplo 4.5 Considerando A e C ∈ Fp2. Ent˜ao, A = a0 + a1i. Fazendo uma analogia da

representa¸c˜ao de A com a representa¸c˜ao de um n´umero complexo, tem-se que o conjugado de A ´e A = a0 − a1i. Sobre os complexos, A · A = a20− a21i2.Voltando para Fp2, A · A = a20 − βa21

ent˜ao, A−1 = (a0 − a1i)/(a20 − βa21).

Os Exemplos 4.2, 4.3, 4.4 e 4.5 apresentam como efetuar opera¸c˜oes de adi¸c˜ao, multiplica¸c˜ao, quadrado e inverso multiplicativo sobre o corpo Fp2. Esta mesma ideia pode ser estendida para

as outras extens˜oes de Fp descritas nas Equa¸c˜oes 4.3.

4.1.2

Custos das Opera¸c˜oes sobre a Torre

Considere as nota¸c˜oes (a, m, s, r, i) e (˜a, ˜m, ˜s, ˜s, ˜i) denotando as opera¸c˜oes de adi¸c˜ao, multiplica¸c˜ao, quadrado, redu¸c˜ao modular e invers˜ao em Fp e Fp2, respectivamente. Sejam (mu,

su) e ( ˜mu, ˜su) as opera¸c˜oes de multiplica¸c˜ao sem redu¸c˜ao e quadrado sem redu¸c˜ao sobre Fp e

Fp2. Sejam mβ, m e mv multiplica¸c˜oes pelas constantes β,  e v. Estas opera¸c˜oes possuem

custo inferior ao de uma multiplica¸c˜ao sobre Fp, este custo ser´a discutido com mais detalhes no

decorrer deste cap´ıtulo.

A Tabela 4.1 descreve o custo das opera¸c˜oes de adi¸c˜ao, multiplica¸c˜ao, quadrado e invers˜ao sobre Fp2, Fp6 e Fp12, respectivamente.

Os resultados apresentados na Tabela 4.1 diferem de outras contagens presentes na literatura (Aranha et al.; 2010), (Aranha et al.; 2013), (Grewal et al.; 2012) pelo fato destes serem obtidos

Tabela 4.1: Custo das opera¸c˜oes aritm´eticas sobre extens˜oes em torre Fp2 Opera¸c˜ao Custo Adi¸c˜ao/Sub. a = 2a˜ Multiplica¸c˜ao m = 3m˜ u+ 8a + 2r + mβ Quadrado s = m˜ u + 2su+ 4a + 2r + mβ Invers˜ao ˜i = 2mu+ 2su+ 3a + i + 2r + mβ Fp6 Opera¸c˜ao Custo Adi¸c˜ao/Sub. 3˜a Multiplica¸c˜ao 6 ˜mu+ 24˜a + 3˜r + 2m Quadrado 3 ˜mu+ 3 ˜su+ 12˜a + 3˜r + 2m Invers˜ao 10 ˜mu+ 3 ˜su+ 8˜a + ˜i + 6˜r + 4m Fp12 Opera¸c˜ao Custo Adi¸c˜ao/Sub. 6˜a Multiplica¸c˜ao 18 ˜mu+ 96˜a + 6˜r + 6m+ mv Quadrado 12 ˜mu+ 6 ˜su+ 60˜a + 6˜r + 4m+ mv Invers˜ao 28 ˜mu+ 9 ˜su+ 89˜a + 16˜r + ˜i + 12m+ mv

com simples opera¸c˜oes de soma e multiplica¸c˜ao de polinˆomios (binˆomios ou trinˆomios), como apresentado nos Exemplos 4.2, 4.3, 4.4 e 4.5. Tamb´em n˜ao foi adotado de antem˜ao nenhum valor para as constantes especiais β,  e v (Pereira and Barreto; 2010). Elas est˜ao explicitadas para que possam embasar contagens onde os valores dessas constantes possa variar, por exemplo, para outros tipos de curvas Barreto-Naehrig. Na literatura existem trabalhos que tamb´em se baseiam em somas e multiplica¸c˜oes de polinˆomios, similares a nossa contagem (Beuchat et al.; 2010); por´em ainda existem diferen¸cas nos resultados por considerarmos as opera¸c˜oes de adi¸c˜ao de precis˜ao dupla sobre o corpo base.