0% acharam este documento útil (0 voto)
7 visualizações135 páginas

Compilado_Criptografia

Curso Criptografia

Enviado por

Marlo Guilherme
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
7 visualizações135 páginas

Compilado_Criptografia

Curso Criptografia

Enviado por

Marlo Guilherme
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 135

Hebert de Oliveira Silva

Criptografia
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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
CRIPTOGRAFIA

Hebert de Oliveira Silva


Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento 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

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 ([email protected])
Coordenação Editorial/Prospecção
Luís Américo Tousi Botelho ([email protected])
Dolores Crisci Manzano ([email protected])
Administrativo
[email protected]
Comercial
[email protected]
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 Proibida a reprodução sem autorização expressa.
Antonio Carlos De Angelis Todos os direitos desta edição reservados à
Editoração Eletrônica
Editora Senac São Paulo
Michel Iuiti Navarro Moreno
Rua 24 de Maio, 208 – 3o andar
Ilustrações Centro – CEP 01041-000 – São Paulo – SP
Michel Iuiti Navarro Moreno Caixa Postal 1120 – CEP 01032-970 – São Paulo – SP
Tel. (11) 2187-4450 – Fax (11) 2187-4486
Imagens
E-mail: [email protected]
Adobe Stock
Home page: http://www.livrariasenac.com.br
E-pub
Ricardo Diana © Editora Senac São Paulo, 2020
Sumário
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

Capítulo 1 Capítulo 4
Introdução à criptografia, 7 Troca de chaves
1 Conceitos, 9 Diffie-Hellman, 61
2 História, 11 1 Conceitos, 62
3 Principais elementos do processo 2 Processo de troca de chaves, 63
criptográfico, 15 3 Vantagens e desvantagens, 68
4 Criptografia quanto ao 4 Confidencialidade na troca, 69
processamento, 16
5 Falta de autenticação, 70
5 Criptografia quanto ao número de
Considerações finais, 71
chaves, 21
Referências, 72
Considerações finais, 23
Referências, 24 Capítulo 5
Hash, 73
Capítulo 2
1 Conceitos, 74
Criptografia simétrica, 27
2 Cálculos de hash, 78
1 Conceitos, 28
3 Considerações sobre o uso de
2 Funcionamento, 30
hashes, 79
3 Principais algoritmos simétricos, 31
4 Principais algoritmos de hash, 86
4 Vantagens e desvantagens, 39
Considerações finais, 88
Considerações finais, 41
Referências, 88
Referências, 42
Capítulo 6
Capítulo 3 Assinaturas digitais, 91
Criptografia de chave pública e 1 Conceitos, 93
privada, 45
2 Funcionamento, 96
1 Conceitos, 46
3 Vantagens e desvantagens, 100
2 Conseguindo confidencialidade, 48
Considerações finais, 101
3 Conseguindo autenticação, 49
Referências, 102
4 Conseguindo confidencialidade e
autenticação, 51 Capítulo 7
5 Vantagens e desvantagens da Certificados digitais, 105
criptografia assimétrica, 52 1 Conceitos, 106
6 Trocando chaves, 53 2 Blockchain, 113
7 Principais algoritmos Considerações finais, 120
assimétricos, 54
Referências, 121
Considerações finais, 57
Referências, 58
Capítulo 8 Sobre o autor, 141

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

6 Criptografia
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento 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).

7
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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).

8 Criptografia
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento 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.

Introdução à criptografia 9
• Criptologia: nome que se dá coletivamente para criptografia e

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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.

10 Criptografia
2 História
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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

X Y Z A B C D E F

A B C D E F G H I

Introdução à criptografia 11
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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
chave de 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).

12 Criptografia
Figura 2 – Processo de criptografia baseado na cifra de Vigenère
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

Chave  W H I T E W H I T E W H I T E W H I T E W H I
Texto claro  D I V E R T T R O O P S T O E A S T R I D G E
Texto cifrado  Z P D X V P A Z H S L Z B H I W Z B K M Z N M

Chave

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-

Introdução à criptografia 13
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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).

14 Criptografia
3 Principais elementos do processo
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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 Método de
Texto claro (P) #$%&! Texto claro (P)
criptografia (C) descriptografia (C)

Chave criptográfica Texto cifrado Chave descriptográfica


