Você está na página 1de 8

Uma eficiente implementação do KEM pós-quântico CRYSTALS Kyber

Bruno Rocha J.A.M. Xexéo


Instituto Militar de Engenharia (IME) IME
Praia Vermelha 22.290-270 xexeo@ime.eb.br
Rio de Janeiro, RJ, Brasil
rocha.bruno@ime.eb.br

Abstract 1 Introdução

The continuos development of quantum com- Algoritmos criptográficos assimétricos empregados


puters poses a threat to the main public-key atualmente, antes considerados seguros, e com custo de
algorithms employed today. Due to this fact, quebra de cifra superior ao da informação cifrada ou ao
public and private institutions are developing seu tempo de vida útil, estão ameaçados pelo desenvol-
algorithms resistant to quantum attacks and the vimento de computadores quânticos, graças às proprie-
National Institute of Standards and Technology dades de superposição de estados coerentes dos qubits
(NIST) has promoted a contest to update the e emaranhamento [12]. A computação quântica pode
cryptographic standards employed by the USA, reduzir a proteção e a confidencialidade de dados, de-
through the selection of one or more algorithms vido a sua capacidade que quebrar cifras baseadas em
post- quantum. This article analyzes the Crys- fatoração de números inteiros (IFP) e no problema do
tals Kyber algorithm, candidate for the third logaritmo discreto em corpos finitos (DLP) empregando
round of NIST evaluations, as well as its key o algoritmo de Shor [1].
generation, encryption, decryption, encapsula- Contrapondo-se a essa ameaça, instituições públicas e
tion and de-encapsulation indices. Based on privadas relacionadas à segurança da informação estão
different arrangements of its parameters, the desenvolvendo algoritmos resistentes à ataques efetua-
main contribution of this research is to present dos por computadores quânticos. O National Institute
alternative versions that have higher processing of Standards and Technology (NIST) tem promovido,
speeds and that maintain their security and desde 2016, um concurso para atualizar os padrões crip-
randomness in Intel i5 platforms. tográficos empregados pelos EUA, através da seleção de
um ou mais algoritmos pós-quânticos, definidos como al-
O desenvolvimento contı́nuo de computado- goritmos seguros em computadores clássicos e resistentes
res quânticos representa uma ameaça aos a ataques quânticos [2].
principais algoritmos de chave pública emprega-
Na terceira rodada do concurso, quatro propostas
dos atualmente. Devido a este fato, instituições
encontraram-se em avaliação na categoria Public-key En-
públicas e privadas estão desenvolvendo al-
cryption and Key-establishment Algorithms e possuem
goritmos resistentes à ataques quânticos e o
versões distintas que atendem a diferentes nı́veis de segu-
National Institute of Standards and Technology
rança estabelecidos pelo NIST, baseados na dificuldade
(NIST) promoveu um concurso para atualizar os
de quebrar variantes do AES e do SHA3, descritos na
padrões criptográficos empregados pelos EUA,
tabela 1. A proposta Classic McEliece baseia-se na teo-
através da seleção de um ou mais algoritmos
ria dos códigos e utiliza códigos de Goppa, uma classe de
pós-quânticos. Este pesquisa analisa o algoritmo
códigos corretores de erros. Os demais, baseados em re-
Crystals Kyber, candidato da terceira rodada
ticulados, são Crystals Kyber (reticulados MLWE - Mo-
de avaliações do NIST, bem como seus ı́ndices
dule Learning With Errors), NTRU (reticulados NTRU)
de geração de chaves, encriptação, decriptação,
e Saber (reticulados MLWR - Module Learning With
encapsulamento e desencapsulamento. Baseado
Rounding).
em diferentes arranjos de seus parâmetros, este
artigo apresenta implementações que possuem O presente artigo analisa o algoritmo Crystals Kyber
maiores velocidades de processamento e que con- e suas velocidades de geração de chaves, encriptação, de-
servam sua segurança e ı́ndices de aleatoriedade criptação, encapsulamento e desencapsulamento, e, ba-
em plataformas Intel i5. seado em diferentes arranjos de seus parâmetros, apre-
senta possı́veis implementações que resultaram maiores
velocidades de processamento e que conservam sua se-
Palavras-chave: Algoritmo pós-quântico, NIST, Crys- gurança e ı́ndices de aleatoriedade, a fim de contribuir
tals Kyber, implementação para a redução da demanda de poder computacional.
Tabela 1: Nı́veis de segurança
Nı́vel Descrição de Segurança
I Tão difı́cil de quebrar quanto o AES128 (busca exaustiva)
II Tão difı́cil de quebrar quanto o SHA256 (busca de colisão)
III Tão difı́cil de quebrar quanto o AES192 (busca exaustiva)
IV Tão difı́cil de quebrar quanto o SHA384 (busca de colisão)
V Tão difı́cil de quebrar quanto o AES256 (busca exaustiva)
Fonte: construção do autor

2 Sistemas hı́bridos

Algoritmos criptográficos de chaves simétricas empre-


