Você está na página 1de 58

0

FUNDAO DE ENSINO EURPIDES SOARES DA ROCHA


CENTRO UNIVERSITRIO EURPIDES DE MARLIA UNIVEM
CURSO DE CINCIA DA COMPUTAO

RAPHAEL RODRIGUES HONDA

ANLISE E IMPLEMENTAO DE ALGORITMOS PARA


MANIPULAO DE ESTEGANOGRAFIA EM IMAGENS

MARLIA
2011

RAPHAEL RODRIGUES HONDA

ANLISE E IMPLEMENTAO DE ALGORITMOS PARA


MANIPULAO DE ESTEGANOGRAFIA EM IMAGENS

Trabalho de Curso apresentado ao Curso de


Cincia da Computao da Fundao de
Ensino Eurpides Soares da Rocha,
mantenedora
do
Centro
Universitrio
Eurpides de Marlia UNIVEM, como
requisito para obteno do grau de Bacharel
em Cincia da Computao. Marketing,
Comrcio Exterior.

Orientador:
Prof. Ms. MAURICIO DUARTE

MARLIA
2011

Pela memria de Irene Ernestina Werklin da Silva.

AGRADECIMENTOS

Agradeo a todos que me ajudaram direta ou indiretamente durante a faculdade


e no desenvolvimento deste trabalho: meus amigos Benito, Z, Mrcio,
Jonathan, Fernando, Fernando Yokota, Laura e Helena. Agradeo tambm
meu professor e orientador Mauricio Duarte pela pacincia.
Agradeo principalmente minha famlia, em especial minha me, minha av e
minhas tias que sempre me ajudaram e me incentivaram nesses quatro anos de
formao.
Tambm no posso esquecer da minha namorada Amanda, que foi muito
paciente e compreensiva na reta final do meu trabalho, quando as coisas no
iam to bem. Amanda, obrigado pela companhia e por me dar fora sempre!
Sou grato tambm a minha coordenadora do ensino mdio, Ana Dolores, por
acreditar em mim mesmo quando eu no merecia.
Renato, Dog, Gordo e Alice: Oriente nunca mais!

"Let it be, let it be, let it be..."


(John Lennon and Paul McCartney)

HONDA, Raphael Rodrigues. Anlise e Implementao de Algoritmos para Manipulao


de Esteganografia em Imagens. 2011. 55 f. Centro Universitrio Eurpides de Marlia,
Fundao de Ensino Eurpides Soares da Rocha de Marlia, 2011.

RESUMO

Este trabalho, intitulado "Anlise e Implementao de Algoritmos para Manipulao de


Esteganografia em Imagens", visa estudar e analisar a historia da esteganografia e as
diferentes tcnicas esteganogrficas existentes, bem como implementar algoritmos
esteganogrficos para imagens digitais.

Palavras-chave: esteganografia, criptografia, segurana, imagem.

HONDA, Raphael Rodrigues. Anlise e Implementao de Algoritmos para Manipulao


de Esteganografia em Imagens. 2011. 55 f. Centro Universitrio Eurpides de Marlia,
Fundao de Ensino Eurpides Soares da Rocha de Marlia, 2011.

ABSTRACT

This work, entitled "Analysis and implementations of Algorithms for Manipulating


Steganography in Images" aims to study and analyze the history of steganography and the
different steganography techniques, as well as implementing steganographics algorithms for
digital images.

Keywords: steganography, cryptography, security, image.

LISTA DE ILUSTRAES

Figura 1 - A Typical Cloud Computing System (HowStuffWorks, 2011). .......................... 16


Figura 2 - Gartner/Instituto sem Fronteiras Rota de crescimento Investimento das
empresas em TI (Sassi, 2011). ............................................................................................ 17
Figura 3 - Captcha do site www.google.com.br (Google, 2011)............................................ 20
Figura 4 - Criptografia e suas ramificaes (Prpria). ........................................................... 24
Figura 5 - Processo Criptogrfico (Prpria). ......................................................................... 25
Figura 6 - Exemplo de Cifra das colunas (Prpria). .............................................................. 26
Figura 7 - Cifra de Csar (Prpria). ...................................................................................... 27
Figura 8 Processo de Criptografia Assimtrica (PUBLIC KEY) (DevMedia , 2011). .......... 30
Figura 9 - Sinal analgico e sinal digital (Prpria). ............................................................... 35
Figura 10 - Processo esteganogrfico de ocultao da mensagem (Prpria). ......................... 39
Figura 11 - Processo esteganogrfico de revelao de mensagem (Prpria). ......................... 40
Figura 12 - Vermelho, Verde e Azul como cores primrias (Sistema RGB) (ER Associados,
2011).................................................................................................................................... 41
Figura 13 - Algoritmo de insero direta mtodo de ocultao (Prpria). ........................... 42
Figura 14 - Algoritmo de insero direta mtodo de revelao (Prpria). ........................... 43
Figura 15 - Algoritmo de insero direta - mtodo principal (Prpria). ................................. 43
Figura 16 - Processo esteganogrfico (Viva o linux, 2011). .................................................. 44
Figura 17- LSB Sequencial (Prpria).................................................................................... 45
Figura 18 - Extrao dos bits da letra que foram ocultados nos pixels da imagem (Prpria). . 47
Figura 19 - Gerao de posies aleatrias para armazenamento da mensagem (Prpria). .... 48
Figura 20 - Imagem portadora antes da insero da mensagem (Algoritmo Insero Direta)
(Prpria). ............................................................................................................................. 49
Figura 21 - Imagem portadora depois da insero da mensagem (Algoritmo Insero Direta)
(Prpria). ............................................................................................................................. 50
Figura 22 - Imagem portadora antes da insero da mensagem (Algoritmo LSB Sequencial)
(Prpria). ............................................................................................................................. 51
Figura 23 - Imagem portadora depois da insero da mensagem (Algoritmo LSB Sequencial)
(Prpria). ............................................................................................................................. 51
Figura 24 - Imagem portadora antes da insero da mensagem (Algoritmo LSB Randmico)
(Prpria). ............................................................................................................................. 52

Figura 25 - Imagem portadora depois da insero da mensagem (Algoritmo LSB Randmico)


(Prpria). ............................................................................................................................. 53

10

LISTA DE ABREVIATURAS E SIGLAS

ASCII: American Standard Core for Information Interchange


BMP: Bitmap Image
CAPTCHA: Completely Automated Public Turing Test to Tell Computers And Humans Apart
DES: Data Encryption Standard
DNS: Domain Name System
DNSSEC: Domain Name System Security Extensions
IDEA: International Data Encryption Algorithm
IDS: Intrusion Detection Systems
HTTP: Hypertext Transfer Protocol
IP: Internet Protocol
IPSec: Internet Protocol Security
JPG: Joint Photographic Group
JPEG: Joint Photographic Expert Group
LSB: Least Significant Bit
MD5: Messa-Digest Algorithm 5
NSA: National Security Agency
PGP: Pretty Good Privacy
PKI: Public Key Infrastructure
RGB: Red Green Blue
SAAS: Software As a Service
SHA: Secure Hash Algorithm
SSH: Secure Shell
SSL: Secure Sockets Layer
TI: Tecnologia da Informao

11

LISTA DE TABELAS

Tabela 1 - Cifra de Colunas com Permutao (Prpria). ....................................................... 27


Tabela 2 - Alfabeto Cifrado (cifra de csar) (Prpria). .......................................................... 27
Tabela 3 - Sistemas Simtricos (Jasper, 2009). ..................................................................... 31
Tabela 4 - Tipos de ataques a mensagens criptografadas (Stallings, 2008). ........................... 32
Tabela 5 - Diferenas entre eteganografia e criptografia (Kipper, 2004)................................ 33
Tabela 6 - Tcnicas de esteganografia (Prpria). ................................................................... 34
Tabela 7 - Bits utilizados no algoritmo LSB sequencial (Prpria). ........................................ 45

12

LISTA DE GRFICOS

Grfico 1 - Grfico do tempo de execuo dos algoritmos (Prpria). .................................... 53


Grfico 2 - Grfico do tamanho da imagem portadora antes e depois da insero da mensagem
(em Kbytes) (Prpria). ......................................................................................................... 54

13

SUMRIO

