29
Paraleliza¸ ao Eficiente para o Algoritmo Bin´ ario de Exponencia¸ ao Modular Pedro Carlos da Silva Lara abio Borges de Oliveira Renato Portugal Laborat´ orio Nacional de Computa¸ ao Cient´ ıfica Pedro Carlos da Silva Lara abio Borges de Oliveira Renato Portugal LNCC Paraleliza¸ ao Eficiente para o Algoritmo Bin´ ario de Exponencia¸ ao Modular

Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Paralelizacao Eficiente para o Algoritmo Binariode Exponenciacao Modular

Pedro Carlos da Silva LaraFabio Borges de Oliveira

Renato Portugal

Laboratorio Nacional de Computacao Cientıfica

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 2: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Indice

1 Introducao

2 Algoritmo Binario de ExponenciacaoComplexidade Computacional

3 Paralelizacao do Algoritmo BinarioAnalise de Complexidade

4 Acelerando o Algoritmo

5 Trabalhos Correlatos

6 Conclusoes

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 3: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Introducao

Neste trabalho e considerado o problema de calcular g e

mod m, onde g , e ∈ Zm.

A exponenciacao modular e utilizada em grande parte dosalgoritmos de criptografia assimetrica e testes de primalidade.

O desempenho do algoritmo de exponenciacao modular possuiforte impacto no desempenho de muitos criptossistemasassimetricos.

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 4: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Introducao

Foi utilizado o conceito de paralelismo de tarefas para aceleraro calculo de g e mod m sendo g , e ∈ Zm.

A tecnica proposta esta baseada no algoritmo binario deexponenciacao modular.

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 5: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Algoritmo Binario

Tambem referenciado com square-and-multiply o algoritmo binariode exponenciacao modular pode ser descrito recursivamente como:

g e =

1 se e = 0

(g e/2)2 se e e parg e−1g se e e ımpar

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 6: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Algoritmo Binario

Algoritmo 1: Algoritmo binario versao esquerda para direita.

Entrada: Inteiro g ∈ Zm e e =∑k

i=0 2ibi onde bi ∈ {0, 1}(representacao em base binaria).

Saıda: g e mod m.inıcio1

a← 1;2

para i = k ate 0 faca3

a← a2 mod m;4

se bi = 1 entao5

a← a · g mod m;6

retorna a;7

fim8

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 7: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Complexidade

Custo Computacional

O algoritmo anterior, no caso medio, executa ⌊log2 e⌋+ 1

elevacoes ao quadrado e ⌊log2 e⌋+12 multiplicacoes modulares.

Custo Computacional

Sendo E o custo para uma elevacao ao quadrado, M o custo parauma multiplicacao e j = ⌊log2 e⌋+ 1

T (j) = jE +j

2M

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 8: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Paralelizacao do Algoritmo Binario

e = (bkbk−1bk−2 . . . bk/2bk/2−1 . . . b2b1b0), bi ∈ {0, 1}, i ∈{0, . . . , k}

Fazendo e = 2re1 + e0 com r = k/2.

e = (

e1︷ ︸︸ ︷

bkbk−1bk−2 . . . bk/2

e0︷ ︸︸ ︷

bk/2−1 . . . b2b1b0)

e0 = (bk/2−1 . . . b1b0) e e1 = (bkbk−1 . . . bk/2)

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 9: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Paralelizacao do Algoritmo Binario

Desta formag e = g2r e1+e0 = g2r e1g e0 .

O calculo deg e = g2r e1g e0

podera ser executado em paralelo.

log2 e0 ≈log2 e

2 e log2 e1 ≈log2 e

2

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 10: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Paralelizacao do Algoritmo Binario

e = (1101010011)

Regiao Paralela 1e1 = (10011)2

Regiao Paralela 2e2 = (11010)2

a2 = g25e2a1 = g

e1

ge = a1 · a2

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 11: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Paralelizacao do Algoritmo Binario

