Content uploaded by Diego F. Aranha
Author content
All content in this area was uploaded by Diego F. Aranha on Feb 23, 2020
Content may be subject to copyright.
Computac¸ ˜
ao sobre dados cifrados em GPGPUs
Pedro Geraldo M. R. Alves , Diego F. Aranha
Instituto de Computac¸˜
ao – Universidade Estadual de Campinas (Unicamp)
Cidade Universit´
aria Zeferino Vaz – CEP 13083-970 – Campinas – SP – Brazil
{pedro.alves,dfaranha}@ic.unicamp.br
Abstract. Under the dominant cloud computing paradigm, employing encryption for
data storage and transport may not be enough. Security guarantees should also be ex-
tended to data processing. Homomorphic encryption schemes are natural candidates for
computation over encrypted data since they are able to satisfy the requirements imposed
by the cloud environment. This work presents CUYASHE as a GPGPU implementa-
tion of the leveled fully homomorphic scheme YASHE. It employs CUDA, the Chinese
Remainder Theorem and the Fast Fourier Transform to obtain significant performance
improvements. In particular, there was a speedup between 6and 35 times for homo-
morphic multiplication.
Resumo. No contexto da computac¸ ˜
ao na nuvem, a aplicac¸ ˜
ao de m´
etodos criptogr´
aficos
exclusivamente no armazenamento e transporte dos dados n˜
ao ´
e suficiente, uma vez que
precisam ser revelados ao servic¸o para ocorrer processamento. Esquemas de cifrac¸ ˜
ao
homom´
orfica s˜
ao candidatos naturais para computac¸˜
ao sobre dados cifrados, o que os
torna capazes de satisfazer esse novo requisito de seguranc¸a. Este trabalho apresenta a
CU YASHE, uma implementac¸ ˜
ao em GPGPUs do criptossistema homom´
orfico YASHE.
ACU YASHE emprega CUDA, o Teorema Chinˆ
es do Resto e a Transformada R´
apida de
Fourier para obter ganho de desempenho sobre o estado da arte. Em especial, destaca-
se uma reduc¸˜
ao de 6at´
e35 vezes no tempo de execuc¸ ˜
ao da operac¸ ˜
ao de multiplicac¸ ˜
ao.
1. Introduc¸ ˜
ao
A computac¸˜
ao em nuvem tem sido respons´
avel por uma profunda mudanc¸a na comuni-
dade de processamento distribu´
ıdo. A possibilidade de terceirizar a instalac¸ ˜
ao, manutenc¸˜
ao e a
escalabilidade de servidores, somada a prec¸os competitivos, faz com que esses servic¸os se tornem
altamente atraentes.
Diversos esquemas criptogr´
aficos s˜
ao utilizados como padr˜
ao para o armazenamento e
transferˆ
encia de dados. Contudo, no caso de servic¸os na nuvem existe a possibilidade de se li-
dar com um advers´
ario que n˜
ao apenas tenha acesso aos dados como tamb´
em ao hardware que
realiza seu processamento. Desse modo, ´
e necess´
ario que se estabelec¸a uma trajet ´
oria completa-
mente sigilosa para os dados durante o transporte, armazenamento e processamento para que seja
preservada a privacidade.
A criptografia homom´
orfica se mostra promissora para satisfazer esse novo requisito de
seguranc¸a. Os esquemas dessa classe permitem que o processamento seja feito sobre criptogramas
mesmo sem o conhecimento das chaves de cifrac¸˜
ao ou decifrac¸˜
ao. Assim, n˜
ao h´
a raz˜
ao para que
dados sejam revelados no momento do processamento.
O objetivo deste trabalho consistiu em obter ganho de desempenho no estado da arte
do criptossistema homom´
orfico em n´
ıvel YASHE [Bos et al. 2013]. Para isso, foram aplica-
das t´
ecnicas de computac¸˜
ao paralela em GPGPUs por meio da arquitetura CUDA; utilizou-se
o Teorema Chinˆ
es do Resto para simplificar a manipulac¸˜
ao de inteiros grandes; e a Transfor-
mada R´
apida de Fourier foi aplicada para reduzir a complexidade computacional das operac¸˜
oes
de multiplicac¸˜
ao polinomial utilizadas por este criptossistema.
2. YASHE - Yet Another Somewhat Homomorphic Encryption
A classe de criptossistemas homom´
orficos ´
e caracterizada por esquemas que permitem a
aplicac¸˜
ao de operac¸ ˜
oes de adic¸˜
ao ou multiplicac¸˜
ao sobre seus criptogramas. O resultado dessas
operac¸ ˜
oes gera um novo criptograma que, quando decifrado, se apresenta de forma equivalente ao
que seria esperado em uma operac¸˜
ao sobre texto claro.
YASHE ´
e um criptossistema completamente homom´
orfico em n´
ıvel baseado em reticu-
lados ideais [Bos et al. 2013]. Sua classificac¸ ˜
ao significa que suporta uma quantidade limitada
de operac¸ ˜
oes de adic¸˜
ao e multiplicac¸˜
ao. Al´
em disso, ´
e um esquema probabil´
ıstico e tem sua
seguranc¸a baseada nos problemas RLWE eDSPR. Ainda, o YASHE atinge o padr˜
ao de seguranc¸a
IND-CPA, o que significa que seus criptogramas s˜
ao resistentes a um advers´
ario que seja capaz de
cifrar texto claro.
3. Metodologia
Como forma de reduzir o tempo de execuc¸˜
ao das operac¸ ˜
oes do YASHE, este trabalho se
focou em paralelizar a implementac¸˜
ao das operac¸ ˜
oes polinomiais nas quais o esquema se baseia.
Isso foi feito por meio da plataforma CUDA, escolhida principalmente devido a seu excepcional
desempenho na aplicac¸˜
ao de GPGPUs na resoluc¸˜
ao de problemas baseados em dados.
O Teorema Chinˆ
es do Resto, ou CRT, foi utilizado como ferramenta para simplificar a
manipulac¸˜
ao dos coeficientes polinomiais [Ding et al. 1996]. Sua func¸˜
ao ´
e mapear um polinˆ
omio
com coeficientes inteiros arbitrariamente grandes em diversos polinˆ
omios com coeficientes intei-
ros arbitrariamente pequenos chamados polinˆ
omios residuais, ou simplesmente res´
ıduos. Essa
substituic¸˜
ao permite que os coeficientes sejam manipulados utilizando uma aritm´
etica mais sim-
ples e suportada nativamente pela arquitetura.
As operac¸ ˜
oes do YASHE dependem de adic¸ ˜
oes e multiplicac¸ ˜
oes polinomiais. Enquanto
aquelas tem complexidade linear e s˜
ao trivialmente paraleliz´
aveis, estas s˜
ao consideravelmente
mais complexas e requerem uma estrat´
egia para a reduc¸˜
ao de sua complexidade computacional.
Dessa forma, este trabalho estudou a aplicac¸ ˜
ao da Transformada R´
apida de Fourier, ou FFT, para
a implementac¸˜
ao dessa operac¸˜
ao [Cooley and Tukey 1965]. Em seu dom´
ınio, a multiplicac¸˜
ao po-
linomial ´
e aplicada como uma simples multiplicac¸˜
ao coeficiente-a-coeficiente. Assim, sua com-
plexidade torna-se Θ(nlog n)com o custo da aplicac¸˜
ao da transformada.
4. Implementac¸ ˜
ao
A biblioteca CUYASHE foi desenvolvida durante a execuc¸˜
ao deste trabalho. A
implementac¸˜
ao consolida a metodologia descrita e permite a avaliac¸˜
ao dos ganhos com a sua
aplicac¸˜
ao. Seu c ´
odigo est´
a dispon´
ıvel ao p´
ublico sob uma licenc¸a GNU GPLv3 [Alves and Ara-
nha 2016]. Apesar do foco na execuc¸ ˜
ao em GPUs, algumas operac¸ ˜
oes sobre inteiros grandes s˜
ao
realizadas pela CPU, como por exemplo a formatac¸ ˜
ao e a c´
opia dos operandos entre as mem´
orias.
Essas operac¸ ˜
oes s˜
ao realizadas por meio da biblioteca NTL [Shoup 2003].
A aplicac¸˜
ao do CRT nos operandos da CUYASHE ´
e feita completamente na GPU. Dessa
forma, uma vez que os res´
ıduos ainda n˜
ao foram calculados, o suporte a aritm´
etica de inteiros
grandes torna-se necess´
ario. A biblioteca RELIC [Aranha and Gouvˆ
ea 2016] foi utilizada como
base e as rotinas requeridas (adic¸˜
ao, subtrac¸˜
ao, multiplicac¸˜
ao, divis˜
ao e resto modular) foram
adaptadas para CUDA.
A implementac¸˜
ao da FFT foi realizada sobre a biblioteca CUFFT [NVIDIA 2015]. Para
isso, precisou-se aplicar operac¸ ˜
oes de convers˜
ao dos coeficientes entre o conjunto dos inteiros e
o corpo dos complexos. Al´
em disso, aritm´
etica de ponto-flutuante utilizada por esta biblioteca
gerou erros de precis˜
ao que precisaram ser mitigados para o funcionamento correto do algoritmo.
Para maximizar os ganhos com o uso das estrat´
egias descritas, a CUYASHE trabalha com
res´
ıduos dentro do dom´
ınio da transformada. Ou seja, aplica-se o CRT seguido da FFT em
cada um dos polinˆ
omios residuais. Assim, as operac¸ ˜
oes polinomiais de adic¸˜
ao e multiplicac¸˜
ao
tem aplicac¸˜
ao coeficiente-a-coeficiente, o que implica em complexidade linear. Al´
em disso, os
res´
ıduos s˜
ao mantidos exclusivamente na mem´
oria da GPU, dispensando os custos envolvidos
com a c´
opia de dados entre as mem´
orias.
5. Resultados
Com o intuito de avaliar a qualidade da implementac¸˜
ao e das estrat´
egias propostas, as
operac¸ ˜
oes da CUYASHE foram comparadas com trˆ
es trabalhos no estado da arte: [Bos et al.
2013], BLLN; [Lepoint and Naehrig 2014], LN; [Dowlin et al. 2015], SEAL. Foram utilizados os
parˆ
ametros de configurac¸˜
ao do YASHE propostos por BLLN [Bos et al. 2013] e LN [Lepoint and
Naehrig 2014] como padr˜
ao para as comparac¸ ˜
oes de tempo de execuc¸˜
ao 1. Os autores argumentam
que esses parˆ
ametros oferecem seguranc¸a de 80 bits.
Para as implementac¸ ˜
oes dispon´
ıveis `
a comunidade, LN e SE AL, realizou-se medic¸ ˜
oes
dos tempos de execuc¸˜
ao das principais operac¸ ˜
oes do YASHE: cifrac¸ ˜
ao, decifrac¸˜
ao, adic¸˜
ao e
multiplicac¸˜
ao homom´
orfica. Os resultados apresentados s˜
ao os tempos m´
edios calculados a partir
de 100 execuc¸ ˜
oes isoladas de cada operac¸ ˜
ao. A m´
aquina utilizada possui uma CPU Intel Xeon E5-
2630 @ 2,6GHz com uma GPU NVIDIA GeForce GTX TITAN Black @ 0,98 GHz. Al´
em disso,
utiliza-se a vers˜
ao 7.5 do kit de desenvolvimento CUDA e as vers˜
oes 4.8.4 dos compiladores gcc
eg++. Por fim, empregou-se a biblioteca NTL 9.1.0 compilada sobre a GMP 6.0.0. A comparac¸˜
ao
com a BLLN ´
e feita por meio dos resultados oferecidos pelos autores, uma vez que seu c´
odigo
n˜
ao foi disponibilizado.
Tabela 1. Comparac¸ ˜
ao entre a CUYASHE e as implementac¸ ˜
oes LN, SEAL e BLLN. Os
valores para as trˆ
es primeiras foram medidos na mesma m´
aquina, enquanto a ´ultima
teve seus tempos fornecidos pelos autores. Os tempos para multiplicac¸ ˜
ao homom ´
orfica
incluem o custo de relinearizac¸ ˜
ao.
Operac¸ ˜
ao CU YASHE(ms) LN(ms) SEAL(ms) BLLN(ms)
Cifrac¸˜
ao 1,85 15,4 34,93 27
Decifrac¸˜
ao 2,01 13,71 34,1 5
Adic¸˜
ao Homom´
orfica 0,02 0,59 0,18 0,02
Multiplicac¸˜
ao Homom´
orfica 5,49 31,07 194,94 31
Como pode ser visto na Tabela 1, as operac¸ ˜
oes de cifrac¸˜
ao, decifrac¸˜
ao e multiplicac¸˜
ao
homom´
orfica da CUYASHE apresentaram tempos 8,7e9vezes menores do que o trabalho LN
e15,6e2,5vezes menores do que o BLLN, respectivamente. Sobre a SEAL os ganhos foram
ainda mais expressivos, atingindo 19,17 e35 vezes, respectivamente.
A principal motivac¸˜
ao para a utilizac¸˜
ao de um criptossistema homom´
orfico ´
e poder operar
sobre criptogramas. Dessa forma, apesar de ganhos na cifrac¸ ˜
ao e decifrac¸˜
ao serem importantes,
operac¸ ˜
oes homom´
orficas s˜
ao o alvo principal para otimizac¸ ˜
oes. Assim, os expressivos ganhos
1R=Z[X]/x4096 + 1,q= 2127 −1,w= 232,t= 210 .
de velocidade apresentados sobre o estado da arte tem grande importˆ
ancia do ponto de vista de
viabilizar aplicac¸ ˜
oes pr´
aticas.
Por fim, este documento apresenta aperfeic¸oamentos na implementac¸˜
ao em relac¸˜
ao a re-
sultados preliminares [Alves and Aranha 2015]. A revis˜
ao na m´
aquina de estados da CUYASHE
permitiu a implementac¸˜
ao da aritm´
etica com operandos n˜
ao apenas mapeados em res´
ıduos pelo
CRT como tamb´
em interpolados para o dom´
ınio da FFT. Assim, a complexidade computacional
dessas operac¸ ˜
oes se tornou linear e evitou-se o custo de aplicac¸˜
ao dessa transformada. Al´
em disso,
toda a aritm´
etica passou a ser computada na GPU. Restando `
aCPU apenas o gerenciamento das
operac¸ ˜
oes.
6. Conclus˜
ao
Este trabalho investigou estrat´
egias para a implementac¸˜
ao do criptossistema YASHE em
GPGPUs por meio da plataforma CUDA. Com os resultados obtidos a biblioteca CUYASHE foi
desenvolvida, otimizada e disponibilizada `
a comunidade [Alves and Aranha 2016].
Aplicou-se o CRT para simplificar a manipulac¸˜
ao de inteiros grandes na GPU e a FFT
para a reduc¸˜
ao da complexidade de operac¸ ˜
oes de multiplicac¸˜
ao polinomial, nas quais o YASHE
´
e altamente dependente.
A comparac¸˜
ao com outros trabalhos da literatura demonstrou uma reduc¸˜
ao expressiva nos
tempos de execuc¸˜
ao desse criptossistema, o que sugere que a metodologia proposta foi adequada
ao contexto. Como trabalho futuro, espera-se a aplicac¸ ˜
ao da CUYASHE em uma implementac¸ ˜
ao
de um protocolo que preserve privacidade.
Referˆ
encias
[Alves and Aranha 2015] Alves, P. and Aranha, D. (2015). cuYASHE: Computac¸ ˜
ao sobre dados
cifrados em GPGPUs. In XV Simp´
osio Brasileiro de Seguranc¸a da Informac¸ ˜
ao e Sistemas
Computacionais (SBSeg 2015), pages 55–60.
[Alves and Aranha 2016] Alves, P. and Aranha, D. (2016). cuYASHE. https://github.com/cuyashe-
library/cuyashe. Acessado pela ´
ultima vez: 19/05/2016.
[Aranha and Gouvˆ
ea 2016] Aranha, D. F. and Gouvˆ
ea, C. P. L. (2016). RELIC is an Efficient LIbrary
for Cryptography. https://github.com/relic-toolkit/relic.
[Bos et al. 2013] Bos, J., Lauter, K., Loftus, J., and Naehrig, M. (2013). Improved Security for a
Ring-Based Fully Homomorphic Encryption Scheme. Springer Berlin Heidelberg.
[Cooley and Tukey 1965] Cooley, J. W. and Tukey, J. W. (1965). An algorithm for the machine
calculation of complex Fourier series. Mathematics of Computation, 19:297–301.
[Ding et al. 1996] Ding, C., Pei, D., and Salomaa, A. (1996). Chinese Remainder Theorem: Appli-
cations in Computing, Coding, Cryptography. World Scientific Publishing Co., Inc.
[Dowlin et al. 2015] Dowlin, N., Gilad-Bachrach, R., Laine, K., Lauter, K., Naehrig, M., and Wern-
sing, J. (2015). Manual for Using Homomorphic Encryption for Bioinformatics.
[Lepoint and Naehrig 2014] Lepoint, T. and Naehrig, M. (2014). A Comparison of the Homo-
morphic Encryption Schemes FV and YASHE. Springer International Publishing.
[NVIDIA 2015] NVIDIA (2015). CUDA Toolkit Documentation.
http://docs.nvidia.com/cuda/cufft/. Acessado pela ´
ultima vez: 12/08/2015.
[Shoup 2003] Shoup, V. (2003). NTL: A library for doing number theory. http://www.shoup.
net/ntl. Acessado pela ´
ultima vez: 05/03/2016.