Você está na página 1de 18

Universidade Tecnológica Federal do Paraná – Câmpus Curitiba

Engenharia da Computação
IF66B – Redes de Computadores
Prof. Daniel F. Pigatto

Criptografia ECC

Bruno Clemente
Ewerton Godoi Fiel
Guilherme Furst de Souza

Curitiba, PR
07 de maio de 2018
Resumo
Nesta revisão bibliográfica será apresentado o conceito de criptografia e um
pouco de sua história e do seu papel na sociedade, explicitando e exemplificando
detalhes do processo de aplicação do método de criptografia utilizando curvas elíp-
ticas (ECC), buscando expor de maneira concisa e clara essas informações. Além de
também fazer comparações com outros métodos, ressaltando vantagens e desvanta-
gens e justificando com dados coletados de experimentos já realizados, os motivos
para a utilização deste método.

Palavras-chaves: curvas elípticas. criptografia. ECC. criptografia assimétrica.


2

Sumário

1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 História . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Criptografia assimétrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Criptografia Utilizando Curvas Elípticas (ECC). . . . . . . . . . . . . . . . 5

3 Criptografia Utilizando Curvas Elípticas . . . . . . . . . . . . . . . . . . . . 6


3.1 Definição matemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Operações sobre os Pontos . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 Ordem e Cofator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.4 Problema do Logaritmo Discreto para Curvas Elípticas . . . . . . . . . . . 8

4 Técnicas e Ferramentas de Aplicação da ECC para criptografia . . . . . . . 10


4.1 Troca de chaves Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . . 10
4.2 Algorítimo ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

5 Objetivos e Aplicações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

6 Vantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.1 Segurança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.2 Espaço requerido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.3 Eficiência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

7 Desvantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

8 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3

1 Introdução

A criptografia, apesar de sua utilização desde tempos antigos, com o aumento


exponencial das transferências de dados nos dias atuais, tem se tornado algo cada vez mais
essencial, requisitando sempre mais eficiência e mais segurança nos métodos utilizados.
Para suprir essa crescente necessidade de segurança surgiram os métodos assimétricos de
criptografia, métodos que não se baseiam apenas em chaves públicas, mas também em
chaves privadas, dificultando assim a interceptação e a quebra da criptografia. Dentre
estes métodos de criptografia assimétrica um em particular será trabalhado neste artigo,
o ECC(Elliptic-Curve Cryptography), que é um método de criptografia que utiliza-se de
pontos em uma curva elíptica para encriptar dados.
Devido ao fato da ECC ser um processo assimétrico, e também por utilizar-se de
cálculos matemáticos de alta complexidade, ela possui um nível de segurança muitíssimo
elevado e também um eficiência maior em relação ao tamanho das chaves, se comparada
a outros métodos.
A proposta desta revisão bibliográfica é expor o funcionamento deste processo e
a matemática por trás do mesmo, comparando seus atributos com os de outros métodos,
apontando suas vantagens e desvantagens e aplicações nas quais ele é utilizado.
O restante do artigo está apresentado da seguinte forma: no Capítulo 2 será ex-
posta uma breve história da criptografia, no Capítulo 3 será exposto o funcionamento do
método em foco, no Capítulo 4 haverá exemplos de técnicas e ferramentas para a utiliza-
ção do processo, no Capítulo 5 seus objetivos e aplicações, no Capítulo 6 e no Capítulo 7
apresentaremos suas vantagens e desvantagens e no Capítulo 8 uma conclusão chegada
após a pesquisa.
4

2 História

2.1 Criptografia assimétrica


