101
CAMOUFLAGED SECURITY SYSTEM: Protótipo de software que emprega técnicas de criptografia, assinatura digital e esteganografia para comunicação segura Guilherme Martinez Floriano Porto Alegre 2007

CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

CAMOUFLAGED SECURITY SYSTEM: Protótipo de

software que emprega técnicas de criptografia,

assinatura digital e esteganografia para

comunicação segura

Guilherme Martinez Floriano

Porto Alegre

2007

Page 2: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

Guilherme Martinez Floriano

Camouflaged Security System: Protótipo de software que

emprega técnicas de criptografia, assinatura digital e

esteganografia para comunicação segura

Trabalho de Conclusão de Curso II

apresentado a Faculdade de Informática

do Centro Universitário Ritter dos Reis,

como requisito parcial à obtenção do titulo

de Bacharel em Sistemas de Informação.

Orientador: Prof. Vinicius Gadis Ribeiro

Porto Alegre

2007

Page 3: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

Dedico esse Trabalho de Conclusão

de Curso aos meus avós, pelo

carrinho, incentivo, confiança, amor

e principalmente fé dedicados a

mim.

Page 4: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

AGRADECIMENTOS

Agradeço primeiramente a Deus, principal responsável por tudo isso.

Aos meus avós, Cleusa e Juan, pelo incentivo e amor que sempre me

dedicaram, por um dia terem acreditado em mim e me proporcionado à chance

de realizar os meus sonhos.

Aos meus pais e minha irmã, Cleidi, Marco e Gabriela, pelo apoio,

incentivo, compreensão, amor e principalmente pelo companheirismo, sempre

estando ao meu lado quando precisei.

Á minha namorada, Camila, pela dedicação, amor e compreensão,

principalmente na minha ausência no decorrer desse trabalho.

Ao meu Orientador, Vinicius Gadis Ribeiro, pela paciência, dedicação,

incentivo e sabedoria que muito me auxiliou para conclusão deste Trabalho de

Conclusão de Curso.

A todos os mestres e amigos de verdade, que me ensinaram,

incentivaram e ajudaram, direta ou indiretamente, contribuindo assim, para que

eu pudesse crescer.

Page 5: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

“O homem que remove uma

montanha começa carregando as

pequenas pedras”. (William Harrison

Faulkner)

Page 6: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

RESUMO

Este Trabalho de Conclusão de Curso visa o estudo e implementação de um

software que empregue técnicas de segurança de sistemas buscando prover

uma comunicação segura. Com a utilização de diferentes mecanismos de

segurança em conjunto - a criptografia, assinaturas digitais e a esteganografia

– pretende-se fornecer um meio seguro e efetivo para troca de mensagens.

Para isso, utiliza-se o algoritmo de criptografia RSA para cifrar e decifrar e as

mensagens, o algoritmo SHA-1 para gerar as assinaturas digitais destas

mensagens e a técnica de esteganografia LSB para ocultar esta assinatura

digital em uma imagem. Com a utilização das técnicas de forma adequada

pretende-se garantir que os dados não serão corrompidos, dificultando ainda

mais o trabalho do atacante que tem de trabalhar sobre informações diferentes

resultantes de diferentes técnicas de segurança.

Palavras-Chaves: Segurança de Sistemas; Criptografia; Assinatura Digital;

Esteganografia.

Page 7: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

ABSTRACT

This Job Completion of the course aims to study and implementation of a

software that employs techniques of seeking security systems provide a secure

communication. With the use of different mechanisms of security in set - the

cryptography, digital signatures and the steganography - it is intended to supply

a safe and effective way exchange of messages. For this, one uses the

algorithm of criptografia RSA to cipher and to decipher and the messages,

algorithm SHA-1 to generate the digital signatures of these messages and the

technique of steganography LSB to occult this digital signature in an image.

With the use of the techniques of adequate form it is intended to guarantee that

the data will not be corrupted, making it difficult still more the work of the

aggressor who has to work on resultant different information of different

techniques of security.

Key-Words: Security System; Criptography; Digital Signature; Steganography;

Page 8: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

LISTA DE FIGURAS

FIGURA 1 - Cifragem e Decifragem..................................................................20

FIGURA 2 - Cifrando a mensagem ENSINO com a utilização de cifras de

transposição, embaralhando os caracteres da mensagem ..............................22

FIGURA 3 - Cifragem e Decifragem utilizando uma chave ..............................25

FIGURA 4 - Cifragem e Decifragem com duas chaves diferentes ...................30

FIGURA 5 - Análise do pixel que pode ser alterado .........................................39

FIGURA 6 - Processo de alteração do pixel escolhido anteriormente ..............40

FIGURA 7 - Imagem Para testar a Técnica LSB ..............................................41

FIGURA 8 - Impacto sofrido na imagem após empregar a técnica ..................43

FIGURA 9 - Software StegoBMP.......................................................................46

FIGURA 10 - Software DAMN Hash Calculator.................................................47

FIGURA 11 – Telas de duas ferramentas que utilizam o algoritmo RSA..........49

FIGURA 12 – Funcionalidade do processo de envio de mensagem.................52

FIGURA 13 – Funcionalidade do processo de recebimento de

mensagem.........................................................................................................54

FIGURA 14 - Diagrama de Caso de Uso da ferramenta ..................................56

FIGURA 15 - Diagrama de atividades dos casos de uso Gerar Chaves, Enviar

Mensagem e Criar Mensagem ..........................................................................59

FIGURA 16 - Diagrama de atividades dos casos de uso Gerar Assinatura,

Cifrar Mensagem e Ocultar Informação ............................................................60

FIGURA 17 - Diagrama de Atividades dos casos de uso Obter Informação da

Imagem, Decifrar Mensagem e Comparar Assinaturas ....................................61

FIGURA 18 – Interface gráfica da tela principal do sistema..............................64

FIGURA 19 – Interface gráfica da tela Gerar Chaves.......................................66

FIGURA 20 – Logs do processo da tela gerar chaves......................................67

FIGURA 21 – Tela de configuração do sistema na aba Internet.......................68

FIGURA 22 – Tela de configurações do sistema na aba Geral.........................69

FIGURA 23 – Módulo Emissor, carregando as chaves e informando a

mensagem.........................................................................................................70

FIGURA 24 – Módulo Emissor, cifrando a mensagem......................................71

FIGURA 25 – Módulo Emissor, gerando a assinatura digital da mensagem.....72

Page 9: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

FIGURA 26 – Módulo Emissor, carregando a imagem que vai ser

esteganografada................................................................................................73

FIGURA 27 – Módulo Emissor, esteganografando a assinatura digital na

imagem..............................................................................................................74

FIGURA 28 – Módulo Emissor, Logs do processo de ocultação da assinatura

na imagem.........................................................................................................75

FIGURA 29 – Módulo Emissor, enviando a mensagem por email....................77

FIGURA 30 – Módulo Receptor, carregando as chaves no sistema.................78

FIGURA 31 – Módulo Receptor, decifrando a mensagem recebida..................79

FIGURA 32 – Módulo Receptor, gerando assinatura digital da mensagem

decifrada............................................................................................................80

FIGURA 33 – Módulo Receptor, carregando a imagem recebida.....................81

FIGURA 34 – Módulo Receptor, buscando a assinatura digital oculta na

imagem..............................................................................................................82

FIGURA 35 – Módulo Receptor, mensagem apresentada se as informações

forem corrompidas.............................................................................................83

FIGURA 36 – Módulo Receptor, mensagem apresentada se as informações

estiverem corretas.............................................................................................84

FIGURA 37 – Módulo Receptor, logs do processo de recebimento de

mensagem.........................................................................................................85

Page 10: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

LISTA DE QUADROS

QUADRO 1 - Representação da informação.....................................................41

Page 11: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

LISTA DE TABELAS

TABELA 1 - Mapa de bits dos valores originais do RGB...................................42

TABELA 2 - Mapa de bits dos valores alterados do RGB.................................42

TABELA 3 - Elementos principais de um Caso de Uso.....................................55

TABELA 4 - Elementos principais de um diagrama de atividades.....................59

TABELA 5 - Representação da implementação da técnica LSB mostrando

todos os processos realizados para ocultação da informação em uma

imagem..............................................................................................................95

Page 12: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

LISTA DE ABREVIATURAS E SIGLAS

AES – Advanced Encryption Standart

DES – Data Encryption Standard

DH – Diffie e Hellman

ID – Identificação do Usuário

LSB – Least Significant Bit

MD5 – Message Digest 5

MIT – Massachusetts Institute of Technology

NBC – National Bureau of Standards

NIST – National Institute of Standards and Technology

NSA – National Security Agency

RAD – Rapid Application Development

RGB – Red, Green, Blue

RSA – Rivest Shamir Adleman

SHA – Secure Hash Algorithm

UML – Unified Modeling Language

Page 13: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

SUMÁRIO

LISTA DE IMAGENS...........................................................................................07

LISTA DE QUADROS........................................................................................09

LISTA DE TABELAS.........................................................................................10

LISTA DE ABREVIATURAS E SIGLAS............................................................11

1 INTRODUÇÃO ...............................................................................................14

1.1 Objetivos ....................................................................................................14

1.2 Estrutura .....................................................................................................15

2 SEGURANÇA DE SISTEMAS .......................................................................16

2.1 Definições e Conceitos .............................................................................18

2.2 Criptografia ................................................................................................19

2.2.1 Serviços Básicos ......................................................................................22

2.2.2 Criptanálise ...............................................................................................23

2.2.3 Criptografia Simétrica ...............................................................................25

2.2.4 Criptografia Assimétrica ...........................................................................28

2.3 Assinatura Digital .....................................................................................32

2.3.1 Função Hash ............................................................................................33

2.4 Esteganografia ..........................................................................................36

2.4.1 Imagens Digitais .......................................................................................37

2.4.2 Least Significant Bit – LSB .......................................................................38

3 ESTUDO DE CASOS ....................................................................................45

3.1 StegoBMP...................................................................................................45

3.2 DAMN Hash Calculator 1.5.1.....................................................................47

3.3 criptografia RSA.........................................................................................48

4. CAMOUFLAGED SECURITY SYSTEM........................................................50

4.1 Especificação e requisitos........................................................................50

4.1.2 Funcionalidade do protótipo .....................................................................51

4.2 Modelagem do protótipo ..........................................................................55

4.2.1 Casos de Uso ..........................................................................................55

4.2.2 Diagrama de atividades ...........................................................................58

4.3 Desenvolvimento ......................................................................................61

4.3.1 Técnicas e Ferramentas Utilizadas ..........................................................62

Page 14: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

4.3.2 Interface Gráfica.......................................................................................63

4.3.3 Ferramentas auxiliares.............................................................................65

4.3.4 Módulo Emissor.........................................................................................70

4.3.5 Módulo Receptor.......................................................................................77

5 CONSIDERAÇÕES FINAIS ...........................................................................86

REFERÊNCIAS ................................................................................................88

ANEXO A – Processo completo de ocultação da informação exemplificada

na sessão 2.4.1 ................................................................................................90

ANEXO B – Algoritmos utilizados para realizar o processo de ocultação

da assinatura digital na imagem....................................................................96

ANEXO C – Algoritmos utilizados para realizar o processo de busca da

assinatura digital oculta na mensagem.........................................................98

Page 15: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

14

1. INTRODUÇÃO

Neste capítulo são apresentadas as motivações, os objetivos e a

estrutura deste Trabalho de Conclusão de Curso.

1.1 Objetivos

Com o passar dos anos, a necessidade de segurança teve um alto

índice de crescimento, empresas e organizações perceberam a necessidade

de expandir seus negócios para as redes computacionais, que cada vez mais

aproximam e agilizam as pessoas e os processos.

Assim, tornou-se extremamente necessária a criação de novos e

eficientes meios de realizar essa comunicação de forma segura. Podendo

garantir a privacidade e autenticidade do conteúdo das mensagens, a

confiabilidade na comunicação, a garantia dos envolvidos na mesma e a

integridade da mensagem.

Com esses conceitos garantidos, as organizações podem realizar a

transmissão de dados de uma forma segura, agilizando seus processos e

gerando lucratividade.

Motivado nisso, este Trabalho de Conclusão de Curso teve como

objetivo o estudo de técnicas de criptografia, assinatura digital e

esteganografia, pretendendo-se prover, através da implementação destas

técnicas de segurança de sistemas, um meio seguro para troca de informações

que necessitam de segurança.

Com a implementação do algoritmo de criptografia RSA, para cifrar e

decifrar as mensagens a serem enviadas, o algoritmo de hash SHA-1, para

gerar uma assinatura digital da mensagem, e por fim, o algoritmo de

esteganografia LSB, para ocultar essa assinatura digital em uma imagem

digital.

Page 16: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

15

O principal objetivo da implementação destes algoritmos é dificultar o

trabalho do atacante, que terá de trabalhar sobre duas informações - a

mensagem cifrada e a imagem com a assinatura digital -, que foram

empregadas a diferentes técnicas de segurança - Criptografia de chave

pública, assinatura digital e esteganografia.

1.2 Estrutura

O presente Trabalho de Conclusão de Curso esta subdividido em cinco

capítulos. O presente capitulo apresentou os objetivos e a estrutura do

trabalho. No segundo capítulo, são apresentados os conceitos importantes de

segurança de sistemas. Este é subdividido em quatro sub-capítulos: conceitos

importantes para entendimentos futuros do trabalho, conceitos de criptografia,

conceitos de assinatura digital e os conceitos de esteganografia.

No terceiro capítulo, é apresentado o estudo de casos das técnicas,

sendo apresentado três softwares que fazem o uso das técnicas de segurança

de sistemas implementados neste trabalho.

No quarto capítulo, são apresentados a modelagem, passos, processos

e dificuldades enfrentadas para conclusão deste Trabalho de Conclusão de

Curso, mostrando as funcionalidades do protótipo a ser desenvolvido e como

foi realizado o processo para alcançar os objetivos pretendidos.

E por fim, o quinto capítulo apresenta as considerações finais deste

trabalho, explanando os resultados alcançados e as dificuldades enfrentadas

para conclusão deste Trabalho de Conclusão de Curso.

Page 17: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

16

2. SEGURANÇA DE SISTEMAS

Neste capitulo, serão tratados os conceitos principais de segurança de

sistemas, o porquê das necessidades de segurança e como as proteger

adequadamente.

Atualmente, as redes de computadores vêm crescendo de forma

considerável; empresas estão se integrando cada vez mais nesta área para

conduzir seus negócios de forma mais ágil e lucrativa. Com base nisso, surge a

necessidade de melhores mecanismos para garantir a segurança das

transações de informações confidenciais - sendo muitas destas informações

essenciais para a empresa -, não podendo estar expostas.

Segundo BURNETT e PAINE (2002, p.10), podem-se associar estes

conceitos da seguinte maneira:

No mundo fático, a segurança é um conceito simples: se tivermos trancas fortes e sistemas de alarmes que os ladrões não possam ameaçar em roubar nossos valores, estamos seguros; se fizermos um contrato qualquer que seja e as duas partes o assinarem é garantido que ele tem validade, não podendo ser quebrado. No mundo virtual é relativamente parecido, sendo fortemente baseado em diversos conceitos, sendo os principais a privacidade, a integridade, a autenticidade e por fim o não-repúdio.

A privacidade visa garantir que seus arquivos ou documentos digitais

não serão lidos por nenhuma outra pessoa que não a que você autorize; a

integridade é um mecanismo que informa quando algo foi alterado;

autenticidade é a garantia de que determinada pessoa realmente é quem diz

ser e o não repúdio - muitas vezes também chamado de irretratabilidade -, é a

garantia de que determinada pessoa realmente participou de determinado

processo. Segundo BURNETT e PAINE (2002, p.10), “uma associação no

mundo fático se refere ao tabelião do cartório que reconhece uma assinatura

em um contrato, garantindo que aquela pessoa realmente participou da