gam uma única chave para cifrar e decifrar mensagens.
Devido ao fato da segurança deste tipo de algoritmo se
basear inteiramente na chave utilizada, e não em deta-
lhes técnicos dos algoritmos [15], eles não são indicados Figura 1: KEM
para determinadas aplicações criptográficas.
Protocolos assimétricos, que empregam dois tipos de
chaves - uma secreta e uma pública-, são considerados
mais seguros devido ao fato de não ser necessário com-
partilhar chaves, uma vez que a chave pública do des-
tinatário da mensagem se encontra disponı́vel publica-
mente [15].
Ambos protocolos apresentam limitações relacionadas
ao comprimento da mensagem transmitida. Dividir a
mensagem em pequenos blocos, e cifrá-los individual-
mente, não é o procedimento mais eficiente a se adotar,
em virtude do custo computacional exigido [13]. Figura 2: Algoritmo simétrico
Uma alternativa mais eficiente consiste em agluti- 3 Reticulados
nar esquemas de chave pública com esquemas de cifras
simétricas, pois embora menos seguros, são mais eficien- Um reticulado L(B) é o conjunto de todas as com-
tes que os de chave pública. Esta solução é relevante binações lineares de um conjunto B de vetores line-
quando as partes comunicantes não dispõem de uma armente independentes, onde os coeficientes das com-
chave simétrica previamente compartilhada e a mensa- binações são inteiros. Base é o conjunto de vetores for-
gem transmitida extrapola os limites de processamento madores de reticulados, que quando multiplicados por
em uma única rodada de cifragem ou decifragem em constantes, formam qualquer ponto presente neste ar-
um algoritmo de encriptação de chave pública. A com- ranjo. Portanto, um reticulado é uma estrutura ma-
binação de esquemas simétricos com assimétricos resulta temática que representa uma grade infinita de pontos,
em sistemas hı́bridos [3]. dispostos regularmente [11].
Em Rn , o domı́nio fundamental é o paralelepı́pedo
Um mecanismo de encapsulamento de chave (KEM), definido pelos n vetores da base e seu volume é, por
constituı́do por três algoritmos – KGen, KEnc e KDec –, definição, o determinante da base [11]. A figura a se-
é responsável pela geração e transporte seguro de chave guir mostra um reticulado em R2 formado por uma base
de sessão através de um canal estabelecido entre as par- composta por dois vetores.
tes comunicantes. Ele é um dos dois componentes de um
esquema hı́brido, sendo o outro denominado mecanismo
de encapsulamento de dados.
Na primeira etapa da operação de um KEM, o algo-
ritmo KGen gera uma chave de sessão aleatória com base
em um determinado parâmetro de segurança. Posteri-
ormente, ela é cifrada utilizando-se a chave pública do
destinatário no algoritmo KEnc e transmitida pelo re-
metente. Após a recepção, o destinatário, empregando
sua chave privada no algoritmo KDec, decifra o texto Figura 3: Reticulado em R2
cifrado e obtém o segredo compartilhado, que será utili- Um reticulado pode ser constituı́do por bases distin-
zado como chave simétrica nas transmissões posteriores. tas, que são classificadas de acordo com a ortogonalidade
e tamanho de seus vetores – bases boas são representa- que fosse alcançada a probabilidade de falha desprezı́vel
das por pequenos vetores ortogonais entre si, enquanto exigida pela segurança nı́vel IND-CCA [6].
bases ruins, por vetores grandes e relativamente pouco O parâmetro n foi fixado em 256 para encapsular cha-
ortogonais. A razão de Hadamard permite aferir o des- ves dotadas de 256 bits de entropia. Menores valores de
vio de ortogonalidade (ou defeito ortogonal) e indica a n resulta em chaves que requerem menores vetores de
qualidade das bases geradoras de reticulados [12]. Se o ruı́dos e que possuem consequentemente menores nı́veis
seu desvio de ortogonalidade de uma base for igual a um, de segurança. Entretanto, valores maiores reduzem a
ela será ortogonal. Quanto maior ele for, menor será a capacidade de incrementar a segurança do algoritmo
razão de Hadamard, e portanto menos ortogonal será a através do emprego do parâmetro k, que é selecionado
base. para fixar a dimensão do reticulado como um múltiplo de
Existem problemas matemáticos fundamentais relaci- n; alterar k é o principal mecanismo para escalar a segu-
onados ao conceito de reticulados, dentre os quais se rança (e, consequentemente, a eficiência) para diferentes
destacam o Closest Vector Problem (CVP) e o Shortest nı́veis no Kyber [6].
Vector Problem (SVP). O CVP consiste em, dado um O ı́ndice Q é um pequeno primo que viabiliza a Trans-
reticulado e um vetor qualquer não pertencente a ele, formada Rápida de Fourier chamada Number Theoretic
encontrar um outro vetor contido neste reticulado que Transform (NTT). Q foi fixado em 3329. O emprego
minimize a norma existente entre os dois. O SVP, consi- dessa transformada rápida reduz o tempo de execução do
derado um caso particular do CVP, ocorre quando , dado Kyber, pois é uma forma eficiente de realizar operações
uma base, se deseja encontrar o menor vetor não nulo em anéis e corpos finitos [6].
pertencente ao reticulado. A solução do SVP apresenta Escalar o parâmetro k é principal forma principal para
”um”vetor mais curto e não ”o”vetor mais curto. Uma incrementar a segurança deste KEM. Os ı́ndices k foram
observação similar se aplica ao CVP. Conforme o desvio definidos 2, 3 e 4 para atender respectivamente aos nı́veis
de ortogonalidade e a dimensão do reticulado crescem, as de segurança 1, 3 e 5. Se o NIST tivesse estabelecidos
resoluções destes problemas se tornam mais complexas. nı́veis superiores a estes, maiores valores de k teriam sido
Uma parcela dos algoritmos criptográficos baseados implementados [6].
em reticulados implementa uma variação do CVP cha- Os valores de n1, n2, du e dv foram escolhidos de
mada Learning with erros (LWE), que incorpora estru- forma a balancear segurança, tamanho do texto cifrado
turas matemáticas como anéis polinomiais e aritmética e probabilidade de falha. A escolha resulta em uma
modular[4], e que se fundamentam na adição de erros (ou probabilidade de falha inferior a 2128 [6]. O parâmetro
ruı́dos) ao conjunto de equações dos vetores da base do n1 define os ruı́dos de s e e no algoritmo de geração
reticulado que formam a chave pública. A chave privada de chaves Kyber.CPAPKE.KeyGen() e r no algoritmo
resolve este sistema. Se erros não fossem adicionados, de encriptação Kyber.CPAPKE.Enc (pk,m,r), enquanto
esse sistema poderia ser resolvido a partir da eliminação que n2 é responsável pelos erros e1 e e2 no algoritmo
gaussiana. Kyber.CPAPKE.Enc (pk,m,r). A distribuição binomial
Outros algoritmos criptográficos baseiam-se em va- centrada (CBD) é utilizada para gerar os vetores de erros
riações do LWE, semelhantes quanto ao modo de presentes nos algoritmos[6].
operação. Este tipo de construção matemática é bas-
tante promissor e tende a ser a principal escolha do NIST
[5], visto que três dos quatro finalistas da rodada atual Tabela 2: Parâmetros Crystals Kyber
Versão Nı́vel de segurança Parâmetros
do concurso, baseiam-se em reticulados. n k q (n1, n2) (du,dv)
Kyber512 1 256 2 3329 (3,2) (10,4)
4 Crystals Kyber Kyber768 3 256 3 3329 (2,2) (10,4)
Kyber1024 5 256 4 3329 (2,2) (11,5)
Crystals-Kyber é um mecanismo de encapsulamento Fonte: construção do autor
de chaves baseado no problema Module-LWE (MLWE)
e que possui nı́vel de segurança IND-CCA2. O problema O algoritmo Kyber.CPAPKE.KeyGen gera as chaves
MLWE se diferencia do introduzido por [4] na medida em públicas pk e secreta sk utilizadas nos processos de en-
que os vetores de dimensão n foram substituı́dos por po- criptação e desencriptação. As matrizes s e e, ambas de
linômios constituı́dos por elementos modulares de grau dimensão n x k e amostradas utilizando-se a CDB, re-
inferior a esta dimensão, resultando em uma construção presentam a chave privada (sk = ŝ) e um vetor de erro.
mais segura do que a proposta original. Se os vetores de A matriz Â, pública e quadrada de dimensão n, gerada
dimensão n fossem substituı́dos por polinômios formados no domı́nio NTT, é empregada na composição da chave
por elementos inteiros em vez de modulares, o produto pública pk = (p, t), através da matriz t = Â ◦ ŝ + ê, de
seria baseado em Ring-LWE. dimensões n x k. O produto t será utilizado no processo
Kyber emprega o conjunto de parâmetros elencados de encapsulamento [7].
na tabela 2 para atender três dos cinco nı́veis de segu- A encriptação da mensagem m, um dos inputs al-
rança estabelecidos pelo NIST. Em todas suas versões, goritmo de encriptação Kyber.CPAPKE.Enc(pk, m, r),
os polinômios possuem grau n = 256 e estão contidos em produz o texto cifrado ct = (c1,c2). ÂT é gerada a par-
um anel Zq, cujo valor de q foi escolhido em 3329, para tir de uma distribuição uniforme, enquanto r, e1 e e2
5 Experimentos
Tabela 3: Entradas e Saı́das KEM Crystals Kyber
Algoritmo Entrada Saı́das
Chave pública pk ∈ B 12·k·n/8+32
Nas versões de referência, Crystals Kyber emprega
PKE geração chaves pk, sk Moeda randômica r ∈ B 32 funções primitivas PRF, XOF, H, G e KDF pertencen-
Chave secreta sk ∈ B 12·k·n/8
Mensagem m ∈ B 32
tes ao padrão FIPS-202, apresentados na tabela 4. Na
variante Kyber90s, as funções SHAKE são substituı́das
PKE encriptação Chave Pública pk ∈ B 12·k·n/8+32 Texto cifrado ct ∈ B du·k·n/8+dv·n/8
pelo AES, e o padrão SHA3 pelo SHA2. Esta variante
32
Moeda randômica r ∈ B
Texto cifrado ct ∈ B du·k·n/8+dv·n/8
não possui grau de segurança menor, pois os SHA2 não
PKE decriptação Mensagem m ∈ B 32 foram comprometidos.
Chave secreta sk ∈ B 12·k·n/8
Texto cifrado ct ∈ B du·k·n/8+dv·n/8
KEM encapsulamento Chave pública pk ∈ B 12·k·n/8+32
Chave compartilhada K ∈ B ∗ Tabela 4: Funções de suporte do Crystals Kyber
Texto cifrado ct ∈ B du·k·n/8+dv·n/8 Versão XOF H G PRF KDF

