Buscar

Bibliotecas_Python_simpif

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/337257385
Análise de Bibliotecas de Python que Permitem Criptografar Dados
Conference Paper · November 2019
CITATIONS
0
READS
514
4 authors, including:
Some of the authors of this publication are also working on these related projects:
Projeto de Extensão "Quebrando barreiras na troca de saberes, conhecimentos e experiências por meio de redes dinâmicas e convergentes" View project
Aplicações em computação colaborativa em rede P2P View project
Luciana Pereira Oliveira
Instituto Federal de Educação, Ciência e Tecnologia da Paraíba
28 PUBLICATIONS   16 CITATIONS   
SEE PROFILE
Edson L. V. Almeida
Instituto Federal de Educação, Ciência e Tecnologia da Paraíba
5 PUBLICATIONS   0 CITATIONS   
SEE PROFILE
Lucas Sales da Silva
Instituto Federal de Educação, Ciência e Tecnologia da Paraíba
1 PUBLICATION   0 CITATIONS   
SEE PROFILE
All content following this page was uploaded by Luciana Pereira Oliveira on 14 November 2019.
The user has requested enhancement of the downloaded file.
https://www.researchgate.net/publication/337257385_Analise_de_Bibliotecas_de_Python_que_Permitem_Criptografar_Dados?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_2&_esc=publicationCoverPdf
https://www.researchgate.net/publication/337257385_Analise_de_Bibliotecas_de_Python_que_Permitem_Criptografar_Dados?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_3&_esc=publicationCoverPdf
https://www.researchgate.net/project/Projeto-de-Extensao-Quebrando-barreiras-na-troca-de-saberes-conhecimentos-e-experiencias-por-meio-de-redes-dinamicas-e-convergentes?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_9&_esc=publicationCoverPdf
https://www.researchgate.net/project/Aplicacoes-em-computacao-colaborativa-em-rede-P2P?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_9&_esc=publicationCoverPdf
https://www.researchgate.net/?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_1&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Luciana_Oliveira47?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_4&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Luciana_Oliveira47?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_5&_esc=publicationCoverPdf
https://www.researchgate.net/institution/Instituto_Federal_de_Educacao_Ciencia_e_Tecnologia_da_Paraiba?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_6&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Luciana_Oliveira47?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_7&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Edson_Almeida3?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_4&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Edson_Almeida3?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_5&_esc=publicationCoverPdf
https://www.researchgate.net/institution/Instituto_Federal_de_Educacao_Ciencia_e_Tecnologia_da_Paraiba?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_6&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Edson_Almeida3?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_7&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Lucas_Silva108?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_4&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Lucas_Silva108?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_5&_esc=publicationCoverPdf
https://www.researchgate.net/institution/Instituto_Federal_de_Educacao_Ciencia_e_Tecnologia_da_Paraiba?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_6&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Lucas_Silva108?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_7&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Luciana_Oliveira47?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_10&_esc=publicationCoverPdf
 
Análise de Bibliotecas de Python que Permitem Criptografar Dados 
 
Luciana Pereira Oliveira[1], [1]luciana.oliveira@ifpb.edu.br/IFPB Campus João Pessoa. Edson Luis 
Vieira de Almeida[2], [2]edson.l.v.almeida@outlook.com/IFPB Campus João Pessoa. Wellington 
Pessoa de Lima Filho[3], [3]wellington.pessoa@academico.ifpb.edu.br/IFPB Campus João Pessoa. 
Lucas Sales da Silva[4], [4]lucas.sales@academico.ifpb.edu.br/IFPB Campus João Pessoa. Roberto 
Carlos 
 
 
Resumo 
Há um elevado número de algoritmos em diversas linguagens de programação que foram criados para 
criptografar mensagens e arquivos, a fim de esconder informações confidenciais. A linguagem Python 
é uma dessas linguagens, que atualmente vem crescendo e sendo utilizada com bastante frequência. 
Com o intuito de demonstrar a performance do simple-crypt, cryptography e pyAesCrypt, que foram 
desenvolvidos em Python, este artigo analisa a quantidade de linhas de código, o tempo de 
processamento e consumo de memória deles em um ambiente de máquina virtual. 
Palavras-chave: Criptografia. Performance. Python 
 