transação”.

Atualmente, existem diversos tipos de ataques à segurança que visam

obter informações não autorizadas, desde senhas e dados pessoais até

segredos de negócios das grandes organizações. “Um ataque à segurança é

Page 18: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

17

qualquer ação que comprometa a segurança da informação” (SCHNEIER,

1996, p. 27).

Segundo STALLINGS (2005, p. 35-37), SCHNEIER (1996, p. 27), estes

ataques são classificados em quatro categorias, sendo elas:

• Interceptação, que é um ataque passivo, e tem por funcionalidade a

obtenção de informações sigilosas por uma entidade não autorizada;

• Interrupção, que por sua vez é um ataque ativo, e visa à destruição de

um componente ativo na informação, tornando-a indisponível;

• Fabricação, que também é um ataque ativo e visa à inserção de objetos

falsificados na informação por uma entidade não autorizada; e

• Modificação, que também é um ataque ativo que consiste na obtenção

dos dados sigilosos por parte de uma entidade não autorizada e a

falsificação dos componentes ativos da mensagem.

Para os dados permanecerem seguros, é extremamente necessário

adicionar proteções extras, que normalmente o sistema operacional não

oferece.

As proteções predefinidas no mesmo podem ser suficientes em

determinados casos, mas não em todos. Conforme cita BURNETT e PAINE

(2002, p. 8), “Se ninguém jamais tentar invadir ou roubar os dados, ou se o

invasor não souber evitar os mecanismos padrões simples você está seguro”;

mas sabe-se, que atualmente, os invasores têm habilidade e recursos

suficientes para quebrar a segurança básica de um sistema.

Em razão disto, é necessário que os dados realmente importantes sejam

protegidos, para não correr o risco de serem roubados; assim, deve-se

adicionar outros mecanismos de segurança.

Decorrente dessa demanda de segurança, há diversos mecanismos de

segurança implementados, que empregam diferentes técnicas de segurança da

informação hoje no mercado. Mecanismo de segurança, segundo JASCONE

(2003, p.17), “são técnicas, procedimentos e algoritmos projetados para

detectar, prever ou descobrir um ataque à segurança”.

Os mecanismos de segurança mais conhecidos e utilizados atualmente

são a criptografia e a esteganografia, que visam, cada uma da sua forma,

Page 19: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

18

fornecer a devida segurança aos dados, provendo a esses um meio

relativamente seguro para comunicação digital podendo suportar ataques de

pessoas não autorizadas.

2.1 Definições e Conceitos

Para que se compreendam corretamente os assuntos tratados

futuramente, é necessário conhecer alguns conceitos importantes e

fundamentais. São eles:

• Chave Secreta: É a informação secreta escolhida pelo usuário para

encriptar e decriptar a mensagem necessária. Conforme citam

BURNETT e PAINE (2002, p. 16), “a chave secreta funciona da mesma

maneira que uma chave convencional”, ela é utilizada em uma

fechadura, que seria para nós o algoritmo de criptografia, e protegerá as

informações, somente com a chave certa o usuário poderá proteger e ter

acesso às mesmas.

• Tabela de chaves: Segundo BURNETT e PAINE (2002, p.31),

“Praticamente todas as cifras simétricas utilizam a chave para construir

uma tabela de chaves, que normalmente é um array pseudoaleatório

com um tamanho e um formato específico”. Utiliza-se uma tabela de

chaves em função dos algoritmos necessitarem de uma chave de

mesmo tamanho e, caso queira utilizar chaves com diferentes tamanhos,

pode-se usar essa tabela para solucionar esse problema. Assim,

segundo BURNETT e PAINE (2002, p. 31), “constrói-se uma tabela de

chaves (que seja maior do que o maior tamanho possível de chave)”. A

utilização de uma tabela de chaves tem como vantagem que “mesmo

com uma chave ruim é possível criar uma boa tabela de chaves”, cita

BURNETT e PAINE (2002, p. 32).

• Atalhos: Conforme citam BURNETT e PAINE (2002, p. 78), “para todos

os algoritmos de chave pública, há técnicas que os quebrarão mais

Page 20: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

19

rapidamente que com força bruta”. Os atalhos são estas técnicas

utilizadas pelo criptanalista para quebrarem a informação indevidamente

adquirida.

• Número Primo: Um número primo, ou primo, é um número que só pode

ser igualmente divisível por 1 e por ele mesmo; por exemplo, 3, 5, 7, 13

e 17 são primos.

• Documento Eletrônico: Segundo CASTRO (2001), pode-se definir um

documento eletrônico como:

“A representação de um fato concretizado por meio de um computador e armazenado em formato específico (organização singular de bits e bytes), capaz de ser traduzido ou apreendido pelos sentidos mediante o emprego de programa (software) apropriado”.

• RESUMO DE MENSAGENS OU CÓDIGO HASH: Segundo BURNETT

e PAINE (2002, p. 121), um resumo de mensagem ou hash “é o resultado

de um mecanismo que recebe uma entrada e mescla a entrada para

produzir uma saída pseudo-aleatória de largura fixa”.

2.2 Criptografia

Do Grego kryptós, "escondido", e gráphein, "escrever”, a criptografia é o

estudo e aplicação de técnicas que tem por objetivo transformar uma

informação original e legível para outra completamente ilegível, que a torna

difícil de ser lida por alguém não autorizado. Sua interpretação só pode ser

feita caso seja conhecida sua "chave secreta". (SCHNEIER, 1996, p. 1).

Conforme citam BURNETT e PAINE (2002, p. 11), a criptografia tem

como funcionalidade “a capacidade de conversão de dados legíveis em algo

sem sentido, com a capacidade de recuperar os dados originais a partir desses

dados sem sentido”. Para tornar isso possível é utilizado um cryptographic

algorithm, que é “uma função matemática utilizada para cifrar e decifrar uma

mensagem” cita SCHNEIER (1996, p. 2).

Page 21: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

20

Técnicas de criptografia são as mais utilizadas para prover um meio

efetivo de proteção contra ataques, estejam armazenadas em disco ou sendo

transmitidas pelas redes computacionais.

A criptografia fornece a pessoas devidamente autorizadas, a

determinados processos, serviços básicos de: autenticidade, confidencialidade,

integridade e não repúdio para os dados.

A criptografia tem como funcionalidade a alteração de uma mensagem

original para outra cifrada. Para conseguir isso, a mensagem deve passar por

um processo de cifragem, que consiste basicamente no emprego da

mensagem a um mecanismo que, através de uma chave “específica”, cifre a

mesma. Ou seja, após a mensagem ser empregada ao algoritmo de

criptografia com esta chave secreta a mesma será totalmente alterada ficando

completamente ilegível. E um processo contrário, que é a decifragem onde,

novamente, através da chave específica, pode-se converter os dados cifrados

para a mensagem original.

A Figura 1 exemplifica a funcionalidade da criptografia:

FIGURA 1 - Cifragem e Decifragem (traduzido de SCHNEIER, 1996, p. 1).

Com intuitos históricos, de exemplificar técnicas de criptografia utilizadas

antigamente, pode-se comentar sobre as cifras de substituição e cifras de

transposição.

Segundo SILVA (1998), o funcionamento das cifra de substituição

consiste basicamente em “trocar os bits, caracteres ou blocos de caracteres

por outros”, ou seja, troca-se um caractere por outro seguindo uma tabela de

substituição. Por exemplo, se na tabela de substituição é indicado que deve-se

alterar os caracteres em cinco posições, a consoante B, após ser cifrada, irá

assumir o valor da consoante G.

As técnicas de substituição são o tipo de cifragem mais simples,

conhecido e fácil de ser quebrada. É necessário somente analisar a freqüência

Page 22: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

21

com que aparecem os caracteres e ir comparando com a freqüência dos

caracteres em determinado idioma. Por exemplo, em português, o caractere

que mais vezes aparece em textos é a vogal E; então, se a mensagem a ser

analisada for em português, provavelmente o caractere que aparecer mais

vezes no texto cifrado é a letra E, e assim realiza-se uma análise sobre toda a

mensagem.

O exemplo mais conhecido da utilização de cifras de substituição é a

Cifra de César ou Código de César. Criado pelo Imperador Julio César com o

objetivo de possibilitar uma comunicação de forma sigilosa com seus generais

passando informações militares. A técnica consiste em alterar a posição dos

caracteres em três posições à frente, ou seja, a vogal A se transformaria na

consoante D após ser cifrada.

As cifras de transposição ou cifras de permutação, por sua vez,

consistem, segundo SILVA (1998), “em reorganizar a ordem dos bits,

caracteres ou bloco de caracteres”, ou seja, consistem em trocar as posições

dos caracteres no texto. Como nas cifras de substituição é importante definir

uma ordem para realizar a troca das posições.

Por exemplo, se pegar um texto com 20 caracteres, dividem-se estes

caracteres em um vetor de 20 posições, define-se uma ordem para realizar a

transposição, de tal forma que todos os caracteres mudem de posição, ou seja,

define-se que a posição um do vetor trocará de lugar com a posição 10, a

posição dois com a posição 15, e assim por diante, até que toda a mensagem

tenha trocado de posição.

Outro exemplo básico da utilização de transposição é, simplesmente,

pegar uma palavra e embaralhar a posição dos caracteres, conforme observa-

se na Figura 2.

Page 23: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

22

FIGURA 2 - Cifrando a mensagem ENSINO com a utilização de cifras de transposição,

embaralhando os caracteres da mensagem.

Atualmente, existem dois tipos de criptografia: simétrica e assimétrica.

A criptografia simétrica utiliza uma única chave no processo de

criptografia, e esta chave deve ser mantida em segredo.

A criptografia assimétrica utiliza duas chaves, matematicamente

relacionadas, sendo uma delas para encriptar outra para decriptar. Uma das

chaves é mantida em segredo, e a outra é divulgada.

A principal diferença encontrada nas duas técnicas é com relação as

chaves utilizadas. A criptografia simétrica utiliza somente uma chave para

realizar o processo de cifragem e decifragem da mensagem e a assimétrica

utiliza duas chaves, uma pública e outra privada, sendo uma utilizada para

cifrar e a outra para decifrar a mensagem.

Assim, observa-se que a criptografia assimétrica soluciona o problema

de distribuição de chaves e facilita a comunicação segura entre quaisquer

pessoas. Mas na criptografia simétrica, o processo de cifragem e decifragem é

extremamente mais rápido do que com a assimétrica.

2.2.1 Serviços básicos

É necessário que alguns serviços básicos sejam assegurados para que

a criptografia realmente seja um meio efetivo para proteção dos dados, são

eles:

Page 24: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

23

• Autenticidade: Assegura a validade da transmissão, da mensagem e

das entidades envolvidas. Conforme BURNETT e PAINE (2002, p. 10),

“a autenticidade pode ser comparada à identificação de usuário - ID -

requerido para retirar dinheiro de uma conta corrente”.

• Confidencialidade: Restringe o acesso à informação apenas às

pessoas autorizadas, tornando, assim, o documento protegido. A

confidencialidade seria a garantia de privacidade da comunicação.

• Integridade: Tem como objetivo a garantia da não alteração dos dados,

ou seja, garantia de que a mensagem recebida é exatamente igual à

mensagem enviada, e não sofreu nenhuma alteração. Conforme

BURNETT e PAINE (2002, p. 10), “A integridade é um mecanismo que

informa se algo foi alterado, assim como um alarme da ferramenta”.

• Não-Repúdio: É a garantia de que determinada pessoa que participou

de determinada operação realmente participou, não podendo negar a

propriedade de tal ato. “Um remetente não pode negar mais tarde que

enviou determinada mensagem ou executou determinada ação”,

(SCHNEIER, 1996, p. 2).

2.2.2 Criptanálise

“A criptanálise é a parte da criptografia que estuda as técnicas para

obter o texto original a partir do texto cifrado” (SCHNEIER, 1996, p. 5). Ou seja,

a criptanálise é o ramo da ciência criptografia que estuda formas de decodificar

uma mensagem sem saber a sua chave secreta. Ela é responsável por estudar

como se pode quebrar o código da mensagem, ou ainda, como minimizar o

esforço para descobri-la.

Então, no momento de desenvolver um sistema de criptografia –

criptosistema – é com a criptanálise que devemos nos preocupar, porque se

alguém quiser atacar o sistema, com a utilização da criptanálise pode ter

sucesso.

Page 25: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

24

Segundo SCHNEIER (1996, p. 5-6), atualmente existem quatro tipos

gerais de ataques criptoanalíticos; todos eles consideram que o criptanalista

tenha o conhecimento completo do algoritmo de criptografia utilizado, sendo

eles:

• Ataque sobre mensagens cifradas: o criptanalista tem diversas

mensagens cifradas anteriormente pelo mesmo algoritmo de

encriptação. Ele tem o trabalho recuperar os textos originais das

mensagens possíveis para, assim, poder deduzir a chave ou chaves

utilizadas para cifrar as mensagens, com a finalidade de poder decifrar

futuras mensagens cifradas com as mesmas chaves.

• Ataque sobre mensagens originais: o criptanalista tem acesso não

somente as mensagens cifradas como acima, mas também às

mensagens originais das mesmas. Seu trabalho é deduzir a chave

secreta utilizada para realizar a criptografia nestas mensagens para,

com ela, poder vir a decifrar novas mensagens que venham a ser

cifradas com esta chave.

• Ataque escolhendo blocos das mensagens originais: o criptanalista

tem acesso às mensagens originais e cifradas, como já visto, mas pode

escolher as mensagens originais na qual começará cifrando. Este tipo

de ataque tem vantagens com relação ao anterior, pois o criptanalista

pode escolher os blocos específicos da mensagem a ser cifrada, sendo

os blocos escolhidos os que poderão render mais informações sobre a

chave que está sendo utilizada para, mais uma vez, deduzir a chave

utilizada e poder decifrar outras mensagens que possam vir a ser

cifradas com esta chave.

• Ataque adaptável escolhendo os blocos das mensagens originais:

este é um exemplo especial de ataque escolhendo os blocos da

mensagem original: o criptanalista não somente escolhe a mensagem a

ser cifrada, mas também pode modificar a sua escolha, baseando-se

nos resultados obtidos de cifragens anteriores em um ataque de escolha

de blocos, ou seja, o criptanalista pode escolher um bloco menor da

mensagem original e então escolher outros blocos baseados em

encriptações precedentes.

Page 26: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

25

Este último tipo de ataque leva vantagem quanto ao anterior em função

de que, no anterior, o criptanalista pode escolher somente um grande bloco

para cifrar e, neste último, pode escolher um bloco menor e escolher outros

blocos, que possam vir a render informações relevantes para obtenção da

chave baseada em resultados anteriores.

O criptanalista deve levar em consideração fatores de complexidade de

uma criptanálise, ou seja, devem levar em consideração recursos de tempo,

memória e dados necessários para realizar a criptanálise.

A complexidade do tempo consiste no número de operações que devem

ser executadas para realizar a criptanálise, a complexidade da memória é a

quantidade necessária de armazenamento requerida para executar o ataque, e

por fim, a complexidade de dados, que é a quantidade de plaintexts

(mensagens originais) e mensagens cifradas utilizadas para realizar a

criptanálise.

2.2.3 Criptografia Simétrica

Conforme BURNETT e PAINE (2002, p. 11), “Nessa abordagem, um

algoritmo utiliza uma chave para converter as informações naquilo que se

parece com bits aleatórios e utiliza a mesma chave para recuperar os dados

originais”.

A Figura 3 ilustra o funcionamento de um algoritmo de criptografia

simétrico:

FIGURA 3 - Cifragem e Decifragem utilizando uma chave (Adaptado de SCHNEIER, 1996, p.

6).

Page 27: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

26

Se Alice quiser enviar uma mensagem para Bob, ela deverá empregar a

mensagem que deseja enviar a um algoritmo e alimentá-lo com uma chave

