Você está na página 1de 12

UNIP CAMPUS CIDADE UNIVERSITÁRIA

CURSO: CIÊNCIA DA COMPUTAÇÃO

APS - AS TÉCNICAS CRIPTOGRÁFICAS, CONCEITOS, USOS E APLICAÇÕES

5º SEMESTRE

EDUARDO MAXIMINIANO CARDOSO SANTOS

RA: T4077F7

SÃO PAULO - 2018


2. ÍNDICE

1. Capa …………………………………………………………………… 1
2. Índice …………………………………………………………………... 2
3. Objetivo ………………………………………………………………... 3
4. Introdução ……………………………………………………………... 4
5. Criptografia (conceitos gerais) ………………………………………. 6
6. Técnicas criptográficas mais utilizadas e conhecidas ……………. 8
7. Bibliografia ………………………………………………………….... 11

2
3. OBJETIVO

Este trabalho visa mostrar um pouco da história da criptografia, desde o Egito


até os tempos modernos. Informando como as técnicas foram evoluindo de acordo
com as necessidades, principalmente o avanço que teve nos períodos de guerra do
século XX.
São relatados três tipos distintos de técnicas de criptografia, juntamente com
uma explicação de como funcionam algumas implementações dessas técnicas.
Seus pontos fortes e fracos também são apresentados, mostrando diferenças entre
elas.

3
4. INTRODUÇÃO

A palavra criptografia é a junção de duas palavras gregas, ​kryptos


(escondido) + ​graphein (escrita), sendo então o conceito de escrever algo de forma
que pessoas indesejadas não consigam ler a verdadeira mensagem.

Utilizamos diversas técnicas para esconder mensagens desde os tempos


antigos, onde o envio de mensagens com informações privilegiadas não poderiam
ser lidas por povos inimigos. Utilizado muito nos tempos de guerra, onde que
mesmo se o mensageiro fosse capturado, a mensagem que ele carregava não
poderia ser utilizada por outros.

Alguns documentos egípcios demonstram uso de criptografia, escrevendo os


hieróglifos de forma diferente da padrão.

Um método antigo que é bastante conhecido chama-se Cifra de César. Esta


técnica utilizava um bastão de um diâmetro determinado, enrolava-se uma fita nela
para escrever a mensagem. Para ler a mensagem, era necessário que a pessoa
com a fita tivesse um bastão com o mesmo diâmetro, caso contrário a mensagem
não faria sentido. Para quebrar tal método, bastava testar diversos bastões com o
diâmetros diferentes, até que algum fizesse sentido.

Com o aumento de dados que não deveriam ser acessados por qualquer
pessoa, novas técnicas foram desenvolvidas, com diversos tipos de mentalidades
envolvidas, como ter a possibilidade ou não de recuperar o que foi escondido. Além
disso, também temos a preocupação de como as pessoas autorizadas devem
acessar tais dados sensíveis, se elas podem tanto criar quanto ter tal acesso ou
não.

A criptografia vem para nos ajudar em manter tal sigilo, e por isso mesmo
continuamos procurando técnicas mais eficientes de atingirmos os nossos objetivos.
Sempre pensando na segurança e velocidade em que podemos recuperar o que foi
criptografado.

4
Os tipos de dados que devem ser mantidos em sigilo são variados,
transações comerciais, dados sobre pacientes, senhas entre outras. Mas mesmo o
uso da criptografia não é capaz de definir segurança. As técnicas para criptografar
são apenas uma parte de um todo para armazenar e guardar informações com
segurança.

Tivemos um grande avanço nas técnicas de criptografia nos períodos de


guerra, especialmente na Segunda Guerra Mundial, onde ocorreu um grande
avanço no uso de computadores mecânicos e eletromecânicos. Podemos dizer até
que sem estes avanços, o resultado poderia ter sido diferente, já que os alemães
estavam utilizando métodos que seriam virtualmente impossíveis de serem
quebrados sem a ajuda das máquinas.

Entretanto, os avanços e pesquisas em técnicas criptográficas não pararam