Abstract 
There are a large number of algorithms in various programming languages that have been created to 
encrypt messages and files in order to hide confidential information. Python is one of those languages, 
which is currently growing and being used quite often. In order to demonstrate the performance of 
simple-crypt, cryptography and pyAesCrypt, which were developed in Python, this article analyzes the 
number of code lines, their processing time and memory consumption in a virtual machine 
environment. 
Keywords: Cryptography. Performance. Python. 
 
 
mailto:pacheco.franklin9@gmail.com
 
1 Introdução 
 
A internet das Coisas (Internet of Things - 
IoT) ganhou força a partir dos avanços 
tecnológicos que foram surgindo ao longo do 
tempo e da necessidade de conectar 
dispositivos, de forma que eles possam 
automatizar serviços e funções, melhorando o 
cotidiano de uma forma geral e auxiliando na 
tomada de decisões. Estes dispositivos 
inteligentes (denominados de smart objects) 
geralmente possuem restrições de memória e 
processamento, muitos são alimentados por 
baterias e alguns estão em locais de difícil 
acesso, dificultando a troca dessas baterias. 
Tais diferenciais (em relação aos tradicionais 
computadores pessoais) requerem umaelevada 
necessidade de baixo consumo de energia e 
uma alta conectividade para o envio de dados, 
sinais e até acesso remoto. 
Dado o crescente desenvolvimento da IoT, 
e a tendência de conectividade que há, 
estipulações indicam que até 2020 existirão 
mais de 50 bilhões de dispositivos conectados, 
em contrapartida para este mesmo ano com 7,6 
Bilhões de pessoas no mundo, logo a média 
será de aproximadamente 6,58 dispositivos por 
pessoa [EVANS, 2011]. 
Com esse elevado número de objetos 
inteligentes, a crescente quantidade de 
aplicações e o elevado número de dados a 
serem transmitidos, faz-se necessário que as 
soluções funcionem de forma segura e, 
atendendo, restrições de memória e 
processamento dos dispositivos. Além disso, é 
necessário um estudo a fim de encontrar o 
melhor custo benefício entre a proteção das 
informações e o processamento necessário para 
garantir a confidencialidade dos dados a serem 
transmitidos. 
Neste contexto de segurança, criptografia é 
o estudo e prática de métodos para 
comunicação segura que impedem que 
terceiros leiam e compreendam as informações 
que estão nas mensagens privadas. A 
criptografia tem como objetivo garantir a 
confidencialidade e integridade. O processo 
consiste em aplicar um algoritmo para 
codificar os dados que se deseja proteger de 
modo que apenas emissor e receptor consigam 
compreendê-lo. 
Antigamente, a criptografia era usada 
principalmente em assuntos ligados à guerra e 
à diplomacia. Uma das técnicas mais simples e 
conhecidas é a cifra de César, na qual cada 
letra do texto é substituída por outra. O estudo 
da criptografia vai além do que apenas cifrar e 
decifrar, a criptografia moderna é basicamente 
formada pelo estudo dos algoritmos 
criptográficos que podem ser implementados 
na computação. 
As técnicas de codificação constituem uma 
parte importante da segurança dos dados, pois 
protegem informações confidenciais de 
ameaças que incluem exploração por malware 
e acesso não autorizado por terceiros. 
Com as incertezas ao escolher a melhor 
opção dentre as bibliotecas. Este estudo analisa 
soluções de criptografia em Python, pois esta 
linguagem foi adotada para o ensino de 
programação nos cursos de tecnologia do 
IFPB, que é a instituição dos estudantes 
envolvidos nesta pesquisa. A intenção é 
investigar bibliotecas de encriptação e 
decriptação de dados que podem ser utilizadas 
no desenvolvimento de soluções seguras na 
área de Internet das Coisas. Para isso, foram 
elencados os seguintes questionamentos: 
 
