10.07.2015 Views

protótipo de software para ocultar texto criptografado em imagens ...

protótipo de software para ocultar texto criptografado em imagens ...

protótipo de software para ocultar texto criptografado em imagens ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

UNIVERSIDADE REGIONAL DE BLUMENAUCENTRO DE CIÊNCIAS EXATAS E NATURAISCURSO DE CIÊNCIAS DA COMPUTAÇÃO – BACHARELADOPROTÓTIPO DE SOFTWARE PARA OCULTAR TEXTOCRIPTOGRAFADO EM IMAGENS DIGITAIS.FÁBIO LUIS TAVARES JASCONEBLUMENAU20032003/2-12


FÁBIO LUIS TAVARES JASCONEPROTÓTIPO DE SOFTWARE PARA OCULTAR TEXTOCRIPTOGRAFADO EM IMAGENS DIGITAIS.Trabalho <strong>de</strong> Conclusão <strong>de</strong> Curso submetido àUniversida<strong>de</strong> Regional <strong>de</strong> Blumenau <strong>para</strong> aobtenção dos créditos na disciplina Trabalho<strong>de</strong> Conclusão <strong>de</strong> Curso II do curso <strong>de</strong> Ciênciada Computação — Bacharelado.Prof. Francisco A<strong>de</strong>ll Péricas - OrientadorBLUMENAU20032003/2-12


PROTÓTIPO DE SOFTWARE PARA OCULTAR TEXTOCRIPTOGRAFADO EM IMAGENS DIGITAIS.PorFÁBIO LUIS TAVARES JASCONETrabalho aprovado <strong>para</strong> obtenção dos créditosna disciplina <strong>de</strong> Trabalho <strong>de</strong> Conclusão <strong>de</strong>Curso II, pela banca examinadora formadapor:Presi<strong>de</strong>nte:M<strong>em</strong>bro:M<strong>em</strong>bro:______________________________________________________Prof. Francisco A<strong>de</strong>ll Péricas, MSc. – Orientador, FURB______________________________________________________Prof. Paulo César Rodacki Gomes, FURB______________________________________________________Prof. Maurício Capobianco Lopes, FURBBlumenau, 12 <strong>de</strong> nov<strong>em</strong>bro <strong>de</strong> 2003


Dedico este trabalho aos meus pais peloincentivo, carinho e amor que nunca mefaltaram, e também pela paciência <strong>em</strong> esperaro primeiro filho adquirir grau superior.


Não faça da vida um drama, pule osobstáculos, quebre as barreiras, escalepenhascos se for preciso, mas não <strong>de</strong>ixe <strong>de</strong> serfeliz e seguir <strong>em</strong> frente.Fábio Luis Tavares Jascone


AGRADECIMENTOSA Deus, por me dar algo tão precioso, a vida.Aos meus pais, Carlos e Selma, por me amar<strong>em</strong>, por estar<strong>em</strong> s<strong>em</strong>pre ao meu lado <strong>em</strong>todos os momentos, pelos conselhos, apoio e incentivo à conclusão <strong>de</strong>ste curso.À minha namorada, Ana Luisa, pelo amor e compreensão <strong>em</strong> todos os momentos,principalmente na minha ausência no <strong>de</strong>correr <strong>de</strong>ste trabalho.Ao meu orientador, Francisco A<strong>de</strong>ll Péricas, pela sua paciência, <strong>de</strong>dicação e sabedoria.Aos meus gran<strong>de</strong>s amigos, aqueles que sab<strong>em</strong> que são consi<strong>de</strong>rados como tal, quejunto comigo hoje faz<strong>em</strong> parte da turma Amigos do Barney, e que mesmo s<strong>em</strong> saber<strong>em</strong> mefaz<strong>em</strong> crescer e ser ainda mais feliz.


RESUMOEste trabalho apresenta a especificação e impl<strong>em</strong>entação <strong>de</strong> um protótipo <strong>para</strong> <strong>ocultar</strong>mensagens criptografadas <strong>em</strong> <strong>imagens</strong> digitais, utilizando algoritmo <strong>de</strong> criptografia <strong>em</strong>conjunto com a esteganografia. Para isto, utilizou-se o algoritmo <strong>de</strong> Rijndael, no qual sebaseia o novo padrão Advanced Encryption Standard (AES), principal algoritmo simétrico <strong>de</strong>encriptação <strong>de</strong> dados, <strong>em</strong> conjunto com o método Last Significant Bit (LSB) <strong>de</strong>esteganografia, <strong>para</strong> <strong>ocultar</strong> a informação criptografada <strong>em</strong> uma imag<strong>em</strong>.Palavras chaves: Esteganografia; Criptografia.


ABSTRACTThis work presents the specification and impl<strong>em</strong>entation of an archetype to occult encryptedmessages in digital images, using cryptography algorithm together with steganography. Forthis, the algorithm of Rijndael was used, in which if it bases the new Advanced EncryptionStandard (AES), main symmetrical algorithm of encryptation of data, together with methodLast Significant Bit (LSB) of steganography, to occult the encrypted information in an image.Key-Words: Steganography; Cryptography.


LISTA DE ILUSTRAÇÕESFIGURA 1 – Ameaças da Segurança .......................................................................................16FIGURA 2 – Mo<strong>de</strong>lo Simplificado da Encriptação Convencional ..........................................24QUADRO 1 – Ex<strong>em</strong>plo Simples <strong>de</strong> Criptografia com Chave Secreta.....................................27FIGURA 3 – Processo <strong>de</strong> Criptografia por Chave Pública ......................................................28FIGURA 4 – Processo <strong>de</strong> Criptografia utilizando DES ...........................................................30FIGURA 5 – Processo <strong>de</strong> Criptografia das chaves Ki do DES................................................30FIGURA 6 – Ex<strong>em</strong>plo <strong>de</strong> uma imag<strong>em</strong> no formato bitmap.....................................................37QUADRO 2 – Ex<strong>em</strong>plo <strong>de</strong> pixels <strong>de</strong> uma imag<strong>em</strong>..................................................................39QUADRO 3 – Ex<strong>em</strong>plo <strong>de</strong> uso do método LSB......................................................................40QUADRO 4 – Ex<strong>em</strong>plo <strong>de</strong> uma árvore <strong>de</strong> Huffman................................................................42FIGURA 7 – Casos <strong>de</strong> uso .......................................................................................................46FIGURA 8 – Paleta <strong>de</strong> componentes ce3po. ............................................................................47FIGURA 9 – Diagrama <strong>de</strong> classes............................................................................................47FIGURA 10 – Diagrama <strong>de</strong> sequência: “Início”......................................................................48FIGURA 11 – Diagrama <strong>de</strong> sequência: “Insere Mensag<strong>em</strong>”...................................................49FIGURA 12 – Diagrama <strong>de</strong> sequência: “Consulta Mensag<strong>em</strong>”...............................................50QUADRO 5 – I<strong>de</strong>ntificadores <strong>de</strong> início e final <strong>de</strong> mensag<strong>em</strong> .................................................51QUADRO 6 – I<strong>de</strong>ntificadores <strong>de</strong> criptografia e final <strong>de</strong> mensag<strong>em</strong>........................................51FIGURA 13 – Tela do protótipo...............................................................................................52FIGURA 14 – Inserindo uma mensag<strong>em</strong> na imag<strong>em</strong> ..............................................................54FIGURA 15 – Após inserir uma mensag<strong>em</strong> na imag<strong>em</strong>..........................................................55LISTA DE TABELASTabela 1 – Ex<strong>em</strong>plo <strong>de</strong> esteganografia <strong>em</strong> <strong>imagens</strong> com o método LSB. ...............................57


4.3 ESTEGANOGRAFIA X CRIPTOGRAFIA .....................................................................344.4 ESTEGANOGRAFIA COM IMAGENS..........................................................................354.4.1 ARQUIVOS DE IMAGENS ..........................................................................................354.4.2 INSERÇÃO NO BIT MENOS SIGNIFICATIVO (LSB) ..............................................384.4.3 FILTRAGEM E MASCARAMENTO ...........................................................................404.4.4 ALGORITMOS DE TRANSFORMAÇÕES..................................................................404.5 COMPRESSÃO DE HUFFMAN .....................................................................................414.6 ÁREAS DE APLICAÇÃO................................................................................................435 DESENVOLVIMENTO DO TRABALHO.....................................................................455.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO.......................455.2 ESPECIFICAÇÃO ............................................................................................................455.2.1 CASOS DE USO ............................................................................................................455.2.2 DIAGRAMA DE CLASSES ..........................................................................................465.2.3 DIAGRAMAS DE SEQUÊNCIA ..................................................................................475.2.3.1 INÍCIO..........................................................................................................................475.2.3.2 INSERE MENSAGEM ................................................................................................485.2.3.3 CONSULTA MENSAGEM .........................................................................................495.3 IMPLEMENTAÇÃO ........................................................................................................505.3.1 TÉCNICAS E FERRAMENTAS UTILIZADAS...........................................................505.3.2 OPERACIONALIDADE DA IMPLEMENTAÇÃO......................................................525.3.3 CASO DE USO “INSERE MENSAGEM” ....................................................................535.3.4 CASO DE USO “CONSULTAR MENSAGEM” ..........................................................555.4 RESULTADOS E DISCUSSÃO ......................................................................................566 CONCLUSÕES..................................................................................................................586.1 EXTENSÕES ....................................................................................................................58REFERÊNCIAS BIBLIOGRÁFICAS .................................................................................60ANEXO A – Algoritmo <strong>de</strong> esteganografia <strong>para</strong> <strong>ocultar</strong> a informação na imag<strong>em</strong>..................62ANEXO B – Algoritmo <strong>de</strong> esteganografia <strong>para</strong> extrair a informação da imag<strong>em</strong>...................63


14O sexto capítulo apresenta as consi<strong>de</strong>rações finais, abrangendo as conclusões do<strong>de</strong>senvolvimento <strong>de</strong>ste trabalho, as dificulda<strong>de</strong>s encontradas e as sugestões <strong>para</strong> próximostrabalhos.


152 SEGURANÇA DA INFORMAÇÃOA segurança <strong>em</strong> informática consiste na certeza <strong>de</strong> que as informações <strong>de</strong> uso restritonão <strong>de</strong>v<strong>em</strong> ser acessadas, copiadas ou codificadas por pessoas não autorizadas. Para a garantiadisto, é necessário que as informações sejam cifradas.A questão segurança é bastante enfatizada, principalmente, quando se imagina apossibilida<strong>de</strong> <strong>de</strong> se ter as informações expostas a intrusos, que surg<strong>em</strong> com meios cada vezmais sofisticados <strong>para</strong> violar a privacida<strong>de</strong> e a segurança das comunicações.Nos primórdios da informática, quando as corporações e universida<strong>de</strong>s tinham umúnico centro <strong>de</strong> computação, era fácil conseguir segurança. Tudo o que a organização tinhaque fazer era colocar um guarda à porta da sala do computador. O guarda garantiria queninguém r<strong>em</strong>ovesse quaisquer fitas, discos ou cartões da sala, a menos que estivesseexplicitamente autorizado a fazê-lo (TANENBAUM, 1994).Segundo Stang e Moon (1993), o objetivo principal da segurança <strong>de</strong> informações écontrolar o acesso a informação. Somente pessoas <strong>de</strong>vidamente autorizadas <strong>de</strong>v<strong>em</strong> estarhabilitadas a apreciar, criar, apagar, ou modificar informações.Uma das maneiras <strong>de</strong> se evitar o acesso in<strong>de</strong>vido a informações confi<strong>de</strong>nciais é atravésda codificação ou cifrag<strong>em</strong> da informação, conhecida como criptografia, fazendo com queapenas as pessoas às quais estas informações são <strong>de</strong>stinadas, consigam compreendê-las. Acriptografia fornece técnicas <strong>para</strong> codificar e <strong>de</strong>codificar dados, tais que os mesmos possamser armazenados, transmitidos e recuperados s<strong>em</strong> sua alteração ou exposição. Em outraspalavras, técnicas <strong>de</strong> criptografia po<strong>de</strong>m ser usadas como um meio efetivo <strong>de</strong> proteção <strong>de</strong>informações suscetíveis a ataques, estejam elas armazenadas <strong>em</strong> um computador ou sendotransmitidas pela re<strong>de</strong>. Seu principal objetivo é prover uma comunicação segura, garantindoserviços básicos <strong>de</strong> autenticação, privacida<strong>de</strong> e integrida<strong>de</strong> dos dados.2.1 ATAQUES À SEGURANÇAOs ataques à segurança são qualquer ação que comprometa a segurança <strong>de</strong> informação.Eles po<strong>de</strong>m ser classificados como ataques passivos, nos quais o intruso apenas lê asinformações que trafegam pela re<strong>de</strong> e ataques ativos, nos quais além <strong>de</strong> ler as informações,um intruso po<strong>de</strong> modificá-las e forjá-las.


16Stallings (1995) cita quatro categorias <strong>para</strong> esses ataques (figura 1):a) interceptação (passivo): uma entida<strong>de</strong> não autorizada ganha acessos aoscomponentes ativos, permitindo a captura <strong>de</strong> informações sigilosas como usernamee password (senhas);b) interrupção (ativo): um componente ativo do sist<strong>em</strong>a é <strong>de</strong>struído, ou torna-seindisponível ou inutilizável;c) fabricação (ativo): entida<strong>de</strong> não autorizada insere objetos falsificados no sist<strong>em</strong>a;d) modificação (ativo): uma entida<strong>de</strong> não autorizada não apenas obtém acesso, masfalsifica componentes ativos.FIGURA 1 – Ameaças da SegurançaNos ataques ativos, o intruso utiliza, <strong>de</strong> algum modo, as facilida<strong>de</strong>s da re<strong>de</strong>. Isso po<strong>de</strong>significar o uso direto <strong>de</strong> forma não autorizada; po<strong>de</strong> também significar a interceptação físicada re<strong>de</strong>, instalando tanto um “grampo” <strong>para</strong> escuta, ou um nó completo não autorizado. Comum “grampo” ativo simulando um nó, o intruso não só recebe todo o tráfego, como po<strong>de</strong>também introduzir algo, aumentando ainda mais a ameaça. O intruso po<strong>de</strong> até mesmo impedira utilização da re<strong>de</strong> por outras pessoas, congestionando-a com o tráfego. Se os protocolosutilizados for<strong>em</strong> do tipo on<strong>de</strong> o nó não autorizado está <strong>em</strong> posição <strong>de</strong> capturar e liberartráfego, há o risco potencial <strong>de</strong> en<strong>de</strong>reçar e modificar pacotes <strong>de</strong> dados.


172.2 MECANISMOS DE SEGURANÇAOs mecanismos <strong>de</strong> segurança são técnicas, procedimentos e algoritmos que quandousados a<strong>de</strong>quadamente possibilitam a impl<strong>em</strong>entação dos serviços <strong>de</strong> segurança, pois sãomecanismos projetados <strong>para</strong> <strong>de</strong>tectar, prever ou <strong>de</strong>scobrir um ataque <strong>de</strong> segurança.2.2.1 CRIPTOGRAFIAEm meios <strong>de</strong> comunicação on<strong>de</strong> não é possível impedir que o fluxo <strong>de</strong> pacote <strong>de</strong> dadosseja interceptado, po<strong>de</strong>ndo as informações ser<strong>em</strong> lidas ou até modificadas, é necessária acriptografia. Nesse mecanismo, utiliza-se um método que modifique o <strong>texto</strong> original damensag<strong>em</strong> transmitida, gerando um <strong>texto</strong> <strong>criptografado</strong> na orig<strong>em</strong>, através <strong>de</strong> um processo <strong>de</strong>codificação <strong>de</strong>finido por um método <strong>de</strong> criptografia. O pacote é então transmitido e, ao chegarno <strong>de</strong>stino, ocorre o processo inverso, isto é, o método <strong>de</strong> criptografia é aplicado agora <strong>para</strong><strong>de</strong>codificar a mensag<strong>em</strong>, transformando-a na mensag<strong>em</strong> original. Esse assunto é <strong>de</strong>talhado nocapítulo 3.2.2.2 ASSINATURA DIGITALAssinatura digital é um conjunto <strong>de</strong> procedimentos mat<strong>em</strong>áticos realizados com autilização <strong>de</strong> técnicas <strong>de</strong> criptografia assimétrica que permite, <strong>de</strong> forma única e exclusiva, acomprovação da autoria <strong>de</strong> um <strong>de</strong>terminado conjunto <strong>de</strong> dados.Um <strong>de</strong>terminado usuário A codifica uma mensag<strong>em</strong> utilizando sua chave secreta e aenvia <strong>para</strong> o <strong>de</strong>stinatário. Somente a chave pública <strong>de</strong> A permitirá a <strong>de</strong>codificação damensag<strong>em</strong>, portanto é a prova <strong>de</strong> que A enviou a mensag<strong>em</strong>. A mensag<strong>em</strong> assim po<strong>de</strong> ser<strong>de</strong>codificada por qualquer um que tenha a chave pública <strong>de</strong> A. Para garantir o sigilo <strong>de</strong>ve-secriptografar duas vezes a mensag<strong>em</strong>: a primeira utilizando a própria chave secreta (<strong>para</strong> fazera assinatura digital) e a seguir utilizando a chave pública do <strong>de</strong>stinatário, <strong>para</strong> que somenteeste possa ler a mensag<strong>em</strong> (SANTOS, EMER e AVER, 1996).As proprieda<strong>de</strong>s da assinatura digital são:a) a assinatura é autêntica: quando um usuário usa a chave pública <strong>de</strong> A <strong>para</strong> <strong>de</strong>cifraruma mensag<strong>em</strong>, ele confirma que foi A e somente A qu<strong>em</strong> enviou a mensag<strong>em</strong>;b) a assinatura não po<strong>de</strong> ser forjada: somente A conhece sua chave secreta;c) o documento assinado não po<strong>de</strong> ser alterado: se houver qualquer alteração no <strong>texto</strong>