secreta. Assim, a informação vai ser encriptada e um atacante não pode

visualizá-la; ela envia a mensagem para Bob e ele executa o processo reverso:

emprega a mensagem cifrada ao algoritmo e o alimenta com a mesma chave

secreta para poder decriptá-la.

A criptografia de chave simétrica até pode manter seguros seus dados,

mas se precisar compartilhar com outras pessoas, é inevitável que você

compartilhe a chave secreta também. Portanto, é extremamente necessário

que se guarde e/ou transmita essa chave de forma segura, pois se um dos dois

não armazenar de forma segura esta chave ou se a distribuição da mesma não

for realizada de forma segura, ela pode ser roubada por um atacante, e

utilizada para interceptar a mensagem ou até mesmo falsificar novas

mensagens.

Existem dois tipos de algoritmos de criptografia simétrica, a cifragem de

blocos que opera sobre blocos de dados e cifragens de fluxo que operam

utilizando a técnica de criptografia de enchimento de uma única vez.

Conhece-se varias implementações de algoritmos simétricos, podendo

citar como exemplos a cifra de César, cifras de transposição, algoritmo DES

(Data Endrypition Standart), AES (Advanced Encryption Standard), 3DES

dentre outros, sendo abaixo apresentando alguns dados históricos e conceitos

básicos de dois algoritmos simétricos, o DES e o AES.

a) Algoritmo DES (Data Encryption Standart)

O algoritmo LUCIFER foi criado em 1970 por Horst Feistel, que

trabalhava no Thomas J. Watson Laboratory da IBM, e apresentado para a

NBC - National Bureau of Standards - decorrente de uma solicitação pública da

mesma por algoritmos de criptografia.

Após ser feita avaliação sobre o algoritmo pela NSA (National Security

Agency), em 1977, o algoritmo LUCIFER foi adotado pelo governo americano

após algumas modificações sob a denominação de DES e foi rapidamente

adotado.

Page 28: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

27

O DES trabalha sobre cifragem de blocos, dividindo a mensagem em

blocos de 64 bits usando chaves de encriptação de 64 bits, sendo 56 bits reais

e os últimos 8 utilizados para verificação da chave, empregando a informação a

operações de XOR com essa chave para obter a mensagem cifrada.

Atualmente, já existe variação para o algoritmo DES denominada Triple

DES. Ela utiliza o DES em três ciframentos sucessivos, podendo empregar

uma versão com duas ou com três chaves diferentes (112 ou 168 bits). É mais

seguro que o DES, porém não é aplicável por ser muito lento, não podendo ser

adotado como um algoritmo padrão.

b) Algoritmo AES (Advanced Encryption Standar)

No ano de 2000, o NIST (National Institute of Standards and

Technology) selecionou o algoritmo AES dentre 15 propostos. Este foi

anunciado como um novo padrão de criptografia de chave secreta e tinha como

objetivo a substituição do DES em função de suas chaves estarem se tornando

pequenas comparadas à necessidade.

O Advanced Encryption Standard (AES), baseado no algoritmo Rijndael

é o algoritmo padrão de criptografia simétrica utilizado hoje em dia pelo

governo americano. Foi criado por Rijmen e Daemen, por isso o nome Rijndael,

da junção e abreviatura dos nomes de seus criadores.

O algoritmo AES funciona da seguinte maneira conforme cita JASCONE

(2003, p. 31).

É um cifrador de substituição e permutação. Ele cifra um texto claro de 128 bits em um texto cifrado de 128 bits, usando para isso n fases, onde cada resultado intermediário entre as transformações é chamado de “estado”. O número de fases n definido para a cifra depende do tamanho de bloco e do tamanho de chave que estão sendo utilizados. O menor número de fases é 10 (correspondendo ao tamanho de bloco de 128 bits e tamanho de chave de 128 bits), sendo este limite válido para todos os tamanhos de blocos e de chaves. Cada fase consiste na aplicação seguida das transformações de: substituição (ByteSub), deslocamento de linhas (ShiftRow), mesclagem de colunas (MixColumn) e adição de chaves (AddRoundKey).

Page 29: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

28

2.2.4 Criptografia Assimétrica

Decorrente dos problemas com a distribuição das chaves, que é a

necessidade de distribuir a mesma chave secreta entre as pessoas envolvidas

no processo, tornou-se necessário a criação de ferramentas que pudessem

fazer a distribuição das chaves de forma segura. Então, foram criados os

algoritmos de criptografia de chave assimétrica ou de chave pública, como

também são conhecidos.

Em meados da década de 70, o aluno Whitfield Diffie, graduado pela

Stanford University, e o professor Martin Hellman investigaram a criptografia

em geral e o problema de distribuição de chaves. Eles criaram o primeiro

esquema de chave pública, no qual duas pessoas poderiam trocar informações

utilizando meios de comunicação públicos, através de chaves secretas

compartilhadas, ou seja, eles poderiam criar uma chave secreta trocando

informações públicas. Este esquema ficou conhecido como DH (Diffie,

Hellman), decorrente das iniciais dos nomes de seus criadores. Em 1976, Diffie

e Hellman publicaram seus resultados no artigo “New Directions in

Cryptography”, descrevendo a idéia de criptografia de chave pública e seus

resultados até o momento.

“O DH resolve o problema de distribuição de chaves, mas não é o

algoritmo final. Ele não é efetivo para a criptografia, mas ainda é muito utilizado

até hoje”, cita BURNETT e PAINE (2002, p. 79).

Conforme SCHNEIER (1996, p. 31), pode-se definir a técnica da

seguinte maneira: “A criptografia assimétrica utiliza duas diferentes chaves,

uma pública e outra privada, de modo que é computacionalmente complexo e

normalmente impraticável a dedução da chave privada por meio da chave

pública”.

Assim, qualquer pessoa pode cifrar a mensagem com a chave pública,

mas jamais pode decifrá-la com a mesma chave, sendo necessário à chave

privada para decifrá-la, que, teoricamente, só a pessoa autorizada, dona da

chave pública informada e utilizada para cifrar a mensagem, a terá.

Page 30: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

29

É relevante salientar que as duas chaves (pública e privada) detêm uma

relação matemática entre elas. A geração das chaves (problema direto) é

rápida e eficiente, já o problema reverso (a partir da chave pública definir a

chave privada), é oneroso e proibitivo.

Segundo SCHNEIER (1996, p. 31), pode-se definir o processo

encriptação da seguinte maneira:

“Matematicamente, o processo de encriptação é baseado nas funções de sentido único (one-Ways), a encriptação é o sentido fácil, sendo necessário somente à chave publica para realizar esta tarefa, e qualquer pessoa poderá realizá-la”.

A decifração é a parte complexa da técnica de chave assimétrica,

conforme SCHNEIER (1996, p. 31), “Uma pessoa com um computador Cray

(super computador) poderia levar milhares de anos para conseguir decifrar a

mensagem sem a chave privada, com a chave o processo é tão simples quanto

a encriptação”.

Ainda, segundo SCHNEIER (1996, p. 32), a técnica de criptografia de

chave pública funciona basicamente da seguinte maneira:

• Alice deseja enviar uma mensagem de forma segura para Bob;

• Alice e Bob concordam com um sistema de criptografia de chave pública

em comum;

• Bob fornece para a Alice sua chave pública, podendo enviá-la ou

disponibilizá-la em qualquer meio de comunicação, não sendo

necessário um meio seguro;

• Alice cifra a mensagem que ela deseja enviar com a chave pública do

Bob e a envia para Bob;

• Bob ao receber a mensagem, a decifra utilizando sua chave privada e

obtém a mensagem original enviada por Alice.

Page 31: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

30

A Figura 4 exemplifica o funcionamento básico da técnica:

FIGURA 4 - Cifragem e Decifragem com duas chaves diferentes (Adaptado de SCHNEIER,

1996, p.4).

a) Algoritmo RSA (Rivest Shamir Adleman)

“Sabe-se que o algoritmo DH não é um algoritmo final, ele soluciona o

problema da distribuição das chaves, mas ainda deixa falhas quando se trata

da criptografia propriamente dita”, BURNETT e PAINE (2002, p. 79).

Após a publicação das descobertas de Diffie e Hellman sobre os

algoritmos assimétricos, diversos pesquisadores desenvolveram vários outros

algoritmos de chave pública.

Este ponto do trabalho trata do algoritmo RSA (Rivest Shamir Adleman),

“que é o mais comumente utilizado para solucionar o problema de distribuição

de chaves e criptografia nos dias de hoje”, segundo BURNETT e PAINE (2002,

p. 79).

O algoritmo RSA foi desenvolvido por Ron Rivest e mais dois colegas –

Adi Shamir e Len Adleman –, todos do MIT – Massachusetts Institute of

Technology – eles estavam intrigados com a idéia de Diffie e Hellman sobre a

distribuição de chaves e criptografia de chave pública e decidiram criar o

algoritmo final. Conforme BURNETT e PAINE (2002, p. 79), “o trio desenvolveu

um algoritmo que de fato poderia criptografar os dados com segurança, este

algoritmo tornou-se conhecido como RSA, as iniciais dos seus criadores, sendo

publicado em 1978”. O sistema consiste basicamente em gerar duas chaves,

uma pública e outra privada, sendo que “a chave pública normalmente é

utilizada para cifrar a mensagem, e a privada é geralmente utilizada para

Page 32: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

31

decifrar”, cita ABREU (2004). Segundo MARGI (2000, p. 44), “o algoritmo

apóia-se na dificuldade de fatorar números primos extensos para determinar as

chaves pública e privada”.

Conforme BURNETT e PAINE (2002, p. 83), “o tamanho da chave mais

comumente utilizada no algoritmo RSA é de 1024 bits”, sendo dois números

primos de 512 bits cada, explica ABREU (2004), “em algumas aplicações,

como por exemplo, aplicações bancárias, que exigem o máximo de segurança

a chave chega a ser de 2048 bits”, acrescenta.

Para gerar as chaves utilizadas para cifrar e decifrar as mensagens é

necessário realizar as seguintes tarefas:

• Escolhem-se dois números primo grandes (p e q), normalmente com

mais de 100 dígitos;

• Gera-se um número n através do produto dos números escolhidos

anteriormente (n = p * q);

• Gera-se um número z através do produto de z = (p-1)*(q-1);

• Escolhe-se um número e que seja primo relativo à z;

• Calcula-se d, tal que (e * d) mod z = 1, ou d = 1/e mod z;

Assim, obtêm-se as chaves públicas e privadas, sendo {e,n} a chave

pública e {d,m} a chave privada.

Então, após gerar as chaves pública e privada, pode-se realizar o

processo de cifragem e decifragem. Para cifrar a mensagem é necessário

empregar a mensagem original (M) sobre a seguinte função obtendo a

mensagem cifrada (C):

C = M e mod n

E, para obter novamente o texto original tendo o texto cifrado, faz-se a

seguinte operação:

D = C d mod n

Page 33: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

32

“Para que as chaves sejam realmente seguras, recomenda-se que os

valores de p e q sejam mantidos em segredo ou até mesmo destruídos”, cita

Abreu (2004).

2.3 Assinatura Digital

De uma forma básica, pode-se obter uma assinatura digital da seguinte

maneira:

Caso Alice deseja enviar uma mensagem pra Bob, e garantir que foi ela

mesma que enviou. Ela pode criptografar a mensagem com sua chave privada

e enviar a mensagem cifrada para Bob. Bob então decifra esta mensagem com

a chave pública de Alice. Se a mensagem for decifrada corretamente, então, é

garantida que foi realmente Alice quem enviou a mensagem.

Neste caso, pode não haver a garantia de que somente Bob vai ler a

mensagem, pois se os dados foram cifrados com a chave privada de Alice,

qualquer pessoa que tiver a chave pública pode decifrá-la, mas existe a

garantia de que foi realmente Alice quem enviou a mensagem.

A utilização da assinatura digital dessa forma “serve para assegurar o

conteúdo de uma mensagem e quem a enviou” (BURNETT e PAINE 2002, p.

117). Assim, conclui-se que qualquer informação que seja cifrada com uma

chave privada, somente pode ser decifrada com a respectiva chave pública,

garantindo que foi realmente a pessoa quem a enviou.

Existe outra forma de gerar uma assinatura digital, que consiste,

basicamente, na criação de um código de tamanho fixo resultante de uma

mensagem original, de modo que a pessoa ou entidade que receber uma

mensagem contendo este código possa verificar se o remetente é mesmo

quem diz ser e identificar se a mensagem possa ter sido modificada.

As assinaturas digitais fazem o uso de chaves públicas e privadas,

utilizadas por técnicas de criptografia assimétrica e utilizam conceitos

conhecidos como função hashing, que consistem na obtenção de um valor de

tamanho fixo (Assinatura) chamado de valor hash ou resumo da mensagem,

Page 34: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

33

decorrente da aplicação da mensagem a ser enviada juntamente com a chave

a um algoritmo hashing, que irá gerar a assinatura da mensagem.

O funcionamento da assinatura digital ocorre da seguinte forma: é

necessário que o usuário tenha um documento eletrônico e a chave pública do

destinatário (um usuário pode ser tanto uma pessoa quanto uma instituição

qualquer). Com a chave pública, a mensagem original e o algoritmo de função

hash, gera-se a assinatura digital da mensagem. Através de programas

apropriados, o documento original é então criptografado de acordo com a

chave pública.

O receptor usa então sua chave privada correspondente (que é

exclusiva dele) para decodificar o arquivo. Ao decodificar o arquivo ele

emprega novamente a função hash e gerar a assinatura digital da mensagem

recebida. Assim, o receptor confere o valor obtido com o valor da assinatura

digital original enviada junto com a mensagem. Caso tenha ocorrido alguma

alteração ou visualização na transmissão da mensagem, o valor hash calculado

pelo receptor vai ser completamente diferente do enviado junto à mensagem

calculado pelo remetente, invalidando o arquivo recebido, pois, se algo for

alterado, fica evidente, levando em consideração que a assinatura gerada da

mensagem recebida é completamente diferente da enviada junto com a

mensagem.

2.3.1 Função Hash

Segundo MARGI (2000, p. 45), pode-se definir uma função hash da

seguinte maneira:

Uma função hash é um mecanismo utilizado para verificar a integridade de uma mensagem. São funções unidirecionais, possuem saídas de tamanho fixo independente do valor de entrada e devem ser resistentes a colisão, ou seja, mais de uma entrada pode gerar a mesma saída, mas dada uma saída deve ser impossível encontrar duas entradas que sejam capazes de gerá-las.

Page 35: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

34

A função hash é a operação aplicada ao documento enviado que permite

obter um resumo da mensagem dos dados originais, conforme tratado acima.

Esse resumo é de tamanho fixo, independente do tamanho da entrada. Uma

alteração nos dados de origem gera um valor de hash diferente e uma

modificação no hash dá lugar a um documento diferente do original.

Para obter-se um código hash ou um resumo de mensagem, é

necessário o emprego de um algoritmo de hash. Existem diversas

implementações de hash atualmente, que resultam em diferentes tamanhos e

formas de resumo de mensagem, sendo duas dessas implementações

apresentadas a seguir:

a) Algoritmo MD5

O algoritmo MD5 foi criado por Rom Rivest, estando esse algoritmo na

sua 5ª geração. BURNETT e PAINE (2002, p. 126), abordam alguns pontos

importantes sobre o mesmo, como se pode observar.

O MD5 foi o mais bem sucedido, mostrou-se muito mais forte e rápido do que o MD2, tornando-se o algoritmo dominante e ainda é comumente utilizado. Até 2002, o algoritmo MD5 ainda não havia sido quebrado e ninguém encontrou colisões; em vez disso, algumas partes internas do algoritmo são vulneráveis. Se faltasse um ou dois componentes no algoritmo, ele seria quebrado. Mas, visto que esses componentes estão ai, o algoritmo sobrevive.