a) Qual biblioteca de algoritmo de 
criptografia em Python será mais 
adequada para o desenvolvimento 
de aplicações que requer um rápido 
processamento dos dados? 
b) Quando um hardware tem 
restrições no tamanho da memória, 
qual biblioteca de algoritmo de 
criptografia em Python será mais 
adequada? 
 
Considerando esses questionamentos, este 
artigo apresenta os resultados da investigação 
de três bibliotecas: simple-crypt de [COOKE, 
2015], pyAesCrypt de [BELLACCINI, 2015] e 
cryptography de [GAYNOR et al, 2019]. Os 
autores deste artigo criaram um programa 
simples para utilizar cada uma dessas 
bibliotecas que oferecem a implementação de 
soluções para criptografar dados com a 
 
linguagem Python. O objetivo geral é analisar 
a eficiência dessas três soluções através da 
medição do tempo de execução (real, usuário e 
kernel) e a quantidade de memória residente 
que foi utilizada para o processamento de cada 
exemplo de código. A Seção 2 apresenta a 
fundamentação sobre criptografia e internet 
das coisas. A Seção 3 apresenta a metodologia 
utilizadas nos experimentos. Na Seção 4 é 
possível observar os resultados e, por fim, na 
Seção 5 está a descrição das considerações 
finais e de trabalhos futuros. 
 
2 Referencial teórico 
 
A segurança da informação é um conjunto 
de estratégias para gerenciar os processos, 
ferramentas e políticas necessárias para 
prevenir, detectar, documentar e combater 
ameaças às informações digitais e não digitais. 
Visando proteger a confidencialidade, 
integridade e disponibilidade dos dados 
daqueles com intenções maliciosas. Os três 
principais conceitos de segurança da 
informação, de acordo com [KAREN et al, 
2008], são: 
• Confidencialidade: tem como função 
garantir que as informações sejam 
acessadas somente por aqueles que 
possuem autorização. Uma das formas 
de garantir a confidencialidade é por 
meio do uso de criptografia, 
garantindo que apenas as partes 
envolvidas possam visualizar a real 
informação. A perca da 
confidencialidade se dá quando 
alguém não autorizado obtém acesso a 
recursos e informações. 
• Integridade: é a necessidade de 
garantir que as informações não 
tenham sido alteradas acidentalmente 
ou intencionalmente, e que elas 
estejam corretas e completas, 
garantindo a autenticidade da 
informação. Isto é, mede a veracidade 
da informação e seus métodos de 
modificação, manutenção e validade. 
Quando a informação é alterada 
indevidamente ou quando não é 
possível garantir que a informação é a 
mais atualizada há perda da 
integridade. 
• Disponibilidade: garante que a 
informação estará disponível para 
acesso no momento desejado. Diz a 
respeito ao correto funcionamento do 
sistema, onde este deve permitir que a 
informação seja acessada quando for 
necessária. Há perca de 
disponibilidade quando é requisitada 
uma informação e esta não é recebida 
conforme o esperado. 
É de suma importância garantir a segurança 
da informação, principalmente, no âmbito da 
IoT tendo em vista que o acesso a informações, 
coletadas no ambiente remoto, deve ser feito 
de forma segura, visando garantir a 
confiabilidade, disponibilidade e integridade 
das informações capturadas e transmitidas 
pelos nós remotos. 
Por essa razão, diversas pesquisas foram 
realizadas apontando a importância do uso de 
mecanismos de segurança no ambiente da IoT, 
seja na privacidade dos dados [KOZLOV et al, 
2012] ou na autenticação dos nós que fazem 
parte da rede [CHAVAN and NIGHOT, 2016]. 
Então, na IoT é necessário utilizar métodos 
para proteger a privacidade dos dados e, ao 
mesmo tempo, considerar as restrições de 
hardware dos dispositivos. Por isso, 
geralmente, os mecanismos de segurança para 
esses dispositivos são mais simples para 
prolongar o tempo de uso das baterias e serem 
exequíveis nos dispositivos. 
Por exemplo, mecanismos comuns de 
segurança utilizando a criptografia faz-se 
necessária para garantir a confidencialidade, 
integridade e autenticação. Existem vários 
tipos de criptografia, os dois tipos básicos são: 
a simétrica e assimétrica. 
A criptografia simétrica é um método de 
criptografia em que a chave usada é a mesma 
entre destinatário e receptor. [NAKAMURA e 
GEUS, 2007]. Esse método de criptografia é o 
mais antigo, a vantagem desse método é a sua 
simplicidade, sendo assim, de fácil 
implementação. Em contrapartida, o requisito 
de que ambas as partes possuam acesso à 
mesma chave secreta é uma das principais 
 