Algoritmo 2: Paralelizacao do algoritmo binario.

Entrada: Inteiro g ∈ Zm e e =Pk

i=0 2ibi onde bi ∈ {0, 1} (representacao em basebinaria).

Saıda: g e mod m.inıcio1

e0 ← (br+1 . . . b1b0)2;2e1 ← (bk . . . br−1br )2;3inıcio4

[Regiao Paralela 1]5a0 ← g e0 mod m;6

fim7inıcio8

[Regiao Paralela 2]9

a1 ← g2r;10

a1 ← ae11 mod m;11

fim12retorna a0 · a1 mod m;13

fim14

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 12: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Generalizacao

Poderiamos fazer

e = 2rnen + 2rn−1en−1 + . . . + 2r1e1 + e0.

Com log2 ei = log2 e

n+1 e ri = i log en+1 para i ∈ {0, . . . , n}.

Logog e = g2rnen+2rn−1en−1+...+2r1e1+e0

g e = (g en)2rn(g en−1)2

rn−1. . . g e0 .

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 13: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Generalizacao (Exemplo)

Exemplo

e = (10100111111010011001101001001001)

j = ⌊log2 e⌋+ 1 = 32

e = (10100110︸ ︷︷ ︸

e3

11101001︸ ︷︷ ︸

e2

10011010︸ ︷︷ ︸

e1

01001001︸ ︷︷ ︸

e0

)

e = (10100111r311101001r210011010r101001001)

r1 = 8, r2 = 16, r3 = 24

e = 2r3e3 + 2r2e2 + 2r1e1 + e0

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 14: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Custo Computacional

Para duas linhas o custo computacional e determinado pelocalculo da expressao (g e1)2

r

sendo r = ⌊log2 e⌋+12 .

Como log2 e1 ≈log2 e

2 e fazendo j = ⌊log2 e⌋+ 1, para calcular(g e1)2

r

e necessario:

Complexidade

T2(j) = jE +

(j

4+ 1

)

M

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 15: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Custo Computacional (Caso Geral)

Neste caso a complexidade fica determinada pelo termo onderi e maximo, ou seja, (g ek )2

rn.

Como log2 ei = log2 e

n+1 , i ∈ {0, . . . , n} e rn = n log2 e

n+1 .

Complexidade

Tn(j) = jE +

(j

2n+ n − 1

)

M

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 16: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Analise de Complexidade

Comparacao

Sequencial

T (j) = jE +j

2M

Paralelo, usando n linhas paralelas

Tn(j) = jE +

(j

2n+ n − 1

)

M

j = ⌊log2 e⌋+ 1

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 17: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Analise de Complexidade

Consideracoes

Nao houve reducao no numero de elevacoes ao quadrado.

E necessario estudar o comportamento da funcao

γ(n, j) =j

2n+ n − 1

a medida que n cresce.

Esta funcao esta associada ao numero de multiplicacoesmodulares, no caso medio.

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 18: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Analise de Complexidade

Considerando j constante, a fim de minimizar o numero demultiplicacoes, considere a derivada parcial

∂γ

∂n= −

j

2n2+ 1 (1)

Igualando (1) a zero e resolvendo na variavel n, temos aseguinte relacao entre o numero de linhas paralelas n e otamanho do expoente j .

n =

j

2(2)

Como∂2γ

∂n2=

j

n3> 0

a expressao (2) e um mınimo global.

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 19: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Acelerando o Algoritmo

Algoritmo 3: Paralelizacao da multiplicacao final.

Entrada: Inteiros a1, a2, . . . , an ∈ Zp

Saıda: O produtorio∏n

i=1 ai ∈ mod p.inıcio

enquanto n 6= 1 facapara cada processador i = 1 ate n/2 faca em paralelo

Ai ← a2i−1 · a2i mod p;

n← n/2;para i = 1 ate n faca

ai ← Ai ;

retorna A1;fim

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 20: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Analise de Complexidade