(K) Ck(P) (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).

Introdução à criptografia 15
IMPORTANTE

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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-
dos seguros 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.

16 Criptografia
4.1 Cifra de fluxo
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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

TEXTO CLARO 0 0 1 1
ENTRADA →
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).

Introdução à criptografia 17
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
Figura 4 – Processamento por fluxo de bits

Chave (K) Algoritmo para Chave (K) Algoritmo para


geração do geração do
fluxo de bits fluxo de bits

+ +
Texto cifrado
Texto claro (Ci) Texto claro
(Pi) (Pi)

Criptografia Descriptografia

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.

18 Criptografia
Figura 5 – Processamento por blocos
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

b bits b bits

Texto claro Texto claro

Chave (K) Algoritmo de Chave (K) Algoritmo de


criptografia criptografia

Texto cifrado Texto cifrado

b bits b bits

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

Introdução à criptografia 19
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

P1 P2 Pn

K K K
Criptografia Criptografia Criptografia

C1 C2 Cn

Parte A – Modo de criptografia ECB

P1 P2 Pn

IV CN-1
+ + +
K K K
Criptografia Criptografia Criptografia

C1 C2 Cn

Parte B – Modo de criptografia CBC

Fonte: adaptado de Stallings (2014, p. 142-143).

20 Criptografia
5 Criptografia quanto ao número de chaves
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

A 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

Chave única

Texto claro Criptografia Descriptografia Texto claro


Texto cifrado

Fonte: adaptado de Forouzan (2008, p. 963).

Introdução à criptografia 21
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

Par de chaves
Chave pública Chave privada

Texto claro Criptografia Descriptografia Texto claro


Texto cifrado

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.

22 Criptografia
IMPORTANTE
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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

Introdução à criptografia 23
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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.

24 Criptografia
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento 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.

‌ ILVA, Hebert. Uma abordagem baseada em anonimização para privacidade


S
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.

Introdução à criptografia 25
Capítulo 2
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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

27
quando a quantidade de usuários é muito grande. Com isso, o geren-

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

28 Criptografia
criptografia simétrico, aplicando-se a chave secreta. Para que o processo
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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.

Criptografia simétrica 29
PARA SABER MAIS

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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 Circuito cifra-produto ou rotação


Circuito decodificador

Circuito codificador

S1 S5 S9
de 8 para 3
de 3 para 8

S2 S6 S10 P4
P1 P2 P3
S3 S7 S11
S4 S8 S12

Parte A Parte B Parte C

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

30 Criptografia
claro) em 3 bits de saída (texto cifrado). No primeiro estágio, um decodi-
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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

Criptografia simétrica 31
no algoritmo proposto pela IBM chamado “Lúcifer”, porém, diversos

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

32 Criptografia
dois blocos de transposição cíclica, similar à caixa P e às cifras-produto.
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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.

Criptografia simétrica 33
Figura 2 – Processo de criptografia DES

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
Entrada do texto claro Entrada-chave
(64 bits) (64 bits)

Permuta inicial Escolha permuta 1

64 bits 56 bits

K1 48 bits 56 bits
Deslocamento circular
1a rodada Escolha permutada
para a esquerda
64 bits 56 bits

K2 48 bits 56 bits
Deslocamento circular
2a rodada Escolha permutada
para a esquerda
.
64 bits . 56 bits
.
K16 48 bits 56 bits
Deslocamento circular
16a rodada Escolha permutada
para a esquerda
64 bits

Troca de 32 Bits

64 bits

Permutação reversa

Saída do texto cifrado


(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).

34 Criptografia
3.2 Triplo DES
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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 Texto claro


64 bits 64 bits

Criptografar Chave 1 Criptografar Chave 1


DES DES
Triplo DES

Triplo DES

Chave 2 Chave 2
Descriptografar Descriptografar
DES DES

Chave 3 Chave 3
Criptografar Criptografar
DES DES

64 bits 64 bits

Texto cifrado (A) Texto cifrado (B)

Fonte: adaptado de Forouzan (2008, p. 943).

Criptografia simétrica 35
Os ataques conhecidos contra os algoritmos DES e triplo DES, como o

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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).

36 Criptografia
Figura 4 – Processo de criptografia AES
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