Desde a antiguidade, há o interesse de preservar o conteúdo de mensagens im-
portantes. Acredita-se que a primeira tentativa de criptografia ocorreu na cidade egípcia
Menet Khufu, onde hieroglifos de uma tumba foram escritos de uma forma peculiar para
obscurecer seu sentido (DAMICO, 2009).
Posteriormente, surge a Cifra de César. Um dos meios mais simples de se cripto-
grafar uma mensagem, onde cada letra é substituída por outra que está abaixo dela no
alfabeto um número fixo de vezes. Esse tipo de criptografia é conhecido como Monoalfa-
bético, pois utiliza o mesmo alfabeto para criptografar (DAMICO, 2009).
Com o passar das décadas, várias novas formas de criptografia surgiram. Porém,
todas elas podiam ser classificados como simétricas. Ou seja, o mesma senha utilizada
para criptografar é usada também para descriptografar realizando a operação inversa. O
que traz o problema de como garantir a segurança da senha.
Em 1976, os engenheiros Whitfield Diffie e Martin Hellman perceberam que seria
possível resolver o problema da distribuição da chave, se fosse utilizado um conjunto
de parâmetros públicos e chaves privadas. Onde com base nestas informações, ambas as
partes poderiam trocar mensagens e gerar chaves para criptografar as mensagens. Todavia,
mesmo se alguém souber dos parâmetros públicos e "escutar"as mensagens que estão sendo
trocadas, não conseguira descobri as chaves usadas na criptografia. Este método ficou
conhecido como troca de chave Diffie-Hellman e é considerado a primeira tentativa de
criptografia com chave pública. (SIMMONS, 2017).
Em 1985, Taher ElGamal (ELGAMAL, 1985) propôs utilizar-se do problema do
logaritmo discreto para criptografar e descriptografar mensagens usando duas chaves. A
chave pública será utilizada para codificar a mensagem. Enquanto que a chave privada
é utilizada para descriptografar a mensagem. Este método é chamada de criptografia
assimétrica.
Posteriormente, Ron Rivest, Adi Shamir e Leonard Adleman criaram um algoritmo
para implementar uma criptografia assimétrica utilizando exponenciação modular para
pares de primos muito grandes. Este algoritmo ficou conhecido como criptografia RSA, a
partir das iniciais dos seus criadores.
Capítulo 2. História 5

2.2 Criptografia Utilizando Curvas Elípticas (ECC).


A curva elíptica e suas propriedades têm sido estudadas desde o terceiro século
antes de Cristo. Porém, seu uso da criptografia é muito recente. Em 1984 H. Lenstra propôs
o método de fatoração de inteiros utilizando curvas elípticas (BARSAGADE; MESHRAM,
2014).
No ano seguinte, N. Koblitz e V. Miller proporam outro meio de utilizar curvas
elípticas na criptografia. Eles propuseram utilizar os pontos de uma curva elíptica definida
sobre um plano finito em sistemas de criptografia de logaritmo discreto. Em 2005 a NSA
recomendou publicamente o uso da criptografia ECC (BARSAGADE; MESHRAM, 2014).
6

3 Criptografia Utilizando Curvas Elípticas

3.1 Definição matemática


As curvas elípticas são curva definidas por uma equação cúbica. Uma curva elíptica
𝐸 deve obedecer a seguinte relação matemática(SANGALLI; HENRIQUES, 2011):

𝑦 2 = 𝑥3 + 𝑎𝑥 + 𝑏 (3.1)

Onde, ’a’ e ’b’ pertencem ao campo K. Além disso, não pode haver fatores repetidos
o que equivale a dizer que 4𝑎3 + 27𝑏2 ̸= 0.
O campo K pode ser um dos seguintes conjuntos: R, Q, C e Z/𝑝Z. Segue abaixo
alguns exemplos de curvas elípticas definidas em diferentes campos K. A figura 3.1 mostra
para o campo R. A figura 3.2 mostra para o campo C e a figura 3.3 mostra apara o campo
Z/23Z.

Figura 1: Curva eliptica sobre R. (Fonte www.wikipedia.com)


Capítulo 3. Criptografia Utilizando Curvas Elípticas 7

Figura 2: Curva eliptica sobre C. (Fonte www.math.mcgill.ca)

Figura 3: Curva eliptica sobre Z/23Z. (Fonte www.certicom.com)

3.2 Operações sobre os Pontos


