Escolar Documentos
Profissional Documentos
Cultura Documentos
O objetivo desse projeto é demonstrar como a criptografia aplicada e teoria funcionam, para a
demonstração prática foi desenvolvido uma aplicação para demonstrar como as mensagens
são criptografadas. Tendo como conteúdo de aprendizagem – conceitos básicos de
Criptografia (teoria e prática) e programação. Em conformidade com a proposta de iniciação
científica, até o presente momento foram realizadas as etapas: a) Levantamento Bibliográfico:
Foi pesquisado sobre as diferentes formas de criptografias que existem, como aplicá-las em
um projeto e a importância de usar uma criptografia. O levantamento foi feito em diversos
sites, artigos científicos e livros sobre o assunto. b) Desenvolvimento da aplicação: O
desenvolvimento da aplicação já foi concluído e já foram realizados testes. A interface foi
planejada para ser de fácil uso e entendimento, consistindo apenas em um input para a
mensagem do usuário, composto por um campo onde o usuário pode escolher entre
“encriptação” e “desencriptação”, e três opções de criptografia (MD5, SHA e AES) e um
output para mostrar a mensagem encriptada. c) Testes da aplicação: Foram realizados testes
na aplicação com diversos tipos de frases, tanto no modo “encriptação” e “desencriptação”
com as três opções de criptografias propostas. d) Coleta de resultados: afim de demonstrar os
resultados, foi montada uma tabela para comparar como as criptografias se comportam. e) Por
fim foi apresentado uma conclusão e propostas de trabalhos futuros.
LISTA DE FIGURAS
1 INTRODUÇÃO.................................................................................................................6
2 OBJETIVOS......................................................................................................................7
3 REFERENCIAL TEÓRICO............................................................................................8
3.1 SEGURANÇA.............................................................................................................8
3.2 CRIPTOGRAFIA.........................................................................................................9
3.2.1 História.................................................................................................................9
3.3.1 MD5....................................................................................................................10
3.3.2 RSA.....................................................................................................................11
3.3.3 AES.....................................................................................................................12
4 METODOLOGIA............................................................................................................16
5 RESULTADOS................................................................................................................18
5.3 TESTES......................................................................................................................22
6 CONCLUSÃO..................................................................................................................25
7 CRONOGRAMA.............................................................................................................26
REFERENCIAS......................................................................................................................27
1 INTRODUÇÃO
A criptografia é algo fundamental nos dias de hoje, qualquer coisa que fazemos, seja
dentro da internet ou fora, a criptografia está envolvida, é importante todo usuário e
programador saber como funciona um algoritmo de encriptação, não em níveis avançados
com todas as equações matemáticas, mas pelo menos o básico da criptografia. Como ela é
utilizada, como ela está envolvida no dia-a-dia, o que está criptografado.
3.1 SEGURANÇA
Garantir a segurança da informação em ambiente digital constitui, cada vez mais, uma
preocupação à escala mundial, seja por parte de organismos públicos, privados, universidades,
empresas e até pelos cidadãos, de forma individual ou coletiva. Na realidade, os riscos e
ameaças não conhecem fronteiras de natureza geográfica, linguística, política ou qualquer
outro tipo de barreiras. O que se verifica é que da mesma forma que aumenta a quantidade de
informação em formato digital disponível, nomeadamente na Internet, também se verifica um
aumento contínuo das ameaças e dos ataques à segurança da informação digital, levando
também a um crescimento das estratégias de promoção da segurança e redução do risco.
(PEREIRA, 2005).
O uso cada vez amplo e disseminado de sistemas informatizados para a realização das
mais diversas atividades, com a integração destes sistemas e de suas bases de dados por meio
de redes, é um fato determinante da sociedade da informação. Contudo, este universo de
conteúdos e continentes digitais está sujeito a várias formas de ameaças, físicas ou virtuais,
que comprometem seriamente a segurança das pessoas e das informações a elas atinentes,
bem como das transações que envolvem o complexo usuário-sistema-informação. A
tecnologia da informação é capaz de apresentar parte da solução a este problema, não sendo,
contudo, capaz de resolvê-lo integralmente, e até mesmo contribuindo, em alguns casos, para
agravá-lo. Nos ambientes organizacionais, a prática voltada à preservação da segurança é
orientada pelas chamadas políticas de segurança da informação, que devem abranger de forma
adequada as mais variadas áreas do contexto organizacional, perpassando os recursos
computacionais e de infraestrutura e logística, além dos recursos humanos. (MARCIANO,
2016).
3.2 CRIPTOGRAFIA
3.2.1 História
Desenvolvida por Arthur Scherbius em 1918, a Enigma levantou um grande interesse
por parte da marinha de guerra alemã em 1926, quando passou a ser usado como seu principal
meio de comunicação e ficaram conhecidas como Funkschlüssel C. Em 1928, o exército
elaborou sua própria versão, a Enigma G, e passou a ser usado por todo o exército alemão,
tendo suas chaves trocadas mensalmente.
A criptografia passou a ser usada em larga escala por todas as ações, principalmente
em épocas de guerra, tal como durante a Guerra Fria, onde Estados Unidos e União Soviética
usaram esses métodos a fim de esconder do inimigo suas ações e movimentações,
criptografando-as e impedindo que outros que não possuíssem a chave pudessem ler,
forçando-os a usar diversos métodos para quebrar os códigos de criptografia.
Depois disso surgiram diversos tipos de criptografia, tais como a pôr chave simétrica,
por chave assimétrica e por hash (podemos citar ainda a criptografia quântica, que ainda está
em fase de testes). (CASTELLÓ; VAZ, 2016).
Criado em 1977 por Ron Rivest, Adi Shamir e Len Adleman, é um dos algoritmos de
chave assimétrica mais utilizados. Seu funcionamento consiste na multiplicação de 2 números
primos muito grandes para a geração de um terceiro número. Para quebrar essa criptografia,
seria necessário a fatoração desse número para encontrar os 2 números primos que o geraram,
porém, para isso é necessário um poder muito alto de processamento, o que acaba
inviabilizando a tarefa. A chave privada são os dois números primos e a pública é o terceiro
número.
O RSA, por ser um método de chave pública, permite que qualquer usuário codifique
mensagens, mas como a chave de decodificação é secreta, só o destinatário legítimo poderá
decodificá-la. A impossibilidade de quebrar a chave de decodificação é possível pela não
existência de algoritmos eficientes para a fatoração de inteiros em fatores primos, sobre todo,
se o número de algarismos é 100 ou maior. O tempo de codificação de uma mensagem é
praticamente desprezível, mas o tempo de decodificação pode tornar o processo inviável.
(SILVA, 2016).
3.3.3 AES
Uma pesquisa exploratória ajuda o pesquisador, a saber, quais das várias opções se
aplicam ao problema de pesquisa. Além disso, poderá também auxiliar a estabelecer as
prioridades a pesquisar. As prioridades poderão ser estabelecidas porque uma particular
hipótese explicativa surgida durante a pesquisa exploratória parecerá mais promissora do que
outras. Além do mais, a pesquisa exploratória poderá gerar informações sobre as
possibilidades práticas da condução de pesquisas específicas. (MATTAR, 2015).
Assim sendo, este projeto inicialmente foi uma pesquisa exploratória, que buscou
estudar os termos-chave que norteiam a proposta desta pesquisa. Em seguida foram estudados
materiais teóricos de diversos assuntos, os quais estão relacionados com o escopo do trabalho,
envolvendo áreas como: Linguagem de Programação C++, Criptografia e a utilização de
bibliotecas como: wxWidgets e cryptopp.
A pesquisa bibliográfica deu início com alguns artigos científicos sobre o assunto.
Parte da pesquisa também foi feita através de sites na internet, mas a maior parte da pesquisa
consiste em artigos científicos.
Os softwares utilizados nesse projeto foram: Emacs, Git e duas bibliotecas externas
que não são padrões da linguagem C++, sendo elas wxWidgets e cryptopp.
A camada de “view” cuida de toda parte gráfica do software, o primeiro arquivo que é
executado dessa camada é o “window.cpp”, aqui será criado a janela principal do software.
Figura 7 - Parte do código da tela incial do software
Como pode ser visto na Figura 7, ele necessita de mais dois arquivos para poder criar a
janela principal. O “window.h” e o “windowFrame.h”. O arquivo “window.h” contém apenas
um único método (OnInit) utilizado para criar a janela do software.
E por fim, o botão “Salvar” e “Sair”, o botão “Salvar” irá salvar o conteúdo gerado
como output e grava um arquivo de texto em uma pasta de escolha do usuário, já o botão sair
tem a funcionalidade de fechar da aplicação.
Figura 9 - Teste da aplicação em desenvolvimento
No arquivo “cryptography.h” está contido toda a descrição dos métodos usados para
encriptar as mensagens, já o arquivo “cryptography.cpp” está contida toda a implementação
dos métodos descritos no “cryptography.h”.
Foi realizado uma série de testes com a finalidade de comparar os resultados gerados e
obtidos através do software desenvolvido.
O segundo teste, foi realizado com o algoritmo AES, onde foi utilizado a mesma
mensagem “testando o software”, e cifrando ela utilizando um codificador de base64 e o
tamanho da chave é 16bytes. O AES pode utilizar outros tamanhos para cifrar as mensagens,
como por exemplo: 16, 24 ou 32 bytes. O resultado pode ser visto no campo Output string da
Figura 12.
Já o último teste, foi realizado com o algoritmo de cifragem SHA. Esse algoritmo está
cifrando a mensagem a mesma mensagem “testando o software” em quatro formas diferentes.
SHA1, SHA224, SHA256 e SHA512, pois são os tipos que o software encripta as mensagens
colocadas pelo usuário. O resultados podem ser visto no campo Output string da Figura 13.
Figura 13 - Teste com algoritmo SHA
A fim de comparar os resultados obtidos pelo software, foi montada uma tabela para
ter uma visão geral dos resultados obtidos por cada tipo de criptografia. Na Figura 14 está
sendo apresentado o resultado da frase “testando o software” nas criptografias SHA1,
SHA224, SHA256, SHA512, AES e MD5.
Tip Resultado
o
SH F1BDD672EDA0DC626C8E294392CB3B0DED194304
A1
SH 19407AD9AB3894244CF9A87D41AE0D81EB7AE5177713C57043C984B8
A22
4
SH C24660DB1BB7D02C9217D52A3CD28D0FA4E2FBFD1C777C69969C289BD3DE3AAB
A25
6
SH 66E2D12FD5FB2EC949CB950719CC65015C07A075AEAC2470E66DD1F54EB6CD0501C86540F44FD6E
A51 833E7C288498EE066710AEE82808B89E8498A4F7C9B6A5DFB
2
AE x2aRmGaTvrMkYEdJ6Q0E7Ymqxx0MhrmWFX6swVK1lo8=
S
MD 44699E00F52DF02B75CB6539AC861550
5
6 CONCLUSÃO
A criptografia é uma área extremamente importante para segurança digital, sem ela
nossos dados pessoais seriam expostos na internet facilmente e isso poderia gerar problemas
gravíssimos. Como por exemplo um banco que não tem um sistema de proteção para guardar
suas informações, que não implementa algoritmos de criptografia robustos e seguros em seus
sistemas. Esses bancos sofreriam invasões frequentemente de pessoas maliciosas. Assim, é
extremamente importante o estudo da criptografia em sistemas de informações, para que todas
as informações privadas seguras, fiquem longe de pessoas mal-intencionadas.
Mediante a criação do software para esta pesquisa, foi possível demonstrar a diferença
dos tipos de criptografias SHA1, SHA224, SHA256, SHA512, AES e MD5. A interface do
software foi projetada para ser simples e com fácil usabilidade.
Como pode ser notado nesse traabalho, existem vários algoritmos de criptografia
diferentes. Existem algoritmos com um foco em velocidade (velocidade de encriptação), já
outros algoritmos que tendem a ser um pouco mais lentos, porém mais seguros (utilizam de
melhores técnicas para garantir a segurança). Visando todos os algoritmos disponíveis
atualmente, basta escolher aquele que vai se encaixar melhor diante do sistema que está sendo
usado.
Vale ressaltar que o software foi desenvolvido apenas para o estudo das criptografias e
como trabalhos futuros poderia ser estendida a sua utilidade para encriptar arquivos e
diretórios. Mas o foco principal desse software é o entendimento de como a criptografia pode
ser utilizada. Concluindo assim o objetivo proposto desta pesquisa onde o intuito era
demonstrar a importância da utilização de criptografias abordando as principais formas de
utilização de segurança em ambientes corporativos.
7 CRONOGRAMA
1 2 3 4 5 6 7 8 9 10 11 12
Levantamento Bibliográfico:
Fichamento de Livros, Artigos,
Vídeos, Pesquisas Internet etc.
CERT. Site do Cert para verificar as estatísticas sobre as invasões, ataques e etc. Disponível
em: <http://www.cert.br/stats/incidentes/2013-jan-dec/tipos-ataque-acumulado.html>. Acesso
em: 10 nov. 2015.
ZHOU, P; DING, Q. The Key Exchange Research of Chaotic Encryption Chip Based on
Elliptic Curve Cryptography Algorithm. Disponível em:
<http://ieeexplore.ieee.org/xpl/abstractAuthors.jsp?
reload=true&arnumber=5288393&contentType=Conference+Publications >. Acesso em: 10
nov. 2015.