Texto claro
128 bits
K0
+

Gerador de chaves cíclicas


K1
1o ciclo
AES

K2 Chave
2o ciclo 128 bits

...
...

K 10
10o ciclo

128 bits
Texto cifrado

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).

Criptografia simétrica 37
• RC4: também faz parte da família de cifras criadas por Ron Rivest,

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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 Blowfish possui 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.

38 Criptografia
Similar ao estudo de Wahid et al. (2018), o estudo de Patil et al.
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

(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

Criptografia simétrica 39
fim (criptografar e descriptografar). Refletindo sobre o aspecto prático

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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 Roberto

K Alice K Roberto

Ana K Ana K Jorge Jorge


...

...

K Teodoro
KDC K Beth
Teodoro Beth

Fonte: adaptado de Forouzan (2008, p. 982).

40 Criptografia
PARA SABER MAIS
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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

Criptografia simétrica 41
afirmações teóricas a respeito das vantagens, das desvantagens e do

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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
utilizada para 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.

42 Criptografia
FOROUZAN, Behrouz A. Comunicação de dados e redes de computadores. 4.
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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.

Criptografia simétrica 43
Capítulo 3
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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,

45
exigiria novos métodos de criptografia, que visam minimizar a neces-

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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.

46 Criptografia
NA PRÁTICA
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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,

Criptografia de chave pública e privada 47


autenticação, integridade (quando usada em conjunto com algoritmos

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

48 Criptografia
invasor obtenha o texto cifrado Y e a chave pública do usuário B (PUb),
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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

X’
PRb’

Invasor

Usuário A Usuário B
Texto claro Algoritmo de Algoritmo de Texto claro
criptografia Texto cifrado descriptografia
Origem (X) Y=E(PUb, X) Destino (X)
X= D(PRb, Y)

PUb Par de chaves PRb


do usuário B
(PUb e PRb)

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).

Criptografia de chave pública e privada 49


Durante o processo em que o usuário A envia uma mensagem para

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

PRa’

Invasor

Usuário A Usuário B
Texto claro Algoritmo de Algoritmo de Texto claro
criptografia Texto cifrado descriptografia
Origem Y=E(PRa, X) Destino
X= D(PUa, Y)

PRa
Par de chaves
do usuário A
PUa
(PUa e PRa)

Fonte: adaptado de Stallings (2014, p. 204).

50 Criptografia
4 Conseguindo confidencialidade e
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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 forma completa,
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.

Criptografia de chave pública e privada 51


Figura 3 – Confidencialidade e autenticação

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
X = Texto claro
Y = Texto cifrado e autenticado
Usuário A Z = Texto cifrado e confidencial Usuário B
Texto X Algoritmo de Y Algoritmo de Z Algoritmo de Y Algoritmo de X Texto
claro claro
Origem criptografia criptografia descriptografia descriptografia Destino

PRa PUb Par de chaves PRb


do usuário B
(PUb e PRb)
Par de chaves PUa
do usuário A
(PUa e PRa)

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

52 Criptografia
públicas geradas. Com isso, é necessário que existam autoridades de
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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).

Criptografia de chave pública e privada 53


O processo para a troca de chaves foi elaborado por Hellman e Diffie.

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

(DES)
ALGORITMO ASSINATURA TROCA DE CHAVE
CRIPTOGRAFIA

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.

54 Criptografia
7.1 Rivest, Shamir e Adleman (RSA)
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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

Para o público
Calculando
a, d e n

Alice Bob
Chave pública a Chave pública d

Texto cifrado
C=Pa(mod n). P=Ca(mod n)
Texto claro Texto claro

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.

Criptografia de chave pública e privada 55


Apesar de o RSA poder ser utilizado para criptografia e descripto-

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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).

56 Criptografia
Outros algoritmos foram desenvolvidos pelos estudiosos El Gamal e
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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

Criptografia de chave pública e privada 57


criptografar uma mensagem grande. Uma estratégia para isso pode ser

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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,

58 Criptografia
Rev. 1, 91 p., mar. 2020. Disponível em: https://nvlpubs.nist.gov/nistpubs/
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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.

Criptografia de chave pública e privada 59


Capítulo 4
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

Troca de chaves
Diffie-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á

61
trancar o baú com o primeiro cadeado, colocado por você e que foi re-

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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/