INTRODUO ................................................................................................................... 15
CAPTULO 1 SEGURANA DA INFORMAO .......................................................... 16
1.1. Introduo ................................................................................................................. 16
1.2. Poltica de Segurana e Ataques ................................................................................ 18
1.2.1. Denial of Service DOS/DDOS (Negao de Servio) ............................................. 18
1.2.2. Spoofing................................................................................................................. 18
1.2.3. Man in the Middle.................................................................................................. 19
1.2.4. Sniffing .................................................................................................................. 19
1.2.5. DNS Poisoning ...................................................................................................... 19
1.2.6. Brute Force ............................................................................................................ 20
1.2.7. Phishing................................................................................................................. 20
1.2.8. Software Exploitation ............................................................................................. 21
1.2.9. Buffer Overflow ..................................................................................................... 21
1.2.10.
Port Scanning..................................................................................................... 22
1.2.11. Engenharia Social .................................................................................................. 22
1.3. Consideraes Finais do Captulo .............................................................................. 23
CAPTULO 2 CRIPTOLOGIA ......................................................................................... 24
2.1. Criptografia ............................................................................................................... 24
2.1.1. Cdigos ................................................................................................................. 25
2.1.2. Cifras ..................................................................................................................... 25
2.1.2.1.
Cifras de Transposio ....................................................................................... 26
2.1.2.1.1.
Cifra de Colunas ............................................................................................. 26
2.1.2.1.2.
Cifra de Colunas com Permutao .................................................................. 26
2.1.2.2.
Cifras de Substituio ......................................................................................... 27
2.1.3. Tcnicas de Criptografia Computacional ................................................................ 28
2.1.3.1.
Principais Tcnicas da Criptografia Moderna...................................................... 28
2.1.3.1.1.
Funes de Hash Criptogrfico ....................................................................... 28
2.1.3.1.1.1. MD5 ............................................................................................................... 28
2.1.3.1.1.2. SHA ............................................................................................................... 29
2.1.3.1.1.3. Sistemas Free/Open Source............................................................................. 29
2.1.3.1.1.3.1. PGP............................................................................................................. 29
2.1.3.1.1.3.2. GPG ............................................................................................................ 29
2.1.3.1.1.3.3. SSH............................................................................................................. 29
2.1.3.1.2.
Algoritmos Assimtricos ou de Chave Pblica ................................................ 29
2.1.3.1.3.
Criptografia de Curvas Elpticas ..................................................................... 30
2.1.3.1.4.
Sistema de Chaves Simtricas ......................................................................... 30
2.1.4. Criptoanlise .......................................................................................................... 31
2.2. Esteganografia ........................................................................................................... 32
2.2.1. Histrico ................................................................................................................ 33
2.2.2. A importncia da esteganografia ............................................................................ 34
2.2.3. Principais Tcnicas ................................................................................................ 34
2.2.3.1.
Rudos ................................................................................................................ 34
2.2.3.2.
Substituio ........................................................................................................ 35
2.2.3.3.
Insero .............................................................................................................. 36

14

2.2.3.4.
Transformao de Domnio ................................................................................ 36
2.2.3.5.
Gerao de Cobertura ......................................................................................... 36
2.2.3.6.
Distoro ............................................................................................................ 36
2.2.4. Esteganlise ........................................................................................................... 37
2.2.5. Desvantagens ......................................................................................................... 37
2.3. Consideraes Finais do Captulo .............................................................................. 38
CAPITULO 3 METODOLOGIA, IMPLEMENTAO E ANLISE ............................... 39
3.1. Metodologia e Projeto ............................................................................................... 39
3.1.1. Imagens Digitais e Sistema de Cores RGB ............................................................. 40
3.2. Algoritmos ................................................................................................................ 41
3.2.1. Insero Direta....................................................................................................... 41
3.2.2. LSB Sequencial ..................................................................................................... 44
3.2.3. LSB Randmico .................................................................................................... 47
3.3. Anlise ...................................................................................................................... 48
CAPITULO 4 CONCLUSES ......................................................................................... 55
4.1. Sugestes de continuidade ......................................................................................... 55
REFERNCIAS .................................................................................................................. 56

15

INTRODUO
O objetivo principal deste trabalho fazer uma anlise de como a esteganografia, em
conjunto com outros elementos da criptologia, importante para a segurana das informaes
que trafegam na rede entre clientes e servidores, atravs do estudo da histria, conceitos e
algoritmos da esteganografia. Algoritmos esteganograficos para imagens digitais sero
implementados e analisados para que se possa confirmar, ou no, sua viabilidade como
ferramenta para segurana da informao. Tambm objetivo deste trabalho ser uma fonte de
consulta sobre histrico da esteganografia e reas relacionadas.

16

CAPTULO 1 SEGURANA DA INFORMAO


1.1.

Introduo
Quando se fala de segurana de sistemas, o que exige maior ateno so a segurana

das informaes armazenadas nos bancos de dados desses sistemas e os dados que trafegam
entre clientes e servidores.
Nos primrdios da informtica, as aplicaes eram desenvolvidas e os dados gerados
por essas aplicaes eram armazenados localmente, em arquivos ou banco de dados
administrados tambm localmente. Mas com a popularizao da internet e o aumento
significativo de velocidade das redes de computadores, surgiram alternativas para o modelo
local de processamento e armazenamento de dados. Termos como Cloud Computing
(Computao em Nuvem, quando o processamento e os dados de uma aplicao ficam em
servidores administrados por terceiros) e SaaS Software as a Service (Software como
Servio, quando um software vendido no formato de um servio na web, no sendo
necessria a instalao do software na mquina cliente) surgiram, aumentando a quantidade
de informaes importantes circulando na internet.

Figura 1 - A Typical Cloud Computing System (HowStuffWorks, 2011).

Os dados importantes das empresas costumavam ficar dentro do espao fsico da


mesma, logo, as preocupaes com segurana eram menores. Porm, com a modernizao de
alguns meios, muitas empresas agora mantm suas aplicaes e banco de dados em servidores

17

administrados por terceiros, como mostra a figura 1. Isto acontece devido a uma srie de
vantagens que a computao em nuvem ou o modelo de software como servio proporciona,
reduzindo gastos com infra-estrutura e funcionrios especializados.
Vantagens da computao em nuvem:

Reduz problemas de compatibilidade com sistema operacional e hardware

(Parte fsica do computador), j que o software geralmente acessado por um browser


(navegador) atravs do protocolo HTTP (Hypertext Transfer Protocol - Protocolo de
Transferncia de Hipertexto).

Infraestrutura mais simples, gerando menos gastos e manuteno.

Trabalho corporativo e compartilhamento de arquivos mais fcil.

Em contrapartida, as informaes das empresas que circulam na rede ficam mais


vulnerveis a ataques, por isso muito importante que se tenha uma poltica de segurana a
fim de evitar o vazamento desses dados.
Segundo uma matria do site especializado no mercado de TI (Tecnologia da
Informao), COMPUTERWORLD (ComputerWorld, 2010), 5% de todo o investimento em
TI vai para a rea de segurana da informao.

Figura 2 - Gartner/Instituto sem Fronteiras Rota de crescimento Investimento das empresas em


TI (Sassi, 2011).

Levando em considerao a figura 2, que mostra o grfico do crescimento do


investimento em TI das empresas no Brasil e no mundo, observa-se que foi gasto, em mdia,
nos anos de 2010 e 2011, uma quantia de aproximadamente 71 bilhes de dlares em
segurana da informao no mercado mundial de TI.
Essa quantidade de dinheiro investido em segurana da informao mostra que a
cada dia as empresas esto mais preocupadas em proteger suas informaes sigilosas de
ataques.

18

1.2.

Poltica de Segurana e Ataques


Segundo Lyra (2008), um ataque um tipo de incidente de segurana caracterizado

pela existncia de um agente que busca obter algum tipo de retorno, atingindo algum ativo de
valor.
Existem vrios tipos de ataques, cada um deles utiliza-se de uma tcnica e tm como
objetivo simplesmente afetar a disponibilidade de informaes ou capturar as mesmas, a
seguir sero listados os principais:

1.2.1. Denial of Service DOS/DDOS (Negao de Servio)


O objetivo deste tipo de ataque tornar um servio indisponvel para os usurios. Ele
foca em derrubar servios enviando uma quantidade excessiva de dados ao mesmo tempo para
o servidor, fazendo com que este no suporte a demanda, causando assim, a interrupo do
mesmo. Tambm conhecido como flood.
Preveno/Soluo: existem algumas estratgias para evitar este tipo de ataque.
Entre elas, a de sempre manter os sistemas atualizados (pois se sabe que este tipo de ataque
usufrui de vulnerabilidades conhecidas de sistemas operacionais e de segurana), utilizar
filtros anti-spoofing (evita ataques utilizando a tcnica de spoofing, onde o IP verdadeiro do
atacante alterado, dificultando assim a identificao da origem do ataque) e a limitao de
banda por tipo de trfego, onde a banda para trfego de pacotes especficos limitada,
evitando que haja o flood.

1.2.2. Spoofing
O Spoofing uma tcnica que pode ser utilizada para dois principais fins, um deles
mascarar o IP do atacante com um IP geralmente de redes locais, para dificultar sua
identificao e assim poder enviar pacotes a fim de derrubar o servio atacado, e o outro
descobrir um host confivel, mascarar o prprio IP com este host confivel e ento conseguir
acesso a uma rede, enviando pacotes como se fosse outro remetente conhecido na rede.
Preveno/Soluo: no implementar autenticao por endereo de origem e
configurar a rede para no aceitar pacotes de outras redes que utilizem um endereo local.

19

1.2.3. Man in the Middle


Neste tipo de ataque, o atacante intercepta o trfego se posicionando entre as partes
de uma comunicao, fazendo com que as partes comunicantes no percebam sua presena, e
assim captura informaes trocadas entre os envolvidos. Sistemas de comunicao sem fio
esto mais propcios a esse tipo de ataque.
Preveno/Soluo: manter o sistema atualizado, implantar estrutura de chave
pblica e realizar testes de latncia que detectam se clculos criptogrficos estiverem sendo
realizados por terceiros.

1.2.4. Sniffing
O Sniffing um procedimento realizado por ferramentas conhecidas como Packet
Sniffer, Analisador de Rede, Analisador de Protocolo, Ethernet Sniffer e Wireless Sniffer.
Trata-se de uma ferramenta que um software ou um hardware capaz de interceptar e
armazenar o trfego de uma rede. O Sniffer captura os pacotes que trafegam na rede e os
decodifica e analisa seu contedo conforme o protocolo definido em uma especificao.
O Sniffing geralmente utilizado por pessoas que queiram obter algum tipo de
informao sigilosa ou causar algum tipo de dano, seja material ou moral h algum.
Preveno/Soluo: Encriptao total das comunicaes, incluindo a autenticao
de credenciais. Isto evita que os pacotes de sniffing possam ser usados por um invasor. SSL e
IPSec (Internet Protocol Security) so exemplos de solues de encriptao (Microsoft
Patterns & Practices, 2004).

