Prévia do material em texto
Criptografia
Hebert de Oliveira Silva
Dados Internacionais de Catalogação na Publicação (CIP)
(Jeane Passos de Souza - CRB 8a/6189)
Silva, Hebert de Oliveira
Criptografia / Hebert de Oliveira Silva. – São Paulo : Editora Senac
São Paulo, 2020. (Série Universitária)
Bibliografia.
e-ISBN 978-65-5536-389-0 (ePub/2020)
e-ISBN 978-65-5536-390-6 (PDF/2020
1. Segurança da informação 2. Criptografia de dados 3. Proteção
de dados digitais 4. Certificados digitais I. Título. II. Série.
20-1199t CDD – 005.8
BISAC COM043050
Índice para catálogo sistemático
1. Criptografia de dados : Segurança da informação 005.8
M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
ist
ân
ci
a
da
R
ed
e
Se
na
c
EA
D,
d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l,
so
b
as
p
en
as
d
a
Le
i.
©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
CRIPTOGRAFIA
Hebert de Oliveira Silva
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Administração Regional do Senac no Estado de São Paulo
Presidente do Conselho Regional
Abram Szajman
Diretor do Departamento Regional
Luiz Francisco de A. Salgado
Superintendente Universitário e de Desenvolvimento
Luiz Carlos Dourado
M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
ist
ân
ci
a
da
R
ed
e
Se
na
c
EA
D,
d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l,
so
b
as
p
en
as
d
a
Le
i.
©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Editora Senac São Paulo
Conselho Editorial
Luiz Francisco de A. Salgado
Luiz Carlos Dourado
Darcio Sayad Maia
Lucila Mara Sbrana Sciotti
Jeane Passos de Souza
Gerente/Publisher
Jeane Passos de Souza (jpassos@sp.senac.br)
Coordenação Editorial/Prospecção
Luís Américo Tousi Botelho (luis.tbotelho@sp.senac.br)
Dolores Crisci Manzano (dolores.cmanzano@sp.senac.br)
Administrativo
grupoedsadministrativo@sp.senac.br
Comercial
comercial@editorasenacsp.com.br
Acompanhamento Pedagógico
Otacília da Paz Pereira
Designer Educacional
Hágara Rosa da Cunha Araujo
Revisão Técnica
Anderson Aparecido Alves da Silva
Preparação e Revisão de Texto
Eloiza Mendes Lopes
Projeto Gráfico
Alexandre Lemes da Silva
Emília Corrêa Abreu
Capa
Antonio Carlos De Angelis
Editoração Eletrônica
Michel Iuiti Navarro Moreno
Ilustrações
Michel Iuiti Navarro Moreno
Imagens
Adobe Stock
E-pub
Ricardo Diana
Proibida a reprodução sem autorização expressa.
Todos os direitos desta edição reservados à
Editora Senac São Paulo
Rua 24 de Maio, 208 – 3o andar
Centro – CEP 01041-000 – São Paulo – SP
Caixa Postal 1120 – CEP 01032-970 – São Paulo – SP
Tel. (11) 2187-4450 – Fax (11) 2187-4486
E-mail: editora@sp.senac.br
Home page: http://www.livrariasenac.com.br
© Editora Senac São Paulo, 2020
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Sumário
Capítulo 1
Introdução à criptografia, 7
1 Conceitos, 9
2 História, 11
3 Principais elementos do processo
criptográfico, 15
4 Criptografia quanto ao
processamento, 16
5 Criptografia quanto ao número de
chaves, 21
Considerações finais, 23
Referências, 24
Capítulo 2
Criptografia simétrica, 27
1 Conceitos, 28
2 Funcionamento, 30
3 Principais algoritmos simétricos, 31
4 Vantagens e desvantagens, 39
Considerações finais, 41
Referências, 42
Capítulo 3
Criptografia de chave pública e
privada, 45
1 Conceitos, 46
2 Conseguindo confidencialidade, 48
3 Conseguindo autenticação, 49
4 Conseguindo confidencialidade e
autenticação, 51
5 Vantagens e desvantagens da
criptografia assimétrica, 52
6 Trocando chaves, 53
7 Principais algoritmos
assimétricos, 54
Considerações finais, 57
Referências, 58
Capítulo 4
Troca de chaves
Diffie-Hellman, 61
1 Conceitos, 62
2 Processo de troca de chaves, 63
3 Vantagens e desvantagens, 68
4 Confidencialidade na troca, 69
5 Falta de autenticação, 70
Considerações finais, 71
Referências, 72
Capítulo 5
Hash, 73
1 Conceitos, 74
2 Cálculos de hash, 78
3 Considerações sobre o uso de
hashes, 79
4 Principais algoritmos de hash, 86
Considerações finais, 88
Referências, 88
Capítulo 6
Assinaturas digitais, 91
1 Conceitos, 93
2 Funcionamento, 96
3 Vantagens e desvantagens, 100
Considerações finais, 101
Referências, 102
Capítulo 7
Certificados digitais, 105
1 Conceitos, 106
2 Blockchain, 113
Considerações finais, 120
Referências, 121
6 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
ist
ân
ci
a
da
R
ed
e
Se
na
c
EA
D,
d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l,
so
b
as
p
en
as
d
a
Le
i.
©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
ist
ân
ci
a
da
R
ed
e
Se
na
c
EA
D,
d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l,
so
b
as
p
en
as
d
a
Le
i.
©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Capítulo 8
Infraestrutura dos certificados
digitais, 123
1 Conceitos, 125
2 Infraestrutura de chave
pública (ICP), 128
3 Tipos de certificados digitais, 131
4 Repositório de certificados (RC), 133
5 Lista de certificados revogados
(LCR), 135
Considerações finais, 136
Referências, 137
Sobre o autor, 141
7
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Capítulo 1
Introdução à
criptografia
A palavra criptografia tem origem no grego e significa “escrita escon-
dida”, ou “escrita secreta”. Assim como na Antiguidade, as informações
precisam ser ocultadas para garantir que sejam transmitidas de maneira
segura. As mensagens, trocadas entre sistemas ou computadores, pre-
cisam ser entendidas apenas pelo seu emissor e receptor autorizado. A
criptografia, portanto, possibilita que somente o detentor da chave cor-
reta possa desfazer o processo criptográfico e ter acesso ao conteúdo
da mensagem (TANENBAUM; WETHERAL, 2012). A arte da criptografia
é registrada na história a partir do período babilônico, em pictogramas
usados no Antigo Egito, conhecidos como hieróglifos. Esses hieróglifos
só foram decifrados no século XIX por meio do estudo do fragmento de
hieróglifo Pedra Roseta (THAWTE, 2013).
8 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
ist
ân
ci
a
da
R
ed
e
Se
na
c
EA
D,
d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l,
so
b
as
p
en
as
d
a
Le
i.
©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Em um contexto mais amplo e atual, a criptografia é base para que
os pilares da segurança da informação, como a confidencialidade, a
integridade, a autenticidade e a responsabilização, sejam alcançados
(STALLINGS, 2014). O estudo dessa “escrita secreta” abordada neste
capítulo tem como objetivo apresentar os conceitos fundamentais para
o posterior estudo das técnicas empregadas atualmente,no contexto
da criptografia utilizada nos sistemas computacionais modernos.
Tenha em mente que a criptografia é utilizada em praticamente to-
dos os ambientes computacionais, como no processo de autenticação
de um usuário em uma rede de computadores coorporativa, e-mail ou
em uma rede social. Provavelmente, você já utilizou uma rede sem fio
(wireless) em seu smartphone e, se foi necessário colocar uma senha
para acesso, é justamente porque o sistema de rede sem fio utiliza
algum algoritmo de criptografia. A criptografia não é utilizada apenas
para proteção da comunicação e de dados. Também é utilizada para
garantir a autenticidade, a identidades de usuários, servidores e sites.
Outra utilidade dela é a verificação se o documento eletrônico foi alte-
rado, utilizando algoritmos e funções de resumo hash. As técnicas de
criptografia também são base para o funcionamento das criptomoedas,
difundidas sob a tecnologia blockchain (HELLANI et al., 2018).
Cada vez mais, a criptografia será demandada aos profissionais de
tecnologia. Com a facilidade de acesso à informação, os dados pessoais
ficaram mais vulneráveis. Novas leis e padrões de segurança foram cria-
dos no Brasil e no mundo para a garantir a privacidade dos dados, como
a lei geral de proteção de dados (LGPD), a lei de portabilidade e respon-
sabilidade do seguro de saúde (HIPPA), o regulamento geral de proteção
de dados europeu (GDPR/EU) e o padrão de segurança de dados do setor
de cartões de pagamento (PCI-DSS) (SILVA, 2019). Não se pode iniciar a
construção de um novo software sem pensar em como os dados serão
protegidos. Nesse contexto, a criptografia é uma das formas de garantir
que os dados pessoais serão protegidos contra o acesso indevido, redu-
zindo o risco de violações de privacidade e evitando multas (GDPR, 2018).
9Introdução à criptografia
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Neste capítulo, serão abordados os conceitos iniciais sobre a crip-
tografia, a história, os principais elementos de processo criptográfico, a
criptografia quanto ao seu processamento e número de chaves.
1 Conceitos
A criptografia assumiu um papel importante na segurança da in-
formação, sendo aplicada aos mais diversos campos da tecnologia.
Estamos, cada vez mais, familiarizados com a utilização de senhas,
tokens, assinaturas digitais, e-CPF, e-CNPJ e assim por diante. Quando
acessamos uma página da internet, buscamos pelo cadeado ao lado da
URL da página (endereço do site) como sinal de confiança e autenticida-
de, porém, sabemos o que ele significa?
Nesse sentido, daremos um passo na direção dos conceitos da crip-
tografia utilizada nos sistemas computacionais e, antes de nos aprofun-
darmos nos protocolos, algoritmos e tecnologias, vamos entender a ter-
minologia das partes envolvidas no processo e suas definições básicas
(TANENBAUM; WETHERAL, 2012):
• Criptografia: arte de criar mensagens cifradas que podem ser
analisadas do ponto de vista histórico, matemático ou estado da
arte atual em segurança e algoritmos criptográficos, protocolos e
aplicações.
• Texto claro: texto de entrada do processo de criptografia, ou seja,
a mensagem que será criptografada.
• Algoritmo de criptografia: processo de cálculo utilizado para
criptografar ou descriptografar.
• Texto cifrado: saída do processo de criptografia.
• Criptoanálise: arte de solucionar mensagens cifradas.
10 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
ist
ân
ci
a
da
R
ed
e
Se
na
c
EA
D,
d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l,
so
b
as
p
en
as
d
a
Le
i.
©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
• Criptologia: nome que se dá coletivamente para criptografia e
criptoanálise.
• Cifra: transformação de caractere por caractere ou de bit por bit,
sem levar em consideração a estrutura linguística da mensagem.
• Código: substitui uma palavra por outra palavra ou símbolo.
Segundo Tanenbaum e Wetheral (2012), os métodos criptográficos,
ao longo dos anos, foram divididos em dois tipos: cifra de substituição e
cifra de transposição. A cifra de substituição é basicamente a substitui-
ção monoalfabética, em que um texto simples é alterado, dígito por dígi-
to, por uma letra correspondente. Já cifras de transposição reordenam
o texto simples para o texto cifrado, utilizando uma palavra como chave
para a reorganização da mensagem original.
É importante ressaltar que a criptografia é diferente da esteganogra-
fia, que é um campo da criptografia que busca uma forma de ocultar
informações, em texto claro, isto é, não cifrado. A esteganografia pode
esconder informações ou mensagens em imagens, áudios, documen-
tos e assim por diante (CHIRIGATI; KIKUCHI; GOMES, 2006). De acordo
com Popa, esteganografia:
[...] é a arte de mascarar informações como uma forma de evitar a
sua detecção. Esteganografia deriva do grego, donde estegano =
esconder, mascarar e grafia = escrita. Logo, esteganografia é a arte
da escrita encoberta ou, de forma mais abrangente, é a arte das
comunicações encobertas. (1998 apud ROCHA, 2006, p. 2)
A esteganografia pode ser utilizada por atacantes cibernéticos, cri-
minosos e terroristas para mascarar mensagens na internet (O QUE É...,
2016), assim como programas de computadores não oficiais ou falsifi-
cados podem esconder códigos maliciosos.
11Introdução à criptografia
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
2 História
Historicamente, a criptografia foi utilizada para diversas finalidades.
Os espartanos, na Grécia Antiga, utilizavam um cilindro com diâmetro
específico com um papiro ou coro cortado em tira e enrolado ao cilindro,
de forma que apenas o detentor do cilindro com o diâmetro correto pu-
desse enrolar a tira de pergaminho ao cilindro para reorganizar a mensa-
gem (FIARRESGA, 2010). Esse método de criptografia ficou conhecido
como “cítala”, ou bastão de Licurgo. Analogamente, a cítala espartana
utiliza o método de criptografia de transposição, pois o texto claro não
é modificado, é apenas reorganizado de acordo com o diâmetro do
cilindro-chave.
Posteriormente, surgiu a Cifra de César, por volta de 100 anos a.C.,
e utilizava o método de cifra de substituição. Cada letra do alfabeto no
texto original era substituída por um número definido de letras à frente
de sua sequência no alfabeto da língua em que a mensagem era ci-
frada. No exemplo da figura 1, a cifra de César utiliza a substituição
por três letras à frente na sequência do alfabeto (THAWTE, 2013).
Utilizando a cifra de César, a palavra “CRIPTOANÁLISE” seria cifrada
para “FULSWRDQDOLVH”.
Figura 1 – Cifra de César
ZX Y
EA B C D F G H I
EA B C D F
12 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
ist
ân
ci
a
da
R
ed
e
Se
na
c
EA
D,
d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l,
so
b
as
p
en
as
d
a
Le
i.
©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
A análise de frequência pode ser utilizada para identificar a chave da
cifra de substituição, o que torna muito simples a descoberta da chave
com o método. Na análise de frequência, busca-se por palavras comuns
na linguagem do texto criptografado. Com isso, pode-se identificar a
chavede substituição.
Durante a Idade Média, outros métodos de cifra de substituição foram
criados, como as cifras de Mary Queen of Scots e a cifra de Vigenère. A
cifra de Mary Queen expandiu a cifra de César, incluindo códigos para
substituir frases, além da substituição de letras. Para tanto, um livro com
a chave para os códigos estava em posse dos remetentes e destinatá-
rios (THAWTE, 2013). A cifra de Vigenère utilizava todas as 26 posições
do alfabeto, para tanto, construía-se uma tabela com o alfabeto princi-
pal como em sua parte superior. A chave escolhida deveria ser com-
parada com o texto claro. A letra correspondente, na tabela, dá origem
ao dígito cifrado, isto é, a letra correspondente com o deslocamento
proporcionado pela chave. No exemplo, demonstrado na figura 2, pode-
mos verificar que o texto “divert torps to east ridge” (traduzido do inglês,
“desviar torpedos para a cordilheira leste”), combinado à chave “WHITE”,
dará origem ao texto cifrado “ZPDXVPAZHSLZBHIWZBKMZNM”. Assim,
uma mesma letra do texto cifrado pode ter diferentes letras correspon-
dentes no texto claro. Isso é possível pelo deslocamento efetuado pela
chave em cada letra substituída. A primeira coluna (Chave) demonstra
o deslocamento que será efetuado para a letra do texto claro de acordo
com a posição da chave. Para o exemplo da figura 2, o “W” (da chave)
está posicionado acima da letra “D” (do texto claro), com isso, a letra “D”
será substituída pela letra “Z” (deslocamento de 22 letras). A letra “H”
(da chave) está posicionada acima da letra “I”, portanto, a letra “I” será
substituída pela letra “P” (deslocamento de sete letras) (REEDS, 2000).
13Introdução à criptografia
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Figura 2 – Processo de criptografia baseado na cifra de Vigenère
W H I T E W H I T E W H I T E W H I T E W H I
D I V E R T T R O O P S T O E A S T R I D G E
Z P D X V P A Z H S L Z B H I W Z B K M Z N M
Chave
Chave
Texto claro
Texto cifrado
Fonte: adaptado de REEDS (2000, p. 115).
NA PRÁTICA
O envio, o recebimento e o armazenamento de senhas (chaves) é um
problema desde a Antiguidade. A cifra de Mary Queen representava um
problema quanto a sua guarda e o transporte do livro de códigos.
Nas organizações, ou mesmo na vida pessoal, o gerenciamento de se-
nhas é um problema recorrente. Não adianta utilizarmos os mais avan-
çados algoritmos de criptografia com uma senha muito fraca. Uma se-
14 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
ist
ân
ci
a
da
R
ed
e
Se
na
c
EA
D,
d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l,
so
b
as
p
en
as
d
a
Le
i.
©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
nha fraca pode ser facilmente descoberta através de força bruta (testes
repetidos) ou engenharia social (investigação sobre a pessoa, para ob-
ter informações privilegiadas). Porém, como memorizar senhas comple-
xas? Em organizações, é inevitável utilizar inúmeras senhas complexas,
para usuários com privilégios avançados, sejam eles de sistemas ou
para conexões com bancos de dados, por exemplo. Memorizar inúme-
ras senhas não é uma tarefa fácil, assim como não vale escrever embai-
xo do teclado.
Na prática, podemos utilizar softwares para gerenciar senhas de usuá-
rios com acessos privilegiados ou senhas de sistemas. Esses softwares
funcionam como um cofre de senhas. Um exemplo de software gratuito
para gerenciamento de senhas é o Keepass, que implementa algoritmos
atuais de criptografia para armazenamento de senhas (DOMINIK, 2020).
As criptografias de mensagens durante os períodos de guerra foram
fundamentais para a evolução das técnicas de criptografia. Na Segunda
Guerra Mundial, uma máquina chamada Enigma elevou o nível de so-
fisticação da criptografia. A máquina de criptografia, projetada pelo
alemão Arthur Scherbius, em 1918, foi utilizada pelo exército alemão
durante a Segunda Guerra Mundial, após perceberem que as cifras uti-
lizadas na Primeira Guerra Mundial foram decifradas facilmente pelos
britânicos (THAWTE, 2013).
A máquina Enigma utilizava o método de substituição polialfabética,
no qual a criptografia consiste na combinação de engrenagens, uma
espécie de embaralhador, para substituição das letras alfabéticas. A
máquina Enigma utilizava a mesma chave tanto para criptografar e des-
criptografar de forma simétrica. O que proporcionou descriptografar as
mensagens alemãs foi a descoberta de que estavam repetindo alguns
caracteres para especificar a chave utilizada na mensagem. Apesar da
descoberta, esse fato ficou encoberto por mais de 20 anos, para que
os alemães não alterassem o código utilizado até o final da guerra
(THAWTE, 2013; REEDS, 2000).
15Introdução à criptografia
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
3 Principais elementos do processo
criptográfico
Qualquer processo criptográfico atual utiliza funções matemáticas
para obtenção do texto cifrado. Diferentemente dos métodos emprega-
dos historicamente, nos quais a cifra era obtida manualmente ou atra-
vés de máquinas, em sistemas criptográficos obtidos por computado-
res, o texto cifrado é obtido por algoritmos que, em resumo, realizaram
cálculos para obtenção das cifras. A notação matemática nesse pro-
cesso é dada por DK (CK (P)) = P, em que C e D são, respectivamente, as
funções matemáticas para criptografia e descriptografia. O texto claro
é representado pela letra P e as chaves são determinadas pelo k. Na
figura 3, o processo de criptografia é dado pela notação matemática e
demostrado por meio de fluxo.
Figura 3 – Processo de criptografia
Método de
criptografia (C)
Método de
descriptografia (C)#$%&!Texto claro (P) Texto claro (P)
Chave criptográfica
(K)
Texto cifrado
Ck(P)
Chave descriptográfica
(K)
Fonte: adaptado de Tanenbaum e Wetheral (2012, p. 481).
Segundo o princípio de Kerckhoff, um sistema criptográfico deve
ser seguro, mesmo que tudo sobre o sistema, exceto a chave, seja
de conhecimento público. Em seus artigos, em 1883, o criptologis-
ta de nacionalidade francesa afirma ainda que o sistema deve ser
praticamente indecifrável, porém o algoritmo utilizado não deve ser
secreto. Esse conceito foi importante para que os algoritmos cripto-
gráficos pudessem sem construídos e aprimorados, sendo aplicados
em todos os algoritmos de criptografia atuais e considerados seguros
(KERCKHOFFS’S..., 2013).
16 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
ist
ân
ci
a
da
R
ed
e
Se
na
c
EA
D,
d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l,
so
b
as
p
en
as
d
a
Le
i.
©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
IMPORTANTE
O que determina a força da criptografia (o quanto a criptografia é segu-
ra) são o tempo e o poder computacional necessário para recuperar ou
decifrar o texto claro. Uma cifra resultante de uma criptografia forte é
muito difícil de se decifrar sem a posse da chave. Nem mesmo um po-
der computacional que realize bilhões de verificações por segundo seria
capaz de decifrar o resultado de uma criptografia forte (PGP, 2002).
Apesar do alto poder de processamento computacional existente
no mundo, os algoritmos de criptografia mais atuais são considera-
dosseguros pelo National Institute of Standards and Technology (Nist,
Instituto Nacional de Padrões e Tecnologia dos Estados Unidos). Com
frequência, os métodos criptográficos são revisados e alguns algorit-
mos são considerados obsoletos e substituídos por versões mais mo-
dernas e seguras ( BARKER, 2016). Mas isso não garante que os méto-
dos criptográficos são indecifráveis, já que, até o momento, ninguém
provou que a criptografia forte disponível se manterá segura no futuro
(PGP CORPORATING, 2002).
4 Criptografia quanto ao processamento
O processamento da criptografia pode ser executado por blocos ou
por fluxo de bits, também conhecido como stream. No processamento
baseado em fluxo, o processo de criptografia é realizado bit a bit. Por
outro lado, o processamento em blocos ocorre quando o texto claro
é criptografado de forma contígua ou em lotes, conforme o tamanho
dos blocos utilizados no algoritmo. Vamos apresentar como ocorre o
processamento das cifras que utilizam o processamento por fluxo e
por blocos.
17Introdução à criptografia
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
4.1 Cifra de fluxo
As cifras de fluxo geram a criptografia bit a bit de um texto claro.
Geralmente, a cifra é gerada através da operação lógica XOR, também
conhecida como OU Exclusiva. Nessa operação lógica, o bit resultante
da operação será verdadeiro (nível lógico 1) somente se os valores
de entrada da operação forem diferentes. Por exemplo, para que o bit
cifrado seja verdadeiro (nível lógico 1), o bit do texto claro e o bit da
chave devem ser diferentes. Na tabela 1, podemos verificar o resulta-
do da operação lógica XOR. Ela demonstra qual será o resultado da
operação lógica entre bits de texto claro e bits de uma chave. O nível
lógico 0 é considerado falso e o nível lógico 1 é considerado verdadeiro
(ROEDER, 2010).
Tabela 1 – Resultado da cifra de fluxo bit a bit
ENTRADA →
TEXTO CLARO 0 0 1 1
CHAVE 0 1 0 1
RESULTADO → CIFRA 0 1 1 0
A figura 4 demonstra o processamento da criptografia utilizando ci-
fra fluxo de bits. A chave (K) é aplicada a um algoritmo de geração do
fluxo. O texto claro (Pi) é criptografado pelo resultado do algoritmo de
geração de fluxo (Ki), dando origem ao texto cifrado (Ci). Para que o
processo reverso seja executado, a chave (K) é aplicada ao algoritmo
de geração de fluxo, resultando em (Ki). O resultado do algoritmo (Ki) é
aplicado ao texto cifrado (Ci) para que o processo de descriptografia dê
origem ao texto claro (Pi).
18 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
ist
ân
ci
a
da
R
ed
e
Se
na
c
EA
D,
d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l,
so
b
as
p
en
as
d
a
Le
i.
©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Figura 4 – Processamento por fluxo de bits
Algoritmo para
geração do
fluxo de bits
+ +
Algoritmo para
geração do
fluxo de bits
Chave (K) Chave (K)
Texto claro
(Pi)
Texto claro
(Pi)
Texto cifrado
(Ci)
DescriptografiaCriptografia
Fonte: adaptado de Stallings (2014, p. 47).
4.2 Cifra de bloco
As cifras de bloco tratam a criptografia do texto claro por completo,
resultando em um texto cifrado do mesmo tamanho que o texto claro.
De acordo com Stallings:
tem sido destinado muito mais esforço para analisar as cifras de bloco,
em geral, por elas serem adequadas a uma gama maior de aplicações
do que as cifras de fluxo. A grande maioria das aplicações de cripto-
grafia simétrica baseadas em rede utiliza cifras de bloco (2014, p. 46).
O bloco de bits é a unidade básica para esse tipo de processamento
criptográfico (FOROUZAN, 2010). Quanto maior o tamanho dos blocos
utilizados, maior segurança será implementada na criptografia, entre-
tanto, a velocidade da criptografia será diminuída. Geralmente, os blo-
cos iniciam-se com 64 bits, valor que era considerado razoável para al-
goritmos de criptografia, porém cada vez mais é comum a utilização do
padrão de 128 bits ou superior (STALLINGS, 2014).
Na figura 5, o texto claro é tratado de forma completa. A chave (K)
e o algoritmo de criptografia são aplicados ao texto claro, resultando
no texto cifrado, também completo (todos os bits de uma única vez).
O processo reverso é executado, aplica-se a chave (k) e o algoritmo de
descriptografia para obter-se o texto claro novamente.
19Introdução à criptografia
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Figura 5 – Processamento por blocos
Algoritmo de
criptografia
Texto claro
Chave (K)
b bits b bits
b bits b bits
Texto cifrado
Algoritmo de
criptografia
Texto claro
Chave (K)
Texto cifrado
Fonte: adaptado de Stallings (2014, p. 47).
4.2.1 Modos de operação das cifras de bloco
Nesse tipo de cifra, os blocos possuem comprimento fixo, porém
as mensagens cifradas podem ter diversos tamanhos. Uma vez que
o tamanho da saída das cifras é sempre do mesmo tamanho, alguns
modos de operação precisaram ser desenvolvidos para permitir a crip-
tografia completa das mensagens, independentemente do tamanho do
texto claro. Os principais métodos são (FOROUZAN, 2008):
• Eletronic code book (ECB) (em português, livro eletrônico de có-
digo): em que a mensagem é dividida em blocos e cada bloco é
criptografado separadamente dos demais. O modo ECB é reco-
mendado para criptografar textos curtos, pois sua característica
limita a produção de um mesmo texto cifrado, quando aplicada a
criptografia em textos claros iguais (STALLINGS, 2014).
• Cipher-block chaining (CBC) (em português, criptografia de blo-
cos encadeados): seu funcionamento baseia-se na realimentação
comum entre os blocos, formando um encadeamento. Se aplica
a operação lógica XOR no bloco atual de texto claro junto com o
bloco anterior. Dessa forma, o bloco à frente ficará dependente
20 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
ist
ân
ci
a
da
R
ed
e
Se
na
c
EA
D,
d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l,
so
b
as
p
en
as
d
a
Le
i.
©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
do bloco anterior na execução do processo de criptografia, não
sendo possível realizar a descriptografia parcial dos blocos. Para
o primeiro bloco (como não possui um bloco anterior para ser
encadeado), a operação XOR é realizada com um vetor de iniciali-
zação (STALLINGS, 2014).
Existem ainda outros métodos de cifras de bloco mais complexos,
como cipher feed back (CFB, traduzido do inglês como cifra de retor-
no), output feedback (OFB, traduzido do inglês como saída de retorno)
(STALLINGS, 2014). Na figura 6, temos o esquema de funcionamento
das cifras de bloco ECB (parte A) e CBC (parte B).
Figura 6 – Modos de cifras de blocos ECB e CBC
Criptografia
P1
K
C1
Criptografia
P2
K
C2
Parte A – Modo de criptografia ECB
Criptografia
Pn
K
Cn
Criptografia
P1
K
IV CN-1
C1
Criptografia
P2
K
C2
Parte B – Modo de criptografia CBC
Criptografia
Pn
K
Cn
+ + +
Fonte: adaptado de Stallings (2014, p. 142-143).
21Introdução à criptografia
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
5 Criptografia quanto ao número de chavesA criptografia é classificada quanto à quantidade de chaves utilizadas
em seu processo. Quando a mesma chave é utilizada para criptografar
e descriptografar, o processo é considerado simétrico. Podemos citar
como exemplo de criptografia simétrica os algoritmos AES, Blowfish,
RC4, 3DES e IDEA (CARTILHA..., 2017).
Quando utilizado um par de chaves, uma pública, outra privada, o pro-
cesso de criptografia é considerado assimétrico. A exemplo da cripto-
grafia assimétrica, podemos citar os algoritmos RSA, DSA, ECC e Diffie-
Hellman (CARTILHA..., 2017). É importante ressaltar que o algoritmo de
Diffie-Hellmam é utilizado para troca de chaves, e não para criptografar/
descriptografar dados. A figura 7 mostra o processo de criptografia utili-
zado no processo simétrico. Nesse método de criptografia, a chave deve
ser compartilhada entre o emissor e o receptor (FOROUZAN, 2008). A
criptografia simétrica geralmente é aplicada para garantir a confidencia-
lidade de grandes volumes de dados, pois seu processamento é mais
rápido. Porém, é mais complexa quando utilizada no compartilhamento
de informações, em virtude de sua necessidade de compartilhamento
da chave única, fato que tornam complexos o gerenciamento e as cha-
ves (CARTILHA..., 2017).
Figura 7 – Criptografia simétrica
Texto claro Criptografia Descriptografia
Texto cifrado
Texto claro
Chave única
Fonte: adaptado de Forouzan (2008, p. 963).
22 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
ist
ân
ci
a
da
R
ed
e
Se
na
c
EA
D,
d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l,
so
b
as
p
en
as
d
a
Le
i.
©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
A criptografia assimétrica possui chaves diferentes para execução
do processo; desta propriedade vem sua definição. A chave pública é
conhecida por todos, justamente para que a autenticidade do emissor
possa ser verificada. A figura 8 ilustra o processo de criptografia assi-
métrica, utilizando chaves distintas para o processo de criptografia e
descriptografia. A criptografia assimétrica possui um processamento
mais lento do que a simétrica, mas proporciona a facilidade do geren-
ciamento de chaves, dispensando, inclusive, um canal seguro para a tro-
ca de chaves (CARTILHA..., 2017).
Figura 8 – Criptografia assimétrica
Texto claro Criptografia Descriptografia
Texto cifrado
Texto claro
Chave pública Chave privada
Par de chaves
Fonte: adaptado de Forouzan (2008, p. 923).
Considerando a figura 8, imagine que você deseja enviar uma men-
sagem criptografada para um destinatário e não deseja enviar uma
chave única (secreta). Utilizando o processo de criptografia assimétrica,
basta criptografar sua mensagem utilizando a chave pública do próprio
receptor. Dessa forma, apenas o receptor poderá descriptografar com a
sua chave privada (secreta) o texto cifrado com sua chave pública. Esse
processo proporcionará confidencialidade às mensagens enviadas.
Em suma, no âmbito da criptografia, existem três tipos de chaves:
a chave única e secreta, utilizada na criptografia simétrica; a chave pú-
blica, que é conhecida por todos, utilizada na criptografia assimétrica;
a chave privada, secreta, também utilizada na criptografia assimétrica.
23Introdução à criptografia
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
IMPORTANTE
A combinação dos métodos de criptografia simétrico e assimétrico é
comumente utilizada em diversas implementações de protocolos e pa-
drões de segurança. Como exemplo dessa combinação, temos os pro-
tocolos secure sockets layer (SSL) (em português, protocolo de camada
segura) e o transport layer security (TSL) (em português, segurança da
camada de transporte). Esses protocolos combinam algoritmos simé-
tricos e assimétricos, como RSA, 3DES e funções de resumo hash para
sua implementação.
Considerações finais
Neste capítulo, foram contextualizados os principais elementos re-
lacionados à criptografia. Foram discutidos os aspectos históricos que
contribuíram para a evolução dos algoritmos e apresentados os méto-
dos de criptografia simétricos e assimétricos. Discutimos os tipos de
processamento possíveis para a criptografia através das cifras de bloco
ou cifras de fluxo, assim como alguns exemplos históricos de cifras de
substituição e transposição. Cabe destacar a cifra de substituição de
César como a precursora do uso da criptografia. A criptografia empre-
gada no cenário militar também foi discutida. Em especial, a criptografia
executada por hardware através da máquina Enigma durante a Segunda
Guerra Mundial.
Do ponto de vista do emprego da criptografia em cenários práticos
atuais, a escolha de um algoritmo deve levar em consideração os re-
quisitos de processamento necessários (bloco ou fluxo), bem como a
força da criptografia desejada. É importante ressaltar que os algoritmos
atuais são considerados seguros pelo NIST, porém, não existem garan-
tias de que serão indecifráveis. A criptografia é considerada forte, prin-
cipalmente, quanto maior for o esforço computacional empregado na
tentativa de tentar descobrir uma senha. Logo, quanto mais complexa
24 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
ist
ân
ci
a
da
R
ed
e
Se
na
c
EA
D,
d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l,
so
b
as
p
en
as
d
a
Le
i.
©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
for a senha, o algoritmo tende a ser mais seguro. Um projetista de sis-
temas deve estar aberto à combinação dos métodos de criptografia e
algoritmos adequados a cada componente do sistema projetado. Para
tanto, é vital entender o funcionamento e as propriedades de cada algo-
ritmo disponível na literatura e suas implementações práticas.
Referências
BARKER, Elaine; BAKER, William C. Guideline for using cryptographic standards
in the federal government: directives, mandates and policies. Gaithersburg:
National Institute of Standards and Technology, 2016. Disponível em: https://
nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-175A.pdf. Acesso
em: 15 jan. 2020.
CARTILHA de segurança para internet: criptografia. Cert.br, 2017. Disponível em:
https://cartilha.cert.br/criptografia/. Acesso em: 15 jan. 2020.
CHIRIGATI, Fernando; KIKUCHI, Rafael; GOMES, Talita. Esteganografia. UFRJ,
2006. Disponível em: https://www.gta.ufrj.br/grad/09_1/versao-final/stegano/
introducao.html. Acesso em: 15 jan. 2020.
KERCKHOFFS’S Principle. Crypto-it, 2013. Disponível em: http://www.crypto-it.
net/eng/theory/kerckhoffs.html. Acesso em: 22 jan. 2020.
DOMINIK, Reichl. KeePass Password Safe. Keepass.info, 2020. Disponível em:
https://keepass.info/. Acesso em: 18 jan. 2020.
FIARRESGA, Victor. Criptografia e matemática. Dissertação (Mestrado em ma-
temática para professores) – Faculdade de Ciências da Universidade de Lisboa,
Lisboa, 2010. Disponível em: https://repositorio.ul.pt/bitstream/10451/3647/1/
ulfc055857_tm_Victor_Fiarresga.pdf. Acesso em: 18 jan. 2020.
FOROUZAN, Behrouz A. Comunicação de dados e redes de computadores. 4.
ed. Porto Alegre: AMGH, 2008.
GDPR. Encryption. Intersoft Consulting, 2018. Disponível em: https://gdpr-info.
eu/issues/encryption/. Acesso em: 15 jan. 2020.
25Introdução à criptografia
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
HELLANI, Hussein et al.On blockchain technology: overview of bitcoin and future
Insights. In: 2018 IEEE International Multidisciplinary Conference on Engineering
Technology (IMCET). IEEE, 2018. p. 1-8. Disponível: https://www.researchgate.
net/publication/328138343_On_BlockChain_Technology_Overview_of_Bitcoin_
and_Future_Insights. Acesso em: 24 abr. 2020.
O QUE É esteganografia e como pode ser usada? HackerSec, 2016. Disponível
em: https://hackersec.com/o-que-e-esteganografia-e-como-pode-ser-usada/.
Acesso em: 15 jan. 2020.
PGP CORPORATING. An introduction to cryptography. Version 8.0. out. 2002.
REEDS, Jim. The code book: the evolution of secrecy from Mary, Queen of Scots
to Quantum Cryptography. New York: Anchor, 2000.
ROCHA, Anderson de Rezende. Camaleão: um software para segurança digital
utilizando esteganografia. 2001. 108 p. Monografia (Graduação em Ciência da
Computação) – Universidade Federal de Lavras, Lavras, 2003. Disponível em:
http://docplayer.com.br/74582727-Camaleao-um-software-para-seguranca-
digital-utilizando-esteganografia.html. Acesso em: 24 abr. 2020.
ROEDER, Tom. Symmetric-key cryptography. Cornell.edu, 2010. Disponível
em: http://www.cs.cornell.edu/courses/cs5430/2010sp/TL03.symmetric.html.
Acesso em: 4 fev. 2020.
SILVA, Hebert. Uma abordagem baseada em anonimização para privacidade
de dados em plataformas analíticas. Limeira: Unicamp.br, 2019. Disponível
em: http://repositorio.unicamp.br/jspui/handle/REPOSIP/334676. Acesso em:
15 jan. 2020.
STALLINGS, William. Criptografia e segurança de redes: princípios e práticas.
7. ed. São Paulo: Pearson, 2014.
TANENBAUM, Andrew S.; WETHERAL, David. Redes de computadores. 5. ed.
São Paulo: Pearson, 2012.
THAWTE. History of cryptography: an easy to understand history of
cryptography. 2013. Disponível em: http://book.itep.ru/depository/crypto/
Cryptography_history.pdf. Acesso em: 4 fev. 2020.
27
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Capítulo 2
Criptografia
simétrica
Os métodos de criptografia que utilizam chave simétrica foram os
primeiros registrados na história. As cifras mais simples de substituição
ou de transposição foram desenvolvidas com o passar dos anos pelos
mais diversos métodos matemáticos. Esses métodos foram aprimora-
dos ainda mais com o advento da computação. Todo esse desenvol-
vimento matemático, apoiado por computação, possibilitou a criação
de cifras simétricas ainda mais fortes. Na prática, podem ser conside-
radas inquebráveis, devido ao esforço computacional necessário para
decifrá-las.
A maior complexidade envolvida na criptografia simétrica consiste
na gestão da chave privada (chave secreta). Em um processo de trans-
missão, tanto o emissor quanto o receptor de uma mensagem neces-
sitam conhecer a chave secreta, fato esse que agrava a complexidade
28 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
quando a quantidade de usuários é muito grande. Com isso, o geren-
ciamento de chaves deve ser observado em sistemas que utilizam a
criptografia simétrica. As chaves devem ser protegidas de forma que a
sua perda é considerada um incidente cibernético similar à perda dos
dados em si (BAARS et al., 2015).
Mesmo com a complexidade imposta pelo compartilhamento e pelo
gerenciamento de chaves, a criptografia simétrica é muito utilizada para
um grande volume de dados, como é o caso de big data. Isso se deve
ao seu melhor desempenho no processo de execução da criptografia
ou da descriptografia quando comparado com a criptografia assimétri-
ca. Em situações práticas, você perceberá que a criptografia simétrica
é combinada com a assimétrica com o objetivo de alcançar o melhor
balanceamento entre segurança e velocidade (SYMMETRIC..., 2006).
Apesar dos algoritmos simétricos utilizarem uma mesma chave para
criptografar e descriptografar informações, não significa que seus mé-
todos de funcionamento sejam iguais. Os algoritmos existentes pos-
suem níveis de complexidade e desempenho diferentes. Isso implica ao
administrador ou desenvolvedor de sistemas entender quais métodos
são mais adequados a cada situação prática.
Neste capítulo, serão abordados os principais conceitos e o funcio-
namento da criptografia simétrica, os principais algoritmos que a utili-
zam, vantagens, desvantagens e restrições de uso.
1 Conceitos
Compreendemos anteriormente que na criptografia simétrica é utili-
zada uma única chave para criptografar (codificar) e descriptografar (de-
codificar). Essa é a técnica mais antiga e mais conhecida no campo da
criptografia, sendo o único método existente até 1970 (STALLINGS, 2014).
A chave secreta pode ser qualquer tipo de caractere (numérico ou alfa-
bético). A mensagem original (texto claro) é alterada pelo algoritmo de
29Criptografia simétrica
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
criptografia simétrico, aplicando-se a chave secreta. Para que o processo
de transmissão segura da mensagem aconteça, o remetente e o desti-
natário devem conhecer a chave secreta previamente, portanto, quem a
possuir poderá descriptografar a mensagem enviada e ler o seu conteúdo.
Note que no processo de criptografia simétrica existem cinco compo-
nentes principais: o texto claro, o algoritmo de criptografia, a chave secre-
ta, o texto cifrado e o algoritmo para descriptografia. As cifras de trans-
posição e substituição são exemplos de cifras simétricas (FOROUZAN,
2008). A criptografia simétrica utiliza os conceitos historicamente co-
nhecidos, porém, a abordagem atual é voltada para a implementação
de algoritmos fortes (TANENBAUM; WETHERAL, 2012), sendo esse um
dos requisitos para que o algoritmo seja considerado seguro. Para ga-
rantir a segurança da criptografia, o compartilhamento da chave secreta
deve ser observado. Este deve ser feito por canal seguro, sendo esse um
requisito indispensável. Caso contrário, um invasor pode, de posse da
chave secreta, descriptografar o texto cifrado (STALLINGS, 2014).
Os algoritmos simétricos modernos não são orientados por caracte-
res, como na cifra de César, mas por bits. A orientação por bits permitiu
que qualquer tipo de informação (ou arquivo) seja criptografado, como
áudio, vídeo, imagens, banco de dados, entre outros, abrindo caminho
para sua utilização nos mais diversos campos da segurança da informa-
ção em ambientes computacionais e ampliando sua utilização. Porém,
os ataques direcionados à criptografia simétrica também evoluíram e
não são executados apenas por criptoanalise, como na Antiguidade. A
maioria dos ataques visam explorar possíveis vulnerabilidades nos al-
goritmos, assim como o uso de força bruta (tentativas consecutivas de
adivinhação) para obter a chave secreta (STALLINGS, 2014). Dessa for-
ma, as cifras que utilizam chaves pequenas, isto é, com poucos bits, se
tornaram mais vulneráveis contra os métodos de ataques atuais. Ainda
vamos entender o funcionamento dos principais algoritmos de cripto-
grafia modernos, suas aplicações e fragilidades que impulsionaram a
sua evolução.
30 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
aa
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
PARA SABER MAIS
Os ataques cibernéticos, são cada vez mais comuns na internet. Cada
vez mais, evoluem os métodos e formatos de ataques. Acesse a cartilha
de segurança da informação do CERT.br para conhecer alguns tipos de
ataques (CARTILHA, 2010).
2 Funcionamento
A implementação dos algoritmos pode ser executada tanto por
hardware quanto por software. Algumas cifras simples, como transpo-
sição e substituição, podem ser implementadas facilmente por circuitos
eletrônicos simples. Na figura 1, podemos verificar um exemplo de es-
quema para circuito eletrônico com essa finalidade. O modelo apresenta-
do na figura também é conhecido como cifra de rotação, pois, em termos
práticos, executa o deslocamento de bits na caixa P (FOROUZAN, 2008).
Figura 1 – Esquema eletrônico de criptografia cifra-produto
Caixa tipo P Caixas tipo S
P1
S1
S2
S3
S4
P2 P3 P4
Circuito cifra-produto ou rotação
S5
S6
S7
S8
S9
S10
S11
S12
Parte A Parte B Parte C
Ci
rc
ui
to
d
ec
od
ifi
ca
do
r
de
3
p
ar
a
8
Ci
rc
ui
to
c
od
ifi
ca
do
r
de
8
p
ar
a
3
Fonte: adaptado de Tanenbaum e Wetheral (2012, p. 489).
O dispositivo demonstrado na parte A da figura 1 apresenta um sis-
tema de transposição de 8 bits. A caixa P pode ser utilizada para trans-
por bits pela posição determinada fisicamente no esquema eletrônico.
Dessa forma, apenas o uso do mesmo esquema poderá decodificar a
criptografia. A caixa S, na parte B, pode cifrar 3 bits de entrada (texto
31Criptografia simétrica
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
claro) em 3 bits de saída (texto cifrado). No primeiro estágio, um decodi-
ficador é utilizado para a conversão de 3 bits para 8 bits, realizando uma
conversão de número binário para octal. O decodificador é acoplado à
caixa P, que realizará a transposição dos bits. Novamente, a caixa P é
acoplada a um codificador para a conversão para 3 bits, resultando em
número binário diferente ao de entrada no sistema. Quando acoplamos
sequencialmente uma série de caixas S, damos origem a uma cifra-pro-
duto (também conhecida como cifra de rotação), possibilitando a am-
pliação da quantidade de bits de entrada. Em geral, as cifras-produto
funcionam sobre um valor n de bits de entrada e produzem o mesmo
valor n de bits de saída, variando entre 64 e 256 bits.
NA PRÁTICA
Uma implementação de cifra de produto também pode ser efetuada por
meio de software, realizando permutações e substituições. Uma imple-
mentação por softwares utilizará no mínimo 8 interações de loop (es-
trutura de repetição lógica), executando substituições semelhantes às
caixas S, utilizando 64 bits de entrada e 256 bits na fase interme diária.
3 Principais algoritmos simétricos
Vamos, agora, abordar os algoritmos de criptografia simétricos mo-
dernos, processados por cifra de blocos, como DES, triplo DES, AES,
que são amplamente difundidos (FOROUZAN, 2008). Outros algoritmos,
como Blowfish, RC2, RC4 e RC5, serão apresentados, porém, sem um
maior aprofundamento quanto a seus métodos de funcionamento.
O algoritmo data encryption standard (DES) (em português, padrão
de criptografia de dados), foi o primeiro padrão de criptografia recomen-
dado pelo Instituto Nacional de Padrões e Tecnologia norte-americano
(National Institute of Standards and Technology – NIST). Ele é baseado
32 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
no algoritmo proposto pela IBM chamado “Lúcifer”, porém, diversos
ataques e métodos que exploram suas fraquezas foram registrados,
portanto, seu uso não é mais recomendado. O 3DES é resultado da evo-
lução do DES e, nele, foi proposto o padrão de criptografia 3DES (triplo
DES). De forma simplista, esse algoritmo é igual ao DES, mas triplicado
para aumentar a força da criptografia. Em razão disso, o 3DES é mais
lento que outros métodos de cifra de bloco.
O advanced encryption standard (AES) (em português, padrão avan-
çado de criptografia), ou algoritmo de Rijndael, é atualmente recomen-
dado pelo NIST como substituto do DES. O algoritmo Blowfish, desen-
volvido por Bruce Schneier, é uma chave de tamanho variável, que utiliza
cifra em blocos de 64 bits para criptografia e chaves extensíveis entre
32 e 448 bits. Apesar de possuir chaves consideradas fracas, não se
conhece nenhum ataque bem-sucedido contra o algoritmo.
Os algoritmos RC2, RC4 e RC5 foram desenvolvidos por Ronald
Rivest, da RSA Data Security Inc., com o objetivo de prover algoritmos
com chaves de tamanho variável (entre 1 e 2.048 bits), para balancear
a velocidade da criptografia e a segurança. A principal diferença entre
eles está no processamento da criptografia, os algoritmos RC2 e RC5
são processados através de cifras de bloco, já o RC4 é processado por
cifra de fluxo (FOROUZAN, 2008; STALLINGS, 2014).
3.1 Data encryption standard (DES)
O algoritmo DES foi adotado pelo Nist em 1977. O algoritmo era co-
nhecido como data encryption algorithm (DEA) (em português, algorit-
mo encriptado de dados) e utilizava blocos de 64 bits para criptografia
de texto claro e uma chave de 56 bits. Atualmente, o algoritmo DES foi
atualizado para criptografar utilizando blocos de texto claro e chave se-
creta de 64 bits, porém seu funcionamento utiliza a permutação da cha-
ve secreta para obter os 56 bits. A arquitetura do algoritmo baseia-se em
33Criptografia simétrica
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
dois blocos de transposição cíclica, similar à caixa P e às cifras-produto.
Para execução da criptografia são executadas permutações iniciais de
entrada e, posteriormente, a chave secreta é aplicada para gerar a trans-
posição utilizando iterações (ciclos), assim como nas cifras-produto.
A chave secreta também passa pelo processo de permutação, sen-
do permutada de 64 para 56 bits. Esse processo gera subchaves (k1)
diferentes para cada iteração do processo que vai transpor os blocos
de texto claro à esquerda. Cada subchave gerada tem um tamanho de
48 bits. Cada transposição executada pelo DES é uma cifra complexa e
diferente da utilizada para descriptografia.
Na figura 2, podemos encontrar um exemplo da execução dessas
iterações. Após a 16a iteração (rodada), é realizada uma inversão do tex-
to cifrado e uma nova transposição. Essa troca consiste na inversão da
sequência de bits em dois blocos de 32 bits, para proteger o algoritmo
contra ataques de repetição, em que um atacante intercepta um texto
cifrado durante uma transmissão e o reenvia diversas vezes ao desti-
natário, como se fosse uma transmissão normal para prejudicar o pro-
cesso de transmissão e criptografia (RFC 4772, 2006). Depois disso, é
realizada uma nova permutação para que, ao final, o texto cifrado de 64
bits seja obtido (FOROUZAN, 2010; STALLINGS, 2014; RFC 4772, 2006).
Na figura, podemos verificar o processo executado pelo algoritmo para
processar a criptografia.
34 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
onde
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Figura 2 – Processo de criptografia DES
Entrada do texto claro
(64 bits)
Permuta inicial Escolha permuta 1
Escolha permutada
Escolha permutada
Escolha permutada
Entrada-chave
(64 bits)
64 bits
Permutação reversa
Saída do texto cifrado
(64 bits)
K1 48 bits
56 bits
56 bits
Deslocamento circular
para a esquerda
56 bits
1a rodada
2a rodada
Deslocamento circular
para a esquerda
Deslocamento circular
para a esquerda
K2 48 bits
16a rodada
K16 48 bits
56 bits
56 bits
56 bits
.
.
.
64 bits
64 bits
Troca de 32 Bits
64 bits
64 bits
Fonte: adaptado de Stallings (2014, p. 55).
O algoritmo DES não é mais considerado seguro, pois é mais suscep-
tível aos ataques de força bruta, com isso, foi sucedido pelo protocolo de
criptografia 3DES (triplo DES). Entretanto, muitas aplicações ainda utili-
zam o protocolo DES, seja por ainda confiarem em sua média de segu-
rança e desconhecerem suas vulnerabilidades, seja pela dificuldade de
se substituir ou atualizar os sistemas que ainda o implementam. Como
consequência, novos sistemas precisaram ser implementados com o
protocolo DES para fins de compatibilidade. São utilizados em clientes
antigos de redes privadas virtuais (VPN), pois apresentam melhor de-
sempenho que os seus sucessores 3DES e AES (RFC 4772, 2006).
35Criptografia simétrica
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
3.2 Triplo DES
O algoritmo 3DES, também conhecido como triplo DES, foi apresen-
tado como uma variante do protocolo DES pela RFC 1851 em setembro
de 1995. A chave secreta é composta por três subchaves, com tamanho
de 168 bits, consistindo em três vezes o tamanho da chave permutada
(k1, k2 e k3) utilizadas no protocolo DES. O algoritmo realiza três roda-
das da criptografia DES, aplicando-se às três subchaves no processo
criptográfico (RFC 1851, 1995).
A força do algoritmo triplo DES também se baseia na segurança da
chave secreta e na implementação das três rodadas da função DES.
O algoritmo funciona com o processo criptografia, descriptografia e
criptografia. O motivo para criptografar, descriptografar e criptografar
se deve à necessidade, na época, de manter-se a compatibilidade com
sistemas de criptografia DES e, para tanto, basta utilizar o mesmo valor
para as subchaves k1 e k2 (TANENBAUM; WETHERAL, 2012). Porém,
isso torna o algoritmo mais suscetível a ataques “meet in the middle”
(em português, encontro no meio) (RFC 4772, 2006). O processo de
criptografia e descriptografia é demonstrado na figura 3, em que as sub-
chaves K1, K2 e K3 são aplicadas em cada bloco DES.
Figura 3 – Processo de criptografia triplo DES
Texto claro
Criptografar
DES
Tr
ip
lo
D
ES
Descriptografar
DES
Criptografar
DES
Chave 1
Chave 2
Chave 3
Chave 1
Chave 2
Chave 3
Texto cifrado (A)
Texto claro
Criptografar
DES
Tr
ip
lo
D
ES
Descriptografar
DES
Criptografar
DES
Texto cifrado (B)
64 bits 64 bits
64 bits 64 bits
Fonte: adaptado de Forouzan (2008, p. 943).
36 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Os ataques conhecidos contra os algoritmos DES e triplo DES, como o
ataque de força bruta, “meet in the middle” e chaves relacionadas, impul-
sionaram a atualização do algoritmo, abrindo caminho para o advanced
encryption standard (AES) (em português, padrão de criptografia avan-
çado) (RFC 3565, 1972).
3.3 Advanced encriptation standard (AES)
O advanced encryption standard (AES) (em português, padrão avan-
çado de criptografia), foi projetado pelo governo dos EUA para o pro-
cessamento de informações federais. Entretanto, o AES é amplamente
utilizado por empresas, governos e pessoas no mundo todo. Seus in-
ventores foram selecionados pelo Nist por meio de concorrência públi-
ca, pois o algoritmo oferece uma combinação apropriada de segurança,
desempenho, eficiência, facilidade de implementação e flexibilidade,
com chave secreta com três tamanhos diferentes, 128, 192 e 256 bits
(RFC 3565, 1972).
Do ponto de vista de execução da criptografia, para cada tamanho
de chave, o algoritmo utilizará uma quantidade diferente de ciclos de
execução. Para chaves de 128, 192 e 256 bits, serão executados 10, 12
e 14 ciclos. O tamanho da entrada dos blocos é de 128 bits (tamanho
do bloco de criptografia para entrada de texto claro) (FOROUZAN, 2008).
A figura 4 mostra o processo de criptografia executado pelo protocolo
AES. Note que uma operação lógica XOR é executada com a subchave
K0, gerada pelo gerador de chaves cíclicas. Posteriormente, a cada ciclo,
uma subchave gerada é aplicada na transposição dos bits. No exemplo
da figura, ao final do décimo e último ciclo, o texto cifrado é gerado.
Cada ciclo executado pelo algoritmo AES, com uma cifra com quatro
operações, em que apenas o último ciclo vai executar apenas três opera-
ções. O objetivo dos ciclos, de maneira simples, é transpor os bits de for-
ma não linear para o processo de criptografia só seja possível através da
inversão do processo executado (FOROUZAN, 2008; RFC 3565, 1972).
37Criptografia simétrica
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Figura 4 – Processo de criptografia AES
+
1o ciclo
2o ciclo
. .
.
10o ciclo
K0
K1
K2
Ge
ra
do
r d
e
ch
av
es
c
íc
lic
as
. .
.
Texto cifrado
K10
128 bits
128 bits
Texto claro
Chave
128 bits
A
ES
Fonte: adaptado de Forouzan (2008, p. 944).
3.4 Outros algoritmos
Outros algoritmos de criptografia foram desenvolvidos nas últimas
décadas, sendo que a maioria delas seguem os princípios das cifras
e algoritmos já estudados. O diferencial entre eles compreende, geral-
mente, no tamanho de bits de bloco, bits de chave, número de ciclos ou
funções. São alguns desses algoritmos:
• Blowfish: projetado por Bruce Schineier, possui blocos de 64 bits
com chaves entre 32 e 448 bits.
• CAST-128: utiliza cifras com 16 ciclos, blocos de 64 bits e chaves
entre 40 e 128 bits.
• International data encryption alghoritm (IDEA) (em português,
algoritmo internacional de criptografia de dados): utiliza blocos
de 64 bits com chaves de 128 bits, pode ser implementado por
hardware ou software (FOROUZAN, 2008; STALLINGS, 2014).
38 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
• RC4: também faz parte da família de cifras criadas por Ron Rivest,
com tamanhos de chaves variável com processamento por cifra
de fluxo.
• RC5: faz parte da família de cifras criadas por Ron Rivest, com
tamanhos de chaves e números de ciclos diferentes.
• Serpent: criado por Anderson, Bihram, Knudesem, possui chaves
de criptografia entre 128 a 256 bits e blocos de 128 bits.
3.5 Desempenho dos algoritmos
O estudo de Wahid et al. (2018) concluiu, a partir dos resultados de
experimento e comparação, que o algoritmo Blowfishpossui melhor
performance em tempo e memória, frente a critérios de ataques de adi-
vinhação de senha e, além disso, consome um mínimo de memória.
Para casos em que a confidencialidade e a integridade são fatores mais
importantes, o algoritmo AES é a escolha mais adequada. Para aplica-
ções que utilizam recurso de largura de banda, o DES pode ser consi-
derado a melhor opção, quando não se deseja uma criptografia forte. O
estudo, porém, considerou os algoritmos Blowfish e AES indicados para
a prevenção de ataques de força bruta (tentativas consecutivas de adivi-
nhação de chave), podendo ser aplicados sobre todos os protocolos da
internet baseados em IP (WAHID et al., 2018).
IMPORTANTE
Quando projetamos mecanismos de segurança para redes e/ou siste-
mas, devemos observar quais os requisitos desejados de segurança, as
restrições do projeto, poder de processamento disponível e o necessá-
rio, necessidade da utilização de rede e espaço para armazenamento.
Os algoritmos escolhidos devem ser adequados ao sistema projetado
para que sejam eficientes, evitando o desperdício de processamento.
39Criptografia simétrica
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Similar ao estudo de Wahid et al. (2018), o estudo de Patil et al.
(2016) escolheu, entre os algoritmos criptográficos, os que a criptogra-
fia melhor se adapta aos requisitos e às necessidades dos usuários. No
estudo, foram observadas a força, a fraqueza, o custo computacional e
o desempenho dos algoritmos e foram implementados os mais difundi-
dos, DES, 3DES, AES, RSA e Blowfish. Patil et al. (2016), concluíram que
o algoritmo Blowfish utiliza a menor quantidade de memória, enquanto
o RSA utilizou a maior quantidade. Os algoritmos DES e AES mantive-
ram um consumo mediano de memória.
Os resultados também mostraram que o algoritmo RSA (assimétri-
co) utiliza mais tempo para criptografar e descriptografar do que todos
os outros; o Blowfish utilizou menos tempo entre todos os algoritmos;
o algoritmo AES foi considerado o mais adequado para aplicações que
requerem maior integridade e confidencialidade; para ataques de adivi-
nhação, o Blowfish se mostrou mais eficiente; e o protocolo AES exige
maior largura de banda para transmissão, enquanto o DES requer me-
nor largura (PATIL et al., 2016). Os estudos práticos de Patil et al. (2016)
e de Wahid et al. (2018) corroboram entre si, indicando que a criptogra-
fia simétrica se mostra mais vantajosa, quando é necessária uma maior
velocidade de encriptação e uma maior força na criptografia.
4 Vantagens e desvantagens
Como mencionado anteriormente, a principal desvantagem da crip-
tografia simétrica reside na complexidade do compartilhamento da
chave secreta, porém, esse fato não é impeditivo para sua utilização.
Quando existe a necessidade da distribuição de chaves para muitos
usuários (emissores e receptores), podemos utilizar sistemas de distri-
buição de chaves.
A distribuição de chaves simétricas (secretas) é necessária para que
o emissor e o receptor possam realizar o processo criptográfico fim a
40 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
fim (criptografar e descriptografar). Refletindo sobre o aspecto prático
dessa distribuição, quanto maior a quantidade de pessoas que dese-
jam trocar informações criptografadas, maior será o desafio. Caso cada
usuário tenha sua própria chave para transmitir uma informação, todos
os destinatários deverão conhecer essa chave. O compartilhamento
de chaves deverá, portanto, ser efetuado de maneira segura. Para lidar
com o desafio da distribuição de chaves, foram desenvolvidos métodos
como o key distribution center (KDC) (em português, centro de distribui-
ção de chaves).
Na figura 5, podemos verificar o funcionamento do KDC. De maneira
simples, ele funciona como uma espécie de concentrador de chaves,
armazenando a chave secreta de cada usuário (membro). Dessa forma,
quando dois usuários (emissor e receptor) necessitam enviar mensa-
gens entre si, o KDC verifica a autenticidade das chaves secretas do
receptor e do emissor e emite chaves temporárias para a transmissão.
Essas chaves temporárias também são conhecidas como chaves de
sessão (STALLINGS, 2014).
Figura 5 – Cento de distribuição de chaves
Alice
Ana
Teodoro
Roberto
Jorge
Beth
K Beth
K Jorge
K Roberto
K Teodoro
K Ana
K Alice
KDC. .
.
. .
.
Fonte: adaptado de Forouzan (2008, p. 982).
41Criptografia simétrica
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
PARA SABER MAIS
As chaves de sessão são criadas a partir de um emissor e um receptor
e são utilizadas por um tempo determinado. Diversos protocolos de au-
tenticação, como o Kerberos, utilizam chaves de sessão baseados em
criptografia simétrica para efetivar a autenticação e a proteção da co-
municação entre usuários. Para conhecer mais sobre como as chaves
de sessão são criadas e o funcionamento dos protocolos de autentica-
ção, recomenda-se a leitura da seção 31.7 – Gerenciamento de chaves,
do livro Comunicação de dados e redes de computadores, de Forouzan
(2008). Uma alternativa ao problema da troca de chaves é o método de
troca de chaves de Diffie-Hellman. No capítulo 4 desse mesmo livro é
possível encontrar mais informações a esse respeito.
A principal vantagem da criptografia simétrica está na velocidade de
encriptação, que chega a ser até 10.000 vezes mais rápida quando com-
parada aos métodos assimétricos. Essa maior velocidade permite cifrar
grandes volumes de dados em pouco tempo (CALLAS, 2008). As chaves
simétricas de maneira geral são pequenas, nos algoritmos estudados,
por exemplo, são de até 256 bits, permitindo, mesmo assim, gerar cifra-
dores extremamente complexos e robustos.
Para você refletir: Em quais serviços disponíveis na internet a crip-
tografia simétrica é mais adequada? Para serviços de envio de mensa-
gens instantâneas como o WhatsApp e o Telegram ou serviços de ar-
mazenamento de dados em nuvem como o DropBox e o Google Drive?
Considerações finais
Neste capítulo, foram abordados os aspectos de funcionamento da
criptografia simétrica e demonstrados os detalhes de funcionamento
dos principais algoritmos que são amplamente utilizados em organi-
zações, governos e empresas por todo o mundo todos. Dois estudos
práticos também foram apresentados, visando corroborar com as
42 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
afirmações teóricas a respeito das vantagens, das desvantagens e do
desempenho desses algoritmos.
A principal desvantagem da criptografia simétrica é a distribuição
de chaves, porém um concentrador (KDC) pode ser utilizado para mini-
mizar essa desvantagem, reduzindo a complexidade da distribuição do
compartilhamento de chaves. Verificamos que a principal vantagem da
criptografia simétrica, em comparação à assimétrica, é a velocidade e
o menor custo computacional de processamento, sendo amplamente
utilizadapara criptografar grandes volumes de dados.
Vale ressaltar que os algoritmos simétricos foram evoluindo confor-
me suas vulnerabilidades foram descobertas. O principal ataque impe-
trado à criptografia simétrica é o ataque de força bruta. Porém, outros
métodos de criptoanálise podem ser utilizados para decifrar a cripto-
grafia utilizada. A chave secreta é o principal ponto de atenção para
implementação da força dos algoritmos: quanto maior for o tamanho
da chave maior será a força da criptografia. Um usuário de criptografia
deve utilizar senhas fortes e complexas para garantir um melhor nível de
segurança, além de zelar pela guarda e pelo compartilhamento seguro
da chave secreta, para evitar ataques de força bruta ou simplesmente
perder a chave secreta que pode decifrar um texto criptografado.
Referências
BAARS, Hans et al. Fundamentos de segurança da informação: com base na
ISO 27001 e na ISO 27002. 2. ed. São Paulo: Brasport, 2015.
CALLAS, Jon. An introduction to cryptography. Menlo Park: PGP Corporation,
2008. Disponível em: http://cisweb.bristolcc.edu/~ik/Download/CIT18/
IntroToCrypto.pdf. Acesso em: 2 fev. 2020.
CARTILHA de segurança para internet: criptografia. Cert.br, 2017. Disponível em:
https://cartilha.cert.br/criptografia/. Acesso em: 15 jan. 2020.
43Criptografia simétrica
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
FOROUZAN, Behrouz A. Comunicação de dados e redes de computadores. 4.
ed. Porto Alegre: AMGH, 2008.
PATIL, Priyadarshini et al. A comprehensive evaluation of cryptographic algo-
rithms: DES, 3DES, AES, RSA and Blowfish. Procedia Computer Science, v. 78,
n. 1, p. 617-624, 2016.
RFC 1851. The ESP triple DES transform. Ietf.org, set. 1995. Disponível em:
https://tools.ietf.org/html/rfc1851. Acesso em: 7 fev. 2020.
RFC 3565. Use of the advanced encryption standard (AES) encryption algorithm
in cryptographic message syntax (CMS). Ietf.org, jul. 2003. Disponível em:
https://tools.ietf.org/html/rfc3565. Acesso em: 7 fev. 2020.
RFC 4772. Security implications of using the data encryption standard (DES).
Ietf.org, dez. 2006. Disponível em: https://tools.ietf.org/html/rfc4772. Acesso
em: 7 fev. 2020.
STALLINGS, William. Criptografia e segurança de redes: princípios e práticas.
7. ed. São Paulo: Pearson, 2014.
SYMMETRIC cryptography. WHUK, 2006. Disponível em: https://www.webhosting.
uk.com/blog/symmetric-cryptography/. Acesso em: 26 jan. 2020.
TANENBAUM, Andrew S.; WETHERAL, David. Redes de computadores. 5. ed.
São Paulo: Pearson, 2012.
WAHID, Mohammed Nazeh Abdul et al. A Comparison of cryptographic
Algorithms: DES, 3DES, AES, RSA and Blowfish for guessing attacks prevention.
Journal Computer Science Applications and Information Technology, v. 3, p.
1-7, 2018.
45
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Capítulo 3
Criptografia de
chave pública e
privada
A criptografia assimétrica é também conhecida como criptografia de
chave pública, em que um par de chaves, uma pública e outra privada
(secreta), deve ser utilizado para realizar os processos de criptografia
e descriptografia. Esse modelo de criptografia mudou a direção dos al-
goritmos criptográficos que, até a década de 1970, eram baseados ex-
clusivamente na criptografia simétrica. Lembrando que um método não
substitui o outro e que os modelos de algoritmos assimétricos lidam
com pontos, como a autenticação e o não repúdio, que não são endere-
çados pela criptografia simétrica.
A criptografia assimétrica foi introduzida pelos pesquisado-
res Whitfield Diffie e Martin Hellman que, em seu artigo, “New direc-
tions in cryptography” (em português, “Novas direções em criptografia”),
previram que o aumento do processamento de mensagens em redes,
46 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
exigiria novos métodos de criptografia, que visam minimizar a neces-
sidade de canais seguros para distribuição de chaves, além de funda-
mentar a criação de um novo modelo de criptografia que perdurasse por
longa data (DIFFIE; HELLMAN, 1976).
Todos os processos de certificação e autenticidade digital utilizados
atualmente são baseados em criptografia assimétrica. Sua maior van-
tagem está no fato de que a chave pública pode ser distribuída sem
restrições, ou seja, caso alguém queria se comunicar, deve usar a chave
pública do seu destinatário para criptografar a mensagem, podendo en-
viá-la (criptografada) em uma rede não segura, como a internet. Dessa
forma, apenas o destinatário poderá descriptografar a mensagem en-
viada, utilizando a sua própria chave privada (secreta).
Neste capítulo, vamos abordar os principais conceitos da criptogra-
fia assimétrica, como a confidencialidade e a autenticação são obti-
das, quais são as vantagens e as desvantagens, como a troca de cha-
ves é efetuada e, ao final, os principais algoritmos assimétricos serão
apresentados.
1 Conceitos
Em um sistema criptográfico assimétrico, quando o texto claro é
criptografado por uma chave pública, somente seu par de chave privado
correspondente possibilitará a execução da descriptografia. Caso outra
chave, não pertencente ao par de chaves do usuário, seja utilizada, não
será possível gerar o texto claro novamente. Essa propriedade possibi-
lita lidar com os problemas relacionados ao gerenciamento da troca de
chaves. Não é necessário que as chaves secretas sejam compartilha-
das entre o emissor e o receptor. Cada um dos participantes de uma
comunicação mantém sua própria chave privada e pode compartilhar
apenas sua chave pública, dispensando canais seguros para o compar-
tilhamento das chaves públicas.
47Criptografia de chave pública e privada
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
NA PRÁTICA
Imagine que, em um sistema de criptografia assimétrico, para cada
usuário, é gerado um par de chaves (pública e privada) utilizado para
criptografia e descriptografia de mensagens. A partir daí, todos os usuá
rios inserem suas chaves públicas em um repositório ou sistema que
disponibilize a chave pública para todos os usuários. Dessa forma, cada
usuário vai manter uma coleção de chaves públicas dos demais usuá
rios. Se um usuário quiser transmitir uma mensagem confidencial, basta
criptografar a mensagem com a chave pública do usuário destino. E o
usuário destinatário, por sua vez, vai descriptografar a mensagem utili
zando sua própria chave privada (STALLINGS, 2014).
Para que a criptografia assimétrica funcione, os algoritmos imple-
mentados devem ter as algumas características:
• ser computacionalmente inviável determinar a chave de descrip-
tografia a partir do simples conhecimento do algoritmo de cripto-
grafia utilizado;
• ser inviável a obtenção da chave privada a partir da pública; e
• qualquer uma das duas chaves relacionadas poder ser usada
para criptografar (chave pública ou privada).
A chave pública utilizada para criptografar uma mensagem deve ser
adequada ao objetivo da criptografia utilizada no sistema. Percebemos
então que a chave privada pode ser armazenada de diferentes formas,
como um token (pendrive específico),um cartão de acesso (smartcard),
um arquivo de texto e assim por diante (CARTILHA..., 2019).
O conceito de criptografia assimétrico foi desenvolvido para que
qualquer pessoa ou sistema possa utilizá-lo. Seu conceito foi desen-
volvido para disponibilizar a chave de criptografia pública a qualquer
pessoa, como uma chave secreta conhecida apenas pelo destinatário.
Em geral, a criptografia assimétrica é utilizada para confidencialidade,
48 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
autenticação, integridade (quando usada em conjunto com algoritmos
de hash) e não repúdio.
Os sistemas de criptografia assimétrica podem ser classificados em
três tipos (STALLINGS, 2014):
• Criptografia e descriptografia: o emissor criptografa utilizan-
do a chave pública do destinatário, seu principal objetivo é a
confidencialidade;
• Assinatura digital: o emissor utiliza sua própria chave privada
para garantir a autenticidade da sua mensagem;
• Troca de chaves: emissor e receptor trabalham em conjunto para
trocar chaves de sessão, utilizando suas chaves privadas. Nas pró-
ximas seções, abordaremos o funcionamento desses métodos.
2 Conseguindo confidencialidade
Em um sistema criptográfico assimétrico, a garantia da confidencia-
lidade está contida na chave privada. Imagine que um usuário “A” escre-
ve uma mensagem em texto claro, logo, cada letra do texto claro pode
ser presentada por um conjunto X (X = [x1, x2, ..., xn]). Os “n” elementos
de X são letras em algum alfabeto finito (a, b, c, d, e, f, ... z). A mensagem
do usuário A é direcionada para o usuário B. Para tanto, gera-se um par
de chaves relacionado: uma chave pública (PUb) e uma chave privada
(PRb). A chave privada é conhecida apenas pelo usuário B, enquanto a
chave pública do usuário B (PUb) está disponível para qualquer pessoa,
inclusive ao usuário A (STALLINGS, 2014).
Tendo como entrada do processo a mensagem X e a chave de crip-
tografia pública do usuário B (PUb), o algoritmo de criptografia gera o
texto cifrado. O texto cifrado é representado pelo conjunto Y= [y1, y2,
..., yn], que é obtido pela da função Y = E (PUb, X). O usuário B (desti-
natário da mensagem), de posse de sua chave privada (PRb), é capaz
de decifrar a mensagem por meio da função X = D (PRb, Y). Caso um
49Criptografia de chave pública e privada
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
invasor obtenha o texto cifrado Y e a chave pública do usuário B (PUb),
seu objetivo será tentar recuperar X’ e/ou PRb’. Normalmente, um inva-
sor utiliza a criptoanálise para tentar recuperar um texto estimado, que
poderia ser a mensagem transmitida (X’). Se o invasor estiver buscando
a chave privada, ele tentará estimar a chave privada do usuário B (PRb)
para identificar mensagens futuras, ou seja, o invasor tentará estimar
PRb’. Na figura 1, temos um exemplo do funcionamento básico desse
sistema de criptografia e descriptografia assimétrico.
Figura 1 – Confidencialidade com criptografia assimétrica
Texto claro
Origem (X)
Algoritmo de
criptografia
Y=E(PUb, X)
Texto cifrado
Algoritmo de
descriptografia
X= D(PRb, Y)
Texto claro
Destino (X)
Par de chaves
do usuário B
(PUb e PRb)
X’
PRb’
Invasor
PRbPUb
Usuário A Usuário B
Fonte: adaptado de Stallings (2014, p. 203).
3 Conseguindo autenticação
Diferentemente do modelo que garantia a confidencialidade, para
obter-se autenticação faz-se o uso de duas funções incorporadas ao
cenário anterior: Y = E (PRa, X) para X = D (PUa, Y), em que Y é o texto
cifrado e X é o texto claro. Logo, a função Y criptografará o texto claro
aplicando a chave privada do usuário A (PRa) e a função X descripto-
grafará o texto cifrado aplicando a chave pública do usuário A (PUa)
(STALLINGS, 2014).
50 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Durante o processo em que o usuário A envia uma mensagem para
o usuário B, ele vai criptografar a mensagem usando a sua própria cha-
ve privada (PRa). Para descriptografar a mensagem, o usuário B deve
utilizar a chave pública de A (PUa). Como a mensagem foi criptografa-
da com a chave privada do usuário e ninguém além do usuário A pos-
sui a chave privada, o emissor da mensagem só pode ser o usuário A.
Portanto, podemos considerar que a mensagem recebida pelo usuário
B é autenticada para o usuário A.
No modelo que visa à autenticidade não há preocupações com a
confidencialidade da mensagem, pois qualquer um de posse do texto
cifrado e da chave pública do usuário A (origem da mensagem) poderá
realizar sua descriptografia. Na figura 2, é demonstrado o funcionamen-
to da criptografia assimétrica para essa finalidade. Um invasor (criptoa-
nalista) tem acesso ao conteúdo da mensagem e utilizando a chave pú-
blica do usuário A (PRa) pode decifrar a mensagem. Sob esse aspecto
o objetivo do invasor será tentar estimar a chave privada do usuário A
(PRa’), com o objetivo de forjar sua autenticidade em novas mensagens.
Figura 2 – Autenticidade com criptografia assimétrica
Texto claro
Origem
Algoritmo de
criptografia
Y=E(PRa, X)
Texto cifrado
Algoritmo de
descriptografia
X= D(PUa, Y)
Texto claro
Destino
Par de chaves
do usuário A
(PUa e PRa)
PRa’
Invasor
PRa
PUa
Usuário A Usuário B
Fonte: adaptado de Stallings (2014, p. 204).
51Criptografia de chave pública e privada
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
4 Conseguindo confidencialidade e
autenticação
Para se obter a confidencialidade e a autenticação com a criptografia
assimétrica é necessário mesclar os dois cenários demonstrados ante-
riormente. Utilizando um duplo esquema de chave pública, teremos as
funções: Z = E’’ (PUb, E’ (PRa, X)) e X = D’’ (PUa, D’ (PRb, Z)). A função
Z resulta no texto cifrado, que é obtido a partir da criptografia com a
chave privada do usuário A (PRa) e, posteriormente, criptografada com
a chave pública do usuário B (PUb). Por sua vez, a função X é o resultado
da descriptografia aplicando-se a chave privada do usuário B (PRb), ao
texto cifrado pela função Z. Posteriormente, é aplicada a descriptografia
pela chave pública do usuário A (PUa), seguida da descriptografia do
texto resultante com a chave privada do usuário B (PRb), que vai gerar o
texto claro (STALLINGS, 2014).
No primeiro estágio, a mensagem é criptografada usando a chave
privada do usuário A (emissor da mensagem) (PRa). Esse primeiro es-
tágio fornece a autenticidade à mensagem, pois somente o usuário A
possui a chave privada (Pra). Em seguida, no segundo estágio, o usuário
A realiza a criptografia novamente. Porém, dessa vez, utiliza a chave
pública do usuário B (PUb), que será o receptor da mensagem. Nesta
etapa, se obtém a confidencialidade, pois a mensagem criptografada só
poderá ser decifrada pelo usuário B, que possui a chave privada (PRb). A
principal desvantagem dessa técnica é justamente o alto custo compu-
tacional necessário, pois, para realizar o processo de formacompleta,
será necessária a execução da criptografia e da descriptografia ao me-
nos quatro vezes, em cada troca de mensagens. Na figura 3, podemos
compreender o funcionamento desse modelo.
52 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Figura 3 – Confidencialidade e autenticação
Algoritmo de
criptografia
Algoritmo de
descriptografia
Algoritmo de
descriptografia
Texto
claro
Destino
Texto
claro
Origem
Par de chaves
do usuário B
(PUb e PRb)
Par de chaves
do usuário A
(PUa e PRa)
PRbPRa PUb
PUa
X Y Z Y X
Usuário A
X = Texto claro
Y = Texto cifrado e autenticado
Z = Texto cifrado e confidencial Usuário B
Algoritmo de
criptografia
Fonte: adaptado de Stallings (2014, p. 205).
5 Vantagens e desvantagens da criptografia
assimétrica
Apesar da criptografia assimétrica se mostrar mais conveniente do
que a criptografia simétrica, principalmente pelo fato de não exigir um
canal seguro para troca de chaves, ela apresenta algumas desvanta-
gens. Em geral, a criptografia assimétrica requer tamanhos de chaves
mais longos que a criptografia simétrica, o que contribui para sua velo-
cidade ser mais lenta. A complexidade do cálculo executado na cripto-
grafia assimétrica é outro fator que aumenta seu tempo de execução.
Essa complexidade é necessária para evitar que a chave privada seja
descoberta por tentativas de adivinhação da senha ou ataques de força
bruta (HUGHES, 2020).
Outra desvantagem da criptografia assimétrica é que, para comparti-
lhar as chaves públicas, uma infraestrutura de chave pública precisa ser
criada e disponibilizada para que os usuários consigam trocar mensa-
gens criptografadas entre si. Essa estrutura de chave pública, do inglês
public key infrastructure (PKI), tem como objetivo gerenciar as chaves
53Criptografia de chave pública e privada
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
públicas geradas. Com isso, é necessário que existam autoridades de
certificação, que garantam a identidade da fonte autora de uma chave
pública. As autoridades de certificação realizam a emissão, a revogação
e a validação das chaves públicas (HUGHES, 2020).
As principais vantagens da criptografia assimétrica estão ligadas
aos pontos demonstrados ao seu princípio de funcionamento. Entre
elas, a não necessidade de troca da chave secreta entre os usuários
para criptografar os dados e a utilização da chave pública que pode ser
disponibilizada para todos usuários. A autenticação, quando a cripto-
grafia é executada utilizando a chave privada do usuário e descripto-
grafada com sua chave pública. Dessa forma, permite o não repúdio da
fonte, quando está atrelada a uma autoridade de certificação, ou seja,
um emissor de uma mensagem não pode negar a informação enviada,
após autenticada (AMARO, 2008).
6 Trocando chaves
A criptografia assimétrica não substitui a criptografia simétrica, pois
possui maior custo computacional e tempo mais elevado para sua exe-
cução. Em geral, a criptografia assimétrica é utilizada para distribuir
chaves simétricas, que servirão para realizar a criptografia das mensa-
gens. Essa chave utilizada na comunicação também é conhecida como
chave de sessão, que é obtida quando usuários precisam se comunicar
e não possuem um canal seguro para trocar a chave simétrica.
O emissor da comunicação inicia o processo de troca de chaves uti-
lizando apenas as chaves públicas dos usuários envolvidos na comu-
nicação (origem e destino). Ambos os usuários envolvidos na comuni-
cação conseguirão, aplicando suas chaves privadas, calcular o valor da
chave de sessão (simétrica) que será utilizada para a transmissão da
mensagem secreta a seguir (NUNES, 2007).
54 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
O processo para a troca de chaves foi elaborado por Hellman e Diffie.
Atualmente diversos sistemas utilizam o processo de troca de chaves,
pois possibilita que os usuários troquem uma chave simétrica sem a
necessidade do canal seguro.
7 Principais algoritmos assimétricos
Os algoritmos assimétricos podem ser utilizados em três finalida-
des: criptografia/descriptografia, autenticação e troca de chaves. O qua-
dro 1 demonstra a aplicação prática para alguns algoritmos. Note que
nem todos os algoritmos são indicados para todas as finalidades. Os
algoritmos RSA e o algoritmo de curva elíptica são capazes de executar
as três finalidades (criptografia, assinatura e troca de chaves), enquanto
o algoritmo de Diffie-Hellman destina-se apenas para a troca de chaves.
Quadro 1 – Aplicação dos algoritmos assimétricos
ALGORITMO (DES)
CRIPTOGRAFIA ASSINATURA TROCA DE CHAVE
RSA SIM SIM SIM
Curva elíptica (El Gamal) SIM SIM SIM
Diffie-Hellman NÃO NÃO SIM
Fonte: adaptado de Stallings (2014, p. 206).
O algoritmo RSA é amplamente utilizado em sistemas criptográficos
e recomendado pelo NIST para gerar e verificar a autenticidade de as-
sinaturas digitais (BARKER, 2020) e, além disso, como apresentado no
quadro anterior, é indicado para todas as finalidades. Vamos nos apro-
fundar um pouco mais nesse algoritmo.
55Criptografia de chave pública e privada
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
7.1 Rivest, Shamir e Adleman (RSA)
A figura 4 ilustra o fluxo da criptografia executada pelo algoritmo
RSA. Para fins de exemplificação, vamos imaginar que, para que Bob
consiga se comunicar com Alice, ele seleciona dois números primos1
muito grandes, p e q. Multiplica-se os dois números primos escolhidos
para obter n, que servirá de módulo (ou seja, o valor numérico absoluto
desconsiderando o seu sinal) para criptografia e descriptografia. Sua
notação matemática simples é n = p x q. Posteriormente, Bob escolhe
um número inteiro aleatório a e, na próxima etapa, calculará d através
da função d = 1 mod Φ (letra grega fi). Bob transmitirá apenas os va-
lores de a e n, porém os valores de d e Φ são mantidos em segredo
(FOROUZAN,2008).
Para criptografar uma mensagem direcionada a Bob, basta que o
usuário utilize o cálculo com os valores de a e n que foram publicados.
Para isso, o texto cifrado será obtido pela função: C = Pa (mod n). No
exemplo, da figura 4, Alice envia um texto cifrado para Bob que, para
descriptografar a mensagem, aplicará seus valores secretos à função
P = Ca (mod n). O RSA possui a restrição de que o valor de p, obrigato-
riamente, precisa ser menor que o valor de n. Caso p seja um número
grande, o texto claro deverá ser dividido em blocos para manter essa
condição (p < n) (FOROUZAN, 2008).
Figura 4 – Fluxo da criptografia pelo algoritmo RSA
P=Ca(mod n)
Calculando
a, d e n
C=Pa(mod n). Texto cifrado
Para o público
Chave pública a Chave pública d
Texto claroTexto claro
BobAlice
Fonte: adaptado de Forouzan (2008, p. 949).
1 Números primos são números que podem ser divididos sem resto apenas por 1 e por si mesmos.
56 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ricul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Apesar de o RSA poder ser utilizado para criptografia e descripto-
grafia de mensagens, devido a sua baixa velocidade, geralmente, se é
combinado às funções de resumo Hash. Em termos práticos o RSA é
utilizado em assinaturas digitais. sistemas criptográficos que utilizem
mensagens curtas e sistemas de autenticação (FOROUZAN, 2008).
PARA SABER MAIS
Para saber mais sobre o funcionamento da criptografia RSA, a Khan
Academy [s. d.], disponibiliza uma série de vídeos dividida em três eta
pas sobre esse modelo. Pesquise por “Uma jornada pela criptografia” e
acesse o item criptografia moderna.
7.2 Outros algoritmos assimétricos
Outros algoritmos também foram desenvolvidos para lidar com a
criptografia assimétrica, e um deles foi o “algoritmo da mochila”, desen-
volvido pelo cientista da computação norte-americano Ralph Merkle. A
ideia do algoritmo era uma inferência à mochila, em que uma pessoa
pode carregar certa quantidade de objetos com pesos diferentes. A cha-
ve pública, nesse método, consiste no peso total dos objetos colocados
na mochila e a lista de objetos é a chave privada.
Uma curiosidade sobre esse algoritmo é que Merkle estava tão se-
guro sobre a força de seu algoritmo que ofereceu um prêmio para quem
o decifrasse. Tal façanha foi conquistada por Adi Shamir, um dos inven-
tores do RSA. Merkle reforçou o seu algoritmo e aumentou o prêmio
mais duas vezes e, mesmo assim, o algoritmo foi decifrado, consecu-
tivamente, por Ronald Rivest e Leonard Adleman (inventores do RSA)
(TANENBAUM; WETHERAL, 2012).
57Criptografia de chave pública e privada
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Outros algoritmos foram desenvolvidos pelos estudiosos El Gamal e
Schnorr, e se baseiam nessa dificuldade em calcular logaritmos discre-
tos. Há outros algoritmos que se baseiam em curvas elípticas. Porém,
os dois principais métodos de cálculo de chave pública e privada ba-
seiam-se em fatoração de números extensos, dos quais a base é um
número primo, sendo considerados problemas computacionalmente
difíceis de resolver (TANENBAUM; WETHERAL, 2012).
PARA SABER MAIS
Para saber mais sobre o funcionamento de algoritmos em curva elíptica,
como o El Gamal, recomendamos a leitura do capítulo 10 do livro Cripto-
grafia e segurança de redes de Willian Stallings (2014).
Considerações finais
Neste capítulo, abordamos a criptografia assimétrica, também co-
nhecida como criptografia de chave pública e privada. Com a criptogra-
fia de chave pública é possível criar uma estrutura para autenticar a fon-
te de uma mensagem e, também, transmitir informações confidenciais
em um meio não seguro. Destacamos as vantagens e desvantagens da
criptografia de chave pública e privada e como podem ser combinadas
com a criptografia simétrica para transmitir chaves secretas (chaves de
seção). Verificamos como a troca segura de chaves é efetuada, poden-
do ser utilizada sem um canal seguro (como a internet) e entendemos
os detalhes do funcionamento do algoritmo RSA.
Vale ratificar que nem todos os algoritmos assimétricos são indi-
cados para criptografia/descriptografia, por serem muito lentos. A for-
ça da criptografia assimétrica está na complexidade de calcular suas
chaves, através do problema do logaritmo discreto ou da fatoração de
números primos grandes. A complexidade do cálculo torna inviável
58 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
criptografar uma mensagem grande. Uma estratégia para isso pode ser
dividir a mensagem grande em blocos ou combinar com técnicas de
criptografia simétrica, para compartilhamento de uma chave de sessão
(simétrica). Do ponto de vista da autenticação, uma mensagem muito
grande também pode ser onerosa. Uma estratégia para redução do cus-
to computacional é a utilização das funções de resumo hash (assunto
que abordaremos mais à frente).
É importante ter em mente que, para obter a confidencialidade, se
utiliza a chave pública do destinatário para criptografar a mensagem. De
maneira oposta, quando o emissor utiliza sua chave privada, a mensa-
gem poderá ser descriptografada por sua chave pública, servindo para
autenticar a mensagem sem a manter confidencial. Quando os dois mé-
todos são combinados, resultam na autenticidade e na confidencialida-
de, porém, esse processo exigirá o cálculo de chaves ao menos quatro
vezes, em vez de duas vezes.
Partindo do princípio de que a criptografia assimétrica é mais lenta
do que a criptografia simétrica, e que é menos adequada para cripto-
grafar grandes volumes de dados, chega-se à conclusão de que os mé-
todos podem ser combinados para garantir os pilares da segurança da
informação. Através da combinação dos métodos, podemos utilizar a
criptografia assimétrica para distribuir chaves simétricas. Com isso, por
exemplo, pode-se criptografar grandes volumes de dados, com mais se-
gurança e rapidez do que utilizando os métodos de forma isolada.
Referências
AMARO, George. Criptografia simétrica e criptografia de chaves públicas: van-
tagens e desvantagens. 2008. Acesso em: 27 abr. 2020.
BARKER, Elaine. Guideline for using cryptographic standards in the federal
government: cryptographic mechanisms. NIST Special Publication 800-175B,
59Criptografia de chave pública e privada
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Rev. 1, 91 p., mar. 2020. Disponível em: https://nvlpubs.nist.gov/nistpubs/
SpecialPublications/NIST.SP.800-175Br1.pdf. Acesso em: 25 fev. 2020.
CARTILHA de segurança para internet: criptografia. Cert.br, 2017. Disponível em:
https://cartilha.cert.br/criptografia/. Acesso em: 15 jan. 2020.
DIFFIE, W. Whitfield; HELLMAN, Martin E. New directions in cryptography. IEEE
Transactions on Information Theory, v. 22, n. 6, p. 644-654, nov. 1976.
HUGHES, Alan. The disadvantages of asymmetric encryption. Techwalla, 2017.
Disponível em: https://www.techwalla.com/articles/the-disadvantages-of-
-asymmetric-encryption. Acesso em: 25 fev. 2020.
FOROUZAN, Behrouz A. Comunicação de dados e redes de computadores. 4.
ed. Porto Alegre: AMGH, 2008.
KHAN ACADEMY. Computação. Ciência da Computação. Uma jornada pela crip-
tografia. Criptografia moderna. [s. d.] Disponível em: https://pt.khanacademy.
org/computing/computer-science/cryptography#modern-crypt. Acesso em: 27
abr. 2020.
NUNES, Délio Silva. Criptografia assimétrica. Ufrj.br, 2007. Disponível em: ht-
tps://www.gta.ufrj.br/grad/07_2/delio/Criptografiaassimtrica.html. Acesso em:
23 fev. 2020.
STALLINGS, William. Criptografia e segurança de redes: princípios e práticas.
7. ed. São Paulo: Pearson, 2014.
TANENBAUM, Andrew S.; WETHERAL, David. Redes de computadores. 5. ed.
São Paulo: Pearson, 2012.
61
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Capítulo 4
Troca de chavesDiffie-Hellman
Imagine que você deseja enviar um baú trancado a uma pessoa atra-
vés de uma transportadora. Porém, o conteúdo do baú não pode ser
visto por ninguém além do destinatário. No entanto, o destinatário não
possui a chave do baú. Como resolver esse problema?
A solução para esse impasse é análoga ao sistema de troca de cha-
ves descrito por Martin Hellman e Whitfield Diffie (1976). Para estabe-
lecer um canal confidencial entre você e o seu destinatário, basta que
você envie o baú com o cadeado aberto ao seu destino. Quando for
recebido, o destinatário deve também adicionar seu próprio cadeado,
também aberto e colocar uma cópia da chave do novo cadeado aberto
dentro do baú. Antes de devolver o baú a você, o destinatário deverá
62 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
trancar o baú com o primeiro cadeado, colocado por você e que foi re-
cebido aberto. Pronto, você receberá o baú trancado com o primeiro ca-
deado e, possuindo a chave, poderá abri-lo. Dentro do baú você obterá
a cópia da chave do novo cadeado devolvido pelo seu destinatário. A
partir desse momento, tanto você quanto seu destinatário, possuem a
chave do segundo cadeado adicionado ao baú e poderão enviá-lo sem
que seu conteúdo possa ser visto pela transportadora.
Diversos padrões, produtos e protocolos de tecnologia aplicados no
campo da segurança da informação utilizam o método da troca de cha-
ves como base de funcionamento de seus métodos. O principal exem-
plo de uso da troca de chaves é o protocolo secure shell protocol (SSP)
(em português, protocolo de acesso seguro ao Shell). O protocolo SSH
fornece comunicação segura para conexão entre um computador clien-
te e o computador servidor (geralmente em modo texto) sob uma rede
não segura como a internet (RFC 4419, 2006).
Neste capítulo, você aprenderá os conceitos de funcionamento do
sistema de troca de chaves descrito por Diffie-Hellman (1976), o proces-
so de troca de chaves, as vantagens e desvantagens, além de discutir-
mos a confidencialidade e a falta de autenticação no processo.
1 Conceitos
Embora Ralph C. Merkle tenha publicado o conceito da chave pública
e privada apenas em 1978, Hellman também atribui crédito a Merkle em
relação à descoberta sobre a troca de chaves (STALLINGS, 2014). Não
é incomum encontrar na literatura como algoritmo ou método de troca
de chaves de Diffie-Hellman-Merkle. Sendo assim, trataremos o método
de troca de chaves de forma independente de seus inventores.
O algoritmo de troca de chaves aborda uma solução para a princi-
pal dificuldade da criptografia simétrica, que é a necessidade de obter
um canal seguro para o compartilhamento da chave de criptografia/
63Troca de chaves Diffie-Hellman
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
descriptografia. Quando imaginamos um cenário em que dois usuá-
rios não estão próximos, compartilhar uma chave secreta é uma tarefa
difícil.
O método de troca de chave possibilita estabelecer uma chave se-
creta comum entre emissor e receptor através de um canal inseguro,
como a internet. Mesmo que terceiros capturem as mensagens troca-
das entre o emissor e o receptor, não é possível descobrir a chave secre-
ta, mesmo aplicando criptoanálise.
Em linha gerais, o método de troca de chaves determina como as
chaves de sessão únicas são geradas para criptografar de forma simé-
trica as mensagens entre um emissor e um receptor. O método também
pode ser aplicado na autenticação, utilizando uma espécie de assinatu-
ra gerada por uma chave privada. Veremos em detalhes as assinaturas
digitais no capítulo 6.
IMPORTANTE
A principal finalidade do processo de troca de chaves é permitir que dois
usuários troquem uma chave simétrica, de maneira segura, que será
usada para a criptografia de suas mensagens (STALLINGS, 2014).
2 Processo de troca de chaves
O objetivo da troca de chaves é permitir que os usuários obtenham
uma chave de criptografia simétrica para que possam trocar informa-
ções com segurança, garantindo a confidencialidade. O acordo de tro-
ca de chaves de Diffie-Hellman vai gerar as chaves entre os envolvidos
na comunicação – emissor e destinatário. As chaves geradas serão
necessárias para a transmissão da chave secreta (chave simétrica).
Combinando as chaves geradas para cada envolvido na comunicação,
64 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
as partes podem, através de uma função de cálculo, chegar a um nú-
mero em comum. O valor descoberto pela função, em ambos os lados,
pode ser convertido em uma senha privada que é utilizada para a codifi-
cação da criptografia (RFC 2631, 1999).
O primeiro estágio do processo de troca de chaves é calcular o nú-
mero secreto compartilhado, neste capítulo representado pela letra Z.
Quando os pares de chave pública e privada dos usuários de origem e
destino são utilizados, a função matemática do processo de troca de
chaves resultará no mesmo valor Z (RFC 2631, 1999).
Após a obtenção do valor de Z, ele é convertido em uma chave simé-
trica compartilhada. Quando o usuário de origem da mensagem utiliza
um par de chaves de pública/privada, um valor aleatório e público vai
garantir que a chave simétrica resultante seja diferente para cada pro-
cesso de chave gerado (RFC 2631, 1999).
2.1 Geração da chave Z
De acordo com a RFC 2631 (1999), a norma ANSI-X9.42 (para cripto-
grafia de chave pública) especifica que chave compartilhada Z deve ser
gerada pela função matemática:
Z = g(xb · xa) mod p
Para a geração da chave compartilhada Z, as partes individualmente
realizarão os cálculos:
Z = ybxa mod p
Z = (yaxb) mod p
Em que:
ya é a chave pública do usuário a, calculada pela função ya = (gxa)
mod p;
65Troca de chaves Diffie-Hellman
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
yb é a chave pública do usuário b, calculada pela função yb = (gxb)
mod p;
xa é a chave privada do usuário a;
xb é a chave privada do usuário b;
p é um primo grande;
q é um primo grande;
g = h {(p-1) / q} mod p, onde:
h é qualquer número inteiro com 1 < h < p-1, de modo que h {(p-1) / q}
mod p > 1;
(g tem ordem q mod p; ou seja, g q mod p = 1 se g! = 1);
j é um o número inteiro grande de modo que p = qj + 1;
A força do processo de troca de chaves de Diffie-Hellman está na
dificuldade para computar um módulo de um logaritmo discreto de um
número primo muito grande. Dessa forma, um invasor conhece g e p,
porém, só descobriria a chave secreta se conseguisse descobrir os va-
lores de x e y. Ocorre que, até então, não é conhecido nenhum algoritmo
que consiga computar o módulo do logaritmo discreto de um número
primo muito grande. Para descobrir esses valores, a única forma é testar
todas as possibilidades, tarefa que atualmente é computacionalmente
inviável (STALLINGS, 2014).
PARA SABER MAIS
Para entender mais sobre o problema do logaritmo discreto e teste de
primalidade, recomenda-se a leiturado capítulo 8 do livro Criptografia e
segurança de redes de Willian Stallings (2014).
66 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
2.1.1 Exemplo de Alice e Bob
Para exemplificar o processo de troca de chaves, vamos simular o
processo de troca de chaves entre dois usuários que desejam se comu-
nicar de forma secreta, Alice e Bob. É importante ressaltar que o pro-
cesso de troca de chaves não executa a criptografia dos dados. Seu
objetivo é gerar uma chave em comum para que Alice e Bob consigam
criptografar uma comunicação. Essa chave gerada é conhecida como
chave de sessão.
Alice e Bob devem concordar sobre dois grandes números, p (um
número primo) e g (um número aleatório), que seguem as condições
descritas anteriormente. Esses números são públicos, dessa forma,
qualquer uma das partes, Alice ou Bob, pode escolher p e g e infor-
mar mutuamente em um canal não seguro. No caso de Alice, para ge-
rar um número grande x, ela deverá guardar x como um valor secreto.
Então, Alice terá em seu poder os valores de p e x, que servirão para
definir a chave privada utilizada no processo de troca de chaves de
Diffie-Hellman. Esse processo acontece de forma similar ao algoritmo
RSA, discutido anteriormente.
Alice vai calcular ya = (gxa) mod p. Alice tem, então, um expoente xa
(valor privado escolhido). Alice inicia o protocolo do acordo de chave
enviando a Bob uma mensagem contendo (p, g, y), ya será um valor
transmitido por um canal inseguro, portanto, será um valor público. Bob,
por sua vez, vai calcular yb = (gxb) mod p. Bob tem, então, um expoente
xb (valor privado escolhido), o valor resultante de yb será o valor trans-
mitido pelo canal inseguro para Alice, portanto, será seu valor público.
Bob enviará seu valor que foi calculado para yb à Alice. Note que nem
Alice nem Bob enviaram os valores privados xa e xb, respectivamente.
Alice receberá o valor público de Bob e calculará o valor da chave secre-
ta por Z = (ybxa) mod p. Bob vai calcular o valor da chave secreta por Z
= (yaxb) mod p.
67Troca de chaves Diffie-Hellman
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Acompanhe na figura 1 a troca de chaves entre Alice e Bob.
Figura 1 – Exemplo de troca de chaves entre Alice e Bob
Canal inseguro
1. Alice escolhe:
• p, g públicos
• Valor xa (secreta)
5. Alice calcula z
z = (ybxa) mod p
ALICE
3. Bob escolhe:
• Valor xb (secreto)
6. Bob calcula z
z = yaxb mod p
2. (p, g, ya=(gxa mod p)
4. yb=(gxb mod p)
BOB
Fonte: adaptado de Tanenbaum e Wetheral (2012, p. 522).
Utilizando a sequência descrita anteriormente, vamos calcular um
exemplo com valores menores, para exemplificar o processo de cálcu-
lo, mas, lembre-se, em um processo real, os números utilizados serão
muito grandes. Supondo que Alice inicia a comunicação escolhendo os
valores de g = 7 e p = 23, as etapas de cálculo serão (FOROUZAN, 2008):
1. Alice escolhe xa = 3 e calcula ya = gxa mod p => ya = 73 mod 23 =
21.
2. Bob escolhe xb = 6 e calcula yb = gxb mod p => yb = 76 mod 23 = 4.
3. Alice envia o número 21 (ya) para Bob.
4. Bob envia o número 4 (yb) para Alice.
5. Alice calcula a chave simétrica Z = ybxa mod p => Z = 43 mod 23 = 18.
6. Bob calcula a chave simétrica Z = yaxb mod p => Z = 216 mod 23 = 18.
Perceba que o valor da chave simétrica Z será o mesmo valor para
Alice e para Bob, em que gxa · xb mod p = 718 mod 23 = 18.
68 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
NA PRÁTICA
A troca de chaves está presente em diversos protocolos. Quando tra-
tamos de ambientes seguros, o gerenciamento de chaves utiliza o pro-
tocolo internet key exchange (IKE) (em português, troca de chaves da
internet), que é utilizado para troca de chaves na internet definido pela
RFC 2409 (1998). O IKE é utilizado no IPsec (protocolo de segurança
de IP) para estabelecimento de um túnel seguro (VPN), em uma rede
de internet, implementando autenticação, confidencialidade e gerencia-
mento de chaves (FOROUZAN, 2008).
3 Vantagens e desvantagens
Notadamente, a principal vantagem do processo de troca de chaves
é o uso da chave de sessão para a criptografia. Dessa forma, nenhuma
chave privada dos usuários em um sistema de comunicação é enviada
ou armazenada, contribuindo para confidencialidade na troca de infor-
mações entre usuários ou sistemas.
A complexidade computacional é reduzida quando utilizamos a
criptografia assimétrica para a transmissão das mensagens entre os
usuários, para cifrar e decifrar as mensagens. Note que o processo de
troca de chaves, apesar de caracterizar um processo de criptografia de
chave pública e privada (assimétrico), é utilizado apenas para trocar
a chave simétrica estabelecida através do processo desenvolvido por
Diffie-Hellman (1976).
Assim como os métodos de criptografia assimétricos ou de chave
pública e privada, a troca de chaves de Diffie-Hellman possui complexi-
dade computacional mais elevada do que a criptografia simétrica, sen-
do, portanto, mais lenta e, por isso, não é indicado para criptografar e
descriptografar grandes volumes. Esse problema é endereçado com o
uso do acordo de troca de chaves, devendo ser combinado à criptogra-
fia simétrica. Uma desvantagem no processo de troca de chaves é a
69Troca de chaves Diffie-Hellman
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
necessidade de autenticação da fonte emissora da comunicação, o que,
em termos práticos, requer uma autoridade de certificação para a chave
pública. A falta de autenticação torna o processo de troca de chaves
vulnerável contra ataques de homem de meio.
4 Confidencialidade na troca
A dificuldade na troca de uma chave simétrica deu origem à necessi-
dade da criação da criptografia assimétrica, criptografia de chave pública
e privada. Porém, o processo de criptografia é custoso computacional-
mente, sendo inviável para criptografar grandes volumes de dados. O pro-
cesso de troca de chaves possibilita a criação de chaves de sessão para
criptografar de forma simétrica uma comunicação entre dois usuários.
No processo de estabelecimento da troca de chaves, as chaves pri-
vadas não são compartilhadas. Para uma comunicação entre Alice e
Bob, são necessários dois pares de chaves (um valor público e outro pri-
vado) e, a partir do momento em que Alice envia uma mensagem para
Bob, ela usa a chave pública de Bob. De forma análoga, quando Bob
envia uma mensagem a Alice, Bob usa a chave pública de Alice. Após
o estabelecimento da comunicação, Alice e Bob calculam uma chave
secreta em comum dada pelo módulo do logaritmo discreto de um nú-
mero primo muito grande. A criptografia a partir do estabelecimento da
chave de sessão é feita por uma chave simétrica (FOROUZAN, 2008).
PARA PENSAR
Se as chaves de sessão forem trocadas com frequência, maior será a
segurança de um sistema criptográfico. Dessa forma, um atacante teria
menor tempo para tentar decifrar a chave desessão utilizada. Porém,
sobre o ponto de vista da comunicação e a capacidade de rede, o pro-
cesso será mais complexo computacionalmente. Sob esse aspecto, um
profissional de segurança da informação precisa equilibrar os requisitos
de segurança e a viabilidade de uso dos sistemas (STALLINGS, 2014).
70 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
5 Falta de autenticação
O principal problema associado ao processo de troca de chaves é que
o emissor de uma mensagem precisa confiar na chave pública (números
públicos p e g usados no exemplo da troca de chaves Diffie Hellman) de
um certo receptor. Utilizando o exemplo da comunicação entre Alice e
Bob, Alice precisa ter completa confiança de que a chave pública de Bob,
utilizada no processo para troca de chave do processo, é legitima.
O processo de troca de chaves é suscetível a ataques
man-in-the-middle. O processo de troca de chaves de Diffie-Hellman pos-
sui grande complexidade para descoberta da chave privada – números
secretos xa e xb usados no exemplo da troca de chaves Diffie-Hellman,
apenas conhecendo p e g (as chaves públicas), levando muito tempo,
talvez anos, para determinar a chave privada de um dos participantes
da comunicação. Outro ponto importante a se destacar é que Alice e
Bob podem modificar a chave na próxima comunicação. Contudo, como
ponto fraco do processo de troca de chaves, pode ocorrer um ataque em
alguns momentos (FOROUZAN, 2008):
• Depois da escolha das chaves públicas p e g, trocadas de forma
aberta entre Bob e Alice, Alice escolhe a chave privada (número
secreto) xa, calcula ya = gxa mod p e envia ya para Bob.
• Evelyn, o invasor, intercepta ya. Ela escolhe a chave privada (nú-
mero secreto) xc, calcula yc = gxc mod p e envia yc para Alice
como se fosse Bob.
• Bob escolhe a chave privada (número secreto) xb, calcula yb = gxb
mod p e envia yb para Alice; yb é interceptada por Evelyn que ja-
mais a envia para Alice.
• Alice calcula Z1 = ycxa mod p e Evelyn calcula Z1 = yaxc mod p,
que se torna uma chave compartilhada entre Alice e Evelyn. Alice,
71Troca de chaves Diffie-Hellman
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
entretanto, acredita que a chave recebida se trata de uma chave
compartilhada com Bob.
• Evelyn calcula Z2 = ybxc mod p e Bob calcula Z2 = yxb mod p, que
se torna uma chave compartilhada entre Evelyn e Bob. Bob, no en-
tanto, acredita que a chave recebida se trata de uma chave com-
partilhada com Alice.
Perceba que a atacante Evelyn está intermediando a comunicação
entre Alice e Bob. Esse cenário configura um ataque de homem no meio,
pois a mensagem será interceptada por Evelyn sempre que uma comu-
nicação ocorrer entre Alice e Bob. O ataque de homem no meio corre
justamente porque as chaves públicas de Alice e Bob não foram auten-
ticadas, sendo necessária a combinação de um processo de autentica-
ção das chaves públicas para impedir ataques em que se visa passar
pela identidade de um usuário (FOROUZAN, 2008).
Considerações finais
Neste capítulo abordamos o processo de troca de chaves de
Diffie-Hellman. Analisamos as principais vantagens e desvantagens do
processo de troca de chaves e a sua complementariedade para distri-
buição de chaves de sessão (simétrica) para criptografia de mensagens.
Assim, o processo de troca de chaves garante a segurança na distribui-
ção de chaves simétricas, podendo ser diferentes a cada comunicação,
assim como determinado pelo ANSI-X9.42 e pela RFC 2631.
Uma vez que a troca de chaves pode ser efetuada, a criptografia si-
métrica pode ser utilizada para criptografar grandes volumes de dados.
O processo de troca de chaves pode ser utilizado para a distribuição
de chaves públicas em conjunto com autoridades certificadoras, com
o intuito de garantir não somente a confidencialidade, mas também a
autenticidade das chaves públicas.
72 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Referências
DIFFIE, W. Whitfield; HELLMAN, Martin E. New directions in cryptography. IEEE
Transactions on Information Theory, v. 22, n. 6, p. 644-654, nov. 1976.
FOROUZAN, Behrouz A. Comunicação de dados e redes de computadores. 4.
ed. Porto Alegre: AMGH, 2008.
RFC 2409. The internet key exchange (IKE). Ietf.org, 1998. Disponível em:
https://tools.ietf.org/pdf/rfc2409.pdf. Acesso em: 4 mar. 2020.
RFC 2631. Diffie-Hellman key agreement method. Ietf.org, 1999. Disponível em:
https://tools.ietf.org/pdf/rfc2631.pdf. Acesso em: 4 mar. 2020.
RFC 4419. Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport
Layer Protocol. Ietf.org, 2006. Disponível em: https://tools.ietf.org/pdf/rfc4419.
pdf. Acesso em: 2 mar. 2020.
STALLINGS, William. Criptografia e segurança de redes: princípios e práticas.
7. ed. São Paulo: Pearson, 2014.
TANENBAUM, Andrew S.; WETHERAL, David. Redes de computadores. 5. ed.
São Paulo: Pearson, 2012.
73
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Capítulo 5
Hash
Um dos objetivos de uma função de resumo hash é garantir a inte-
gridade dos dados, assegurando que valores não sejam adulterados,
ou seja, que qualquer alteração, mesmo que de um bit, resulte em um
valor totalmente diferente de hash. As funções hash são utilizadas no
campo da criptografia, no entanto, apesar de não funcionarem como
os algoritmos de criptografia, por seus cálculos matemáticos serem de
mão única e não poderem ser desfeitos, são conhecidas como funções
hash criptográficas.
Um algoritmo que implementa uma função hash utiliza um modelo
matemático que não possa ser desfeito e, mesmo que um ataque seja
impetrado, não seja possível descobrir o valor em texto original (antes
de calculado o seu valor correspondente em hash). Por esse motivo, as
funções hash são conhecidas como algoritmos de “mão única”, uma
vez que o cálculo reverso não pode ser desfeito. Diferente da criptogra-
fia, as funções hash não possuem chaves para executar o seu processo,
74 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
apenas aplica-se a função a um texto original e a saída do processo pro-
duzirá um valor hash com tamanho determinado, independentemente
do tamanho do texto original de entrada. A propriedade de tamanho fixo
para a saída de uma função de resumo hash, implica alguns problemas
de colisão, ou seja, dois valores de texto original, podem resultar em
um mesmo valor de hash. Por isso, as funções hash são utilizadas prin-
cipalmente para determinar se as informações foram alteradas ou se
permanecem as mesmas.
As hashes são utilizadas em diversas aplicações, como autentica-ção de mensagens, assinaturas digitais, sistemas de autenticação de
senhas para usuários, sistemas de detecção de intrusão (intrusion de-
tection system – IDS e intrusion prevention system – IPS), detecção de
vírus e na tecnologia de blockchain.
Neste capítulo, abordaremos os conceitos de funcionamento das
funções de resumo hash, como uma hash é calculada, as considera-
ções sobre seu uso, como a integridade é garantida, seu uso para au-
tenticação, o problema de colisão e quebras e, ao final, os principais
algoritmos serão apresentados.
1 Conceitos
Em diversos aspectos do campo da criptografia, é possível notar a
necessidade de utilizar uma função matemática para embaralhar os
dados de forma que seja inviável computacionalmente, tentar reverter
o processo sem uma chave, executando assim uma criptografia forte.
Porém, o objetivo de uma função de resumo hash é ser complexa ao
ponto de não ser possível desfazer o processo executado e, refletin-
do sobre os requisitos que motivam esse desejo, entendemos que as
hashes executam um papel fundamental para viabilização da autentica-
ção e da integridade, através das assinaturas digitais e dos sistemas de
autenticação de usuários (TANENBAUM; WETHERAL, 2012).
75Hash
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Uma função de resumo criptográfico hash produz uma espécie de
valor cifrado, conhecido como valor hash, porém, independentemente
do tamanho do texto original de entrada, será produzido um valor hash
de tamanho fixo. Uma função hash produz um valor de saída que pare-
ce ser aleatório, mas o valor de saída respeita uma função matemática
preestabelecida. O objetivo da integridade é alcançado, pois, quando
qualquer valor é alterado, a função hash produz um valor totalmente
diferente (STALLINGS, 2014).
A figura 1 demonstra o funcionamento típico de uma função hash
que, na maioria dos casos, recebe um valor inteiro, por exemplo, 512 ou
1.024 bits, como entrada L. Se o valor de entrada não é suficiente para
preencher o campo de entrada, ele é complementado por um valor P em
bits. O valor P de complemento é uma forma de aumentar a segurança
do valor hash gerado, para que um invasor não possa introduzir uma
mensagem adicional com o mesmo valor de hash.
Figura 1 – Fluxo de uma função hash
Função hash
Tamanho fixo
Tamanho variável - L bits
Mensagem (P, L)
Valor hash h
(P, L = texto L e preenchimento de tamanho P)
Fonte: adaptado de Stallings (2014, p. 247).
O processo de criptografia garante a confidencialidade para uma
mensagem, mas não a sua integridade. Por exemplo, se um usuário
76 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
redigisse um testamento para determinar sua partilha de bens após a
sua morte, esse testamento não precisaria ser criptografado, porém,
como garantir que o testamento não foi alterado após a morte do usuá
rio? Podemos gerar um valor hash do testamento e armazenálo, para
posterior comparação.
O testamento pode ser compartilhado, porém o valor hash gerado
deve ser sigiloso, justamente pela necessidade de efetuar a compa-
ração posterior. Isso evitará que um novo hash seja gerado para um
documento falso (não íntegro). Caso o resultado obtido pela compara-
ção seja diferente do valor hash sigiloso que foi emitido pelo usuário,
prova-se que o testamento foi alterado. Esse valor hash armazenado
também é conhecido como digest (resumo) da mensagem, que é um
valor compacto do texto original, criado pela função de resumo hash
(FOROUZAN, 2008).
Em uma mensagem, o digest deve ser criado pelo usuário emissor,
que enviará com a mensagem para o usuário receptor. O digest servirá
para validar a integridade da mensagem enviada. Se o valor for o mes-
mo, o receptor tem a confirmação de que a mensagem original não foi
adulterada. Para que isso funcione, o digest precisa ser enviado de for-
ma segura para o destinatário, o usuário receptor (FOROUZAN, 2008).
São critérios importantes utilizados pelas funções de resumo hash
(FOROUZAN, 2008; STALLINGS, 2014):
• Unidirecionalidade: a função hash deve ser unidirecional, ou seja,
deve ser difícil ou impossível de criar a mensagem a partir do
próprio digest. De forma análoga a um documento ou impressão
digital, podemos comparar uma digital e localizála, se ela existir
em um banco de dados com diversos documentos, porém, se o
documento não existir, não se pode criar um documento a partir
de uma digital. Para garantir a unidirecionalidade, também deve
ser inviável inverter a função parcialmente, ou seja, recuperar al-
guns bits da entrada.
77Hash
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
• Resistência a colisões fracas: essa propriedade tem objetivo de
garantir que uma mensagem não seja falsificada facilmente. Se
um usuário criar uma mensagem e um digest e enviar a outro
usuário, não garante que um invasor conseguirá, de forma fácil,
criar uma outra mensagem que faça um hash exato ao mesmo
digest da mensagem enviada. Em outras palavras, não deve ser
possível que um invasor consiga produzir uma mensagem dife-
rente da mensagem original que produza o mesmo valor digest.
Quando duas mensagens produzem o mesmo digest, caracteri-
za-se uma colisão, portanto, uma boa função hash deve possuir
mecanismos para evitar as colisões. Uma colisão fraca significa
que com o algoritmo que implementa a função hash é muito pro-
vável que existam mensagens diferentes com um mesmo digest.
Nesse ponto, o requisito para uma boa função hash é ser resisten-
te a colisões fracas.
• Resistência a colisões robustas: esta é a propriedade que visa
garantir que não será possível encontrar duas mensagens que
produzam um hash para o mesmo digest. Isso garante que um
usuário emissor de uma mensagem, não produza duas mensa-
gens que façam um mesmo disgest. A função pode, por exem-
plo, recusar o envio de uma mensagem informando que ela já foi
enviada. Esse tipo de colisão é considerado robusto, pois a pro-
babilidade de acontecer é maior, pois o usuário emissor poderia
criar duas mensagens, enviar uma ao usuário destino, e salvar
uma segunda mensagem, diferente da primeira. Posteriormente
pode alegar que a mensagem enviada foi a segunda (guardada) e
não a primeira, uma vez que os seus digests seriam os mesmos.
Relembrando o caso do testamento, isso poderia acarretar textos
diferentes validados pelo mesmo digest.
• Avalanche completa: uma avalanche é um processo de desliza-
mento de terra ou neve que geralmente se inicia com um pequeno
deslizamento que gera um deslizamento muito maior. Partindo
78 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
dessa analogia, essa propriedade visa garantir que qualquer al-
teração de um dos bits de entrada provocará a alteração de todo
valor hash gerado para o texto de entrada do processo.
• Imprevisibilidade: essa propriedade define que deve ser inviável
prever qualquer bit de saída de uma função hash,de forma que
seu resultado pareça totalmente aleatório.
2 Cálculos de hash
Conforme apresentado anteriormente, na saída de uma função hash
(valor hash, ou digest de uma mensagem) é obtido um valor com tama-
nho predefinido, pela função. Isso ocorre porque uma função hash re-
cebe os dados em um comprimento fixo. Esses valores são chamados
de blocos de dados. Os tamanhos dos blocos de dados são diferentes
em cada algoritmo, mas quando utilizamos o mesmo algoritmo os ta-
manhos de blocos serão mantidos. Essa propriedade garante que outro
usuário execute o mesmo algoritmo e conseguirá validar o valor hash.
O algoritmo secure hash algorithm 1 (SHA1), por exemplo, utiliza
blocos de 512 bits. Caso um usuário necessite criar um valor hash
para 1.024, serão utilizados ao menos 2 blocos, e assim por diante.
Entretanto, nem sempre as mensagens têm o mesmo tamanho, para
isso é utilizada uma técnica chamada “padding” (em português, preen-
chimento). Para o valor P demonstrado na figura 1, dessa forma, sem-
pre é obtido um valor de saída com tamanho padrão.
A figura 2 demonstra o funcionamento do efeito avalanche em fun-
ções hash que, nesse caso, serão executadas quantas vezes forem ne-
cessárias para a criação do valor hash final. Nela, temos o funciona-
mento da divisão de uma mensagem em blocos para o processamento
de uma função hash. Seis blocos ao todo são processados, um de cada
vez. A saída do bloco 1 é alimentada como entrada juntamente com
o segundo bloco de dados. A saída do segundo é alimentada com o
79Hash
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
terceiro bloco, e assim por diante. Com isso, a saída final, após o proces-
samento do bloco 6, será resultado da combinação de todos os blocos.
Caso qualquer bit da mensagem seja alterado, em qualquer que seja o
local da mensagem, todo o valor do bloco será alterado, tornando, as-
sim, a saída final o valor combinado de todos os blocos. Se você alterar
um bit em qualquer lugar da mensagem, todo o valor do hash será alte-
rado, propriedade conhecida como efeito avalanche (DECODED..., 2020).
Figura 2 – Efeito avalanche em funções hash
Mensagem
Padding (preenchimento)
Bloco 4 Bloco 5 Bloco 6Bloco 3Bloco 2
Hash final
Bloco 1
Valor inicial 1
Valor inicial 2
Função
hash
Função
hash
Função
hash
Função
hash
Função
hash
Função
hash
Fonte: adaptado de Decoded... (2020).
3 Considerações sobre o uso de hashes
As funções de resumo hash geralmente são utilizadas para gerar
um manipulation detection code (MDC) (em português, código para de-
tecção de manipulação) ou message authentication code (MAC) (em
português, código de autenticação de mensagem), que é utilizado em
sistemas de assinatura digital (SENDIN, 1999).
O código MDC é transmitido juntamente com a mensagem, dessa
forma, o hash da mensagem é recalculado no receptor, e a mensagem
só é aceita se o valor recebido e o valor recalculado forem iguais. O MAC
de uma mensagem, de forma resumida, é um valor hash, função de uma
mensagem em que uma chave secreta é aplicada (chave simétrica).
80 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Essa chave é conhecida apenas pelas duas partes da comunicação e,
partindo desse princípio, a mensagem recebida com MAC, depois de
validado, é uma garantia da origem da mensagem e de que ela não foi
alterada (SENDIN, 1999).
3.1 A integridade garantida
A garantia da integridade de dados é a garantia de que uma mensa-
gem não foi alterada, seja essa alteração acidental ou proposital (moti-
vada por um invasor). Esse processo visa garantir que, desde a criação,
a transmissão e até o armazenamento, uma mensagem não foi alterada.
IMPORTANTE
Considera-se uma alteração de mensagem a inserção/deleção de bits,
reordenação/inversão de bits ou quaisquer combinações (SENDIN,
1999).
A validação da integridade pode ser executada por meio da validação
do formato esperado ou pela verificação de redundâncias. Em alguns ti-
pos de dados, é possível verificar um formato esperado, assim, em uma
alteração acidental, alguma frase ou palavra tende a ficar fora de con-
texto, perdendo seu sentido. A verificação de redundância consiste na
análise de informações após uma transmissão. Em redes, um exemplo
disso é a inserção de bits de paridade. As técnicas de garantia da integri-
dade em criptografia utilizam a criação e a verificação de redundâncias.
Assim como mencionado anteriormente, as funções de resumo hash
são utilizadas como os métodos MDC (SENDIN, 1999).
O processo para execução do MDC, de acordo com Sendin (1999), é
o seguinte:
81Hash
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
1. Criação do MDC, em que MDC (x) = h(x).
2. Transmissão ou armazenamento do MDC (x), através de canal se-
guro ou utilizando a criptografia para transmissão.
3. Verificação do valor x’, valor recebido ou armazenado, e do MDC
(x), então calculase: Y=h(x’). A mensagem é íntegra somente se
x’ foi igual a x.
Empresas de desenvolvimento de software podem calcular valores
de MDC, para seus softwares, e publicar esses valores em suas páginas
oficiais. Dessa forma, podemos calcular o valor MDC para um software
baixado na internet, e assim, caso aquele software tenha sido modifica-
do, com a inserção de programas maliciosos, por exemplo, o valor MDC
será diferente, ou seja, x’≠ x (SENDIN, 1999).
3.2 Uso para autenticação
A autenticação é feita através dos métodos MAC, de código de au-
tenticação de mensagem. O funcionamento de um código MAC está
atrelado ao uso de uma chave secreta compartilhada entre os envolvi-
dos em uma comunicação. Dessa forma, um usuário emissor assina
uma mensagem com uma chave privada e o usuário destinatário da
comunicação pode autenticar a mensagem enviada através de sua
chave pública. Cabe salientar que uma mensagem autenticada é impli-
citamente íntegra, ou seja, uma vez validada a autenticidade da men-
sagem, automaticamente, a validação de sua integridade foi executa-
da. Caso a mensagem seja alterada, ela não poderá ser autenticada
(SENDIN, 1999).
Utilizando as funções de resumo hash para essa finalidade, ob-
tém-se a autenticação aplicada ao valor hash, ou seja, autentica-se o
digest da mensagem enviada. Do ponto de vista das funções matemá-
ticas, dois parâmetros são necessários: os dados e uma chave secreta
82 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
representados por h(k,x) ou hk(x), para a geração do digest. Logo, o di-
gest gerado (valor hash) é o chamado de MAC.
A criação e a validação se dão pelas etapas de (SENDIN, 1999):
1. Geração do MAC, na qual se aplicam a função hash e a chave
secreta.
2. Transmissão ou armazenamento da mensagem e do MAC.
3. A verificação da mensagem recebida/armazenada, aplicandose
o MAC e a chave secreta.
O valor do MAC (valor hash/digest) não precisa ser protegido, isto é,
cifrado ou transmitido em canal seguro. A autenticação da mensagemserá executada pela chave simétrica, que os dois usuários precisam
conhecer. Vale lembrar que os usuários podem utilizar um modelo de
criptografia assimétrico para transmitir essa chave simétrica. A com-
binação do MAC com uma chave secreta também é conhecida como
hashbased message authentication code (HMAC) (traduzido do inglês,
código de autenticação de mensagens baseado em hash).
Outro ponto importante a se ressaltar é que o MAC não garante o
não repúdio, ou seja, a garantia da prevenção da negação de acordos
ou atos transações digitais, pois qualquer uma das pontas da comuni-
cação que possua a chave secreta compartilhada pode gerar uma men-
sagem (SENDIN, 1999).
3.3 Colisões
Uma colisão hash é caracterizada quando valores diferentes de
mensagem (m) podem gerar um mesmo valor hash, em que, h(m) =
h(m’). Isso pode ocorrer, pois uma função hash pode resumir um texto
muito grande em um texto pequeno (SENDIN, 1999). Com isso, o tra-
tamento dessas possíveis colisões requer uma atenção especial para
83Hash
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
um projetista. Esse requisito é fundamental para a criação de boas fun-
ções de resumo hash, como explanado anteriormente. Segundo Sendin
(1999), é importante que a função hash tenha uma probabilidade baixa
para produção de colisões.
Os dois principais métodos para o tratamento das colisões, as técni-
cas de encadeamento e hash múltiplo, são executados no processo de
geração de um valor hash. Esses dois métodos tratam, através do uso
de estrutura de dados, de como o valor hash será gerado.
No encadeamento, a função hash armazena referências para estru-
turas dinâmicas de listas. Dessa forma, dois valores que teriam o mes-
mo endereço na tabela de geração do hash e, portanto, colidiriam, são
armazenados em uma lista auxiliar. Essa lista cria uma espécie de ca-
deia, iniciando com o primeiro valor preenchido na posição da tabela de
geração de hash. Os demais valores que colidiriam são anexados a essa
cadeia como se fossem elos de corrente. Cada novo valor é um novo
elo adicionado. Com isso, cada posição da tabela de geração de hash
possuirá uma lista ligada de valores, em que os valores que iriam colidir
são armazenados um após o outro na mesma posição. O principal im-
passe nesse método é que, como cada posição da tabela possui uma
lista atrelada com os valores que colidiram, o tempo para gerar o valor
hash será maior, e também será demandado maior espaço de armaze-
namento para criação das listas auxiliares para cada posição da tabela
de geração de hash (SOUZA, 2012).
No tratamento utilizando hash múltiplo, os dois valores que colidi-
ram recebem novas posições na tabela de geração do hash, calculados
a partir de uma função matemática, até que seja encontrada uma posi-
ção livre na tabela. O principal impasse nesse método é que ele é sus-
cetível a sobrecarga, pois durante o processo de geração do valor hash
pode não existir um novo espaço livre na tabela de geração (SENDIN,
1999; HASH TABLE..., [s. d.]).
84 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
PARA SABER MAIS
Para saber mais sobre o funcionamento das estruturas de dados cria-
das como o tratamento de colisões em funções hash, acesse o projeto
Visualgo.net. No site é possível visualizar de maneira interativa como os
valores são armazenados nas estruturas de dados utilizadas nas fun-
ções hash (HASH TABLE..., [s. d.]).
3.4 Quebra
As quebras, ou seja, ataques bem-sucedidos no campo das funções
hash, podem se basear nas colisões. Esse tipo de ataque consiste na
tentativa de um invasor em criar duas mensagens que tenham o mes-
mo valor hash. Por exemplo, criam-se duas mensagens: uma informa
que será pago determinado valor para a execução de alguma atividade
e outra informa que o valor deverá ser pago por executar a atividade. A
primeira mensagem é apresentada à vítima, pedindo que faça determi-
nada ação. Posteriormente, a primeira mensagem, é substituída pela
segunda mensagem, que é validada como inalterada pelo mesmo valor
hash (disgest da mensagem). Dessa forma, o invasor poderia exigir a
compensação financeira por vias legais (RFC 4270, 2005).
Outro ataque conhecido, que também é baseado em colisão, é o ata-
que aos certificados digitais do tipo PKIX, em que o objetivo do atacante
é criar duas chaves públicas diferentes que levem para um mesmo cer-
tificado. Mais à frente compreenderemos melhor o funcionamento dos
certificados digitais.
O ataque de dicionário também é uma técnica comum na tentativa
de adivinhação dos valores originais que deram origem a valores hashes
e é utilizado principalmente na tentativa de revelação de senhas arma-
zenadas em bancos de dados por funções hash. Ele consiste na com-
paração de um grande volume de valores hash, criados para senhas
85Hash
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
comuns, com a finalidade de encontrar, dentro de uma base de dados,
as senhas, com base em palavras conhecidas do dicionário, onde se
obtêm os correspondentes valores em hash (ROUBO..., 2019).
Existem também ataques que utilizam uma base de dados chamada
de “tabela arco-íris”, em que um grande repositório de valores hashes
é utilizado para atacar o valor hash de uma senha. A tabela arco-íris é
uma biblioteca de senhas em texto sem formatação, e os valores hash
correspondem a toda e qualquer senha possível (GILES, 2020). Com
isso, um invasor pode obter uma senha, caso tenha acesso a valor hash
cadastrado em um banco de dados, sem ter que quebrar a função hash.
Para se proteger desse tipo de ataque, um administrador de sistemas
deve garantir que a tabela com as senhas hash das senhas dos usuá-
rios nunca seja roubada. Além disso, deve implementar mecanismos de
bloqueio da conta caso a senha seja repetidamente incorreta durante o
processo de logon em um sistema.
O ataque de força bruta também é uma forma de tentar obter a que-
bra de um valor hash. A força bruta é utilizada através do poder compu-
tacional, na tentativa de quebrar alguma propriedade da função. O su-
cesso de um ataque dessa natureza depende do tamanho do problema
que deverá ser calculado. Logo, quanto maior a quantidade de bits que
uma função hash implementar, mais complexo computacionalmente
será executar o ataque. O tempo para deduzir o valor do texto original, a
partir de um valor hash também será maior com o aumento da comple-
xidade, o que tende a inviabilizar o ataque (SENDIN, 1999).
IMPORTANTE
Além de seguir as boas práticas e utilizar senhas fortes, os sistemas
de senha que adotam as funções hash devem aplicar o SALT, que nada
mais é do que a adição de bits aleatórios de dados, a função hash. O
SALT é enviado juntamente com o texto sem formatação da senha do
usuário, para gerar o valor hash de uma senha que será armazenada
em um banco de dados. Isso garante que cada valor hash gerado seja
86 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
raS
en
ac
S
ão
P
au
lo
.
exclusivo, inviabilizando o ataque por tabela arco-íris e outros ataques
de dicionário (RFC 8146, 2017; GILES, 2020).
4 Principais algoritmos de hash
Os algoritmos mais comuns para execução das funções hash cripto-
gráficas são os algoritmos das famílias message digest (MD) e secure
hash algorithm (SHA), esta mais importante e mais usada, de acordo
com Stallings (2014). As funções mais conhecidas dessas famílias são
apresentadas no quadro 1.
Quadro 1 – Principais funções das famílias MD e SHA
FUNÇÃO DOCUMENTAÇÃO
MD2 – Algoritmo de resumo da mensagem 2 RFC 1319
MD4 – Algoritmo de resumo da mensagem 4 RFC 1320
MD5 – Algoritmo de resumo da mensagem 5 RFC 1321
SHA1 – Algoritmo seguro de hash 1 RFC 3174
SHA224 – Algoritmo seguro de hash 2 (224 bits) RFC 3874
SHA256 – Algoritmo seguro de hash 2 (256 bits) RFC 6234
SHA384 – Algoritmo seguro de hash (384 bits) RFC 6234
SHA512 – Algoritmo seguro de hash 2 (512 bits) RFC 6234
Fonte: adaptado de Hashing... ([s. d.]).
Conforme o incremento da capacidade computacional, os ataques
às funções hash foram aumentando, de forma que os algoritmos MD
não são mais considerados seguros. Atualmente, os algoritmos SHA
87Hash
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
são consideramos mais seguros que os MD. Mais especificamente,
os algoritmos SHA256 até o SHA512 são considerados seguros e
recomendados para uso. A última atualização do National Institute of
Standards and Technology (Nist), em 2015, aprovou o SHA3 como um
novo padrão para os algoritmos para funções hash de criptografia, es-
tendendo a família de funções hash SHA (DWORKIN, 2015). Cabe infor-
mar que as funções hash de criptografia SHA3 já eram utilizadas ante-
riormente nas recomendações do Nist, como a RFC 6931, publicada em
abril de 2013 (RFC 6931, 2013).
Um estudo de Gupta e Yadav (2015) analisou a performance das fun-
ções hash chegando à conclusão de que o algoritmo SHA512 é mais
seguro que o MD2, o MD4, o MD5, o SHA160 e o SHA256. Contudo, o
SHA512 introduz um tradeoff (relação de perda e ganho) entre desem-
penho e segurança do algoritmo hash. Por meio da avaliação, verificou-
-se que o tempo para validar valor hash é muito alto quando comparado
com os demais algoritmos. O estudo apresenta uma combinação dos
algoritmos MD e o SHA512 como um possível método de otimização
em relação à velocidade e à segurança (GUPTA; YADAV, 2015).
PARA PENSAR
Apesar da constante evolução dos algoritmos que implementam as fun-
ções hash, além dos dispositivos de proteção como a adição do SALT
em bancos de dados de senhas de usuários, uma função hash não é
inquebrável. Porém, os dispositivos implementados têm a função de
atrasar o processo de quebra de uma função. Esse atraso adicionará
dificuldades ao invasor na tentativa de quebrar o algoritmo utilizado por
meio dos ataques conhecidos.
88 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Considerações finais
Neste capítulo, estudamos as funções de resumo hash, entendemos
como elas funcionam, seus requisitos, a questão da colisão e os méto-
dos que comumente são utilizados para tentar executar a sua quebra.
As funções hash são utilizadas em diversos cenários da computação,
aplicadas principalmente em conjunto com algoritmos de criptografia.
Em geral, as funções hash são utilizadas principalmente para verifica-
ção da integridade e da autenticação de usuários.
A propriedade de unidirecionalidade é benéfica à criptografia na ve-
rificação da integridade dos dados. O trabalho de verificação da integri-
dade é custoso, do ponto de vista computacional, para os algoritmos
de criptografia, principalmente quando as mensagens são grandes. A
propriedade de resumo auxilia no tempo de validação de um texto, em
que o valor de hash (digest) tem um tamanho fixo, independentemente
do tamanho do texto original de entrada. Com isso, é mais fácil validar
um valor hash de uma mensagem do que validar a integridade de uma
mensagem inteira. Notadamente, as funções hash também contribuem
para viabilizar o uso das assinaturas digitais, que serão vistas à frente.
Referências
DECODED: examples of how hashing algorithms work. Cheap SSL Security,
2020. Disponível em: https://cheapsslsecurity.com/blog/decodedexamples
ofhowhashingalgorithmswork/. Acesso em: 26 mar. 2020.
DWORKIN, Morris J. SHA-3 Standard: permutationbhsed Hash and extenda-
bleoutput functions. 2015. Disponível em: https://csrc.nist.gov/publications/
detail/fips/202/final. Acesso em: 30 mar. 2020.
FOROUZAN, Behrouz A. Comunicação de dados e redes de computadores.
São Paulo: McGrawHill, 2008
GILES. Rainbow table password attack: o que é e como você se protege
dele. Cyclonis, 24 mar. 2020. Disponível em: https://www.cyclonis.com/pt/
89Hash
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
rainbowtablepasswordattackoqueeecomovoceseprotegedele/. Acesso
em: 25 mar. 2020.
GUPTA, Smriti; YADAV, Sandeep Kumar. Performance analysis of cryptographic
hash functions. International Journal of Science and Research (IJSR), v. 4, p.
23197064, 2015.
HASH TABLE (open addressing: linear probing, quadratic probing, double hashing
and closed addressing: separate chaining). Visualgo.net, [s. d.]. Disponível em:
https://visualgo.net/pt/hashtable?slide=1. Acesso em: 26 mar. 2020.
HASHING functions. Octave.org, [s. d.]. Disponível em: https://octave.org/doc/
v4.2.1/HashingFunctions.html. Acesso em: 26 mar. 2020.
RFC 4270. Attacks on cryptographic hashes in internet protocols. Ietf.org,
nov., 2005. Disponível em: https://tools.ietf.org/html/rfc4270. Acesso em:
30 mar. 2020.
RFC 6931. Additional XML security URLs. Ietf.org., abr., 2013. Disponível em:
https://tools.ietf.org/rfc/rfc6931.txt. Acesso em: 27 mar. 2020.
RFC 8146. Adding support for salted password databases to EAPpwd. Ietf.
org., abr., 2017. Disponível em: https://tools.ietf.org/html/rfc8146. Acesso em:
30 mar. 2020.
ROUBO de senhas: conheça os métodos usados por hackers. BluePex Control,
Protect e Innovate, 2019. Disponível em: https://bluepex.com.br/roubode
senhas/. Acesso em: 30 mar. 2020.
SENDIN, Ivan da Silva. Funções de hashing criptográficas. Dissertação
(Mestrado em Ciência da Computação) – Instituto de Computação, Universidade
Estadual de Campinas, Campinas, 1999. Disponível em: http://repositorio.
unicamp.br/bitstream/REPOSIP/275900/1/Sendin_IvandaSilva_M.pdf. Acesso
em: 30 mar. 2020.
SOUZA, Jairo Francisco de. Hashing: estrutura de dados II. 2012. Disponível
em: http://www.ufjf.br/jairo_souza/files/2012/11/4HashingTratamentoCo-
lis%C3%A3o.pdf. Acesso em: 10 abr. 2020.
STALLINGS, William. Criptografia e segurança de redes: princípios e práticas.
7. ed. São Paulo: Pearson, 2014
90 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
TANENBAUM, Andrew S.; WETHERAL, David. Redes de computadores. 5. ed.
São Paulo: Pearson,2012.
TANENBAUM, Andrew S. Sistemas operacionais modernos. 4. ed. São Paulo:
Pearson, 2015.
91
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Capítulo 6
Assinaturas digitais
A autenticidade de documentos é um tema muito importante para
situações em que exista a necessidade de confirmação de autoria,
principalmente para fins legais. Em um contrato, duas partes lavram e
assinam um documento, ou seja, redigem e assinam um documento,
dando fé de que este é verdadeiro e que expressa a vontade de ambas
as partes em um determinado acordo. Entretanto, não basta que qual-
quer pessoa assine um documento. Para que os documentos possuam
validade legal, é necessário que o signatário (a pessoa que assina) seja
autorizado a representar a empresa ou uma das partes, ou que seja o
próprio dono do bem ou serviço que é objeto do acordo (TANENBAUM;
WETHERAL, 2012).
92 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Em sistemas computacionais, as mensagens ou documentos tam-
bém podem ser assinados de forma digital, e assim como aqueles que
são assinados fisicamente, têm validade legal, se puderem ser auten-
ticados por uma autoridade de certificação. Segundo Tanenbaum e
Wetheral (2012), diferente dos documentos físicos que são assinados
em papel, nos sistemas computacionais é necessário encontrar um
método que permita que um usuário possa assinar um documento de
modo que, posteriormente, não possa ser forjada sua assinatura ou que
um documento assinado seja modificado.
Essa verificação posterior é possível através dos sistemas de assi-
natura digital. Observe que não podemos confundir um sistema de as-
sinatura digital com uma assinatura digitalizada, essa última se trata
apenas do ato de copiar uma assinatura em papel para uma imagem ou
quando um usuário assina à mão um documento eletrônico escrevendo
a sua assinatura. Os sistemas de assinatura digital são mais complexos
e utilizam a criptografia combinada às funções de resumo hash para
validarem a autenticidade e a integridade de um documento firmado por
uma assinatura digital (TANENBAUM; WETHERAL, 2012).
Um sistema que se propõe a substituir assinaturas escritas à mão é
muito complexo. Em geral, para que uma mensagem possa ser “assina-
da”, é necessário que (TANENBAUM; WETHERAL, 2012):
1. O receptor consiga validar a identidade do informada pelo usuário
que transmite a mensagem.
2. O transmissor, após o recebimento da mensagem, não possa re-
pudiar o conteúdo da mensagem, ou seja, alegar que não enviou
aquele conteúdo.
3. O receptor não tenha a possibilidade de inventar ele mesmo a
mensagem ou alterar o seu conteúdo.
Neste capítulo, estudaremos o funcionamento das assinaturas di-
gitais, como se dá o processo de integridade e autenticação, suas
93Assinaturas digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
vantagens e desvantagens. Além disso, vamos entender como o proces-
so de assinatura e verificação é apoiado pela criptografia assimétrica.
1 Conceitos
Assinar um documento físico é algo comum, por isso estamos fa-
miliarizados ao conceito. Logo, só assinamos um documento para de-
monstrar que ele é de nossa autoria ou que foi aprovado por quem o
assina. A assinatura comprova, ao receptor de uma mensagem, que foi
o emissor que de fato a escreveu. Quando um usuário de uma conta
bancária assina uma folha de cheque, como no exemplo do cheque de-
monstrado na figura 1, e o oferece como pagamento por algum bem ou
serviço, a pessoa que o receber descontará o cheque em uma agência
bancária. O banco, por sua vez, vai verificar se a assinatura contida no
cheque confere com a assinatura cadastrada de forma digital em seu
sistema. Se a assinatura for confirmada, ou seja, a assinatura do che-
que for igual à cadastrada no sistema, então, o valor poderá ser pago ao
detentor do cheque. De forma análoga ao exemplo do cheque bancário,
uma assinatura, verificada com sucesso em um documento, é prova de
que o documento é autêntico (FOROUZAN, 2008).
Figura 1 – Exemplo de folha de cheque assinada
BANCO XYZ
XXXXXX
CPF: 000.000.000-01
CLIENTE DESDE
05/2020
São Paulo 10 Junho 2020
E CENTAVOS ACIMA
OU À SUA ORIGEM
PAGO POR ESSE
CHEQUE A QUANTIA DE:
A
Cem Reais
COMP. BANCO AGÊNCIA N. DA CONTA N. DO CHEQUE
100,00123000 523 123456-5 000002
R$
, DE DE
94 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Conforme apresentamos anteriormente, um message authentica-
tion code (MAC) (ou código de autenticação de mensagem) pode ofere-
cer integridade e autenticação para mensagens, utilizando uma chave
simétrica preestabelecida entre as duas partes de uma comunicação.
Essa é uma forma de assinar uma mensagem, porém as assinaturas
digitais, discutidas aqui, abordam o funcionamento de uma assinatu-
ra digital com base na criptografia assimétrica, que utilizam um par de
chaves (pública e privada). Quando um usuário envia uma mensagem
assinada, o usuário receptor precisará validar a mensagem recebida
para confirmar que usuário de origem é o autor. O documento pode ser
assinado e validado digitalmente, utilizando o par de chaves pública e
privada do usuário. Para agilizar o processo de assinatura, podemos as-
sinar apenas o hash da mensagem. Dessa forma, a função hash combi-
nada à criptografia de chave pública e privada (assimétrica) funcionam
como assinatura para esse documento. O objetivo do valor hash gerado
será garantir que o texto assinado não foi alterado (FOROUZAN, 2008).
Quando assinamos um documento fisicamente, a assinatura é incor-
porada ao documento, assim como fazemos em um cheque ou em um
contrato. Porém, em documentos digitais, a assinatura é criada para um
determinado documento, por inteiro, e a assinatura gerada para aquele
documento é enviada em um arquivo separado. Com isso, o emissor da
mensagem precisará enviar dois arquivos, o documento e a assinatura
gerada para ele. O destinatário vai receber os dois arquivos (documento e
assinatura) e deverá utilizá-los em conjunto para validar se de fato o docu-
mento foi escrito pelo emissor. O processo de validação vai fornecer ape-
nas a informação se a verificação foi bem-sucedida ou se ela falhou. Caso
a verificação falhe, o documento deverá ser rejeitado (FOROUZAN, 2008).
A verificação da assinatura, no exemplo do cheque, é feita através da
inspeção visual da assinatura do cheque e da assinatura cadastrada no
cartão de autógrafos do banco (cartão de assinaturas do cliente, con-
forme é demonstrado na figura 2 ). Se forem idênticas, o documento é
autentico, caso contrário, o cheque não é pago, sendo devolvido como
95Assinaturas digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
uma possível fraude. Nesse método, o banco precisa ter uma cópiada
assinatura previamente cadastrada para a comparação.
Figura 2 – Exemplo de um cartão de autógrafos bancário
BANCO XYZ
Assinatura Assinatura
Cartão de autógrafos
Pessoa física
Assinatura do titular (Assinar duas vezes iguais)
XXXXXX
Data (dia/mês/ano)
10/05/2020
Nome do titular (nome completo, sem abreviatura)
Na assinatura digital, o receptor da mensagem receberá a mensagem
e uma assinatura específica para aquele documento, portanto, nenhu-
ma cópia da assinatura é armazenada pelo receptor. O receptor deverá,
portanto, aplicar a técnica de verificação combinando a mensagem e a
assinatura gerada para verificar a sua autenticidade. Dessa forma, cada
documento assinado terá uma assinatura diferente, estabelecendo uma
relação de 1/1 (um para um). No exemplo do cheque, uma mesma assi-
natura pode validar N número de cheques, uma relação de 1/N (um para
N) e uma cópia do documento pode ser diferenciada do arquivo original.
Porém, em uma assinatura digital, não existe essa diferença. Com isso,
se um usuário enviar um documento solicitando um pagamento, caso
ele seja interceptado por um invasor, ele poderia replicar a solicitação
realizando uma retransmissão. Para evitar esse tipo de ataque se pode
inserir um fator de tempo nas mensagens, uma espécie de registro de
horas informando a validade da mensagem (FOROUZAN, 2008).
Em uma assinatura física, a “chave privada” pertence ao signatário,
a assinatura pessoal de quem firma o documento. A “chave pública” é
96 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
o cartão de autógrafo do cliente armazenado no banco, dessa forma,
apenas o banco e mais ninguém poderá utilizá-la para verificar um do-
cumento e compará-la com a assinatura original (FOROUZAN, 2008).
Para tornar essa comparação pública, o usuário deve ter uma firma
reconhecida (assinatura reconhecida) em algum cartório, para que um
documento assinado possa ser verificado e autenticado publicamente.
Com uma assinatura digital, o usuário signatário utiliza sua chave priva-
da e aplica o algoritmo para assinar o documento. O usuário receptor,
por sua vez, utilizará a chave pública do signatário (usuário que assinou
o documento) para verificar o documento (FOROUZAN, 2008).
IMPORTANTE
Não devemos utilizar uma chave simétrica para assinar um documento
e verificar a assinatura, justamente porque a chave secreta é conhecida
entre as duas partes, portanto não é possível determinar qual das partes
assinou o documento (FOROUZAN, 2008).
2 Funcionamento
Um documento pode ser assinado por inteiro, quando a assinatura
é gerada para todo o documento de “ponta a ponta”, ou pode-se assinar
o digest do documento, ou seja, podemos assinar apenas o resultado
da função hash gerada para o documento. A forma mais fácil de se
assinar o documento é a sua assinatura integral, porém, esse método
é o menos eficiente. Dessa forma, as soluções de mercado utilizam a
assinatura do digest da mensagem, pois, apesar de mais complexo, é
mais rápido (FOROUZAN, 2008).
A figura 3 ilustra o processo de assinatura e validação, realizada de
forma completa para uma mensagem. Note que o processo é relativa-
mente simples e similar ao processo de criptografia assimétrica, apenas
97Assinaturas digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
invertendo-se a ordem das chaves. A mensagem é assinada com a cha-
ve privada do usuário e validada com a chave pública do emissor da
mensagem (FOROUZAN, 2008).
Figura 3 – Assinatura de uma mensagem
Alice
Assinatura Validação Resultado
Bob
Texto claro Texto claro
Aceita
Rejeita
Criptografia DescriptografiaTransmissão
de dados
Chave privada de alice Chave pública de alice
Fonte: adaptado de Forouzan (2008, p. 973).
Em um sistema de criptografia que busque a confidencialidade, utili-
zamos as chaves pública e privada do destinatário de uma mensagem,
ou seja, utilizamos a chave pública do receptor da mensagem para crip-
tografar a informação. Apenas o destinatário poderá descriptografar a
mensagem, com sua chave privada. Em um sistema de assinatura digi-
tal, utilizamos a chave pública e a chave privada da origem da mensa-
gem, logo, o usuário que enviará a mensagem utiliza sua chave privada,
e qualquer usuário poderá validar por meio de sua chave pública se a
mensagem é autêntica (FOROUZAN, 2008).
Outra forma mais eficiente de garantir a autenticação e a integridade
de uma mensagem é assinar apenas o digest. Conforme estudamos
anteriormente, podemos gerar um digest de um documento através de
uma função de resumo hash. Com isso, o destinatário da mensagem
deverá verificar o hash para validar sua autenticidade e integridade. A
figura 4 mostra o processo de assinatura e verificação do digest uma
mensagem (FOROUZAN, 2008).
98 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Figura 4 – Processo de assinatura do digest de uma mensagem
Alice
Processo de assinatura Processo de verificação
Bob
Mensagem Mensagem
Iguais
Aceita Rejeita
“Digest”“Digest”
Função hash
“Digest”Mensagem
e assinatura
Transmissão
de dados
Chave privada
de Alice Chave pública
de Alice
Função hash
Fonte: adaptado de Forouzan (2008, p. 974).
No processo de assinatura, Alice gera um digest para sua mensagem
e assina apenas o digest com sua chave privada. Ao receber a mensa-
gem, Bob executará o processo de verificação gerando novamente o
digest para a mensagem recebida. Depois, Bob vai descriptografar assi-
natura recebida, com a chave pública de Alice. Bob vai comparar os dois
valores de hash. Se forem iguais, a mensagem é aceita, caso contrário,
a mensagem é rejeitada (FOROUZAN, 2008).
NA PRÁTICA
Os métodos de autenticação de mensagens não necessitam de uma
função hash para funcionar, porém, são lentos para executar a verifi-
cação de textos grandes. Dessa forma, as funções hash são utilizadas
para gerar representações compactas e únicas das mensagens, com o
objetivo de que o valor hash da mensagem (digest) seja assinado. Esse
processo possibilita que as mensagens possam ser assinadas e verifi-
cadas mais rapidamente (SENDIN, 1999).
99Assinaturas digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
2.1 Ciclo de vida de uma assinatura digital
Um processo oficial de assinatura digital envolve: um signatário
(dono da assinatura); uma entidade que vai criar a assinatura digital que,
consequentemente, será responsável por sua validação; um mediador,
que é uma pessoa ou entidade que decide sobre uma eventual disputa
(um tribunal); além de um provedor de serviços de confiança, que ajuda
as entidades de certificação a construir uma relação de confiança en-
tre o assinante e o verificador. Esses provedores são responsáveis por
suporte, emissão de assinaturas, entre outros serviços relacionados à
autenticação das assinaturas e dos certificados digitais (BRASIL, 2008).
O ciclo de vida de uma assinatura digital é controlado pelosprovedo-
res de serviços e compreendem algumas etapas (BRASIL, 2008):
• Criação: onde é criada a assinatura do usuário, essa assinatura
compreende a geração da chave pública e da chave privada do
usuário.
• Verificação/validação: onde o provedor de serviços promove a
verificação de uma assinatura digital emitida para um de seus
clientes.
• Armazenamento: trata-se da guarda segura das assinaturas, tan-
to pelo usuário quanto pela autoridade certificadora, um usuário
deve zelar pelo documento da assinatura digital e de sua chave
privada para que um documento não seja assinado por terceiros.
• Revalidação do processo: onde o provedor de serviços emite
uma nova assinatura, quando ocorrer uma expiração da assinatu-
ra ou a revogação da assinatura.
100 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
PARA SABER MAIS
Uma autoridade certificadora do tempo (ACT) é, na prática, uma autori-
dade que pode emitir uma assinatura digital a um usuário em um deter-
minado tempo (BRASIL, 2017). A Infraestrutura de Chaves Públicas Bra-
sileira (ICP Brasil) disponibiliza uma relação de provedores de serviços
de confiança, autorizados a emitir assinaturas digitais válidas para a raiz
de certificação do Brasil.
3 Vantagens e desvantagens
As principais vantagens da assinatura digital estão ligadas à des-
materialização de documentos físicos, uma vez que a firma de um
documento através de uma assinatura digital possui validade legal. A
transmissão de um documento via rede de dados é de fato muito mais
rápida do que a tramitação de papéis por correio ou portadores, logo,
essa também é uma clara vantagem das assinaturas digitais. Porém, do
ponto de vista de tecnologia, existem outras vantagens e desvantagens
em seu modo de execução (SINGH; IQBAL; JAISWAL, 2015).
Quando assinamos uma mensagem utilizando a criptografia simé-
trica, através do MAC, temos uma maior velocidade na execução da
criptografia, justamente pelo uso da chave secreta previamente com-
partilhada entre os usuários de uma comunicação. Entretanto, nesse
método, não é possível obter a irretratabilidade (não repúdio) entre as
partes, pois ambos possuem a mesma chave. Esse problema é con-
tornado com o uso das assinaturas digitais, pois com a utilização da
criptografia assimétrica as partes podem assinar com suas chaves pri-
vadas, e a verificação é executada através da validação pelo processo
de descriptografia aplicado com a chave pública do usuário emissor da
mensagem (SINGH; IQBAL; JAISWAL, 2015).
101Assinaturas digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
IMPORTANTE
Assinar um texto extenso é uma tarefa de grande custo computacional.
O processo de criptografia assimétrico é muito mais lento que o pro-
cesso de criptografia simétrico. Para contornar a baixa velocidade, os
processos atuais de assinatura digital adicionam a assinatura ao digest
da mensagem. Esse processo traz uma melhoria de desempenho ao
processo de assinatura e validação, porém aumenta a complexidade de
execução, dada a adição de uma função de resumo hash ao processo
de assinatura e verificação (SINGH; IQBAL; JAISWAL, 2015).
Diferente de uma assinatura registrada em um cartório de notas (firma
aberta), as assinaturas digitais, para que tenham validade legal, devem
ser adquiridas em uma empresa de certificação válida, uma autoridade
certificadora (AC). Em geral, essas assinaturas digitais possuem validade
mínima de 1 ano, e devem ser recontratadas conforme a periodicidade
estabelecida pela AC. É importante ressaltar que as assinaturas não são
reaproveitadas. Se a assinatura digital estiver embutida em um sistema,
como é o caso de assinaturas específicas para empresas (e-CNPJ), os
sistemas deverão ser atualizados quando ocorrer a emissão de uma nova
assinatura. Também é comum que ocorram problemas de compatibilida-
de entre as diversas plataformas que oferecem os serviços de assinatura
digital. O processo de geração e verificação das assinaturas digitais tam-
bém introduzirá uma latência na comunicação, afinal a assinatura precisa
ser validada constantemente (SINGH; IQBAL; JAISWAL, 2015).
Considerações finais
O processo de assinatura digital é vital para a garantia da autenti-
cação e da integridade para mensagens trocadas entre duas partes
em uma comunicação eletrônica ou uma emissão de um documento
assinado. O funcionamento das assinaturas é possível principalmen-
te pelo uso dos algoritmos de criptografia associados ao processo de
102 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
assinatura e verificação. Entendemos também que o uso das funções
de resumo hash, apesar de mais complexas, tornam o processo de as-
sinatura e verificação mais rápidos.
Neste capítulo, verificamos também as vantagens e as desvanta-
gens do uso das assinaturas digitais. Fica evidente que a utilização das
assinaturas digitais é de extrema importância para a validação da auten-
ticidade de um uma mensagem e que esse processo atende de forma
segura a validade dos documentos assinados. Contudo, a fragilidade de
uma assinatura digital está ligada a forças e fraquezas dos algoritmos
de criptografia e funções hash escolhidas para a construção do sistema
de assinatura e validação. Portanto, quanto mais fortes e atuais forem
os componentes de criptografia e hash envolvidos no processo, mais
segura será a assinatura gerada.
Referências
BRASIL. Assinaturas digitais na ICP Brasil. Versão1.0. Instituto Nacional de
Tecnologia da Informação, 2008. Disponível em: http://www.iti.gov.br/images/
repositorio/consulta-publica/encerradas/DOC-ICP-15-Assinaturas_digitais_na_
ICP-Brasil.pdf. Acesso em: 18 abr. 2020.
BRASIL. Entes da ICP-Brasil. Instituto Nacional de Tecnologia da Informação,
2017. Disponível em: https://www.iti.gov.br/icp-brasil/57-icp-brasil/76-como-
-funciona. Acesso em: 20 abr. 2020.
FOROUZAN, Behrouz A. Comunicação de dados e redes de computadores.
São Paulo: McGraw-Hill, 2008
SENDIN, Ivan da Silva. Funções de hashing criptográficas. Dissertação
(Mestrado em Ciência da Computação) – Instituto de Computação, Universidade
Estadual de Campinas, Campinas, 1999. Disponível em: http://repositorio.
unicamp.br/bitstream/REPOSIP/275900/1/Sendin_IvandaSilva_M.pdf. Acesso
em: 30 mar. 2020.
103Assinaturas digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
SINGH, Shivendra; IQBAL, Md Sarfaraz; JAISWAL, Arunima. Survey on techni-
ques developed using digital signature: public key cryptography. International
Journal of Computer Applications, v. 117, n. 16, 2015.
TANENBAUM, Andrew S., WETHERAL, David. Redes de computadores. 5. ed.
São Paulo: Pearson, 2012.
105
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Capítulo 7
Certificadosdigitais
Ao utilizar uma chave pública para autenticar uma mensagem, é ne-
cessário confiar que ela de fato pertence à identidade do emissor da
mensagem e que não se trata de uma fraude, quando um impostor ten-
ta se passar pelo emissor. O certificado digital existe para proteger os
usuários quanto às identidades e, em termos práticos, ele é um registro
eletrônico, formado por um conjunto de dados que vai distinguir uma
entidade tornando-a uma chave pública, emitida para pessoas, empre-
sas, equipamentos ou serviços utilizados em rede. Esse certificado é
utilizado para garantir a confidencialidade e a autenticidade.
106 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Um certificado digital é um documento de informações similar a
uma cédula de identidade (RG), cadastro de pessoa física (CPF) ou um
passaporte, documentos que visam certificar a identidade de uma pes-
soa, armazenam todas as informações importantes para identificar um
usuário (nome completo, data de nascimento, filiação, etc.).
Assim como nos documentos físicos, cujas autoridades do gover-
no são responsáveis pela sua emissão, revogação e administração, um
certificado digital também possui um órgão competente que manterá
esse conjunto de dados. Essa autoridade é conhecida como autorida-
de de certificação (AC) e vai controlar todos os certificados, devendo
efetuar a gestão dos dados e dos certificados e, inclusive, garantir que
os certificados inválidos, ou seja, que não são mais seguros, sejam eli-
minados. Os certificados inválidos são revogados e armazenados em
uma lista de certificados revogados (LCR), dessa forma, um certificado
revogado não poderá mais ser reutilizado.
Outro ponto importante a ser abordado é a tecnologia blockchain,
que é utilizada principalmente para certificar e registrar transações fi-
nanceiras em sistemas de criptomoedas. Diferente de um certificado di-
gital, a blockchain não requer uma autoridade certificadora para validar
a autenticidade de uma transação.
Neste capítulo, estudaremos os conceitos e o funcionamento dos
certificados digitais. Estudaremos também os conceitos de blockchain,
suas vantagens e desvantagens, o conceito de autenticação com inte-
gridade e registro por blockchain.
1 Conceitos
Um certificado digital, de forma resumida, é uma forma de prover a
autenticação de um documento, mensagem ou serviço através de uma
assinatura digital em ambientes computacionais. Por meio da certifi-
cação digital, tanto pessoas físicas quanto jurídicas podem executar
107Certificados digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
transações entre sistemas e serviços com confidencialidade, integrida-
de, autenticação e o não repúdio. Para obter um certificado digital com
validade jurídica, uma pessoa ou empresa precisará contratar o serviço
de uma autoridade de certificação que pertença a uma infraestrutura de
chaves públicas (O QUE É..., [s. d.]).
Na prática, um certificado digital é um arquivo eletrônico que funcio-
nará como uma assinatura digital com validade jurídica. O provedor de
serviços emitirá o certificado digital para ele funcione como uma espé-
cie de identidade eletrônica e seja empregado em ambientes virtuais.
Com isso, o detentor do certificado digital emitido poderá assinar do-
cumentos, serviços e acessar sistemas que estejam preparados para
autenticar-se com um certificado digital, como sistemas da Receita
Federal e sites vinculados ao governo (BRASIL, 2015).
Os formatos comerciais de um certificado digital são (O QUE É...,
[s. d.]):
• e-CFP: usado por pessoas físicas para enviar e consultar decla-
rações de imposto de renda e demais documentos que precisam
ser assinados de forma digital, geralmente é vendido em formato
de arquivo digital ou em um hardware como token (uma espécie
de pendrive).
• e-CNPJ: tem as mesmas finalidades e formatos que um certifica-
do que um e-cpf, porém destina-se a pessoa jurídica (empresas).
O certificado e-cnpj pode ser emitido para o representante legal
da empresa cadastrado na receita federal.
• NF-e: é um certificado exclusivo para que uma empresa possa
emitir notas fiscais eletrônicas.
• SSL: o secure socket layer é um certificado digital emitido para
troca segura de informações entre os clientes e o site ou sistema
de uma empresa. De maneira simplista, um certificado SSL serve
108 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
para garantir que um site ou sistema realmente seja autêntico,
minimizando o risco de ser um site falso.
A figura 1 mostra os detalhes de um certificado SSL emitido para o
site www.senac.br.
Figura 1 – Certificado SSL para site
Também podemos consultar os detalhes técnicos do certificado
emitido para o site do Senac.br, assim como os algoritmos de cripto-
grafia utilizados, os detalhes dos certificados e a cadeia de certificação
(hierarquia das autoridades de certificação).
Na figura 2, verificar as informações gerais do certificado, data de
emissão, para quem o certificado foi emitido e a data de validade.
109Certificados digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Figura 2 – Informações gerais do certificado digital
Na figura 3, na aba de detalhes do certificado, são exibidos os pa-
râmetros de criptografia do certificado, como o algoritmo de hash em-
pregado na assinatura (SHA256), o algoritmo de chave pública utilizada
(RSA), emissor, validade, requerente e demais parâmetros.
110 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Figura 3 – Detalhes do certificado
Por fim, na figura 4, é apresentada a cadeia de certificação, que tem
como raiz a autoridade certificadora DigiCert, a autoridade certificadora
intermediária AC RapidSSL e por último o certificado emitido para o en-
dereço *.senac.br.
111Certificados digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Figura 4 – Caminho de certificação
1.1 Autoridade de certificação (AC)
Autoridade de certificação é a forma mais segura de anunciar as
chaves públicas dos usuários. Em termos práticos, a autoridade de cer-
tificação mantém uma lista atualizada de maneira dinâmica para validar
os certificados emitidos. Cada usuário cria uma chave privada e anun-
cia uma chave pública na lista da autoridade certificadora. É responsa-
bilidade da autoridade certificadora verificar a identidade do usuário que
requer um certificado, dessaforma, as autoridades certificadoras solici-
tam documentos para que o usuário comprove a sua identidade. Vários
controles adicionais podem ser implementados pelas autoridades de
112 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
certificação. Um controle que geralmente é adicionado consiste na in-
clusão de uma espécie de carimbo de tempo, na verificação de uma
assinatura, com isso as horas são inseridas na validação do certificado,
para impedir a interceptação e a reutilização/modificação de uma res-
posta assinada por uma autoridade certificadora (FOROUZAN, 2008).
A finalidade das autoridades de certificação é efetuar o reconheci-
mento das chaves púbicas emitidas para seus usuários. Dessa forma,
uma AC, geralmente, é uma organização estadual, federal ou privada
com autorização, que irá vincular uma chave pública de uma identida-
de (pessoa física ou jurídica) a uma entidade que executará a certifica-
ção. Uma AC tem também uma chave pública que é reconhecida por
uma AC superior, geralmente, uma organização federal. Com isso, a sua
chave pública não pode ser falsificada. Uma AC precisa manter uma
Infraestrutura de chaves públicas para poder emitir, manter e validar
os certificados de seus clientes. Para impedir que o próprio certificado
seja forjado por um invasor, a AC assina o certificado com sua chave
privada. Com isso, os usuários podem fazer um upload do certificado
assinado. Assim, qualquer usuário pode baixar o certificado assinado e
usar a chave pública da autoridade de certificação e consequentemente
extrair a chave pública do usuário que realizou o upload de seu certifica-
do (FOROUZAN, 2008). Esse processo de controle de chaves públicas é
demonstrado na figura 5.
Figura 5 – Controle de certificados por uma AC
Usuário Chave pública
A Ka
B Kb
... ...
Solicita a chave pública e horário do usuário B
AC envia a chave pública e horário de usuário B
Usuário A Autoridade de
certificação (AC)
Fonte: adaptado de Forouzan (2008, p. 988).
113Certificados digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Qualquer usuário poderá baixar o certificado assinado por uma auto-
ridade de certificação e utilizar a chave pública da AC para extrair a cha-
ve pública de um de seus usuários cadastrados. Esse fluxo de geração
da chave pública para um usuário e o seu consequente anúncio público
são demonstrados na figura 6.
Figura 6 – Processo de requisição e anúncio de chave pública
Usuário Chave pública
A Ka
B Kb
... ...
Solicitação
Emissão
Gr
av
aç
ão
Anúncio ao público
Usuário B
Autoridade de
certificação (AC)
KAC
Certificado
Kb
Fonte: adaptado de Forouzan (2008, p. 988).
Apesar de resolver o problema da distribuição de chaves públicas
e de remover a dúvida de quem é a identidade real do emissor de uma
chave pública, evitando os problemas com fraudes de identidades,
existe outro impasse na geração dos certificados. Cada autoridade de
certificação pode gerar seus certificados em formatos diferentes. Para
resolver esse impasse, foi necessário que as autoridades certificado-
ras utilizassem um formato universal. O formato adotado foi proposto
pela International Telecommunication Union (ITU) (em português, União
Internacional de Telecomunicações), denominado X.509.
2 Blockchain
O blockchain (em português, cadeia de bloco) ficou popularmente
conhecido com o advento das criptomoedas. A mais conhecida é a
114 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
bitcoin. Com a estrutura de blockchain é possível garantir a segurança
das entradas financeiras ou dos registros de transações realizadas pe-
los usuários dos sistemas de criptomoedas. Cada valor transacionado
pelos usuários das criptomoedas é assinado digitalmente utilizando os
métodos criptográficos já mencionados. A assinatura digital de cada va-
lor transacionado em um sistema de criptomoedas possibilita verificar a
integridade e autenticação dos dados transacionados. Logo, o objetivo
de utilizar uma estrutura de blockchain é garantir que ninguém adultere
qualquer valor dentro da cadeia de blocos de transações executadas,
daí o nome blockchain. Se a verificação dos blocos da cadeia de transa-
ções é validada com sucesso, as transações podem ser consideradas
íntegras (FORMIGONI FILHO; BRAGA; LEAL, 2018; ZHENG et al., 2018).
Similar ao modo de criptografia de bloco encadeada, ou CBC –
cipher block chaining, os registros de transações que são assinadas na
blockchain executam a criptografia de forma distribuída entre os blocos,
criando uma dependência entre eles para validação da integridade da
informação. Em blockchain, esses blocos estão distribuídos através da
infraestrutura computacional do sistema. Cada computador que execu-
tará a validação de uma transação é conhecido como um nó que assina
parte da transação. Além disso, várias outras camadas de segurança e
criptografia são adicionadas ao sistema, para que os nós possam forne-
cer um consenso, a qualquer momento, sobre o estado de um registro
de transação, ou seja, se a transação é de fato autêntica (FORMIGONI
FILHO; BRAGA; LEAL, 2018; ZHENG et al., 2018).
Supondo um cenário em que uma movimentação financeira precisa
ser validada por uma blockchain, os nós deverão validar e verificar o his-
tórico dessa transação. O computador de cada usuário de blockchain é
também um nó dentro da cadeia. Então, para garantir que a transação
não seja fraudulenta, os nós devem chegar a um consenso sobre o his-
tórico da transação e, posteriormente, validar ou não a assinatura da
transação. Após uma validação bem-sucedida, isto é, a transação é au-
tenticada, ela será aceita e incorporada a um bloco pertencente à cadeia
115Certificados digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
do blockchain. Diferente dos certificados digitais, esse modelo de va-
lidação entre os nós permite que uma blockchain funcione de forma
distribuída sem a necessidade de uma autoridade central. Assim, em
blockchain, não existe uma autoridade certificadora com a função de
validar quais transações são autênticas e quais não são (FORMIGONI
FILHO; BRAGA; LEAL, 2018; ZHENG et al., 2018).
PARA SABER MAIS
A bitcoin foi criada em 2008 por um grupo de programadores que com-
binou várias tecnologias, para criar um sistema de caixa eletrônico com-
pletamente descentralizado, que não dependia de nenhuma autoridade
central para emitir moedas ou validar as transações entre os clientes
(HELLANI et al., 2019). Para saber mais sobre a história da bitcoin, assis-
ta ao documentário Bitcoin: o fim do dinheiro como conhecemos (2015).
2.1 Autenticação, integridade e registro
Em uma blockchain, os dados são estruturados de forma que as
transações executadas são armazenadas em uma lista ordenada e liga-
da ao nó anterior, criando um sistema de registro distribuído, onde um
grupo de nós dá origem a um bloco na cadeia. A estrutura de um bloco
se divideem duas partes. A primeira é um cabeçalho com as informa-
ções em um bloco, e a segunda parte armazena as informações a res-
peito das transações contidas no respectivo bloco. Com isso, é possível
realizar uma associação entre os endereços de origem e destino das
transações. Cada nó e bloco possui uma identificação própria gerada
por uma função de resumo hash ( CHICARINO et al., 2017).
Esse valor hash é armazenado no cabeçalho do bloco, que possui
um campo específico para armazenar o hash do bloco imediatamente
anterior, formando uma espécie de elo de corrente entre os blocos. A
116 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
partir dessa ligação entre os blocos, outro hash é obtido, combinando
o hash de cada bloco ao seu antecessor. Através dessa combinação
entre os blocos, se qualquer bit do bloco anterior for alterado, o hash do
bloco à frente vai mudar, sendo necessário que o valor hash de todos os
blocos descendentes (filhos), conectados, precisem ser recalculados.
Esse cálculo é uma tarefa dispendiosa do ponto de vista computacional
e implica que uma longa cadeia de blocos descendentes seja inalterada
para que os blocos sejam validados. Essa imutabilidade garante a segu-
rança das transações armazenadas, do ponto de vista de integridade e
autenticidade ( CHICARINO et al., 2017).
De forma resumida, o cabeçalho consiste em um conjunto de meta-
dados (informações referenciais sobre os dados) contendo no mínimo
(CARVALHO, 2018):
• Hash do bloco anterior, que visa garantir a interligação entre os
blocos e permite detectar alterações em qualquer ponto da estru-
tura da blockchain.
• O valor hash do bloco, obtido por meio da árvore Merkle.
• O timestamp (em português, carimbo de tempo), que registra
data e hora e que cada novo bloco foi adicionado.
• O nonce, que é um identificador único para cada bloco.
• A raiz da árvore Merkle, que é obtida através do resumo de todas
as transações adicionadas a um bloco.
Uma árvore Merkle é utilizada para resumir e averiguar a integridade de
dados em grandes volumes. Em uma estrutura de blockchain, tem a fun-
ção de sumarizar todos os registros presentes em um bloco, criando uma
espécie de impressão digital de todos os registros pertencentes a um blo-
co. Diferente de uma estrutura de dados convencional de uma árvore (da
raiz até as folhas), a representação de uma árvore Merkle acontece de
forma oposta, ou seja, essa estrutura é construída por meio de repetidas
117Certificados digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
submissões de pares dos nós filhos de hashes, até que reste somente um
único nó raiz, o bloco pertencente à cadeia (CARVALHO, 2018).
A figura 7 exemplifica essa estrutura. Observando os registros nos
blocos, na base da árvore temos os nós filhos (as folhas da árvore), cada
um deles é submetido a uma função hash que é combinada ao seu nó
par. O resultado da combinação dos resultados, combinado às informa-
ções do próximo nó, resulta no hash do nó superior, um nó pai. Seguindo
o mesmo princípio, os dois nós adjacentes, “pais” dos nós filhos (folhas
da base), são combinados por uma função hash, dando origem ao nó
raiz. Cabe destacar que a árvore Merkle é binária, portanto, sempre serão
combinados pares de nós filhos para dar origem a um nó pai.
Figura 7 – Estrutura da árvore Merkle
Raiz do
bloco
Nós pais
Nós filhosHASH A
HASH AB
HASH ABCD
HASH CD
HASH B HASH C HASH D
Fonte: adaptado de Carvalho (2018, p.27)
Através da tarefa de validação entre os nós, cada nó filho (folha da
árvore) consiste no resultado de uma função hash para o respectivo re-
gistro e a raiz. Com qualquer alteração da hash raiz, todos os ramos são
também alterados de forma conjunta, o que provocará um erro de vali-
dação no próprio bloco e no bloco mais à frente. Essa propriedade, em
conjunto com a validação distribuída efetuada entre os blocos, garante
118 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
a imutabilidade de qualquer informação registrada em uma estrutura de
blockchain, alcançando assim o critério de imutabilidade, respeitando o
não repúdio e a integridade dos dados (CARVALHO, 2018).
Quando uma nova transação é realizada em um nó de um bloco, ela
precisa ser validada pela blockchain. Quando a transação é validada,
significa que pode ser incorporada a um bloco. Porém, antes de ser
incorporada, será mantida em uma estrutura temporária chamada de
pool (piscina). No pool, o nó determina as transações que serão incor-
poradas ao bloco, para que sejam submetidas à criação de uma nova
árvore Merkle e depois para a validação pelo mecanismo de consenso,
que resultara na validação do bloco. A partir de um bloco formado, to-
dos os nós da estrutura de blockchain são notificados e inicia-se um
processo de autenticação pelos demais nós (CARVALHO, 2018).
IMPORTANTE
O processo de autenticação de um novo bloco, incorporado a uma es-
trutura de blockchain, utilizada para criptomoedas, é conhecido como
mineração (CARVALHO, 2018).
Em uma estrutura de blockchain, o mecanismo de consenso decide
qual é próximo nó que vai se tornar um bloco. Essa definição surgiu pela
adaptação aos problemas dos generais bizantinos, que consistia na
busca de um consenso em que “n” generais de um exército deviam con-
cordar mutuamente sobre um plano de ataque, através de mensageiros.
Entretanto, se “z” número de generais são traidores e tentam boicotar o
ataque através da checagem da confirmação, dois terços dos generais,
pode-se determinar quem é o general traidor. O problema de determi-
nar um nó inválido na blockchain é similar ao problema dos generais
bizantinos, em chegar a um consenso sobre qual é o general traidor. A
estrutura de blockchain utiliza um algoritmo de consenso que busca,
119Certificados digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
por meio de seu sistema distribuído, identificar o agrupamento de nós
que se tornara um novo bloco e eles que não são confiáveis entre os
seus participantes (DIAS, 2019).
O registro por blockchain garante que não existam registros duplos.
A informação, uma vez registrada e validada para todos os nós, não
pode ser mais negada (repudiada), a alteração de uma base também
não é mais possível. Com isso, novos registros são adicionados aos
nós, que darão origem a novos blocos (elos da corrente), garantindo a
integridade dos dados. A autenticidade é garantida pelo processo de
assinatura digital. Logo, uma estrutura de blockchain pode ser utilizada
para obter-se autenticidade, integridade e registro.
PARA PENSAR
Uma blockchain pode substituir os cartórios convencionais, para regis-
tro de documentos, ou até mesmo as autoridades certificadoras?
2.2 Vantagens e desvantagens
Em geral, as estruturas de blockchain são construídas de forma dis-
tribuída e funcionam, em temos práticos, como um livro contábil aberto
e distribuído.Todas as informações registradas são armazenadas nos
blocos de dados em ordem cronológica. Podemos observar grandes
vantagens e aplicabilidade da blockchain, pois seu sistema provê a con-
fiança entre os seus usuários sem a necessidade de uma autoridade
intermediária. Porém, o formato descentralizado traz consigo algumas
desvantagens ligadas à eficiência e à complexidade computacional de
sua execução, além da crescente demanda por espaço de armazena-
mento (VANTAGENS..., [s. d.]).
120 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Notadamente, as vantagens das blockchain podem ser destacadas
como:
• a distribuição dos nós, que geralmente possuem milhares de par-
ticipantes, sendo resistentes a falhas entre eles, uma vez que o
sistema está distribuído;
• a imutabilidade das informações, o que garante a integridade, a
autenticidade e o registro das informações.
As principais desvantagens podem ser, de certa forma, antagônicas
às vantagens, como a imutabilidade. Se uma informação errada for re-
gistrada e validada pelos blocos, dificilmente poderá ser modificada,
pois isso exigiria autenticar todos os blocos da cadeia. Os algoritmos de
consenso são muito ineficientes, o processo de mineração em bitcoins
é um exemplo do desperdício de recursos, pois, somente o usuário que
finalizar a mineração primeiro é remunerado, ou seja, se dois usuários
tentam minerar um mesmo bloco, somente o que finalizar primeiro é
pago. A tarefa de mineração é extremamente competitiva e dispendio-
sa do ponto de vista computacional. A questão do armazenamento de
dados também é uma grande desvantagem, pois cada vez mais a es-
trutura de blockchain irá crescer e, para garantir o registro histórico de
suas transações, os volumes de informações armazenadas também
crescerá (VANTAGENS..., [s. d.]).
Considerações finais
Neste capítulo, foram apresentados os conceitos iniciais relaciona-
dos aos certificados digitais. Entendemos como uma autoridade de
certificação divulga as chaves públicas de seus usuários, quais tipos
de certificados podem ser emitidos e para quais finalidades, como o
certificado SSL utilizado para páginas de website e sistemas ou o e-CPF
para pessoas físicas. Cabe relembrar que o processo de certificação
elimina a principal dúvida envolvida em uma assinatura digital, que é
121Certificados digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
garantir que a chave pública utilizada para assinatura de um documento
ou mensagem, de fato, pertence a uma identidade em questão.
Compreendemos também que a tecnologia blockchain é uma abor-
dagem atual e que pode garantir a autenticidade, a integridade e o regis-
tro de transações, de forma não centralizada, ou seja, não requer uma
autoridade central para certificar as transações. O blockchain é utilizado
principalmente para certificar e registrar transações financeiras em sis-
temas de criptomoedas. Porém, sua aplicabilidade vai além das cripto-
moedas, pode inclusive substituir sistemas antigos, utilizados para o
registro de documentos em cartórios. Atualmente, alguns serviços já
começaram a ser oferecidos com base na estrutura de blockchain, o
primeiro recém-nascido registrado por uma blockchain no Brasil ocor-
reu em 2019, totalmente on-line, através do sistema da IBM no estado
do Rio de Janeiro (ANTUNES, 2019).
Referências
ANTUNES, Flávia. Nasce o primeiro bebê registrado de forma digital no
Brasil. Bebe.com.br, 2019. Disponível em: https://bebe.abril.com.br/familia/
nasce-o-primeiro-bebe-registrado-de-forma-digital-no-brasil/. Acesso em:
11 maio 2020.
BRASIL. Sistema de certificação digital do Serpro. Serpro, 2015. Disponível em:
https://certificados.serpro.gov.br/arcorreiosrfb/. Acesso em: 5 maio 2020.
CARVALHO, Leonardo Rodrigues. Tecnologia blockchain e as suas possíveis
aplicações no processo de comunicação científica. 2018. 95 f., il. Trabalho
de Conclusão de Curso (Bacharelado em Biblioteconomia) – Universidade de
Brasília, Brasília, 2018.
CHICARINO, Vanessa R. L. et al. Uso de blockchain para privacidade e seguran-
ça em internet das coisas. Livro de minicursos do VII Simpósio Brasileiro de
Segurança da Informação e de Sistemas Computacionais. Brasília: SBC, 2017.
p. 28.
122 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
DIAS, Rui Pedro das Neves. Análise de plataformas blockchain. Dissertação
(Mestrado em Engenharia Informática) – Faculdade de Ciências e Tecnologia,
Universidade de Coimbra, Coimbra, 2019.
FORMIGONI FILHO, José Reynaldo; BRAGA, Alexandre Mello; LEAL, Rodrigo
Lima Verde. Tecnologia blockchain: uma visão geral. 2018. Disponível em:
https://www.cpqd.com.br/wp-content/uploads/2017/03/cpqd-whitepaper-
blockchain-impresso.pdf. Acesso em: 11 mai. 2020.
FOROUZAN, Behrouz A. Comunicação de dados e redes de computadores.
São Paulo: McGraw-Hill, 2008.
HELLANI, Hussein et al. On blockchain technology: overview of bitcoin and fu-
ture insights. In: IEEE INTERNATIONAL MULTIDISCIPLINARY CONFERENCE ON
ENGINEERING TECHNOLOGY, 2018, Beiruth. Annals [...]. Beiruth: IMCET, 2018.
p. 1-8.
O QUE É certificado digital. Certisign, [s. d.]. Disponível em: https://www.
certisign.com.br/certificado-digital. Acesso em: 2 maio 2020.
VANTAGENS e desvantagens da blockchain. Binance Academy, [s. d.].
Disponível em: https://www.binance.vision/pt/blockchain/positives-and-
negatives-of-blockchain. Acesso em: 12 maio 2020.
ZHENG, Zibin et al. Blockchain challenges and opportunities: a sur-
vey. International Journal of Web and Grid Services, v. 14, n. 4, p. 352-375,
2018. Disponível em: https://www.researchgate.net/publication/328338366_
Blockchain_challenges_and_opportunities_A_survey. Acesso em: 11 mai. 2020.
123
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Capítulo 8
Infraestrutura dos
certificados digitais
Anteriormente, compreendemos que um certificado digital é um ar-
quivo eletrônico que funciona como uma assinatura digital. O certifica-
do digital pode ser emitido e utilizado tanto para pessoas físicas como
para jurídicas. Entre as diversas aplicações e usos do certificado digital,
entendemos que sua função é garantir a confiança na identidade de
quem emitiu a assinatura digital. Se o certificado emitido for validado
por uma autoridade de certificação, possuirá validade legal, o que irá
garantir a autenticidade de uma pessoa física ou jurídica.
124 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Uma infraestrutura de chave pública (ICP) (em inglês, public key
infrastructure – PKI) é necessária para que o processo devalidação de
chaves públicas das assinaturas contidas nos certificados digitais ocor-
ra. Essa infraestrutura de chave pública consiste em dar suporte ao uso
da criptografia de chave pública e privada, para autenticar as partes en-
volvidas em uma transação. Para que isso ocorra, uma ICP deverá ser
capaz de prover a emissão, a validação, a revogação e a distribuição de
chaves públicas (INFRAESTRUTURA..., [s. d.]).
Apesar de não existir um padrão que determine o funcionamento
e os componentes necessários a uma ICP, eles geralmente incluem
as autoridades de certificação (AC) e as autoridades de registro (AR)
(INFRAESTRUTURA..., [s. d.]). Com isso, uma ICP deverá manter em
um repositório de certificados (RC) e em uma lista de certificados revo-
gados (LCR) certificados que não são mais válidos. Uma ICP também
pode fornecer ferramentas para o gerenciamento de certificados digi-
tais a seus clientes (solicitantes), incluindo serviços de criptografia e
assinaturas digitais para documentos, por exemplo, entretanto não são
essenciais ou mandatórios para o funcionamento de uma ICP.
Neste capítulo, estudaremos o padrão X.509, definido pelo ITU na
RFC 3280 (2002) como base para ICPs, sendo este amplamente utili-
zado como padrão de mercado. Para fazer uso de um certificado, os
usuários devem observar a política de certificação de sua AC e, depois,
se concordarem, devem, então, confiar nos serviços de autenticação e
não repúdio atrelados à chave pública de um certificado específico (RFC
3280, 2002). Dessa forma, o padrão X.509 não especifica regras ou de-
veres jurídicos vinculados a uma AC, isto é, feito de acordo com seus
contratos e políticas de sua área de atuação. O ICP-Brasil, por exem-
plo, é a autoridade de certificação raiz para os certificados emitidos no
Brasil, tendo a mesma validade jurídica que documentos assinados em
papel (BRASIL, 2017).
125Infraestrutura dos certificados digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
O principal objetivo de uma ICP é atender à necessidade de iden-
tificação de forma determinística e automatizada da autenticação, do
controle de acesso e das funções de autorização em sistemas, prin-
cipalmente na internet. Isso é obtido por meio de uma padronização,
portanto, a ICP determinará os atributos que devem conter um certifica-
do, assim como as informações adicionais que serão necessárias para
controlar os certificados emitidos para seus usuários. Entre essas infor-
mações estão dados como as políticas e as restrições de caminhos da
certificação (RFC 3280, 2002).
Vamos aprender como se dá o funcionamento, a validação e a revo-
gação dos certificados digitais, utilizando o conceito padronizado pela
RFC 3280, que consiste na validação dos certificados através de uma
árvore de certificação. Vamos entender a finalidade das entidades finais
(EF), das autoridades certificadoras (AC), das autoridades registradoras
(AR), os tipos de certificados digitais disponíveis, o que é o repositório
de certificados (RC) e a lista de certificados revogados (LCR).
1 Conceitos
O uso dos centros de distribuição de chaves (key distribution center
– KDC) foi uma iniciativa para distribuição de chaves públicas, porém,
esse método se mostrou ineficiente, pois seria necessária uma estrutu-
ra muito robusta para validar o tempo todo as chaves públicas de usu-
ários. Imagine a estrutura que seria necessária para validar todos os
certificados de uma cidade, estado, de um país ou todos os usuários
da internet. Além disso, a estrutura do KDC não é escalável; caso o KDC
ficasse indisponível, todas as chaves públicas também ficariam. Ao
contrário do KDC, uma infraestrutura de chave pública (ICP), utiliza uma
autoridades de certificação (AC) que não precisa estar on-line o tempo
todo. Em vez disso, uma organização certifica chaves públicas que são
utilizadas pelos usuários (TANENBAUM; WETHERAL, 2012).
126 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
O certificado emitido para um usuário cria um vínculo com a sua
chave pública, dessa forma, o objetivo do certificado é ser totalmente
público. Caso um usuário queira emitir um certificado para si, ele deve
procurar uma autoridade de certificação, munido de seus documentos
de identificação pessoal ou da empresa que representa. O usuário deve
pagar uma taxa à AC e o certificado é emitido para o período de validade
contratado. A AC assina o hash do certificado emitido com sua chave
privada e o usuário receberá o arquivo digital contendo o certificado e
seu hash assinado pela AC (TANENBAUM; WETHERAL, 2012).
Apesar da função primária de um certificado digital estar vinculada
à autenticação de uma chave pública, um certificado também pode re-
gistrar atributos relevantes para um usuário (TANENBAUM; WETHERAL,
2012), como atributos referentes ao número de documentos, por exem-
plo. Em sistemas do governo, como a receita federal, o atributo CPF
é utilizado para que um usuário consiga autenticar-se. Dessa forma, o
detentor do certificado com o CPF preenchido prova a autenticidade de
um sistema e garante o acesso do usuário pela validação dos atributos
do certificado. O padrão mais utilizado para emissão de certificados di-
gitais é o X.509, que especifica os atributos que serão registrados nos
certificados emitido por uma AC. A tabela 1 mostra os principais atribu-
tos do padrão X.509 e suas funções.
Tabela 1 – Principais atributos para certificados emitidos no padrão X.509
ATRIBUTO DESCRIÇÃO
Version (versão) Versão utilizada do padrão X.509
Serial number
(número de série)
Identificador exclusivo do certificado na AC, quando somado ao nome da CA
torna o certificado único
Signature algorithm
(algoritmo da assinatura)
Algoritmo utilizado para assinar o certificado do usuário
Issuer (emissor) Nome do emissor do certificado no padrão X.500
(cont.)
127Infraestrutura dos certificados digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
ATRIBUTO DESCRIÇÃO
Validity period
(período de validade)
Data de início e término da validade do certificado
Subject name
(nome de sujeito)
Entidade para qual o certificado foi emitido
Public key
(chave pública)
A chave pública da autoridade certificadora e identificação do algoritmo que
foi utilizado
Issuer ID
(Id do emissor)
Identificação exclusiva opcional para o emissor do certificado
Subject ID
(Id do sujeto)
Identificação exclusiva opcional para entidade certificada
Extensions (extensões) Diversas extensões utilizadas nos certificados
Signature (assinatura)
Assinatura do certificado emitido, assinado pela chave privada da Autoridade
Certificadora
Fonte: adaptado de Tanenbaum e Wetheral, (2012, p. 508).
A denominação X.500 especifica o formato para identificação dentro
da AC, onde C é o país, O é a organização, OU é a unidade organizacional
e CN é o nome comum. Supondo que o usuário João da área de marke-
ting tivesse seu certificado emitido para sua empresa TRUST, no Brasil,
seu endereço X.500 poderia ser “/C=BR/O=TRUST/OU=MARKETING/
CN=JOAO”. O padrão X.509 define o uso do formato X.500 para serviços
de diretório, que são uma espécie de banco de dados para autenticação
de usuários em redes de computadores distribuídos. As informações
guardadas nos serviços de diretório incluemo nome do usuário, ende-
reço de rede, entre outros atributos e informações sobre os usuários
(TANENBAUM; WETHERAL, 2012).
128 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
PARA SABER MAIS
O active directory (AD) é um produto criado pela Microsoft para ser utili-
zado como serviço de diretório no protocolo LDAP. O lightweight directory
access protocol (LDAP) (em português, protocolo de acesso a diretórios
leves) fornece diversos tipos de funcionalidades para usuários em rede,
como autenticação, grupos e gerenciamento de usuários. Também é
possível administrar políticas para usuários e computadores conectados
em produtos como no AD (O QUE É..., 2020). Porém, o active directory
da Microsoft não é a única opção para uso do protocolo LDAP, exis-
tem soluções como OpenLDAP, Red Hat Serviço de Diretório, Apache
Directory Server, entre outros.
2 Infraestrutura de chave pública (ICP)
Criar uma única AC para emitir todos os certificados gerados no
mundo seria algo inviável, pois a estrutura representaria um ponto único
de falha. Outra solução seria criar várias ACs gerenciadas por apenas
uma organização, o que resolveria o problema de ponto único de fa-
lha. Porém, a mesma chave privada teria que ser utilizada em todas as
ACs, o que comprometeria a confiabilidade de todo o sistema de certi-
ficação com a possibilidade de vazamento de chaves. Logo, o uso de
uma única AC para todo o mundo seria uma estratégia muito arriscada
(TANENBAUM; WETHERAL, 2012).
Em função do risco e das dificuldades atreladas na operacionalização
de uma AC única global, a ICP foi criada com base no compartilhamento
da confiança através da derivação em uma estrutura de árvore entre as
ACs. Uma vez que existe a confiança em uma autoridade certificado-
ra, todos os certificados emitidos por ela serão considerados válidos,
segundo seus critérios, como validade e não revogação (TANENBAUM;
WETHERAL, 2012; PUODZIUS, 2017).
129Infraestrutura dos certificados digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
De forma similar à emissão de uma cédula de identidade (RG), que
é feita pelo Ministério da Justiça, através da Secretaria de Segurança
Pública de cada estado e de um instituto de identificação. O certificado
digital é o produto final emitido por uma autoridade de certificação, por
meio de uma autoridade de registros e de autoridades certificadoras
intermediárias. A figura 1 mostra a comparação da emissão de um RG
e um certificado digital.
Figura 1 – Estrutura de uma ICP comparada a emissão de um RG
Ministério da Justiça
MJ
Secretaria de Segurança Pública
SSP
Instituto de identificação
RG
Autoridade de
certificação raiz
Autoridade de certificação
intermediária
Autoridade de registro (AR)
Certificado digital
Fonte: adaptado de Nunes (2007).
A figura 2 demonstra uma estrutura de hierarquias para validação
de uma AC, ou seja, como as autoridades estão interconectadas. No
exemplo, são apresentados três níveis de uma árvore: na base, temos
as autoridades de certificação; no nível intermediário, temos as auto-
ridades certificadoras regionais, também conhecidas como ACs inter-
mediárias; no último nível (o mais alto), temos a raiz da infraestrutura
de certificação.
130 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Figura 2 – Árvore de infraestrutura de chave pública
AC1 AC2 AC3
ACR1
AC RAIZ
A ACR2 é aprovada
Sua chave pública é
71ADGQIWERV
Assinatura da AC Raiz
A AC6 é aprovada
Sua chave pública é
984AD4Q15965
Assinatura da ACR2
AC4 AC5 AC6
ACR2
Fonte: adaptado de Tanenbaum e Wetheral (2012, p. 509).
Analisando os três níveis, temos que a raiz da árvore nada mais é do
que uma autoridade de certificação superior, que certifica o segundo ní-
vel, também conhecido como nível intermediário. Podem ser chamadas
também de autoridades de certificação regionais (ACR), que têm a fun-
ção de controlar autoridades de certificação abaixo delas, para determi-
nada região, país ou continente. As ACs na base da árvore são as que de
fato emitem os certificados no padrão X.509 para as organizações ou
indivíduos. Essas ACs são autorizadas pela autoridade de certificação
superior, em nosso exemplo, as ACRs (TANENBAUM; WETHERAL, 2012;
PUODZIUS, 2017).
IMPORTANTE
Outro importante componente dessa infraestrutura é a entidade final
(EF). Uma entidade final é um termo genérico para indicar os usuários
finais dos certificados. Esses usuários finais podem ser: usuários de
sistemas, equipamentos (como servidores ou roteadores) ou qualquer
entidade que possua CNPJ e que tenha a necessidade pode solicitar um
certificado digital para uma chave pública.
131Infraestrutura dos certificados digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Em termos simples, a autoridade certificadora é um terceiro confiá-
vel que emite os certificados digitais. Esse terceiro garante que a chave
pública de uma entidade final realmente pertence a tal entidade. Suas
funções incluem receber os pedidos de certificados digitais, validar a
identidade do solicitante, assinar e devolver o certificado à entidade fi-
nal. Também fornece a chave pública de sua própria AC em seu certi-
ficado e publica a lista de certificados que não são mais confiáveis ou
lista de certificados revogados (LCR) (INFRAESTRUTURA..., [s. d.]).
A autoridade certificadora raiz da ICP Brasil é o Instituto Nacional de
Tecnologia da Informação (ITI). O instituto está no topo da árvore hierár-
quica de certificação, sendo a primeira autoridade na cadeia. A função
da AC-Raiz é gerenciar as questões e as normativas técnicas, além das
políticas de certificados estabelecidas pelo comitê gestor. A AC-Raiz
tem poder para emitir, distribuir, expedir, revogar e gerenciar os certifica-
dos das autoridades certificadoras que estão sob seu nível hierárquico,
ou seja, todas a ACs abaixo de sua hierarquia. Também são funções
de uma AC-Raiz fiscalizar e auditar suas ACs, ARs ou quaisquer outros
prestadores de serviços associados a sua estrutura (BOFF, 2017).
As autoridades de registro (AR), ou registradoras, são responsáveis
por realizar a intermediação entre os usuários e uma autoridade certifi-
cadora. Uma autoridade de registro se vincula a uma AC com a finalida-
de de executar a intermediação presencial entre as ACs e os usuários
finais, que solicitam os certificados digitais (BOFF, 2017).
3 Tipos de certificados digitais
Os tipos de certificados disponíveis para aquisição no ICP Brasil es-
tão divididos quanto a sua aplicação e os seus requisitos de segurança
(BOFF, 2017):
• Tipo A: é o certificado mais comum, usado para assinatura de
documentos e transações eletrônicas.
132 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
roib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
• Tipo S: utilizado exclusivamente para garantir o sigilo ou cripto-
grafia de dados, em geral protege documentos e tráfego de infor-
mações em redes.
• Tipo T: utilizado para certificação da data e hora em que um do-
cumento eletrônico é assinado, registrando também a identifica-
ção do signatário (entidade que assina).
A forma de armazenar e a validade-padrão dos certificados também
são padronizados. A tabela 2 resume a organização dos certificados.
Tabela 2 – Tipos de certificado
TIPO ARMAZENAMENTO VALIDADE MÁXIMA
A1/S1 Software 1 ano
A3/S3 Hardware Até 5 anos
A4/S4 Hardware Até 6 anos
Fonte: adaptado de Boff (2017).
Na tabela 2, verificamos que a validade dos certificados varia no tem-
po padrão de 1 a 6 anos, seu armazenamento pode ser em hardware
ou software. O armazenamento em hardware é feito por meio de token,
em formato de pendrive ou cartão. No armazenamento via software o
certificado é disponibilizado em formato eletrônico ao usuário final, que
deve configurá-lo para uso em seu computador pessoal ou em seu ser-
vidor. Conforme estudamos no capítulo 7, os certificados podem ser
emitidos para usos específicos, como os certificados e-CPF, e-CNPJ,
e-NFE e SSL.
O secure socket layer (SSL) (em português, camada de soquete se-
guro) garante uma comunicação criptografada entre o navegador de in-
ternet de um usuário e o servidor da página web acessada por ele. Para
criar essa conexão segura entre o navegador de internet e o website,
133Infraestrutura dos certificados digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
uma AC pode emitir um certificado SSL que deve ser instalado no ser-
vidor da aplicação web. O certificado SSL terá a função de autenticar a
identidade do site acessado, garantindo aos usuários que o site é autên-
tico e também efetua a criptografia dos dados transmitidos entre o site
e o navegador.
Os certificados SSL podem ser de três tipos (TUDO..., [s. d.]):
• Único: apenas para um endereço site específico;
• Wildcard (curinga): para todos os endereços abaixo de um domí-
nio (todos os subendereços de um site principal);
• Multidomínio: para diferentes domínios de endereços de sites.
4 Repositório de certificados (RC)
Um repositório de certificados, de forma simples, é utilizado para in-
dicar um método de armazenamento de certificados válidos, para que
sejam recuperados pelos usuários finais. Gerenciar adequadamente a
própria chave privada de seu certificado pode ser um problema, inclusi-
ve a guarda inadequada colocará a identidade do usuário em risco.
O arquivo eletrônico de um certificado digital, em geral, é armaze-
nado em um sistema de arquivos comum, porém também pode ser ar-
mazenado em um repositório físico, ou seja, um hardware específico
como os smartcards ou tokens. Conforme apresentamos anteriormen-
te, esses dispositivos são utilizados para guardar as chaves privadas e
os certificados emitidos para os usuários. Para adicionar os certifica-
dos em um computador pessoal, basta configurar o repositório em seu
navegador de internet. A figura 3 mostra a configuração do repositório
de certificados no navegador Internet Explorer. Para visualizar os deta-
lhes do certificado basta selecionar o certificado e clicar no botão exibir
(NUNES, 2007).
134 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Figura 3 – Configuração do repositório de certificados no navegador Internet Explorer
135Infraestrutura dos certificados digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Um repositório centralizado também pode ser facilmente mantido e
gerenciado em uma infraestrutura de chave pública. Nesse repositório
centralizado, os usuários podem efetuar um processo de autenticação
(login) e, utilizando suas credenciais (usuário e senha), acessar o repo-
sitório para utilizar o certificado em questão. O repositório armazenará
a chave privada do usuário e seu respectivo certificado. Essa aborda-
gem de uso, apesar de se mostrar prática, deve ser executada com cui-
dado, pois uma invasão poderia colocar em risco todas as chaves pri-
vadas e os certificados, armazenados no repositório (RFC 3820, 2002;
TANENBAUM; WETHERAL, 2012).
5 Lista de certificados revogados (LCR)
Assim como uma habilitação para dirigir ou passaportes, os certifi-
cados digitais têm data de validade e podem ser revogados, conforme o
critério do órgão emissor ou por solicitação da entidade final (usuário).
Uma autoridade certificadora pode revogar um certificado emitido por
ela se a chave privada foi exposta ou se a AC foi comprometida. Com
isso, uma ICP precisa estar preparada para lidar coma revogação de
certificados executadas pelas ACs (TANENBAUM; WETHERAL, 2012).
Para isso, as ACs emitem periodicamente uma lista de certificados
revogados (LCR), também conhecida como certificate revocation list
(CRL). Essa lista fornece o número de série de todos os certificados que
a AC revogou. Uma vez que os certificados digitais possuem data de va-
lidade, a LCR precisa conter apenas o número de série dos certificados
revogados que ainda não venceram. Os certificados vencidos não preci-
sam ser informados, pois, uma vez que a validade expira, o certificado é
automaticamente invalidado, não sendo necessário fazer qualquer dis-
tinção entre um certificado revogado e um certificado expirado, pois em
ambos os casos os certificados não são mais utilizáveis (TANENBAUM;
WETHERAL, 2012).
136 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
Utilizar uma LCR implica que, ao validar um certificado, deve-se
também consultar a LCR para verificar se o certificado em questão
não foi revogado. Essa operação, portanto, deve ser feita sempre que
um certificado for utilizado, pois o que garante que um certificado
que acabou de ser validado não será revogado antes do próximo uso?
Outro fator complicador no uso das LCRs é que um certificado revoga-
do pode ser reabilitado em situações como o pagamento em atraso de
uma taxa. A revogação ou reativação obrigará que um usuário tenha
que entrar em contato com a autoridade certificadora (TANENBAUM;
WETHERAL, 2012).
As LCRs precisam ser armazenadas no mesmo local que os certifi-
cados, para isso, uma boa estratégia é a AC publicar de forma ativa e
periódica a LCR, obrigando os diretórios a processar apenas a remoção
dos certificados revogados. Caso os diretórios de certificados não fo-
rem utilizados para armazenar as LCRs, elas poderão ser armazenadas
em cache nos locais convenientes da rede. Um fator importante é que
as LCRs também devem ser assinadas pelas ACs. Logo, mesmo que
um invasor tente fraudar uma LCR, essa ação poderá ser detectada fa-
cilmente (TANENBAUM; WETHERAL, 2012).
IMPORTANTE
Certificados digitais com validade de longa duraçãoimplicam em LCRs
também de longa duração. Para lidar com LCRs longas, pode-se emitir
uma lista principal com pouca frequência e emitir atualizações frequen-
tes para a lista (TANENBAUM; WETHERAL, 2012).
Considerações finais
Neste capítulo, entendemos que o processo de validação de um
certificado se dá pela reconstrução da hierarquia (o caminho de
137Infraestrutura dos certificados digitais
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
certificação) partindo do certificado até a AC-Raiz. A verificação da ár-
vore é necessária para determinar a confiança em um certificado emi-
tido. Conhecemos também os principais atributos existentes em um
certificado que são especificados pela estrutura X.509. Discutimos o
funcionamento das ICPs e seus principais aspectos, como as entidades
finais (EFs), a função das autoridades certificadoras (ACs), as autorida-
des registradoras (ARs) e os tipos de certificados digitais disponíveis
comercialmente. Apresentamos a função dos repositórios de certifica-
dos (RCs) e compreendemos que os certificados podem ser armaze-
nados localmente (no navegador de internet dos usuários) ou de forma
centralizada. Entendemos a importância do uso da lista de certificados
revogados (LCR), para que um certificado revogado não seja validado
por uma AC.
Sem dúvida, os certificados garantem a seus titulares e aos usuá-
rios de sistemas a autenticidade das informações nos meios digitais.
Possibilitam a assinatura e a confiança vinculada a seus documentos
ou as transações executadas nos mais diversos sistemas. Os certifica-
dos digitais representam um uso prático e seguro da criptografia, ga-
rantindo a segurança da informação nos seus níveis de confiabilidade,
integridade, autenticidade e não repúdio.
Referências
BOFF, Marcel. O que é ICP Brasil e como funciona? Santo Contrato, 2017.
Disponível em: https://www.santocontrato.com.br/o-que-e-icp-brasil/. Acesso
em: 20 maio 2020.
BRASIL. Certificação digital. Instituto Nacional de Tecnologia da Informação,
2017. Disponível em: https://www.iti.gov.br/perguntas-frequentes/41-pergun-
tas-frequentes/112-sobre-certificacao-digital. Acesso em: 15 mai. 2020.
INFRAESTRUTURA de chave pública (KPI). IBM Knowledge Center, [s. d.].
Disponível em: https://www.ibm.com/support/knowledgecenter/pt-br/
SSFKSJ_9.0.0/com.ibm.mq.sec.doc/q009900_.htm. Acesso em: 15 maio 2020.
138 Criptografia M
at
er
ia
l p
ar
a
us
o
ex
cl
us
ivo
d
e
al
un
o
m
at
ric
ul
ad
o
em
c
ur
so
d
e
Ed
uc
aç
ão
a
D
is
tâ
nc
ia
d
a
Re
de
S
en
ac
E
AD
, d
a
di
sc
ip
lin
a
co
rre
sp
on
de
nt
e.
P
ro
ib
id
a
a
re
pr
od
uç
ão
e
o
c
om
pa
rti
lh
am
en
to
d
ig
ita
l, s
ob
a
s
pe
na
s
da
L
ei
. ©
E
di
to
ra
S
en
ac
S
ão
P
au
lo
.
NUNES, Delio Silva. Armazenagem. Ufrj, 2007. Disponível em: https://www.gta.
ufrj.br/grad/07_2/delio/Armazenagem.html. Acesso em: 25 maio 2020.
O QUE É Active Directory (AD)? Portal GSTI, 2020. Disponível em: https://www.
portalgsti.com.br/active-directory/sobre/. Acesso em: 17 jun. 2020.
PUODZIUS, Cassius. Certificados digitais e infraestrutura de chaves públi-
cas. WeLiveSecurity, 2017. Disponível em: https://www.welivesecurity.com/
br/2017/04/28/certificados-digitais-e-infraestrutura-de-chaves-publicas/.
Acesso em: 20 maio 2020.
RFC 3280. Internet X.509 public key infrastructure: certificate and certificate re-
vocation List (CRL) Profile. Ietf.org, abr. 2002. Disponível em: http://www.ietf.
org/rfc/rfc3280.txt?number=3280. Acesso em: 15 maio 2020.
TANENBAUM, Andrew S., WETHERAL, David. Redes de computadores. 5. ed.
São Paulo: Pearson, 2012.
TUDO o que você precisa saber sobre os ceritificados SSL. Verisign,
[s. d.]. Disponível em: https://www.verisign.com/pt_BR/website-presence/onli-
ne/ssl-certificates/index.xhtml. Acesso em: 21 maio 2020.
141
M
aterial para uso exclusivo de aluno m
atriculado em
curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
Editora Senac São Paulo.
Sobre o autor
Hebert de Oliveira Silva é graduado em redes de computadores pela
Universidade Paulista, com pós-graduação em gestão e governança de
TI pelo Centro Universitário Senac. Obteve seu título de mestrado em
tecnologia, na área de sistemas da informação e comunicação pela
Universidade Estadual de Campinas (Unicamp), onde segue sua forma-
ção como doutorando em tecnologia. Atualmente, é especialista em so-
luções de TI na sede do Sesi e do Senai de São Paulo. Também é profes-
sor universitário nos cursos de graduação em sistemas da informação
e ciência da computação. Possui ampla experiência em gerenciamento
de redes, segurança da informação e arquitetura de sistemas, atuando
no planejamento, na implantação e na gestão dos serviços críticos de TI.
Link para o Currículo Lattes: http://lattes.cnpq.br/9689028080261016.
CRIP_01_ACE_2020
CRIP_02_ACE_2020
CRIP_03_ACE_2020
CRIP_04_ACE_2020
CRIP_05_ACE_2020
CRIP_06_ACE_2020
CRIP_07_ACE_2020
CRIP_08_ACE_2020