62 Criptografia
descriptografia. Quando imaginamos um cenário em que dois usuá-
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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,

Troca de chaves Diffie-Hellman 63


as partes podem, através de uma função de cálculo, chegar a um nú-

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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;

64 Criptografia
yb é a chave pública do usuário b, calculada pela função yb = (gxb)
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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 leitura do capítulo 8 do livro Criptografia e
segurança de redes de Willian Stallings (2014).

Troca de chaves Diffie-Hellman 65


2.1.1 Exemplo de Alice e Bob

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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.

66 Criptografia
Acompanhe na figura 1 a troca de chaves entre Alice e Bob.
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

Figura 1 – Exemplo de troca de chaves entre Alice e Bob

1. Alice escolhe: 3. Bob escolhe:


• p, g públicos • Valor xb (secreto)
• Valor xa (secreta)
2. (p, g, ya=(gxa mod p)

ALICE Canal inseguro BOB


4. yb=(gxb mod p)
5. Alice calcula z 6. Bob calcula z
z = (ybxa) mod p z = yaxb mod p

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.

Troca de chaves Diffie-Hellman 67


NA PRÁTICA

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

68 Criptografia
necessidade de autenticação da fonte emissora da comunicação, o que,
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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 de sessã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).

Troca de chaves Diffie-Hellman 69


5 Falta de autenticação

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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,

70 Criptografia
entretanto, acredita que a chave recebida se trata de uma chave
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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.

Troca de chaves Diffie-Hellman 71


Referências

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
‌ IFFIE, W. Whitfield; HELLMAN, Martin E. New directions in cryptography. IEEE
D
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.

72 Criptografia
Capítulo 5
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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,

73
apenas aplica-se a função a um texto original e a saída do processo pro-

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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).

74 Criptografia
Uma função de resumo criptográfico hash produz uma espécie de
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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

Tamanho variável - L bits

Mensagem (P, L)

Função hash
Valor hash h

Tamanho fixo
(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

Hash 75
redigisse um testamento para determinar sua partilha de bens após a

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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.

76 Criptografia
• Resistência a colisões fracas: essa propriedade tem objetivo de
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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

Hash 77
dessa analogia, essa propriedade visa garantir que qualquer al-

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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 (SHA-1), 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

78 Criptografia
terceiro bloco, e assim por diante. Com isso, a saída final, após o proces-
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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 1 Bloco 2 Bloco 3 Bloco 4 Bloco 5 Bloco 6

Valor inicial 1 Função Função Função Função Função Função Hash final
Valor inicial 2 hash hash hash hash hash 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).

Hash 79
Essa chave é conhecida apenas pelas duas partes da comunicação e,

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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:

80 Criptografia
1. Criação do MDC, em que MDC (x) = h(x).
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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 calcula-se: 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

Hash 81
representados por h(k,x) ou hk(x), para a geração do digest. Logo, o di-

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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, aplicando-se


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 mensagem
será 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
hash-based 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

82 Criptografia
um projetista. Esse requisito é fundamental para a criação de boas fun-
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

çõ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.]).

Hash 83
PARA SABER MAIS

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

84 Criptografia
comuns, com a finalidade de encontrar, dentro de uma base de dados,
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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

Hash 85
exclusivo, inviabilizando o ataque por tabela arco-íris e outros ataques

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

86 Criptografia
são consideramos mais seguros que os MD. Mais especificamente,
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

os algoritmos SHA-256 até o SHA-512 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 SHA-512 é mais
seguro que o MD2, o MD4, o MD5, o SHA-160 e o SHA-256. Contudo, o
SHA-512 introduz um trade-off (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 SHA-512 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.

Hash 87
Considerações finais

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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/decoded-examples-
of-how-hashing-algorithms-work/. Acesso em: 26 mar. 2020.

DWORKIN, Morris J. SHA-3 Standard: permutation-bhsed Hash and extenda-


ble-output 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: McGraw-Hill, 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/

88 Criptografia
rainbow-table-password-attack-o-que-e-e-como-voce-se-protege-dele/. Acesso
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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.
2319-7064, 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/Hashing-Functions.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 EAP-pwd. 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/roubo-de-
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/4-Hashing-TratamentoCo-
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

Hash 89
90
Pearson, 2015.
São Paulo: Pearson, 2012.

Criptografia
TANENBAUM, Andrew S. Sistemas operacionais modernos. 4. ed. São Paulo:
TANENBAUM, Andrew S.; WETHERAL, David. Redes de computadores. 5. ed.

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
Capítulo 6
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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).