1.2.5. DNS Poisoning


A tcnica DNS Poisoning consiste em envenenar os arquivos DNS de um
servidor, esta brecha foi revelada em julho de 2008 e consiste em direcionar os registros que
apontam para hosts seguros para direes erradas. Por exemplo, o cliente digita a URL do site
do banco, o atacante intervm entre o cach do cliente e o servidor DNS e introduz um
endereo falso dentro do servidor, redirecionando o cliente para o site especificado pelo
atacante.
Preveno/Soluo: Alguns sites utilizam a tecnologia DNSSEC (Domain Name
System Security Extensions) para tentar evitar este tipo de ataque. O DNSSEC um padro

20

que estende do DNS. Trata-se de um sistema de resoluo de nomes mais seguro que utiliza
chave assimtrica, ou seja, um sistema de chave pblica e privada.

1.2.6. Brute Force


O mtodo Brute Force (Fora Bruta) serve para quebrar senhas. Este mtodo consiste
em tentar todas as possibilidades at encontrar a senha correta para acessar algum tipo de
servio ou informao. Exemplo: Se uma senha s pode ter nmeros de 0 a 9 e seu tamanho
de no mximo 4 dgitos, ento o mtodo ir tentar 9999 combinaes (0000, 0001, 0002, 0003
... 9999) ou parar quando encontrar a combinao correta.
Preveno/Soluo: Para prevenir este tipo de ataque recomendado que as senhas
sejam constitudas de caracteres de todos os tipos, como nmeros, letras e caracteres
especiais. Isto faz com que o tempo para realizar as tentativas do Brute Force seja muito mais
alto.
Outra forma de se prevenir deste tipo de ataque o uso do Captcha (Completely
Automated Public Turing test to tell Computers and Humans Apart), que so sistemas de
conferncia humana, onde necessrio enxergar ou ouvir um determinado cdigo aleatrio e
digit-lo junto da senha para ter acesso. A figura 3 um exemplo de Captcha utilizado no site
Google.com.

Figura 3 - Captcha do site www.google.com.br (Google, 2011).

1.2.7. Phishing
Phishing uma tcnica fraudulenta utilizada por pessoas mal intencionadas a fim de
obter dados sigilosos como nmero de cartes de credito, dados de agncia e conta bancria,
entre outros. A tcnica de phishing aplicada de vrias formas, tanto em sites que imitam a

21

aparncia do site original, at e-mails falsos que levam os destinatrios a fornecer dados
pessoas. Nesta tcnica so utilizados meios da engenharia social para influenciar a vtima a
crer que a mensagem, site ou e-mail so legtimos.
Preveno/Soluo: existem diversas formas de se prevenir este tipo de prtica, na
sua maioria essas maneiras de preveno so na verdade iniciativas que o usurio deve ter ao
utilizar a internet. Hbitos como nunca revelar dados pessoais ou bancrios em e-mails (as
instituies bancrias no costumam pedir dados via e-mail), verificar no rodap do
navegador se o endereo do site corrente corresponde com o site que se desejava estar e
utilizar navegadores que possuam filtros anti-phishing.

1.2.8. Software Exploitation


Software Exploitation (Explorao de Software) uma tcnica que busca por brechas
em sistemas operacionais e aplicativos e as usam para obter algum tipo de benefcio ou at
mesmo somente para causar algum tipo de dano a um determinado alvo. Sistemas
operacionais e muitos aplicativos possuem vulnerabilidades que so freqentemente
exploradas por pessoas mal intencionadas.
Preveno/Soluo: as empresas esto sempre corrigindo e lanando atualizaes
para seus produtos. Para evitar ser alvo de um software mal intencionado, devem-se manter os
softwares sempre atualizados, mas isso no assegura que o sistema estar totalmente seguro.

1.2.9. Buffer Overflow


Um Buffer Overflow (estouro de pilha) acontece quando um programa mal escrito.
Os Buffers so reas criadas na memria para os programas armazenarem dados que esto
sendo processados. A tcnica de buffer overflow consiste em preencher um buffer de
determinado tamanho com uma quantidade de caracteres acima de sua capacidade, dessa
forma, os caracteres excedentes sero armazenados em posies de memrias prximas,
ocasionando o encerramento do programa ou at a execuo deste excedente.
Preveno/Soluo: utilizar bibliotecas de programao que no possuam problemas com
buffer overflow e tratar os limites nos parmetros recebidos pelo buffer para que no
ultrapasse a capacidade.

22

1.2.10.

Port Scanning
O Port Scanning (Escaneamento de Portas) executado por um Scanner de

vulnerabilidade em um sistema para detectar portas abertas e possveis problemas de


segurana. Aps detectar as vulnerabilidades, outras tcnicas de ataque so utilizadas para
explorar essas brechas de segurana.
Preveno/Soluo: para evitar este tipo de ataque, so utilizados firewalls com IDS
(Intrusion Detection Systems), que so capazes de bloquear o acesso a determinadas portas e
detectar esta tcnica.

1.2.11.

Engenharia Social
Engenharia Social uma tcnica utilizada para conseguir informaes de vtimas que

so manipuladas at fornecer os dados que o atacante deseja. O atacante utiliza tcnicas que
exploram as vulnerabilidades das prprias vtimas usando de meios que mexam com a
vaidade, autoconfiana, relacionamentos, entre outros.
Muitas vezes o atacante tenta persuadir a vtima se passando por outra pessoa ou
levando a mesma a revelar segredos sem saber da real inteno do solicitante.
Preveno/Soluo: uma das formas de se evitar este tipo de ataque com o
treinamento e conscientizao de usurios sobre como agem os engenheiros sociais.

Devido a uma grande quantidade de ataques e pessoas empenhadas em descobrir


novas vulnerabilidades, a segurana da informao um assunto muito discutido. Ela possui
algumas vertentes que a seguir sero descritas de forma detalhada a fim de se ter um melhor
entendimento de quais so e quais suas peculiaridades.
Segundo Lyra (2008, p.03), trs vertentes se destacam, so elas: confidencialidade,
integridade e disponibilidade.
Confidencialidade: a capacidade que um sistema pode ter de tornar determinada
informao confidencial, ou seja, apenas usurios autorizados podero acess-la, enquanto
outros, fora da lista de permisso, no tero acesso ou ento nem sabero de sua existncia.
Quando h perda de confidencialidade significa que houve perda de segredo. Uma informao
confidencial dever ser guardada com segurana para que somente pessoas autorizadas
tenham acesso. Em sistemas operacionais multiusurios, cada usurio possui permisses para
acessar determinados diretrios e arquivos, as permisses so de leitura, escrita e execuo,

23

que podem ser atribudas a usurios ou grupos de usurios.


Integridade: para uma informao ser ntegra, precisa estar correta, de acordo com a
verdade e no pode estar corrompida. No pode ter sido modificada por acidente ou
propositalmente por algum usurio.
Disponibilidade: uma informao deve sempre estar disponvel. Mesmo em casos de
acidentes, as informaes devem ser rapidamente recuperadas para ficar novamente
disponveis para os usurios, que podero utiliz-las quando necessrio.
Os trs itens descritos acima so os principais conceitos da segurana da informao,
mas existem dois itens em que a aplicao da esteganografia e/ou criptografia faz-se mais til,
na autenticidade e no no-repdio.
Autenticidade: quando uma mensagem enviada para algum, ou para um sistema
atravs da internet, algo muito importante de se verificar a autenticidade da mesma.
necessrio se ter certeza de que a mensagem realmente veio do remetente que a assinou,
garantindo assim a sua autenticidade. Uma forma de se garantir a autenticidade de uma
informao utilizando o PKI (Public Key Infrastructure), esse sistema funciona da seguinte
maneira; cada pessoa possui uma chave pblica e uma chave privada. Quando uma pessoa
deseja enviar uma mensagem, ela deve ento criptograf-la utilizando sua chave privada e
envi-la. A pessoa que receber a mensagem dever descriptografar a mensagem utilizando a
chave pblica do suposto remetente, caso consiga, significa que a mensagem realmente foi
enviada pelo assinante.
No-Repdio: o no-repdio incapacidade de se negar algo que tenha feito. Um
sistema dotado desta capacidade pode assegurar de que uma mensagem veio mesmo de seu
remetente. Quando algo assinado digitalmente no possvel negar sua autoria. Se o
algoritmo esteganogrfico utilizar este tipo de recurso, ele pode garantir a origem da
mensagem.

1.3.

Consideraes Finais do Captulo


Este captulo descreveu a importncia da segurana da informao nas companhias,

as formas de ataque utilizadas para se obter ou tornar indisponvel as informaes e as


caractersticas que tornam um sistema ou meio de armazenamento e/ou transferncia de
informaes seguro. Nos captulos seguintes sero descritas as tcnicas utilizadas para tornar
a informao ilegvel e oculta, mostrando suas vantagem e desvantagens.

24

CAPTULO 2 CRIPTOLOGIA
A criptologia a rea de conhecimento qual a criptografia e esteganografia
pertencem. Neste captulo sero descritos estes dois ramos da criptologia, que so pertinentes
ao contexto deste trabalho.
A necessidade do estudo da criptografia se d devido mescla que ocorre ao se
desenvolver

uma