desvantagens da criptografia de chave 
simétrica, pois gera insegurança. 
Já a criptografia assimétrica utiliza duas 
chaves, uma privada e uma pública. A chave 
pública pode ficar disponível para quem quiser 
se comunicar com outra pessoa de forma 
segura, e a privada é de uso particular e deve 
ser guardada. [OLIVEIRA, 2012]. Esse 
método é mais seguro pois usa duas chaves e 
essa é a sua principal vantagem, a 
desvantagem é que esse método tem grande 
complexidade, dificultando a sua 
implementação. 
[SILVEIRA, 2010] comenta sobre o 
método de criptografia de chave pública 
(assimétrica) afirmando que os algoritmos de 
chave pública devem ser funções de difícil 
inversão, para que o público em geral não 
consiga obter a chave privada a partir da chave 
pública. Além disso, os inteiros envolvidos 
devem ser extremamente grandes,da ordem de 
centenas de dígitos decimais (centenas ou 
milhares de bits), para que um computador 
avançado não consiga testar todas as 
combinações possíveis em tempo hábil. 
No entanto, mesmo uma criptografia 
simétrica pode ser um desafio para dispositivos 
em IoT. Em um computador pessoal, a 
criptografia simétrica denominada de AES 
(Advanced Encryption Standard) pode ser 
processada várias vezes em um dia para 
proteger a privacidade dos dados. No entanto, 
executar esse mesmo AES em um dispositivo 
IoT pode resultar em uma rápida finalização da 
bateria. Portanto, é necessário utilizar 
mecanismos adaptados ou melhorias em 
algoritmos de criptografia como o trabalho de 
[GEREZ et al, 2018], que avalia o protocolo 
TLS configurado com 3 algoritmos diferentes 
de criptografia. Tal trabalho mostra que a 
escolha errada do mecanismo de encriptação 
pode elevar em mais de 30% o consumo de 
energia. Por outro lado, estava fora do escopo 
de [GEREZ et al, 2018] avaliar bibliotecas de 
criptografia que podem ser utilizadas em 
aplicações construídas em Python. 
Outro desafio da segurança no ambiente de 
IoT é a diversidade de aplicações que esta 
possibilita. Isso porque são necessários 
diferentes níveis de segurança para diferentes 
aplicações de forma que se possa oferecer 
soluções simples para preservar a bateria e, ao 
mesmo tempo, assegurar a privacidade e 
integridade dos dados [LAI et al, 2004]. 
Em termos de avaliações de soluções de 
criptografia, [OLIVEIRA, 2012] faz uma 
análise dos principais algoritmos de 
criptografia de cifragem simétrica e 
assimétrica, demonstrando suas vantagens e 
desvantagens. Além disso, [SILVEIRA, 2010] 
demonstra o papel da aritmética em precisão 
múltipla na criptografia de chave pública 
(assimétrica). 
Já este artigo, faz uma comparação entre o 
desempenho de algumas bibliotecas e 
algoritmos de criptografia (simple-crypt, 
cryptography e pyAesCrypt) presentes na 
linguagem Python. 
 
3 Método da pesquisa 
 