91
Em sistemas computacionais, as mensagens ou documentos tam-

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

92 Criptografia
vantagens e desvantagens. Além disso, vamos entender como o proces-
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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

COMP. BANCO AGÊNCIA N. DA CONTA N. DO CHEQUE R$ 100,00


000 123 523 123456-5 000002

PAGO POR ESSE


CHEQUE A QUANTIA DE: Cem Reais
E CENTAVOS ACIMA

A OU À SUA ORIGEM

São Paulo , 10 DE Junho DE 2020


BANCO XYZ
XXXXXX CLIENTE DESDE
CPF: 000.000.000-01 05/2020

Assinaturas digitais 93
Conforme apresentamos anteriormente, um message authentica-

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

94 Criptografia
uma possível fraude. Nesse método, o banco precisa ter uma cópia da
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

assinatura previamente cadastrada para a comparação.

Figura 2 – Exemplo de um cartão de autógrafos bancário

Cartão de autógrafos
BANCO XYZ Pessoa física
Data (dia/mês/ano)
10/05/2020
Nome do titular (nome completo, sem abreviatura)
XXXXXX
Assinatura do titular (Assinar duas vezes iguais)

Assinatura Assinatura

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” é

Assinaturas digitais 95
o cartão de autógrafo do cliente armazenado no banco, dessa forma,

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

96 Criptografia
invertendo-se a ordem das chaves. A mensagem é assinada com a cha-
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

ve privada do usuário e validada com a chave pública do emissor da


mensagem (FOROUZAN, 2008).

Figura 3 – Assinatura de uma mensagem

Chave privada de alice Chave pública de alice

Alice Bob Aceita

Rejeita
Transmissão
Texto claro Criptografia de dados Descriptografia Texto claro

Assinatura Validação Resultado

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).

Assinaturas digitais 97
Figura 4 – Processo de assinatura do digest de uma mensagem

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
Processo de assinatura Processo de verificação

Chave privada Aceita Rejeita


de Alice Chave pública
de Alice
Alice Bob

Iguais
Mensagem Transmissão Mensagem
de dados

Mensagem
“Digest” e assinatura “Digest” “Digest”
Função hash 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).

98 Criptografia
2.1 Ciclo de vida de uma assinatura digital
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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 pelos provedo-


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.

Assinaturas digitais 99
PARA SABER MAIS

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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).

100 Criptografia
IMPORTANTE
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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

Assinaturas digitais 101


assinatura e verificação. Entendemos também que o uso das funções

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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.

102 Criptografia
SINGH, Shivendra; IQBAL, Md Sarfaraz; JAISWAL, Arunima. Survey on techni-
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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.

Assinaturas digitais 103


Capítulo 7
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

Certificados digitais

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.

105
Um certificado digital é um documento de informações similar a

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

106 Criptografia
transações entre sistemas e serviços com confidencialidade, integrida-
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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

Certificados digitais 107


para garantir que um site ou sistema realmente seja autêntico,

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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.

108 Criptografia
Figura 2 – Informações gerais do certificado digital
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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.

Certificados digitais 109


Figura 3 – Detalhes do certificado

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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.

110 Criptografia
Figura 4 – Caminho de certificação
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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, dessa forma, 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

Certificados digitais 111


certificação. Um controle que geralmente é adicionado consiste na in-

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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).

112 Criptografia
Qualquer usuário poderá baixar o certificado assinado por uma auto-
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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 B
Usuário Chave pública
A Ka

Gravação
B Kb
... ...
Solicitação
Anúncio ao público Kb

Emissão
KAC
Certificado
Autoridade de
certificação (AC)

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

Certificados digitais 113


bitcoin. Com a estrutura de blockchain é possível garantir a segurança

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

114 Criptografia
do blockchain. Diferente dos certificados digitais, esse modelo de va-
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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 divide em 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

Certificados digitais 115


partir dessa ligação entre os blocos, outro hash é obtido, combinando

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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