O MD5 gera um resumo de mensagem de 16 bytes, como o MD2, mas,

com o passar dos anos, pesquisas mostraram que ele tinha diversas fraquezas

em potenciais.

b) Algoritmo SHA – 1 (Secure Hash Algorithm)

“O algoritmo SHA-1 é muito parecido com o MD5, porém suas parte

internas são mais fortes e ele produz um resumo mais longo, de 160 bits

comparado aos 128 bits do MD5”, cita BURNETT e PAINE (2002, p. 126).

Page 36: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

35

Segundo SCHNEIER (1996, p. 442), “o algoritmo SHA-1 recebe uma

mensagem com tamanho máximo menor que 264 bits e gera um resumo de

mensagem de 160 bits, trabalhando sobre blocos de mensagem de 512 bits”.

Já foi desenvolvido quatro variantes do SHA-1, elas diferenciam-se

quanto a capacidades de saída, tendo seus valores aumentados, e são

conhecidas como: SHA-224, SHA-256, SHA-384, e SHA-512, muitas vezes

também chamadas de SHA-2.

Como o SHA-1 trabalha sobre blocos de mensagem de 512 bits,

primeiramente é necessário ajustar o tamanho dos bits da mensagem, sendo

necessário que o tamanho da mensagem seja múltiplo de 512. Após ajustar a

mensagem acrescenta-se a ela um bloco de 64 bits contendo o tamanho

original da mensagem. São inicializadas as cinco variáveis de 32 bits

responsáveis por armazenar os resultados intermediários e finais denominadas

de A, B, C, D e E.

Então, é executado o laço principal do algoritmo, que segundo

SCHNEIER (1996, p. 443) “consiste em um laço com quatro ciclos de 20

operações em cada”.

Após o processamento de todos os blocos de informação, o algoritmo irá

gerar, ao final da ultima operação, o resumo da mensagem contendo 160 bits.

O SHA-1 já sobreviveu a análises criptográficas e é altamente

recomendado pela comunidade de criptografia. Porém, em 13 de fevereiro de

2005, três pesquisadores chineses, publicaram o artigo Collision Search

Attacks on SHA1 (Ataques da busca de colisão em SHA1) afirmando que

haviam quebrado o algoritmo.

A divulgação da quebra do algoritmo foi feita por um dos maiores nomes

da criptografia atual, Bruce Schneier, que publicou um artigo em seu site, no

dia 15 de fevereiro de 2005, divulgando a pesquisa dos chineses Xiaoyun

Wang, Yiqun Lisa Yin e Hongbo Yu da universidade chinesa Shandong.

Segundo SCHNEIER (2005) “o ataque utilizado para quebrar o algoritmo foi

baseado em ataques utilizados anteriormente contra SHA-0 e ao próprio SHA-

1”.

Page 37: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

36

2.4 Esteganografia

A Esteganografia deriva do grego, onde estegano é “esconder” ou

“mascarar” e grafia, “escrita”. Logo, esteganografia é a arte da escrita para

comunicações ocultas.

Segundo SCHNEIER (1996, p. 9), “a esteganografia tem como finalidade

esconder mensagens secretas em outras mensagens, de forma que a

mensagem secreta esteja bem escondida que o invasor não consiga identificá-

la”.

É importante que seja bem definida a diferença entre esteganografia e

criptografia: enquanto a esteganografia tem o objetivo de esconder a existência

da informação, a criptografia oculta o significado da informação, tornando-a

ilegível. Algumas vezes são empregadas conjuntamente.

A esteganografia é uma ciência que vem sendo estudada e utilizada

pelos povos há muitos anos. Como exemplo de técnicas desenvolvidas, pode-

se citar a utilização de tintas invisíveis, micro pontos, arranjos de caracteres,

assinaturas digitais, comunicação por espalhamento de espectro, entre outros.

Uma das aplicações que utilizam as técnicas de esteganografia é para a

implementação de mecanismos de verificação de direitos autorais em imagens

e mídias de áudio e vídeo.

Conforme cita BUSTAMANTE (2006), “a esteganografia está presente

em nossas vidas mais do que se pode imaginar, se pegar qualquer cédula

monetária ou documento de identificação, pode-se encontrar diversas

evidencias das técnicas”.

Segundo STALLINGS (2005, p. 53), “A esteganografia tem alguns

problemas quando comparada com a criptografia, pois requer muito

processamento para esconder pequenos pedaços de informações”. Mas a

esteganografia também tem algumas vantagens, como por exemplo:

Se uma pessoa tem algo a perder caso sua comunicação secreta seja descoberta, ela pode empregar técnicas de esteganografia, pois a criptografia rotula o tráfego das informações importantes, podendo,

Page 38: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

37

assim, identificar o remetente ou o receptor como alguém que tem algo a esconder (STALLINGS, 2005, p. 53).

Para poder garantir ainda mais a segurança das informações

transmitidas, podemos empregar técnicas de esteganografia juntamente com

técnicas de criptografia. Assim, pode-se criptografar uma mensagem que deve

ser secreta e empregá-la a técnicas de esteganografia que escondam esta

mensagem em uma imagem, dificultando o trabalho de quem deseja atacar

esta informação.

2.4.1 Imagens Digitais

Uma imagem digital de padrão Bitmap consiste, de uma forma básica,

em um conjunto de pontos dispostos de forma matricial contendo números que

representam as cores de cada posição da matriz. Esta matriz é chamada de

bitmap ou “Mapa de Bits”, um mapa de bits são dados de blocos de pixels

(Picture Elements) organizados de determinada maneira, sendo os pixels cada

posição / ponto dessa matriz.

O Mapa de bits possui um determinado número de linhas (A) e um

determinado Número de colunas (B) tendo o tamanho total da imagem o

produdo de A e B.

A aplicação de técnicas de esteganografia em imagens digitais foi uma

grande evolução para e, atualmente, tem grande utilização. Como exemplo da

utilização desta técnica, pode-se citar a LSB (Least Significant Bit), algoritmos

de transformações e algoritmos de filtragem e mascaramento. - Cada uma

delas trabalhando com determinadas informações da imagem.

Page 39: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

38

2.4.2 Least Significant Bit - LSB

Dentre as diversas técnicas de aplicação da esteganografia, a forma

mais utilizada atualmente, e desenvolvida futuramente neste trabalho, é a

técnica denominada de LSB (least Significant Bit).

Conforme JASCONE (2003, p. 38), “a técnica consiste em utilizar o bit

menos significativo de cada pixel (ou de cada cor) da imagem, para ocultar a

mensagem”. Para a utilização desta técnica é necessário imagens que

possuem qualidade de 24 bits, pois são imagens grandes que utilizam três

bytes para a representação de cada pixel.

Pode-se exemplificar a técnica da seguinte maneira segundo JASCONE

(2003, p. 39):

“Para esconder uma informação em uma imagem de 24 bits, onde cada pixel possui três bytes, utilizando o método de inserção do último bit significativo, podem-se armazenar três bits em cada pixel, utilizando um bit de cada byte desse pixel, ou seja, cada byte da informação a ser escondida irá ocupar oito bytes da imagem. Por exemplo, em uma imagem com resolução de 1024 x 768 (786.432 pixel), que possui um tamanho real de 2.359.296 Kb (cada pixel ocupa três bytes), pode-se armazenar uma informação de 294.912 Kb (oito bytes da imagem para armazenar um byte do texto”).

Com a imagem possuindo três bytes por pixel, cada um deles representa

a quantidade de vermelho, azul e verde de cada pixel, contendo oito bits em

cada um desses bytes, levando em consideração que cada um desses bits

pode assumir valores de 0 a 255, cada pixel terá 256 valores para representar

a quantidade da associação de cada uma das três cores que tem um pixel.

Se apenas o bit menos significativo de cada byte for alterado, o valor

desse byte irá variar somente em uma unidade. Assim sendo, essa alteração

fica praticamente impossível de ser identificada a olho nu.

Por exemplo, usa-se uma imagem qualquer e seleciona-se uma parte

dela. Aplicando zoom sobre a parte selecionada, pode-se ver definida a

posição de cada pixel. Selecionando um pixel qualquer da imagem, pode-se

observar que os valores referentes à quantidade de vermelho, verde e azul,

valores que juntos definem a cor do pixel, são respectivamente 148, 148 e 148.

Page 40: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

39

Então neste pixel poderemos esconder uma informação de três bits, um em

cada bit menos significativo dos valores do RGB - Red, Green e Blue -,

conforme ilustra a Figura 5.

FIGURA 5 - Analise do pixel que pode ser alterado

Continuando o exemplo, se a informação a ser escondida na mensagem

for o número 7, que é representado de forma binária como 111, pode-se

esteganografá-la em um pixel. Assim, alteram-se os bits menos significativos

do pixel, que originalmente eram 000, para 111. Obtêm-se os valores do RGB

variando em uma unidade, passando de 148 para 149 em cada um dos

valores. Na Figura 6, observa-se que a tonalidade do pixel alterado é

praticamente a mesma, não se notando a alteração a olho nu.

Page 41: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

40

FIGURA 6 - Processo de alteração do pixel escolhido anteriormente

Para que seja possível observar a aplicação desta técnica e verificar o

impacto sofrido na imagem após o processo, foi utilizada uma imagem no

formato Bitmap com dimensões de 420 x 300 pixel. Foi selecionada uma parte

qualquer da imagem que caiba a informação a ser escondida, como se pode

observar na Figura 7.

Page 42: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

41

FIGURA 7 - Imagem para testar a Técnica LSB

Seguindo, será esteganografada a mensagem “testando a tecnica lsb”.

Para realizar esse processo é necessário obter os valores referentes a cada

caractere da informação, sendo eles apresentadas no Quatro 1.

QUADRO 1 - Representação da informação.

Para esteganografar essa mensagem é necessário a utilização de 132

bits ou 44 pixels da área selecionada, lembrando que serão utilizados somente

os bits menos significativos, ou seja, os últimos bits de cada byte da imagem.

Page 43: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

42

A região selecionada da imagem original tem os valores do RGB

referentes a cada pixel representado de forma matricial no Tabela 1, sendo a

parte azul os campos que serão utilizados para realizar a operação.

TABELA 1 - Mapa de bits dos valores originais do RGB.

É necessário que estes valores sejam convertidos para serem

representados de forma binária e assim, possa-se empregar a técnica nos bits

menos significativos. O processo de conversão dos bits completo pode ser

observado no ANEXO A, que apresenta todos os passos necessários para

executar essa tarefa.

Após ser empregada a técnica na região selecionada da imagem,

obtém-se a matriz da região alterada demonstrada no Tabela 2.

TABELA 2 - Mapa de bits dos valores Alterados do RGB.

Assim, pode-se verificar visualmente o impacto que sofreu a imagem

após ter sido empregada a técnica, lembrando que a esteganografia não tem o

objetivo de modificar a mensagem e sim escondê-la. Conseqüentemente, a

pessoa que receber a mensagem só terá de saber em qual área da imagem foi

escondida à informação para obtê-la.

Page 44: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

43

Observa-se na Figura 8, o impacto sofrido na imagem, sendo a primeira

imagem da figura, a região selecionada original, e a segunda imagem, a região

na qual sofreu o acréscimo da informação.

FIGURA 8 - Impacto sofrido na imagem após empregar a técnica.

Assim, pode-se observar que as duas imagens são praticamente iguais,

não se percebendo alterações. Lembrando que estamos com a imagem em

zoom trabalhando sobre uma área selecionada de 6 X 8 pixels da imagem que

tem 420 X 300 pixels de dimensões totais.

Então, conclui-se que a alteração é ainda mais imperceptível

observando a imagem como um todo, sem grandes chances de ser percebida,

e isso se dá pelo fato de que, com a utilização desta técnica, a imagem só terá

seus valores de RGB - referentes a cada pixel -, alterados na pior das

hipóteses em uma unidade para cima ou para baixo. Observa-se que, se o

valor do bit menos significativo for igual ao da mensagem o valor não será

alterado.

Foi escolhido imagens no formato bitmap para implementação desta

técnica por ser a maneira mais facil de lidar com imagens, pois não precisa de

paleta de cores para trabalhar com os pixels, e cada pixel é representado por

três bits, com os valores de RGB. Além disso, não existe qualquer compressão

de dados e o número de cores possiveis, mais de 16 milhões, é

suficientemente grande para diluir as pequenas diferenças introduzidas pela

mensagem oculta.

Mas deve-se levar em conta que uma informação escondida com a

utilização da esteganografia LSB pode ser facilmente destruída, conforme cita

ROCHA (2003, apud JASCONE, 2003, p. 38), “se uma mensagem for

Page 45: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

44

escondida em uma imagem no formato bitmap, e esta for convertida para um

formato JPEG, a informação é perdida”. Isso acontece em decorrência da

utilização de algoritmos de compressão de dados com perdas, segundo

JASCONE (2003, p. 38), “esses algoritmos selecionam apenas as partes mais

significativas do objeto, ou seja, os bits menos significativos têm uma chance

bem menor de serem selecionados”, perdendo a informação contida neles.

É utilizado imagens no formato bitmap para execução desta técnica por

serem imagens mais fácil de lidar, pois não precisa de paleta de cores para a

verificação dos valores das cores. Além disso, não existe qualquer compressão

dos dados e os números de cores possíveis (mais de 16 milhões) é

suficientemente grande para diluir as pequenas diferenças introduzidas pela

mensagem que esta oculta.

Page 46: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

45

3. ESTUDO DE CASOS

Neste capitulo, são apresentados alguns softwares que empregam

técnicas de criptografia, esteganografia e assinaturas digitais.

Atualmente, no meio digital, existem diversos softwares que empregam

técnicas de segurança de sistemas, comerciais ou de livre distribuição. Porém,

nenhum com a mesma aplicação do protótipo proposto neste Trabalho de

Conclusão de Curso.

Foram analisados softwares que empregam a criptografia,

esteganografia e assinaturas digitais de forma individual, ou seja, cada um dos

softwares emprega somente uma das três técnicas.

3.1 StegoBMP

O StegoBMP é um software didático que usa métodos de esteganografia

para ocultar mensagens em uma imagem no formato BMP 24 bits e realiza

testes para verificar a detectação ou desconfiança da utilização da técnica LSB

na imagem.

É um software freeware distribuído pela licença Creative Commons, que

pode ser visualizada no site apresentado nas referências bibliográficas. O

software pode ser copiado, exibido, distribuído e executado, desde que sejam

seguidas as condições apresentadas nesta licença.

Ele emprega métodos classificados como esteganografia aberta, pelo

fato dos dados não serem criptografados antes de serem ocultos. Então não é

recomendada a utilização do mesmo comercialmente, ficando a caráter do

usuário a utilização ou não.

Tem como funcionalidades a ocultação e busca de informações em

imagens BMP 24 bits e a realização de teste para tentar detectar se a imagem

em questão pode conter informações ocultas com a técnica LSB.

Page 47: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

46

Para isso, o software faz diversas varreduras na imagem buscando a

presença de dados fora do padrão geral, utiliza algoritmos estatísticos que

analisam os valores das cores da imagem, apresentando os resultados na

forma de ruídos em um gráfico.

A Figura 9 apresenta a utilização de algumas das funcionalidades do

software. O relatório apresentado do lado esquerdo superior da figura

representa a varredura efetuada na imagem para buscar a informação, a

primeira imagem da “Google” apresentada na figura é a imagem com a

informação oculta, a segunda imagem passou pela aplicação do algoritmo de

detecção denominado TESTE VISUAL e o gráfico foi empregado no algoritmo

denominado TESTE LSB RANDÔMICO.

FIGURA 9 - Software StegoBMP.

O executável do StegoBMP é disponibilizado para download e pode ser

obtido no site que esta no referencial teórico.

Page 48: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

47

3.2 DAMN Hash Calculator 1.5.1

O DAMN Hash Calculator é um software com licença freeware para uso

