Conference PaperPDF Available

CUYASHE : Computação sobre dados cifrados em GPGPUs

Authors:

Abstract and Figures

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.
Content may be subject to copyright.
CUYASHE : Computação sobre dados cifrados em GPGPUs
Pedro Geraldo M. R. Alves1, Diego de Freitas Aranha1
1Instituto de Computação Universidade Estadual de Campinas (Unicamp)
Cidade Universitária Zeferino Vaz CEP 13083-970 Campinas SP Brazil
pdroalves@gmail.com, 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, to preserve the privacy of data owners and contractors. Ho-
momorphic encryption schemes are a natural candidate for computing over encrypted
data, satisfying these new security requirements. In this work, CUYASHE is presented
as a GPGPU implementation of the leveled fully homomorphic scheme YASHE. The
implementation employs the CUDA platform, the Chinese Remainder Theorem and
the Fast Fourier Transform to obtain significant performance improvements. When
compared with the state-of-the-art implementation in CPUs, speedups of 20% for ho-
momorphic addition and 58% for multiplication were observed. These operations are
performance-critical for evaluating any function over encrypted data, demonstrating
that GPUs are an appropriate technology for bootstraping privacy-preserving cloud
computing environments.
Resumo. Em tempos de computação em nuvem, interesse em se utilizar criptos-
sistemas que não apenas garantam a segurança dos dados no transporte e armazena-
mento, 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 candi-
datos promissores para computação sobre dados cifrados, satisfazendo novos requisi-
tos de segurança. Neste trabalho, é apresentada CUYASHE, uma implementação em
GPGPUs do criptossistema completamente homomórfico em nível, YASHE. A imple-
mentaçã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 veloci-
dade 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.
1. Introdução
O recente barateamento do poder computacional pelo paradigma de computação em
nuvem tornou popular o uso desse tipo de serviço e o espalhou por toda a indústria. A possibi-
lidade de terceirizar a instalação, manutenção e a escalabilidade de servidores, somada a preços
competitivos, faz com que esses serviços se tornem bastante atraentes [Buyya 2009].
Atualmente, diversos esquemas criptográficos são usados como padrão no armazena-
mento e troca de dados. Contudo, no caso da computação em nuvem existe a possibilidade de
se lidar com um atacante classificado como honesto mas curioso 1. Nesse contexto, as partes
1Do Inglês, honest-but-curious.
envolvidas com a nuvem concordam em respeitar os protocolos pré-definidos para a manipula-
ção e troca dos dados mas não garantia de que, caso haja interesse na quebra de privacidade,
elas não usem seu conhecimento e acesso ao sistema para subverter a segurança. Dessa forma,
existe a necessidade que o processamento dos dados seja feito com estes em estado cifrado,
garantindo uma trajetória completamente sigilosa para os dados: transporte, processamento e
armazenamento.
A criptografia homomórfica se mostra ideal para ser usada nesse cenário. Nesta classe
de criptossistemas existe o suporte a operações que podem ser aplicadas sobre dados em estado
cifrado, sem conhecimento das chaves criptográficas. O resultado é nativamente cifrado com a
chave original, sem revelá-la em nenhum momento.
O objetivo deste trabalho consistiu em obter ganho de desempenho no estado da arte do
criptossistema YASHE [Bos et al. 2013], uma variante da família de criptossistemas baseados
em reticulados [Hoffstein et al. 1998]. Para isso, foram aplicadas técnicas de computação
paralela em processadores gráficos de propósito geral, ou GPGPUs 2, através da arquitetura
CUDA 3, junto do Teorema Chinês do Resto e da Transformada de Fourier. Quando comparado
com a implementação estado da arte em CPUs, essa estratégia implicou em ganhos de até 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.
O documento é organizado como se segue. Na Seção 2 as bases teóricas para o trabalho
são apresentadas. É oferecida uma definição formal para a propriedade homomórfica em crip-
tossistemas, assim como é apresentado o criptossistema YASHE, usado neste trabalho, além de
uma breve passagem pelo Teorema Chinês do Resto e a Transformada Rápida de Fourier. Nas
Seções 3 e 4 são apresentadas, respectivamente, a implementação CUYASHE e uma análise
do ganho de desempenho sobre o estado da arte. Por fim, a Seção 5 apresenta as conclusões e
expectativas para trabalhos futuros.
2. Base teórica
2.1. Criptografia Homomórfica
Um esquema criptográfico homomórfico pode ser definido como na Definição 1.
Definição 1. Seja Euma função de cifração e Da função de decifração correspondente.
Sejam m1em2dados em claro. A dupla (E, D)forma uma cifra dita homomórfica com
respeito a um operador se a seguinte propriedade for satisfeita:
D(E(m1)E(m2)) = D(E(m1m2)) D(E(m1)E(m2)) = m1m2.
A operação é equivalente à operação no espaço de criptogramas.
Para esquemas criptográficos que possuam a propriedade apresentada, temos que a nu-
vem (ou um atacante) pode manipular dados cifrados aplicando o operador sem aprender nada
sobre o texto claro correspondente.
2Acrônimo de General Purpose Graphics Processing Unit.
3Acrônimo de Compute Unified Device Architecture.
Criptossistemas parcialmente homomórficos são criptossistemas que satisfazem a Defini-
ção 1 para operações de adição ou multiplicação. Existem diversas propostas de esque-
mas desse tipo, dentre elas o esquema de Paillier [Paillier 1999] e ElGamal [ElGamal
1985]. Estes são bastante conhecidos e se caracterizam não apenas pelo bom desempe-
nho como também por atingirem o mais alto nível de segurança em comparação a outros
esquemas parcialmente homomórficos.
Criptossistemas completamente homomórficos são criptossistemas que satisfazem a Defini-
ção 1 para ambas as operações de adição e multiplicação.
Em uma posição intermediária aos criptossistemas anteriormente citados, existem crip-
tossistemas ditos ligeiramente homomórficos 4e completamente homomórficos em nível 5.
Criptossistemas ligeiramente homomórficos são aqueles que satisfazem a Definição 1 para
uma quantidade limitada de operações de adição e multiplicação. No trabalho de [Gen-
try 2010] é demonstrado como construir um criptossistema completamente homomór-
fico a partir de um criptossistema ligeiramente homomórfico, usando uma técnica cha-
mada de bootstrap. Essa técnica reduz o ruído acumulado após uma série de operações
homomórficas, o que viabiliza a aplicação da decifração. Esse trabalho é bastante citado
na literatura e se tornou referência para essa classe de criptossistemas.
Criptossistemas completamente homomórficos em nível são evoluções da proposta anterior
de Gentry. Em [Brakerski et al. 2012], define-se esquemas dessa classe como aqueles
capazes de avaliar circuitos de tamanho arbitrário sem a necessidade de uma técnica
de boostrap mas apenas variando os parâmetros de cifração. Nesse mesmo trabalho é
demonstrado como construir um criptossistema completamente homomórfico a partir
de um completamente homomórficos em nível. Este trabalho usou o criptossistema
YASHE, definido na Seção 2.2, que é definido como um criptossistema completamente
homomórfico em nível.
2.2. YASHE - Yet Another Somewhat Homomorphic Encryption
YASHE é um criptossistema completamente homomórfico em nível baseado em reti-
culados [Bos et al. 2013]. Ele opera sobre elementos de um anel gerado por um polinômio
ciclotômico. O esquema é descrito na Definição 2.
Definição 2. Seja χerr a distribuição Gaussiana discreta e χkey a distribuição estreita,
que gera valores aleatoriamente dentre {−1,0,1}. O criptossistema YASHE é composto
pelas seguintes operações:
Escolha de parâmetros: Dado um parâmetro λde segurança,
1. Escolha um inteiro qque define o espaço dos coeficientes dos criptogramas.
2. Escolha um inteiro tque define o espaço dos coeficientes dos textos claros. Garanta
que 1< t < q.
3. Escolha um inteiro w > 1, que define o tamanho da palavra nas operações de troca
de chave.
4Do Inglês, Somewhat Homomorphic Encryption.
5Do Inglês, Leveled Fully Homomorphic Encryption.
4. Defina o anel Rq=Zq[X]n(X), onde φn(X)é o n-ésimo polinômio ciclotô-
mico.
Geração de chaves:
1. Amostre dois polinômios f0egda distribuição χkey e defina f=tf0+ 1q.
2. Se fnão for inversível em Rq, escolha um novo f0.
3. Defina h= [tgf 1]q.
4. Defina γ= [P owersOfw,q (f) + e+h·s]qRlogwq
q.
5. Retorne (pk, sk, evk) = (h, f, γ).
Cifração: Dadas a chave (pk)e uma mensagem mRt,
1. Amostre dois polinômios seeda distribuição χerr.
2. Retorne o criptograma c=q
t·[m]t+e+h·sRq.
Decifração: Dadas a chave (sk)e um criptograma cRq,
Retorne m=hjt
q·[fc]qmi Rt.
Adição: Sejam os criptogramas c1ec2,
Retorne cadd = [c1+c2]q.
Multiplicação: Sejam os criptogramas c1ec2e a chave evk,
1. Defina c
mult =hjt
q·c1·c2miq.
2. Retorne cmult =KeySwitch(c
mult, evk).
PowersOfw,q :
Retorne [a·wi]qlogwq1
i=0 Rlogwq.
KeySwitch: Seja o criptograma ce a chave evk,
Retorne [hW ordDecompw,q (c), evki]q.
WordDecompw,q : Seja o polinômio a.
Retorne ([ai]w)logwq1
i=0 Rlogwq.
2.3. Teorema Chinês do Resto
Como ferramenta para simplificar a manipulação de polinômios com coeficientes bas-
tante grandes, utilizou-se o Teorema Chinês do Resto, ou CRT 6. Dessa forma, pode-se repre-
sentar grandes coeficientes inteiros usando resíduos arbitrariamente pequenos e que podem ser
manipulados utilizando uma aritmética mais simples.
O funcionamento do CRT implementado se baseia em mapear um polinômio Aem um
conjunto de polinômios {A0, A1, . . . , Al1}tal que AiRpi, para um primo piescolhido
arbitrariamente, como pode ser visto nas Definições 3 e 4.
6Do Inglês, Chinese Remainder Theorem.
Definição 3. - Transformação CRT
Seja xum polinômio em Rqe{p0, p1, . . . , pl1}um conjunto de lprimos.
Define-se: CRT :x {xmod p0, x mod p1, . . . , x mod pl1}.
Definição 4. - Transformação Inversa da CRT , ou ICRT
Seja xum conjunto de lpolinômios residuais oriundos do CRT , {p0, p1, . . . , pl1}o res-
pectivo conjunto de primos e M= Πl1
i=0pi.
Define-se: I CRT (x) = Pl1
i=0 M
pi·M
pi1ximod pimod M.
Para o funcionamento correto da ICRT, é necessário que o produto dos primos seja maior
do que o maior possível coeficiente de um polinômio residual, inclusive após uma operação de
adição ou multiplicação. Ou seja, para o YASHE é preciso que M= Πl1
i=0pi> n ·q2, onde ne
qsão os parâmetros de formação do anel.
No domínio de resíduos do CRT as operações de adição e multiplicação são definidas
como na Definição 5.
Definição 5. - Operações sobre o domínio do CRT
Sejam xeypolinômios em Rqcom XeYsendo seus respectivos conjuntos de resíduos,
{p0, p1, . . . , pl1}um conjunto de lprimos e uma operação .
Define-se: XY={(X0Y0),(X1Y1),...,(Xl1Yl1)}.
2.4. Transformada Rápida de Fourier
Neste trabalho, foi utilizado o algoritmo da Transformada Rápida de Fourier, ou FFT 7
[Cochran et al. 1967], para a redução da complexidade computacional de uma operação de
multiplicação polinomial. Ela faz uso da Transformada Discreta de Fourier 8para reduzir a
complexidade computacional de Θ (N2), de um algoritmo trivial de multiplicação polinomial,
para Θ (Nlog N), com Nrepresentando o grau dos polinômios operandos.
Dessa forma, a multiplicação de dois polinômios é feita como na Definição 6.
Definição 6. - Multiplicação de polinômios usando FFT
Sejam dois polinômios peqescritos como:
p(x) = a0+a1x+. . . +aN1xN1,
q(x) = b0+b1x+. . . +bN1xN1.
7Do Inglês, Fast Fourier transform.
8Do Inglês, Discrete Fourier transform.
Além disso, seja ωN=ei
Nan-ésima raíz complexa de 1. O produto
(p·q)(x) = p(x)·q(x) = c0+c1x+. . . +c2N2x2N2
é calculado da seguinte forma:
1. Avalie eficientemente p(x)eq(x)nos pontos ω0
2N, ω1
2N, . . . , ω2N1
2N.
2. Compute os valores de p(x)·q(x)nesses pontos através da multiplicação ponto-a-
ponto
(p·q)(ω0
2N) = p(ω0
2N)·q(ω0
2N),
(p·q)(ω1
2N) = p(ω1
2N)·q(ω1
2N),
.
.
.
(p·q)(ω2N1
2N) = p(ω2N1
2N)·q(ω2N1
2N).
3. Aplique a transformação inversa da Transformada Discreta de Fourier e recupere
os coeficientes cital que
(p·q)(x) =
2N2
X
i=0
cixi.
A etapa de avaliação dos polinômios em 2Npontos tem custo Θ (Nlog N)quando reali-
zada com uma estratégia elegante, como o método de dividir-para-conquistar proposto por [Co-
oley and Tukey 1965].
3. A implementação C UYASHE
A implementação proposta, batizada de CUYASHE [Alves and Aranha 2015], foi pro-
duzida em C++, com foco na revisão C++11 e utilizou-se a biblioteca NTL compilada com
suporte a GMP para prover a aritmética de grandes inteiros. Dessa forma, foi possível con-
centrar os esforços de otimização na aritmética polinomial e apenas herdar as operações ele-
mentares sobre inteiros da NTL. O modelo de classes usado representa polinômios-genéricos
e polinômios-criptogramas com as classes Polynomial eCiphertext. Como visto na Figura 1,
uma relação de herança entre essas classes. Assim, pôde-se reutilizar operações comuns
e especializar aquelas exclusivas a criptogramas. As distribuições probabilísticas usadas pelo
YASHE, Gaussiana discreta e estreita, foram concentradas na classe Distribution. Essas três
classes são agregadas à classe YASHE, responsável pelas operações de cifração, decifração e
troca de chave do criptossistema.
3.1. Manipulando inteiros grandes
Operações sobre inteiros muito grandes podem ser bastante caras e adicionar um grau
de complexidade considerável ao trabalho, principalmente com o uso da arquitetura CUDA
que não possui suporte nativo a operações com operandos maiores do que 64 bits. Por isso, o
Teorema Chinês do Resto, como visto na Seção 2.3, foi aplicado para gerar polinômios com
coeficientes menores e mais adequados à plataforma alvo. Essa estratégia implicou na troca do
Polynomial
NTL::ZZ
Ciphertext
YASHE
Distribution
Figura 1. Diagrama de classes simplificado. A classe Polynomial (usada para a repre-
sentação de polinômios genéricos) é superclasse da Ciphertext (usada para a repre-
sentação de criptogramas). A classe YASHE contém a implementação do criptossis-
tema e agrega instâncias dessas duas classes, além da Distribution, responsável pelas
distribuições probabilísticas requeridas.
custo computacional de operar sobre dois polinômios com coeficientes arbitrariamente grandes
pelo custo de operar sobre vários polinômios residuais com coeficientes tão pequenos quanto se
queira, conforme visto na Definição 5.
A capacidade de paralelismo de GPGPUs se mostra grande o suficiente para mascarar
o custo adicional de processamento e ainda prover ganho de velocidade em relação a outras
implementações conhecidas, que fazem uso da aritmética de grandes inteiros em CPUs, como
demonstrado na Seção 4.
3.2. Localidade de memória
Na modelagem utilizada, toda cópia dos resíduos do CRT para a memória global da
GPU é feita concatenando os polinômios em um único vetor de inteiros. Dessa forma, as ope-
rações polinomiais podem tirar proveito do acesso de memória coalesced, onde vários blocos
de memória consecutivos são lidos em uma única instrução read e aproveitados por diferen-
tes threads, assim como podem ser aplicadas com a chamada de um único CUDA Kernel. A
vantagem dessa modelagem é que operações consecutivas são realizadas sem a necessidade da
cópia de dados entre a memória da GPU e a memória principal, além de tornar desnecessário a
aplicação do CRT eICRT nesse momento. Como pode ser visto nas Tabelas 2 e 3, isso pode im-
plicar em ganhos bastante expressivos de desempenho em algoritmos que tirem proveito dessa
característica.
O diagrama de fluxo na Figura 2 expõe as verificações feitas pela CUYASHE que pre-
cedem todas as operações de adição e multiplicação. Essas verificações tem como objetivo
reduzir custos de processamento redundante e desnecessários. Inicialmente, verifica-se se os
operandos possuem valores calculados e atualizados dos polinômios residuais do CRT . Da
mesma maneira, verifica-se se esses resíduos (caso tenham sido calculados anteriormente)
existem em um estado atualizado na memória da GPU. Resultados negativos a esses predicados
são resolvidos e então é dado início ao processamento de cada operação. Dessa maneira,
como comentado, resultados prévios das etapas de aplicação do CRT e da cópia de dados são
reaproveitados e permite-se adiar a aplicação do ICRT, que passa a ser necessária apenas no
momento em que os dados são requeridos para pela CPU. Essa otimização implica em ganhos
consideráveis de desempenho para operações consecutivas.
Entrada: Polinômios
a e b
Computação dos
polinômios aCRT e bCRT,
resultantes da aplicação
do CRT
Cópia dos resíduos para a
memória global da GPU.
Definição das dimensões
dos blocos e da grade dos
kernels CUDA
O CRT já foi
computado?
Sim
Não
Os resíduos
estão atualizados na
memória global da
GPU?
Não
Sim
Aplicação do FFT nos
resíduos aCRT e bCRT
Aplicação da
multiplicação
Aplicação do FFT inverso
Aplicação da adição
Qual a operação? Multipl icaç ãoAdição
Figura 2. Diagrama de fluxo das operações de adição e multiplicação. Antes de aplicar
a operação requisitada, a CUYASHE tem de calcular os polinômios residuais do CRT e
copiar para a memória da GPU. Essas duas etapas preliminares são descartadas, se
possível.
3.3. Aritmética polinomial
As operações de multiplicação e adição polinomial são realizadas em paralelo pela GPU.
Para isso, foi definido um modelo de CUDA Threads que tira proveito da estrutura de memória
e implementa as operações em paralelo, escondendo o custo computacional oriundo do CRT e
reduzindo o tempo necessário para cada operação.
A aritmética polinomial implementada tira proveito dessas duas operações básicas e
de características do YASHE para implementar versões eficientes das operações de subtração,
divisão e resto.
Adição e subtração
Na adição, cada bloco de CUDA Threads é composto por threads em uma única dimen-
são de tamanho N
32 , para um polinômio de grau N1. O kernel de execução soma elemento a
elemento dois vetores de inteiros, compostos pela concatenação dos coeficientes dos polinômios
residuais do CRT de cada operando. Essa concatenação é feita cuidadosamente para garantir
o correto alinhamento dos coeficientes. A subtração é realizada da mesma maneira, apenas
substituindo a operação aplicada em cada coeficiente.
Multiplicação
A multiplicação polinomial é feita através do algoritmo FFT, descrito na Seção 2.4,
implementado pela biblioteca cuFFT [NVIDIA 2015a]. Ela é uma biblioteca proprietária da
NVIDIA e implementa uma variação não-normalizada do FFT .
Uma vez que o algoritmo usado opera sobre valores reais, enquanto que o YASHE opera
sobre inteiros, foi necessário implementar kernels exclusivos para a conversão dos coeficien-
tes de inteiro para complexo e de complexo para inteiro. Dessa forma, foi usado o modo de
funcionamento Complex-to-Complex da cuFFT.
Divisão e resto
O cálculo do quociente e do resto em uma divisão de polinômios pode ser consideravel-
mente caro sem a exploração de alguma propriedade especial dos polinômios.
O YASHE faz uso de polinômios ciclotômicos para definir o anel de criptogramas Rq.
Essa classe de polinômios tem a propriedade de que o n-ésimo polinômio ciclotômico é dado
por Φn(x) = xn/2+ 1, para todo npotência de 2.
Fazendo uso disso, a divisão por esses polinômios pode ser feita como no Lema 1,
requerindo apenas um deslocamento de n
2posições dos coeficientes de maior grau de P(x),
para o cálculo do quociente, e de uma subtração para o cálculo do resto.
Lema 1. Divisão e resto pelo n-ésimo polinômio ciclotômico. Sejam Φn(x)on-ésimo
polinômio ciclotômico com npotência de 2eP(x) = Pm1
i=0 aixi, com m > n. Então o
quociente Q(x)e o resto R(x)da divisão de P(x)por Φn(x)são dados por:
Q(x) = P(x)
xn
2
=
n
21
X
i=0
ai+n/2xi,
R(x) = P(x)Q(x)·Φn(x).
Demonstração. Sejam o polinômio P(x)eΦm(x)om-ésimo polinômio ciclotômico com m=
2nenpotência de 2. Além disso, sejam Q(x)eR(x)respectivamente o quociente e o resto da
divisão de P(x)por Φm(x). Dessa forma,
P(x) = Q(x)·Φm(x) + R(x)(1)
=Q(x)·(xn+ 1) + R(x)
=Q(x)·xn+Q(x) + R(x).
Logo, lembrando que o quociente da divisão Q(x)+R(x)
xné0, uma vez que Q(x)eR(x)
tem grau necessariamente menor que npara n > 0, então
P(x)
xn=Q(x)·xn+Q(x) + R(x)
xn=Q(x).
Substituindo Q(x)na Equação 1,
R(x) = P(x)Q(x)·Φm(x),
o que encerra a demonstração do Lema 1.
O cálculo do resto por Φn(x)é essencial para o YASHE, uma vez que a redução poli-
nomial é uma operação frequente por conta do anel Rq. Em casos em que a divisão não pode
ser acelerada por essa propriedade, a implementação passa o cálculo da operação para a NTL .
3.4. cuFFT
Pela necessidade de se trabalhar com valores reais na FFT, foi necessário que se im-
plementasse rotinas de conversão e que se tomassem cuidados para evitar possíveis erros de
precisão causados pela aritmética de ponto flutuante. Além das citadas, a aplicação do CRT foi
feita usando primos de tamanho 9bits, enquanto a cuFFT foi executada utilizando precisão
dupla. Apesar da mantissa de valores float ser de 23 bits e a de valores double ser 53 bits, foi
constatado empiricamente que operandos próximos, mas inferiores, dessas mantissas ainda po-
deriam resultar em erros de precisão. Esses erros são evidenciados com a aplicação da ICRT e
comprometem de forma irrecuperável o funcionamento do programa, dado o contexto. Utili-
zando operandos com coeficientes limitados a 9bits e o modo de precisão dupla da cuFFT,
conseguiu-se evitar completamente esse tipo de erro, ao custo do aumento da quantidade de
resíduos e da diminuição de desempenho da cuFFT referente a precisão dupla. O modo de
precisão única requer a diminuição dos coeficientes para valores ainda menores, o que pode
impedir que se satisfaça a condição comentada na Seção 2.3 e atrapalhe o funcionamento da
ICRT .
4. Resultados
Para medir o impacto das otimizações, os tempos das operações da CUYASHE foram
comparados com os trabalhos de [Lepoint and Naehrig 2014] e [Bos et al. 2013], como visto na
Tabela 1. Ambos são relativos a implementações que tiram proveito apenas da CPU da máquina
e tem pouco ou nenhum esforço em processamento paralelo. Apesar disso, do ponto de vista
da aplicação, o principal interesse é o tempo de processamento, e uma vez que no contexto de
computação na nuvem é comum a presença de GPGPUs , como descrito por [NVIDIA 2015b],
a comparação se mantêm relevante.
Os valores apresentados neste trabalho para a CUYASHE foram obtidos através do cál-
culo do tempo médio para cada operação. Para isso foram usadas 100 amostras de execuções
isoladas. A máquina utilizada na obtenção dos tempos da CUYASHE possui uma CPU Intel
Xeon E5-2630 @ 2.60GHz e uma GPGPU NVIDIA GeForce GTX TITAN Black @ 0.98GHz.
Foi utilizada a versão 7.0 do kit de desenvolvimento CUDA, além das versões 9.1.0 e 6.0.0 das
bibliotecas NTL eGMP respectivamente. Por sua vez, o trabalho de [Lepoint and Naehrig 2014]
usa uma CPU Intel Core i7-2600 @ 3.4GHz, enquanto que [Bos et al. 2013] utiliza uma CPU
Intel Core i7-3520M @ 2893.484 MHz.
A Tabela 1 demonstra que pouco ou nenhum ganho de desempenho durante as eta-
pas de cifração e decifração, uma vez que a atual implementação da CUYASHE possui pouca
reutilização de dados na memória da GPU e, em especial na operação de cifração, uma in-
tensa cópia de operandos para a memória da GPU. Apesar disso, foi obtido ganho de 20% em
velocidade na adição e 58% na multiplicação homomórfica em relação ao trabalho de [Lepoint
and Naehrig 2014].
A motivação principal para a utilização de um criptossistema homomórfico é justamente
aplicar operações aritméticas homomórficas sobre criptogramas. Dessa forma, essas operações
são o alvo principal para melhorias de desempenho uma vez que serão aplicadas recorrente-
mente em diferentes tipos de algoritmo, ao passo que as operações de geração de chave, cifração
e decifração são consideravelmente menos usadas e por isso ganhos de desempenho são menos
relevantes.
Tabela 1. Tempos para o CUYASHE e comparação com os trabalhos de [Lepoint and
Naehrig 2014] e [Bos et al. 2013], respectivamente. A máquina utilizada na obten-
ção dos tempos da CUYASHE possui uma CPU Intel Xeon E5-2630 @ 2.60GHz e uma
GPGPU NVIDIA GeForce GTX TITAN Black @ 0.98GHz e possui instalado a versão 7.0
do kit de desenvolvimento CUDA, além das versões 9.1.0 e 6.0.0 das bibliotecas NTL e
GMP respectivamente, enquanto que o trabalho de [Lepoint and Naehrig 2014] usa
uma CPU Intel Core i7-2600 @ 3.4GHz e [Bos et al. 2013] utiliza uma CPU Intel Core
i7-3520M @ 2893.484 MHz. Os valores apresentados para a CUYASHE foram obtidos
pelo cálculo do tempo médio de 100 amostras de execuções isoladas. Parâmetros:
R=Z[X]/x4096 + 1,q= 2127 1,w= 232,t= 210 .
Operação CUYASHE (ms) LN (ms) BLLN (ms)
Cifração 32,28 16 27
Decifração 13,87 15 5
Adição Homomórfica 0,56 0,7 0,024
Multiplicação Homomórfica + KeySwitch 20,29 49 31
A Tabela 2 demonstra uma importante característica da CUYASHE. Para a aplicação de
operações de adição ou multiplicação polinomial gasto de tempo no cálculo dos resíduos do
CRT, na cópia desses valores para a memória da GPU e posteriormente na aplicação da ICRT.
Contudo, operações consecutivas, com operandos na memória da GPU, conseguem reapro-
veitar valores calculados anteriormente e evitar tempo desperdiçado em operações redundantes.
Dessa forma, as otimizações realizadas nesse sentido implicam em ganhos de 14 vezes em ve-
locidade na reutilização de operandos em operações de adição e de 4 vezes para operações de
multiplicação. O ganho de desempenho em algoritmos que utilizem a CUYASHE para operar
sobre dados cifrados acompanha a capacidade do algoritmo em tirar proveito dessa caracterís-
tica da implementação.
5. Conclusão e trabalhos futuros
Uma implementação do criptossistema YASHE foi apresentada, a CUYASHE, e se
estabeleceu uma comparação de seu desempenho em relação a duas outras implementações co-
9Do Inglês, overhead.
Tabela 2. Tempos para a aritmética polinomial em um anel de grau 4096. As colunas
registram os tempos médios para cada operação, considerando o custo necessário de
copia dados para a memória da GPU. Pode-se perceber os ganhos significativos de
desempenho que podem ser obtidos por algoritmos que possam manter operandos na
memória da GPU.
Operação Com sobrecarga9
de memória (ms)
Sem sobrecarga
de memória (ms)
Adição 19,24 1,32
Multiplicação 32,28 7,01
nhecidas, demonstrando ganhos de até 20% na adição e 58% na multiplicação homomórfica.
Além disso, conseguiu-se demonstrar que é possível obter ganhos de desempenho bastante ex-
pressivos ao aplicá-la em um algoritmo que possa manter os operandos na memória da GPU.
Nesses casos, notou-se ganhos de até 14 e 4 vezes para adição e multiplicação homomórfica
respectivamente, ao mesmo tempo que adiciona-se o benefício da segurança oriundo do crip-
tossistema utilizado.
Em trabalhos futuros se espera a investigação dos possíveis ganhos com a substituição
do FFT e da biblioteca cuFFT por alternativas que proporcionem aumento na densidade arit-
mética. Uma alternativa promissora é a NTT 10, que aplica a mesma lógica da FFT mas usa
corpos finitos ao invés do corpo complexo. A Tabela 3 apresenta resultados preliminares da
substituição da cuFFT por uma implementação própria da NTT .
Tabela 3. Tempos preliminares para a aritmética polinomial em um anel de grau 4096
utilizando a transformada NTT ao invés da FFT. As colunas registram os tempos mé-
dios para cada operação, considerando o custo necessário de copia dados para a
memória da GPU. ganho de velocidade em todos os tempos em comparação com
a Tabela 2 por causa da redução do custo computacional da aritmética da NTT e pela
redução do número de resíduos do CRT.
Operação Com sobrecarga11
de memória (ms)
Sem sobrecarga
de memória (ms)
Adição 6,28 1,00
Multiplicação 14,36 6,27
um ganho de velocidade evidente por conta da substituição das transformadas. A
aritmética de corpos finitos, usada pela NTT, possui uma implementação mais eficiente do que
a aritmética de ponto-flutuante, usada pela FFT. Isso reduz o tempo necessário para a aplicação
da operação de multiplicação. Além disso, por não haver mais a necessidade de se limitar o
tamanho dos primos usados pelo CRT em 9bits, pode-se reduzir a quantidade de polinômios
residuais, o que atinge diretamente o custo de cópia de dados entre as memórias e consequente-
mente reduz também o tempo necessário para ambas as operações com sobrecarga de cópia de
memória.
10Acrônimo de Number-Theoretic Transform.
11Do Inglês, overhead.
Referências
Alves, P. and Aranha, D. (2015). cuYASHE. https://github.com/pdroalves/
cuYASHE. Acessado: 08/09/2015.
Bos, J., Lauter, K., Loftus, J., and Naehrig, M. (2013). Improved Security for a Ring-Based
Fully Homomorphic Encryption Scheme. In Stam, M., editor, Cryptography and Coding,
volume 8308 of Lecture Notes in Computer Science, pages 45–64. Springer Berlin Heidel-
berg.
Brakerski, Z., Gentry, C., and Vaikuntanathan, V. (2012). (Leveled) Fully Homomorphic En-
cryption Without Bootstrapping. In Proceedings of the 3rd Innovations in Theoretical Com-
puter Science Conference, ITCS ’12, pages 309–325, New York, NY, USA. ACM.
Buyya, R. (2009). Market-Oriented Cloud Computing: Vision, Hype, and Reality of Delivering
Computing As the 5th Utility. In Proceedings of the 2009 9th IEEE/ACM International
Symposium on Cluster Computing and the Grid, CCGRID ’09, pages 1–, Washington, DC,
USA. IEEE Computer Society.
Cochran, W. T., Cooley, J. W., Favin, D. L., Helms, H. D., Kaenel, R. A., Lang, W. W., George
C. Maling, J., Nelson, D. E., Rader, C. M., and Welch, P. D. (1967). What is the fast Fourier
transform? IEEE Transactions on Audio and Electroacoustics, 15:45–55.
Cooley, J. W. and Tukey, J. W. (1965). An algorithm for the machine calculation of complex
Fourier series. Mathematics of Computation, 19:297–301.
ElGamal, T. (1985). A Public Key Cryptosystem and a Signature Scheme Based on Discrete
Logarithms. In Blakley, G. and Chaum, D., editors, Advances in Cryptology, volume 196 of
Lecture Notes in Computer Science, pages 10–18. Springer Berlin Heidelberg.
Gentry, C. (2010). Computing Arbitrary Functions of Encrypted Data. Commun. ACM,
53(3):97–105.
Hoffstein, J., Pipher, J., and Silverman, J. (1998). NTRU: A ring-based public key cryptosystem.
In Buhler, J., editor, Algorithmic Number Theory, volume 1423 of Lecture Notes in Computer
Science, pages 267–288. Springer Berlin Heidelberg.
Lepoint, T. and Naehrig, M. (2014). A Comparison of the Homomorphic Encryption Schemes
FV and YASHE. In Pointcheval, D. and Vergnaud, D., editors, Progress in Cryptology
AFRICACRYPT 2014, volume 8469 of Lecture Notes in Computer Science, pages 318–335.
Springer International Publishing.
NVIDIA (2015a). CUDA Toolkit Documentation. http://docs.nvidia.com/cuda/
cufft/. Acessado: 12/08/2015.
NVIDIA (2015b). GPU Cloud Computing. http://www.nvidia.com/object/
gpu-cloud-computing-services.html. Acessado: 11/09/2015.
Paillier, P. (1999). Public-Key Cryptosystems Based on Composite Degree Residuosity Classes.
In Stern, J., editor, Advances in Cryptology EUROCRYPT ’99, volume 1592 of Lecture
Notes in Computer Science, pages 223–238. Springer Berlin Heidelberg.
... Por fim, este documento apresenta aperfeiçoamentos na implementação em relação a resultados preliminares [Alves and Aranha 2015]. A revisão na máquina de estados da CUYASHE permitiu a implementação da aritmética com operandos não apenas mapeados em resíduos pelo CRT como também interpolados para o domínio da FFT. ...
Conference Paper
Full-text available
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.
... Por fim, este documento apresenta aperfeiçoamentos na implementação em relação a resultados preliminares [Alves and Aranha 2015]. A revisão na máquina de estados da CUYASHE permitiu a implementação da aritmética com operandos não apenas mapeados em resíduos pelo CRT como também interpolados para o domínio da FFT. ...
Conference Paper
Full-text available
Under the dominant cloud computing paradigm, employing encryption for data storage and transport may not be enough. Security guarantees should also be extended 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 implementation 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 6 and 35 times for homo-morphic multiplication. Resumo. No contexto da computaçcomputaç˜computação na nuvem, a aplicaçaplicaç˜aplicação de métodos criptográficos exclusivamente no armazenamento e transporte dos dados nãó e suficiente, uma vez que precisam ser revelados ao serviço para ocorrer processamento. Esquemas de cifraçcifraç˜cifração homomórfica são candidatos naturais para computaçcomputaç˜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çimplementaç˜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çreduç˜redução de 6 até 35 vezes no tempo de execuçexecuç˜execução da operaçoperaç˜operação de multiplicaçmultiplicaç˜multiplicação. IntroduçIntroduç˜Introdução A computaçcomputaç˜computação em nuvem tem sido responsável por uma profunda mudança na comuni-dade de processamento distribuído. A possibilidade de terceirizar a instalaçinstalaç˜instalação, manutençmanutenç˜manutenção e a escalabilidade de servidores, somada a preços competitivos, faz com que esses serviços se tornem altamente atraentes. Diversos esquemas criptográficos são utilizados como padrão para o armazenamento e transferência de dados. Contudo, no caso de serviços na nuvem existe a possibilidade de se li-dar com um adversário que não apenas tenha acesso aos dados como também ao hardware que realiza seu processamento. Desse modo, ´ e necessário que se estabeleça uma trajetória completa-mente sigilosa para os dados durante o transporte, armazenamento e processamento para que seja preservada a privacidade. A criptografia homomórfica se mostra promissora para satisfazer esse novo requisito de segurança. Os esquemas dessa classe permitem que o processamento seja feito sobre criptogramas mesmo sem o conhecimento das chaves de cifraçcifraç˜cifração ou decifraçdecifraç˜decifração. Assim, não há razão 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órfico em nível YASHE [Bos et al. 2013]. Para isso, foram aplica-das técnicas de computaçcomputaç˜computação paralela em GPGPUs por meio da arquitetura CUDA; utilizou-se
... vezes na multiplicação homomórfica, em relação ao estado da arte.Resultados preliminares foram apresentados no XV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais[1] e no X Workshop de Teses, Dissertações e Trabalhos de Iniciação Científica em Andamento do IC-Unicamp[2]. ...
Thesis
Full-text available
Security in cloud computing is a relevant topic for research. Multiple branches of industry are embracing this paradigm to reduce operational costs, improve scalability and availability. Surprisingly, several techniques are still missing to properly preserve privacy on the cloud. Employing encryption for data storage and transport is not enough once the data owner has no real control over the processing hardware. This way, security requirements must also be extended to data processing tasks. 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 investigates strategies to efficiently implement the leveled fully homomorphic scheme YASHE. It employs the CUDA platform to provide parallel processing capabilities and the chinese remainder theorem to replace expensive big integer arithmetic by simpler instructions natively supported in hardware. Moreover, this work offers a comparison between the Fast Fourier transform and the Number-Theoretic transform for reducing the complexity of polynomial multiplication. The former is provided by the cuFFT library, while the latter is implemented through the Stockham formulation. As result of this research, the cuYASHE library was developed and made available to the community. When compared with the state-of-the-art implementation in CPU , GPU and FPGA, it shows speed-ups for all operations. In particular, there was an improvement between 6 and 35 times for polynomial multiplication. This operation is performance-critical for evaluating any function over encrypted data, demonstrating that GPUs are an appropriate technology for bootstrapping privacy-preserving cloud computing environments.
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
Full-text available
This paper investigates a novel computational problem, na- mely the Composite Residuosity Class Problem, and its applications to public-key cryptography. We propose a new trapdoor mechanism and derive from this technique three encryption schemes : a trapdoor permu- tation and two homomorphic probabilistic encryption schemes computa- tionally comparable to RSA. Our cryptosystems, based on usual modular arithmetics, are provably secure under appropriate assumptions in the standard model.
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
This paper investigates a novel computational problem, na- mely the Composite Residuosity Class Problem, and its applications to public-key cryptography. We propose a new trapdoor mechanism and derive from this technique three encryption schemes: a trapdoor permu- tation and two homomorphic probabilistic encryption schemes computa- tionally comparable to RSA. Our cryptosystems, based on usual modular arithmetics, are provably secure under appropriate assumptions in the standard model.
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
Conference Paper
Computing is being transformed to a model consisting of services that are commoditised and delivered in a manner similar to utilities such as water, electricity, gas, and telephony. In such a model, users access services based on their requirements without regard to where the services are hosted. Several computing paradigms have promised to deliver this utility computing vision and they include Grid computing, P2P computing, and more recently Cloud computing. The latter term denotes the infrastructure as a ldquoCloudrdquo in which businesses and users are able to access applications from anywhere in the world on demand. Hence, Cloud computing can be classed as a new paradigm for the dynamic creation of next-generation Data Centers by assembling services of networked Virtual Machines (VMs). Thus, the computing world is rapidly transforming towards developing software for millions to consume as a service rather than creating software for millions to run on their PCs.
Article
Suppose that you want to delegate the ability to process your data, without giving away access to it. We show that this separation is possible: we describe a "fully homomorphic" encryption scheme that keeps data private, but that allows a worker that does not have the secret decryption key to compute any (still encrypted) result of the data, even when the function of the data is very complex. In short, a third party can perform complicated processing of data without being able to see it. Among other things, this helps make cloud computing compatible with privacy.
Article
We present a novel approach to fully homomorphic encryption (FHE) that dramatically improves performance and bases security on weaker assumptions. A central conceptual contribution in our work is a new way of constructing leveled, fully homomorphic encryption schemes (capable of evaluating arbitrary polynomial-size circuits of a-priori bounded depth), without Gentry’s bootstrapping procedure. Specifically, we offer a choice of FHE schemes based on the learning with error (LWE) or Ring LWE (RLWE) problems that have 2 λ security against known attacks. We construct the following. (1) A leveled FHE scheme that can evaluate depth-L arithmetic circuits (composed of fan-in 2 gates) using O(λ. L3) per-gate computation, quasilinear in the security parameter. Security is based on RLWE for an approximation factor exponential in L. This construction does not use the bootstrapping procedure. (2) A leveled FHE scheme that can evaluate depth-L arithmetic circuits (composed of fan-in 2 gates) using O(λ2) per-gate computation, which is independent of L. Security is based on RLWE for quasipolynomial factors. This construction uses bootstrapping as an optimization. We obtain similar results for LWE, but with worse performance. All previous (leveled) FHE schemes required a per-gate computation of Ω(λ3.5), and all of them relied on subexponential hardness assumptions. We introduce a number of further optimizations to our scheme based on the Ring LWE assumption. As an example, for circuits of large width (e.g., where a constant fraction of levels have width Ω(λ)), we can reduce the per-gate computation of the bootstrapped version to O(λ), independent of L, by batching the bootstrapping operation. At the core of our construction is a new approach for managing the noise in lattice-based ciphertexts, significantly extending the techniques of Brakerski and Vaikuntanathan [2011b].
Article
. We describe NTRU, a new public key cryptosystem. NTRU features reasonably short, easily created keys, high speed, and low memory requirements. NTRU encryption and decryption use a mixing system suggested by polynomial algebra combined with a clustering principle based on elementary probability theory. The security of the NTRU cryptosystem comes from the interaction of the polynomial mixing system with the independence of reduction modulo two relatively prime integers p and q. Contents 0. Introduction 1. Description of the NTRU algorithm 1.1. Notation 1.2. Key Creation 1.3. Encryption 1.4. Decryption 1.5. Why Decryption Works 2. Parameter Selection 2.1. Notation and a norm estimate 2.2. Sample spaces 2.3. A Decryption Criterion 3. Security Analysis 3.1. Brute force attacks 3.2. Meet-in-the-middle attacks 3.3. Multiple transmission attacks 3.4. Lattice based attacks 4. Practical Implementations of NTRU 4.1. Specific Parameter Choices 4.2. Lattice Attacks --- E...