116 Criptografia
submissões de pares dos nós filhos de hashes, até que reste somente um
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

ú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
HASH ABCD
bloco

HASH AB Nós pais HASH CD

HASH A HASH B Nós filhos 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

Certificados digitais 117


a imutabilidade de qualquer informação registrada em uma estrutura de

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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,

118 Criptografia
por meio de seu sistema distribuído, identificar o agrupamento de nós
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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.]).

Certificados digitais 119


Notadamente, as vantagens das blockchain podem ser destacadas

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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 é

120 Criptografia
garantir que a chave pública utilizada para assinatura de um documento
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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.

Certificados digitais 121


DIAS, Rui Pedro das Neves. Análise de plataformas blockchain. Dissertação

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
(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.

122 Criptografia
Capítulo 8
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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.

123
Uma infraestrutura de chave pública (ICP) (em inglês, public key

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
infrastructure – PKI) é necessária para que o processo de validaçã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).

124 Criptografia
O principal objetivo de uma ICP é atender à necessidade de iden-
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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).

Infraestrutura dos certificados digitais 125


O certificado emitido para um usuário cria um vínculo com a sua

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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 Identificador exclusivo do certificado na AC, quando somado ao nome da CA


(número de série) torna o certificado único

Signature algorithm
Algoritmo utilizado para assinar o certificado do usuário
(algoritmo da assinatura)

Issuer (emissor) Nome do emissor do certificado no padrão X.500

(cont.)

126 Criptografia
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

ATRIBUTO DESCRIÇÃO

Validity period
Data de início e término da validade do certificado
(período de validade)

Subject name
Entidade para qual o certificado foi emitido
(nome de sujeito)

Public key A chave pública da autoridade certificadora e identificação do algoritmo que


(chave pública) foi utilizado

Issuer ID
Identificação exclusiva opcional para o emissor do certificado
(Id do emissor)

Subject ID
Identificação exclusiva opcional para entidade certificada
(Id do sujeto)

Extensions (extensões) Diversas extensões utilizadas nos certificados

Assinatura do certificado emitido, assinado pela chave privada da Autoridade


Signature (assinatura)
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 incluem o nome do usuário, ende-
reço de rede, entre outros atributos e informações sobre os usuários
(TANENBAUM; WETHERAL, 2012).

Infraestrutura dos certificados digitais 127


PARA SABER MAIS

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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).

128 Criptografia
De forma similar à emissão de uma cédula de identidade (RG), que
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

é 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 Autoridade de


MJ certificação raiz

Secretaria de Segurança Pública Autoridade de certificação


SSP intermediária

Instituto de identificação Autoridade de registro (AR)

RG 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.

Infraestrutura dos certificados digitais 129


Figura 2 – Árvore de infraestrutura de chave pública

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
AC RAIZ
A ACR2 é aprovada
Sua chave pública é
71ADGQIWERV
Assinatura da AC Raiz
ACR1 ACR2

A AC6 é aprovada
Sua chave pública é
984AD4Q15965
AC1 AC2 AC3 AC4 AC5 AC6
Assinatura da 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.

130 Criptografia
Em termos simples, a autoridade certificadora é um terceiro confiá-
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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.

Infraestrutura dos certificados digitais 131


• Tipo S: utilizado exclusivamente para garantir o sigilo ou cripto-

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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,

132 Criptografia
uma AC pode emitir um certificado SSL que deve ser instalado no ser-
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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).

Infraestrutura dos certificados digitais 133


134
Figura 3 – Configuração do repositório de certificados no navegador Internet Explorer

Criptografia
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
Um repositório centralizado também pode ser facilmente mantido e
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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).

Infraestrutura dos certificados digitais 135


Utilizar uma LCR implica que, ao validar um certificado, deve-se

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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ção implicam 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

136 Criptografia
certificação) partindo do certificado até a AC-Raiz. A verificação da ár-
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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.

Infraestrutura dos certificados digitais 137


NUNES, Delio Silva. Armazenagem. Ufrj, 2007. Disponível em: https://www.gta.

Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.
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.

138 Criptografia
Sobre o autor
Material para uso exclusivo de aluno matriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o compartilhamento digital, sob as penas da Lei. © Editora Senac São Paulo.

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.

141

Você também pode gostar