ferramenta

de

esteganografia,

onde

tcnicas

criptogrficas

esteganogrficas so utilizadas em conjunto para criptografar e ocultar uma mensagem.

2.1.

Criptografia
Segundo Kahn (1967), A criptografia uma cincia que, ao contrrio da

esteganografia, no se dedica a esconder a presena da mensagem secreta, mas tornar as


mensagens ininteligveis para pessoas externas comunicao atravs de diversas
transformaes do texto original.
A criptografia o estudo de uma srie de tcnicas que possibilitam a transformao
da forma original de uma mensagem, para outra forma ilegvel para uma pessoa que esteja
fora do contexto de comunicao entre emissor e receptor, ou seja, o objetivo principal da
criptografia mascarar o real significado da mensagem.
A criptografia classificada como uma ramificao da criptologia, e que, por sua
vez, possui suas prprias ramificaes, como pode ser observado na figura 4.
CRIPTOGRAFIA

CIFRAS

TRANSPOSIO

SUBSTITUIO

CDIGOS

Figura 4 - Criptografia e suas ramificaes (Prpria).

Existem inmeros procedimentos criptogrficos que utilizam cdigos, cifras de

25

transposio e cifras de substituio, os mais conhecidos sero descritos adiante, porm, um


algoritmo criptogrfico utilizado em meios digitais funciona basicamente da seguinte
maneira:

Figura 5 - Processo Criptogrfico (Prpria).

Como mostra a figura 5, um processo criptogrfico nada mais que a aplicao de


um algoritmo criptogrfico em um texto. Um processo criptogrfico deve, ento, possuir os
seguintes elementos: algo a ser criptografado (geralmente um texto), uma chave
compartilhada e um algoritmo criptogrfico.
A chave criptogrfica a chave utilizada pelo algoritmo criptogrfico para cifrar o
texto e, posteriormente, decifr-lo. Portanto, neste caso, a chave compartilhada.

2.1.1. Cdigos
A criptografia utilizando cdigos manipula o significado substituindo palavras ou
frases, enquanto a cifra substitui as letras, conjunto de letras ou, no caso do uso em
computadores, os bits.

2.1.2. Cifras
As cifras so tcnicas nas quais a informao cifrada por meio da transposio
e/ou substituio das letras da mensagem original. Assim, as pessoas autorizadas podem ter
acesso s informaes originais conhecendo o processo de cifragem (Dacencio et. al., 2005).
A criptografia com cifras divida em duas modalidades: transposio e substituio,
como mostram os itens 2.1.2.1 e 2.1.2.2.
Em ambas as modalidades de criptografia com cifras, a inteno alterar a forma
como a informao apresentada. Basicamente, uma cifra rearranja ou substitui as letras de
uma mensagem.

26

2.1.2.1. Cifras de Transposio


Cifras de transposio rearranjam a informao. Em uma mensagem, por exemplo, as
letras poderiam ser mudadas de posio para alterar a representao da mensagem. Em uma
cifra de transposio onde a posio das letras rearranjada, necessrio que se faa o
processo inverso para retornar ao estado original.
Existem diversos tipos de cifra de transposio, que sero descritos no prximo item.

2.1.2.1.1. Cifra de Colunas


Um mtodo clssico de cifra de transposio a cifra das colunas. A cifra das
colunas um mtodo em que os caracteres de um texto so inseridos at que se atinja o
nmero mximo de linhas, passando ento, para a coluna seguinte. A figura 6 demonstra o
funcionamento da cifra das colunas.

Figura 6 - Exemplo de Cifra das colunas (Prpria).

Na figura 6, foi usada a mensagem ESTE E UM EXEMPLO DE CIFRA DE


COLUNAS para ilustrar esta tcnica. Observe que neste caso, o nmero de linhas 5, ou
seja, as letras da mensagem so inseridas at completar 5 linhas e ento inicia-se outra coluna.
A frase cifrada ficaria da seguinte forma EUMEAL SMPCDU TELIEN EXOFCA
EEDROS

2.1.2.1.2. Cifra de Colunas com Permutao


A cifra de colunas comum no muito complexa, podendo ser facilmente quebrada
pela criptoanlise. J a cifra de colunas com permutao possui um nvel maior de
complexidade. Segundo Stallings (2008), a cifra de colunas com permutao consiste em

27

escrever a mensagem em um retngulo, linha por linha, e ler a mensagem coluna por coluna,
mas permutar a ordem das colunas. A ordem das colunas, ento, torna-se a chave para o
algoritmo. Observa um exemplo dessa tcnica na tabela 1.

Chave

Texto Original

Texto cifrado

Auad tade repia oouem roro oror

Tabela 1 - Cifra de Colunas com Permutao (Prpria).

2.1.2.2. Cifras de Substituio


O uso mais antigo que conhecemos de uma cifra de substituio, o mais simples,
foi feito por Jlio Csar. A cifra de Csar consiste em substituir cada letra do alfabeto pela
letra que fica trs posies adiante no alfabeto (Stallings, 2008).

Figura 7 - Cifra de Csar (Prpria).

Como mostra a figura 7, o funcionamento da cifra de csar simples, para a palavra


COMPUTACAO, por exemplo, aps a aplicao da tcnica teramos FRPSXWDFDR, a
tabela 2 contm o alfabeto cifrado

Normal A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Cifrado D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Tabela 2 - Alfabeto Cifrado (cifra de csar) (Prpria).

28

2.1.3. Tcnicas de Criptografia Computacional


Como foi visto no captulo 1, existem muitos riscos na transmisso de arquivos e
mensagens pela internet, isso torna a criptografia muito importante para manter a integridade,
disponibilidade, confidencialidade e autenticidade da informao.
A segurana eletrnica nunca foi to amplamente discutida: casos de violao de
contas bancrias, acesso a informaes sigilosas, invaso e destruio de sistemas so cada
vez mais comuns. Informaes so transmitidas com mais eficincia e velocidade, mas como
se sabe, nem sempre de forma segura (Dacencio et. al., 2005).
Como foi visto, apesar de seguras, as tcnicas no so infalveis, podendo ser
quebradas atravs da criptoanlise. Isso um motivo para se usar criptografia juntamente com
a esteganografia, unindo duas tcnicas que podem, juntas, tornar uma transio ainda mais
segura.

2.1.3.1. Principais Tcnicas da Criptografia Moderna


A seguir, algumas tcnicas criptogrficas modernas:

2.1.3.1.1. Funes de Hash Criptogrfico


Um Hash criptogrfico(ou tabela hash) uma palavra (sequncia de bits) gerada por
um algoritmo. O hash transforma uma informao em outra informao no condizente com a
original. Essa sequncia de bits identifica unicamente uma informao. Em sistemas em que
so necessrios login e senha, por exemplo, quando o usurio cadastra uma senha, ela passa
por uma funo de hash para ser gravada no banco de dados, dessa forma, o administrador do
banco de dados no tem acesso a senha dos usurios, e a senha, atravs da funo de hash,
pode ser verificada a qualquer momento. Nas funes hash utlizadas em criptografia no
possvel se obter a informao original atravs da sequencia de bits.

2.1.3.1.1.1. MD5
O MD5 (Messa-Digest Algorithm 5) um algoritmo hash de 128 bits unidirecional.
Ele utilizado em softwares de protocolo ponto-a-ponto na verificao de integridade dos
arquivos e usurios.

29

2.1.3.1.1.2. SHA
SHA, ou Secure Hash Algorithm uma famlia de algoritmos de hash criptogrficos.
O SHA-1 (Considerado o sucessor do MD5) a funo mais utilizada de famlia SHA,
utilizada em muitas aplicaes e protocolos de segurana, como TLS, SSl, PGP, SSH,
S/MIME e IPSec. O SHA foi publicado em 1993 pela National Security Agency (NSA).

2.1.3.1.1.3. Sistemas Free/Open Source


2.1.3.1.1.3.1.

PGP

PGP, ou Pretty Good Privacy um algoritmo criptogrfico de chave pblica de alta


segurana. O PGP foi escrito por Philip Zimmermann e nos ltimos anos conquistou milhares
de adeptos ao redor do mundo, tornando-se praticamente um padro para criptografia de email.

2.1.3.1.1.3.2.

GPG

O GNU Privacy Guard (GnuPG ou GPG) uma alternativa de software livre para a
sute de criptografia PGP. O GPG trabalha com criptografia assimtrica.

2.1.3.1.1.3.3.

SSH

SSH ou Secure Shell um software computacional e protocolo de rede capaz de


realizar conexes com outros computadores em uma rede de forma remota. Ele semelhante
ao antigo TELNET, mas o SSH possui conexo criptografada.

2.1.3.1.2. Algoritmos Assimtricos ou de Chave Pblica


A criptografia assimtrica, tambm chamada de criptografia de chave pblica,
utiliza-se de duas chaves matematicamente relacionadas, uma chave pblica e outra chave
privada. Se for utilizada a chave pblica para cifrar, deve-se utilizar a chave privada para
decifrar, e vice-versa (Misaghi, 2001).

30

Figura 8 Processo de Criptografia Assimtrica (PUBLIC KEY) (DevMedia , 2011).

Os algoritmos assimtricos, ou de chave pblica tm seu funcionamento


demonstrado na figura 8, a seguir alguns algoritmos que utilizam essa tcnica.

2.1.3.1.3. Criptografia de Curvas Elpticas