Para podermos entender como aplicar curvas elípticas na criptografia, é preciso
entender algumas operações. É possível definir uma operação de adição sobre o conjunto
de pontos que definem a curva elíptica. Essa operação define um grupo aditivo abeliano
Capítulo 3. Criptografia Utilizando Curvas Elípticas 8

denotado por 𝐸(𝐾, +) (SANGALLI; HENRIQUES, 2011). O ponto 𝑂 é o ponto do infinito


e é a unidade do conjunto.
Esta operação de adição tem as seguintes propriedades:

1. 𝑃 + 𝑂 = 𝑂 + 𝑃 = 𝑃, ∀𝑃 ∈ 𝐸(𝐾)

2. Se 𝑃 = (𝑥, 𝑦) ∈ 𝐸(𝐾), então (𝑥, 𝑦) + (𝑥, −𝑦) = 𝑂

3. Se 𝑃 e 𝑄 ∈ 𝐸(𝐾) e 𝑃 ̸= 𝑄, então 𝑃 + 𝑄 = 𝑅. Onde 𝑅 = (𝑥𝑅 , 𝑦𝑅 ) e 𝑥𝑅 e 𝑦𝑅 são


definidos por:

𝑥𝑅 = 𝜆 2 − 𝑥𝑃 − 𝑥𝑄
𝑦𝑅 = −𝑦𝑃 + 𝜆(𝑥𝑃 − 𝑥𝑅 )
𝑦𝑄 − 𝑦𝑃
𝜆 =
𝑥𝑄 − 𝑥𝑃

4. Seja 𝑃 ∈ 𝐸(𝐾), então 𝑃 + 𝑃 = 2𝑃 = 𝑅. Se 𝑦𝑃 = 0, então 𝑅 = 𝑂. Caso contrário,


temos:

𝑥𝑅 = 𝜆2 − 2𝑥𝑃
𝑦𝑅 = −𝑦𝑃 + 𝜆(𝑥𝑃 − 𝑥𝑅 )
3𝑥𝑝 2 + 𝑎
𝜆 =
2𝑦𝑃

Lembrando que 𝑎 é uma propriedade da curva em questão.

3.3 Ordem e Cofator


Seja uma curva elíptica 𝐸(Z/𝑝Z). Vamos pegar um ponto 𝐺 ∈ 𝐸(Z/𝑝Z). Podemos
definir um grupo cíclico, onde tomamos 𝐺 como ponto de partida e vamos pegando todos
os pontos 𝑘𝐺. Chamamos de ordem 𝑛 deste grupo, o menor valor inteiro para qual 𝑛𝐺 = 𝑂
(LARA; OLIVEIRA, 2010).
O cofator ℎ de de um grupo cíclico definido sobre uma curva elíptica é dado por
|𝐸(Z/𝑝Z)|
ℎ= 𝑛
Onde |𝐸(Z/𝑝Z)| é o número de pontos sobre a curva. Para a aplicação em
.
criptografia, o ideal é que o cofator seja 1.

3.4 Problema do Logaritmo Discreto para Curvas Elípticas


Primeiramente vamos definir o que é o problema do logaritmo discreto.
Capítulo 3. Criptografia Utilizando Curvas Elípticas 9

Logaritmo discretos são logaritmos definidos dentro de grupos cíclicos multiplica-


tivos (ELGAMAL, 1985). Tendo a seguinte equação: 𝑐 = 𝛼𝑘 𝑚𝑜𝑑𝑝. Suponha que queremos
descobrir o valor de 𝑘 a partir de 𝑐, 𝛼 e 𝑝. Para isso temos que a fazer a operação inversa
chamada de logaritmo discreto.
Podemos notar que essa operação não é trivial. Todavia, para certo valores há
soluções muito eficientes. Por exemplo, se 𝑝 − 1 tiver apenas fatores primos pequenos, é
fácil calcular o logaritmo discreto. (POHLIG; HELLMAN, 1978)
No caso de curvas elípticas, definimos o logaritmo discreto da seguinte maneira.
Seja 𝐸(Z/𝑝Z) uma curva elíptica. Seja 𝐺 ∈ 𝐸(Z/𝑝Z) e 𝑛 ∈ R, 𝑛𝐺 = 𝐺 + 𝐺 + 𝐺... + 𝐺
n vezes. Temos então 𝑛𝐺 = 𝑅. O logaritmo discreto trata-se da operação inversa de, a
partir do 𝑅, 𝐺 e 𝑝, encontrar 𝑛. Esse problema é classificado como NP-Difícil, ou seja,
não há uma solução para ele que não seja de tempo exponencial.
10

