• No se han encontrado resultados

Recodificaci´on del escalar k para la versi´on paralela con Bisecci´on y Doblado

5. Formulaciones paralelas de la multiplicaci´ on escalar en curvas binarias

5.1.1. Recodificaci´on del escalar k para la versi´on paralela con Bisecci´on y Doblado

Para poder obtener una k expresada en su expansi´on binaria y que tenga potencias de 2 positivas y negativas, b´asicamente lo que se hace es que se reemplaza el factor 2t−1 por2I, donde:

I =IN DEX = dt 1

t es el n´umero de bits del escalar k.

d es un n´umero en el rango (1,m). Por ejemplo sid= 1, entonces

I = t

d−1 = t

1 −1 = (t−1)

por lo que al multiplicar por el factor2I = 2(t−1), se estar´ıa realizando la multiplicaci´on ´unicamente

con bisecciones, ya que k′ quedar´ıa representada con potencias negativas de 2.

k′ =k′ t−120+k ′ t−22 −1+...+k′ 12 −(t−2)+k′ 02 −(t−1)

Ahora, suponiendo que d= 2, entonces

I = dt 1 = 2t 1

En este caso se tendr´ıa unak′

codificada con la mitad de los bits en potencias positivas y la otra mitad con potencias negativas.

k′ =k′ t−12I −1+k′ t−22I −2+...+k I+121+kI20+...+k ′ 12 −(I−1)+k′ 02 −(I)

Suponiendo que t tiene m bits y para el caso que d =m, se tendr´ıa que:

I = dt 1 = mm 1 = 0

Al realizar la multiplicaci´on por el factor2I = 20 = 1, ´unicamente se estar´ıan realizando doblados,

52 5.1. Paralelizaci´on h´ıbrida con doblado de punto y bisecci´on de puntos

5.1.2

Multiplicaci´on usando Bisecci´on de punto y Doblado de punto

El algoritmo de multiplicaci´on 5.1 utiliza simult´aneamente la Bisecci´on y Doblado de punto.

Algoritmo 5.1Multiplicaci´on wNAF utilizando Bisecci´on y Doblado de punto.

Require: Ancho w,IN DEX =t/d1, N AFw(2IN DEXk m´odn), P ∈E(F2m)

Ensure: kP. 1: Obtener la representaci´on wN AF(k′) = Pt−1 i=I−1k ′ i2i + PI i=0k ′ i2−i 2: Inicializar Qi ← O para i∈ {1,3,5,· · · ,2w−1−1} 3: if k′ t= 1 then 4: Q1 ←2P 5: end if 6: for i=t−1 to IN DEX+ 1 do 7: if k′ i >0 then 8: Q k′i ←Qk ′ i +P 9: end if 10: if k′ i <0 then 11: Q −ki′ ←Q−k ′ i−P 12: end if 13: PD ←2PD 14: end for 15: for i=IN DEX to 0do 16: if k′ i >0 then 17: Q k′i ←Qk ′ i +P 18: end if 19: if k′ i <0 then 20: Q −ki′ ←Q−k ′ i−P 21: end if 22: P ←P/2 23: end for 24: Q←P i∈IniQi 25: Regresar (Q)

En el algoritmo 5.1, las bisecciones P P/2 son realizadas en el punto P y se utilizan co- ordenadas mixtas para efectuar las sumas de punto. Para el caso del m´odulo que utiliza doblados

PD ← 2PD, debe notarse que se utiliza un acumulador distinto PD, y que los doblados se hacen

en coordenadas afines, de tal forma que las sumas que se realizan de PD con los acumuladoresQk

i

5. Formulaciones paralelas de la multiplicaci´on escalar en curvas binarias 53 se debe obtener P y se realiza la respectiva suma con el acumulador Q−ki′.

Este algoritmo realiza t/d bisecciones de punto, un promedio de t/(w+ 1)2w−2 sumas en

coordenadas mixtas (L´opez-Dahab), 2w−2 sumas del postc´omputo y finalmente 2w−11 sumas de

la sumatoria final.

En este algoritmo 5.1 los bucles que procesan las multiplicaciones parciales utilizando bisecciones y doblados de punto son independientes, por lo que podr´ıan generarse dos subprocesos que se ejecuten de manera paralela. En la suma final se deben integrar los resultados parciales de los dos subprocesos para obtener el resultado final.

Figura 5.1: Multiplicaci´on escalar utilizando Bisecci´on y Doblado de punto.

Es importante que la carga de trabajo para cada uno de los subprocesos se encuentre bien bal- anceada y que los dos hilos terminen aproximadamente al mismo tiempo para que se obtenga el menor tiempo de ejecuci´on posible. De no ser as´ı, uno de los procesos tendr´ıa que estar inactivo esperando a que el otro termine para finalmente conjuntar los resultados.

54 5.1. Paralelizaci´on h´ıbrida con doblado de punto y bisecci´on de puntos

5.1.2.1. Ley de Amdahl

Como se vio en el cap´ıtulo anterior, la ley de Amdahl establece que la aceleraci´on est´a determinada por la fracci´on del c´odigo que es mejorada y por que tanto es acelerada dicha fracci´on.

A = (1Fm)+(1 Fm Am)

Para nuestro caso los bucles que calculan la multiplicaci´on utilizan un 80 % del tiempo total de ejecuci´on del programa, y dado que se ejecutan dos hilos, se logra hacer que este algoritmo se ejecute en aproximadamente la mitad de tiempo, por lo que se tiene que:

Am = 2

Fm = 0.7

A = 1 (1−0.7)+(0.7

2 )

Es decir, se ha mejorado la velocidad de ejecuci´on del programa en un factor de 1.53

5.1.2.2. Ley de Gustafson

La ley de Gustafson tambi´en determina el l´ımite en la aceleraci´on que puede obtenerse cuando se paraleliza un programa y plantea que un programa suficientemente grande puede ser paralelizado de manera eficiente y obtener una aceleraci´on lineal con el n´umero de procesadores o n´ucleos. Pero para nuestro caso aunque se contara con un mayor n´umero de nucleos, como estamos en el caso de punto P desconocido, se deber´ıa de poder particionar el escalark en un mayor n´umero de subpartes para poder disponer de m´as n´ucleos.

Para el caso de punto desconocido, s´ı existe dependencia en los ciclos del algoritmo debido a que se debe doblar o bisectar incondicionalmente el punto P para poder calcular el siguiente ciclo.

Para el caso de punto P conocido, se podr´ıa tener el caso de contar con una tabla donde se tienen precalculados los m valores resultantes de los doblados o de las bisecciones figura 5.2.

En este caso solo se tendr´ıa que ir acumulando el resultado de las sumas de los puntos para los cuales el bit ki del escalark este encendido.

5. Formulaciones paralelas de la multiplicaci´on escalar en curvas binarias 55

Figura 5.2: Doblado y suma para punto conocido.

Como puede verse en la figura 5.3, para el caso de puntoP conocido aplican otras t´ecnicas de paralelizaci´on como el truco de Shamir y utilizar tambi´en biseccion y suma.

Figura 5.3: Particionamiento para punto conocido.

Documento similar