KEM desencapsulamento Chave compartilhada K ∈ B
24·k·n/8+96 Kyber SHAKE-128 SHA3-256 SHA3-512 SHAKE-256 SHAKE-256
Chave secreta sk ∈ B
Kyber-90s AES-256 SHA2-256 SHA2-512 AES-256 SHAKE-256
Fonte: construção do autor Fonte: construção do autor

Independente da máquina, linguagem de programação


são amostrados utilizando-se um gerador binomial pseu- ou do compilador empregados, a análise das complexida-
dorrandômico. O texto cifrado ct é construı́do de modo des de um algoritmo avalia sua eficiência em relação ao
que seja igual a (Compressq(u, du ), Compressq(v, dv consumo de memória e ao seu tempo de execução, que
1
)), onde u = N T T (ÂT ◦ r) + e1 e v =N T T −1 (T ◦ r) + pode ser expresso através da quantidade de ciclos ne-
e2 + m [6]. O Kyber.CPAPKE.Dec retorna a mensagem cessários ao processamento [7].
m em texto claro após a decriptação do texto cifrado ct, Complementando a pesquisa apresentada em [7], os
empregando-se a chave secreta sk. M = Compress (v experimentos apresentados nos subitens a seguir fo-
N T T 1 (ŝt ◦ û), onde u e v são extraı́das de ct [6]. ram conduzidos visando verificar a velocidade de pro-
cessamento do Crystals Kyber. O primeiro experi-
O algoritmo Kyber.CCAKEM.KeyGen é o gerador mento avalia a relevância das funções Compressq e De-
das chaves pública pk ∈ B 12·k·n/8+32 e secreta sk ∈ compressq nos algoritmos Kyber.CPAPKE.Enc() e Ky-
B 24·k·n/8+96 utilizadas nas respectivas etapas de encap- ber.CPAPKE.Dec(). No segundo experimento, verifica-
sulamento e desencapsulamento. Inicialmente, pk e sk’ se a influência do parâmetro q, define a dimensão do
são gerados empregando-se o Kyber.CPAPKE.KeyGen. anel Zq. No terceiro e no quarto, as funções emprega-
Em seguida, obtêm-se a chave
secreta sk, definida como das como primitivas simétricas H, G, XOF e PRF são

a concatenação (sk’ pk H(pk) z), onde z é um valor analisadas e substituı́das.

binário randômico de 32 bytes [6]. Em todos eles, foi empregada uma máquina Intel®
Core™ i5-2450M CPU @ 2.50GHz × 4, com 6,0 GiB
O Kyber.CCAKEM.Enc(pk) retorna o texto cifrado de RAM utilizando o sistema operacional Ubuntu 22.04
ct ∈ B du·k·n/8+dv·n/8 e a chave compartilhada K ∈ B , LTS 64 bits, sem recursos de aceleração em hardware,
a partir do emprego da chave pública pk. Inicialmente, bem como o submissão referência do Kyber apresentada
gera-se uma matriz aleatória u de dimensão k x n, sendo na terceira rodada do concurso do NIST disponı́vel em
u = r*A + e1T, empregada como chave efêmera [6]. [14].
Posteriormente, tem-se a geração de um segundo erro
5.1 Funções Compressq e Decompressq
e2, cuja dimensão é igual à da mensagem m, uma matriz
quadrada de ordem k, para que a operação v = r x t A função Compressq (x, d), empregada sobre um ele-
+ e2 +(q/2) x m seja realizada. O valor q é o primo mento x pertencente ao anel Zq, retorna um inteiro per-
escolhido de forma a possibilitar a operação NTT. Por tencente ao conjunto 0,..., 2d−1 , sendo d < dlog2(q)e.
fim, a mensagem encapsulada é obtida pela concatenação Analogamente, a função Decompressq retorna um x’ =
das matrizes u e v [6]. Decompressq (Compressq (x, d), d), onde x’ é um ele-
mento próximo a x [6].
O algoritmo de desencapsulamento Ky-
A principal finalidade da função Compressq é redu-
ber.CCAKEM.Dec(c,sk) retorna a chave compartilhada
zir o tamanho do texto cifrado, descartando seus bits
K, a partir dos inputs ct ∈ B du·k·n/8+dv·n/8 e sk ∈
menos significativos, sem comprometer a integridade do
B 24·k·n/8+96 . Calcula-se u x v = w e realiza-se a
processo de decriptação.
subtração v-w. Se o resultado desta subtração for
Foram criadas três versões, denominadas Ensaio 01,
mais próximo de q/2 do que zero, a mensagem foi
Ensaio 02 e Ensaio 03, que não empregam essas funções
desencapsulada corretamente; todavia, se estiver mais
e referem-se respectivamente às versões Kyber512, Ky-
perto de zero, o resultado da operação será zero [7].
ber768 e Kyber1024. Os ı́ndices da tabela 5 expressam
As entradas e saı́das dos algoritmos de encriptação e a velocidade de processamento em relação a quantidade
desencriptação Kyber.PKE, bem como as de encapsula- de ciclos utilizados.
mento e desencapsulamento Kyber.KEM encontram-se Com relação ao Kyber512, verifica-se que sua versão
dispostas na tabela 3. alternativa apresenta melhoria no desempenho do algo-
da matriz aleatória Â, e a SHAKE-256 utilizada no pro-
Tabela 5: Resultado do experimento 01
cesso de geração da chave privada e dos erros e, e1,
Versão Geração de chaves Encriptação Decriptação
Kyber512 120.760 137.033 44.611
e2. Ambos hash H (SHA3-256) e G (SHA3-512) partici-
Ensaio 01 116.004 (-4%) 137.488 (+0,03%) 44.543 (-0,01%) pam nos algoritmos de encapsulamento e desencapsula-
Kyber768 192.706 217.390 55.493 mento. Nas versões 90s, substituem-se as SHAKE-128 e
Ensaio 02 192.376 (-0,001%) 216.991(-0,01%) 56.662 (+0,01%) SHAKE-256 pelo AES256, como XOF e PRF, respecti-
Kyber.1024 307.071 336.842 73.919 vamente; a famı́lia Keccak é substituı́da pelo SHA256 e
Ensaio 03 310.538 (+1,01%) 337.490 (+0,01%) 75.126 (+0,01%) SHA512.
Fonte: construção do autor Foram simuladas seis ensaios alternando-se o emprego
das funções SHA2-256/ 512 e SHA3-256/ 512 como
ritmo de geração de chaves. Todavia, a alternativa do funções hash H e G, a fim de avaliar o impacto dos hash
Kyber768 não possui reduções ou acréscimos significati- SHA2-256/512 e SHA3-256/512 no desempenho dos al-
vos em relação à sua referência, enquanto que Kyber1024 goritmos de geração de chaves, encapsulamento e desen-
apresenta redução de desempenho devido ao incremento capsulamento. Os ensaios 04, 05, 06, 07, 08 e 09 referem-
de operações de aritmética polinomial. se respectivamente aos algoritmos Kyber512, Kyber512-
90s, Kyber768, Kyber768-90s, Kyber1024 e Kyber1024-
5.2 Anéis Zq 90s.Os ı́ndices encontram-se apresentados na tabela 7.
Em um problema MLWE, cada entrada da matriz
pública  é um polinômio distinto pertencente ao anel
Zq[x]/(xn +1). Em problemas RLWE, cada linha desta Tabela 7: Resultado do experimento 03 (H e G)
matriz é um polinômio distinto e cuja construção, cı́clica, Versão H G Geração de chaves Encapsulamento Desencapsulamento
Kyber512 SHA3-256 SHA3-512 131.185 169.151 196.297
é baseada na primeira linha. Kyber512-90s SHA2-256 SHA2-512 131.660 (+0,3%) 168.598 (-0,004%) 198.542 (+1,01%)
Ensaio 04 SHA2-256 SHA3-512 132.717 (+1,01%) 170.997 (+1,01%) 198.578 (+1,01%)
O emprego da NTT possibilita operações algébricas Ensaio 05 SHA3-256 SHA2-512 132.442 (+1,00%) 173.065 (+1,02%) 200.541 (+1,02%)
de multiplicação polinomial mais rápidas, maior capaci- Kyber768 SHA3-256 SHA3-512 218.273 265.529 302.868
Kyber768-90s SHA2-256 SHA2-512 214.870 (-0,02%) 269.156 (+1,01%) 421.206 (+39,07%)
dade de transmissão de bits por mensagens e aumento Ensaio 06 SHA2-256 SHA3-512 219.567 (+1,00%) 286.044 (+1,07%) 328.222 (+1,08%)
Ensaio 07 SHA3-256 SHA2-512 217.763 (-0,01%) 274.283 (+1,03%) 310.652 (+1,02%)
da segurança em relação ao problema LWE. Kyber1024 SHA3-256 SHA3-512 331.714 388.970 434.883
O parâmetro q define a dimensão do anel Zq. Na atual Kyber1024-90s SHA2-256 SHA2-512 346.424 (+1,04%) 619.948 (+59,38%) 680.173 (+56,40%)
Ensaio 08 SHA2-256 SHA3-512 355.258 (+1,07%) 419.701 (+1,07%) 473.154 (+1,08%)
rodada do concurso, ele foi estabelecido como 3329, mas Ensaio 09 SHA3-256 SHA2-512 338.063 (+1,01%) 404.199 (+1,03%) 469.671 (+1,07%)
diferentes valores poderiam ser empregados para possi- Fonte: construção do autor
bilitar operações polinomiais baseadas na NTT.
Avaliou-se o processamento de geração de chaves do Observando as chamadas às funções H e G, verifica-se
Kyber512 empregando-se os dois números primos meno- o emprego majoritário do hash H em relação ao hash G:
res (257 e 769) e o número primo imediatamente maior uma vez na Geração de chaves, três vezes no encapsula-
(7681) que permitem a multiplicação baseada na NTT. mento e uma vez no desencapsulamento, ressaltando sua
Os resultados deste experimento encontram-se dispostos influência no processamento dos algoritmos.
na tabela 6. As funções SHA3 são extremamente velozes quando
implementadas em hardwares dedicáveis ou pro-
Tabela 6: Resultado do experimento 02 gramáveis, porém mais lentas que as funções SHA2
Versão Kyber512 q quando implementadas em softwares. Este quadro é re-
3329 769 257 7681 vertido nas versões de referência do Kyber, pois os SHA3
Geração de chaves 121.323 118.173 (-3%) 117.343 (-4%) 137.869 (+13%) fazem uso do paralelismo, resultando em vetorizações
Fonte: construção do autor mais eficientes. Importante destacar que as primitivas
SHA2 utilizadas nestas simulações não fazem uso de re-
Observa-se que a redução do parâmetro beneficia o cursos de aceleração em hardware [6].
desempenho do algoritmo, mas reduz também sua se-
gurança, e consequente eficiência. Empregando-se q = 5.3.2 Primitivas XOF e PRF
7681, verifica-se piora significativa no desempenho do al- Kyber utiliza apenas três primitivas simétricas. Esta
goritmo (+13%). Conclui-se, portanto, que o valor 3329 decisão foi tomada para reduzir o tamanho do código-
corresponde ao ponto ótimo, visto que a relação proces- fonte e a possibilidade de fraquezas que possam ser ex-
samento x segurança encontra-se balanceada. plorada. Existem poucas XOF descritas na literatura,
sendo as mais conhecidas, e que também cunharam o
5.3 Primitivas simétricas H, G, XOF e PRF
termo XOF, as funções SHAKE baseadas na famı́lia Kec-
5.3.1 Primitivas H e G cak [6].
Nas versões de referências, Kyber emprega uma função A escolha do SHAKE-128 como XOF nas versões de
de saı́da extensı́vel (SHAKE-128), uma função pseudo- referência foi devido a sua saı́da pseudo-aleatória, e não
aleatória (SHAKE-256), uma função de derivação de nas suas propriedades de segurança tradicionais de hash.
chave (SHAKE-256) e duas funções hash H (SHA3-256) Na segunda rodada do concurso, H, G e PRF foram ins-
e G (SHA3-512). SHAKE-128 é empregada na formação tanciadas utilizando a SHAKE-256. Essa alteração na
versão 3 do Kyber aumentou o tamanho do seu código e criptograma, verifica-se a impossibilidade de utilização
melhorou o desempenho de seus algoritmos. de sequências verdadeiramente aleatórias, dada a difi-
Semelhante aos hash H e G, avaliou-se o desempe- culdade de guarda e emprego das chaves empregadas.
nho das funções SHAKE 128, SHAKE 256 e AES 256 Esta dificuldade remete ao One-Time Pad, cuja chave
como XOF e PRF nos processos de geração das cha- aleatória possui tamanho igual ao da mensagem cifrada.
ves, encriptação e decriptação do Kyber. Seguindo- Normalmente, uma semente de um gerador de números
se a métrica anterior, foram simulando-se seis ensaios pseudoaleatórios é pequena e fácil de ser substituı́da, e
alternando o emprego das funções SHAKE 128/256 e deseja-se que a sua geração seja rápida, a fim de pou-
AES256. Os ensaios 10, 11, 12, 13, 14 e 15 referem-se par recursos computacionais e priorizar o emprego do
respectivamente ao Kyber512, Kyber512-90s, Kyber768, criptograma.
Kyber768-90s, Kyber1024 e Kyber1024-90s, e os resul- Os estados binários de números pseudoaleatórios de-
tados obtidos encontram-se na tabela 8. vem possuir uma cardinalidade de bits balanceada, ex-
pressa em quantidades semelhantes de bits 0 e 1. Em
uma análise de sequências binárias, o número de con-
Tabela 8: Resultado do experimento 04 (XOF e PRF)
Versão XOF PRF Geração de chaves Encapsulamento Desencapsulamento cordâncias e discordâncias de pares (0,1) deve ser pro-
Kyber512
Kyber512-90s
SHAKE 128 SHAKE 256
AES256 AES256
121.830 136.537
211.724 (+73%) 248.778 (+82%)
43.103
46.287 (+7,3%)
porcional em todos os trechos analisados.
Ensaio 10 SHAKE128 AES256 123.388 (+1,2%) 142.941 (+4,6%) 45.125 (+4,6%) Semelhante às one-way functions, o conhecimento de
Ensaio 11 AES256 SHAKE128 124.038 (+1,8%) 153.056 (+12%) 51.021 (+18%)
Kyber768 SHAKE 128 SHAKE 256 199.905 242.119 59.784 uma sequência numérica saı́da de um cifrador não deve
Kyber768-90s AES256 AES256 376.025 (+88%) 413.290 (+70%) 58.484 (-3%)
Ensaio 12 SHAKE128 AES256 212.758 (+6,4%) 233.452 (-4,5%) 61.943 (-3,6%)
permitir que um criptoanalista obtenha os parâmetros
Ensaio 13 AES256 SHAKE128 199.085 (-1%) 225.239 (-7%) 58.256 (-3%) iniciais do algoritmo de geração da cifra, ou que possa
Kyber1024 SHAKE 128 SHAKE 256 321.894 354.209 82.576
Kyber1024-90s AES256 AES256 608.668 (+89%) 662.623 (+87%) 75.885 (-9%) predizer bits antecedentes ou subsequentes da sequência
Ensaio 14 SHAKE128 AES256 318.514 (-2%) 351.588 (-1%) 82.737 (+0,01%)
Ensaio 15 AES256 SHAKE128 328.679 (+2%) 360.075 (+0,16%) 78.716 (-5%) binária em análise, nem descobrir a semente ou a chave
Fonte: construção do autor que foram empregadas para gerá-la.

6.1 Baterias NIST e Diehard


Verifica-se que a famı́lia Keccak (SHAKE128/256)
apresenta melhor desempenho que o AES256. A uti- Os ensaios 01, 12, 13, 14 e 15 possuem desempenho
lização desta famı́lia proporciona taxas de transferência superior ao de suas referências e utilizam sementes pro-
de bits mais elevadas e maior proteção contra ataques venientes do gerador de números aleatórios (RNG) da bi-
sidechannel. Portanto, as primitivas AES, SHA256 e blioteca OpenSSL. Todavia, outros geradores poderiam
SHA512 se tornam mais interessantes quando se empre- ter sido empregados, como a função srand() da lingua-
gam recursos de aceleração em hardware. Considerando- gem de programação C.
se que o padrão FIPS202 foi desconsiderado nas versões A fim de avaliar a relevância da OpenSSL, ela foi subs-
90s, os ı́ndices apresentados pela Kyber poderiam ser tituı́da pela srand() no processo de geração de chaves do
melhorados substituindo-se o SHA3 e as SHAKE 128/ Kyber. Os resultados encontram-se dispostos na tabela
256 pelo hash KangarooTwelve. 9. Verifica-se que o emprego da função srand() não é van-
KangarooTwelve é XOF derivada da famı́lia Keccak. tajoso em relação à OpenSSL, mas se mostra pertinente
Devido ao seu grau de paralelismo, esta função é mais quando a utilização desta biblioteca não for possı́vel.
rápida que as funções SHA3 e SHAKE pertencentes ao
FIPS202, conservando a segurança por elas proporciona- Tabela 9: Resultado do experimento 05
das. Em arquiteturas Intel, o desempenho desta função é Versão Geração de chaves (OpenSSL) Geração de chaves (Srand())
40% mais rápido do que os SHA256 e SHA512, enquanto Kyber512 118.750 131.700 (+10%)
que em processadores Apple14, esta diferença aumenta Ensaio 01 114.000 (-4%) 125.480 (-5.2%)
Kyber768 195.794 207.204 (+5,8%)
para 70%. Em plataformas de baixo custo e para mensa- Ensaio 12 208.324 (+6,5%) 220.480(+6,4%)
gens curtas, o KangarooTwelve chega a ser aproximada- Ensaio 13 193.836 (-1%) 205.132(-1%)
mente duas vezes mais rápido que a instância SHAKE128 Kyber1024 315.074 335.548 (+6,4%)
[8]. Ensaio 14 309.203 (-2%) 329.295 (-2%)
Ensaio 15 321.375 (+2%) 341.268 (+1,70%)
Fonte: construção do autor
6 Teste de aleatoriedade
Sequências numéricas aleatórias são únicas e sua Para análise de seus ı́ndices de aleatoriedade, esses en-
geração não pode ser repetida por um mesmo gera- saios foram submetidas aos quinze testes da bateria do
dor randômico, uma vez que a geração segue uma dis- NIST, desenvolvida com foco em aplicações criptológicas
tribuição uniforme, tornando estes números estatisti- [09]: frequência (monobit), frequência dentro de blo-
camente independentes; um procedimento de geração cos, corridas, mais longa corrida de 1’s em um bloco,
de uma sequência não pode influenciar o processo de posto para matrizes binárias, transformação discreta de
criação da próxima sequência. Sequências pseudoa- Fourier (espectral), não sobreposição de padrão, sobre-
leatórias são sequências aparentemente aleatórias, mas posição de padrão, estatı́stica universal de Maurer, com-
geradas através de processos determinı́sticos. plexidade linear, serial, entropia aproximada, somas cu-
Considerando a necessidade de decifragem de um mulativas, excursões aleatórias e variante de excursões
aleatórias. Devido à natureza pseudorrandômica das Considerando que o principal fator responsável pelo
sequências binárias, pequenos desvios ou falhas de alea- aumento da velocidade de processamento foi o desempe-
toriedade são normais. nho das funções empregadas como PRF e XOF, traba-
Para a realização dos testes, geraram-se binários pro- lhos futuros podem desenvolver alternativas que utilizem
venientes de 100 amostras de 256 bits contidos nos o hash KangarooTwelve, também desenvolvido pela Kec-
textos cifrados produzidos pelas versões em análise, e cak, ou que se baseiem no SHAKE128, pois estas duas
analisaram-se 10 bitstreams de 2.000.000 de bits. Os en- funções possuem taxas de transferências de dados maio-
saios 12, 13, 14 e 15 foram aprovadas nos testes, e um res que os hash atualmente empregados.
dos testes de sobreposição de padrão da ensaio 01 foi re- O fato de três dentre os quatro finalistas da atual
provado devido ao seu p-valor 0,000040. Na bateria do rodada do concurso basearem-se em reticulados, permi-
NIST, um p-valor P ¡ 0,01 indica que a sequência não é tindo que os nı́veis de segurança estipulados pelo NIST
aleatória com grau de confiança de 99% . sejam alcançados sem o emprego de extensas chaves,
Semelhante à bateria de testes do NIST, a bateria Di- indica que o problema LWE e suas variações devem
ehard também possui 15 testes estatı́sticos que permitem ser pesquisadas, fazendo-se necessário determinar qual
aferir a qualidade da aleatoriedade de sequências binárias dos problemas MLWE, RLWE e LWR oferece maior
pseudorrandômicas. Alguns destes testes são comuns as segurança e grau de aleatoriedade à custa do menor
duas baterias. A bateria retorna p-valores contidos no sacrifı́cio computacional.
intervalo (0,1). Caso um p-valor seja maior que 0.975 ou
menor que 0.025, o resultado do teste será a reprovação Referências
[10]. [1] P. W. Shor, Polynomial-Time Algorithms for Prime
Seguindo a métrica anterior, mesmo o ensaio 01 tendo Factorization and Discrete Logarithms on a Quantum
sido reprovada na bateria de testes do NIST, todos os Computer, SIAM Journal on Computing, v. 26, n. 5, p.
cinco foram submetidas à bateria Diehard. A análise 1484–1509, 1997
dos resultados observados indica que todas as versões [2] Micciano, D.,Regev, O. (2008), Lattice-based cryp-
possuem ı́ndices semelhantes aos da referência Kyber512 tografy, CSE Department, University of California, San
confirmando a possibilidade de emprego em aplicações Diego, p 147–191
criptológicas. A tabela 10 apresenta o total de falhas [3] CRAMER, R.; SHOUP (2003), V. Design and
ocorridas durante a execução da bateria. analysis of practical public-key encryption schemes se-
cure against adaptive chosen ciphertext attack. SIAM
Tabela 10: Falhas bateria Diehard Journal on Computing, v. 33, n. 1, p. 167–226
Testes Diehard Kyber512 Ensaio 01 Ensaio 12 Ensaio 13 Ensaio 14 Ensaio 15
Birthday Spacings Test 0 0 0 0 0 0 [4] Regev, O. (2010), “The Learning with Erros Pro-
Overlapping 5-Permutation Test 0 1 0 1 2 2
Binary Rank Test For 31 x 31 and 32 x 32 Matrices. 0 0 0 0 0 0 blem”, Invited survey in CCC, v. 7, n. 30, p. 11, 2010.
Binary Rank Test For 6x8 Matrices 3 0 1 0 1 0
The Bitstream Test 1 0 2 3 0 0 [5] Moody, D. (2021), Presentation “NIST Status
Opso, Oqso And Dna 3 2 3 0 4 0
Count-The-1’S Test On A Stream Of Bytes. 0 0 0 0 0 0 Update on the 3rd Round”, Crytography Technology
Count-The-1’S Test For Specific Bytes. 0 0 0 0 3 1
Parking lot test 0 0 0 1 0 0 Group, National Institute of Standards and Technology.
Minimum Distance test 0 0 0 0 0 0
3DSphere test 0 0 1 1 1 0 [6] Peter Schwabe (2020), CRYSTALS-
Sqeeze test 0 0 0 0 0 0
Overlapping Sums test 0 0 0 0 0 0 Kyber Algorithm Specifications And Suppor-
Runs test 0 1 0 0 0 0
Craps test 0 0 0 0 0 0 ting Documentation.Disponı́vel em: Htps://pq-
Fonte: construção do autor crystals.org/kyber/data/kyber-specification-round3-
20210131.pdf. Acesso em: 10 de julho de 2022.
[7] Felipe J.A. Rampazzo (2021), Estudos de oti-
7 Conclusão mização do algoritmo de criptografia pós-quântica Crys-
Esta pesquisa analisou diferentes configurações do al- tals Kyber. Worlshop de trabalhos de iniciação cientı́fica
goritmo Crystals Kyber. Alguns ensaios apresentaram e de graduação - Simpósio de trabalhos de iniciação ci-
maior velocidade de processamento que suas versões de entı́fica e de graduaçãop - Simpósio Brasileiro de Se-
referência, sem comprometer a segurança proporcionada gurança da Informação e de Sistemas Computacionais
originalmente. Uma parcela dos ı́ndices verificados di- (SBSEG), 21. , 2021, Evento Online. Anais [...]. Porto
ferem parcialmente dos apresentados por [7] devido aos Alegre: Sociedade Brasileira de Computação, 2021 . p.
diferentes ambientes computacionais em que as pesqui- 205-218
sas foram conduzidas. [8] Bertoni, G. et al.(2022), KangarooTwelve: fast
Os ensaios 12, 13, 14 e 15 não pertencem ao padrão hashing based on Keccak-p, Blog post on KeccakTeam
FIPS202, e revelam que o conjunto Crystals-Kyber ad- https://keccak.team/kangarootwelve.html. Acesso em:
mite aperfeiçoamentos mediante alterações em sua arqui- 10 de julho de 2022.
tetura e emprego de recursos de aceleração em hardware. [09] NIST Special Publication 800-22, A Statistical
Esta pesquisa, conduzida sob o prisma de aumento de Test Suite for Random and Pseudorandom Number Ge-
desempenho, não analisou aspectos relacionados ao con- nerators for Cryptographic Applications, 2010. Acesso
sumo de memória, o que pode ser explorado em pesquisas em: 10 de julho de 2022.
futuras. [10] https://web.archive.org/web/20160125103112/http:
stat.fsu.edu/pub/diehard/. Acesso em: 10 de julho de
2022.
[11] Pellegrini, Jerônimo (2015), Álgebra linear.
Disponı́vel em: https://www.ime.unicamp.br/ de-
leo/MA327/ld4.pdf. Acesso em 10 de julho de 2022.
[12] BARROS, C. F. ; SCHECHTER, L. M. . Uma
Análise do Sistema de Criptografia GGH-YK. In: Con-
gresso de Matemática Aplicada e Computacional Su-
deste 2013, 2013, Bauru. Anais do Congresso de Ma-
temática Aplicada e Computacional CMAC Sudeste
2013. São Carlos: Sociedade Brasileira de Matemática
Aplicada e Computacional, 2013. p. 138-143.
[13] PEREIRA, Mayana Wanderley. Novas cons-
truções de criptossistemas seguros contra ataques adap-
tativos de texto cifrado escolhido baseadas em variantes
fracas da hipótese de Diffie-Hellman e nas hipóteses de
Mceliece. 2011. 60 f. Dissertação(Mestrado em Enge-
nharia Elétrica)-Universidade de Brası́lia, Brası́lia, 2011
[14] https://csrc.nist.gov/Projects/post-quantum-
cryptography/post-quantum-cryptography-
standardization/round-3-submissions. Acesso em:
10 de julho de 2022.
[15] BELLARE, M.; ROGAWAEY (2019), P. In-
troduction to modern cryptography. Davis, United
States of America: University of California at Davis,
2005. Disponı́vel em: https://web.cs.ucdavis.edu/ ro-
gaway/classes/227/spring05/book/main.pdf. Acesso
em: 10 de julho de 2022.

Você também pode gostar