Conference PaperPDF Available

Computação sobre dados cifrados em GPGPUs

Authors:

Abstract

No contexto da computação na nuvem, a aplicação de métodos criptográficos exclusivamente no armazenamento e transporte dos dados não é suficiente, uma vez que precisam ser revelados ao serviço para ocorrer processamento. Esquemas de cifração homomórfica são candidatos naturais para computação sobre dados cifrados, o que os torna capazes de satisfazer esse novo requisito de segurança. Este trabalho apresenta a CUYASHE, uma implementação em GPGPUs do criptossistema homomórfico YASHE. A CUYASHE emprega CUDA, o Teorema Chinês do Resto e a Transformada Rápida de Fourier para obter ganho de desempenho sobre o estado da arte. Em especial, destaca-se uma redução de 6 até 35 vezes no tempo de execução da operação de multiplicação.
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.
ResearchGate has not been able to resolve any citations for this publication.
Conference Paper
Full-text available
Em tempos de computação em nuvem, há interesse em se utilizar criptossistemas que não apenas garantam a segurança dos dados no transporte e armazenamento, mas também durante o processamento, de forma a preservar a privacidade dos contratantes e detentores dos dados. Esquemas de cifração homomórfica são candidatos promissores para computação sobre dados cifrados, satisfazendo novos requisitos de segurança. Neste trabalho, é apresentada CUYASHE, uma implementação em GPGPUs do criptossistema completamente homomórfico em nível, YASHE. A implementação emprega a plataforma CUDA, o Teorema Chinês do Resto e a Transformada de Fourier para obter ganhos significativos de desempenho. Quando comparada com a implementação estado da arte em CPUs, foram obtidos ganhos de 20% de velocidade na adição e 58% na multiplicação homomórfica, operações críticas do ponto de vista de desempenho para se avaliar qualquer função sobre dados cifrados. Isso demonstra que GPGPUs são uma tecnologia adequada para se implementar serviços de computação em nuvem que preservam a privacidade.
Conference Paper
Full-text available
In 1996, Hoffstein, Pipher and Silverman introduced an efficient lattice based encryption scheme dubbed NTRUEncrypt. Unfortunately, this scheme lacks a proof of security. However, in 2011, Stehlé and Steinfeld showed how to modify NTRUEncrypt to reduce security to standard problems in ideal lattices. In 2012, López-Alt, Tromer and Vaikuntanathan proposed a fully homomorphic scheme based on this modified system. However, to allow homomorphic operations and prove security, a non-standard assumption is required. In this paper, we show how to remove this non-standard assumption via techniques introduced by Brakerski and construct a new fully homomorphic encryption scheme from the Stehlé and Steinfeld version based on standard lattice assumptions and a circular security assumption. The scheme is scale-invariant and therefore avoids modulus switching and the size of ciphertexts is one ring element. Moreover, we present a practical variant of our scheme, which is secure under stronger assumptions, along with parameter recommendations and promising implementation results. Finally, we present an approach for encrypting larger input sizes by extending ciphertexts to several ring elements via the CRT on the message space.
Conference Paper
We conduct a theoretical and practical comparison of two Ring-LWE-based, scale-invariant, leveled homomorphic encryption schemes – Fan and Vercauteren’s adaptation of BGV and the YASHE scheme proposed by Bos, Lauter, Loftus and Naehrig. In particular, we explain how to choose parameters to ensure correctness and security against lattice attacks. Our parameter selection improves the approach of van de Pol and Smart to choose parameters for schemes based on the Ring-LWE problem by using the BKZ-2.0 simulation algorithm. We implemented both encryption schemes in C++, using the arithmetic library FLINT, and compared them in practice to assess their respective strengths and weaknesses. In particular, we performed a homomorphic evaluation of the lightweight block cipher SIMON. Combining block ciphers with homomorphic encryption allows to solve the gargantuan ciphertext expansion in cloud applications.
Article
An efficient method for the calculation of the interactions of a 2' factorial ex- periment was introduced by Yates and is widely known by his name. The generaliza- tion to 3' was given by Box et al. (1). Good (2) generalized these methods and gave elegant algorithms for which one class of applications is the calculation of Fourier series. In their full generality, Good's methods are applicable to certain problems in which one must multiply an N-vector by an N X N matrix which can be factored into m sparse matrices, where m is proportional to log N. This results inma procedure requiring a number of operations proportional to N log N rather than N2. These methods are applied here to the calculation of complex Fourier series. They are useful in situations where the number of data points is, or can be chosen to be, a highly composite number. The algorithm is here derived and presented in a rather different form. Attention is given to the choice of N. It is also shown how special advantage can be obtained in the use of a binary computer with N = 2' and how the entire calculation can be performed within the array of N data storage locations used for the given Fourier coefficients. Consider the problem of calculating the complex Fourier series N-1 (1) X(j) = EA(k)-Wjk, j = 0 1, * ,N- 1, k=0
RELIC is an Efficient LIbrary for Cryptography
  • D F Aranha
  • C P L Gouvêa
[Aranha and Gouvêa 2016] Aranha, D. F. and Gouvêa, C. P. L. (2016). RELIC is an Efficient LIbrary for Cryptography. https://github.com/relic-toolkit/relic.