Trata-se de uma variante da criptografia assimtrica que se baseia na matemtica das
curvas elpticas. Ela se apia em uma proposta de seus criadores de que capaz de ser mais
rpida e gerar chaves mais curtas que de outros mtodos semelhantes.
Diffie-Hellman: em 1976 surgiu o algoritmo Diffie-Hellman, que tornou possvel a
troca de informaes criptografadas entre duas partes sem o compartilhamento de chaves
secretas.
RSA: desenvolvido no instituto MIT por trs professores, este algoritmo
criptogrfico considerado a mais bem sucedida implementao de um algoritmo de chave
assimtrica.

2.1.3.1.4. Sistema de Chaves Simtricas


A criptografia simtrica, tambm conhecida por criptografia convencional ou
criptografia de chave privada, um mtodo que faz uso de uma chave secreta ou chave nica
para realizar os processos de encriptao e decriptao (Petri, 2004).

31

Figura 9 processo de criptografia convencional (Fonte: http://www.devmedia.com.br/)


A seguir alguns algoritmos que utilizam esta tcnica, que demonstrada na tabela 3.
Algoritmo

Tamanho da Chave

DES (Data 64 Bits


Encryption
Standard)
DES Triplo

112 Bits

IDEA

128 Bits

RC5

Tamanho Varivel

Descrio
um codificador composto, que cifra blocos de 64 bits (8
caracteres) em blocos de 64 bits, para isso se utiliza de
uma chave composta por 56 bits, com 8 bits de paridade
totalizando 64 bits. Utiliza o Algoritmo de Feistel.
Alternativa do DES original, com variao de trs
diferentes chaves. O DES aplicado trs vezes, com a
mesma chave ou com chaves diferentes.
A filosofia que norteou este projeto foi "misturar
operaes de grupos algbricos diferentes" para misturar
os caracteres iniciais de forma a ficarem
incompreensveis.
A mensagem original fornecida ao algoritmo sob a
forma de dois blocos de w bits, correspondendo ao
alinhamento mais conveniente para o sistema em causa,
os valores tpicos para w so: 16, 32 e 64. A mensagem
cifrada possui forma idntica.

Tabela 3 - Sistemas Simtricos (Jasper, 2009).

2.1.4. Criptoanlise
A criptoanlise a cincia de quebrar os mtodos criptogrficos, para que se possa
decifrar e ler as mensagens anteriormente criptografadas (Tkotz, 2005b). A criptoanlise o
estudo de mtodos e tcnicas utilizadas para atingir procedimentos criptogrficos.
Normalmente, o objetivo de atacar um sistema de criptografia recuperar a chave em
uso, em vez de simplesmente recuperar o texto claro de um nico texto cifrado. Existem duas
tcnicas para um ataque a um esquema de criptografia convencional; Criptoanlise e Fora
Bruta (Stallings, 2008).
Segundo Stallings (2008), os ataques criptoanalticos contam com a natureza do
algoritmo e talvez mais algum conhecimento das caractersticas gerais do texto claro, ou ainda

32

alguns pares de amostra de texto claro e texto cifrado. Esse tipo de ataque explora as
caractersticas do algoritmo para tentar deduzir um texto claro especfico ou deduzir a chave
utilizada. J no ataque por fora bruta, ainda segundo Stallings, o atacante experimenta cada
chave possvel em um trecho do texto cifrado, at obter uma traduo inteligvel para texto
claro. Na mdia, metade de todas as chaves possveis precisam ser experimentadas para se
obter sucesso.
A tabela 4 mostra os tipos de ataques a mensagens criptografadas e o que
conhecido ao criptoanalista, em cada caso.
Tipos de ataque
Apenas texto cifrado
Texto claro conhecido

Conhecido ao criptoanalista

Texto claro escolhido

Texto cifrado escolhido

Texto escolhido

Algoritmo de criptografia
Texto Cifrado
Algoritmo de criptografia
Texto cifrado
Um ou mais pares de texto claro/texto cifrado formados com a
chave secreta
Algoritmo de criptografia
Texto cifrado
Mensagem de texto claro escolhida pelo criptoanalista,
juntamente com seu texto cifrado correspondente, gerado com
a chave secreta
Algoritmo de criptografia
Texto cifrado
Texto cifrado pretendido, escolhido pelo criptoanalista,
juntamente com seu texto claro decriptografado
correspondente, gerado com a chave secreta
Algoritmo de criptografia
Texto cifrado
Mensagem de texto claro escolhida pelo criptoanalista,
juntamente com seu texto cifrado correspondente, gerado com
a chave secreta
Texto cifrado pretendido, escolhido pelo criptoanalista,
juntamente com seu texto claro decriptografado, gerado com a
chave secreta

Tabela 4 - Tipos de ataques a mensagens criptografadas (Stallings, 2008).

Se qualquer tipo de ataque tiver sucesso na deduo da chave, o efeito ser


catastrfico: todas as mensagens futuras e passadas, codificadas com essa chave, estaro
comprometidas (Stallings, 2008).

2.2.

Esteganografia
Esteganografia a arte de esconder mensagens e informaes, tendo como objetivo a

33

comunicao em segredo. A esteganografia grava uma mensagem confidencial dentro de


outra, que funciona como uma portadora, s que mais extensa. O objetivo alterar a
mensagem portadora de tal forma que o resultado seja imperceptvel (Petri, 2004).
A esteganografia e a criptografia, que foi vista no tpico anterior, diferem uma da
outra por uma srie de aspectos, como pode ser visto na tabela 4.

Tabela 5 - Diferenas entre esteganografia e criptografia (Kipper, 2004).

Ou seja, segundo a tabela descrita por Kipper (2004), enquanto a criptografia tem
como objetivo tornar a mensagem ilegvel para um agente fora da comunicao, a
esteganografia se preocupa em ocultar a existncia da mesma atravs de diversas tcnicas
clssicas e/ou computacionais.

2.2.1. Histrico
Segundo Jasper (2009), o primeiro registro de uso de esteganografia da histria se d
a mais de 3000 anos do incio da idade antiga.
Atravs dos tempos, foram registradas algumas tcnicas de esteganografia utilizadas
pelas civilizaes, a seguir, na tabela 5, sero descritas algumas tcnicas mais conhecidas.
Tcnica

Descrio

Tabuletas de Demarato

Utilizada por Xerxes, rei da Persia. Segundo Singh (2008),


consistia em raspar a cera de um par de tabuletas(rodap) de
madeira, e escrever a mensagem e ser ocultada, depois, cobriase novamente as tabuletas com cera para que a mensagem no
fosse percebida.

Histeau e o Mensageiro

Consiste em raspar a cabea do individuo, escrever a mensagem


e esperar o cabelo crescer novamente.

Tcnica de Giovanni Porta

Tcnica desenvolvida pelo cientista italiano Giovanni Porta. A

34

tcnica consistia em esconder mensagens dentro de ovos


cozidos. Para isso, utilizava-se uma tinta contendo uma ona
(28,35g) de Almen, Sulfato duplo de potssio e Alumnio
hidratado, diluda em cerca de meio litro de vinagre. A soluo
penetrava na casca e se depositava sobre a superfcie branca do
ovo, a clara cozida. Depois, bastava o destinatrio descascar o
ovo para ler a mensagem JNIOR E AMORIM (2008, p.38).
Micropontos

Os micropontos so fotografias que foram reduzidas para imagens


com

cerca

de

milmetro

de

dimetro,

se

tornando

microfotografias. Os micropontos ficaram populares e foram


muito utilizados na 2 Guerra Mundial, onde eram colados em
pontos finais das frases ou no pingo de alguma letra i da
mensagem. (Jasper, 2009). O processo consistia em fotografar a
mensagem e depois reduzi-la ao tamanho aproximado de um selo.
Em seguida a imagem reduzida por um microscpio reverso,
ficando com um milmetro de dimetro. Essa imagem ou o seu
negativo era ento colocada com o auxlio de uma seringa ou
agulha na mensagem que iria servir como portadora e enviada ao
seu destino (Kipper, 2004).
Tabela 6 - Tcnicas de esteganografia (Prpria).

2.2.2. A importncia da esteganografia


A esteganografia tem sua importncia para a computao no que se refere a
contribuir para a segurana da informao. Como foi visto no primeiro captulo, cada vez
mais h uma necessidade de se proteger informaes de terceiros, geralmente, mal
intencionados.

2.2.3. Principais Tcnicas


Existem muitas tcnicas de esteganografia digital, a seguir sero descritas algumas
delas:

2.2.3.1. Rudos
Mdias digitais, como fotografias, filmes e msica, possuem uma quantidade

35

significativa de rudo gerada de sua converso em sinal digital. Esconder a informao que se
deseja transmitir nesse rudo , provavelmente, a tcnica esteganogrfica mais utilizada
(Wayner, 2002).

Figura 9 - Sinal analgico e sinal digital (Prpria).

Nas tcnicas que utilizam o rudo de converso de sinal analgico para digital,
esconde-se a mensagem como se fosse parte do rudo natural do objeto portador.
Ainda segundo Wainer (2002), fotografias coloridas digitais possuem 32 bits
alocados para cada pixel. Desses 32 bits, existem 8 bits usados para guardar cada uma das
quantidades de vermelho, azul e verde, ou das quantidades de ciano, magenta e amarelo de
cada pixel. Com isso, so usados 24 bits. Se apenas um bit de cada uma das cores for alocado
para esconder informao, essa quantidade corresponder a 10% de todo o arquivo.
O problema desta tcnica que os formatos de mdias digitais muitas vezes
comprimem o arquivo retirando este rudo gerado na converso de sinal, tornando mais difcil
a insero da mensagem sem a alterao da aparncia da imagem portadora.

2.2.3.2. Substituio
Como exemplo de tcnica de substituio, temos a LSB, ou Least Significant Bit, que
uma tcnica esteganogrfica que consiste em ocultar informaes em uma imagem inserindo
a mesma nos bits menos significativos dos pixels da imagem.
Segundo Wayner (2002), trocar os bits menos significativos pode mudar a
intensidade de um pixel em no mximo 1%, fazendo com que a tcnica seja considerada uma
tima soluo esteganogrfica, pois a imagem fica praticamente inalterada ao olho humano.
Esta tcnica utilizada em imagens no formato JPG, pois as mesmas possuem

36

redundncia. Segundo Provos et. al. (2003), Para cada componente de uma cor, a imagem
JPEG usa a transformada de cosseno discreta (Discrete Cosine Transform DCT) para
transformar blocos sucessivos de 8 x 8 pixels da imagem em 64 coeficientes de uma DCT.
Assim, os bits menos significativos dos coeficientes das DCT podem ser utilizados como bits
redundantes para esconder uma mensagem. Esse tipo de tcnica no deixa rastros perceptveis
para anlises visuais do arquivo, uma vez que as modificaes esto concentradas no domnio
da freqncia, e no no domnio espacial.

2.2.3.3. Insero
A tcnica esteganogrfica de insero consiste simplesmente em inserir uma
mensagem no objeto portador, sem se preocupar com o fato de a mensagem ficar muito mais
vulnervel, j que dessa forma, tcnicas de anlise esteganogrfica detectariam facilmente a
mensagem.

2.2.3.4. Transformao de Domnio


A tcnica de transformao de domnio utiliza os bits que sobram aps uma
converso de formatos.
Segundo Kipper (2004), esta tcnica muito eficiente, pois insere a mensagem
secreta nos espaos de transformao, que so espaos onde o formato original guarda certas
informaes que sero irrelevantes aps a converso.
Formatos de imagem como BMP, quando so convertidos para formatos
comprimidos, como, por exemplo, JPG e formatos de udio, como, por exemplo, WAV,
quando so convertidos para MP3, podem ser objetos portadores desta tcnica.

2.2.3.5. Gerao de Cobertura


Na tcnica de gerao de cobertura, ao invs de se utilizar um objeto portador
existente para inserir a mensagem, gerado um novo objeto portador especialmente para este
fim.

2.2.3.6. Distoro
A tcnica de distoro produz uma mudana no objeto portador. Essa mudana

37

geralmente a insero de um rudo ou, no caso de imagens, a perda do foco em alguma


regio. Aps a mudana, a mensagem inserida nesta regio problemtica. Segundo Jnior e
Amorim (2008), normalmente a distoro criada no objeto esteganogrfico impossibilita a
recuperao do estado original, sem a presena da distoro.

2.2.4. Esteganlise
Segundo Petri (2004), esteganlise so os estudos e pesquisas destinados a revelar a
existncia de mensagens secretas dentro de um objeto portador.
Uma vez que a esteganlise detecta a presena da mensagem secreta na imagem,
segundo Wayne (2002), diversas tcnicas podem ser utilizadas: destruio do contedo (o
objeto portador e mensagem so simplesmente destrudos), adio de novas informaes
(novas informaes sobrescrevem a mensagem secreta), Alterao do formato do arquivo
(formatos diferentes alteram a estrutura do arquivo), compresso do arquivo (arquivos de
imagem comprimidos descartam bits geralmente utilizados por tcnicas de esteganografia).
Para detectar a mensagem, podem ser usados os seguintes mtodos de ataque de
esteganlise: Visual (anlise apenas visual do objeto portador), Estrutural (Anlise da
estrutura do arquivo), Estatstico (anlise estatstica de redundncia e diferena de bits
vizinhos).

2.2.5. Desvantagens
Um das vantagens da esteganografia o fato de uma mensagem passar despercebida,
porm,tambm existem desvantagens no uso da tcnica.
As tcnicas de esteganografia necessitam sempre de um objeto portador. Por
exemplo: para esconder uma mensagem utilizando a tcnica LSB, necessrio uma imagem
portadora. Se a inteno enviar uma ou poucas mensagens ocultas em imagens, o fluxo de
dados transmitidos no ser um problema, mas imagine um sistema onde so realizadas
milhares de transaes por minuto. Em alguns casos, o fardo de carregar um objeto portador
pode se tornar uma desvantagem para a esteganografia.
necessrio tambm tomar certo cuidado quando, ao utilizar uma tcnica
esteganogrfica, a mesma no distora o objeto portador a ponto de torn-lo facilmente
detectvel.
Para as tcnicas que envolvem objetos portadores passveis de converso para

38

formatos comprimidos, deve-se estar ciente de que os bits utilizados para a mensagem secreta
podem ser afetados pela converso.

2.3.

Consideraes Finais do Captulo


O captulo 2, sobre criptologia e suas vertentes, mostrou que, apesar de algumas

tcnicas utilizadas para garantir a segurana da informao possurem suas desvantagens,


ainda assim so indispensveis e necessitam de estudo e evoluo constante para acompanhar
o crescimento da estrutura computacional global.
Este captulo tambm deixou clara a diferena entre criptografia e esteganografia.
Itens como definies, caractersticas e principais tcnicas foram abordados.

39

CAPITULO 3 METODOLOGIA, IMPLEMENTAO E ANLISE


Este captulo descreve a metodologia utilizada para desenvolver a proposta de
implementao e anlise de algoritmos esteganogrficos em imagens digitais. Itens como
linguagem de programao escolhida, algoritmos implementados e anlise de desempenho e
eficcia sero abordados a seguir.

3.1.

Metodologia e Projeto
O projeto foi desenvolvido baseando-se nos algoritmos esteganogrficos Insero

Direta e LSB Least Significant Bit. O segundo foi desenvolvido em duas verses: LSB
seqencial e LSB randmico. O algoritmo insero direta, apesar de simples, ilustra com
clareza porque o estudo de tcnicas mais avanadas de esteganografia importante, uma vez
que h uma grande diferena no resultado final quando comparado com o LSB.
Para a implementao dos trs algoritmos foi escolhida a verso 1.6.0-26 da
linguagem de programao Java. Esta uma linguagem orientada a objetos, criada pela Sun
Microsystems, que hoje pertence Oracle e que contm diversas bibliotecas padres para
entrada e sada de dados (utilizadas para manipular as imagens), alm de bibliotecas com
mtodos criptogrficos e estruturas de dados prontas.
Apesar dos algoritmos implementados serem diferentes e possurem caractersticas
prprias, o procedimento para ocultar e revelar uma mensagem o mesmo para os trs. Para o
processo de ocultao da mensagem temos os seguintes passos ilustrados na figura 10.

Figura 10 - Processo esteganogrfico de ocultao da mensagem (Prpria).

40

Observe que, na figura 10, antes da chamada do mtodo esteganogrfico, existe


tambm a chamada para o mtodo criptogrfico. O mtodo criptogrfico, que utiliza o
algoritmo DES, apresentado na tabela 3, na seo 2.1.3.1.4, transforma a mensagem de forma
que, mesmo que ela seja descoberta atravs da esteganlise, seja difcil a sua compreenso. A
classe que contm os mtodos para criptografar e decriptografar a mensagem foram retiradas
do site Example Depot1.
Aps a ocultao da mensagem possvel utilizar o mtodo de revelao da imagem.
Este mtodo recupera as informaes armazenadas na mensagem da seguinte forma, ilustrada
na figura 11.

Figura 11 - Processo esteganogrfico de revelao de mensagem (Prpria).

Para a recuperao da mensagem oculta, necessrio, na chamada do mtodo


esteganogrfico de revelao, informar a imagem que contm a mensagem. Aps a extrao
dos dados da imagem, a mensagem decriptografada e exibida.

3.1.1. Imagens Digitais e Sistema de Cores RGB


Imagens digitais so representadas por matrizes de tamanho definido. Cada clula
dessas matrizes armazena um valor de cor que compe um pixel da imagem atravs do
sistema RGB (Red (vermelho), Green (verde), Blue (azul)). Para o uso da esteganografia em
imagens digitais, necessria a manipulao desses pixels e valores de cor. No caso do
algoritmo LSB, por exemplo, necessrio alterar os bits menos significativos de vermelho,
verde e azul.

Example Depot Code Samples. Disponvel em: http://exampledepot.com/egs/javax.crypto/DesString.html.

41

Figura 12 - Vermelho, Verde e Azul como cores primrias (Sistema RGB) (ER Associados, 2011).

No sistema RGB, as outras cores so o resultado da combinao do vermelho, verde


e azul, figura 12. E, digitalmente, isso representado por nmeros. Cada uma das trs cores
que formam o sistema RGB so representadas por nmeros que vo de 0 ao 255 (ER
Associados, 2011).

3.2.

Algoritmos
Esta seo do trabalho explica o funcionamento de cada algoritmo implementado.

So tratados detalhes como lgica de funcionamento, dados de entrada e sada e resultados


obtidos com a aplicao dos mesmos.

3.2.1. Insero Direta


A tcnica de insero direta de certa forma, uma tcnica de esteganografia
primitiva se comparada com outras mais elaboradas. Esta tcnica consiste em simplesmente
inserir a mensagem no objeto portador, sem se preocupar com o grau de modificao a que o
objeto ser submetido.
A figura 13 contm o cdigo do mtodo de ocultao do algoritmo de insero direta
implementado para este trabalho.

42

Figura 13 - Algoritmo de insero direta mtodo de ocultao (Prpria).

Este mtodo recebe como parmetro uma mensagem a ser ocultada, e, aps carregar
uma imagem portadora, cria um vetor de inteiros que recebe o valor ASCII (American
Standard Code for Information Interchange) das letras da mensagem. Dessa forma, o vetor
ter, aps o lao For da linha 10, a mensagem inteira em suas posies.
Os laos da linha 21 e 22 percorrem a imagem verificando primeiro se o vetor ainda
contm letras a ser adicionadas na imagem e, caso tenha, substitui o valor do pixel nos ndices
corrente pelo valor inteiro da letra. Aps a insero de todas as letras da frase contidas no
vetor, a imagem salva com as alteraes que foram realizadas.
J o mtodo de revelao, que pode ser observado na figura 14, carrega a
imagem portadora com a mensagem oculta e a percorre recuperando as letras da mensagem
at encontrar o caractere especial de condio de parada. Toda vez que uma letra
recuperada, a mesma adicionada no final de uma varivel do tipo String.

43

Figura 14 - Algoritmo de insero direta mtodo de revelao (Prpria).

O mtodo principal, que faz as chamadas dos dois mtodos descritos acima pode ser
observado na figura 15.

Figura 15 - Algoritmo de insero direta - mtodo principal (Prpria).

Na linha 6, uma chave criptogrfica para o algoritmo DES gerada e armazenada.

44

Esta chave utilizada na linha 7 para criar um objeto da classe Criptografia que contm os
mtodos de cifragem e decifragem. Depois de definir os objetos das classes utilizadas,
escolhida uma mensagem a ser ocultada no objeto portador.
O mtodo que cifra a mensagem chamado na linha 9, passando a mensagem como
parmetro. Aps cifrar a mensagem, o mtodo esteganogrfico de insero direta chamado
na linha 11. Neste ponto, a imagem foi modificada e salva no diretrio escolhido. As linhas 11
e 14 chamam, respectivamente, o mtodo que recupera e retorna a mensagem oculta e o
mtodo que decifra a mensagem.

3.2.2. LSB Sequencial


O algoritmo LSB seqencial difere do de Insero Direta no que se refere ao
cuidado de no mudar drasticamente a aparncia do objeto portador. Esta tcnica mais
elaborada, pois utiliza os bits menos significativos de cada cor do sistema RGB para inserir as
letras da mensagem. A figura 16 ilustra o processo esteganogrfico atravs do mtodo LSB.

Figura 16 - Processo esteganogrfico (Viva o Linux, 2011).

Como somente os bits menos significativos de cada cor do pixel modificado, o


resultado uma imagem muito parecida com a original.

45

Os bits das cores dos pixels utilizados pelo algoritmo desenvolvido neste trabalho
so os descritos na Tabela 7. As cores vermelho e verde cedem, cada uma, 2 bits para a
insero da letra, enquanto a cor azul cede 4.
BITS UTILIZADOS
RED

XXXXXX[XX]

GREEN

XXXXXX[XX]

BLUE

XXXX[XXXX]

Tabela 7 - Bits utilizados no algoritmo LSB sequencial (Prpria).

A figura 17 mostra, a partir da linha 1, as principais diferenas entre o Insero


Direta e o LSB Sequencial. No LSB Sequencial, o pixel decomposto em trs partes, cada
parte referente a uma cor: vermelho, verde e azul. Depois de extrados os valores individuais
das cores do pixel, os mesmos so deslocados para a direita e depois para a esquerda, para que
os bits menos significativos fiquem zerados.

Figura 17- LSB Sequencial (Prpria).

46

Por exemplo, para zerar os dois bits menos significativos da cor verde de um pixel
qualquer, o seguinte processo realizado:
1.

Valor original de verde: 10010111

2.

Valor de verde com deslocamento 2 direita: 00100101

3.

Valor de verde com deslocamento 2 esquerda: 10010100

Desta forma, os dois bits menos significativos ficam zerados para receber o novo
valor. Para inserir o valor da letra, necessrio deixar a parte do byte da letra que se deseja
inserir no valor da cor, nas posies menos significativos. Por exemplo:

Letra: A, Valor ASCII: 65 (01000001).

Para que os dois bits mais significativos de A fiquem nas duas ltimas posies,
necessrio que se faa um deslocamento de 6 casas:
1.

Valor original de A: 01000001

2.

Valor de A com deslocamento 6: 00000001

Aps deslocar os 2 bits mais significativos para as duas ultimas posies, um AND
realizado com o valor 00000011, para que fiquem no valor, somente os bits que sero
inseridos no valor da cor.
3.

00000001 AND 00000011 == 00000001

Depois de deixar os 2 bits mais significativos de A nas duas ultimas posies e


remover todos os outros possveis uns do conjunto de bits, necessrio fazer um OU com o
valor de verde que foi modificado para receber parte da letra.
4.

00000001 OU 10010100 == 10010101 valor de verde com a primeira parte de

A nos dois bits menos significativos.


Ento, tem-se a seguinte situao: os dois bits menos significativos do valor de verde
do pixel foram zerados para receber a primeira parte da letra A. Este processo repetido
com os outros bits da letra at que a mesma seja armazenada por inteira no pixel.
Para o processo de revelao da mensagem oculta, necessrio que somente os bits
referentes letra da mensagem sejam extrados da cor do pixel.
Por exemplo: se a letra A est escondida em um determinado pixel, para extra-la,
seria necessrio o seguinte processo:

47

*A = 01000001 (Letra que foi inserida no pixel)


1. Recupera 01 de Pixel(X,Y) - RED = 11000101
2. Recupera 01 de Pixel(X,Y) - GREEN = 10010000
3. Recupera 0001 Pixel(X,Y) - BLUE = 00000001
4. Concatena os bits extrados: 01 + 00 + 0001 = 01000001 (valor de A).
A figura 18 mostra a lgica utilizada para extrair a letra do pixel.

Figura 18 - Extrao dos bits da letra que foram ocultados nos pixels da imagem (Prpria).

3.2.3. LSB Randmico


A desvantagem do LSB Seqencial, que foi visto no tpico anterior que, aps a
insero da imagem, como os bits utilizados para armazen-la so todos vizinhos, facilita o
trabalho da esteganlise. Para resolver esse problema, foi implementado o algoritmo LSB
Randmico, que grava as letras da mensagem em posies aleatrias geradas atravs do
mtodo Random() da linguagem Java, utilizando uma semente geradora. O processo de
gerao das posies dos pixels que recebero as letras pode ser visto na figura 19.

48

Figura 19 - Gerao de posies aleatrias para armazenamento da mensagem (Prpria).

Na linha 3, criado um objeto da classe Struct, essa classe foi criada para
armazenas em uma estrutura de dados de lista, as posies geradas aleatoriamente.
Depois de geradas as posies randmicas, as letras da mensagem so gravadas
nessas posies. Porm, para recuper-las posteriormente, necessrio que se conhea a
semente geradora do mtodo Random(), por isso, a semente gravada em uma posio
conhecida na imagem.
O mtodo revela do LSB Randmico recupera essa semente, gera novamente as
posies e extrai a mensagem, a lgica utilizada para gerao das posies a mesma do
mtodo da figura 19, e o processo de extrao da mensagem o mesmo da figura 18, vista no
tpico 3.2.2.

3.3.

Anlise
Os algoritmos implementados possuem caractersticas prprias, vantagens e

desvantagens. O algoritmo de Insero Direta, por exemplo, no to eficaz quanto o LSB


Randmico, porm mais rpido, gastando menos tempo de processamento.
Para que fiquem mais claras as vantagens e desvantagens de cada um, no item a
seguir, sero feitas algumas execues dos algoritmos com marcao de tempo e anlise de
resultados.

49

1. Algoritmo: Insero Direta

Objeto portador: Imagem no formato .BMP

Mensagem a ser ocultada: "Esteganografia a arte de esconder mensagens e

informaes, tendo como objetivo a comunicao em segredo. A esteganografia grava uma


mensagem confidencial dentro de outra, que funciona como uma portadora, s que mais
extensa. O objetivo alterar a mensagem portadora de tal forma que o resultado seja
imperceptvel (Petri, 2004). Uma das vantagens da esteganografia o fato de uma mensagem
passar despercebida, porm, tambm existem desvantagens no uso da tcnica. As tcnicas de
esteganografia necessitam sempre de um objeto portador. Por exemplo, para esconder uma
mensagem utilizando a tcnica LSB, necessria uma imagem portadora. Se a inteno
enviar uma ou poucas mensagens ocultas em imagens, o fluxo de dados transmitidos no ser
um problema, mas imagine um sistema onde so realizadas milhares de transaes por
minuto. Em alguns casos, o fardo de carregar um objeto portador pode se tornar uma
desvantagem para a esteganografia. necessrio tambm tomar certo cuidado quando, ao
utilizar uma tcnica esteganogrfica, a mesma no distora o objeto portador a ponto de
torn-lo facilmente detectvel. Para as tcnicas que envolvem objetos portadores passveis de
converso para formatos comprimidos, deve-se estar ciente de que os bits utilizados para a
mensagem secreta podem ser afetados pela converso."

Tempo de execuo: 397ms

Imagem Portadora sem a mensagem:

Figura 20 - Imagem portadora antes da insero da mensagem (Algoritmo Insero Direta) (Prpria).

50

Imagem Portadora com a mensagem:

Figura 21 - Imagem portadora depois da insero da mensagem (Algoritmo Insero Direta) (Prpria).

Tamanho original da imagem: 350Kb

Tamanho da imagem modificada: 350Kb

2. Algoritmo: LSB Sequencial.

Objeto portador: Imagem no formato .BMP.

Mensagem a ser ocultada: "Esteganografia a arte de esconder mensagens e

informaes, tendo como objetivo a comunicao em segredo. A esteganografia grava uma


mensagem confidencial dentro de outra, que funciona como uma portadora, s que mais
extensa. O objetivo alterar a mensagem portadora de tal forma que o resultado seja
imperceptvel (Petri, 2004). Uma das vantagens da esteganografia o fato de uma mensagem
passar despercebida, porm, tambm existem desvantagens no uso da tcnica. As tcnicas de
esteganografia necessitam sempre de um objeto portador. Por exemplo: para esconder uma
mensagem utilizando a tcnica LSB, necessria uma imagem portadora. Se a inteno
enviar uma ou poucas mensagens ocultas em imagens, o fluxo de dados transmitidos no ser
um problema, mas imagine um sistema onde so realizadas milhares de transaes por
minuto. Em alguns casos, o fardo de carregar um objeto portador pode se tornar uma
desvantagem para a esteganografia. necessrio tambm tomar certo cuidado quando, ao
utilizar uma tcnica esteganogrfica, a mesma no distora o objeto portador a ponto de
torn-lo facilmente detectvel. Para as tcnicas que envolvem objetos portadores passveis de
converso para formatos comprimidos, deve-se estar ciente de que os bits utilizados para a
mensagem secreta podem ser afetados pela converso."

51

Tempo de execuo: 423ms

Imagem Portadora sem a mensagem:

Figura 22 - Imagem portadora antes da insero da mensagem (Algoritmo LSB Sequencial) (Prpria).

Imagem Portadora com a mensagem:

Figura 23 - Imagem portadora depois da insero da mensagem (Algoritmo LSB Sequencial)


(Prpria).

Tamanho original da imagem: 350Kb

Tamanho da imagem modificada: 350Kb

3. Algoritmo: LSB Randmico.

Objeto portador: Imagem no formato .BMP

Mensagem a ser ocultada: "Esteganografia a arte de esconder mensagens e

informaes, tendo como objetivo a comunicao em segredo. A esteganografia grava uma


mensagem confidencial dentro de outra, que funciona como uma portadora, s que mais
extensa. O objetivo alterar a mensagem portadora de tal forma que o resultado seja

52

imperceptvel (Petri, 2004). Uma das vantagens da esteganografia o fato de uma mensagem
passar despercebida, porm, tambm existem desvantagens no uso da tcnica. As tcnicas de
esteganografia necessitam sempre de um objeto portador. Por exemplo: para esconder uma
mensagem utilizando a tcnica LSB, necessria uma imagem portadora. Se a inteno
enviar uma ou poucas mensagens ocultas em imagens, o fluxo de dados transmitidos no ser
um problema, mas imagine um sistema onde so realizadas milhares de transaes por
minuto. Em alguns casos, o fardo de carregar um objeto portador pode se tornar uma
desvantagem para a esteganografia. necessrio tambm tomar certo cuidado quando, ao
utilizar uma tcnica esteganogrfica, a mesma no distora o objeto portador a ponto de
torn-lo facilmente detectvel. Para as tcnicas que envolvem objetos portadores passveis de
converso para formatos comprimidos, deve-se estar ciente de que os bits utilizados para a
mensagem secreta podem ser afetados pela converso."

Tempo de execuo: 498ms.

Imagem Portadora sem a mensagem:

Figura 24 - Imagem portadora antes da insero da mensagem (Algoritmo LSB Randmico) (Prpria).

Imagem Portadora com a mensagem:

53

Figura 25 - Imagem portadora depois da insero da mensagem (Algoritmo LSB Randmico)


(Prpria).

Tamanho original da imagem: 350Kb

Tamanho da imagem modificada: 350Kb

A execuo dos algoritmos foi realizada em um computador Intel Core I3 (2.24Ghz


2Gb DDR3) e os tempos de execuo geraram o grfico 1.

Grfico 1 - Grfico do tempo de execuo dos algoritmos (Prpria).

J o tamanho da imagem portadora, antes e depois da insero da mensagem foi igual


para os trs algoritmos, como mostra o grfico 2.

54

Grfico 2 - Grfico do tamanho da imagem portadora antes e depois da insero da mensagem (em
Kbytes) (Prpria).

55

CAPITULO 4 CONCLUSES
Ao observar os resultados obtidos com a execuo dos algoritmos, no que se refere a
modificao da imagem portadora aps a insero da imagem, pode-se dizer que o algoritmo
de insero direta no uma opo vivel para o objetivo principal da esteganografia, que
ocultar a existncia do texto na imagem, pois a mesma sofreu uma alterao muito grande
aps a insero. Esta alterao na imagem portadora no foi to grande para os algoritmos
LSB Sequencial e LSB Randmico, como pode ser visto nas figuras 22 e 23, 24 e 25,
respectivamente. Mas, apesar da imagem portadora do algoritmo LSB Sequencial ser
praticamente igual a do LSB Randmico a olho nu, tcnicas de esteganlise poderiam detectar
sem muitas dificuldades a presena na mensagem no algoritmo LSB Sequencial. Por isso, a
melhor varivel na questo de alterao de imagem portadora e dificuldade de deteco o
algoritmo LSB Randmico.
Outra questo importante que deve ser observada na imagem portadora o tamanho
do arquivo modificado em relao ao arquivo original. No caso dos trs algoritmos, no
houve aumento de tamanho de arquivo em disco, o que pode ser considerado um ponto
positivo.
Os objetivos propostos para o trabalho foram alcanados, e concluiu-se, atravs dos
resultados obtidos na anlise, que a esteganografia como ferramenta para segurana da
informao vivel. Alm disso, O trabalho como fonte de informao para novas pesquisas
tambm foi uma proposta alcanada.

4.1.

Sugestes de continuidade

Implementao de outras tcnicas de esteganografia, como transformao de

domnio e gerao de cobertura.

Construo de uma ferramenta com interface grfica e comunicao usando

sockets para ocultar mensagens e envi-las pela internet.

Esteganografia em arquivo de imagem no formato .JPEG

Pesquisa aprofundada sobre esteganogrfica em udio e vdeo

56

REFERNCIAS
COMPUTER WORLD, Gartner rev gastos globais com TI em 2010, Disponvel em:
<http://computerworld.uol.com.br/negocios/2010/04/12/gartner-gasto-global-com-ti-devecrescer-5-3-em-2010>. Acesso em: 04/2010.

DEVMEDIA. Disponvel em: <http://www.devmedia.com.br/>. Acesso em: 11/2011.

ER. ASSOCIADOS. O que RGB? . Disponvel em: <http://erassociados.com/centralconteudo/detalhe/conteudo-o-que-e-rgb>. Acesso em: 11/2011.

GOOGLE. Google. Disponvel em: <www.google.com.br>. Acesso em: 03/2011.

HOWSTUFFWORKS,
How
Cloud
Computing
Works,
Disponvel
em:
<http://computer.howstuffworks.com/cloud-computing/cloud-computing.htm>. Acesso em:
03/2011.

JASPER, N. A.. Histria, Tcnicas e Classificaode Algoritmos Esteganogrficos.


Monografia apresentada Faculdade de Tecnologia de So Paulo (FATEC-SP). 2009.

JNIOR, J. G. R.; AMORIM, E. S.. Esteganografia: integridade, confidencialidade e


autenticidade. So Bernardo do Campo, 2008.

KIPPER, G.. Investigator's Guide to Steganography, Auerbach Publications, 2004.

LYRA, M. R.. Segurana e Auditoria em Sistemas de Informao. 1. ed. Rio de Janeiro:


Editora Cincia Moderna Ltda., 2008.

MICROSOFT PATTERNS & PRACTICES. Patterns & Practices: Developer Center Home.
Disponvel em: <http://msdn.microsoft.com/en-us/practices/bb190332>. Acesso em: 07/2011.

PEREIRA, F. D. ; ORDONEZ, E.D.M.; CHIARAMONTE, R.B..Criptografia em Software


e Hardware. 1. ed. So Paulo: Novatec, 2005. v. 2000. 288 p.

PROVOS, N.; HONEYMAN, P. Hide and Seek: An Introduction to Steganography, IEEE


Security & Privacy, 1(3): 32-44, maio/junho 2003.

57

RDS INFORMTICA. Proteja-se dos Principais Tipos de Ataque. Disponvel em: <
http://www.rdsinfor.com.br/proteja-se-dos-principais-tipos-de-ataque/>. Acesso em: 04/2011.

SASSI, M. Investimentos retomam ritmo pr-crise, segurana da informao na pauta.


Disponvel em: <http://marcosassi.com.br/investimentos-retomam-ritmo-pre-crise>. Acesso
em: 03/2011.

VIVA O LINUX. Esteganografia e Esteganlise: transmisso e deteco de informaes


ocultas
em
imagens
digitais.
Disponvel
em:<http://www.vivaolinux.com.br/artigo/Esteganografia-e-Esteganalise-transmissao-edeteccao-de-informacoes-ocultas-em-imagens-digitais>. Acesso em: 11/2011.

WAYNER, P. Disappearing Cryptography Information Hiding: Steganography and


Watermarking. Morgan Kaufmann Publisher, 2 Edio, maio 2002.

Você também pode gostar