18<strong>criptografado</strong> este não po<strong>de</strong>rá ser restaurado com o uso da chave pública <strong>de</strong> A;d) a assinatura não é reutilizável: a assinatura é uma função do documento e não po<strong>de</strong>ser transferida <strong>para</strong> outro documento;e) a assinatura não po<strong>de</strong> ser repudiada: o usuário B não precisa <strong>de</strong> nenhuma ajuda <strong>de</strong>A <strong>para</strong> reconhecer sua assinatura e A não po<strong>de</strong> negar ter assinado o documento.2.2.3 INTEGRIDADE DOS DADOSOs mecanismos <strong>de</strong> controle <strong>de</strong> integrida<strong>de</strong> <strong>de</strong> dados atuam <strong>em</strong> dois níveis: controle daintegrida<strong>de</strong> <strong>de</strong> pacotes isolados e controle da integrida<strong>de</strong> <strong>de</strong> uma conexão, isto é, dos pacotese da seqüência <strong>de</strong> transmissão.Em relação ao primeiro nível, t<strong>em</strong>-se que técnicas <strong>de</strong> <strong>de</strong>tecção <strong>de</strong> modificações, quesão normalmente associadas com a <strong>de</strong>tecção <strong>de</strong> erros <strong>em</strong> bits, pacotes ou erros <strong>de</strong> seqüênciaintroduzidos por enlaces e re<strong>de</strong>s <strong>de</strong> comunicação, são usadas <strong>para</strong> garantir a integrida<strong>de</strong> dosdados trafegados <strong>em</strong> uma re<strong>de</strong>. Contudo, se os cabeçalhos dos pacotes <strong>de</strong> dados não for<strong>em</strong><strong>de</strong>vidamente protegidos contra possíveis modificações, po<strong>de</strong>-se contornar a verificação, <strong>de</strong>s<strong>de</strong>que sejam conhecidas essas técnicas. Portanto, <strong>para</strong> garantir a integrida<strong>de</strong> é necessário manterconfi<strong>de</strong>nciais e íntegras as informações <strong>de</strong> controle que são usadas na <strong>de</strong>tecção <strong>de</strong>modificações.Já <strong>para</strong> controlar modificações na seqüência <strong>de</strong> pacotes transmitidos <strong>em</strong> uma conexão,são necessárias técnicas que garantam a integrida<strong>de</strong> <strong>de</strong>sses pacotes, <strong>de</strong> forma a garantir que asinformações <strong>de</strong> controle não sejam corrompidas, <strong>em</strong> conjunto com informações <strong>de</strong> controle <strong>de</strong>seqüência. Esses cuidados, apesar <strong>de</strong> não evitar<strong>em</strong> a modificação da ca<strong>de</strong>ia <strong>de</strong> pacotes,garant<strong>em</strong> a <strong>de</strong>tecção e notificação dos ataques (SOARES et al, 1995).2.2.4 CONTROLE DE ACESSOEsse mecanismo <strong>de</strong> segurança é utilizado <strong>para</strong> garantir que o acesso a um recurso <strong>de</strong>re<strong>de</strong> qualquer seja limitado a usuários <strong>de</strong>vidamente autorizados pelo administrador dosist<strong>em</strong>a.Como técnicas utilizadas, t<strong>em</strong>-se a utilização <strong>de</strong> listas ou matrizes <strong>de</strong> controles <strong>de</strong>acesso, que associam recursos a usuários autorizados, ou senhas e tokens (método <strong>de</strong> acesso are<strong>de</strong> que utiliza uma espécie <strong>de</strong> ficha eletrônica circulante a fim <strong>de</strong> impedir que mais <strong>de</strong> um


19nó transmita simultaneamente) associadas aos recursos, cuja posse <strong>de</strong>termina os direitos <strong>de</strong>acesso do usuário que as possui.Como ex<strong>em</strong>plo da utilização <strong>de</strong> tokens <strong>para</strong> controlar o acesso aos recursos <strong>de</strong> umare<strong>de</strong>, po<strong>de</strong>-se consi<strong>de</strong>rar o método <strong>de</strong> controle <strong>de</strong> congestionamento <strong>de</strong> tráfego conhecidocomo controle isorrítmico. Nesse método, exist<strong>em</strong> permissões, que são os tokens, quecirculam pela re<strong>de</strong>. S<strong>em</strong>pre que um host <strong>de</strong>seja transmitir um novo pacote pela re<strong>de</strong>, eleprimeiramente <strong>de</strong>ve capturar uma <strong>de</strong>ssas permissões e <strong>de</strong>struí-la, sendo que essa permissão<strong>de</strong>struída é regenerada pelo host que recebe o pacote no <strong>de</strong>stino. Contudo, esse métodoapresenta um probl<strong>em</strong>a: a distribuição das permissões <strong>de</strong>pen<strong>de</strong> das aplicações na re<strong>de</strong> e opróprio tráfego aleatório <strong>de</strong>sses tokens causa um tráfego extra na re<strong>de</strong>, diminuindo assim oseu <strong>de</strong>s<strong>em</strong>penho. Ainda, t<strong>em</strong>-se que a perda <strong>de</strong> uma permissão <strong>de</strong>vido a uma falha qualquerna re<strong>de</strong> <strong>de</strong>ve ser recuperada, <strong>de</strong> forma a evitar que a sua capacida<strong>de</strong> <strong>de</strong> transporte sejareduzida (SOARES et al, 1995).2.2.5 CONTROLE DE ROTEAMENTOEsse mecanismo garante a transmissão <strong>de</strong> informação através <strong>de</strong> rotas fisicamenteseguras, cujos canais <strong>de</strong> comunicação forneçam os níveis apropriados <strong>de</strong> proteção. Essagarantia se <strong>de</strong>ve ao controle do roteamento <strong>de</strong> pacotes <strong>de</strong> dados. Através <strong>de</strong>sse controle, rotaspreferenciais (ou obrigatórias) <strong>para</strong> a transferência <strong>de</strong> dados são especificadas peloadministrador do sist<strong>em</strong>a.2.2.6 FIREWALLServiço utilizado <strong>para</strong> aumentar a segurança <strong>de</strong> re<strong>de</strong>s, principalmente re<strong>de</strong>s locaisligadas à Internet. Trata <strong>de</strong> uma espécie <strong>de</strong> barreira <strong>de</strong> proteção constituída <strong>de</strong> um conjunto <strong>de</strong>hardware e <strong>software</strong>. Po<strong>de</strong>-se dizer também que firewall é um conjunto <strong>de</strong> políticas <strong>de</strong>segurança que t<strong>em</strong> como objetivo tornar uma segurança eficiente.Firewall é um sist<strong>em</strong>a ou um grupo <strong>de</strong> sist<strong>em</strong>as que garante uma política <strong>de</strong> controle<strong>de</strong> acesso entre duas re<strong>de</strong>s (normalmente a Internet e uma re<strong>de</strong> local). Em princípio firewallspo<strong>de</strong>m ser vistos como um par <strong>de</strong> mecanismos: um que existe <strong>para</strong> bloquear o tráfego e outroque existe <strong>para</strong> permitir o tráfego. Alguns firewalls dão maior ênfase ao bloqueio <strong>de</strong> tráfego,enquanto outros enfatizam a permissão do tráfego. O importante é configurar o firewall <strong>de</strong>


20acordo com a política <strong>de</strong> segurança da organização que o utiliza, estabelecendo o tipo <strong>de</strong>acesso que <strong>de</strong>ve ser permitido ou negado (KANISHIMA et al, 2000).2.3 POLÍTICA DE SEGURANÇAUma política <strong>de</strong> segurança é <strong>de</strong>finida como sendo um conjunto <strong>de</strong> leis, regras epráticas que <strong>de</strong>fin<strong>em</strong> como uma <strong>em</strong>presa, ou instituição, gerencia e protege seus recursos etransmit<strong>em</strong> os seus dados. Um sist<strong>em</strong>a <strong>de</strong> comunicação <strong>de</strong> dados po<strong>de</strong> ser consi<strong>de</strong>rado seguroquando garante o cumprimento <strong>de</strong>ssa política, que <strong>de</strong>ve incluir regras <strong>de</strong>talhadas <strong>de</strong>finindocomo as informações e recursos oferecidos pela re<strong>de</strong> <strong>de</strong>v<strong>em</strong> ser manipulados.Uma política <strong>de</strong> segurança é impl<strong>em</strong>entada baseando-se na aplicação <strong>de</strong> regras quecontrol<strong>em</strong> o acesso aos dados e recursos que são trafegados através da re<strong>de</strong>, isto é, <strong>de</strong>fine-se oque é e o que não é permitido <strong>em</strong> termos <strong>de</strong> segurança, durante a operação <strong>de</strong> um dadoaplicativo ou recurso da re<strong>de</strong>, através da <strong>de</strong>finição do nível <strong>de</strong> acesso autorizado <strong>para</strong> osusuários que se utilizam do sist<strong>em</strong>a <strong>de</strong> comunicação <strong>de</strong> dados. Com base na natureza daautorização que é dada ao usuário, po<strong>de</strong>-se dividir <strong>em</strong> dois os tipos <strong>de</strong> política <strong>de</strong> segurançaexistentes: uma baseada <strong>em</strong> regras, on<strong>de</strong> os dados e recursos da re<strong>de</strong> são marcados comrótulos <strong>de</strong> segurança apropriados que <strong>de</strong>fin<strong>em</strong> o nível <strong>de</strong> autorização do usuário que os estácontrolando e uma outra baseada <strong>em</strong> i<strong>de</strong>ntida<strong>de</strong>. Nesse último tipo, o administrador da re<strong>de</strong>po<strong>de</strong> especificar explicitamente os tipos <strong>de</strong> acesso que os usuários da re<strong>de</strong> po<strong>de</strong>m ter àsinformações e recursos que estão sob seu controle (SOARES et al, 1995).2.4 VULNERABILIDADENenhum sist<strong>em</strong>a <strong>de</strong> segurança é impenetrável. Em qualquer sist<strong>em</strong>a <strong>de</strong> segurança énecessário saber se a informação que está sendo protegida é mais valiosa <strong>para</strong> um eventualagressor do que o custo que este teria <strong>para</strong> burlar o sist<strong>em</strong>a <strong>de</strong> proteção. Isto ajudaria a seproteger <strong>de</strong> ataques <strong>de</strong> baixo custo s<strong>em</strong> a preocupação com meios mais sofisticados e caros <strong>de</strong>espionag<strong>em</strong>.2.5 SEGURANÇA NA INTERNETSegundo Kanishima et al (2000), a Internet foi projetada visando fornecerconectivida<strong>de</strong> entre computadores <strong>para</strong> uma comunida<strong>de</strong> restrita <strong>de</strong> usuários que confiavam


21mutuamente entre si. Ela não foi projetada <strong>para</strong> um ambiente comercial, <strong>para</strong> tráfego <strong>de</strong>informações valiosas ou sensíveis, ou <strong>para</strong> resistir a ataques mal-intencionados. Durante adécada <strong>de</strong> 80, antes da popularização da Internet, os computadores foram alvos <strong>de</strong> ataquesindividuais e isolados. A solução adotada foi relativamente simples: incentivar os usuários aescolher<strong>em</strong> boas senhas, prevenir o compartilhamento indiscriminado <strong>de</strong> contas e arquivos eeliminar as falhas <strong>de</strong> segurança <strong>de</strong> programas como sendmail, finger e login à medida que elesiam sendo <strong>de</strong>scobertos.A partir da década <strong>de</strong> 90, entretanto, os ataques se tornaram sofisticados e organizados:senhas e outras informações importantes são capturadas, computadores são invadidos, sessõessão <strong>de</strong>sviadas, dados são comprometidos pela inserção <strong>de</strong> informação espúria, etc.Estes ataques são diretamente relacionados ao protocolo IP que não foi projetado <strong>para</strong>o ambiente atual da Internet. Assumiu-se que esta tarefa seria realizada por protocolos <strong>de</strong>maior nível <strong>de</strong> abstração.O protocolo IP está <strong>em</strong> permanente evolução, futuras versões provavelmentefornecerão a segurança e a confiabilida<strong>de</strong> requeridas. Esta característica, entretanto, tambémt<strong>em</strong> suas <strong>de</strong>svantagens, uma vez que o IP está sendo usado <strong>em</strong> ambientes <strong>para</strong> os quais não foioriginalmente projetado (KANISHIMA et al, 2000).Atualmente, a única maneira segura <strong>de</strong> proteger os pacotes contra espionag<strong>em</strong> nainternet é utilizando criptografia através <strong>de</strong> alguns métodos <strong>de</strong> cifrag<strong>em</strong>:a) <strong>em</strong> nível <strong>de</strong> enlace: on<strong>de</strong> os pacotes são automaticamente cifrados quando enviadospor um canal inseguro;b) entre orig<strong>em</strong> e <strong>de</strong>stino: on<strong>de</strong> os pacotes são cifrados pela máquina orig<strong>em</strong> e<strong>de</strong>cifrados somente na máquina <strong>de</strong> <strong>de</strong>stino;c) <strong>em</strong> nível <strong>de</strong> aplicativo: on<strong>de</strong> a cifrag<strong>em</strong> é realizada pelo próprio programaaplicativo.Infelizmente, a cifrag<strong>em</strong> dos dados não resolve todos os probl<strong>em</strong>as. A falta <strong>de</strong> ummecanismo efetivo <strong>de</strong> autenticação permite que atacantes possam alterar ou falsificar aorig<strong>em</strong> <strong>de</strong> diversas conexões. Isto é particularmente efetivo <strong>para</strong> correio eletrônico, serviços<strong>de</strong> notícias e WWW.