não comercial, foi desenvolvido na linguagem C++ por Ivanopulo / DAMN em

Dezembro de 2000.

Tem como funcionalidade a aplicação de diversos algoritmos de

assinatura digital para calculo de valores hash de textos ou arquivos.

Emprega os seguintes algoritmos de assinatura digital: SHA de 160, 256,

384 e 512 bits, HAVAL de 128, 160, 192, 224 e 256 bits com 3, 4 ou 5 passos,

RIPEMD-160, MD5, CRC-32.

A Figura 10 apresenta a interface do software. Inicialmente deve-se

selecionar quais os algoritmos de assinatura digital quer empregar, informar a

mensagem ou o arquivo que deseja gerar as assinaturas e executar através do

botão Calculate. Tendo, como resultado, o texto exibido na figura, mostrando

as assinaturas digitais, selecionadas anteriormente, da mensagem informada.

FIGURA 10 - Software DAMN Hash Calculator.

Page 49: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

48

O executável do DAMN Hash Calculator é de autoria de DAMN

Ivanolupo e é disponibilizado para download no site que encontra-se no

referencial teórico.

3.3 Criptografia RSA

Foram analisados dois softwares que implementam o algoritmo RSA, os

dois foram feitos em Java Script. As duas são um modelo simplificado da

implementação e utilização do algoritmo RSA, utilizam expoentes pequenos,

para não tornar o script lento e são ferramentas didáticas, auxiliares no

entendimento do algoritmo.

A Figura 11 apresenta as telas das duas ferramentas.

Page 50: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

49

FIGURA 11 – Telas de duas ferramentas que utilizam o algoritmo RSA.

A primeira ferramenta (ferramenta 1) apresentada na Figura 11 é

disponibilizada no site http://www.ohdave.com/rsa/. E a segunda ferramenta

(Ferramenta 2) é disponibilizada no site

http://www.numaboa.com/content/view/350/57/1/3/

Page 51: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

50

4. CAMOUFLAGED SECURITY SYSTEM

Nos capítulos anteriores, foram apresentados os principais esquemas de

segurança de sistemas e os principais aspectos necessários para o

desenvolvimento desde Trabalho de Conclusão de Curso. Após analisar estes

mecanismos é, possível especificar o desenvolvimento deste protótipo.

Assim, neste capitulo, serão apresentados os principais conceitos,

requisitos, dificuldades e passos necessários para implementação deste

Trabalho de Conclusão de Curso, cuja implementação foi chamada de

Camouflaged Security System.

4.1 Especificação e requisitos

O protótipo de software desenvolvido neste Trabalho de Conclusão de

Curso utiliza técnicas de criptografia, assinaturas digitais e esteganografia em

conjunto. A criptografia é feita através do algoritmo de chave pública RSA, a

assinatura digital, por sua vez, utiliza o algoritmo de hash SHA-1 e, por fim, a

esteganografia é feita através do método LSB ou inserção no bit menos

significativo.

Foi escolhido o algoritmo RSA para realizar a implementação da

criptografia porque é o mais comumente utilizado, conforme citado na 2.2.4, ele

soluciona o problema de distribuição, assim, podendo quaisquer pessoas

realizar a troca de mensagens de forma segura facilmente.

O algoritmo SHA-1 foi escolhido para realizar os processos necessários

para gerar as assinaturas digitais por ser altamente recomendado pela

comunidade de criptografia e já ter sobrevivido a diversas analises

criptografias.

E o algoritmo LSB foi escolhido para realizar a esteganografia da

assinatura digital em imagens bitmaps por ser a maneira mais facil de lidar com

imagens para a implementação da técnica, conforme citado na sessão 2.4.2.

Pois além de se pode trabalhar diretamente com valores de RGB da imagem

Page 52: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

51

para ocultar as informações, o número de cores possiveis, mais de 16 milhões,

é suficientemente grande para diluir as pequenas alterações que serão feitas

após ocultar as informações.

O protótipo de software foi desenvolvido na linguagem de programação

delphi 7, e tem suas especificações definidas com a utilização de diagrama de

caso de uso e diagramas de atividades. Contempla dois tipos de usuários, o

emissor e o receptor. O emissor tem como dados de entrada uma chave de

criptografia, a mensagem a ser enviada e uma imagem no formato bitmap, e

terá como saída uma imagem com a assinatura digital da mensagem oculta

salva no formato bmp e uma mensagem texto cifrada salva no formato txt.

O receptor, por sua vez, tem o arquivo texto com a mensagem

criptografada e a imagem com a assinatura digital da mensagem original

oculta, e terá, como saída, a mensagem decifrada, a assinatura digital dessa

mensagem e a assinatura digital obtida de dentro da imagem recebida,

podendo assim ter acesso a informação recebida e verificar o status desta.

Deste modo, é possível realizar a troca de informações sigilosas de

forma segura, tendo três diferentes técnicas de segurança de sistemas

empregadas em conjunto, aumentando o nível de segurança, validade da

transmissão e dificultando o trabalho de um atacante. Podendo ao final deste

processo de envio e recebiment de mensagens, o comparar as informações e

verificar a validade da transmissão.

O protótipo possibilita, também, que os dois tipos de usuários possam

gerar chaves criptográficas, salvá-las e carrega-las com a utilização de senhas,

e realize a configuração de seu servidor SMTP para enviar e-mail.

4.1.2 Funcionalidade do Protótipo

Inicialmente, são apresentadas as funcionalidades básicas definidas

para este protótipo de software.

A ferramenta tem como finalidade principal a transmissão e o

recebimento de mensagens que necessitam da segurança extra, levando em

Page 53: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

52

conta a necessidade de garantir os conceitos de autenticidade, integridade,

confiabilidade e não repúdio tratados anteriormente. Para isso, foram

implementadas técnicas de segurança de sistemas, conforme se observa na

Figura 12, que apresenta o módulo emissor do sistema, o qual poderá gerar

mensagens secretas e envia-las com segurança para o seu destinatário.

FIGURA 12 - funcionalidade do processo de envio de mensagem.

Para alcançar o objetivo do projeto, o usuário primeiramente deve gerar

um par de chaves, sendo uma pública e outra privada; para gerar estas chaves,

a ferramenta emprega o algoritmo de chave pública RSA.

Após o usuário informar ou gerar as chaves necessárias para alimentar

os algoritmos, pode realizar as seguintes tarefas:

• O usuário alimenta o sistema com a mensagem original que deseja

enviar;

• O protótipo emprega essa mensagem inicialmente ao algoritmo de

criptografia RSA juntamente com uma das chaves de criptografia,

obtendo, assim, uma mensagem cifrada;,

Page 54: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

53

• Após, o protótipo emprega a mensagem original ao algoritmo de função

hash SHA - 1, gerando a assinatura digital correspondente à mensagem

original.

• Esta assinatura digital é esteganografada em uma imagem com a

utilização da técnica LSB de esteganografia (substituição do bit menos

significativo);

• Assim, ao final desses processos, o sistema terá gerado uma imagem

(.bmp) com uma assinatura digital e uma mensagem (.txt)

aparentemente sem sentido (cifrada);

Tendo essas duas informações, o usuário pode enviá-las com uma

segurança alta ao seu destinatário. Para facilitar a comunicação entre os

usuários, o protótipo prove uma ferramenta em que o usuário possa enviar

estas informações geradas ao seu destinatário.

Assim, foi implementado uma rotina de envio de e-mail por servidor SMTP,

para que o usuário possa, após criptografar e esteganografar os dados, enviar

um e-mail contendo como anexos um arquivo texto com a mensagem cifrada,

uma imagem no formato bmp com a assinatura digital oculta, facilitando e

agilizando o processo de troca de mensagens.

O usuário receptor, ao receber o e-mail, deve baixar os anexos contidos

no e-mail, e alimentar as informações dele no sistema, conforme observa-se na

Figura 13:

Page 55: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

54

FIGURA 13 - Funcionalidade do processo de recebimento de mensagem

Após baixar os anexos recebidos, o usuário informa a devida chave

criptografia ao sistema, informar a mensagem e a imagem que ele recebeu, e

segue os seguintes passos:

• Emprega a mensagem cifrada ao algoritmo de criptografia RSA para

descifrá-la;

• Emprega a mensagem decifrada ao algoritmo de hash SHA-1 para obter

a assinatura digital dessa mensagem;

• Emprega a imagem recebida ao algoritmo LSB de esteganografia, para

obter a assinatura digital original oculta ali;

• E, por fim, comparar as assinaturas, gerando como resultado o status da

troca de mensagem.

Ao final desse processo, o usuário tem uma mensagem legível, e duas

assinaturas digitais, a original, enviada dentro da imagem, e uma nova

assinatura obtida da mensagem decifrada. Se as assinaturas forem iguais é

sinal de que a mensagem está segura e não foi violada durante sua

transmissão.

Page 56: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

55

4.2 Modelagem do Protótipo

Para especificação deste protótipo, foram utilizadas duas técnicas de

modelagem empregadas na UML (Unified Modeling Language), sendo elas os

diagramas de caso de uso e diagramas de atividades.

4.2.1 Caso de Uso

O caso de uso tem como objetivo representar de forma usual os principais

requisitos necessários para implementação do protótipo. É composto por

quatro elementos básicos sendo eles apresentados na Tabela 3.

TABELA 3 - Elementos principais de um Caso de Uso

Foram implementados nove casos de uso na ferramenta, sendo eles

apresentados na Figura 14.

Page 57: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

56

FIGURA 14 - Diagrama de Caso de Uso da Ferramenta.

Os casos de usos apresentados na Figura 14 realizam as seguintes tarefas:

• Gerar Chaves: tem como objetivo realizar as ações necessárias para

gerar as chaves pública e privada do usuário. O caso de uso tem como

dados de entrada o tamanho da chave que o usuário deseja deseja

gerar e o número de interações nos números primos que devem ser

executados para gerá-las, e tem como resultado dois pares de chaves,

uma pública e outra privada, podendo salvar estas chaves com a

utilização de uma senha para mantê-las mais segura;

• Obter Informação da imagem: realiza as ações necessárias para obter

a informação ocultada na imagem. O usuário alimenta o sistema com a

Page 58: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

57

imagem recebida e tem como resultado a assinatura digital oculta nessa

imagem;

• Comparar Assinatura: compara as duas assinaturas digitais, a que veio

na imagem e a nova assinatura da mensagem decifrada. Este caso de

uso depende dos casos de uso Obter Informação da Imagem e Gerar

Assinatura Digital para estar completo. Após o usuário gerar a

assinatura digital da mensagem decifrada e obter a assinatura digital da

mensagem original oculta na imagem o sistema era realizar uma

comparação entre as duas assinaturas, gerando como resultado um

status da mensagem;

• Decifra Mensagem: responsável por fazer a decifragem da mensagem

recebida. O usuário alimenta o sistema com a mensagem cifrada e a

chave de criptografia correspondente a que foi utilizada para cifrar a

mensagem, e tem como resultado uma mensagem decifrada;

• Criar Mensagem: responsável por entrar com a mensagem a ser

transmitida e a imagem na qual será ocultada a imagem. O usuário

alimenta o sistema com a informação a ser transmitida e com a imagem

na qual será oculta a assinatura digital, podendo assim realizar os

procedimentos para adicionar a devida segurança as informações.

• Cifrar Mensagem: realiza as ações para a cifragem da mensagem

original. Este caso de uso depende do caso de uso Criar Mensagem

para estar completo. Após o usuário criar a mensagem o protótipo ira

empregar a informação a ser transmitida juntamente com a chave de

criptografia neste caso de uso, tendo como resultado uma mensagem

cifrada;

• Gerar Assinatura Digital: gera a assinatura digital da mensagem

criada. Este caso de uso precisa do caso de uso Criar Mensagem ou

Decifrar Mensagem para estar completo. Após o usuário alimentar o

Page 59: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

58

caso de uso com a mensagem a ser enviada ou a mensagem decifrar

recebida o caso de uso irá gerar como saída uma assinatura digital

dessas informações;

• Oculta informação na Imagem: responsável por realizar as ações de

esteganografia da assinatura digital na imagem digital. Este caso de uso

precisa do caso de uso Gerar Assinatura Digital para ficar completo. O

usuário alimenta o caso de uso com a assinatura digital gerada e a

imagem que deseja ocultar essa assinatura e tem como saída uma

imagem com uma assinatura digital esteganografada;

• Enviar Mensagem: Responsável por fazer o envio das informações

geradas pelo protótipo. Após o usuário realizar os casos de uso criar

mensagem, cifrar mensagem, gerar assinatura digital e ocultar

informação na imagem ele poderá enviar os resultados desses processo

por e-mail para o seu destinatário, precisando apenas configurar seu

servidor SMTP e informar o e-mail do destinatário.

4.2.2 Diagrama de Atividades

Os diagramas de atividades têm como objetivo mostrar o mapeamento

do fluxo das ações ou passos realizados em cada caso de uso. É composto por

quatro elementos básicos, sendo eles apresentados no Tabela 4.

Page 60: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

59

TABELA 4 - Elementos principais de um diagrama de atividades.

Os casos de uso realizam as seguintes atividades representadas nos

diagramas de atividades que foram criados. Foi realizado um diagrama de

atividades para cada caso de uso do protótipo, ou seja, o mapeamento das

atividades realizadas para realizar cada caso de uso, sendo eles apresentados

em três imagens cada uma com três diagramas.

Na Figura 14 são apresentados os diagramas de atividade dos casos de

uso Gerar Chaves, Enviar Mensagem e Criar Mensagem.

FIGURA 15 - Diagrama de atividades dos casos de uso Gerar Chaves, Enviar Mensagem e

Criar Mensagem.

Page 61: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

60

Na Figura 15 estão representados os diagramas de atividade dos casos

de uso Gerar Assinatura, cifrar mensagem e Ocultar Informação.

FIGURA 16 - Diagrama de atividades dos casos de uso Gerar Assinatura, Cifrar Mensagem e Ocultar Informação.

E, por fim, na Figura 16 são apresentados os diagramas de atividade

dos casos de uso Obter Informação da Imagem, Decifrar Mensagem e

Comparar Assinaturas.

Page 62: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

61

FIGURA 17 - Diagrama de Atividades dos casos de uso Obter Informação da Imagem, Decifrar Mensagem e Comparar Assinaturas.

4.3 Desenvolvimento

A seguir é apresentado o desenvolvimento e a implementação do

protótipo de software denominado Camouflaged Security System.

Foi implementado em um desktop com processador Intel Core Duo

D925, 2Gb de memória Ram e 180Gb de espaço em disco, sob o sistema

operacional Windows XP Professional. Foi desenvolvido no ambiente de

programação Borland Delphi 7 - que é uma Linguagem de Programação Visual,

tendo como objetivo o desenvolvimento de sistemas pelo método RAD (Rapid

Application Development), que comprovadamente proporciona um

desenvolvimento Win 32 acelerado, gerando muito mais produtividade na

criação de programas.

A elaboração de sistemas utilizando linguagens visuais inicia pela

criação de sua interface, que é a parte visual do aplicativo a qual o usuário irá

interagi. Essas linguagens têm como princípio a utilização de formulários e

Page 63: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

62

componentes para a criação destas interfaces. Posteriormente cria-se a parte

lógica do sistema, desenvolvendo as funcionalidades que o mesmo deverá

executar, propiciando uma excelente agilidade no desenvolvimento, focando o

esforço no desenvolvimento propriamente dito.

4.3.1 Técnicas e Ferramentas Utilizadas

A Criptografia é responsável por cifrar e decifrar as mensagens

transmitidas. Esta funcionalidade foi desenvolvida com o auxilio de componente

de terceiros, chamado TPLockBox - sendo utilizado o algoritmo RSA

implementado neste componente. O TPLockBox é um componente open

source desenvolvido pela empresa Turbo Power. Era distribuído de forma

comercial anteriormente, mas a empresa liberou o componente. Este emprega