com o fim da guerra, tendo como foco diversos estudos nos E.U.A. em algoritmos
para aumentar o nível de segurança que poderiam ser utilizados pelas novas
máquinas de circuito integrado da época.

Algumas das técnicas mais comuns utilizadas hoje em dia são explicadas nas
próximas páginas deste trabalho.

5
5. CRIPTOGRAFIA (CONCEITOS GERAIS)

Para que um método de criptografia seja útil, é necessário que certos


objetivos sejam cumpridos, caso contrário, não estaria mantendo sua função de
ocultar uma informação.

Os pontos necessários para que um método de criptografia possua algum


valor de uso são: confidencialidade, integridade, não-repudiação, autenticação.

Confidencialidade: Assegura que não é possível ler a mensagem sem que


seja um receptor desejável, ou seja, somente as pessoas com quem você deseja
compartilhar devem ser capazes de entender o conteúdo do que foi criptografado.

Integridade: Assegura que o receptor receba uma mensagem que não foi
alterada. Isso quer dizer que a técnica utilizada deve garantir que não seja possível
alterar os dados reais por meio de algum terceiro durante a transmissão entre quem
criptografou e quem está recebendo o conteúdo criptografado.

Não-repudiação: Mecanismo para garantir que a mensagem foi realmente


enviada por quem diz ter enviado. Não deve ser possível se passar por outra pessoa
ao enviar uma mensagem criptografada.

Autenticação: A capacidade de identificar ambos os lados. Devemos ser


capaz de identificar quem criptografou e quem é capaz de descriptografar.

Também existe um outro ponto importante quando estamos falando de


métodos que possuem chaves, que é a troca de chaves. Deve ser definido um
método seguro de enviar as chaves que abrem e/ou criptografam um determinado
conteúdo, para que ambos os lados sejam capazes de realizar suas funções.

Se pensarmos em conceitos, a criptografia é um processo com poucos


passos. Pegamos o texto puro que queremos esconder, jogamos em uma função
para criptografar, e recebemos de volta um texto incompreensível. Dependendo da
técnica utilizada na função, se colocarmos esse texto criptografado na função de
criptografia, podemos ter o texto original de volta. Entretanto, um método desses

6
não é tão bom nos dias atuais, pois qualquer pessoa poderia ter acesso ao conteúdo
original.

Também podemos pensar em como é possível dividir os sistemas de


criptografia utilizados hoje.

● Chave simétrica (chave secreta)


● Chave assimétrica (chave pública)
● Função hash

Um algoritmo de chave simétrica possui apenas uma chave para criptografar


e descriptografar um texto. Qualquer pessoa que tenha acesso à chave também tem
acesso à qualquer conteúdo criptografado com a mesma. Estes métodos possuem
um ponto forte em confidencialidade.

É necessário que ambos os lados se comunicando possuam a chave secreta


para que a comunicação ocorra. Todavia, este é um grande problema, pois o
compartilhamento de chave precisa ser feito de forma segura, garantindo que
pessoas não-autorizadas não consigam interceptar ou roubar tal chave.

Os algoritmos de chaves assimétricas não utilizam uma chave única, como


nos de chave simétrica. São utilizados duas chaves, uma chave pública, onde
qualquer pessoa tem acesso e poderia realizar apenas uma tarefa com tal chave. A
outra chave é a chave privada, que é capaz de realizar a operação contrária à
pública.

Por meio de funções matemáticas é que os algoritmos de chaves


assimétricas se aproveitam. Essas funções são fáceis de calcular quando se sabe
os números corretos a serem utilizados, mas consomem muitos recursos para
realizarmos o processo contrário. Geralmente são utilizados multiplicação/fatoração
e exponencial/logaritmo para essas funções de uma direção.

7
O terceiro tipo funciona de forma bem diferente dos outros dois, pois não é
possível recuperar a informação armazenada. Uma função hash não utiliza de chave
para criptografar um texto, e a função retornará sempre uma sequência de
caracteres de tamanho fixo, não importando o tamanho da entrada.

Por conta da forma como os algoritmos com função hash funcionam, não é
possível extrair o conteúdo original jogando a cadeia de caracteres encriptada de
volta à função, e também não é possível extrair por meio de uma chave, pois não
existe chave neste método.