223 CRIPTOGRAFIACriptografia é a arte ou a ciência <strong>de</strong> escrever <strong>em</strong> cifra ou <strong>em</strong> código, ou seja, é umconjunto <strong>de</strong> técnicas que permite tornar incompreensível uma mensag<strong>em</strong> originalmenteescrita com clareza, <strong>de</strong> forma a permitir normalmente que apenas o <strong>de</strong>stinatário a <strong>de</strong>cifre ecompreenda. Quase s<strong>em</strong>pre o <strong>de</strong>ciframento requer o conhecimento <strong>de</strong> uma chave, umainformação secreta disponível ao <strong>de</strong>stinatário (LUCCHESI, 1986).Segundo Santos, Emer e Aver (1996), a criptografia já esteve presente no sist<strong>em</strong>a <strong>de</strong>escrita hieroglífica dos egípcios. Des<strong>de</strong> então v<strong>em</strong> sendo muito utilizada, principalmente <strong>para</strong>fins militares e diplomáticos. No âmbito da computação a criptografia é importante <strong>para</strong> quese possa garantir a segurança <strong>em</strong> todo o ambiente computacional que necessite <strong>de</strong> sigilo <strong>em</strong>relação às informações que manipula. Po<strong>de</strong> ser usada <strong>para</strong> se codificar dados e mensagensantes que esses sejam enviados por vias <strong>de</strong> comunicação, <strong>para</strong> que mesmo que sejaminterceptados, dificilmente possam ser <strong>de</strong>codificados.A criptografia computacional é usada <strong>para</strong> garantir:a) sigilo: somente os usuários autorizados têm acesso à informação;b) integrida<strong>de</strong>: garantia <strong>de</strong> que a informação original não foi alterada;c) autenticação <strong>de</strong> usuário: garante que a pessoa com qu<strong>em</strong> se está comunicando érealmente qu<strong>em</strong> diz ser;d) autenticação <strong>de</strong> r<strong>em</strong>etente: garante que a mensag<strong>em</strong> recebida foi <strong>de</strong> fato enviadapelo r<strong>em</strong>etente;e) autenticação do <strong>de</strong>stinatário: garante que a mensag<strong>em</strong> enviada foi recebida pelo<strong>de</strong>stinatário;f) autenticação <strong>de</strong> atualida<strong>de</strong>: garante que a mensag<strong>em</strong> é atual.Segundo Soares et al (1995), a criptografia surgiu da necessida<strong>de</strong> <strong>de</strong> se enviarinformações sensíveis através <strong>de</strong> meios <strong>de</strong> comunicação não confiáveis, ou seja, <strong>em</strong> meioson<strong>de</strong> não é possível garantir que um intruso não irá interceptar o fluxo <strong>de</strong> dados <strong>para</strong> leituraou <strong>para</strong> modificá-lo. A forma <strong>de</strong> contornar esse probl<strong>em</strong>a é utilizar um método que modifiqueo <strong>texto</strong> original da mensag<strong>em</strong> a ser transmitida, gerando <strong>texto</strong> <strong>criptografado</strong> na orig<strong>em</strong>,através <strong>de</strong> um processo <strong>de</strong> codificação <strong>de</strong>finido por um método <strong>de</strong> criptografia. O <strong>texto</strong><strong>criptografado</strong> é então transmitido e, no <strong>de</strong>stino, o processo inverso ocorre, isto é, o método <strong>de</strong>


23criptografia é aplicado agora <strong>para</strong> <strong>de</strong>codificar o <strong>texto</strong> <strong>criptografado</strong> transformando-o no <strong>texto</strong>original.A criptografia <strong>de</strong> dados é feita através <strong>de</strong> algoritmos que realizam o ciframento e o<strong>de</strong>ciframtento dos dados. Esses algoritmos utilizam, na maioria das vezes, técnicas baseadas<strong>em</strong> fórmulas mat<strong>em</strong>áticas com diferentes combinações. O algoritmo po<strong>de</strong> ser amplamenteconhecido, pois a segurança do sist<strong>em</strong>a consiste na chave utilizada <strong>para</strong> cifrar e <strong>de</strong>cifrar osdados, conhecida apenas pelas partes envolvidas no processo. Segundo Oliveira (2000), acriptografia é uma das melhores formas <strong>de</strong> garantir a confi<strong>de</strong>ncialida<strong>de</strong> das informações quetrafegam pela internet.Os algoritmos criptográficos po<strong>de</strong>m ser classificados <strong>em</strong> dois tipos: os <strong>de</strong> chavesecreta e os <strong>de</strong> chave pública. Os algoritmos <strong>de</strong> chave secreta, também chamados <strong>de</strong>algoritmos simétricos, caracterizam-se por utilizar a mesma chave tanto <strong>para</strong> a cifrag<strong>em</strong> como<strong>para</strong> a <strong>de</strong>cifrag<strong>em</strong> dos dados. Os algoritmos <strong>de</strong> chave pública, também chamados <strong>de</strong>algoritmos assimétricos, utilizam-se <strong>de</strong> duas chaves: uma secreta só conhecida por pessoasautorizadas e outra pública que po<strong>de</strong> ser divulgada.Sist<strong>em</strong>as criptográficos são geralmente classificados quanto a sua funcionalida<strong>de</strong> eeficiência ao longo <strong>de</strong> três dimensões:a) o tipo <strong>de</strong> operações usadas <strong>para</strong> codificar o <strong>texto</strong>: os algoritmos <strong>de</strong> encriptação sãobaseados <strong>em</strong> dois princípios gerais: substituição, <strong>em</strong> que cada el<strong>em</strong>ento no <strong>texto</strong>original é mapeado <strong>em</strong> outro el<strong>em</strong>ento; e transposição, <strong>em</strong> que el<strong>em</strong>entos no <strong>texto</strong>claro são rearranjados. O requisito fundamental <strong>para</strong> o bom funcionamento eeficiência do sist<strong>em</strong>a é que a mensag<strong>em</strong> não seja perdida, que todas as operaçõessejam reversíveis;b) o número <strong>de</strong> chaves usado: se ambos, transmissor e receptor, usam a mesma chave,o sist<strong>em</strong>a é <strong>de</strong>nominado simétrico, <strong>de</strong> chave secreta ou encriptação convencional.Se cada um, transmissor e receptor, usa uma chave diferente, o sist<strong>em</strong>a é<strong>de</strong>nominado assimétrico, <strong>de</strong> duas chaves ou enctriptação <strong>de</strong> chave pública;c) o modo <strong>em</strong> que o <strong>texto</strong> original é processado: um bloco cifrado processa a entrada<strong>em</strong> um bloco <strong>de</strong> el<strong>em</strong>entos no momento, produzindo um bloco <strong>de</strong> saída <strong>para</strong> cadabloco <strong>de</strong> entrada; enquanto um nível cifrado processa os el<strong>em</strong>entos <strong>de</strong> entradacontinuamente, produzindo saída todo o t<strong>em</strong>po.


243.1 ENCRIPTAÇÃO CONVENCIONALA encriptação convencional, ou tradicional, é também <strong>de</strong>finida como encriptaçãosimétrica ou <strong>de</strong> chave secreta.Nesta técnica, uma mesma chave é utilizada <strong>para</strong> criptografar e <strong>de</strong>criptografar umamensag<strong>em</strong> que, portanto, <strong>de</strong>ve ser <strong>de</strong> conhecimento tanto do <strong>em</strong>issor como do receptor damesma. Em sist<strong>em</strong>as criptográficos simétricos, os algoritmos <strong>de</strong> criptografia e <strong>de</strong>criptografiasão os mesmos, muda-se apenas a forma como são utilizadas as chaves.A segurança da encriptação convencional <strong>de</strong>pen<strong>de</strong> <strong>de</strong> alguns fatores. O algoritmo <strong>de</strong>encriptação precisa ser impl<strong>em</strong>entado <strong>de</strong> maneira que torne impossível <strong>de</strong>criptografar umamensag<strong>em</strong> baseando-se apenas no <strong>texto</strong> cifrado. Além disso, a segurança da criptografiaconvencional <strong>de</strong>pen<strong>de</strong> do sigilo da chave, e não do sigilo do algoritmo, tanto é que ofuncionamento dos principais algoritmos <strong>de</strong> criptografia é acessível a todos. Com issoassume-se que é impossível <strong>de</strong>criptografar uma mensag<strong>em</strong> baseando-se no <strong>texto</strong> cifradomesmo tendo conhecimento do algoritmo <strong>de</strong> encriptação e <strong>de</strong>criptação (KONKOL, 1997).FIGURA 2 – Mo<strong>de</strong>lo Simplificado da Encriptação ConvencionalComo mostra a figura 2, a mensag<strong>em</strong> original é encriptada com uma chave K e enviadaatravés <strong>de</strong> algum meio eletrônico. Porém <strong>para</strong> o <strong>de</strong>stinatário conseguir <strong>de</strong>cifrar estamensag<strong>em</strong>, ele <strong>de</strong>ve ter a mesma chave K utilizada na encriptação. Com este mo<strong>de</strong>lo po<strong>de</strong>-segarantir a confi<strong>de</strong>ncialida<strong>de</strong> da mensag<strong>em</strong>, <strong>de</strong>s<strong>de</strong> que somente transmissor e receptor tenhamconhecimento da chave K.


25Com a mensag<strong>em</strong> X e a chave <strong>de</strong> encriptação K como entrada, o algoritmo <strong>de</strong>encriptação, ou <strong>de</strong>criptação, forma o <strong>texto</strong> cifrado Y = [Y1, Y2, ..., Yn]. Po<strong>de</strong>-se escrever issocom Y = E k (X), on<strong>de</strong> Y é produzido pelo uso do algoritmo E <strong>em</strong> função do <strong>texto</strong> X, com afunção específica <strong>de</strong>terminada pelo valor da chave K. O receptor, conhecendo a chave K, écapaz <strong>de</strong> inverter a transformação através <strong>de</strong> X = D k (Y), on<strong>de</strong> D representa o algoritmo <strong>de</strong><strong>de</strong>criptação.O <strong>texto</strong> cifrado não sofre alteração quanto ao seu tamanho. É importante salientartambém que o <strong>texto</strong> cifrado não contém qualquer parte da chave.3.1.1 CIFRAS DE SUBSTITUIÇÃOÉ uma forma <strong>de</strong> encriptação que troca cada caracter ou grupo <strong>de</strong> caracteres por outro,<strong>de</strong> acordo com uma tabela <strong>de</strong> substituição. Po<strong>de</strong>-se quebrar esse método analisando-se afrequência <strong>de</strong> cada caracter no <strong>texto</strong> cifrado e com<strong>para</strong>ndo-se essas frequências com aquelasque normalmente aparec<strong>em</strong> <strong>em</strong> um <strong>de</strong>terminado idioma. As vogais têm maior frequência queas consoantes e alguns caracteres possu<strong>em</strong> frequência baixíssima <strong>em</strong> relação aos <strong>de</strong>mais(SANTOS, EMER e AVER, 1996).A substituição é chamada monoalfabética quando não <strong>de</strong>pen<strong>de</strong> da posição, mas apenasda letra original. Quando <strong>de</strong>pen<strong>de</strong> também da posição, é chamada polialfabética.3.1.2 CIFRAS DE TRANSPOSIÇÃOTransposição é uma forma <strong>de</strong> encriptação on<strong>de</strong> troca-se a posição dos caracteres namensag<strong>em</strong>. Por ex<strong>em</strong>plo, po<strong>de</strong>-se reescrever o <strong>texto</strong> percorrendo-o por colunas, ou então<strong>de</strong>finir o tamanho <strong>para</strong> um vetor <strong>de</strong> trocas e também uma or<strong>de</strong>m <strong>em</strong> que as trocas serão feitas.Por ex<strong>em</strong>plo, <strong>em</strong> um vetor <strong>de</strong> tamanho 6 po<strong>de</strong>-se trocar o primeiro caracter pelo terceiro, osegundo pelo quinto e o quarto pelo sexto. Se a frequência dos caracteres for a mesma doidioma, t<strong>em</strong>-se substituição por transposição. Se for diferente, t<strong>em</strong>-se por substituição.Também é possível combinar substituição e transposição, ou vice e versa (SANTOS, EMER eAVER, 1996).


263.1.3 MÁQUINAS DE CIFRAGEMAs máquinas <strong>de</strong> cifrag<strong>em</strong> baseiam-se <strong>em</strong> engrenagens com tamanhos diferentes e quegiram a velocida<strong>de</strong>s diferentes, obtendo uma substituição polialfabética com chave <strong>de</strong> 26n,on<strong>de</strong> n é o número <strong>de</strong> engrenagens.3.2 CRIPTOANÁLISECriptoanálise é o processo <strong>de</strong> tentativas <strong>para</strong> <strong>de</strong>scobrir X ou K, ou ambos. A estratégiausada pelo criptoanalista <strong>de</strong>pen<strong>de</strong> da natureza do esqu<strong>em</strong>a <strong>de</strong> encriptação e a avaliação dainformação <strong>para</strong> o criptoanalista.A maior dificulda<strong>de</strong> é quando tudo o que é avaliado é o próprio <strong>texto</strong> cifrado. Emalguns casos, n<strong>em</strong> s<strong>em</strong>pre o algoritmo <strong>de</strong> encriptação é conhecido, mas <strong>em</strong> geral po<strong>de</strong>-seassumir que o oponente conhece o algoritmo usado <strong>para</strong> a encriptação. Um possível ataquesobre essas circunstâncias é a aproximação da força bruta das tentativas <strong>de</strong> todas as chavespossíveis. Se o espaço da chave é muito gran<strong>de</strong>, isto se torna impraticável. Assim, o oponenteprecisa confiar <strong>em</strong> uma análise do próprio <strong>texto</strong> cifrado, geralmente aplicando vários testesestatísticos <strong>para</strong> isso. Para usar essa aproximação, o oponente precisa pelo menos ter algumaidéia geral do tipo <strong>de</strong> <strong>texto</strong> que está <strong>criptografado</strong>.3.3 MÉTODOS DE CRIPTOGRAFIAA segurança da criptografia não está no algoritmo utilizado <strong>para</strong> encriptar ou <strong>de</strong>criptaros dados, e sim na chave. Para impl<strong>em</strong>entar esta questão, exist<strong>em</strong> dois métodos, um queutiliza o conceito <strong>de</strong> chave secreta, e outro que utiliza o conceito <strong>de</strong> chave pública.3.3.1 CRIPTOGRAFIA COM CHAVE SECRETAOs métodos <strong>de</strong> criptografia que utilizam a mesma chave <strong>para</strong> codificação sãoclassificados como simétricos ou baseados <strong>em</strong> chave secreta ou chave única.Um ex<strong>em</strong>plo <strong>de</strong>sse método seria substituir as letras <strong>de</strong> um <strong>texto</strong> pela n-ésima letra após suaposição no alfabeto, nesse caso o <strong>texto</strong> <strong>criptografado</strong> produzido <strong>para</strong> um mesmo <strong>texto</strong> normalvariará <strong>de</strong> acordo com o valor <strong>de</strong> n, que é a chave utilizada nos procedimentos <strong>de</strong> codificaçãodo método.


27O quadro 1 ilustra o ex<strong>em</strong>plo citado anteriormente, on<strong>de</strong> X é o <strong>texto</strong> no formatooriginal, Y é o <strong>texto</strong> <strong>criptografado</strong> e K representa a chave que foi utilizada, no caso, 2 posiçõesna sequência do alfabeto (26 letras).QUADRO 1 – Ex<strong>em</strong>plo Simples <strong>de</strong> Criptografia com Chave SecretaUns dos algoritmos mais conhecidos <strong>de</strong> chave secreta é o Data Encryption Standard(DES), que cifra blocos <strong>de</strong> 64 bits (8 caracteres) usando uma chave <strong>de</strong> 56 bits mais 8 bits <strong>de</strong>parida<strong>de</strong>.Um passo <strong>de</strong> cifrag<strong>em</strong> do DES t<strong>em</strong> dois objetivos básicos, a difusão e a confusão. Adifusão visa eliminar a redundância existente na mensag<strong>em</strong> original, distribuindo-a pelamensag<strong>em</strong> cifrada. O propósito da confusão é tornar a relação entre a mensag<strong>em</strong> e a chave tãocomplexa quanto possível. O DES po<strong>de</strong> ser quebrado pelo método da força bruta, tentando-setodas as combinações possíveis <strong>de</strong> chave.3.3.2 CRIPTOGRAFIA COM CHAVE PÚBLICAEsse método <strong>de</strong> criptografia baseia-se na utilização <strong>de</strong> chaves distintas, uma <strong>para</strong> acodificação (E) e outra <strong>para</strong> a <strong>de</strong>codificação (D), escolhidas <strong>de</strong> forma que a <strong>de</strong>rivação <strong>de</strong> D apartir <strong>de</strong> E seja, <strong>em</strong> termos práticos, senão impossível, pelo menos muito difícil <strong>de</strong> serrealizada. Uma vez respeitada essa condição, não há razão <strong>para</strong> não tornar a chave E pública,simplificando bastante a tarefa <strong>de</strong> gerenciamento das chaves. Os métodos <strong>de</strong> criptografia queexib<strong>em</strong> essas características são <strong>de</strong>nominados assimétricos, ou baseados <strong>em</strong> chave pública.Uma mensag<strong>em</strong> cifrada com uma chave pública só po<strong>de</strong> ser <strong>de</strong>cifrada pela outra chavesecreta com a qual está relacionada. O processo é ilustrado na figura 3. A chave usada <strong>para</strong>cifrar recebe o nome <strong>de</strong> “chave pública” pois ela <strong>de</strong>ve ser publicada e amplamente divulgadapelo seu possuidor, fazendo com que qualquer pessoa possa lhe enviar mensagens cifradas. Jáa chave usada <strong>para</strong> <strong>de</strong>cifrar as mensagens, <strong>de</strong>ve ser mantida <strong>em</strong> sigilo. Geralmente, os