4 Técnicas e Ferramentas de Aplicação da


ECC para criptografia

4.1 Troca de chaves Diffie-Hellman


Como já mencionado anteriormente, o método da troca de chaves de Diffie-Hellman
é um método que permite a troca de senha de forma segura sobre um canal aberto
(não criptografado). O método foi desenvolvido utilizado a dificuldade de calcular-se o
logaritmo discreto como principal fonte de segurança. Podemos então, adapta-lo para
utilizar curvas elípticas.
Para melhor demonstrar, vamos supor que há dois indivíduos, Alice e Bob que
querem trocar senhas de forma segura para poderem trocar mensagens criptografadas.
Além deles, há também a Eve que consegue interceptar as mensagens dos dois e quer
conseguir acesso a chave para ler as mensagens. Primeiramente, deve haver uma série de
parâmetros públicos de conhecimento de todos.
Os parâmetros públicos são 𝐷𝑝 = {𝑝, 𝑎, 𝑏, 𝐺, 𝑛, ℎ}. Onde p é o módulo do campo
K utilizado. ’a’ e ’b’ definem a curva elíptica. ’G’ é um ponto pertencente a curva elíptica
e vai servir como ponto gerador. ’n’ é a ordem do grupo cíclico de pontos formado pelo
ponto gerador. ’h’ é o cofator para o grupo cíclico utilizado.
Bob e Alice vão gerar chaves aleatórias privadas ’𝑏’ e ’𝑎’, respectivamente. Tal que
ambas as chaves sejam menores que 𝑛 e pertençam ao conjunto dos números naturais
menos o zero. Cada um calcula 𝐶1 ou 𝐶2 da seguinte maneira: 𝐶1 = 𝑏𝐺 e 𝐶2 = 𝑎𝐺.
Agora, ambos enviam para o outro o 𝐶1 ou 𝐶2. Note que nesse momento, Eve
sabe sobre o valor de 𝐶1 e 𝐶2, porém não consegue saber o valor das chaves 𝑏 e 𝑎. Pois,
para isso ela teria que calcular o logaritimo discreto e isso é muito difícil.
Alice, de posse do 𝑐1, calcula 𝑎𝐶1 = 𝑎𝑏𝐺 = 𝑆. Bob, por sua vez, calcula 𝑏𝐶2 =
𝑏𝑎𝐺 = 𝑆. Agora, ambos possuem uma chave 𝑆 que podem utilizar para criptografar suas
mensagens. Eve, porém, não consegue achar a senha mesmo tendo interceptado todas as
mensagens entre Alice e Bob e sabendo dos parâmetros públicos.

4.2 Algorítimo ElGamal


Como o algorítimo de ElGamal funciona em grupos, é possível aplica-lo em curvas
elípticas (LARA; OLIVEIRA, 2010).
Para isso, vamos utilizar a mesma analogia anterior com a Alice, Bob e Eve. Além
Capítulo 4. Técnicas e Ferramentas de Aplicação da ECC para criptografia 11