diversas técnicas de criptografia e assinaturas digitais de forma profissional,

proporcionando bastante segurança na sua utilização.

O protótipo trabalha com esse componente, definindo no componente a

mensagem a ser cifrada ou decifrada e a chave secreta de criptografia, tendo

como resultado a mensagem cifrada ou decifrada.

As Assinaturas Digitais são responsáveis por gerar um resumo de

mensagem de uma mensagem. Esta funcionalidade foi desenvolvida com a

utilização do componente TPLockBox também, fazendo o uso do algoritmo

SHA-1 implementado no mesmo.

O protótipo interage com esse componente definindo nele, a mensagem

original tendo como resultado, um resumo de mensagem ou assinatura digital

dessa mensagem.

E a Esteganografia é responsável por ocultar e extrair as assinaturas

digitais da imagem. Este módulo do trabalho necessita da utilização de

imagens digitais no formato bitmap e tem como dados de entrada a assinatura

digital da imagem e a imagem, resultando em uma imagem com a assinatura

digital da mensagem oculta ou, a partir apenas da imagem, buscar a assinatura

digital oculta na mesma.

Page 64: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

63

Essa funcionalidade foi implementada em sua totalidade, necessitando

de algoritmos que trabalhem nas tonalidades das cores da imagem através dos

valores referentes ao RGB de cada pixel, buscando e alterando os mesmos,

trabalhem com conversão de valores binário, hexadecimal, decimal e ASC II e

o algoritmo LSB de esteganografia.

A esteganografia é implementada em dois momentos no sistema, uma

para ocultar a assinatura e outra para obter a assinatura.

O protótipo contempla também duas ferramentas auxiliares para o

processo de envio e recebimento das informações: a primeira delas é a

ferramenta Gerar Chaves - responsável por gerar ou carregar as chaves de

criptografia do usuário, além de possibilitar que o mesmo salve as suas chaves

com a utilização de senha, deixando o conteúdo do arquivo seguro.

A segunda ferramenta é a de configuração do sistema. É responsável

por receber os dados do servidor de e-mail do usuário, para poder enviar e-

mails do protótipo, e apresenta dados do computador no qual o sistema está

sendo executado - como versão do Windows, espaço em disco e outras.

E ainda é contemplada uma ferramenta destinada para ajuda ao usuário

na execução do sistema.

4.3.2 Interface Gráfica

A Figura 18 apresenta a tela inicial do sistema. É a partir dessa interface

inicial que o usuário vai interagir com o sistema, podendo escolher as tarefas

que deseja realizar no mesmo.

Page 65: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

64

FIGURA 18 – Interface gráfica da tela principal do sistema.

Pelo menu existente na parte superior da tela, o usuário tem as

seguintes opções de tarefas dentro do sistema:

• Gerar Chaves: ativa a ferramenta auxiliar responsável por gerar as

chaves de criptografia. Pode ser acionada clicando com o mouse sobre

a opção ou pressionando as teclas “alt + g” do teclado;

• Criar Mensagem: ativa o módulo emissor do protótipo. Pode ser

acionada clicando com o mouse sobre a opção ou pressionando as

teclas “alt + c” do teclado;

• Receber mensagem: ativa o módulo receptor do protótipo. Pode ser

acionada clicando com o mouse sobre a opção ou pressionando as

teclas “alt + r” do teclado;

• Configuração do sistema: ativa a ferramenta auxiliar responsável por

realizar a configuração do servidor de e-mail do usuário e apresentar

informações do computador onde o sistema esta sendo executado. Pode

ser acionada clicando com o mouse sobre a opção ou pressionando as

teclas “alt + s” do teclado;

• Help: aciona o menu contendo duas opções: a primeira é a tradicional

“Sobre o sistema”, que apresenta a versão do sistema, o nome do

Page 66: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

65

desenvolvedor e e-mail para contado. A segunda é a “Ajuda”, que

apresenta um conteúdo de ajuda sobre a execução do sistema.

A interface gráfica do sistema foi desenvolvida visando à exemplificação

e demonstração de todos os processos realizados no sistema, não sendo

levada em consideração à facilidade da sua utilização. Para tanto, é necessário

que o usuário acione todos os processos existentes no sistema e o sistema

apresenta os resultados da execução de todos estes processos - como os

dados gerados, o tempo gasto para realizar estes processos, como foi

realizado dentre outros.

Para um melhor entendimento do funcionamento do protótipo de

software são apresentadas, nas sessões que seguem, o funcionamento e as

interfaces gráficas dos dois módulos de usuário e das ferramentas auxiliares

que o mesmo contempla, mostrando todos os passos realizados pelo protótipo

e pelo usuário para a configuração do sistema, envio e recebimento das

informações.

4.3.3 Ferramentas auxiliares

A primeira ferramenta auxiliar implementada no protótipo é a “Gerar

Chaves”. Ela é responsável por gerar um par de chaves criptográficas para o

usuário e ou carregá-las para que o usuário possa ver suas chaves. A Figura

19 apresenta a interface desta ferramenta.

Page 67: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

66

FIGURA 19 – Interface gráfica da tela Gerar Chaves.

Para chegar até esta ferramenta é necessário que o usuário acione o

botão “Gerar Chaves” que se encontra no menu da tela principal ou utiliza as

teclas de atalho “alt + g”. Após acionar esta tarefa, o usuário poderá gerar e/ou

carregar suas chaves de criptografia dentro dessa ferramenta auxiliar.

Para gerar um par de chaves de criptografia é necessário que o usuário

informe o tamanho da chave no campo “Tamanho da Chave”, sendo esse

tamanho em bytes, o número de interações que o laço de execução deve

realizar para selecionar os números primos aleatoriamente, no campo

“Quantidade de teste de interações dos primos”, e por fim acionar o botão

“Gerar Par de Chaves”. Assim, o sistema apresenta, no quadro “Chaves

Obtidas”, os pares de chaves de criptografia geradas, sendo duas chaves

públicas e duas chaves privadas.

O usuário deve então salvar estas chaves. Essa tarefa torna-se

operacional no botão “Salvar Chaves”. O objetivo é permitir que as chaves

possam ser usadas futuramente. Para garantir a privacidade, o usuário pode

utilizar uma senha para encriptar os dados das chaves e, após realizar este

processo, as chaves estão salvas sem formato definido no local desejado pelo

usuário. É valido ressaltar que a segurança das chaves não fica a cargo do

sistema e sim do usuário, que deve mantê-las guardada em um local seguro.

Page 68: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

67

Na Figura 19 é possível ver que tem dois botões “Salvar Chaves”, sendo

um no quadro “Chaves Públicas” e outro no quadro “Chaves Privadas”, tendo o

usuário que salvar as duas chaves para que possa realizar as comunicações

com estas chaves.

O protótipo apresenta como feedback o tempo de processamento gasto

para gerar os pares de chaves. Para isso, é necessário que o usuário clique na

aba “Logs do Processo”, que se encontra no canto superior da tela conforme

pode-se observar na Figura 20.

FIGURA 20 – Logs do processo da tela gerar chaves.

O processo de geração das chaves de criptografia foi implementado com

a utilização de componentes de terceiros - sendo este o TPLockBox, que é o

mesmo componente utilizado para realizar a criptografia do sistemas.

Para carregar chaves de criptografia na ferramenta o usuário deve

acionar os botões “Carregar chaves”, existentes nos quadros “Chaves públicas”

e “Chaves Privadas”, assim ele poderá visualizar as chaves que ele já tem e

salvá-las com outras senhas.

Page 69: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

68

A segunda ferramenta auxiliar implementada no protótipo é a

“Configuração do Sistema”. Essa é responsável por carregar no sistema os

dados de configuração do servidor SMTP do usuário, dados estes necessários

para realizar o envio por e-mail das informações; além disso, essa ferramenta

apresenta dados do computador que o sistema esta executando e possibilita a

configuração das cores do sistema.

A Figura 21 apresenta a tela de configuração do servidor SMTP

existente no protótipo. Ela se encontra na interface de ferramenta

“Configuração do Sistema” dentro da aba “Internet”.

FIGURA 21 – Tela de configuração do sistema na aba Internet.

Para configurar o servidor de SMTP do usuário, é necessário que o

mesmo informe o seu nome no campo “Nome”, o seu servidor de SMTP no

campo “Servidor SMTP”, o seu endereço de e-mail no campo “Endereço de

Email”, o seu usuário de autenticação do e-mail no campo “Usuário” e a sua

senha de autenticação do e-mail no campo “Senha”, assim, acionando o botão

“Aplicar” para que estes dados sejam salvos.

Uma vez que o usuário informe estes dados, os mesmos serão salvos

em arquivos textos que estarão dentro da pasta “..../Security System/Dados”

Page 70: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

69

que é disponibilizada juntamente com o software, não havendo a necessidade

de informá-los a cada vez que for enviar mensagens.

A ferramenta de envio tem como restrição a necessidade que o servidor

de e-mail de suporte o envio de mensagens por SMTP. Foram testados os

servidores de e-mail pagos Terra, PortoWeb e Via-rs e todos estes funcionaram

corretamente. A título de curiosidade, os servidores de e-mail gratuito Gmail,

Hotmail e pop foram testados e não atenderam às funcionalidades.

A Figura 22 apresenta a outra funcionalidade existente dentro desta

ferramenta. Essa funcionalidade encontra-se dentro da aba “Geral” que esta

dentro da ferramenta “Configurações do sistema”.

FIGURA 22 – Tela de configurações do sistema na aba Geral.

Nesta funcionalidade da ferramenta é apresentada a versão do sistema

operacional no qual o protótipo está sendo executado, a capacidade total do

disco rígido do computador e o espaço livre em disco, e possibilita ao usuário

alterar as cores das janelas do sistema. Para alterar a cor do sistema o usuário

deverá selecionar no campo “Cor das Janelas”, que se encontra na aba

“Geral” da ferramenta, a cor que o mesmo deseja.

Esta funcionalidade da ferramenta é meramente ilustrativa, tendo como

objetivo somente a apresentação das informações do computador no qual o

sistema esta sendo executado.

Page 71: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

70

4.3.4 Módulo Emissor

Conforme citado sessão 4.1, o módulo emissor tem como dados de

entrada uma chave de criptografia, a mensagem a ser enviada e uma imagem

no formato bitmap, e tem como saída uma imagem com a assinatura digital da

mensagem oculta, salva no formato bitmap, e uma mensagem texto cifrada

salva no formato txt.

Para realizar o envio da informação, é necessário que o usuário

inicialmente alimente o sistema com a chave de criptografia no campo “Informe

as chaves”, ativando o botão “Carrega Chaves”, e a informação que deseja

transmitir no campo “Criptografia”, conforme se observa na Figura 23, que

apresenta a primeira tela do módulo emissor - é a tela na qual será informada a

chave de criptografia e a mensagem a ser enviada e realiza o processo de

criptografia da mensagem e geração da assinatura digital da mesma.

FIGURA 23 – Módulo Emissor, carregando as chaves e informando a mensagem.

Page 72: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

71

Ao carregar a chave de criptografia, o sistema habilita o botão “cifrar”,

podendo o usuário, através deste, ativar o processo de cifragem da mensagem.

Ao ativar o processo, o sistema envia ao componente utilizado para realizar a

criptografia a chave de criptografia e a mensagem original, e tem como

resposta do componente uma mensagem cifrada - que é colocada no campo

“mensagem Criptografada” conforme se observa na Figura 24. Destaca-se que

uma vez executada uma função o sistema desabilita o botão que executa essa

função, visando a consistência do sistema para que o usuário não execute

duas vezes o mesmo processo.

FIGURA 24 – Módulo Emissor, cifrando a mensagem.

Após cifrar a mensagem, o sistema libera o botão “Gerar Assinatura” e o

usuário pode ativá-lo executando o processo de geração da assinatura digital.

Ao ativar esse processo, o sistema envia ao componente responsável por gerar

a assinatura digital a mensagem original e tem como resposta um resumo de

mensagem da mensagem original que é colocado no campo “Assinatura Digital

da Mensagem”, conforme se observa na Figura 25.

Page 73: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

72

FIGURA 25 – Módulo Emissor, gerando a assinatura digital da mensagem.

Após gerar a assinatura digital da mensagem, o sistema libera o botão

“Ocultar Assinatura”, e o usuário pode ativá-lo para esteganografar a assinatura

digital na imagem. Ao ativar esse botão, o sistema abre a segunda janela do

módulo emissor, na qual é necessário que o sistema primeiramente transformar

a assinatura gerada, que originalmente está no formato hexadecimal, para o

formato binário. Após, o usuário carrega a imagem bitmap que quer utilizar

para esteganografar a informação, através do botão “Buscar Imagem’ (é

aconselhado que a imagem bitmap tenha no mínimo a resolução de 110 x 110

para ocultar toda a assinatura de forma segura), e o sistema libera o botão

“Esteganografar”, podendo assim, ser ativado para realizar os processos para

ocultar a assinatura na imagem, conforme se observa na Figura 26.

Page 74: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

73

FIGURA 26 – Módulo Emissor, carregando a imagem que vai ser esteganografada.

Para realizar o processo de ocultação da assinatura digital, o protótipo

realiza um laço que vai percorrendo a imagem original a partir do pixel [1,1]

ocultando três bits da assinatura por pixel até ter ocultado toda a assinatura.

Cada vez que o protótipo executa o laço, os valores referentes ao RGB

do pixel encontrados são capturados no formato decimal e transformados para

binário. Então, é alterado o ultimo bit de cada byte do RGB do pixel por um bit

da assinatura digital binária. Assim, antes de sair do laço, os valores alterados

dos bytes de RGB em binário são transformados novamente para decimal e

carregados na imagem novamente.

O tamanho do laço é executado conforme o número de bits da

assinatura digital. No caso, a assinatura tem um tamanho fixo de 320 bits,

sendo esse número obtido após a transformação da assinatura de hexadecimal

para binário. Então o laço executa sempre 107 vezes, para ocultar linearmente

toda a assinatura.

A Figura 27 apresenta a tela de ocultação da mensagem após realizar

todos estes processos. No quadro azul da tela, pode-se visualizar a imagem

Page 75: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

74

original carregada pelo usuário e, no quadro verde, pode-se observar a imagem

após ser ocultada a assinatura digital. Clicando na imagem com assinatura

oculta a mesma aparece em um tamanho maior, para que o usuário possa

perceber o impacto visual sofrido nesta imagem após a ocultação da

assinatura.

FIGURA 27 – Módulo Emissor, esteganografando a assinatura digital na imagem.

É possível visualizar a assinatura digital a ser oculta em dois formatos,

no formato hexadecimal e no formato binário. Para isso, deve-se selecionar

qual o formato deseja ser visualizado nas abas “Assinatura Hexadecimal” e

“Assinatura Binária” situadas na parte superior da tela apresentada na Figura

28. É possível também visualizar todo o processo realizado para ocultação da

assinatura digital na imagem bitmap, para isso deve-se selecionar a aba

“Informações”, conforme é observado na Figura 28.

Page 76: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

75

FIGURA 28 – Módulo Emissor, Logs do processo de ocultação da assinatura na imagem.

Nesta aba, são apresentadas as informações da imagem selecionada e

do processo de ocultação da assinatura digital na imagem. No lado esquerdo

da tela, pode-se visualizar o local onde a imagem original está salva, as

dimensões em pixels da mesma, o seu tamanho total, o total de informações

que pode ser oculta nessa e o tempo de processamento gasto para realizar a

ocultação da assinatura.

No lado direito da tela, é possível visualizar todo o processo de

ocultação da assinatura, sendo apresentando o pixel que o laço passou, os

valores originais e alterados no formato decimal do RGB deste pixel e os

valores originais e alterados do pixel no formato binário.

Ao final do processo de ocultação da assinatura o usuário deve salvar a

imagem em algum local de seu computador. Para tanto, deve acionar o botão