Este trabalho é classificado, quanto à sua 
abordagem, como uma pesquisa quantitativa, 
tendo em vista que seus resultados e suas 
amostrar podem ser quantificadas 
numericamente [GERHARDT AND 
SILVEIRA, 2009]. Em relação a sua natureza, 
este trabalho é classificado como uma pesquisa 
aplicada, visto que tem como objetivo gerar 
conhecimentos para aplicação prática. 
Para realizar as medições, foram utilizadas 
três máquinas virtuais configuradas com o 
sistema operacional Linux Debian 9, que por 
sua vez utiliza-se de 2GB de RAM e 1 núcleo 
de processamento. Cada máquina virtual ficou 
responsável por executar um algoritmo, assim 
evitando que um possa influenciar nas 
medições dos outros. 
Foram desenvolvidos três códigos, onde 
cada um desses foi codificado com uma 
biblioteca diferente. Os nomes das bibliotecas 
não: simple-crypt (com o uso dos pacotes 
encrypt e decrypt), cryptography (com o uso 
do pacote Fernet) e PyAesCrypt (com o uso do 
pacote que possui o mesmo nome 
PyAesCrypt). 
Durante os experimentos, foi utilizado o 
comando //usr/bin/time --format='tempo=%E 
memoria= %M kernel=%S usr=%U' python3 
<nome do arquivo> que por sua vez irá 
 
executar os algoritmos: simple-crypt, 
pyAesCrypt e cryptography (Utilizando a 
versão 3.5 da linguagem Python). Através 
desse comando é possível visualizar o tempo 
de execução (real, usuário e kernel) e a 
utilização de memória residente no processo. 
Esse comando foi executado dez vezes para 
cada algoritmo, e em seguida, foi tirada uma 
média do tempo de execução e memória 
residente, assim sendo possível avaliar o 
desempenho de cada um dos algoritmos, com o 
intuito de adquirir o melhor resultado. 
Especificação do comando: 
• %E – Exibe o tempo real para 
processar um programa no formato de 
hora, minutos e segundos; 
• %M – Exibe a quantidade de memória 
residente que foi necessária para 
executar o programa em bytes; 
• %U – Exibe o tempo para processar o 
programa no modo usuário em 
segundos; 
• %S – Exibe o tempo para executar o 
programa no modo kernel em 
segundos. 
 Além dessas medições, foi contabilizado a 
quantidade de linhas para codificar cada 
solução de criptografia com as bibliotecas. 
Nas figuras 1, 2 e 3 são apresentados os 
códigos utilizados para realizar o estudo da 
avaliação de desempenho (total de 30 
repetições para cada experimento), no qual 
cada experimento possuía as mesmas 
mensagens, para que os algoritmos pudessem 
ser avaliados justamente. 
Antes de executar o código da Figura 1 que 
utiliza a biblioteca simplecrypto, é necessário 
executar o seguinte comando no sistema 
operacional Debian: “pip3 install 
simplecrypto”. Esse comando permite a 
instalação da biblioteca que será utilizada pelo 
código da Figura 1. 
 
 
 
 
 
 
 
 
Figura 1- Simple-crypt 
 
Fonte: Elaboração própria. 
 
Antes de executar o código da Figura 2, é 
necessário executar o seguinte comando no 
sistema operacional Debian: “pip3 install 
cryptography”. 
 
Figura 2- Cryptography 
 
Fonte: Elaboração própria. 
 
Diferentemente dos códigos anteriores, 
antes de executar o código da Figura 3, é 
necessário instalar dois módulos compatíveis 
com a versão 3 da linguagem python: “pip3 
install hashlib” e “pip3 install PyAesCrypt”. 
 
 
Figura 3- pyAesCrypt. 
 
Fonte: Elaboração própria. 
 
4 Resultados da pesquisa 
 
O Quadro 1 apresenta a comparação dos 
códigos em relação a quantidade de linhas de 
código, onde não se considera as linhas em 
branco. É possível observar que a solução 
pyAesCrypt apresenta uma maior quantidade 
de linhas de código, sendo o dobro de linhas de 
código do que utiliza a biblioteca 
Cryptography. 
No gráfico a seguir, presente na Figura 4, é 
possível visualizar que o cryptography foi o 
algoritmo mais eficiente nessa avaliação do 
tempo de processamento. Além disso, é 
possível identificar que o algoritmo simple-
crypt foi o mais ineficiente, pois apresentou 
um maior tempo para realizar o processamento 
do código do que os outros dois algoritmos 
analisados. 
 
Quadro 1 – Comparação das soluções em relação a 
quantidade de linhas de código 
 