O método hash possui um ponto forte na integridade, já que se qualquer


caractere for alterado, um hash totalmente diferente será gerado.

6. TÉCNICAS CRIPTOGRÁFICAS MAIS UTILIZADAS E CONHECIDAS

Diversos algoritmos foram criados para os três tipos de técnicas definidos no


tópico anterior, sendo que agora iremos descrever algumas alguns destes
algoritmos.
Um dos primeiros e mais conhecidos algoritmos de chave simétrica é o ​DES
(​Data Encryption Standard - Padrão de Encriptação de Dados, em tradução livre),
que foi criado nos anos 70 pela IBM. Atualmente este algoritmo é considerado
inseguro, porém foi um grande incentivador para que cada vez mais técnicas fossem
desenvolvidas e melhoradas.
Seu problema de segurança acontece por conta do tamanho predefinido de
chave, sendo este tamanho de exatos 56 bits.
Este algoritmo funciona separando o texto original em pequenos blocos de
tamanho fixo (64 bits), e aplica a estes blocos uma série de operações, até que
tenha uma saída criptografada de mesmo tamanho que a entrada. Além disso é
necessário a utilização de uma chave (a tal chave simétrica) para fazer parte do
processo de encriptação. A chave na verdade possui tamanho de 64 bits, porém
apenas 56 bits são utilizados no algoritmo.

8
Um outro algoritmo muito conhecido de chave simétrica é chamado de ​AES
(​Advanced Encryption Standard - Padrão de Encriptação Avançado, em tradução
livre), ou também conhecido por seu nome original ​Rijndael​, e surgiu em 2001 em
uma seleção de métodos de criptografia mais seguros que o, até então em uso,
DES.
Um grande diferencial na forma de seu funcionamento é o tamanho dos
blocos em que divide o texto original. Enquanto o DES divide em blocos de 56 bits, o
algoritmo de AES divide em blocos de 128 bits. Também possui diferença no
tamanho da chave simétrica utilizada. São 56 bits do DES contra 128/192/256 bits
possíveis para o AES.
Uma outra diferença entre os dois métodos é que o DES utiliza de uma cifra
de Feistel para dividir os blocos em duas partes antes de começar o processo de
criptografia. O método AES não utiliza desta técnica, mas de
permutação-substituição, onde uma série de permutações e substituições são
usadas para criar os blocos criptografados.
Sendo um dos primeiros algoritmos de chave assimétrica, o método ​RSA
(Rivest-Shamir-Adleman), foi apresentado no final dos anos 70 pelos pesquisadores
com sobrenomes que compõe o nome da técnica. Utiliza do princípio de que existe
uma dificuldade na fatorização do produto de dois números primos grandes,
conhecido como o problema de fatoração de inteiros em teoria dos números.
Este sistema funciona com duas chaves. A chave privada é formada com
base em dois números primos bem grandes, e é utilizada para descriptografar o que
as mensagens geradas com a chave pública.
Por ser um método considerado lento para processar, não é muito utilizado
em dados reais, mas sim para transferir chaves privadas de métodos simétricos.
O método RSA possui apenas quatro passos para funcionar. A geração da
chave, a distribuição da chave, a encriptação e a decriptação.
A geração da chave utilizará dois números primos grandes, onde passarão
por diversos cálculos matemáticos. No meio deste processo somos capaz de
conseguir as duas chaves necessárias. Para a distribuição, deve-se dar acesso à
uma das duas chaves, e manter em segredo a outra. Dependendo da chave que é
pública, todos com acesso poderão criptografar um determinado conteúdo, mas só