Este algoritmo computa γ = ⌈log2 n⌉ multiplicacoes. Assim ocusto computacional total fica

T (j) = (j + 1)E +

(j + 1

2n+ ⌈log2 n⌉

)

M.

Neste caso, o numero de multiplicacoes modulares e

µ(j , n) =j + 1

2n+ ⌈log2 n⌉.

Desta forma, resolvendo

∂µ(j , n)

∂n= 0

n = ln 22 (j + 1).

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 21: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Resultados Experimentais

Recursos Utilizados

Sistema operacional Open SuSE Linux 8.14.2 kernel 2.6.25.18x86/64.

O hardware utilizado foram 8 nos Sun Blade x6250.

Cada no com 2 processadores Intel Xeon E5440 Quad Core3GHz e 16GB de memoria fısica interligados por umbarramento InfiniBand.

GMP (GNU Multiple Precision), aritmetica de precisaomultipla.

OpenMPI, paralelismo usando memoria compartilhada.

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 22: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Resultados Experimentais (512 bits)

50

100

150

200

250

300

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64

mic

rose

cond

s

number of processes

Execution time speed on 512 bits

2

3

4

5

6

7

8

9

10

11

12

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64

spee

dup

number of processes

Speedup on 512 bits

Figura: Tempo de execucao e speedup para ate 64 unsado 512 bitsPedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 23: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Resultados Experimentais (1024 bits)

0

200

400

600

800

1000

1200

1400

1600

1800

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64

mic

rose

cond

s

number of processes

Execution time speed on 1024 bits

0

2

4

6

8

10

12

14

16

18

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64

spee

dup

number of processes

Speedup on 1024 bits

Figura: Tempo de execucao e speedup para ate 64 unsado 1024 bitsPedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 24: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Resultados Experimentais (2048 bits)

0

2000

4000

6000

8000

10000

12000

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64

mic

rose

cond

s

number of processes

Execution time speed on 2048 bits

0

5

10

15

20

25

30

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64

spee

dup

number of processes

Speedup on 2048 bits

Figura: Tempo de execucao e speedup para ate 64 unsado 2048 bitsPedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 25: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Resultados Experimentais (Comparacao)

0

500

1000

1500

2000

2500

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64

mic

rose

cond

s

number of processes

Time speed comparison on 1024 bits

Algoritmo 2Algoritmo 3

Figura: Comparativo entre os algoritmo de paralelizacao apresentados.

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 26: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Trabalhos Correlatos

Grande parte dos autores posicionam seu trabalho emproblemas de base-fixa, e. g., Diffie-Hellman.

A versao multi-prima do RSA junto com o Teorema do RestoChines possui uma paralelizacao direta e eficiente.

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 27: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Trabalhos Futuros

Utilizar GPGPU (General-Purpose computing on GraphicsProcessing Units).

Trabalhar com algoritmos mais interessantes do ponto de vistade desempenho, e. g., Janela Deslizante.

Ajustar o ponto de particao, de forma a balancear a cargaentre os processadores.

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 28: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Conclusoes

Este trabalho descreveu uma tecnica de paralelismo para ocalculo da exponenciacao modular para o caso geral.

A paralelizacao final do algoritmo mostrou-se mais escalavel ecomo menor custo computacional que o algoritmo original.

Somente foi possıvel diminuir o numero de multiplicacoesmodulares. O numero de elevacoes ao quadrado foi mantidoinalterado.

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular

Page 29: Paralelizac¸˜ao Eficiente para o Algoritmo Bin´ario de ...borges/doc/Apresetacao_CNMAC.pdfTamb´em referenciado com square-and-multiply o algoritmo bin´ario de exponenciac¸˜ao

Ultimo Slide

Obrigado pela atencao!

Email para contato: [email protected].

Perguntas?

Pedro Carlos da Silva Lara Fabio Borges de Oliveira Renato Portugal LNCC

Paralelizacao Eficiente para o Algoritmo Binario de Exponenciacao Modular