disso, precisamos dos mesmos parâmetros públicos utilizados na troca de chave Diffe-
Hellman, 𝐷𝑝 = {𝑝, 𝑎, 𝑏, 𝐺, 𝑛, ℎ}.
Supondo que Bob deseja mandar uma mensagem para Alice. Primeiramente Alice
escolhe uma chave privada 𝑎 tal que 𝑎 ∈ N* , 𝑎 < 𝑛. Ela calcula 𝐶𝑎 = 𝑎𝐺 que será sua
chave pública e manda para Bob.
Bob também gera uma chave privada 𝑏 tal que 𝑏 ∈ N* , 𝑏 < 𝑛. Então, Bob calcula
sua chave pública 𝐶𝑏 = 𝑏𝐺. Depois, Bob pega a mensagem 𝑚 mapeada para o ponto 𝑃𝑚
pertencente a curva elíptica e calcula 𝐶 = 𝑃𝑚 + 𝑏𝐶𝑎 . Bob responde para Alice tanto 𝐶
como sua chave pública 𝐶𝑏 .
Por fim, Alice obtém a mensagem original calculando 𝐶 −𝑎𝐶𝑏 = 𝑃𝑚 +𝑏𝑎𝐺−𝑎𝑏𝐺 =
𝑃𝑚 .
Note que do mesmo jeito como ocorreu na troca de chaves Diffie-Hellman, mesmo
interceptando todas as mensagens trocadas entre Alice e Bob, Eve não consegue encontrar
a mensagem pois isso envolveria calcular o logaritmo discreto.
12

5 Objetivos e Aplicações

A criptografia utilizando curvas elípticas (ECC) foi criada com o objetivo de propor
uma técnica alternativa às criptografias RSA e DSA já existentes na época. Nos dias de
hoje, ambas as técnicas são amplamente utilizadas, muitas vezes em conjunto. (LóPEZ;
DAHAB, 2000)
As principais aplicações da ECC podem ser encontradas nos mais diversos siste-
mas e protocolos da internet. Como exemplos podemos citar: o protocolo de segurança da
camada de transporte (TLS), onde a ECC é utilizada para gerar os certificados de auten-
ticação de usuário e o segredo temporário (premaster secret) do protocolo; o protocolo de
transporte Secure Shell (SSH), onde a ECC gera as chaves de segurança que permitem
com que o protocolo torne redes inseguras em redes seguras; e as criptomoedas, onde a
ECC é responsável por gerar as chaves públicas e privadas que garantem a segurança,
privacidade e confiabilidade das transações. (CORBELLINI, 2015)
13

6 Vantagens

Ao compararmos a Criptografia de Curva Elíptica (ECC) aos demais métodos de


criptografia assimétrica, podemos destacar as seguintes vantagens:

6.1 Segurança
Como já citado anteriormente, a ECC utiliza o método de adição de pontos, que é
computacionalmente complexo, e é baseado no problema do logaritmo discreto, aplicado
a um grupo formado pelos pontos da curva elíptica, que é um problema NP-Difícil. Essas
duas características da ECC fazem com que seja muito difícil encontrar uma forma sub-
exponencial de quebrar sua criptografia, o que já acontece com outros métodos, como o
RSA.
Dessa forma, para um mesmo nível de segurança, a ECC requer um número muito
menor de bits para realizar a encriptação. Podemos ver na tabela abaixo a relação de bits
vs o tempo de quebra da encriptação de cada um dos métodos de criptografia. (KAPOOR;
ABRAHAM; SINGH, 2008)

Figura 4: Tabela do tempo de quebra da encriptação em relação a quantidade de bits de cada método.

6.2 Espaço requerido


Como comentado acima no tópico de segurança, o método ECC necessita de um
número muito menor de bits para realizar uma encriptação com o mesmo nível de se-
gurança do método RSA. Isso significa que as contas feitas são muito menores e, conse-
quentemente, o número de transistores necessários no processador é menor, assim como o
tamanho do mesmo. (KAPOOR; ABRAHAM; SINGH, 2008)
Outra vantagem do método de ECC é o fato de que a largura de banda necessária
em relação aos outros métodos é menor. (LóPEZ; DAHAB, 2000)
Capítulo 6. Vantagens 14

6.3 Eficiência
Temos que, junto ao fato da ECC fazer uso de um número menor de bits, também
é possível que o resultado de alguns resultados de cálculos da ECC podem ser guardados
previamente, sem que haja perda de nível de segurança. Isto faz com que a eficiência do mé-
todo seja muito superior, como podemos observar na tabela 6.3 (KAPOOR; ABRAHAM;
SINGH, 2008)

Figura 5: Tabela da eficiência dos métodos de criptografia.