9
quem gerou as duas chaves (e por isso possui acesso à chave privada) poderá ler o
conteúdo original. Se for o contrário, apenas quem criou as chaves poderá gerar
conteúdo criptografado, e todos os outros poderão ler seu conteúdo. Este último jeito
de utilizar as chaves pode ser utilizado para dar maior segurança sobre a origem de
quem criou o conteúdo criptografado.
Um outro método de chave pública é chamado de troca de chaves de
Diffie-Hellman (DH), que surgiu por volta de 1976. A proposta é a utilização de
chaves (ou cores, na forma como normalmente é representado) públicas que devem
ser combinadas com uma secreta.
O funcionamento do método DH é bem diferente do método RSA, onde são
gerados duas chaves. Primeiramente, ambos os lados da comunicação devem
possuir uma mesma cor (chave pública). Com base nessa cor, será misturado uma
cor secreta de cada lado. O resultado deve ser enviado ao outro lado, que então
misturará sua cor secreta com o resultado que recebeu. Após eles misturarem essas
duas cores, ambos os lados obterão uma cor igual. Isso ocorre sem nenhum dos
dois lados (ou qualquer outra pessoa que intercepte a troca) seja capaz de descobrir
qual a cor secreta que foi utilizada.
Como explicado anteriormente, temos também o método de função hash para
criptografar determinada informação. Diferente dos outros métodos, não é possível
recuperar o que foi passado por esta função. A única forma de descobrir qual foi a
entrada original é por meio de força bruta, testando todas as combinações possíveis,
até que a saída seja a mesma.
São ótimas técnicas para armazenarmos senhas, pois dessa forma não
temos as senhas em si gravadas na base de dados, mas sim o resultado hash que
foi gerado daquela senha. Entretanto, por mais segura que seja, existe uma mínima
chance de que cadeias de caracteres diferentes gerem um mesmo valor hash.
Uma função hash bem conhecida é chamada de MD5, criada em 1991, que
serve para produzir valores hash de 128 bits. Por mais que seja um método muito
conhecido, não apresenta muita segurança, pois sofre de problemas de colisão
(repetição de valor hash para entradas diferentes).
O algoritmo divide a entrada em blocos de 512 bits, e caso algum bloco tenha
menos que isso, o algoritmo possui uma forma de preencher este bloco até que

10
fique com o tamanho esperado. Após ter seus blocos do formato desejado, serão
realizados quatro passos, onde cada passo possui cerca de 16 operações baseadas
em uma função não-linear.
Com os problemas de segurança apresentados no MD5, muitos especialistas
recomendaram a utilização do padrão SHA-1 na época.
O SHA-1 (​Secure Hash Algorithm 1 - Algoritmo de Hash Seguro 1, em
tradução livre) foi desenvolvido em 1995. Possui uma saída de 160 bits (40 dígitos
em hexadecimal), e realiza uma divisão também em blocos de 512 bits.
Por mais que sua saída seja maior que o MD5, os dois algoritmos possuem
muita coisa em comum, o que significa que o problema de colisão do primeiro
algoritmo também acontece no SHA-1, só que com menor frequência.

7. BIBLIOGRAFIA

M. DAMICO, Tony - A Brief History of Cryptography - 2009. Disponível em:

<​http://www.inquiriesjournal.com/articles/1698/a-brief-history-of-cryptography​>.
Acesso em: 11/01/2018.

C. KESSLER, Gary - An Overview of Cryptography - 2018. Disponível em:

<​https://www.garykessler.net/library/crypto.html​>. Acesso em: 26/03/2018.

ROUSE, Margaret - What is cryptography? - 2014. Disponível em:

<​http://searchsoftwarequality.techtarget.com/definition/cryptography​>.

Acesso em: 26/03/2018.

Sherpa Software - The Evolution of Cryptography. Disponível em:

<​https://sherpasoftware.com/blog/the-evolution-of-cryptography/​>.

Acesso em: 15/04/2018.

11
SCHNEIER, Bruce - The Legacy of DES - 2004. Disponível em:

<​https://www.schneier.com/blog/archives/2004/10/the_legacy_of_d.html​>.

Acesso em: 03/04/2018.

WANG, Xiaoyun; YIN, Yiqun Lisa; YU, Hongbo - Finding Collisions in the Full SHA-1.
p.1-2. MIT - 2005.

TAO, Xie; LIU, Fanbao; FENG, Dengguo - Fast Collision Attack on MD5. p.1-4.
China, 2013.

12

Você também pode gostar