28usuários <strong>de</strong>ste tipo <strong>de</strong> criptografia publicam suas chaves públicas <strong>em</strong> suas home pages,assinaturas dos e-mails, etc.FIGURA 3 – Processo <strong>de</strong> Criptografia por Chave PúblicaA chave <strong>de</strong> ciframento é publica, s<strong>em</strong> que haja quebra <strong>de</strong> segurança. Dessa forma cadausuário t<strong>em</strong> uma chave <strong>de</strong> ciframento, <strong>de</strong> conhecimento público, e outra <strong>de</strong> <strong>de</strong>ciframento,secreta. Se um usuário A <strong>de</strong>seja enviar uma mensag<strong>em</strong> <strong>para</strong> um usuário B, ele utiliza a chave<strong>de</strong> ciframento pública PB, este <strong>de</strong> posse <strong>de</strong> sua chave <strong>de</strong> <strong>de</strong>ciframento SB <strong>de</strong>codifica amensag<strong>em</strong>.Segundo Lucchesi (1986), o principal algoritmo que utiliza este sist<strong>em</strong>a é o RSA,anacrônico <strong>de</strong> seus autores Rivest, Shamir e Adl<strong>em</strong>an. Sua segurança baseia-se naintratabilida<strong>de</strong> da fatoração <strong>de</strong> produtos <strong>de</strong> dois primos. Este algoritmo é comentado na seção3.4.3.3.3.3 CRIPTOGRAFIA SIMÉTRICA X ASSIMÉTRICAA diferença entre os métodos <strong>de</strong> criptografia simétricos e assimétricos é que, nossimétricos, a chave K usada no procedimento <strong>de</strong> codificação é igual a chave K' usada noprocedimento <strong>de</strong> <strong>de</strong>codificação, isto é, K = K'; e nos assimétricos K K'.Analisando os dois métodos, po<strong>de</strong>-se observar que a criptografia por chave pública t<strong>em</strong>a vantag<strong>em</strong> sobre a chave privada no sentido <strong>de</strong> viabilizar a comunicação segura entre pessoascomuns. Com a chave pública também acaba o probl<strong>em</strong>a da distribuição <strong>de</strong> chaves existentena criptografia por chave secreta, pois não há necessida<strong>de</strong> do compartilhamento <strong>de</strong> umamesma chave, n<strong>em</strong> <strong>de</strong> um pré-acordo entre as partes interessadas. Com isto o nível <strong>de</strong>


29segurança é maior. A principal vantag<strong>em</strong> da criptografia por chave secreta está na velocida<strong>de</strong>dos processos <strong>de</strong> cifrag<strong>em</strong>/<strong>de</strong>cifrag<strong>em</strong>, pois estes ten<strong>de</strong>m a ser mais rápidos que os <strong>de</strong> chavepública (MACÊDO e TRINTA, 1998).3.4 ALGORITMOS DE CRIPTOGRAFIASerão vistos a seguir alguns dos principais algoritmos <strong>de</strong> criptografia <strong>para</strong> chavesecreta e chave pública.3.4.1 DATA ENCRYPTION STANDARD (DES)A história do DES começou <strong>em</strong> 1973, quando o National Bureau of Standards (NBS)americano solicitou proposta <strong>para</strong> <strong>de</strong>senvolvimento <strong>de</strong> um algoritmo criptográfico. Entre aspropostas apresentadas foi escolhida a <strong>de</strong>senvolvida pela IBM que foi validada pelo governoamericano e recomendado como mais do que a<strong>de</strong>quado <strong>para</strong> aplicações civis (LUCCHESI,1986).O DES é um ciframento composto que cifra blocos <strong>de</strong> 64 bits (8 caracteres) <strong>em</strong> blocos<strong>de</strong> 64 bits, <strong>para</strong> isso ele se utiliza <strong>de</strong> uma chave composta por 56 bits mais 8 bits <strong>de</strong> parida<strong>de</strong>(no total são 64 bits também). Assim, <strong>para</strong> cada chave, o DES faz substituição monoalfabéticasobre um alfabeto <strong>de</strong> 2 64 ≅ 1,8 x 10 19 letras. A rigor, é uma substituição monoalfabética, masas técnicas publicadas <strong>de</strong> quebra <strong>de</strong> substituições monoalfabéticas se aplicam apenas aalfabetos pequenos (LUCCHENSI, 1986).O algoritmo <strong>de</strong> codificação é <strong>para</strong>metrizado por uma chave K <strong>de</strong> 56 bits e possui 19estágios diferentes (Figura 4), o primeiro estágio realiza uma transposição dos bits do <strong>texto</strong>(modificação da posição) in<strong>de</strong>pen<strong>de</strong>nte da chave. O último estágio realiza uma transposiçãoinversa a do primeiro estágio. O penúltimo estágio realiza a permutação dos 32 bits maissignificativos com os 32 bits menos significativos do bloco <strong>de</strong> dados. Os outros 16 estágiossão funcionalmente idênticos (executam a mesma transformação nos dados, transposições esubstituições), porém são <strong>para</strong>metrizados por chaves Ki, obtidas pela aplicação <strong>de</strong> funções,que variam <strong>de</strong> um estágio i <strong>para</strong> outro, nos bits da chave K original (Figura 5). O métodopermite que a <strong>de</strong>codificação seja feita com a mesma chave usada na codificação, através daexecução das mesmas etapas na or<strong>de</strong>m inversa.


30FIGURA 4 – Processo <strong>de</strong> Criptografia utilizando DESFIGURA 5 – Processo <strong>de</strong> Criptografia das chaves Ki do DESSegundo Soares et al (1995), o principal probl<strong>em</strong>a do método DES, e <strong>de</strong> todos osalgoritmos <strong>de</strong> criptografia simétricos, é a exigência que o transmissor e o receptor <strong>de</strong> umamensag<strong>em</strong> conheçam a chave secreta e única usada na codificação e na <strong>de</strong>codificação. Oacordo <strong>em</strong> torno da chave secreta entre o transmissor e receptor, quando eles estão distantesum do outro, não é um probl<strong>em</strong>a trivial, pois envolve a transmissão da chave e n<strong>em</strong> s<strong>em</strong>pre épossível garantir que essa transmissão não seja interceptada. Se for interceptada, oresponsável pelo ataque po<strong>de</strong>rá ler todas as mensagens que serão criptografadas utilizando areferida chave “secreta”. Um complicador <strong>para</strong> este probl<strong>em</strong>a é o fato <strong>de</strong> que <strong>em</strong> um sist<strong>em</strong>acom n usuários, comunicando-se dois a dois, são necessárias (n.(n-1))/2 chaves secretas. Atarefa <strong>de</strong> gerar, transmitir e armazenar chaves <strong>em</strong> um sist<strong>em</strong>a <strong>de</strong> segurança é <strong>de</strong>nominadagerenciamento <strong>de</strong> chaves.


31O algoritmo DES possui uma variação chamada Triple DES (ou apenas 3DES). O3DES, utiliza o DES <strong>em</strong> três ciframentos sucessivos, po<strong>de</strong>ndo <strong>em</strong>pregar uma versão com duasou com três chaves diferentes (112 ou 168 bits). É seguro, porém muito lento <strong>para</strong> ser umalgoritmo padrão.3.4.2 ADVANCED ENCRYPTION STANDARD (AES)Em outubro <strong>de</strong> 2000, o National Institute of Standards and Technology (NIST)anunciou um novo padrão <strong>de</strong> uma chave secreta <strong>de</strong> cifrag<strong>em</strong>, escolhido entre 15 padrõescandidatos. Este novo padrão pretendia substituir o velho algoritmo DES, cujo tamanho daschaves estava se tornando muito pequeno. O Rijndael - um nome comprimido, originário dosseus inventores Rijmen e Da<strong>em</strong>en - foi escolhido <strong>para</strong> se tornar o novo padrão, que se chamouAdvanced Encryption Standard (AES).Este sist<strong>em</strong>a <strong>de</strong> encriptação é dito ser um "bloco" <strong>de</strong> cifrag<strong>em</strong> à medida que asmensagens são encriptadas <strong>em</strong> blocos inteiros, com unida<strong>de</strong>s <strong>de</strong> 128 bits. Exist<strong>em</strong> múltiplasidéias que propõ<strong>em</strong> a utilização <strong>de</strong> chaves com 128, 192, 256 bits. Fazendo uma com<strong>para</strong>ção,o DES encripta blocos <strong>de</strong> 64 bits com uma chave <strong>de</strong> 56 bits, e o DES triplo, normalmente,encripta blocos <strong>de</strong> 64 bits com uma chave <strong>de</strong> 112 bits.Segundo Hinz (2000), o algoritmo Rijndael diferencia-se da maioria dos outrosalgoritmos usados atualmente, pois não usa uma estrutura do tipo Feistel na sua fase <strong>de</strong>rotação. Numa estrutura Feistel os bits <strong>de</strong> estado intermediário são transpostos <strong>em</strong> uma outraposição s<strong>em</strong> ser<strong>em</strong> alterados. No Rijndael, a fase é composta <strong>de</strong> transformações uniformesinversíveis distintas chamadas <strong>de</strong> layers.O Rijndael é um cifrador <strong>de</strong> substituição e permutação. Ele cifra um <strong>texto</strong> claro <strong>de</strong> 128bits <strong>em</strong> um <strong>texto</strong> cifrado <strong>de</strong> 128 bits, usando <strong>para</strong> isso n fases, on<strong>de</strong> cada resultadointermediário entre as transformações é chamado <strong>de</strong> “estado”. O número <strong>de</strong> fases n <strong>de</strong>finido<strong>para</strong> a cifra <strong>de</strong>pen<strong>de</strong> do tamanho <strong>de</strong> bloco e do tamanho <strong>de</strong> chave que estão sendo utilizados.O menor números <strong>de</strong> fases é 10 (correspon<strong>de</strong>ndo ao tamanho <strong>de</strong> bloco <strong>de</strong> 128 bits e tamanho<strong>de</strong> chave <strong>de</strong> 128 bits), sendo este limite válido <strong>para</strong> todos os tamanhos <strong>de</strong> blocos e <strong>de</strong> chaves.


32Cada fase consiste na aplicação seguida das transformações <strong>de</strong>: substituição (ByteSub),<strong>de</strong>slocamento <strong>de</strong> linhas (ShiftRow), mesclag<strong>em</strong> <strong>de</strong> colunas (MixColumn) e adição <strong>de</strong> chaves(AddRoundKey).3.4.3 RIVEST, SHAMIR E ADLEMAN (RSA)O RSA é um sist<strong>em</strong>a <strong>de</strong> criptografia <strong>de</strong> chave pública tanto <strong>para</strong> cifrar quanto <strong>para</strong>autenticação <strong>de</strong> dados, foi inventado <strong>em</strong> 1977 por Ronald Rivest, Adi Shamir e LeonardAdl<strong>em</strong>an, pesquisadores do MIT. A principal <strong>de</strong>svantag<strong>em</strong> <strong>de</strong> se utilizar algoritmos <strong>de</strong> chavepública é a velocida<strong>de</strong>, o método <strong>de</strong> chave pública é muito mais lento na cifrag<strong>em</strong> do que ométodo <strong>de</strong> chave secreta (PUTTINI, 2000).O algoritmo RSA faz uso <strong>de</strong> expressões com exponenciais e o <strong>texto</strong> é cifrado <strong>em</strong>blocos com cada bloco tendo um valor binário menor que um número n, ou seja, o tamanhodo bloco t<strong>em</strong> que ser menor ou igual a log 2 (n). Na prática t<strong>em</strong>-se que o tamanho do bloco é2 k , sendo que 2 k < n < = 2 k + 1 .Segundo Puttini (2000), <strong>para</strong> usar o RSA <strong>de</strong>ve-se tomar dois números primos p e q, e<strong>de</strong>finir o módulo n como sendo n = p * q. Os fatores p e q <strong>de</strong>v<strong>em</strong> ser mantidos <strong>em</strong> segredo.Em seguida <strong>de</strong>ve-se estabelecer um inteiro qualquer d que seja relativamente primo ao inteiro(p–1)*(q-1). Deve-se obter também um número e na faixa 1


334 ESTEGANOGRAFIA4.1 HISTÓRIAA palavra esteganografia v<strong>em</strong> do grego: steganos: oculto, secreto e graphy: escrita.No <strong>de</strong>correr do t<strong>em</strong>po, muitos métodos têm sido usados <strong>para</strong> <strong>ocultar</strong> informação. Umdos primeiros documentos <strong>de</strong>screve o uso da esteganografia <strong>de</strong>s<strong>de</strong> a Grécia antiga, on<strong>de</strong> os<strong>texto</strong>s eram escritos <strong>em</strong> taboas cobertas <strong>de</strong> cera, e só após <strong>de</strong>rreter a cera era possível ler amensag<strong>em</strong>.Outro método era raspar a cabeça dos mensageiros, tatuar a mensag<strong>em</strong> que se queriatransmitir, esperar o cabelo crescer e então enviar o mensageiro ao seu <strong>de</strong>stino, on<strong>de</strong>novamente seria raspada a sua cabeça <strong>para</strong> po<strong>de</strong>r ler a mensag<strong>em</strong> tatuada.Ou então, escrever a mensag<strong>em</strong> no papel utilizando vinagre como tinta, após secar nãose percebe a presença <strong>de</strong> qualquer <strong>texto</strong>, e <strong>para</strong> ler a informação teria apenas que molhar opapel com água, assim o <strong>texto</strong> escrito com o vinagre ficaria <strong>em</strong> <strong>de</strong>staque tornando possível asua leitura.Outra forma ainda é escon<strong>de</strong>r uma mensag<strong>em</strong> <strong>em</strong> outra, por ex<strong>em</strong>plo, escrever amensag<strong>em</strong> sigilosa utilizando a primeira letra <strong>de</strong> cada palavra <strong>de</strong> uma outra mensag<strong>em</strong>qualquer.Na Segunda Guerra Mundial, começou a ser utilizado o microponto. Uma mensag<strong>em</strong>secreta era fotograficamente reduzida a medida <strong>de</strong> um ponto e este po<strong>de</strong>ndo ser o ponto <strong>de</strong>uma letra “i” <strong>de</strong> uma outra mensag<strong>em</strong> qualquer.Outro ex<strong>em</strong>plo <strong>de</strong> esteganografia seria tirar uma fotografia com uma mensag<strong>em</strong>escondida na própria imag<strong>em</strong>, por ex<strong>em</strong>plo, fotografar pessoas que, s<strong>em</strong> levantar suspeitoform<strong>em</strong> uma mensag<strong>em</strong> com as mãos.4.2 DEFINIÇÃOA palavra esteganografia literalmente significa “escrita encoberta”. Isto inclui umavasta coleção <strong>de</strong> técnicas e métodos <strong>para</strong> comunicações secretas que ocultam a existência <strong>de</strong>uma mensag<strong>em</strong>.