15

7 Desvantagens

Como principais desvantagens do método ECC, podemos citar: (KAPOOR; ABRAHAM;


SINGH, 2008)

∙ O método não provê uma forma direta de encriptação,geralmente o método derivado


EC-IES é usado, o que significa que um par de chaves é gerado e a chave pública é
enviada juntamente com o texto cifrado.

∙ Apesar de ser mais eficiente que o método RSA, o método ECC ainda continua
sendo mais lento que os métodos simétricos.

∙ Precisa ocorrer uma espécie de acordo quanto a curva a ser utilizada e seus parâ-
metros.

∙ O método RSA é muito mais fácil de ser compreendido e estudado que o método
ECC.
16

8 Conclusão

Como pôde ser observado, o campo da criptografia é muito amplo e está em cons-
tante crescimento, tanto em inovações quanto em volume de utilização. Um dos frutos
desse crescimento é o método ECC, que foi abordado nesta revisão bibliográfica.
O método ECC possui um nível de segurança muito elevado como consequência
do uso de logaritmo discreto no seu processo de encriptação, o qual é considerado um pro-
blema NP-Difícil já que exige tempo exponencial para resolução, tornando a interceptação
da mensagem e a quebra da encriptação muito trabalhosa. Além disso, a ECC também
possui uma eficiência maior que outros métodos assimétricos para geração das chaves de
segurança.
Assim como qualquer outro método, a ECC possui vantagens e desvantagens,
como pode ser visto anteriormente, e ainda sim pode ser considerado vantajoso, já que a
maioria de suas desvantagens são relacionadas à complexidade, portanto existindo tempo
e capacitação na preparação de um projeto, ele é completamente viável.
17

Referências

BARSAGADE, M. W.; MESHRAM, D. S. Overview of history of elliptic curves and its


use in cryptography. International Journal of Scientific Engineering Research, 2014.
Citado na página 5.

CORBELLINI, A. Elliptic Curve Cryptography: a gentle introduction. 2015. Disponível


em: <http://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-
introduction>. Acesso em: 05.5.2018. Citado na página 12.

DAMICO, T. M. A Brief History of Cryptography. [S.l.], 2009. Disponível em:


<http://www.inquiriesjournal.com/articles/1698/a-brief-history-of-cryptography>.
Citado na página 4.

ELGAMAL, T. A public key cryptosystem and a signature scheme based on discrete


logarithms. IEEE Trans. Inform. Theory, 31(4):469–472, 1985. Citado 2 vezes nas
páginas 4 e 9.

KAPOOR, V.; ABRAHAM, V. S.; SINGH, R. Elliptic curve cryptography. Ubiquity,


ACM, New York, NY, USA, v. 2008, n. May, p. 7:1–7:8, maio 2008. ISSN 1530-2180.
Disponível em: <http://doi.acm.org/10.1145/1378355.1378356>. Citado 3 vezes nas
páginas 13, 14 e 15.

LARA, P. C. da S.; OLIVEIRA, F. B. de. Curvas elípticas: Aplicação em criptografia


assimétrica. Petrópolis, RJ, Brasil, 2010. Citado 2 vezes nas páginas 8 e 10.

LóPEZ, J.; DAHAB, R. An overview of elliptic curve cryptography. Campinas, 2000.


Citado 2 vezes nas páginas 12 e 13.

POHLIG, S.; HELLMAN, M. An improved algorithm for computing logarithms


overgf(p)and its cryptographic significance (corresp.). IEEE Transactions on Information
Theory, v. 24, n. 1, p. 106–110, January 1978. ISSN 0018-9448. Citado na página 9.

SANGALLI, L. A.; HENRIQUES, M. A. A. Criptossistemas baseados em curvas elípticas


e seus desafios. Campinas, SP, Brasil, 2011. Citado 2 vezes nas páginas 6 e 8.

SIMMONS, G. J. Public-key cryptography. [S.l.], 2017. Disponível em: <https://www-


.britannica.com/topic/public-key-cryptography>. Citado na página 4.