Page 77: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

76

“Salva”, selecionando o local onde deseja salvar a imagem e pode fechar esta

tela, retornando para a primeira tela do módulo.

Nesta primeira tela do módulo o sistema apresenta um feedback dos

processos já realizados - na aba “Segurança”, no campo “Processos já

Realizados” . Para o nível de proteção da informação original, no campo “Nível

de Proteção da Informação”, também é apresentado um feedback do

desempenho da execução na aba “Desempenho” - podendo visualizar o tempo

de processamento gasto para cifrar os dados, o tempo de processamento

gasto para gerar a assinatura digital e os dados da execução do módulo .

Ao retornar para a primeira tela do módulo o botão “Enviar Informação”

vai estar habilitado, podendo assim o usuário enviar a mensagem a seu

destinatário, após clicar neste botão o sistema abre a terceira tela deste

módulo, na qual o usuário deve informar os dados do destinatário da

mensagem. Deve ser informado o nome do destinatário no campo “Nome”, o e-

mail do destinatário no campo “Endereço de E-mail”, o assunto da mensagem

no campo “Assunto” e uma mensagem que ele queira enviar no campo

“Mensagem” - sendo que estas duas últimas não têm o preenchimento

obrigatório.

Os anexos já vêm carregados com a imagem digital e o arquivo texto

gerado - tendo que, após informar os dados do destinatário, acionar o botão

“Enviar” para que a mensagem seja enviada para seu destinatário. A Figura 29

apresenta a terceira tela do Módulo Emissor, responsável por enviar as

informações seguras para o seu destinatário.

Page 78: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

77

FIGURA 29 – Módulo Emissor, enviando a mensagem por email.

Esta tela apresenta como feedback todo o processo de envio na barra

que se encontra na parte inferior da tela. Ali, é mostrado quando o sistema está

se conectando ao servidor, quando se conectou, quando está enviando a

mensagem e se a mensagem foi enviada corretamente. Como citado

anteriormente, esta funcionalidade visa facilitar a transmissão das informações,

não sendo obrigatória a sua execução. Caso o usuário queira, pode usar a

imagem salva e a mensagem texto e enviar como achar melhor para seu

destinatário, não tendo a necessidade de utilizar essa funcionalidade. Mas,

caso queira utilizar, deverá ter configurado previamente o sistema com o seu

servidor SMTP.

4.3.5 Módulo Receptor

Conforme citado sessão 4.1, o módulo receptor tem como dados de

entrada uma chave de criptografia, a mensagem cifrada e uma imagem no

formato bitmap com a assinatura digital dessa mensagem original, e tem como

saída uma mensagem decifrada, a assinatura digital dessa mensagem

Page 79: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

78

decifrada e a assinatura digital obtida da imagem, podendo assim comparar os

dados e verificar o status da mensagem e da transmissão.

Para realizar o processo de recebimentos das informações é necessário

que o usuário inicialmente alimente o sistema com a chave de criptografia no

campo “Chaves”, informando a senha do arquivo, caso necessário, no campo

“Senha de arquivo” e ativando o botão “Carregar Chaves” conforme se observa

na Figura 30.

FIGURA 30 – Módulo Receptor, carregando as chaves no sistema.

Após isso, o usuário deve informar a mensagem texto recebida no

campo “Informe a mensagem a ser decifrada”. Ao final desse processo o

usuário pode ativar o botão “Decifrar” obtendo a mensagem decifrada no

campo ”Mensagem Decifrada”, a Figura 31 mostra esse processo realizado.

Page 80: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

79

FIGURA 31 – Módulo Receptor, decifrando a mensagem recebida.

Após decifrar a mensagem, é necessário que o usuário acione o

processo para gerar a assinatura digital desta mensagem decifrada; para isso,

o usuário deve acionar o botão “Assinatura” tendo como resultado a assinatura

digital da mensagem decifrada no campo “Assinatura da Mensagem Decifrada”

conforme observa-se na Figura 32.

Page 81: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

80

FIGURA 32 – Módulo Receptor, gerando assinatura digital da mensagem decifrada.

Continuando, após decifrar a mensagem e gerar a assinatura digital da

mesma, o usuário deve realizar o processo para buscar a informação que veio

oculta dentro da imagem recebida. Para isso, o usuário deve acionar o botão

“Busca Imagem”, selecionando o local onde esta salva a imagem recebia e

carregando a mesma no sistema. A Figura 33 mostra o processo após realizar

a busca da imagem.

Page 82: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

81

FIGURA 33 – Módulo Receptor, carregando a imagem recebida.

Depois de carregar a imagem, o usuário deve acionar o botão “Buscar

Informação” – obtendo a assinatura digital que se encontrava esteganografada

na imagem bitmap recebida no campo “Assinatura Obtida da Imagem”

conforme se observa na Figura 34.

Page 83: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

82

FIGURA 34 – Módulo Receptor, buscando a assinatura digital oculta na imagem.

Para realizar o processo de busca da informação o sistema realiza um

conjunto de processos parecidos com os mencionados na sessão anterior.

O sistema realiza um laço de repetição que busca, pixel a pixel, os

valores referentes ao RGB de cada um deles, convertendo-os para o formato

binário e analisando o bit menos significativo. Ao final deste processo o sistema

tem uma lista de valores binários, estes valores são divididos em conjuntos de

8 números (8 bits = 1 byte) e convertidos para o formato hexadecimal, obtendo

assim, a assinatura digital que estava na imagem.

Depois de processar todos os dados recebidos o usuário pode verificar o

status da mensagem e da transmissão das informações. Para isso, o usuário

deve acionar o botão “Verificar Mensagem” obtendo o status da informação na

aba “Status da Informação”.

Se qualquer uma das informações transmitidas for alterada durante a

transmissão o sistema apresenta uma mensagem de erro acusando tal

situação. Se a informação foi corrompida é apresentada a mensagem

Page 84: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

83

“Assinaturas NÃO conferem, as informações foram CORROMPIDAS durante a

transmissão” conforme observa-se na Figura 35.

FIGURA 35 – Módulo Receptor, mensagem apresentada se as informações forem corrompidas.

Se a informação foi transmitida em segurança e está integra, o sistema

apresenta a mensagem “Assinaturas digitais CONFEREM, mensagem esta

segura” conforme se observa na Figura 36 - obtendo, ao final destes

processos, uma mensagem decifrada, a assinatura digital desta mensagem, a

assinatura digital da mensagem original obtida de entro da imagem recebida e

o status da mensagem.

Page 85: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

84

FIGURA 36 – Módulo Receptor, mensagem apresentada se as informações estiverem corretas.

O sistema apresenta feedback de todos os processos realizados. Na aba

“Logs do processo da mensagem” é apresentado o tempo de processamento

gasto para decifrar a mensagem e gerar a assinatura digital desta mensagem

decifrada e, na aba, “Logs do processo da imagem” é apresentado o diretório

no qual está salva a imagem, as dimensões desta imagem, o tamanho total de

pixels, total de informações que pode ser oculta, o tempo de processamento

gasto para realizar os processos necessários para buscar a informação da

imagem e todos os pixels que tem informação oculta no formato binário, a

Figura 37 apresenta as telas dos feedbacks apresentados pelo sistema.

Page 86: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

85

FIGURA 37 – Módulo Receptor, logs do processo de recebimento de mensagem.

Assim, após executar todos estes processos, o usuário terá acesso à

mensagem secreta transmitida pelo emissor, com a garantia de que somente

as pessoas permitidas tiveram acesso a esta mensagem, e que a mesma foi

transmitida de forma segura.

Page 87: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

86

5. CONSIDERAÇÔES FINAIS

Para o levantamento teórico do presente trabalho, foram estudadas a

criptografia, através do algoritmo de chave pública RSA, as assinaturas digitais,

através do algoritmo SHA – 1 e a esteganografia, através do método LSB ou

inserção no bit menos significativo.

Através de tais estudos, foi observado que apenas com a utilização da

criptografia de chave pública já é possível garantir um alto nível de segurança,

pois esta soluciona o problema de distribuição de chaves, facilitando a

comunicação entre quaisquer pessoas, e, de uma forma básica, garantindo a

identidade dos envolvidos.

Ademias, destaca-se que, com a utilização de assinaturas digitais, é

possível garantir a integridade da mensagem aumentando ainda mais a

eficácia do sistema. E que a esteganografia - que é uma técnica que se

encontra em evolução e tem como vantagem a não rotulação da transmissão

de informações importantes - pode complementar o sistema agregando mais

segurança ao mesmo sem perder desempenho de processamento.

Este Trabalho de Conclusão de curso teve seus objetivos alcançados,

sendo realizado, alem dos estudos prévios necessários, a modelagem e

implementação do protótipo.

O protótipo desenvolvido permite que quaisquer pessoas troquem

mensagens secretas de maneira segura e confiável, pois com a utilização

destas três técnicas em conjunto pode-se fornecer um nível de segurança

ainda mais elevado, garantindo, além da privacidade da informação, a

segurança da assinatura digital.

Dentre as dificuldades encontradas, a principal delas foi o levantamento

bibliográfico sobre esteganografia, por se tratar de um assunto pouco

abordado, sendo que todas as referências encontradas apresentavam

basicamente o funcionamento das técnicas.

Umas das restrições deste software e a necessidade de utilizar somente

imagens no formato bitmap. As imagens neste formato normalmente são

grandes para armazenamento em disco e por serem grandes podem ser um

Page 88: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

87

problema ao transmitir essa imagem ao receptor, além de que o método de

esteganografia utilizado não permite a compressão da imagem.

Como trabalho futuro, é possível realizar a automatização dos processos

necessários para a total e correta execução do sistema, tendo o usuário

somente que alimentar o sistema com as devidas informações e acionar o

processo de envio ou recebimento de mensagem.

Ainda, como trabalhos futuros, é possível realizar o estudo e

implementação de outras técnicas de esteganografia para a ocultação da

assinatura digital, dentre outras estudadas pode-se citar os algoritmos de

transformação, que geralmente trabalham com formas mais sofisticadas de

manuseio de imagens como brilho, saturação e compressão das imagens,

podendo-se, assim, utilizar imagens no formato jpg, que são imagens menores

comparadas as bitmaps utilizadas na realização deste trabalho.

Considera-se que todos os objetivos propostos foram alcançados de

forma correta, implementando-se um protótipo de software que permitiu um

profundo aprendizado cientifico e tecnológico, aprofundando temas estudados

durante a graduação.

Page 89: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

88

REFERÊNCIAS

ABREU, Carlos Magno Oliveira. Algoritmo de criptografia RSA. 2004. Artigo disponível em: http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=123&mode=thread&order=0&thold=0>. Acesso em 12 de maio de 2007.

BURNETT, Steve & PAINE, Stephen Criptografia e segurança: o guia oficial RSA. 1.ed. Rio de janeiro: Campus Ltda., 2002.

BUSTAMANTE, Leonardo. Esteganografia – A Arte de Esconder. 2006. Artigo disponível em: <http://www.imasters.com.br/artigo/4500/forense/esteganografia_-a_arte_de_esconder/>. Acesso em: 26 de Maio de 2007.

CASTRO, Aldemario Araújo. O DOCUMENTO ELETRÔNICO E A ASSINATURA DIGITAL – Uma Visão Geral. Artigo disponível em: <http://jus2.uol.com.br/doutrina/texto.asp?id=2632>. Acesso em: 18 de junho de 2007.

DAMN, Ivanopulo. DAMN Hash Calculator. Disponível em: <http://www.numaboa.com/component/option,com_docman/task,doc_download/ gid,135/Itemid,35>. Acesso em 05 de novembro de 2007.

Departamento de Engenharia Elétrica da Universidade de Brasília. Disponível em: <http://www.redes.unb.br/security/criptografia/rsa/rsa.html#-%20Topo> . Acesso em 13 de abril de 2006.

DIFFIE, Whitfield; HELLMAN, Martin E. New Directions in Cryptography. IEEE Transactions on Information Theory, volume IT-22, nr. 6. Novembro 1976.

FORRISTAL, Jeff Site Seguro Aplicações Web 1. Ed. Rio de janeiro: Alta Books Ltda, 2002.

HOWARD, Michael; LEBLANC, David. Escrevendo código seguro: estratégias e técnicas práticas para codificação segura de aplicativos em um mundo em rede. 2. Ed. Porto Alegre: BookMan, 2005.

JASCONE, Fábio Luis Tavares. Protótipo de Software para Ocultar Texto criptografado em Imagens Digitais. Blumenau, 2003. Trabalho de Conclusão de curso – Ciências da Computação, Universidade Regional de Blumenau. Disponível em <

Page 90: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

89

http://www.inf.furb.br/~pericas/orientacoes/Esteganografia2003.pdf>. Acesso em: 12 de maio de 2007.

Licença Creative Commons. Disponibilizada em <http://creativecommons.org/licenses/by-nc-sa/2.0/br/deed.pt>. Acessado em: 20 de novembro de 2007.

MARGI, Cíntia Borges. Um Mecanismo para Distribuição Segura de Vídeo MPEG. São Paulo, 2000. Dissertação de mestrado – Departamento de computação e sistemas digitais, Escola politécnica da Universidade de São Paulo. Disponível em : <http://www.larc.usp.br/~cbmargi/pdf/dissertacao-cintia-borges-margi.pdf>. Acesso em 10 de maio de 2007.

SCHNEIER, Bruce. Applied Cryptography: Protocols, Algorithms and Source Code in C. 2. ed.New York: John Wiley & Sons, Inc., 1996.

SCHNEIER, Bruce. SHA-1 Broken. Disponível em: <http://www.schneier.com/blog/archives/2005/02/sha1_broken.html>. Acesso em 27 de junho de 2007.

SILVA, Rogério Guedes. Segurança de Redes de Computados. Rio de Janeiro, 1998. Departamento de ensino Superior da CEFET-RJ, Disciplina de Redes de Computadores. Disponível em: <http://www.cefetrio.hpg.ig.com.br/ciencia_e_educacao/8/trabalhos/seguranca2/seguranca.htm> . Acesso em 27 de junho de 2007.

STALLINGS, William Cryptography and network security: Principles and pratice 4.ed. New Jersey: Prentice Hall, 2005.

WANG, Xiaoyun & YIN, Yiqun Lisa & YU, Hongbo. Collision Search Attacks on SHA1. China, 2005. Disponível em: <http://theory.csail.mit.edu/~yiqun/shanote.pdf>. Acesso em 27 de junho de 2007.

TKOTZ, Viktoria StegoBMP. Disponibilizado em: <http://www.numaboa.com/component/option,com_docman/task,doc_download/gid,7/Itemid,35/>. Acesso em 14 de novembro de 2007.

Page 91: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

90

ANEXO A – Processo completo de ocultação da informação exemplificada

na sessão 2.4.1

Neste anexo é apresentado o processo de ocultação da informação

“testando a tecnica lsb” representada na sua forma decimal e binária na Tabela

1. Esta informação será ocultada em uma área selecionada aleatoriamente na

Figura 7, que é uma imagem no formato bitmap de 420 X 300 pixel.

Foi utilizada uma área de 6 x 8 pixel desta imagem e a informação é

inserida no bit menos significativo dos valores de RGB de cada pixel. Os

valores de RGB são os valores referentes à quantidade da cor vermelha, verde

e azul que determinam à tonalidade do pixel.

A tabela 5 representa todo o processo de ocultação. A coluna 1

representa a posição do pixel. Cada uma dessas posições tem três linhas que

representam os valores de RGB do pixel.

A Coluna “Pixel” representa a posição dos pixels na área selecionada,

lembrando, que uma imagem no formato bitmap consiste em uma matriz de

números, cada um representando a tonalidade da cor. Assim, a primeira linha

da coluna representa a primeira posição da matriz, e assim sucessivamente.

A coluna “Número” apresenta o valor referente à tonalidade original do

pixel no formato decimal e as colunas “Número no Formato Binário”