34A esteganografia é a arte <strong>de</strong> comunicar-se secretamente, ocultando uma mensag<strong>em</strong>sigilosa <strong>de</strong>ntro <strong>de</strong> outra informação s<strong>em</strong> importância, <strong>de</strong> maneira que não exista forma <strong>de</strong><strong>de</strong>tectar que há uma mensag<strong>em</strong> escondida. Na computação essa outra informação po<strong>de</strong> ser umarquivo <strong>de</strong> som, imag<strong>em</strong> ou <strong>texto</strong>.Arquivos como os <strong>de</strong> imag<strong>em</strong> e som possu<strong>em</strong> áreas <strong>de</strong> dados que não são usadas ousão pouco significativas. A esteganografia tira proveito disso, trocando essas áreas porinformação.4.3 ESTEGANOGRAFIA X CRIPTOGRAFIAA diferença principal é que na criptografia há presença <strong>de</strong> uma mensag<strong>em</strong> mesmoestando na forma codificada, enquanto na esteganografia não há.Uma mensag<strong>em</strong> criptografada permite ser <strong>de</strong>tectada, interceptada e até mesmomodificada se for violado o sist<strong>em</strong>a <strong>de</strong> encriptação. Quando se usa apenas criptografia, ainformação po<strong>de</strong> ser ilegível, mas é óbvio que ali existe uma mensag<strong>em</strong>, que ali existe umsegredo.Se a informação estiver apenas oculta e não criptografada, torna-se mais trabalhoso oprocesso <strong>para</strong> i<strong>de</strong>ntificá-la, buscando todos os arquivos suspeitos <strong>de</strong> conter informação ocultae varrendo-os até encontrar algum tipo <strong>de</strong> sequência lógica <strong>de</strong> dados que possa resultar numamensag<strong>em</strong>.Atuando juntos, torna-se praticamente impossível <strong>de</strong>tectar a mensag<strong>em</strong> original. Amensag<strong>em</strong> é encriptada por algum algoritmo <strong>de</strong> criptografia que utiliza chave secreta ouchave pública, o que já dificulta bastante o processo <strong>de</strong> <strong>de</strong>tecção, e através <strong>de</strong> algum método<strong>de</strong> esteganografia, essa informação codificada é escondida <strong>de</strong>ntro <strong>de</strong> um arquivo queaparent<strong>em</strong>ente é inofensivo. Digamos que mesmo ciente <strong>de</strong> que um arquivo possua umamensag<strong>em</strong> oculta, teria que varrer bit a bit <strong>para</strong> procurar por essa mensag<strong>em</strong>, e mesmoencontrando a técnica <strong>de</strong> esteganografia que foi utilizada, ainda sobraria saber a chave <strong>de</strong>criptografia <strong>para</strong> então po<strong>de</strong>r <strong>de</strong>criptografar a informação codificada. Não é impossível, masimpraticável.


354.4 ESTEGANOGRAFIA COM IMAGENSA esteganografia evoluiu bastante a partir <strong>de</strong> 1990 com a chegada dos computadores.A tecnologia digital possibilitou novas formas <strong>de</strong> aplicar as técnicas <strong>de</strong> esteganografia. Uma<strong>de</strong>las, a mais utilizada, é escon<strong>de</strong>r informações <strong>em</strong> <strong>imagens</strong> digitais, utilizando os bits menossignificativos ou áreas não utilizadas da imag<strong>em</strong>.Informações po<strong>de</strong>m ser escondidas <strong>de</strong> várias maneiras diferentes utilizando <strong>imagens</strong>como objeto <strong>de</strong> cobertura. Cada uma <strong>de</strong>ssas técnicas po<strong>de</strong> ser aplicada <strong>para</strong> armazenarinformações <strong>em</strong> <strong>imagens</strong>:a) inserção no bit menos significativo (LSB): utiliza o bit menos significativo <strong>de</strong> cadapixel da imag<strong>em</strong> <strong>para</strong> <strong>ocultar</strong> a informação;b) técnicas <strong>de</strong> filtrag<strong>em</strong> e mascaramento: oculta a informação através da marcação <strong>de</strong>uma imag<strong>em</strong>, <strong>de</strong> modo similar à marca d’água aplicada <strong>em</strong> papel;c) algoritmos <strong>de</strong> transformações: utilizam o brilho, saturação e compressão das<strong>imagens</strong>.O método <strong>de</strong> inserção no bit menos significativo é provavelmente uma das melhorestécnicas <strong>de</strong> esteganografia <strong>em</strong> imag<strong>em</strong>. Este método é <strong>de</strong>talhado na seção 4.4.2.4.4.1 ARQUIVOS DE IMAGENSPara o computador, uma imag<strong>em</strong> é uma matriz <strong>de</strong> números que representamintensida<strong>de</strong>s <strong>de</strong> cores <strong>em</strong> vários pontos.Exist<strong>em</strong> diferentes formatos <strong>de</strong> arquivos <strong>para</strong> o armazenamento <strong>de</strong> <strong>imagens</strong>, queenvolve basicamente três el<strong>em</strong>entos principais: a forma como a imag<strong>em</strong> está representada, otipo <strong>de</strong> compactação <strong>em</strong>pregado e o cabeçalho contendo as informações <strong>de</strong>sta imag<strong>em</strong>. Ummesmo tipo <strong>de</strong> arquivo po<strong>de</strong> inclusive permitir o armazenamento <strong>de</strong> diferentes classes <strong>de</strong><strong>imagens</strong> e também permitir a utilização <strong>de</strong> vários métodos <strong>de</strong> compactação.Segundo Casacurta et al (1998), uma imag<strong>em</strong> po<strong>de</strong> ocupar muito espaço <strong>em</strong> m<strong>em</strong>óriaou disco, por isso é bastante comum na computação o <strong>em</strong>prego <strong>de</strong> técnicas <strong>de</strong> compactação <strong>de</strong>dados. As técnicas <strong>de</strong> compactação <strong>de</strong> dados, <strong>de</strong> uma forma geral, buscam se aproveitar <strong>de</strong>uma possível repetição <strong>de</strong> informações <strong>para</strong> reduzir o tamanho do arquivo através <strong>de</strong> suarecodificação <strong>de</strong> forma otimizada.


36Os métodos <strong>de</strong> compactação <strong>de</strong> <strong>imagens</strong> mais utilizados são:a) linear: s<strong>em</strong> compactação;b) Run-Length Encoding (RLE): compacta repetições seguidas <strong>de</strong> pixels iguais;c) L<strong>em</strong>pel-Ziv-Welch (LZW): algoritmo com alto grau <strong>de</strong> compactação;d) JPEG: proposta <strong>de</strong> padrão <strong>de</strong> compactação <strong>de</strong> <strong>imagens</strong> surgida <strong>em</strong> função da High-Definition TeleVision (HDTV).Uma imag<strong>em</strong> é composta por um conjunto <strong>de</strong> pontos, <strong>de</strong>nominados pixels (PictureEl<strong>em</strong>ents) ou dots. Estes pixels estão dispostos na tela do computador formando uma matriz<strong>de</strong> pontos que é <strong>de</strong>nominada <strong>de</strong> bitmap ou "Mapa <strong>de</strong> Bits". Este mapa <strong>de</strong> bits é um reticuladoon<strong>de</strong> cada el<strong>em</strong>ento da matriz possui uma informação referente à cor associada àquele pontoespecífico. Uma <strong>de</strong>terminada imag<strong>em</strong> possuirá também uma "resolução" associada a ela, queé o número <strong>de</strong> el<strong>em</strong>entos que esta imag<strong>em</strong> possui na horizontal e na vertical. Cada el<strong>em</strong>entoda imag<strong>em</strong> possuirá uma localização, que é <strong>de</strong>finida pela suas coor<strong>de</strong>nadas (CASACURTA etal, 1998).Uma imag<strong>em</strong> típica no formato bitmap t<strong>em</strong> 640 x 480 pixels e 256 cores (ou 8 bits porpixel), com um tamanho <strong>de</strong> mais ou menos 300 Kb. Porém hoje <strong>em</strong> dia a maioria das <strong>imagens</strong>possui qualida<strong>de</strong> <strong>de</strong> 24 bits, ou seja, 16 milhões <strong>de</strong> cores. Isso favorece a prática <strong>de</strong>esteganografia, pois possibilita que uma maior quantida<strong>de</strong> <strong>de</strong> informação seja escondida aolongo <strong>de</strong>ssa imag<strong>em</strong>.Como citado acima, <strong>imagens</strong> <strong>de</strong> 24 bits são i<strong>de</strong>ais <strong>para</strong> escon<strong>de</strong>r informações, pois são<strong>imagens</strong> gran<strong>de</strong>s no tamanho armazenado. Estas <strong>imagens</strong> utilizam 3 bytes por cada pixel <strong>para</strong>representar um valor <strong>de</strong> cor. Estes bytes po<strong>de</strong>m ser representados <strong>em</strong> <strong>de</strong>cimal, neste caso osvalores variam <strong>de</strong> 0 a 255. Cada um <strong>de</strong>stes bytes representa uma cor: roxo, ver<strong>de</strong> e azul. Porex<strong>em</strong>plo, um pixel <strong>em</strong> branco teria 255 <strong>de</strong> roxo, 255 <strong>de</strong> ver<strong>de</strong> e 255 <strong>de</strong> azul.


37Portanto, uma imag<strong>em</strong> é uma matriz <strong>de</strong> pontos ou pixels, com uma <strong>de</strong>terminadaresolução horizontal (eixo X) e vertical (eixo Y), on<strong>de</strong> <strong>para</strong> cada ponto <strong>de</strong>sta matriz t<strong>em</strong>-seuma cor associada. A cor po<strong>de</strong> ser obtida <strong>de</strong> forma direta ou através <strong>de</strong> uma tabela <strong>de</strong> acessoindireto, <strong>de</strong>nominada <strong>de</strong> “tabela <strong>de</strong> palette”, que serve <strong>para</strong> possibilitar o acesso a um gran<strong>de</strong>número <strong>de</strong> cores <strong>em</strong> um dispositivo com características gráficas limitadas. O princípio <strong>de</strong>funcionamento da tabela <strong>de</strong> palette é o <strong>de</strong> que na maioria das situações o usuário não precisautilizar todo o conjunto <strong>de</strong> cores disponíveis <strong>em</strong> termos <strong>de</strong> hardware <strong>de</strong> uma formasimultânea, ou seja, <strong>de</strong>fine um subconjunto <strong>de</strong> cores com apenas as cores que estão <strong>em</strong> uso<strong>para</strong> aquela imag<strong>em</strong> (CASACURTA et al, 1998).FIGURA 6 – Ex<strong>em</strong>plo <strong>de</strong> uma imag<strong>em</strong> no formato bitmapNo ex<strong>em</strong>plo ilustrado na figura 6, cada quadrado representa um pixel ou um “ponto <strong>de</strong>cor”, formando então uma imag<strong>em</strong> <strong>de</strong> 18 x 18 pixels. A imag<strong>em</strong> é lida iniciando no primeiropixel da esquerda <strong>para</strong> a direita e <strong>de</strong> cima <strong>para</strong> baixo.Segundo Casacurta et al (1998), o ser humano possui <strong>em</strong> seu sist<strong>em</strong>a visual três tipos<strong>de</strong> sensores capazes <strong>de</strong> i<strong>de</strong>ntificar três faixas diferentes <strong>de</strong> "espectros <strong>de</strong> energia". Estas faixascorrespon<strong>de</strong>m às tonalida<strong>de</strong>s <strong>de</strong> vermelho, ver<strong>de</strong> e azul. Logo o ser humano vê na realida<strong>de</strong> acombinação resultante da mistura <strong>de</strong>stas três cores básicas.


38O sist<strong>em</strong>a <strong>de</strong> cores mais utilizado nos computadores é usualmente o RGB (Red-Green-Blue), on<strong>de</strong> o que se faz é controlar a intensida<strong>de</strong> da geração <strong>de</strong>stas três cores básicas. Ao<strong>de</strong>finirmos uma <strong>de</strong>terminada cor <strong>em</strong> um computador, o que está se especificando na realida<strong>de</strong>é a intensida<strong>de</strong> (valor associado) aos <strong>em</strong>issores R, G e B. Através <strong>de</strong> testes realizados com oser humano chegou-se a conclusão que a utilização <strong>de</strong> 256 variações diferentes <strong>de</strong> intensida<strong>de</strong><strong>em</strong> cada uma das cores básicas é capaz <strong>de</strong> gerar um número <strong>de</strong> cores superior a capacida<strong>de</strong>visual do ser humano, ou seja, fica praticamente impossível <strong>de</strong> distinguir entre duas cores"vizinhas". No sist<strong>em</strong>a RGB, o valor (0,0,0) equivale a cor preta com intensida<strong>de</strong> zero nas trêscomponentes. O valor (255,255,255) equivale a cor branca on<strong>de</strong> as três componentes estãopresentes com a sua intensida<strong>de</strong> máxima. As diferentes combinações entre RGB serão capazes<strong>de</strong> gerar qualquer tipo <strong>de</strong> cor, sendo que se as três componentes tiver<strong>em</strong> s<strong>em</strong>pre valoresexatamente iguais ter<strong>em</strong>os <strong>de</strong>finida uma escala <strong>de</strong> tons <strong>de</strong> cinza do preto ao branco, é achamada gray scale (CASACURTA et al, 1998).Imagens do formato Graphics Interchange Format (GIF) utilizam o método LZW <strong>de</strong>compactação. Este método compacta uma série <strong>de</strong> símbolos repetidos <strong>em</strong> um único símbolomultiplicado pelo número <strong>de</strong> vezes que ele aparece. A informação RGB <strong>de</strong> cada pixel ésubstituída por um índice do mapa <strong>de</strong> cores. Uma limitação do formato GIF é permitir apenas<strong>imagens</strong> <strong>de</strong> 256 cores.4.4.2 INSERÇÃO NO BIT MENOS SIGNIFICATIVO (LSB)O método Last Significant Bit (LSB) é o mais comum utilizado <strong>para</strong> armazenarinformação <strong>em</strong> <strong>imagens</strong> digitais. Consiste <strong>em</strong> utilizar o bit menos significativo <strong>de</strong> cada pixel(ou <strong>de</strong> cada cor) da imag<strong>em</strong>, <strong>para</strong> <strong>ocultar</strong> a mensag<strong>em</strong>.Embora as técnicas <strong>de</strong> LSB consigam escon<strong>de</strong>r os dados aos olhos humanos, elaspo<strong>de</strong>m ser facilmente <strong>de</strong>struídas computacionalmente utilizando algoritmos <strong>de</strong> compressãocom perdas <strong>de</strong> dados. Estes algoritmos selecionam apenas as partes mais significativas doobjeto, ou seja, os bits menos significativos têm uma chance b<strong>em</strong> menor <strong>de</strong> ser<strong>em</strong>selecionados. Por ex<strong>em</strong>plo, se a mensag<strong>em</strong> for escondida <strong>em</strong> uma imag<strong>em</strong> no formato bitmap,e esta for convertida <strong>para</strong> um formato JPEG, a informação é perdida (ROCHA, 2003).Para escon<strong>de</strong>r uma informação <strong>em</strong> uma imag<strong>em</strong> <strong>de</strong> 24 bits, on<strong>de</strong> cada pixel possui 3bytes, utilizando o método <strong>de</strong> inserção do último bit significativo, po<strong>de</strong>-se armazenar 3 bits


39<strong>em</strong> cada pixel, utilizando 1 bit <strong>de</strong> cada byte <strong>de</strong>sse pixel, ou seja, cada byte da informação a serescondida irá ocupar 8 bytes da imag<strong>em</strong>. Por ex<strong>em</strong>plo, <strong>em</strong> uma imag<strong>em</strong> <strong>de</strong> 24 bits comresolução <strong>de</strong> 1024 x 768 (786.432 pixels), que possui um tamanho real <strong>de</strong> 2.359.296 Kb (cadapixel ocupa 3 bytes), po<strong>de</strong>-se armazenar uma informação <strong>de</strong> 294.912 Kb (8 bytes da imag<strong>em</strong><strong>para</strong> armazenar 1 byte do <strong>texto</strong>).Se por ex<strong>em</strong>plo <strong>em</strong> uma imag<strong>em</strong> t<strong>em</strong>-se os valores dos pixels como mostra o quadro 2.QUADRO 2 – Ex<strong>em</strong>plo <strong>de</strong> pixels <strong>de</strong> uma imag<strong>em</strong>Suponha-se que se <strong>de</strong>seja armazenar a letra “A” nesta imag<strong>em</strong>. A letra “A” é o código65 da tabela ASCII e, por tanto, seu valor binário é: 0 1 0 0 0 0 0 1. Colocando esse valorbinário, bit a bit, ao longo da imag<strong>em</strong>, utilizando o bit menos significativo <strong>de</strong> cada byte dopixel, a imag<strong>em</strong> resultante seria como mostra o quadro 3.