NOME DO 
CÓDIGO 
QUANTIDADE DE 
LINHAS DE CÓDIGO 
Simple-crypt 8 
Cryptography 7 
PyAesCrypt 14 
Fonte: Elaboração própria. 
 
No gráfico a seguir, presente na Figura 4, é 
possível visualizar que o cryptography foi o 
algoritmo mais eficiente nessa avaliação do 
tempo de processamento. Além disso, é 
possível identificar que o algoritmo simple-
crypt foi o mais ineficiente, pois apresentou 
um maior tempo para realizar o processamento 
do código do que os outros dois algoritmos 
analisados. 
 
Figura 4- Média do tempo de execução 
 
Fonte: Elaboração própria. 
 
Em termos do consumo de memória, na 
Figura 5, vê-se que o algoritmo cryptography 
faz o seu melhor uso e, como consequência, 
torna a execução do programa mais rápido do 
que os demais algoritmos utilizados no 
experimento. 
 
Figura 5- Média do uso de memória 
 
Fonte: Elaboração própria. 
 
5 Conclusão/Considerações 
 
O objetivo do trabalho foi apresentar um 
estudo comparativo de desempenho entre 
programas que utilizam diferentes bibliotecas 
 
para criptografia. Especificamente, foram 
analisados três códigos: simple-crypt, 
cryptography e pyAesCrypt que foram 
desenvolvidos na linguagem Python. 
Apesar de não serem executados testes com 
dispositivos de IoT, de acordo com os 
resultados das análises, aquele que apresentou 
os melhores resultados nos testes em máquinas 
virtuais é o código que utilizou a biblioteca 
cryptography, pois apresentou menor tempo de 
execução e o consumo de memória foi 
intermediário e apresentou uma menor 
quantidade de linhas de código, conforme 
Quadro 1. 
Acredita-se que o pyAesCrypt não é 
indicado para dispositivo de IoT com 
restrições em tamanho de memória, pois o 
programa que utilizou esta bibliotecafoi o que 
mais consumiu o espaço de memória durante a 
execução e também apresenta uma maior 
quantidade de linhas de código. Ou seja, o 
tamanho do código maior impacta no espaço 
de memória para armazenar o código. 
O código que utilizou o simple-crypt foi o 
que utilizou menos a memória, mas apresentou 
o maior tempo de execução, não sendo 
adequado para sistemas que precisam de um 
baixo tempo de resposta. 
Os resultados apresentados podem indicar 
oportunidades de melhorias tanto nos ajustes 
de desempenho das bibliotecas, quanto nos 
ajustes de desempenho dos algoritmos. Tais 
resultados são importantes para programadores 
escolherem a biblioteca que melhor atenda a 
expectativas e necessidades, seja esse o uso de 
memória ou do tempo de execução. 
As próximas pesquisas irão incluir a 
realização de testes de segurança e consumo de 
energia em dispositivos de IoT. Por exemplo, é 
possível instalar o interpretador Python em um 
Raspberry, bem como, utilizar os códigos deste 
artigo para serem executados nesse dispositivo. 
A intenção será não apenas comparar os 
resultados das bibliotecas em termos de 
consumo de memória e tempo de execução, 
mas também realizar medições do consumo de 
energia. 
Também se pretende realizar a avaliação de 
soluções de algoritmos que foram 
implementados em outras linguagens de 
programação que possam ser executadas em 
dispositivos como Arduino Nano que possuí 
maior restrição (menor quantidade de memória 
e de processamento), quando comparado com 
um Raspberry. 
 
Referências 
 
[BELLACCINI, 2015]. Bellaccini, M. pypi. 
pypi, 2018. Disponivel em: 
<https://pypi.org/project/pyAesCrypt/>. 
Acesso em: 03 Fev 2019. 
 
[CHAVAN and NIGHOT, 2016] A. Chavan 
and K. Nighot, "Secure and Cost-effective 
Application Layer Protocol with 
Authentication Interoperability for IOT", 
Procedia Computer Science, Volume 78, 2016, 
pp. 646-651. 
 