apresentam esse valor no formato binário.

A coluna “Informação” contém os valores da informação que vai ser

ocultada, estes valores representando o texto “testando a técnica lsb” no

formato binário.

Os números em vermelho representam a coluna aonde será oculta a

informação e terá seus valores substituídos pelos valores da coluna em azul.

Por fim, a coluna “Valor Resultante” representa os valores resultantes

após a ocultação da informação no formato decimal, pode-se observar que em

muitos casos os valores resultantes permanecem iguais aos valores originais,

deixando mais imperceptível ainda a alteração da imagem.

Page 92: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

91

Pixel Número Número no formato Binário Informação Valor

Resultante

95 0 1 0 1 1 1 1 1 1 95

105 0 1 1 0 1 0 0 1 1 105 1.1

122 0 1 1 1 1 0 1 0 1 123

78 0 1 0 0 1 1 1 0 0 78

95 0 1 0 1 1 1 1 1 1 95 1.2

115 0 1 1 1 0 0 1 1 0 114

63 0 0 1 1 1 1 1 1 0 62

85 0 1 0 1 0 1 0 1 1 85 1.3

106 0 1 1 0 1 0 1 0 1 107

73 0 1 0 0 1 0 0 1 0 72

101 0 1 1 0 0 1 0 1 0 100 1.4

123 0 1 1 1 1 0 1 1 1 123

100 0 1 1 0 0 1 0 0 0 100

134 1 0 0 0 0 1 1 0 1 135 1.5

159 1 0 0 1 1 1 1 1 1 159

119 0 1 1 1 0 1 1 1 1 119

159 1 0 0 1 1 1 1 1 1 159 1.6

185 1 0 1 1 1 0 0 1 0 184

140 1 0 0 0 1 1 0 0 0 140

149 1 0 0 1 0 1 0 1 1 149 2.1

164 1 0 1 0 0 1 0 0 1 165

87 0 1 0 1 0 1 1 1 1 87

100 0 1 1 0 0 1 0 0 1 101 2.2

117 0 1 1 1 0 1 0 1 1 117

74 0 1 0 0 1 0 1 0 0 74

92 0 1 0 1 1 1 0 0 1 93 2.3

112 0 1 1 1 0 0 0 0 0 112

53 0 0 1 1 0 1 0 1 0 52

78 0 1 0 0 1 1 1 0 1 79 2.4

100 0 1 1 0 0 1 0 0 1 101

2.5 89 0 1 0 1 1 0 0 1 0 88

Page 93: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

92

119 0 1 1 1 0 1 1 1 0 118

143 1 0 0 0 1 1 1 1 0 142

108 0 1 1 0 1 1 0 0 0 108

144 1 0 0 1 0 0 0 0 1 145 2.6

170 1 0 1 0 1 0 1 0 1 171

182 1 0 1 1 0 1 1 0 1 183

188 1 0 1 1 1 1 0 0 0 188 3.1

202 1 1 0 0 1 0 1 0 1 203

106 0 1 1 0 1 0 1 0 1 107

115 0 1 1 1 0 0 1 1 1 115 3.2

132 1 0 0 0 0 1 0 0 0 132

80 0 1 0 1 0 0 0 0 1 81

95 0 1 0 1 1 1 1 1 1 95 3.3

114 0 1 1 1 0 0 1 0 0 114

72 0 1 0 0 1 0 0 0 0 72

93 0 1 0 1 1 1 0 1 1 93 3.4

114 0 1 1 1 0 0 1 0 0 114

58 0 0 1 1 1 0 1 0 0 58

84 0 1 0 1 0 1 0 0 1 85 3.5

107 0 1 1 0 1 0 1 1 1 107

100 0 1 1 0 0 1 0 0 0 100

130 1 0 0 0 0 0 1 0 1 131 3.6

156 1 0 0 1 1 1 0 0 1 157

246 1 1 1 1 0 1 1 0 1 247

250 1 1 1 1 1 0 1 0 1 251 4.1

255 1 1 1 1 1 1 1 1 1 255

140 1 0 0 0 1 1 0 0 1 141

147 1 0 0 1 0 0 1 1 0 146 4.2

163 1 0 1 0 0 0 1 1 0 162

96 0 1 1 0 0 0 0 0 0 96

107 0 1 1 1 0 1 0 1 0 106 4.3

125 0 1 1 1 1 1 0 1 1 125

4.4 74 0 1 0 0 1 0 1 0 1 75

Page 94: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

93

91 0 1 0 1 1 0 1 1 1 91

111 0 1 1 0 1 1 1 1 1 111

64 0 1 0 0 0 0 0 0 0 64

87 0 1 0 1 0 1 1 1 1 87 4.5

109 0 1 1 0 1 1 0 1 0 108

68 0 1 0 0 0 1 0 0 0 68

94 0 1 0 1 1 1 1 0 1 95 4.6

119 0 1 1 1 0 1 1 1 1 119

250 1 1 1 1 1 0 1 0 0 250

252 1 1 1 1 1 1 0 0 0 252 5.1

255 1 1 1 1 1 1 1 1 1 255

189 1 0 1 1 1 1 0 1 0 190

195 1 1 0 0 0 0 1 1 1 195 5.2

209 1 1 0 1 0 0 0 1 1 209

115 0 1 1 1 0 0 1 1 1 115

124 0 1 1 1 1 1 0 0 0 124 5.3

139 1 0 0 0 1 0 1 1 0 138

92 0 1 0 1 1 1 0 0 0 92

105 0 1 1 0 1 0 0 1 1 105 5.4

124 0 1 1 1 1 1 0 0 1 125

70 0 1 0 0 0 1 1 0 1 71

88 0 1 0 1 1 0 0 0 1 89 5.5

108 0 1 1 0 1 1 0 0 0 108

62 0 0 1 1 1 1 1 0 1 63

86 0 1 0 1 0 1 1 0 1 87 5.6

110 0 1 1 0 1 1 1 0 1 111

246 1 1 1 1 0 1 1 0 0 246

249 1 1 1 1 1 0 0 1 1 249 6.1

255 1 1 1 1 1 1 1 1 1 255

237 1 1 1 0 1 1 0 1 0 236

241 1 1 1 1 0 0 0 1 1 240 6.2

253 1 1 1 1 1 1 0 1 0 252

6.3 142 1 0 0 0 1 1 1 0 0 142

Page 95: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

94

150 1 0 0 1 0 1 1 0 1 151

163 1 0 1 0 0 0 1 1 1 163

102 0 1 1 0 0 1 1 0 1 103

113 0 1 1 1 0 0 0 1 0 112 6.4

131 1 0 0 0 0 0 1 1 0 130

73 0 1 0 0 1 0 0 1 0 72

88 0 1 0 1 1 0 0 0 1 88 6.5

107 0 1 1 0 1 0 1 1 1 107

64 0 1 0 0 0 0 0 0 1 65

84 0 1 0 1 0 1 0 0 1 85 6.6

108 0 1 1 0 1 1 0 0 0 108

240 1 1 1 1 0 0 0 0 0 240

243 1 1 1 1 0 0 1 1 0 242 7.1

250 1 1 1 1 1 0 1 0 0 250

251 1 1 1 1 1 0 1 1 1 251

255 1 1 1 1 1 1 1 1 1 255 7.2

255 1 1 1 1 1 1 1 1 1 255

187 1 0 1 1 1 0 1 1 0 186

193 1 1 0 0 0 0 0 1 1 193 7.3

207 1 1 0 0 1 1 1 1 1 207

114 0 1 1 1 0 0 1 0 0 114

123 0 1 1 1 1 0 1 1 0 122 7.4

140 1 0 0 0 1 1 0 0 1 141

85 0 1 0 1 0 1 0 1 1 85

98 0 1 1 0 0 0 1 0 1 99 7.5

115 0 1 1 1 0 0 1 1 0 114

72 0 1 0 0 1 0 0 0 0 72

90 0 1 0 1 1 0 1 0 1 91 7.6

112 0 1 1 1 0 0 0 0 1 113

241 1 1 1 1 0 0 0 1 1 241

243 1 1 1 1 0 0 1 1 1 243 8.1

250 1 1 1 1 1 0 1 0 0 250

8.2 250 1 1 1 1 1 0 1 0 0 250

Page 96: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

95

255 1 1 1 1 1 1 1 1 0 255

255 1 1 1 1 1 1 1 1 1 255

8.3 188 1 0 1 1 1 1 0 0 0 188

TABELA 5 – Representação da implementação da técnica mostrando todos os processos realizados para ocultação da informação em uma imagem.

Page 97: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

96

ANEXO B – Algoritmos utilizados para realizar o processo de ocultação

da assinatura digital na imagem.

Abaixo são apresentados os algoritmos utilizados para o processo de

ocultação da assinatura digital na mensagem. O primeiro algoritmo é executado

quando for ativado o botão “Esteganografar” da tela apresentada na Figura 26,

ele inicialmente verifica os limites da imagem para definir a execução do laço

de repetição, cada vez que ele passa no laço ele carrega a cor do pixel que o

laço esta, passando essa cor por parâmetro para a função PegaRGB, que

retorna o valor alterado, com a assinatura digital oculta, e é carregado

novamente na imagem.

//FUNÇÃO QUE INICIA A OCULTAÇÃO DA ASSINATURA NA IMAGEM Procedure TFEsteganografia.bbOcultarClick(Sender: TObject); var i,x, j: integer; color: TColor; Largura, Altura: integer; Tempo : TTime; begin Tempo := 0; Tempo := GetTickCount; Largura:= imgOri.Picture.Bitmap.Width; Altura:= imgOri.Picture.Bitmap.Height; for i := 1 to Altura-1 do for j:= 1 to Largura-1 do begin if length(szAssinaturaTemp) <= cont then begin MostraTempo(Tempo); exit; end; Color:=ImgAlterada.Picture.Bitmap.Canvas.Pixels[i,j]; Color := PegaRGB(color,1); ImgAlterada.Picture.Bitmap.Canvas.Pixels[i,j] := color; end; end;

O segundo algoritmo é chamado pelo algoritmo acima, ele tem a função

de buscar os valores do RGB do pixel e chamar o algoritmo “esconde”, que

esconde a assinatura digital no pixel. Ele inicialmente busca os valores do RGB

do pixel no formato decimal, converte estes valores para binário e chama a

Page 98: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

97

função “esconde”, a qual retorna o valor do pixel com a assinatura oculta, o

algoritmo então altera novamente os valores do formato binário para decimal e

retorna a valor do RGB alterado.

//FUNÇÃO PARA PEGAR O VALOR DE RGB DO PIXEL E CHAMAR A FUNÇÃO ESCONDE Function TFEsteganografia.PegaRGB(Color:TColor):TColor; Var r ,g,b:Byte; r1,g1,b1:String; binario: string; aux: String; tam,j: integer; Begin Color:=ColorToRGB(Color); r:=GetRValue(Color); g:=GetGValue(Color); b:=GetBValue(Color); aux:= ''; r1 := esconde(DecToBinStr(r)); g1 := esconde(DecToBinStr(g)); b1 := esconde(DecToBinStr(b)); r := BinToInt(r1); g := BinToInt(g1); b := BinToInt(b1); result:=RGB(r,g,b); End;

O terceiro algoritmo é chamado pela algoritmo “PegaRGB”, ele tem a

função de alterar o bit menos significativo do pixel em questão para o bit da

assinatura digital, ele recebe como parâmetro o valor do byte do RGB em

binário e retorna o valor alterado.

//FUNÇÂO QUE OCULTA A ASSINATURA NO ULTIMO BIT DO PIXEL Function TFEsteganografia.Esconde(Binario: String); var Numero :String; i : integer; Begin i:= length(binario); if not (binario[i] = szAssinaturaTemp[cont]) then Binario[i] := szAssinaturaTemp[cont]; Cont := cont + 1; Result := Binario; end;

Page 99: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

98

ANEXO C – Algoritmos utilizados para realizar o processo de busca da

assinatura digital oculta na mensagem.

Abaixo são apresentados os algoritmos responsáveis por realizar a

varredura na imagem e buscar a assinatura digital oculta na mesma.

O primeiro dos algoritmos é acionado ao ativar o botão “Buscar

Informação” do módulo receptor, e chama os outros dois durante a sua

execução. Ele inicialmente verifica os limites da imagem para realizar o laço e

vai passando, pixel a pixel, informando a cor do pixel e acionando a função

“PegaRGB” que pega o valor oculto no pixel. Chegando no final do processo de

busca, o laço é interrompido e os valores apresentados.

//FUNÇÃO QUE INICIA A BUSCA DA ASSINATURA DIGITAL OCULTA NA IMAGEM procedure TFRecebeInfo.bbBuscaClick(Sender: TObject); var i,x, j: integer; color: TColor; Largura, Altura: integer; tam: integer; aux: string; aux1: integer; AssTemp: string; assTemp1: integer; Tempo : TTime; begin Tempo := 0; Tempo := GetTickCount; AssTemp :=''; AssinaturaBin := ''; aux1:= 0; tam := length(AssinaturaMem) * 8; Largura:= imgOri.Picture.Bitmap.Width; Altura:= imgOri.Picture.Bitmap.Height; for i := 1 to Altura-1 do for j:= 1 to Largura-1 do begin if length(AssinaturaBin) >= tam then Break; Color:=imgOri.Picture.Bitmap.Canvas.Pixels[i,j]; PegaRGB(color,1);

Page 100: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

99

end; for x := 1 to length(AssinaturaBin) do begin aux := aux + AssinaturaBin[x]; aux1:= aux1 + 1; if aux1 = 8 then begin assTemp1 := BinToInt(aux); assTemp := assTemp + chr(assTemp1); aux := ''; aux1:= 0; end; end; AssinaturaImg := AssTemp; Tempo := GetTickCount - Tempo; end;

O segundo algoritmo é responsável por pegar os valores do RGB do

pixel e acionar a função de busca de informação desde valores, ele recebe

como parâmetro um valor de cor, assim ele emprega esse valor em uma outra

função chamada “GetRGBValue”, que busca o valor do RGB do pixel no

formato decimal, e aciona a função “busca” que busca o valor do ultimo bit de

cada um desses bytes, retornando o valor do RGB obtido.

//FUNÇÃO PARA PEGAR O VALOR DE RGB DO PIXEL E CHAMAR A FUNÇÃO QUE BUSCA A INFORMAÇÃO OCULTA Function TFRecebeInfo.PegaRGB(Color:TColor):TColor; Var r,g,b:Byte; r1,g1,b1:String; binario: string; aux: String; tam,j: integer; Begin Color:=ColorToRGB(Color); r:=GetRValue(Color); g:=GetGValue(Color); b:=GetBValue(Color); aux:= ''; r1 := Busca(DecToBinStr(r)); g1 := Busca(DecToBinStr(g)); b1 := Busca(DecToBinStr(b));

Page 101: CAMOUFLAGED SECURITY SYSTEM : Protótipo de software …uab.ifsul.edu.br/tsiad/conteudo/modulo5/src/biblioteca/1_Leitura_Complementar...mensagens, o algoritmo SHA-1 para gerar as assinaturas

100

r := BinToInt(r1); g := BinToInt(g1); b := BinToInt(b1); result:=RGB(r,g,b); End;

E por fim, o terceiro algoritmo é responsável por buscar os valores

ocultos no último bit de cada byte do pixel, ele recebe como parâmetro uma

string contendo o conjunto de 8 bits de cada byte dos pixels, realizando a

busca para obter o valor do ultimo bit de cada um destes bytes e retorna uma

string contendo a assinatura digital obtida de dentro da imagem no formato

binário.

//ALGORITMO QUE BUSCA O VALOR DA ASSINATURA OCULTA NO PIXEL Function TFRecebeInfo.Busca(Binario: String); var i : integer; Begin i := Length(binario); AssinaturaBin := AssinaturaBin + Binario[i]; end;