40QUADRO 3 – Ex<strong>em</strong>plo <strong>de</strong> uso do método LSBOs valores (bits) sublinhados são os que foram alterados, causando uma imperceptívelalteração na cor do pixel, <strong>para</strong> o olho humano é impossível distinguir esta diferença. Essesvalores combinados formam o byte que representa a letra “A”.4.4.3 FILTRAGEM E MASCARAMENTOSão técnicas restritas a <strong>imagens</strong> <strong>em</strong> tons <strong>de</strong> cinza (gray scale). Consiste <strong>em</strong> escon<strong>de</strong>r ainformação através da marcação <strong>de</strong> uma imag<strong>em</strong>, <strong>de</strong> modo similar ao funcionamento dasmarcas d’água aplicadas <strong>em</strong> papel. Uma das vantagens <strong>de</strong>ssa técnica é que po<strong>de</strong> ser aplicada<strong>em</strong> <strong>imagens</strong> que passam por métodos <strong>de</strong> compressão, <strong>de</strong>vido ao fato da marca d’água serintegrada na imag<strong>em</strong>. Outra vantag<strong>em</strong> é que as técnicas <strong>de</strong> máscara e filtrag<strong>em</strong> tambémpassam <strong>de</strong>spercebidas pelo sist<strong>em</strong>a visual humano que não consegue distinguir algumasmudanças na imag<strong>em</strong>.4.4.4 ALGORITMOS DE TRANSFORMAÇÕESOs algoritmos <strong>de</strong> transformação geralmente trabalham com formas mais sofisticadas<strong>de</strong> manuseio <strong>de</strong> <strong>imagens</strong> como: brilho, saturação e compressão das <strong>imagens</strong>.As técnicas <strong>de</strong> transformação tomam como aliado o principal inimigo da inserçãoLSB: a compressão. Por isso configuram-se como as mais sofisticadas técnicas <strong>de</strong>mascaramento <strong>de</strong> informações <strong>em</strong> <strong>imagens</strong> conhecidas.


414.5 COMPRESSÃO DE HUFFMANO código <strong>de</strong> Huffman é um método estatístico, utilizado <strong>para</strong> compactação <strong>de</strong> dados.Os métodos estatísticos são aqueles que utilizam esqu<strong>em</strong>as <strong>de</strong> codificação <strong>de</strong> tamanhovariável aos seus símbolos ou grupos <strong>de</strong> símbolos. Utilizando os menores valores aossímbolos que aparec<strong>em</strong> mais, ou t<strong>em</strong> mais probabilida<strong>de</strong> <strong>de</strong> aparecer<strong>em</strong>.Segundo Kunz (2003), a codificação <strong>de</strong> Huffman é uma forma <strong>de</strong> compressão <strong>de</strong> dados<strong>em</strong> que se representa cada um dos caracteres <strong>de</strong> um <strong>texto</strong> com códigos binários <strong>de</strong>comprimento variável. O tamanho do código varia conforme a freqüência com que ocorre no<strong>texto</strong>, atribuindo-se códigos menores aos caracteres mais freqüentes e maiores aos menosfreqüentes.O algoritmo consiste na construção <strong>de</strong> uma árvore, chamada árvore <strong>de</strong> prefixo, on<strong>de</strong>cada folha conterá um caracter e cada nodo conterá dois filhos, po<strong>de</strong>ndo ser o da esquerdacom o valor “0” e o da direita com o valor “1”. Esta árvore é uma lista enca<strong>de</strong>ada com oscaracteres que aparec<strong>em</strong> no <strong>texto</strong> e suas respectivas freqüências, no início cada caracterrepresenta uma árvore isolada. A criação é feita a partir dos dois caracteres, ou nodos, commenor frequência, cria-se então um nodo pai <strong>para</strong> eles, cujo valor será a soma das freqüênciasdos filhos, inclui-se esse nodo pai na lista e retiram-se os nodos filhos. Esse processo érepetido até existir apenas um nodo na lista, que é a raiz da árvore.O quadro 4 ilustra como ficaria a árvore gerada <strong>para</strong> a frase “<strong>texto</strong> ex<strong>em</strong>plo”, quepossui 13 caracteres no total (8 distintos).


42QUADRO 4 – Ex<strong>em</strong>plo <strong>de</strong> uma árvore <strong>de</strong> HuffmanToda a importância do algoritmo está na construção da árvore, <strong>de</strong> on<strong>de</strong> sairá ainformação <strong>de</strong> como será codificado e <strong>de</strong>codificado o <strong>texto</strong>. Por isso, após comprimir o <strong>texto</strong>,é imprescindível gravar o conteúdo da árvore juntamente com o <strong>texto</strong> comprimido <strong>para</strong> tornarpossível a <strong>de</strong>scompressão (ERIGSON, 2003). Segundo Kunz (2003), no início da seqüência<strong>de</strong> bits do arquivo <strong>de</strong> imag<strong>em</strong>, é gravada a lista <strong>de</strong> caracteres da árvore <strong>em</strong> percorrimento préor<strong>de</strong>m.Para o ex<strong>em</strong>plo visto no quadro 4, teríamos a seguinte representação <strong>para</strong> a árvore:“@@e@ l@@o@pm@xt”, on<strong>de</strong> o caracter “@” representa cada nodo pai (nodo com doisfilhos) e a árvore é percorrida iniciando pela raiz até cada folha, da esquerda <strong>para</strong> a direita.


43Então, na parte inicial do arquivo <strong>de</strong> imag<strong>em</strong> é gravada a string com a representaçãoda árvore, <strong>em</strong> binário, seguida <strong>de</strong> um caractere especial que indica o fim da árvore e o inícioda seqüência codificada.Antes da codificação do <strong>texto</strong>, é acrescentado um outro caractere especial <strong>para</strong> indicaro final do <strong>texto</strong>, ou seja, indicar o fim da leitura dos bits da imag<strong>em</strong> na <strong>de</strong>codificação. Ele éincluído na árvore assim como os outros caracteres.Depois <strong>de</strong> criada a árvore, os caracteres do <strong>texto</strong> são substituídos pelo respectivocódigo binário que é o caminho da raiz da árvore até as folhas. Isso garante que, percorrendobit a bit, será encontrado apenas um caracter com aquela representação binária.Para <strong>de</strong>scomprimir o <strong>texto</strong>, <strong>de</strong>ve-se ler a seqüência binária e andar na árvore aesquerda se for “0” e a direita se for “1” até encontrar uma folha, que é o caracter.4.6 ÁREAS DE APLICAÇÃOUma importante aplicação mo<strong>de</strong>rna da esteganografia digital é como “marca d’água”,mensag<strong>em</strong> oculta <strong>de</strong> direitos autorais, usada juntamente com uma “impressão digital” doproduto, número <strong>de</strong> série ou conjunto <strong>de</strong> caracteres que autentica uma cópia legítima. A faltada “impressão digital” aponta violação <strong>de</strong> direito autoral e a ausência da “marca d’água”comprova o fato (DANTAS, 2002).Outra aplicação é <strong>para</strong> a comunicação secreta. Hoje <strong>em</strong> dia exist<strong>em</strong> alguns programas<strong>para</strong> que qualquer pessoa possa esteganografar mensagens, como por ex<strong>em</strong>plo: JPHSWin, S-Tools e WinHIP. O usuário disponibiliza, por ex<strong>em</strong>plo, uma imag<strong>em</strong> com uma mensag<strong>em</strong>codificada <strong>em</strong> um site e <strong>em</strong> seguida avisa os <strong>de</strong>stinatários <strong>para</strong> que visit<strong>em</strong> esse site. Atravésdo mesmo aplicativo, os <strong>de</strong>stinatários <strong>de</strong>codificam a mensag<strong>em</strong> escondida na imag<strong>em</strong>.A esteganografia é bastante útil também <strong>para</strong> guardar informações como autor, título,data, entre outras, <strong>em</strong> arquivos <strong>de</strong> <strong>imagens</strong> ou <strong>em</strong> outra mídia. Numa base <strong>de</strong> dados <strong>de</strong><strong>imagens</strong>, por ex<strong>em</strong>plo, palavras chave po<strong>de</strong>m ser inseridas na imag<strong>em</strong>, facilitando umaeventual pesquisa através <strong>de</strong> mecanismos <strong>de</strong> busca.


44A esteganografia era apenas um interesse das forças armadas, mas está ganhandopopularida<strong>de</strong> entre as massas. Logo, todo o tipo <strong>de</strong> usuário <strong>de</strong> computador po<strong>de</strong>rá por suaprópria marca d’água sobre suas criações artísticas.


455 DESENVOLVIMENTO DO TRABALHONeste capítulo serão apresentadas a especificação e impl<strong>em</strong>entação do mo<strong>de</strong>loproposto neste trabalho.5.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADOA ferramenta <strong>de</strong>senvolvida neste trabalho utiliza criptografia <strong>em</strong> conjunto com aesteganografia <strong>para</strong> <strong>ocultar</strong> mensagens <strong>de</strong> <strong>texto</strong> <strong>em</strong> <strong>imagens</strong> digitais. A criptografia é feitaatravés do algoritmo Rijndael <strong>de</strong> chave secreta e a esteganografia através do método <strong>de</strong>inserção do último bit significante.Serão dois tipos <strong>de</strong> usuários:a) <strong>em</strong>issor: este terá como dados <strong>de</strong> entrada a mensag<strong>em</strong> a ser enviada, uma imag<strong>em</strong>do tipo bitmap e uma chave <strong>de</strong> criptografia, e como saída terá a imag<strong>em</strong> com amensag<strong>em</strong> oculta e criptografada;b) receptor: a partir da imag<strong>em</strong> esteganografada e <strong>de</strong> posse da chave criptográfica,terá como saída a mensag<strong>em</strong> que estava criptografada e oculta na imag<strong>em</strong>informada.Deste modo é possível, através do protótipo, fazer uma comunicação segura, s<strong>em</strong>levantar suspeitas e s<strong>em</strong> que <strong>em</strong>issor e receptor estejam on-line no mesmo momento. Po<strong>de</strong>-se,por ex<strong>em</strong>plo, disponibilizar uma imag<strong>em</strong> esteganografada <strong>em</strong> algum site, o receptor (oureceptores), conhecendo a localização da imag<strong>em</strong>, po<strong>de</strong> ler a mensag<strong>em</strong> a qualquer hora, e<strong>para</strong> outros usuários que acessass<strong>em</strong> aquele site seria apenas uma imag<strong>em</strong> como outraqualquer.Para fazer a especificação <strong>de</strong>ste protótipo foi utilizada uma metodologia orientada aobjetos, a Unified Mo<strong>de</strong>ling Language (UML), usando como ferramenta o Rational Rose.5.2 ESPECIFICAÇÃO5.2.1 CASOS DE USOO protótipo possui 2 casos <strong>de</strong> usos:a) insere mensag<strong>em</strong>: responsável por entrar com a mensag<strong>em</strong> a ser transmitida, a


46chave <strong>de</strong> criptografia e <strong>ocultar</strong> a mensag<strong>em</strong> na imag<strong>em</strong>;b) consulta mensag<strong>em</strong>: responsável por ler a mensag<strong>em</strong> transmitida a partir <strong>de</strong> umachave <strong>de</strong> criptografia dada pelo usuário;FIGURA 7 – Casos <strong>de</strong> uso5.2.2 DIAGRAMA DE CLASSESAs classes utilizadas no protótipo são:a) TImgEstegano: principal classe do protótipo, contém a imag<strong>em</strong> no formato bitmape é responsável pela esteganografia, ou seja, <strong>ocultar</strong> e extrair a informação daimag<strong>em</strong>, seja ela criptografada ou não;b) TBinUtil: contém rotinas <strong>de</strong> tratamento e conversão <strong>de</strong> binário. Não precisaria seruma classe, porém, foi criada por causa dos atributos <strong>de</strong> status que serv<strong>em</strong> <strong>para</strong> darfeedback ao usuário, pois os processos envolvidos po<strong>de</strong>m ser <strong>de</strong>morados;c) Tc3DBCrypt: classe que faz parte do componente c3DBCrypt do pacote <strong>de</strong>componentes ce3po, <strong>de</strong>senvolvido por terceiros (LIMA, 2003). Classe herdada daTCustomEdit do Delphi, responsável pela criptografia do <strong>texto</strong> utilizando oalgoritmo simétrico AES. A figura 8 mostra a paleta <strong>de</strong> componentes ce3poDBon<strong>de</strong> está o componente c3DBCrypt;


47FIGURA 8 – Paleta <strong>de</strong> componentes ce3po.O Diagrama <strong>de</strong> Classes está <strong>de</strong>monstrado na figura 9.FIGURA 9 – Diagrama <strong>de</strong> classes5.2.3 DIAGRAMAS DE SEQUÊNCIAOs diagramas <strong>de</strong> seqüências representam, como o próprio nome diz, a seqüência <strong>em</strong>que as ações ocorr<strong>em</strong> <strong>de</strong>ntro do protótipo. Eles <strong>de</strong>monstram como é feita a troca <strong>de</strong>mensagens entre as classes. Para cada caso <strong>de</strong> uso, há um diagrama <strong>de</strong> seqüência, conforme<strong>de</strong>scrição a seguir.5.2.3.1 INÍCIOEste diagrama <strong>de</strong> seqüência é executado s<strong>em</strong>pre que o protótipo é inicializado e umaimag<strong>em</strong> é carregada. Na inicialização é instanciado um objeto da classe TImgEstegano e um


48objeto da classe Tc3DBCrypt. Ao abrir uma imag<strong>em</strong>, é executado o método“CarregaImag<strong>em</strong>” do objeto TImgEstegano, o qual instancia um objeto da classe TBinUtil.FIGURA 10 – Diagrama <strong>de</strong> sequência: “Início”5.2.3.2 INSERE MENSAGEMEste diagrama <strong>de</strong> sequência ocorre no evento <strong>para</strong> <strong>ocultar</strong> o <strong>texto</strong> na imag<strong>em</strong>, on<strong>de</strong> sãoexecutados os métodos “Encripta” do objeto Tc3DBCrypt, também criado na inicialização doprotótipo, e “OcultarTexto” do objeto TImgEstegano. O método “OcultarTexto” chamainternamente o método “TxtToImg” que processa o <strong>texto</strong> na imag<strong>em</strong> através das rotinas <strong>de</strong>conversão <strong>de</strong> binário do objeto TBinUtil: “IntToBin” <strong>para</strong> converter o valor inteiro querepresenta a cor do pixel, <strong>em</strong> binário e “BinToInt” <strong>para</strong> converter a informação jáesteganografada novamente <strong>em</strong> inteiro.


49FIGURA 11 – Diagrama <strong>de</strong> sequência: “Insere Mensag<strong>em</strong>”5.2.3.3 CONSULTA MENSAGEMEste diagrama <strong>de</strong> sequência ocorre no evento <strong>para</strong> extrair o <strong>texto</strong> da imag<strong>em</strong> on<strong>de</strong> sãoexecutados os métodos “ExtrairTexto” do objeto TImgEstegano e “Desencripta” do objetoTc3DBCrypt. O método “ExtrairTexto” chama internamente o método “TxtFromImg” queprocessa a imag<strong>em</strong> e retira o <strong>texto</strong> através das rotinas <strong>de</strong> conversão <strong>de</strong> binário (“IntToBin” e“BinToTxt”).


50FIGURA 12 – Diagrama <strong>de</strong> sequência: “Consulta Mensag<strong>em</strong>”5.3 IMPLEMENTAÇÃOA seguir é apresentada a impl<strong>em</strong>entação do protótipo <strong>de</strong>senvolvido no ambiente <strong>de</strong>programação Borland Delphi 7.0.5.3.1 TÉCNICAS E FERRAMENTAS UTILIZADASA impl<strong>em</strong>entação do protótipo foi dividida <strong>em</strong> duas partes:a) criptografia: responsável por encriptar e <strong>de</strong>criptar a mensag<strong>em</strong> transmitida atravésda imag<strong>em</strong>. Esta parte do protótipo faz uso <strong>de</strong> um componente <strong>de</strong> terceiros, queutiliza o algoritmo simétrico Rijndael <strong>para</strong> criptografar os dados. O protótipointerage com este componente enviando como parâmetro a mensag<strong>em</strong> digitadapelo usuário e a chave secreta <strong>de</strong> criptografia, e recebe o <strong>texto</strong> <strong>criptografado</strong>;b) esteganografia: responsável por <strong>ocultar</strong> e extrair a mensag<strong>em</strong> da imag<strong>em</strong>, po<strong>de</strong>ndoessa estar criptografada ou não. Esta parte do protótipo t<strong>em</strong> como dado <strong>de</strong> entradauma imag<strong>em</strong> no formato bitmap <strong>de</strong> 24 bits. Po<strong>de</strong> ser consi<strong>de</strong>rado ainda como dado<strong>de</strong> entrada a informação a ser escondida e ter como saída a imag<strong>em</strong>esteganografada, ou a partir apenas da imag<strong>em</strong>, ter como saída a informação que