[CIRIACO, 2015]. Ciriaco, D. canaltech. 
canaltech, 2015. Disponivel em: 
<https://canaltech.com.br/seguranca/o-que-e-
criptografia-e-por-que-voce-deveria-usa-la/>. 
Acesso em: 03 Fev 2019. 
 
[COOKE, 2015]. Cooke, A. pypi. pypi, 2015. 
Disponivel em: 
<https://pypi.org/project/simple-crypt/>. 
Acesso em: 03 Fev 2019. 
 
[EVANS, D. 2011]. Evans, D. The Internet of 
Things: How the Next Evolution of the 
Internet Is Changing Everything. 2011. 
Disponível em: 
<http://www.cisco.com/web/about/ac79/docs/i
nnov/IoT_IBSG_0411FINAL.pdf>. Acesso 
em: 03 Fev 2019. 
 
[GAYNOR et al, 2019]. Gaynor, A., Dreid, 
Stufft, D. e Kehrer, P. Disponível em 
<https://pypi.org/project/cryptography/>. 
Acesso em: 03 Fev 2019. 
 
[GEREZ et al, 2018]. A. H. Gerez, K. 
Kamaraj, R. Nofal, Y. Liu and B. Dezfouli, 
"Energy and Processing Demand Analysis of 
TLS Protocol in Internet of Things 
Applications," 2018 IEEE International 
 
Workshop on Signal Processing Systems 
(SiPS), Cape Town, 2018, pp. 312-317. 
 
[GERHARDT AND SILVEIRA, 2009]. 
GERHARDT, T. E.; SILVEIRA, D. T. 
“Métodos de Pesquisa”. Porto Alegre: Editora 
UFRGS, 2009. 
 
[KAREN et al, 2008]. Karen A. Scarfone, 
Wayne Jansen, and Miles Tracy.“Guide to 
General Server Security”. Technical Report, 
SP 800-123. NIST, Gaithersburg, 2008, MD, 
United States. 
 
[KASPERSKY,2019] . kaspersky, 2019. 
Disponivel em: 
<https://www.kaspersky.com.br/resource-
center/definitions/encryption>. Acesso em: 03 
Fev 2019. 
 
[KOZLOV et al, 2012] D. Kozlov, J. 
Veijalainen and Y. Ali. "Security and privacy 
threats in IoT architectures. In Proceedings of 
the 7th International Conference on Body Area 
Networks" (BodyNets '12). ICST (Institute for 
Computer Sciences, Social-Informatics and 
Telecommunications Engineering), ICST, 
2012, Brussels, Belgium, Belgium, 256-262 
 
[LAI et al, 2004]. B. Lai, D. Hwang, S. Kim 
and I. Verbauwhede, "Reducing radio energy 
consumption of key management protocols for 
wireless sensor networks," Proceedings of the 
2004 International Symposium on Low Power 
Electronics and Design (IEEE Cat. 
No.04TH8758), Newport Beach, CA, USA, 
2004, pp. 351-356. 
 
[NAKAMURA e GEUS, 2007] 
NAKAMURA, T. E; GEUS, L. P. Segurança 
De Redes Em Ambientes Cooperativos. 1. ed. 
São Paulo: Novatec, 2007. 
 
[OLIVEIRA, 2019] Oliveira R. R. 
Criptografia simétrica e assimétrica: os 
principais algoritmos de cifragem. Revista 
Segurança Digital, [on-line], v. 05, p. 11-15, 
mar. 2012; continuação: v. 06, p. 21-24, 
mai. 2012. Disponível em 
<http://www.segurancadigital.info/>. Acesso 
em: 03 Fev 2019. 
[PYPI, 2019]. pypi, 2019. Disponivel em: 
<https://pypi.org/project/cryptography/>. 
Acesso em: 03 Fev 2019. 
 
[SILVEIRA, 2010] SILVEIRA, A. S.; 
FALEIROS, A. C. Criptografia de chave 
pública. O papel da Aritmética em precisão 
múltipla. São José dos Campos: Instituto 
Tecnológico de Aeronáutica (ITA), 
2010.Relatório de Iniciação Científica.
 
 
View publication statsView publication stats
https://www.researchgate.net/publication/337257385

Continue navegando