Escolar Documentos
Profissional Documentos
Cultura Documentos
Ficha catalográfica preparada pela Seção de Tratamento
da Informação do Serviço de Biblioteca – IFSP
Aos parentes e amigos cujo apoio foi de extrema importância e aos colegas
do curso de Tecnólogo de Sistemas para Internet pelo companheirismo que
foi de extrema importância.
The steganography is a little known and widely used technique compared to the
encryption. Due to the wide circulation of images in JPEG format on the Internet, in some
cases becomes favorable application of steganography that file type. This paper aims to
conduct a case study which will assess the use of steganography as a safety feature.
Furthermore, it was also developed and made available a library of Java classes that
implements the algorithm for future F5 software can use steganography in images as a safety
mechanism. For this case study, an application using the AES cryptographic system with a
256-bit key, an application without any security mechanism and another using the
stenographic algorithm F5 were developed. The analysis experiments were conducted to
collect data on memory consumption, CPU, network and disk storage. After collecting the
data it became apparent that steganography is a viable solution, but with consumption of a
larger amount of resources compared to encryption, restricting its application as a safety
mechanism.
IP – Internet Protocol
19
1 Introdução
É diferente da criptografia, pois segundo Manoj (2010) a criptografia pode ser definida como
a arte e ciência de transformar informação em uma sequência de bits que aparentemente são
aleatórios e sem sentido aos olhos de um observador ou atacante e, em alguns casos remover-
se dados redundantes para comprimir a informação. Por sua vez, as técnicas de esteganografia
se esforçam para esconder a própria presença dos dados na mensagem, onde um observador
que não tem conhecimento de qual foi o procedimento utilizado para esconder a mensagem,
Logo, pode se concluir que a esteganografia e criptografia são utilizados para garantir
a confidencialidade dos dados. No entanto, a principal diferença entre elas é que, com a
criptografia qualquer um pode ver que ambas as partes estão se comunicando em segredo. Já a
ninguém pode ver que ambas as partes estão se comunicando secretamente (EL-EMAM,
2007).
esteganográfica mais popular hoje em dia. Uma imagem com uma mensagem secreta no
interior pode ser facilmente espalhada sobre a Internet ou em um grupo de notícias. Para
ocultar uma mensagem dentro de uma imagem, sem alterar suas propriedades visíveis, a fonte
de cobertura (imagem onde será inserida a informação) pode ser alterada nas áreas que
possuem “ruído”, com muitas variações de cores, e que portanto, resultarão em menos atenção
20
atraída para as modificações. Os métodos mais comuns para fazer estas alterações implicam a
utilização do bit menos significativo (LSB – Less Significant Bit) (EL-EMAM, 2007).
1.1 Motivação
econômica, social, educacional e até mesmo cultural, sendo uma das bases da sociedade
Por se tratar de uma técnica pouco conhecida, a esteganografia tem pouca utilização e
são escassas informações as respeito a seu desempenho na utilização de recursos como
memória e processador em relação a criptografia e além que são raros os recursos para a
criação de uma aplicação que a utilize como mecanismo de segurança. Diferente da
criptografia, onde existe uma vasta coleção de bibliotecas e APIs (Application Programming
Interface) para facilitar o desenvolvimento de aplicações, ao usar esteganografia é necessário
implementar o algoritmo à partir das equações matemáticas nas quais o algoritmo utilizado na
biblioteca é baseado, o que não é muito atraente do ponto de vista do desenvolvimento de
software.
21
1.2 Objetivos
Diante das dificuldades apresentadas na seção anterior, este trabalho tem como
objetivo contribuir para facilitar a utilização da esteganografia em aplicações que envolvem
segurança da informação.
No estudo de caso, uma aplicação que faz uso da esteganografia foi desenvolvida e
comparada, em termos de desempenho, com uma versão sem o uso de recursos de proteção e
uma versão utilizando criptografia convencional, de modo a demonstrar sua possível
viabilidade prática.
23
2 Pesquisa Bibliográfica
Neste capítulo são apresentados os principais ataques de rede ativos e passivos, uma
visão geral da criptografia e de sistemas criptográficos simétricos e assimétricos, além de uma
visão mais aprofundada da esteganografia incluindo como ela era utilizada no passado, as
principais técnicas atuais, técnicas de detecção e detalhes do algoritmo F5.
Figura 1 – Número de Incidentes de Segurança no Brasil
Fonte: http://www.cert.br/stats/incidentes/
24
Figura 2 ‐ Número de Incidentes relatados ao CAIS
Disponível em: http://www.rnp.br/cais/estatisticas/index.php
Figura 3 ‐ Liberação do conteúdo da mensagem
Fonte: Stallings, 2008, p. 6
26
Milhares de pessoas acessam à Internet por meio de redes sem fio utilizando laptop,
smartphone ou tablet, enquanto este acesso quase onipresente à Internet disponibiliza
inúmeros benefícios, também abre uma grande brecha de segurança, pois um receptor
próximo ao transmissor sem fio, pode capturar cada pacote enviado (STALLINGS, 2008).
Por exemplo, o Secure Socket Layer (popularmente conhecido pela sigla SSL), é
utilizado para aprimorar protocolo TCP (Transmission Control Protocol) com serviços de
segurança, incluindo sigilo, integridade dos dados e autenticação para proteger a privacidade e
autenticidade do tráfego de um site (KUROSE; ROSS, 2010).
Agora, imagine que João utilize o SSL em seu site.A atual infraestrutura de chaves
públicas (na seção 2.1.2 será tratado melhor esse assunto) do site de João é inexistente ou
possui falhas de segurança permitindo que um ataque man-in-the-middle (também conhecido
como ataque homem no meio, onde o atacante fica estrategicamente posicionado entre a
comunicação de dois computadores capturando dados) seja lançado. Suponha que Paulo vai
acessar o site de João, mas há um intruso entre os dois que vai interceptar a comunicação, de
modo que a chave pública criada pelo intruso se passe pela original do site de João. Assim,
quando Paulo aceita o certificado falso, ele de fato enviou informações para o Intruso. O
intruso pode então começar uma conexão SSL com a página WWW real de João. Mesmo que
seja usada criptografia e autenticação, uma vez que o intruso convenceu Paulo que sua chave
falsa é a chave pública de João, ele poderá bisbilhotar o tráfego entre Paulo e João
(STALLINS, 2008; KUROSE; ROSS, 2010; DESMEDT, 2011).
Figura 4 ‐ Análise de tráfego
Fonte: Stallings, 2008, p. 6
Ataques passivos são muitos difíceis de detectar, pois não envolvem alteração dos
dados. Normalmente, o tráfego de mensagens ocorre em um padrão aparentemente normal, e
nem emissor nem o receptor estão cientes de que um terceiro leu as mensagens ou observou o
padrão do tráfego. Porém, normalmente, é viável impedir o sucesso desses ataques por meio
da criptografia (STALLINS, 2008).
Um disfarce ocorre quando uma entidade finge ser uma entidade diferente, conforme
apresentado na Figura 5. Um ataque de disfarce normalmente inclui outras formas de ataque
ativo. Por exemplo, sequencias de autenticação podem ser copiadas e reproduzidas depois que
28
houver uma sequência de autenticação válida, permitindo assim que uma entidade autorizada
com poucos privilégios obtenha privilégios extras, imitando essa entidade que tenha esses
privilégios (STALLINS, 2008).
Figura 5 – Disfarce
Fonte: Stallings, 2008, p. 7
Figura 6 – Repasse
Fonte: Stallings, 2008, p. 7
Figura 7 ‐ Modificação de mensagem
Fonte: Stallings, 2008, p.8
A negação de serviço conhecido também pela sigla DoS (Denial of Service) impede ou
inibe o uso ou gerenciamento normal das instalações de comunicação (Figura 8). Esse ataque
pode ter um alvo específico; por exemplo, uma entidade pode suprimir todas as mensagens
dirigidas a determinado destinos (por exemplo, o serviço de auditoria de segurança). Outra
30
forma de negação de serviço é a interrupção de uma rede inteira, seja desativando a rede ou
sobrecarregando-a com mensagens a fim de prejudicar o desempenho (STALLINGS, 2008).
Em junho de 2010 a Internet tinha por volta de 2 bilhões de usuários. Muitos usuários
navegavam na Internet sem o software de segurança adequado, ou utilizaram sistemas
operacionais e softwares que não estavam devidamente atualizados. Atacantes podem
empregar técnicas automatizadas para descobrir tais sistemas e usar vulnerabilidades
conhecidas para instalar as ferramentas DDoS (Distributed Denial of Service) nesses sistemas.
Tais computadores infectados são geralmente referidos como computadores zumbis, ou bots
(SCHNEIDER, 2012).
Figura 8 ‐ Negação de serviço
Fonte: Stallings, 2008, p. 8
Mesmo que a criptografia não possa ser utilizada para inibir ou proteger de um ataque
de negação de serviço, ela possui relação com esse tipo de ataque, crackers utilizam
comunicação criptografada entre ele e os computadores de sua botnet (conjunto de vários bots
que pode variar de algumas dezenas de computadores infectados e milhares) para coordenar
um ataque (MANOJ, 2010).
31
2.2 Criptografia
A palavra criptografia vem do grego onde cripto significa secreto e grafia escrita, ou
seja, a arte e ciência da “escrita secreta”. A criptografia tem uma longa história e
historicamente recebeu contribuição de quatro grupos no qual são pessoas que queriam
guardar memórias, amantes, diplomatas e militares, sendo este último o que deu a maior
contribuição. Algoritmos criptográficos podem ser implementados tanto em hardware, para
obter desempenho, quanto em software, para se obter flexibilidade (TANEMBAUM, 2003).
2.2.1 Terminologia
Uma mensagem não cifrada (que não foi aplicado nenhum método de criptografia) é
chamada de texto plano (ou plaintext) e uma mensagem criptografada é chamada de texto
cifrado ou (ciphertext). O processo de transcrição de texto claro para texto cifrado é chamado
de criptografia ou cifragem e recuperar um texto claro a partir de um texto cifrado é chamado
de descriptografia e também por decifragem (KUROSE; ROSS, 2009).
2. Emissor e receptor precisam ter cópias da chave secreta de uma forma segura e
precisam manter a chave protegida. Se alguém puder descobrir a chave e souber
o algoritmo, toda a comunicação usando essa chave poderá ser lida.
Stallings (2008) ainda complementa que o custo para decifrar um texto cifrado deve
ser maior que a informação criptografada e que o tempo exigido para quebrar a cifragem seja
superior a vida útil da informação codificada.
Um ataque de força bruta consiste em utilizar todas as chaves possíveis até que se
obtenha uma que decifre ao texto cifrado para texto claro. Em média metade das chaves
possíveis precisa ser testada para que se obtenha sucesso.
Até a década 1970 todos os sistemas criptográficos exigiam que o emissor e receptor
usassem a mesma chave para cifrar e decifrar as mensagens, o que dificulta o uso deste tipo
de abordagem, pois as duas partes precisam em concordar em utilizar a mesma e compartilhar
essa chave de forma segura (KUROSE; ROSS, 2009).
33
Como a chave cedida por João é capaz de apenas cifrar mensagens, qualquer pessoa
pode ter acesso à essa chave pública, pois mesmo que ela caia em mãos erradas, será
completamente inútil para decifrar qualquer texto cifrado por esta chave pública. Isso ocorre,
pois a chave utilizada para decifrar os textos cifrados é chamada de chave privada, a qual
deve estar em posse apenas de João e mais nenhuma outra pessoa, caso contrário toda a
comunicação estará comprometida (STALLINGS, 2008).
Tabela 1 ‐ Comparativo entre o que é necessário para a criptografia de chaves assimétrica e simétrica
funcionarem
Criptografia de chave assimétrica Criptografia de chave simétrica
Necessário para funcionar Necessário para funcionar
Tabela 2 ‐ Comparativo entre o que é necessário para a segurança da criptografia de chaves
assimétrica e simétrica
Criptografia de chave assimétrica Criptografia de chave simétrica
1. A chave precisa permanecer secreta. 1. Uma das duas chaves precisa permanecer
2. Deverá ser impossível ou pelo menos secreta.
impraticável decifrar uma mensagem se 2. Deverá ser impossível ou pelo menos
nenhuma outra informação estiver impraticável decifrar uma mensagem se
disponível. nenhuma outra informação estiver
O conhecimento algoritmo mais amostras do disponível.
texto cifrado precisam ser insuficientes para O conhecimento do algoritmo mais uma das
determinar a chave. chaves mais amostras do texto cifrado precisa ser
insuficiente para determinar a outra chave.
Fonte: Stallings, p. 184
2.3 Esteganografia
Dado embutido ou embedded data – é o dado que será enviado de maneira secreta,
normalmente em uma mensagem, texto ou imagem.
Figura 9 ‐ Ilustração do uso da esteganografia em uma imagem
Adaptado de: JULIO; BRAZIL; ALBUQUERQUE, 2007
Técnicas de esteganografia simples têm sido utilizadas há centenas de anos, mas com
o aumento do uso de arquivos em formato eletrônico, novas técnicas de ocultação de
informação tornaram-se possíveis.
Heródoto conta que em torno de 440 A.C Histiaeus raspou a cabeça de seu escravo
mais confiável e tatuou uma mensagem que desapareceu depois que o cabelo tinha crescido.
36
O objetivo desta mensagem era para instigar uma revolta contra os persas. Outro escravo
poderia ser usado para enviar uma resposta. Heródoto também descreve que, um mensageiro
para burlar a segurança, se disfarçou de caçador e escondeu a mensagem dentro de uma lebre
(JULIO; BRAZIL; ALBUQUERQUE, 2007 apud KHAN 1996).
Esteganografia também foi usado nas duas Guerras Mundiais. Espiões alemães
esconderam texto usando tinta invisível para imprimir pequenos pontos acima ou abaixo de
letras e, alterando as alturas de cursos de letras, neste mesmo período foram utilizadas tintas
invisíveis que só eram visíveis após a aplicação de um determinado reagente (CUMMINS et
al, 2004; JULIO; BRAZIL; ALBUQUERQUE, 2007).
37
Figura 10 ‐ Grelha de Cardano
Fonte: Cheddad, et al, 2010
Figura 11 ‐ Ocultação do código Morse em um desenho
Fonte: Cheddad, et al, 2010
dos bits menos significativos (LSB) da imagem de cobertura. Em uma aplicação simples que
utiliza essa técnica, todo plano LSB é substituído por stego-dados.
vídeo, maior será a possibilidade do método esteganográfico ser detectado (JULIO, BRAZIL,
NEVES, ALBUQUERQUE, 2007).
Figura 12 – Mecanismo de retransmissão por timeout genérico
Adaptado de: Mazurczyk, Smolarczyk, Szczypiorski; 2009
41
Figura 13 ‐ Esteganografia de retransmissão
Adaptado de: Mazurczyk, Smolarczyk, Szczypiorski; 2009
A análise estatística, analisa as imagens por meio da aplicação de testes estatísticos a fim
de encontram anomalias em imagens. Tais testes utilizados são o coeficiente de chi quadrado,
análise de blockiness (distorção que torna a imagem “pixelada” em algumas áreas),
comparação de pixel dentre outras. A presença de ruído aumenta a dificuldade de um sistema
de detecção encontrar uma mensagem esteganografia e alguns casos é propositalmente
inserido (CHEN, et al, 2012).
1
HUFFMAN, D. A. A Method for the construction of minimum-redundancy codes. In: PROCEEDINGS OF
THE I.R.E.,9, 1952, New York, Proceedings… New York: I.R.E., 1953, p. 1098-1101
43
Figura 14 ‐ Histograma do coeficiente AC de 1000 imagens JPEG sem esteganografia
Fonte: Chen, et al, 2012
44
Figura 15 ‐ Histograma dos seguintes algoritmos esteganográficos (a) F5; (b) JPEG‐JSteg v1; (c) JPEG‐
JSteg v4; (d) Model‐Based v1.2; (e) Outguess v0.2; and (f) Steghide v0.5.1.
Fonte : Chen, et al, 2012
Como pode ser visto, as alterações feitas nos valores dos coeficientes dos histogramas
tanto do JPEG-JStegno v1 e JPEG-JStegno v4 são óbvias. Métodos de esteganografia sobre o
formato JPEG como o F5, Model-Based v1.2, OutGuess v0.2 e Steghide v0.5.1 mostrados na
figura 11 (a), (d), (e) e (f) manipulam os coeficientes propositalmente para aumentar a
dificuldade de uma análise estatística. Em cada um destes procedimentos experimentais as
alterações no tamanho dos arquivos foram de aproximadamente 0,1 KB, 0,2 KB, 0,3 KB, 0,4
KB, 0,5 KB, 1,0 KB, e 1,5 KB respectivamente (CHEN, et al, 2012).
2.3.5 Algoritmo F5
O algoritmo F5 foi proposto por Andreas Westfeld (2001) e seus principais benefícios
são:
Figura 16 ‐ As áreas em rosa mostra onde foram feitas alterações na imagem para incorporação da
mensagem
Fonte: Westfeld, 2001
46
Figura 17 ‐ As áreas em rosa mostram onde foram feitas alterações para a incorporação da
mensagem utilizando o algoritmo F5.
Fonte: Westfeld, 2001
A figura 18 mostra os passos utilizados para incorporação de dados pelo algoritmo F5.
O primeiro passo é a aplicação do DCT2 e a quantização, que são utilizados para comprimir a
imagem, a entrada da quantização é o fator de qualidade que será empregado na imagem,
sendo que quanto maior esse fator, menor será o arquivo resultante e por sua vez terá menor
qualidade gráfica (SILVA, 1998). Antes e após a incorporação da mensagem é utilizada a
permutação que fará a distribuição de onde será inserida a mensagem, segundo os números
gerados pelo pseudo-gerador de números aleatórios, que por sua vez utiliza a stegano-chave
como semente de aleatoriedade. Após isso é aplicado codificação de Huffman para compactar
o arquivo.
Figura 18 ‐ Sequencia de passos do algoritmo F5 na incorporação de uma mensagem
Fonte: Westfeld, 2001
conhecida como Java API, que facilita a implementação de programas por já terem prontas
inúmeras implementações, que vão de estruturas de dados a componentes de interface gráfica.
Mas no entanto a linguagem Java não traz nenhuma biblioteca de classe que implementa um
método esteganográfico e este trabalho tem como objetivo colaborar em reduzir essa lacuna.
A GNU GPL (General Public License) foi criada em 1989 e se baseia nessas quatro
liberdades, além de trazer informações legais e técnicas sobre o uso do código-fonte de um
software licenciado sob a GPL, mas ela possui algumas restrições no que diz respeito a
utilização de uma biblioteca licenciada utilizando a GPL em um software proprietário. Por
isso em 1991 foi criada a LGPL para licenciar bibliotecas, tornando possível a utilização de
uma biblioteca livre em um software proprietário sem infringir seu licenciamento.
3
Mais informações sobre a Free Software Foundation: http://www.fsf.og
49
Este trabalho, se diferencia dos demais citados, por desenvolver uma biblioteca sob a
licença LGPL e utilizar o algoritmo F5, além de realizar um estudo de caso comparando com
a criptografia.
Capítulo
51
3 Metodologia
A IDE utilizada para auxiliar o desenvolvimento foi o NetBeans4, por se tratar de uma
IDE de código aberto e com vários recursos que facilitam o desenvolvimento.
4
Disponível para download em: https://netbeans.org/features/index.html
5
Disponível em: http://openjdk.java.net/projects/jdk7/
52
Tabela 3 ‐ Ambiente de Desenvolvimento
Ambiente de Desenvolvimento
Software Versão
NetBeans 7.4
OpenJDK 7
GIT 1.8.4.1
6
Repositório da biblioteca: https://github.com/ricardoborgesjr/JavaSteganoLibrary
7
Licença LGPL na integra está disponível em (inglês): http://www.gnu.org/licenses/lgpl-3.0.txt
8
Fontes da implementação do algoritmo disponível em: https://www2.htw-
dresden.de/~westfeld/publikationen/f5r11.zip
53
1. import stegano.f5.Embed;
3. {
5. {
12. }
13 }
1. import stegano.f5.Extract;
3. {
5. {
10. }
11. }
54
Das três aplicações desenvolvidas, uma aplicação transmite dados sem qualquer tipo
de mecanismo de segurança e outras duas utilizarão, respectivamente, criptografia e
esteganografia como métodos de segurança.
O sistema criptográfico utilizado foi o AES com uma chave de 128 bits, e aplicação
utilizando a esteganografia foi implementada com o auxílio da biblioteca desenvolvida neste
trabalho.
Foram realizados experimentos em cifrar e embutir dados de 100 kilobytes (KB), 256
KB, 512 KB, 1 megabyte (MB) e 2 MB, e cada experimento é composto por dez execuções
consecutivas para a obtenção de dados mais confiáveis.
Tabela 4 ‐ Especificações de hardware e software utilizados
Processador AMD Phenom II X6 1055T 2.8 GHz
Memória 6 GB
Sistema Operacional GNU/Linux 3.13 AMD64
JVM OpenJDK 7 AMD64
Para transmissão de dados pela internet foi utilizada uma conexão com velocidade de
2048 Kbps para download e 350 Kbps para upload.
Com os dados obtidos das análises foi elaborado um gráfico comparativo entre as duas
aplicações que adotam um mecanismo de segurança e a aplicação sem qualquer sistema de
segurança.
Foram utilizadas imagens em escala de cinza para a incorporação dos dados utilizando
o F5. Esta escolha teve como objetivo gerar resultados mais uniformes, pois assim as imagens
teriam características semelhantes. Seria difícil conseguir a mesma uniformidade utilizando
imagens coloridas, pois a quantidade de variações nas imagens é maior, em especial no que
diz respeito a cromaticidade. Na tabela 4 encontra-se a relação de imagens utilizadas em cada
experimento assim como seu respectivo tamanho.
Tabela 5 ‐ relação as imagens utilizadas em cada experimento
Tamanho do arquivo (kilobytes) Tamanho da imagem (kilobytes)
Experimento 1 100 6458
Experimento 2 256 8996
Experimento 3 512 18597
Experimento 4 1024 19200
Experimento 5 2048 31785
Capítulo
56
4 Resultados
4.1.1 Experimento um
Figura 19 ‐ Consumo de memória na incorporação no experimento um
Figura 20 ‐ Consumo de processador na incorporação do experimento um
Figura 21 ‐ Consumo de memória na extração do experimento um
Figura 22 ‐ Consumo de processador na extração do experimento um
Figura 23 ‐ Consumo de processador na incorporação do experimento dois
Figura 24 ‐ Consumo de processador na incorporação do experimento dois
Figura 25 ‐ Consumo de memória na extração do experimento dois
Figura 26 ‐ Consumo de processador na extração do experimento dois
Figura 27 ‐ Consumo de memória na incorporação do experimento três
Figura 28 ‐ Consumo de memória na extração do experimento três
Figura 29 ‐ Consumo de processador na incorporação do experimento três
62
Figura 30 ‐ Consumo de processador na extração do experimento três
Nesse experimento foi possível verificar o motivo das variações dos resultados obtidos
nos experimentos anteriores em relação ao consumo de processador quando dados eram
embutidos nas imagens.
Primeiramente será mostrado no gráfico da figura 31 o resultado da coleta de dados
em relação ao consumo de processador durante a incorporação do arquivo na imagem.
Figura 31 ‐ Consumo de processador na incorporação do experimento quatro
Figura 32 ‐ Consumo de processador durante a quinta execução no processo de incorporação do
experimento quatro
Figura 33 ‐ Consumo de processador durante a sexta execução no processo de incorporação do
experimento quatro
Fica visível que na maior parte do tempo ambas as aplicações possuem o mesmo
comportamento, porém, ocorre um alto consumo de processamento por volta dos 10 primeiros
segundos após o início do processo e após isso a utilização de CPU fica estabilizada, com
variações entre 16 e 18 por cento do processador.
Esse pico de processamento é causado pelo método getYCCArray na classe JpegInfo,
este método cria e preenche apartir da imagem de entrada três matrizes, Y (que contém a
64
Figura 34 ‐ Consumo de memória na incorporação do experimento quatro
Existe uma diferença de 457,7 megabytes entre o menor e o maior consumo, sendo
eles registrados nas execuções dois e dez respectivamente. Na figura 35 temos o gráfico de
consumo de memória durante a segunda execução nesse experimento. Enquanto a figura 36
possui o gráfico que mostra o consumo da décima execução, na área em azul de ambos os
gráficos temos a quantidade de memória utilizada enquanto a área laranja se refere a memória
alocada pela JVM.
65
Figura 35 ‐ Consumo de memória durante a segunda execução no processo de incorporação do
exeperimento quatro
Figura 36 ‐ Consumo de memória durante a décima execução no processo de incorporação do
exeperimento quatro
A extração por outro lado teve execução uniforme durante todas as execuções, nas
figuras 37 e 38 temos o gráfico de consumo de processador das execuções dois e três, sendo
possível notar que ambas obtiveram resultados semelhantes.
66
Figura 37 ‐ Consumo de memória durante a segunda execução no processo de extração do
experimento quatro
Figura 38 ‐ Consumo de memória durante a terceira execução no processo de extração do
experimento quatro
Fica visível que ocorreram apenas pequenas variações entre as duas execuções,
diferentemente do processo de incorporação onde as variações eram maiores. A seguir temos
a figura 39 com o gráfico da utilização de memória durante a extração em todas as execuções
realizadas neste experimento.
67
Figura 39 ‐ Consumo de memória no processo de extração no experimento quatro
Figura 40 ‐ Consumo de processador durante a segunda execução no processo de extração do
experimento quatro
68
Figura 41‐ Consumo de processador durante a terceira execução no processo de extração do
experimento quatro
Figura 42 ‐ Consumo de processador no processo de extração no experimento quatro
anterior foi de 85,6%. O gráfico da figura 43 mostra o consumo de cada execução desse
experimento.
69
Figura 43 ‐ Consumo de processador no processo de incorporação no experimento cinco
Por outro lado, o consumo de memória foi superior ao experimento quatro e também
esse foi o único experimento onde a quantidade de memória utilizada obteve média acima da
média da quantidade alocada pela JVM. As respectivas médias de consumo foram 2954,7
megabytes e 2929 megabytes, a figura 44 possui o gráfico com o consumo de memória das
Figura 44‐ Consumo de memória no processo de incorporação no experimento cinco
Foi obtida uma média de 2859,3 megabytes de memória utilizada e 2929,0 megabytes
Figura 45 ‐ Consumo de memória no processo de extração no experimento cinco
Figura 46 ‐ Consumo de processador no processo de extração no experimento cinco
4.2.1 Experimento um
Figura 47 ‐ Consumo de memória no processo de cifragem no experimento um
Figura 48 ‐ Consumo de processador no processo de cifragem no experimento um
Figura 49 ‐ Consumo de memória no processo de decifragem no experimento um
72
Figura 50 ‐ Consumo de processador no processo de decifragem no experimento um
Figura 51 ‐ Consumo de memória no processo de cifragem no experimento dois
Figura 52 ‐ Consumo de processador no processo de cifragem no experimento dois
73
Figura 53‐ Consumo de memória no processo de decifragem no experimento dois
Figura 54‐ Consumo de processador no processo de decifragem no experimento dois
memória consumida na cifragem. Nas figuras 55 e 56 são apresentados os gráficos com o uso
Figura 55 ‐ Consumo de memória no processo de cifragem no experimento três
Figura 56 ‐ Consumo de processador no processo de cifragem no experimento três
Figura 57‐ Consumo de memória no processo de decifragem no experimento três
75
Figura 58 ‐ Consumo de processador no processo de decifragem no experimento três
Figura 59 ‐ Consumo de memória no processo de cifragem no experimento quatro
Figura 60 ‐ Consumo de processador no processo de cifragem no experimento quatro
76
Figura 61 ‐ Consumo de memória no processo de decifragem no experimento quatro
Figura 62 ‐ Consumo de processador no processo de decifragem no experimento quatro
Figura 63 ‐ Consumo de memória no processo de cifragem no experimento cinco
Figura 64 ‐ Consumo de processador no processo de cifragem no experimento cinco
Figura 65 ‐ Consumo de memória no processo de decifragem no experimento cinco
78
Figura 66 ‐ Consumo de procesador no processo de decifragem no experimento cinco
Figura 67 ‐ Consumo médio de mémoria no incorporação e cifragem
79
Figura 68 ‐ Consumo médio de mémoria no processo de extração e decifragem
Figura 69 ‐ Consumo médio de processador no processo de incorporação e cifragem
80
Figura 70‐ Consumo médio de processador no processo de extração e decifragem
Como pode ser visto as imagens com o arquivo embutido pela esteganografia são
maiores que o arquivo cifrado, e os arquivos cifrados por sua vez têm quase o mesmo
tamanho dos arquivos sem a utilização de quaisquer tipos de mecanismos de segurança.
83
5 Conclusões
Com base na análise dos resultados obtidos nos experimentos, conclui-se que apesar
de a esteganografia também ser uma alternativa em relação à criptografia, ainda existe um
grande caminho a ser percorrido para que a técnica seja empregada de forma tão abrangente
como a criptografia.
O atual estágio da esteganografia mostra que sua aplicação em dispositivos com pouco
poder de processamento, como dispositivos móveis, pode se tornar inviável mesmo com os
grandes avanços que essa área vem sofrendo atualmente.
Apesar de a esteganografia ser uma técnica antiga ela ainda não foi explorada em sua
totalidade na computação e por isso abre espaço para que novos estudos e técnicas sejam
84
Em alguns trechos da biblioteca foi verificado que ela utiliza processamento de forma
paralela, mas por outro lado existem partes onde todo processamento é feito de forma
sequencial.
Projetos futuros podem se empenhar em tonar uma maior quantidade de código
executável de forma paralela.
Futuramente outros projetos podem se esforçar em tornar a aplicação do F5 possível
em outros formatos de imagens e arquivos, como por exemplo em vídeo e áudio, assim como
a análise de desempenho nesses formatos.
Uma outra abordagem é portar a biblioteca para utilização em GPU (Graphics
Processing Unit) que possuem um grande poder de processamento paralelo, podendo obter
resultados relevantes.
85
Referências
CHEDDAD, A., et al. Digital image steganography: Survey and analysis of current methods.
Signal Processing, Amsterdam, v. 90, n. 3, p. 727-752, Mar. 2010.
CHEN, C. L. P., et al. A pattern recognition system for JPEG steganography detection.
Optics Communications, Amsterdam, v. 285, n. 21-22, p. 4253-4261, Oct, 2012.
CUMMINS, J.; DISKIN, P.; LAU, S.; PARLETT, R. Steganography and digital
watermarking. In: Computer Security, 2004, 2004, Birmingham. Seminary... Birmingham,
2004: The University of Birmingham, 2004, p. 1 – 24.
DEITEL, H. M. , DEITEL, P . J. . Java - Como programar, 8 ed., São Paulo: Pearson, 2010.
EL-EMAM, N. N.; Hiding a large amount of data with high security using steganography
Algorithm. Journal of Computer Science, New York, v. 3, n. 4, p. 223-232, 2007.
86
GNU PROJECT. What is Free Software?. The GNU operating system. 2013. Disponível
em: http://www.gnu.org. Acesso em: 02 nov. 2013.
Java Community Process. Overview. The Java Community Process. 2013. Disponível em:
http://www.jcp.org. Acesso em: 27 out. 2013.
JAVA COMMUNITY PROCESS. FAQ: What is the Java Community Process (JCP)?. JCP, 2014.
Disponível em: <https://www.jcp.org/en/introduction/faq#jcp>. Acesso em 05 jul. 2014.
SCHNEIDER, D. The state of network necurity. Network Security, San Francisco, v. 2012,
n. 2, p. 14-20, feb. 2012.
SIMMONS, G. J. The prisoners’ problem and the subliminal channel. In: CHAUM D. (Org.)
Advances in cryptology: Proceedings of Crypto 83, Nova York: Spinger, 1984. p. 51 – 67
SHAHREZA, M. S. A New Method for Steganography in HTML Files. In: Elleithy, K.;
Sobh, T.; Mahmood, A.; Iskander, M.; Karim, M. (Org.). Proceedings of IETA 2005, TeNe
2005, EIAE 2005. Houten: Spinger Netherlands, 2006. p. 247 – 252.