51está oculta.Os processos que envolv<strong>em</strong> a esteganografia, ou seja, <strong>ocultar</strong> e extrair a mensag<strong>em</strong> daimag<strong>em</strong>, faz<strong>em</strong> uso <strong>de</strong> rotinas <strong>de</strong> tratamento e conversão <strong>de</strong> binário. A imag<strong>em</strong> é lida pixel apixel, cada pixel com 24 bits ou 3 bytes, <strong>de</strong> cada byte é lido o bit menos significante, oconjunto <strong>de</strong>sses bits da orig<strong>em</strong> a mensag<strong>em</strong> (cada 8 bits equivale a um caracter), po<strong>de</strong>ndoesses ser<strong>em</strong> modificados quando se <strong>de</strong>seja <strong>ocultar</strong> uma mensag<strong>em</strong>.Para qualquer mensag<strong>em</strong> esteganografada, o protótipo utiliza i<strong>de</strong>ntificadores criados<strong>para</strong> marcar o início (“#INI#”) e o final (“#FIM#”) da mensag<strong>em</strong>, como mostra o quadro 5.QUADRO 5 – I<strong>de</strong>ntificadores <strong>de</strong> início e final <strong>de</strong> mensag<strong>em</strong>Toda essa informação (i<strong>de</strong>ntificador <strong>de</strong> início + mensag<strong>em</strong> + i<strong>de</strong>ntificador <strong>de</strong> fim) éinserida ao longo da imag<strong>em</strong> iniciando no primeiro byte do primeiro pixel da imag<strong>em</strong> (daesquerda <strong>para</strong> a direita, <strong>de</strong> cima <strong>para</strong> baixo). É através <strong>de</strong>stes i<strong>de</strong>ntificadores que o protótipoi<strong>de</strong>ntifica, ao abrir a imag<strong>em</strong>, a existência <strong>de</strong> esteganografia.Além <strong>de</strong>sses dois i<strong>de</strong>ntificadores é utilizado também um outro <strong>para</strong> indicar que amensag<strong>em</strong> está criptografada (“#CRP#”), ou seja, quando a mensag<strong>em</strong> estiver criptografada ésubstituído o i<strong>de</strong>ntificador <strong>de</strong> início pelo <strong>de</strong> criptografia, permanecendo o <strong>de</strong> fim, comomostra o quadro 6.QUADRO 6 – I<strong>de</strong>ntificadores <strong>de</strong> criptografia e final <strong>de</strong> mensag<strong>em</strong>Uma outra forma <strong>de</strong> se fazer isso s<strong>em</strong> utilizar i<strong>de</strong>ntificadores é através <strong>de</strong> um gerador<strong>de</strong> número aleatório, responsável pela dispersão da mensag<strong>em</strong> na imag<strong>em</strong>. Esses números sãogerados <strong>de</strong> forma pré-<strong>de</strong>finida <strong>para</strong> que possam ser recuperados no processo <strong>de</strong> extração, ouseja, não haveria uma sequência <strong>de</strong> pixels alterados, a mensag<strong>em</strong> estaria <strong>em</strong> alguns pixelsespalhados pela imag<strong>em</strong>.


52Como po<strong>de</strong> ser visto na figura 13, a interface é simples e <strong>de</strong> boa usabilida<strong>de</strong>,aten<strong>de</strong>ndo conceitos <strong>de</strong> ergonomia. Possui um campo <strong>para</strong> a edição ou apenas <strong>para</strong> avisualização da mensag<strong>em</strong> transmitida, um campo <strong>para</strong> a edição da chave <strong>de</strong> criptografia, umpainel com informações sobre a imag<strong>em</strong>, um painel <strong>para</strong> a visualização da mesma, uma barra<strong>de</strong> progressão, entre outros componentes.FIGURA 13 – Tela do protótipo5.3.2 OPERACIONALIDADE DA IMPLEMENTAÇÃOPara ser útil, o protótipo necessita <strong>de</strong> pelo menos uma imag<strong>em</strong>, pois <strong>de</strong>ssa imag<strong>em</strong>po<strong>de</strong> ser extraída uma mensag<strong>em</strong>. Uma imag<strong>em</strong> que não possui esteganografia, necessita <strong>de</strong>uma mensag<strong>em</strong> <strong>para</strong> ser escondida. Os botões <strong>para</strong> extrair ou <strong>ocultar</strong> a mensag<strong>em</strong> ficamhabilitados levando <strong>em</strong> consi<strong>de</strong>ração esses itens, ou seja, se não houver uma imag<strong>em</strong> aberta,ambos os botões ficam <strong>de</strong>sabilitados; se houver uma imag<strong>em</strong> que possui esteganografia, obotão <strong>para</strong> extrair ficará habilitado e o botão <strong>para</strong> <strong>ocultar</strong> ficará habilitado apenas se houveruma mensag<strong>em</strong> informada; se a imag<strong>em</strong> não possuir esteganografia, o botão <strong>para</strong> extrair


53ficará <strong>de</strong>sabilitado e o botão <strong>para</strong> <strong>ocultar</strong> ficará habilitado apenas se houver uma mensag<strong>em</strong>informada.Todos os processos realizados tanto <strong>para</strong> <strong>ocultar</strong> como <strong>para</strong> extrair uma mensag<strong>em</strong> <strong>de</strong>uma imag<strong>em</strong>, passam por uma barra <strong>de</strong> progressão, dando feedback ao usuário. Esse feedbacké bastante util <strong>em</strong> casos <strong>de</strong> se ter mensagens longas <strong>em</strong> <strong>imagens</strong> gran<strong>de</strong>s, on<strong>de</strong> os processos<strong>de</strong> esteganografia po<strong>de</strong>m <strong>de</strong>morar um pouco.Para um melhor entendimento sobre a execução do protótipo será <strong>de</strong>monstrada aexecução dos casos <strong>de</strong> uso “Insere mensag<strong>em</strong>” e “Consulta mensag<strong>em</strong>”.5.3.3 CASO DE USO “INSERE MENSAGEM”O caso <strong>de</strong> uso “Insere mensag<strong>em</strong>” ocorre quando uma pessoa (usuário transmissor),oculta na imag<strong>em</strong> a mensag<strong>em</strong> que será enviada à outra pessoa (usuário receptor). O códigodo algoritmo <strong>para</strong> <strong>ocultar</strong> uma informação na imag<strong>em</strong> po<strong>de</strong> ser visto no anexo A.Para isto, <strong>de</strong>ve-se abrir uma imag<strong>em</strong> (menu “Imag<strong>em</strong>” opção “Abrir”) no formatobitmap <strong>de</strong> 24 bits e ao fazer isso, já é calculado e informado ao usuário o limite máximo <strong>de</strong>caracteres que é possível esteganografar nesta imag<strong>em</strong>, a partir da quantida<strong>de</strong> <strong>de</strong> bits menossignificativos que a imag<strong>em</strong> possui. Isso é necessário <strong>para</strong> evitar que seja escondida umainformação além da capacida<strong>de</strong> da imag<strong>em</strong>. Esse valor varia <strong>de</strong> acordo com o tamanho daimag<strong>em</strong>. Po<strong>de</strong>-se digitar ou abrir um arquivo <strong>texto</strong> (menu “Texto” opção “Abrir”) com amensag<strong>em</strong> a ser transmitida. Depois <strong>de</strong> informada a mensag<strong>em</strong> e a imag<strong>em</strong> é possívelescolher se <strong>de</strong>seja que essa mensag<strong>em</strong> seja criptografada ou não. Escolhendo que sim, ousuário <strong>de</strong>ve informar também uma chave secreta <strong>de</strong> criptografia. Esta chave <strong>de</strong>ve ser <strong>de</strong>conhecimento também do receptor.Todo esse processo é ilustrado na figura 14, on<strong>de</strong> se <strong>de</strong>seja <strong>ocultar</strong> a mensag<strong>em</strong>“Mensag<strong>em</strong> ultra secreta...” <strong>em</strong> uma imag<strong>em</strong>, utilizando criptografia e encriptando os dadoscom a chave “teste”.


54FIGURA 14 – Inserindo uma mensag<strong>em</strong> na imag<strong>em</strong>Após isso, basta clicar no botão <strong>para</strong> <strong>ocultar</strong> a mensag<strong>em</strong> na imag<strong>em</strong> (botão com oícone da “seta” apontando <strong>para</strong> a imag<strong>em</strong>), quando o processo terminar será apresentada umamensag<strong>em</strong> avisando o usuário que o processo foi concluído e os indicadores <strong>de</strong> esteganografiae criptografia já estarão visíveis no centro superior da tela, como também o botão <strong>para</strong> extraira mensag<strong>em</strong> da imag<strong>em</strong> (botão com o ícone da “seta” apontando <strong>para</strong> o campo damensag<strong>em</strong>), como mostra a figura 15.


55FIGURA 15 – Após inserir uma mensag<strong>em</strong> na imag<strong>em</strong>Para concluir é necessário apenas salvar esta imag<strong>em</strong> (menu “Imag<strong>em</strong>” opção“Salvar”) que acabou <strong>de</strong> ser gerada, idêntica à imag<strong>em</strong> original.5.3.4 CASO DE USO “CONSULTAR MENSAGEM”O caso <strong>de</strong> uso “Consultar mensag<strong>em</strong>” ocorre quando o usuário receptor receber e abriruma imag<strong>em</strong> (formato bitmap <strong>de</strong> 24 bits). O código do algoritmo <strong>para</strong> extrair uma informaçãoda imag<strong>em</strong> po<strong>de</strong> ser visto no anexo B.Ao fazer isso é possível perceber, através <strong>de</strong> indicadores na tela, se a imag<strong>em</strong> possuiou não mensag<strong>em</strong> oculta pelo protótipo e ainda se esta mensag<strong>em</strong> está ou não criptografada.Se estiver será exigida a chave <strong>de</strong> criptografia. Depois <strong>de</strong> aberta a imag<strong>em</strong> e informada achave <strong>de</strong> criptografia (se necessário), <strong>de</strong>ve-se clicar no botão <strong>para</strong> extrair a mensag<strong>em</strong> daimag<strong>em</strong>. Po<strong>de</strong>-se também salvar esta mensag<strong>em</strong> <strong>em</strong> um arquivo <strong>texto</strong> (menu “Texto” opção“Salvar”).


565.4 RESULTADOS E DISCUSSÃOPara um melhor entendimento do funcionamento da ferramenta e <strong>para</strong> verificar osresultados obtidos, será feita uma com<strong>para</strong>ção do código binário <strong>de</strong> uma imag<strong>em</strong> antes e<strong>de</strong>pois <strong>de</strong> ser esteganografada.Deseja-se <strong>ocultar</strong> a letra “A” <strong>em</strong> uma imag<strong>em</strong>. Como visto anteriormente, <strong>para</strong>qualquer mensag<strong>em</strong>, o protótipo utiliza um i<strong>de</strong>ntificador <strong>de</strong> início (“#INI#” ou #CRP#) <strong>para</strong>marcar o início da mensag<strong>em</strong>, e um i<strong>de</strong>ntificador <strong>de</strong> fim (“#FIM#”) <strong>para</strong> marcar o final damensag<strong>em</strong>, concatenado os dois i<strong>de</strong>ntificadores à mensag<strong>em</strong>, t<strong>em</strong>-se: “#INI#A#FIM#”.Se a informação estiver criptografada, o processo não se altera. A letra “A”criptografada com uma chave qualquer representaria um conjunto <strong>de</strong> caracteres especiaiscodificados, e cada um <strong>de</strong>sses caracteres é convertido <strong>para</strong> binário e processado na imag<strong>em</strong> damesma forma como apresentado a seguir.Convertendo a informação “#INI#A#FIM#” <strong>para</strong> binário fica: “00100011 0100100101001110 01001001 00100011 01000001 00100011 01000110 01001001 0100110100100011”. Essa sequência binária é que será inserida nos bits menos significativos <strong>de</strong> cadapixel da imag<strong>em</strong>. Para armazenar essa informação são necessários 88 bytes (11 caracteres x 8bits), ou 30 pixels, sendo que do último pixel apenas 1 byte é utilizado.A imag<strong>em</strong> utilizada como ex<strong>em</strong>plo é relativamente pequena, 16x16 pixels, on<strong>de</strong> cadapixel possui uma cor distinta (as cores dos pixels não interfer<strong>em</strong> <strong>em</strong> nada a esteganografia).Em uma imag<strong>em</strong> <strong>de</strong>sse tamanho é possível escon<strong>de</strong>r apenas 96 caracteres utilizando o métodoLSB.A tabela 1 <strong>de</strong>monstra o processo <strong>de</strong> esteganografia <strong>para</strong> o ex<strong>em</strong>plo acima apenas <strong>para</strong>os pixels que serão modificados. A primeira coluna mostra pixel a pixel (coluna, linha) queserá modificado e a cor correspon<strong>de</strong>nte, a segunda coluna mostra os 3 bits da sequênciabinária da mensag<strong>em</strong> <strong>de</strong> <strong>texto</strong> que serão inseridos no pixel (1 bit <strong>para</strong> cada byte do pixel), aterceira coluna mostra a sequência binária original que representa a cor do pixel e a quartacoluna a sequência binária modificada, ou seja, com os 3 bits da entrada inseridos nos bitsmenos significativos <strong>de</strong> cada byte do pixel (bit <strong>em</strong> negrito).


57Para extrair a informação lê-se a imag<strong>em</strong> pixel a pixel. A sequência binária que éformada com o conjunto dos bits menos significativos <strong>de</strong> cada byte do pixel compõe amensag<strong>em</strong> (cada 8 bits representa 1 caracter). Essa leitura é feita até encontrar a sequênciabinária que representa o i<strong>de</strong>ntificador “#FIM#” que indica o final da mensag<strong>em</strong>.Tabela 1 – Ex<strong>em</strong>plo <strong>de</strong> esteganografia <strong>em</strong> <strong>imagens</strong> com o método LSB.x,y (pixel) Entrada Sequência binária original Sequência binária modificada1,1 (preto) 001 00000000 00000000 00000000 00000000 00000000 000000012,1 (azul) 000 11111111 00000000 00000000 11111110 00000000 000000003,1 (amarelo) 110 00000000 11111111 11111111 00000001 11111111 111111104,1 (ver<strong>de</strong>) 100 00000000 11111111 00000000 00000001 11111110 000000005,1 (vermelho) 100 00000000 00000000 11111111 00000001 00000000 111111106,1 (branco) 101 11111111 11111111 11111111 11111111 11111110 111111117,1 (preto) 001 00000000 00000000 00000000 00000000 00000000 000000018,1 (azul) 110 11111111 00000000 00000000 11111111 00000001 000000009,1 (amarelo) 010 00000000 11111111 11111111 00000000 11111111 1111111010,1 (ver<strong>de</strong>) 010 00000000 11111111 00000000 00000000 11111111 0000000011,1 (vermelho) 010 00000000 00000000 11111111 00000000 00000001 1111111012,1 (branco) 010 11111111 11111111 11111111 11111110 11111111 1111111013,1 (preto) 001 00000000 00000000 00000000 00000000 00000000 0000000114,1 (azul) 101 11111111 00000000 00000000 11111111 00000000 0000000115,1 (amarelo) 000 00000000 11111111 11111111 00000000 11111110 1111111016,1 (ver<strong>de</strong>) 001 00000000 11111111 00000000 00000000 11111110 000000011,2 (vermelho) 001 00000000 00000000 11111111 00000000 00000000 111111112,2 (branco) 000 11111111 11111111 11111111 11111110 11111110 111111103,2 (preto) 110 00000000 00000000 00000000 00000001 00000001 000000004,2 (azul) 100 11111111 00000000 00000000 11111111 00000000 000000005,2 (amarelo) 011 00000000 11111111 11111111 00000000 11111111 111111116,2 (ver<strong>de</strong>) 001 00000000 11111111 00000000 00000000 11111110 000000017,2 (vermelho) 001 00000000 00000000 11111111 00000000 00000000 111111118,2 (branco) 001 11111111 11111111 11111111 11111110 11111110 111111119,2 (preto) 010 00000000 00000000 00000000 00000000 00000001 0000000010,2 (azul) 011 11111111 00000000 00000000 11111110 00000001 0000000111,2 (amarelo) 010 00000000 11111111 11111111 00000000 11111111 1111111012,2 (ver<strong>de</strong>) 010 00000000 11111111 00000000 00000000 11111111 0000000013,2 (vermelho) 001 00000000 00000000 11111111 00000000 00000000 1111111114,2 (branco) 1 11111111 11111111 11111111 11111111 11111111 11111111


586 CONCLUSÕESFoi estudada a criptografia através do algoritmo simétrico AES e a esteganografia, suaaplicação <strong>em</strong> <strong>imagens</strong> digitais no formato bitmap e o método <strong>de</strong> inserção no último bitsignificativo (LSB), principal método <strong>para</strong> armazenar informação <strong>em</strong> <strong>imagens</strong>.Em conjunto com a criptografia, a esteganografia torna-se bastante segura, sendopraticamente impossível violar qualquer mensag<strong>em</strong> oculta. Com a esteganografia é possível<strong>ocultar</strong> qualquer tipo <strong>de</strong> formato <strong>de</strong> arquivo, não apenas <strong>texto</strong>, pois o que importa é ainformação binária que representa este arquivo. Po<strong>de</strong>-se, por ex<strong>em</strong>plo, <strong>ocultar</strong> uma imag<strong>em</strong><strong>de</strong>ntro <strong>de</strong> outra.O protótipo <strong>de</strong>senvolvido permite comunicar-se <strong>de</strong> maneira secreta e segura, s<strong>em</strong> quehaja qualquer suspeita da existência da comunicação, o que não acontece utilizando apenas acriptografia. Com o protótipo também é possível, por ex<strong>em</strong>plo, criar uma assinatura digital ouuma marca d’água autêntica.Uma das limitações do protótipo é fazer uso apenas <strong>de</strong> <strong>imagens</strong> no formato bitmap.Com esse formato, as <strong>imagens</strong> costumam ser gran<strong>de</strong>s no tamanho <strong>para</strong> armazenamento <strong>em</strong>disco e esse tamanho po<strong>de</strong> ser probl<strong>em</strong>a na hora <strong>de</strong> transmitir essa imag<strong>em</strong> ao receptor. Alémdisso, o método <strong>de</strong> esteganografia utilizado não permite que a imag<strong>em</strong> sofra compressão.As maiores dificulda<strong>de</strong>s encontradas foram no levantamento bibliográfico sobreesteganografia, por se tratar <strong>de</strong> um assunto pouco abordado.6.1 EXTENSÕESComo extensão <strong>de</strong>ste trabalho, po<strong>de</strong>-se estudar outras técnicas <strong>de</strong> esteganografia, <strong>para</strong>outros formatos <strong>de</strong> <strong>imagens</strong>, que utilizam algoritmos <strong>de</strong> compressão, por ex<strong>em</strong>plo. Outrosdois métodos que po<strong>de</strong>m ser estudados são: filtrag<strong>em</strong> e mascaramento; e algoritmos <strong>de</strong>transformação.Po<strong>de</strong>-se estudar também a utilização <strong>de</strong> esteganografia <strong>em</strong> outras mídias, comoarquivos <strong>de</strong> áudio e ví<strong>de</strong>o. E também tornar possível escon<strong>de</strong>r outros formatos <strong>de</strong> arquivos,não apenas <strong>texto</strong>.


59Outra sugestão é impl<strong>em</strong>entar a compressão <strong>de</strong> Huffman, método estatístico utilizado<strong>para</strong> compactar dados. A compressão <strong>de</strong> Huffman po<strong>de</strong> ajudar a esteganografia, comprimindoa mensag<strong>em</strong> que será escondida na imag<strong>em</strong>, isso permite que um maior número <strong>de</strong> caracterespossa ser esteganografado <strong>em</strong> uma imag<strong>em</strong> pequena. Apesar <strong>de</strong> abordado na fundamentaçãoteórica <strong>de</strong>ste trabalho, não foi impl<strong>em</strong>entado, ficando como sugestão <strong>para</strong> trabalhos futuros.Outra possibilida<strong>de</strong> é a utilização <strong>de</strong> mais algoritmos <strong>de</strong> criptografia na codificação e<strong>de</strong>codificação da mensag<strong>em</strong>, algoritmos assimétricos (<strong>de</strong> chave pública), por ex<strong>em</strong>plo.


60REFERÊNCIAS BIBLIOGRÁFICASCASACURTA, Alexandre et al. Computação gráfica – Introdução, Rio Gran<strong>de</strong> do Sul, set.1998. Disponível <strong>em</strong>: . Acesso <strong>em</strong>: 8set. 2003.DANTAS, George Felipe <strong>de</strong> Lima. Esteganografia digital, Brasília, ago. 2002. Disponível<strong>em</strong>: . Acesso <strong>em</strong>: 8 set. 2003.ERIGSON, Marcelo. Esteganografia, Rio Gran<strong>de</strong> do Sul, jan. 2003. Disponível <strong>em</strong>:. Acesso <strong>em</strong>: 15 set. 2003.HINZ, Marco Antônio Mielke. Um estudo <strong>de</strong>scritivo <strong>de</strong> novos algoritmos <strong>de</strong> criptografia,Rio Gran<strong>de</strong> do Sul, <strong>de</strong>z. 2000. Disponível <strong>em</strong>:.Acesso <strong>em</strong>: 9 set. 2003.KANISHIMA, Eliana; MORAIS, Everson; RIBEIRO, Fabiano; TAVARES, Gislaine;OURA, Lilian. Segurança <strong>em</strong> re<strong>de</strong>s, Paraná, jun. 2000. Disponível <strong>em</strong>:. Acesso <strong>em</strong>: 9set. 2003.KONKOL, Laura Mireile; STRINGARI, Sergio. Protótipo <strong>de</strong> <strong>software</strong> <strong>para</strong> criptografia <strong>de</strong>dados usando o algoritmo I<strong>de</strong>a. 1997. 61 f. Trabalho <strong>de</strong> Conclusão <strong>de</strong> Curso (Bacharelado<strong>em</strong> Ciências da Computação) - Centro <strong>de</strong> Ciências Exatas e Naturais, Universida<strong>de</strong> Regional<strong>de</strong> Blumenau, Blumenau.KUNZ, Leonardo. Esteganografia <strong>em</strong> <strong>imagens</strong> usando codificação <strong>de</strong> Huffman, RioGran<strong>de</strong> do Sul, jan. 2003. Disponível <strong>em</strong>: . Acesso <strong>em</strong>:15 set. 2003.LIMA, Fabrício Luis. Componentes CE3PO, [?], jun. 2003. Disponível <strong>em</strong>:. Acesso <strong>em</strong>: 15 set. 2003.LUCCHESI, Claudio Leonardo. Introdução à criptografia computacional. Campinas:Papirus/UNICAMP, 1986. xiii, 132 p.MACÊDO, Rodrigo; TRINTA, Fernando. Um estudo sobre criptografia e assinaturadigital, Pernamuco, set. 1998. Disponível <strong>em</strong>:. Acesso <strong>em</strong>: 24 jul. 2003.OLIVEIRA, Wilson José <strong>de</strong>. Hacker: invasão e proteção. 2.ed. Florianópolis: Visual Books,2000. 386 p.


61PUTTINI, Ricardo S.; SOUSA, Rafael T. <strong>de</strong>. Criptografia e segurança <strong>de</strong> re<strong>de</strong>s <strong>de</strong>computadores, Brasília, <strong>de</strong>z. 2000. Disponível <strong>em</strong>:. Acesso <strong>em</strong>: 02 <strong>de</strong>z. 2003.ROCHA, An<strong>de</strong>rson Rezen<strong>de</strong>. Desenvolvimento <strong>de</strong> um <strong>software</strong> <strong>para</strong> segurança digitalutilizando esteganografia, Lavras, jul. 2003. Disponível <strong>em</strong>:. Acesso <strong>em</strong>: 02<strong>de</strong>z. 2003.SANTOS, Leandro dos; EMER, Cassio; AVER, Rodrigo. Apostila <strong>de</strong> criptografia, [?],1996. Disponível <strong>em</strong>: . Acesso <strong>em</strong>:9 set. 2003.SOARES, Luiz Fernando G.; LEMOS, Guido; COLCHER, Sérgio et al. Re<strong>de</strong>s <strong>de</strong>computadores: das LANs, MANs e WANs às re<strong>de</strong>s ATM. 2.ed. Rio <strong>de</strong> Janeiro: Campus,1995. 705 p.STALLINGS, William. Network and internetwork security principles and practice.Englewood Cliffs: Prentice Hall, 1995. xiii, 462 p.STANG, David J.; MOON, Sylvia. Segredos <strong>de</strong> seguranca <strong>em</strong> re<strong>de</strong>. Rio <strong>de</strong> Janeiro:Berkeley, 1994. xxvi, 986 p.TANENBAUM, Andrew S. Re<strong>de</strong>s <strong>de</strong> computadores. Rio <strong>de</strong> Janeiro: Campus, 1994. 786 p.WILNER, Alessandro. Terrorismo x privacida<strong>de</strong>, São Paulo, nov. 2001. Disponível <strong>em</strong>:. Acesso <strong>em</strong>: 24 jul. 2003.ZANELLA, Daniel. Protótipo <strong>de</strong> <strong>software</strong> <strong>para</strong> inserção e extração <strong>de</strong> mensagens <strong>em</strong>arquivos raster através <strong>de</strong> esteganografia. 2002. 79 f. Trabalho <strong>de</strong> Conclusão <strong>de</strong> Curso(Bacharelado <strong>em</strong> Ciências da Computação) - Centro <strong>de</strong> Ciências Exatas e Naturais,Universida<strong>de</strong> Regional <strong>de</strong> Blumenau, Blumenau.


62ANEXO A – Algoritmo <strong>de</strong> esteganografia <strong>para</strong> <strong>ocultar</strong> a informação naimag<strong>em</strong>.procedure TImgEstegano.TxtToImg(aTxt: String);varxPixelBin : String[24];x, y: Integer;xTxtBin: String;xBit: Integer;beginxTxtBin := FBinUtil.TxtToBin(aTxt);xBit := 0;if (FLabelStatus nil) thenbeginFLabelStatus.Caption := 'Codificando <strong>texto</strong> na imag<strong>em</strong>...';FLabelStatus.Refresh;end;if (FProgressBar nil) thenbeginFProgressBar.Min := 0;FProgressBar.Max := Trunc(Int(Length(xTxtBin) / 3)) * 3;FProgressBar.Step := 3;end;for y := 0 to (FImag<strong>em</strong>.Height - 1) dobeginfor x := 0 to (FImag<strong>em</strong>.Width - 1) dobeginxPixelBin := FBinUtil.IntToBin(FImag<strong>em</strong>.Bitmap.Canvas.Pixels[x,y], 24);if (xBit < Length(xTxtBin)) thenbeginInc(xBit);xPixelBin[8] := xTxtBin[xBit];end;if (xBit < Length(xTxtBin)) thenbeginInc(xBit);xPixelBin[16] := xTxtBin[xBit];end;if (xBit < Length(xTxtBin)) thenbeginInc(xBit);xPixelBin[24] := xTxtBin[xBit];end;FImag<strong>em</strong>.Bitmap.Canvas.Pixels[x,y] := FBinUtil.BinToInt(xPixelBin);if (FProgressBar nil) thenFProgressBar.StepIt;if (xBit >= Length(xTxtBin)) thenBreak;end;if (xBit >= Length(xTxtBin)) thenBreak;end;if (FProgressBar nil) thenFProgressBar.Position := 0;if (FLabelStatus nil) thenbeginFLabelStatus.Caption := '';FLabelStatus.Refresh;end;end;


63ANEXO B – Algoritmo <strong>de</strong> esteganografia <strong>para</strong> extrair a informação daimag<strong>em</strong>.function TImgEstegano.TxtFromImg(aTipo: TImgToTxt): String;varxPixelBin : String; // Valor binário <strong>de</strong> cada pixel da imag<strong>em</strong>x, y, z, // Índices <strong>para</strong> percorrer os pixels da imag<strong>em</strong>xPixelIniY, // Em qual pixel (linha) <strong>de</strong>ve iniciar a leituraxPixelIniX: Integer; // Em qual pixel (coluna) <strong>de</strong>ve iniciar a leituraxTxtBin : String; // Texto <strong>em</strong> binárioxByte : Integer; // Em qual byte do pixel (1, 2 ou 3) <strong>de</strong>ve iniciar a leituraxSair : Boolean;xStrBinID : String;xIDSize : Integer;beginResult := '';xTxtBin := '';xByte := 1;xSair := false;xStrBinID := '';{ Converte o i<strong>de</strong>ntificador <strong>para</strong> o formato binário }if (aTipo = ittID) thenbeginxStrBinID := FBinUtil.TxtToBin(cIniTxtID);xPixelIniX := 0;en<strong>de</strong>lsebeginxStrBinID := FBinUtil.TxtToBin(cFimTxtID);xPixelIniX := Trunc(Int((Length(cIniTxtID) * 8) / 3)); // Int(56 bits / 3 bytes por pixel)end;{ Inicializa o tamanho do i<strong>de</strong>ntificador = nº <strong>de</strong> bits }xIDSize := Length(xStrBinID);{ Pixel inicial do <strong>texto</strong>, após o i<strong>de</strong>ntificador }xPixelIniY := 0;{ Em qual pixel vai iniciar a leitura da imag<strong>em</strong> }if (xPixelIniX > FImag<strong>em</strong>.Width) thenbeginxPixelIniY := Trunc(Int(xPixelIniX / FImag<strong>em</strong>.Width));xPixelIniX := xPixelIniX - (xPixelIniY * FImag<strong>em</strong>.Width);en<strong>de</strong>lseif (aTipo = ittTexto) then{ Verifica <strong>em</strong> qual dos 3 bytes do pixel (1, 2 ou 3) vai iniciar a leitura do <strong>texto</strong> }xByte := ((Length(cIniTxtID) * 8) mod 3) + 1; // (56 bits mod 3 bytes por pixel) + 1{ Mostrar Status do Processo <strong>para</strong> o usuário }if (FLabelStatus nil) thenbeginFLabelStatus.Caption := 'Extraindo <strong>texto</strong> da imag<strong>em</strong>...';FLabelStatus.Refresh;end;if (FProgressBar nil) thenbeginFProgressBar.Min := (xPixelIniY * xPixelIniX);FProgressBar.Max := (FImag<strong>em</strong>.Height * FImag<strong>em</strong>.Width);FProgressBar.Step := 1;end;{ Inicia a leitura da imag<strong>em</strong> }for y := xPixelIniY to (FImag<strong>em</strong>.Height - 1) {bits} dobeginfor x := xPixelIniX to (FImag<strong>em</strong>.Width - 1) {bits} dobegin{ Lê o binário do pixel }xPixelBin := FBinUtil.IntToBin(FImag<strong>em</strong>.Bitmap.Canvas.Pixels[x,y], 24);{ Processa o(s) byte(s) do pixel }for z := xByte to Trunc(Int(Length(xPixelBin) / 8)) do


64beginxTxtBin := xTxtBin + xPixelBin[(z * 8)];{ Verifica i<strong>de</strong>ntificação <strong>de</strong> FIM DE TEXTO }if (Length(xTxtBin) >= xIDSize) and((aTipo = ittID) or(CompareText(Copy(xTxtBin,(Length(xTxtBin) - (xIDSize - 1)),xIDSize), xStrBinID) =0)) thenbegin{ Retira o i<strong>de</strong>ntificador <strong>de</strong> FIM DE TEXTO }if (aTipo = ittTexto) thenxTxtBin := Copy(xTxtBin, 0, Length(xTxtBin) - xIDSize);xSair := true;Break;end;end;xByte := 1;if (FProgressBar nil) thenFProgressBar.StepIt;if (xSair) thenBreak;end;xPixelIniX := 0;if (xSair) thenBreak;end;if (FProgressBar nil) thenFProgressBar.Position := 0;if (FLabelStatus nil) thenbeginFLabelStatus.Caption := '';FLabelStatus.Refresh;end;{ Transforma o código binário <strong>em</strong> <strong>texto</strong> }if (xTxtBin '') thenResult := FBinUtil.BinToTxt(xTxtBin);end;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!