Vous êtes sur la page 1sur 74

UNIVERSIDADE FEDERAL DE SANTA CATARINA PROGRAMA DE PS-GRADUAO EM CINCIA DA COMPUTAO

Diogenes Lemos Carneiro

Um estudo sobre a aplicabilidade de redes neurais em criptografia

Dissertao submetida Universidade Federal de Santa Catarina como parte dos requisitos para a obteno do grau de Mestre em Cincia da Computao.

Prof. Dr. Mauro Roisenberg

Florianpolis, Dezembro de 2001

Um estudo sobre a aplicabilidade de redes neurais em criptografia

Diogenes Lemos Carneiro

Esta Dissertao foi julgada adequada para a obteno do ttulo de Mestre em Cincia da Computao e aprovada em sua forma final pelo Programa de Ps-Graduao em Cincia da Computao.

Prof. Dr. Mauro Roisenberg

Banca Examinadora

Prof. Dr. Joo Bosco da Mota

Prof. Dr. Jorge Muniz Barreto

iii

Divulga o beneficio recebido, demonstrando, porm, maior agradecimento, quem se esquece do benefcio benfeitor. Borne para lembrar-se, unicamente, do

iv

minha esposa Piedade, e a meus filhos Stephanie e Dio que com compreenso me ajudaram muito durante este perodo.

Agradecimentos
CESUPA, na pessoa de seu diretor geral Srgio Mendes, que teve coragem de dar vazo a uma demanda reprimida de conhecimento em nosso estado. Aos professores Maia, Mauro, Rosvelter, Silvia, Bosco, Elizabeth, Paulo Borges e Paulo Freitas, que com seus conhecimentos e didtica transformaram este perodo de minha vida em um dos mais profcuos. Tambm hora de agradecer o esforo e dedicao com que o professor Gustavo conduziu a difcil misso de coordenar nosso mestrado. Lembrar tambm os amigos Eugnio Pessoa, Mauro Cavalcante, Luiz e Lidio que sempre estiveram junto comigo e todos que me ajudaram em sala de aula ou fora dela, imprescindvel. H muito tinha um amigo, que filosofava na pessoa de sua av, e dizia : a gratido a memria do corao. com este sentimento que me dirijo a meu orientador, professor e amigo Mauro, que no poupou esforos para tornar a difcil caminhada at aqui menos pesada, sempre com palavras de incentivo, carinho e ateno. Agradecer a Deus que todo dia nos acompanha nas pequenas e grandes coisa da vida.

vi

Sumrio
Resumo ................................................................................................................ Abstract ............................................................................................................... 1 . Introduo........................................................................................................ 1.1. Motivao.............................................................................................. 1.2. Organizao do texto............................................................................ 2 . Rede neurais artificiais.................................................................................... 2.1. O Biolgico........................................................................................... 2.2. O Artificial............................................................................................ 2.2.1. O neurnio artificial bsico...................................................... 2.2.2. Funes de transferncia.......................................................... 2.2.2.1. Funo linear.............................................................. 2.2.2.2. Funo sigmide........................................................ 2.2.2.3. Funo tangente hiperblica...................................... 2.2.3. Arquiteturas das redes neurais.................................................. 2.2.3.1. Redes diretas.............................................................. 2.2.3.2. Redes com realimentao.......................................... 2.2.4. Treinamento............................................................................ 2.2.4.1. Backpropagation........................................................ 2.3. Aplicaes.......................................................................................... 3. Criptografia...................................................................................................... 3.1. Definio............................................................................................ 3.2. Terminologia...................................................................................... 3.3. Confiana na comunicao................................................................. 3.4. Chave.................................................................................................. 3.5. Algoritmo criptogrfico...................................................................... 3.5.1. Algoritmo de chave simtrica................................................. 3.5.1.1. Principais algoritmos de chave simtrica................... 3.5.2. Algoritmo de chave assimtrica.............................................. 3.5.2.1. Principais algoritmos de chave assimtrica............... 3.5.3 Chave simtrica x Chave assimtrica..................................... 9 10 11 11 12 14 14 15 16 17 17 18 18 19 19 21 21 22 23 24 24 24 25 26 26 27 28 29 30 30

vii 3.5.4 Algoritmo de fluxo................................................................. 3.5.5 Algoritmo de bloco................................................................. 3.6. Criptoanlise....................................................................................... 3.7. Esteganografia.................................................................................... 3.8. DES ................................................................................................... 3.9. RSA ................................................................................................... 3.9.1. Descrio do algoritmo.......................................................... 3.10. Aplicaes.......................................................................................... 4. Anlise para criao de um cifrador usando redes neurais artificiais......... 4.1. Princpios............................................................................................ 4.2. Primeira proposta................................................................................ 4.3. Segunda proposta................................................................................ 4.4. Terceira proposta................................................................................ 4.5. Caractersticas e funcionalidade das trs propostas........................... 5. Criptoanlise usando redes neurais artificiais................................................. 5.1. Ataque ao RSA .................................................................................. 5.1.1. Ataque direto s chaves do RSA.............................................. 5.1.2. Ataque texto plano escolhido ao RSA..................................... 5.2 Ataque aos cifradores neurais............................................................ 5.2.1. Ataques primeira proposta.................................................... 6. Concluses e trabalhos futuros........................................................................ 7. Referncias bibliogrficas............................................................................... 8. Apndice A ..................................................................................................... 31 31 32 34 35 41 42 44 46 46 47 50 53 57 59 59 59 65 67 67 70 71 73

viii

Figuras
FIGURA 2.1 - Representao em diagrama de bloco do sistema nervoso. FIGURA 2.2 - Clula nervosa FIGURA 2.3 - Primeiro modelo de neurnio artificial FIGURA 2.4 - Entradas, pesos, net e funo de transferncia FIGURA 2.5 - Funo linear FIGURA 2.6 - Funo sigmide FIGURA 2.7 - Funo tangente hiperblica FIGURA 2.8 - Rede direta com uma nica camada FIGURA 2.9 - Rede direta com mltiplas camadas FIGURA 2.1 - Rede com realimentao FIGURA 3.1 - Criptografar e decriptografar FIGURA 3.2 - Mesma chave para cifrar e decifrar FIGURA 3.3 - Chaves diferentes FIGURA 3.4 - Transformao do texto plano em texto cifrado - DES FIGURA 3.5 - Uma interao do DES FIGURA 3.6 - Estrutura do S-BOX FIGURA 3.7 - A chave no DES FIGURA 3.8 - Calculadora RSA FIGURA 4.1 - Rede direta FIGURA 4.2 - Rede de Elman FIGURA 4.3 - Rede Principal e as rede secundrias FIGURA 5.1 - Aplicao para gerar o conjunto de treinamento FIGURA 5.2 - Grfico do conjunto de treinamento FIGURA 5.3 - Cifrador e decifrador RSA FIGURA 5.4 - Cifrador neural 14 15 16 17 18 18 19 20 20 21 25 28 29 36 37 38 41 43 47 50 54 60 65 66 68

ix

Resumo

Diversos dispositivos eletrnicos conectados uns aos outros e o crescimento exponencial da internet levam necessidade de prover segurana neste processo de comunicao. Uma das formas de melhorar a confiana dos usurios a implementao de algoritmos criptogrficos eficientes. Inspirado no perfeito processo da comunicao entre as clulas do sistema nervoso, implementa-se trs propostas de cifradores, utilizando redes neurais artificias. E para completar tal estudo, procura-se realizar a criptoanlise dessas propostas e do RSA, utilizando tambm as redes neurais.

Palavras Chaves : Redes neurais artificiais, criptografia e criptoanlise.

Abstract

Several connected electronic devices each other and the exponential growth of the internet bring the necessity to provide safety in this communication process, one way of improving the users trust is the cryptography algorithms. Inspired in the perfect process of the communication among cells of the

nervous system, is implemented three proposed of cipher algorithms, using articial neural network. To complete this study, is tried to accomplish the cryptanalysis of those proposals and of RSA, using also the articial neural network.

Key words: articial neural network, cryptography and cryptanalysis.

11

Captulo 1

Introduo

1.1 Motivao
No mundo moderno, a utilizao de diversos dispositivos eletrnicos, que se comunicam entre si, cada vez mais freqente, e a necessidade de que a comunicao seja feita de uma forma segura cresce na razo direta desta expanso. A internet tambm responsvel por um crescimento exponencial do anseio coletivo por privacidade e segurana na troca de mensagens. A grande rede o meio mais democrtico e global, porm as distores do mundo real passaram a fazer parte do seu cotidiano, pois fraudes, roubos, clonagem de cartes de crdito etc. so noticiados pela imprensa nacional e internacional. Logo, codificar criptografar - o contedo das mensagens trocadas em meio inseguro, para que os intrusos no consigam entender o contedo principalmente para das mesmas, de vital importncia,

e-commerce comrcio eletrnico entre empresas (B2B

Business to Business) e entre empresas e consumidores (B2C Business to consumer), e-goverment os governos disponibilizando diversos servios para os cidados , o elearn e o e-training universidades, escolas e empresas voltadas para o treinamento, disponibilizando a oportunidade de aprendizado a distncia. bastante comum ouvir perguntas do tipo: Voc faz compras na internet ? Paga com seu carto de crdito ? Sua empresa solicita uma certido da Receita Federal pela internet ? Voc acredita num curso de ingls pela internet? As respostas a estas indagaes sero mais positivas quanto maior for a confiana da sociedade na segurana que os algoritmos de criptografia e outras medidas de segurana poderem propiciar. No perodo de aulas do mestrado, foram ministradas disciplinas de inteligncia artificial e de redes de computadores, fato que levou a procura por um tema que permitisse mesclar, de forma balanceada, o conhecimento das duas reas. O grande interesse por redes neurais surgiu, pois, no incio do curso.

12 Ao observar a estrutura e a funcionalidade de um neurnio, percebe-se que ele possui um perfeito processo de comunicao com as outras clulas do sistema nervoso e partindo desta anlise, visualiza-se a possibilidade de realizar um estudo sobre a aplicabilidade de redes neurais artificiais em criptografia. Antes, porm, necessrio se torna uma breve explicao sobre algumas caracterstica dos atuais cifradores que utilizam nmeros primos muito grandes para gerar suas chaves, centrais de distribuio de senhas e muito tempo de processamento. Por outro lado o paralelismo observado na arquitetura das redes neurais pode perfeitamente facilitar sua utilizao nas funes de criptografia. Como principal objetivo desta pesquisa tem-se a criao de algumas propostas de cifradores algoritmos utilizados para codificar mensagens partindo da imagem do neurnio biolgico e tecendo um paralelo com o neurnio artificial. Tambm, faz-se o estudo da utilizao das redes neurais artificias para realizar ataques1 a algoritmos criptograficos de ampla utilizao na atualidade. A importncia da criptoanlise tem sido muito grande , influenciando inclusive o avano da computao.

1.2 Organizao do texto


O 2 captulo dedicado aos conceitos de redes neurais artificiais, os quais so abordados de forma simples, propiciando uma viso geral desta importante ferramenta da inteligncia artificial. No 3 captulo apresentam-se os conceitos de criptografia, esteganografia e criptoanlise. Tambm dissecou-se os algoritmos DES Data Ecryptation Standard e o RSA a primeira letra dos nomes dos criadores do algoritmo Ronald Rivest, Adi Shamir e Len Adleman- , muito utilizados nos dias de hoje. O captulo 4 totalmente dedicado ao experimento no que tange criao de cifradores, que inspirados no biolgico, procuram uma nova maneira de criptografar e prover mais segurana na comunicao entre dispositivos eletrnicos.
1

Tambm conhecidos como criptoanlise, a cincia para reaver o texto plano sem ter acesso chave, ou

descobrir a chave, ou ainda mostrar o quo fraco o sistema de criptografia (STALLINGS, 1999)

13 No captulo 5 ,procurou-se mostrar os ataques feitos ao algoritmos RSA e aos cifradores propostos neste trabalho, utilizando redes neurais artificiais diretas e recorrentes, descrevendo de forma minuciosa todos os ataques resultados obtidos. No ltimo captulo, teceu-se consideraes finais sobre essa pesquisa e foram apresentadas sugestes para trabalhos futuros. e avaliando os

14

Captulo 2

Redes Neurais Artificiais

2.1 O Biolgico

O crebro a base do sistema nervoso e um dos grandes mistrios da cincia. Em 335 a.C. Aristteles escreveu que o ser humano tem o maior crebro de todos os animais, porm hoje se sabe que esta afirmao no verdadeira, pois algumas espcies de golfinhos e baleias tm o crebro maior. A clula funcional bsica do crebro humano - sistema nervoso - o neurnio. Assim como as outras clulas, os neurnios se alimentam, respiram, tm os mesmos genes, os mesmos mecanismos bioqumicos e as mesmas organelas. O que os difere das outras clulas que eles so capazes de processar informaes sobre o estado interno do organismo e seu ambiente externo, avaliar esta informao e coordenar atividades apropriadas situao e s necessidades correntes das pessoas (CARDOSO, 2001). FIGURA 2.1.

Estmulo

Rede Neural

Resposta

FIGURA 2.1 Representao em diagrama de bloco do sistema nervoso (HAYKIN, 2001)

15

As partes do neurnio so o corpo celular ou soma, responsvel pela produo de protenas para as outras partes do neurnio; os dentritos, estruturas ramificadas como galhos de rvores, que servem como principal aparato para receber os sinais de outras clulas nervosas; o Axnio, a mais longa estrutura celular e tambm a principal unidade condutora do neurnio; e o terminal nervoso (terminal pr-sinptico), estruturas em que ocorrem as sinapses que so as junes das clulas do sistema nervoso, e nestas junes que os neurnios so excitados, inibidos ou modulados. Existem dois tipos de sinapses: a eltrica e a qumica (CARDOSO, 2001) . FIGURA 2.2

Dentritos

Corpo ou Soma

Axnio Terminal nervoso

Sinapse FIGURA 2.2 Clula Nervosa (MICROSOFT, 1999)

2.2 O Artificial
Os estudos de McCulloch e Pitts (1943) e o Perceptron de Frank Rosemblat (1958) foram a origem das redes neurais artificiais. As redes neurais artificiais so inspiradas no sistema nervoso biolgico, porm com as limitaes do conhecimento do natural e com as limitaes tecnolgicas.

16 No neurnio artificial, as entradas so os dentritos, os pesos as sinapses e a sada o axnio. FIGURA 2.3.

Entradas (Dentritos) Sada (Axnio) Neurnio

Xj

W ij Pesos Sinpticos

FIGURA 2.3 Primeiro modelo de neurnio artificial

Este modelo foi criticado por Minky e Papert (1969), porque s seria capaz de resolver problemas linearmente separveis, porm, no mesmo livro, eles afirmam que a colocao de mais uma camada de neurnios resolveria esta limitao, embora sem saber como. Aps um longo perodo, coube a Paul Werbos (1974) lanar as bases do algoritmo de retro-propagao (backpropagation), que permitiu a utilizao de redes neurais artificiais com mltiplas camadas (BARRETO, 1999).

2.2.1 O neurnio artificial bsico


possvel descrever o funcionamento de diversos neurnios artificiais a partir da definio formal do mesmo, bastando particularizar os parmetros que o definem. O e a forma de combinar os valores de entradas dos neurnios. Tambm importante a escolha da funo de transio de estado ) e a funo de sada

17 As partes de um neurnio artificial so as entradas, que podem ser as sadas de outros neurnios, entradas externas, bias ou qualquer combinao destes elementos; o net que o somatrio de todas as entradas, multiplicadas por suas respectivas foras de conexes sinpticas (pesos); funo de transferncia (sada) que atualiza o valores aps a determinao do net, produzindo ou no uma valor em determinada escala. FIGURA 2.4.

Entradas

31

32 3n

Z1 Z2 Zi

Combinao das Entradas


n
n=1

Zi,n 3n

net

Sada

Funo de Transferncia

FIGURA 2.4 Entradas, pesos, net e funo de transferncia

2.2.2 Funes de transferncia

As funes contnuas tal que x e y(x) , e as monotnicas crescentes tal que x e y(x) [ -1,1], podem ser usadas como funes de transferncia na modelagem neural. Existem algumas funes que so mais utilizadas: funo linear, funo sigmide ou logstica e a funo tangente hiperblica.

2.2.2.1 Funo linear

18

So todas as funes onde y(x) = ax , sendo a um nmero real no-nulo qualquer. FIGURA 2.5. x y(x) = ax a0

Figura 2.5 Funo linear

2.2.2.2 Funo sigmide


a funo unipolar mais utilizada na modelagem neural, cujo grfico tem a forma de S , onde x e y(x) [ 0,1]. FIGURA 2.6. x y(x) [ 0,1]

Figura 2.6 Funo Sigmide

2.2.2.3 Funo tangente hiperblica


a funo bipolar mais utilizada na modelagem neural, cujo o grfico tambm tem a forma de S , onde x e y(x) [ -1,1]. FIGURA 2.7.

19 x y(x) [ -1,1]

Figura 2.7 Funo tangente hiperblica

2.2.3 Arquiteturas das redes neurais


O tipo de estrutura das redes neurais est diretamente ligado ao algoritmo de aprendizagem. Pode-se identificar dois tipos de arquiteturas de redes neurais: redes diretas e redes com realimentao , com uma nica camada ou com mltiplas camadas.

2.2.3.1 Redes diretas


As redes neurais diretas - feedforward so aquelas cujos grafos no possuem nenhum ciclo, e a informao se desloca em um nico sentido entre as camadas adjacentes. Nesta arquitetura, os neurnios que recebem os sinais de excitao externos so chamados de camada de entrada; no processam, somente propagam os sinais para todos os neurnios da prxima camada, conhecida como camada intermediria ou escondida , a qual processa e propaga o sinais para uma prxima camada escondida ou para a camada de sada. Observe que na camada de sada tambm ocorre processamento. FIGURA 2.8 e FIGURA 2.9

20

Figura 2.8 Rede direta com uma nica camada (HAYKIN, 2001)

As redes com uma nica camada so capazes de resolver problemas linearmente separveis; as redes com duas camadas so capazes de resolver problemas no linearmente separveis; as redes com mais de duas camadas so capazes de resolver problemas com um elevado grau de complexidade(BARRETO, 1999).
Camada Intermediria Camada de Entrada Camada de Sada

Figura 2.9 Rede direta com mltiplas camadas (HAYKIN, 2001)

21

2.2.3.2 Redes com realimentao


As redes neurais com realimentao - feedback so aquelas cujos grafos de conectividade contm pelo menos um ciclo, tambm conhecido como lao de realimentao, no existindo direo privilegiada para propagao da informao. FIGURA 2.10. A recorrncia deste tipo de rede resulta em um comportamento dinmico (HAYKIN, 2001). Hopfield, Jordan e Elman so as principais redes que apresentam este tipo de estrutura.

Camada Intermediria Camada de Entrada

Camada de Sada

Figura 2.10 Rede com realimentao

2.2.4 Treinamento
Treinar uma rede neural artificial significa ajustar a matriz de pesos de tal forma que a sada obtida seja igual ou muito prxima sada informada para um determinado valor de entrada. Existem alguns algoritmos de treinamento que, alm de ajustar os pesos, provocam tambm mudanas na rede, alterando o nmero de neurnios. O treinamento pode ser de dois tipos: supervisionado que exige a disponibilidade de um conjunto de treinamento formado por valores de entradas e sadas; e no

22 supervisionado no qual o conjunto de treinamento so exclusivamente valores de entrada. A maioria dos algoritmos de treinamento das redes neurais artificiais so

inspirados na lei de Hebb - a intensidade de uma ligao sinptica entre dois neurnios aumenta se ambos so excitados simultaneamente - podendo ser formalizada da seguinte maneira:

wij = xixj
A variao no peso de conexo entre os neurnios i e j, em que a taxa de aprendizado e xi e xj so a atividade dos neurnios. A lei de Hebb pode ser modificada para levar em conta o valor desejado para a atividade do neurnio, dando origem a regra delta.

wij = (di - xi)xj


O algoritmo mais conhecido para treinamento das redes neurais artificias o de retropropagao backpropagation que uma generalizao da regra delta.

2.2.4 Backpropagation
A retropropagao um algoritmo de treinamento, supervisionado seu funcionamento pode ser descrito da seguinte forma (BITTENCOURT, 1998): Apresenta-se um exemplo rede e obtm-se a sada correspondente. Calcula-se o vetor de erro, que consiste na diferena entre a sada obtida e a esperada. Calcula-se o gradiente do vetor de erro e atualizam-se os pesos da camada de sada. Propagam-se, para as camadas anteriores, os valores, atualizando os pesos das mesmas.

23

2.3 Aplicaes
As redes neurais so aproximadores universais de funes e a cada novo treinamento geram um novo conjunto de pesos. A atual facilidade de implementar as mesmas em hardware utilizando dispositivos de memria PAM Programmable Active Memories, levou a utilizao das redes neurais para criptografia, estendo assim o gigantesco espectro de utilizao destas na atualidade. Existem diversas aplicaes para redes neurais artificias, tanto que o volume de investimentos nesta rea tem alcanado somas expressivas tanto no Brasil quanto no exterior. Pode-se destacar as aplicaes nas reas mdicas, financeiras, robtica, aeroespacial etc. Neste trabalho, procurou-se ampliar a utilizao das redes neurais artificias para criptoanalisar mensagens criptografadas .

24

Captulo 3 Criptografia
3.1 Definio

Cripto significa escondido, oculto ou obscuro e grafia ao de escrever (HOLANDA, 1999), ento criptografia a arte ou cincia de escrever em cifra ou em cdigo, utilizando um conjunto de tcnicas que tornam uma mensagem

incompreensvel.

3.2 - Terminologia
Um remetente deseja enviar uma mensagem a um destinatrio, porm tambm quer que nenhum curioso intruso ou inimigo - possa ler esta mensagem no canal de comunicao at o destinatrio (SCHNEIER, 1996). M ou P so as letras empregadas para representar o texto plano ou texto limpo . Com o avano tecnolgico, uma mensagem M poder ter como contedo som, imagem, programas, texto ou a combinao dos mesmos. Ao processo de tornar secreta uma mensagem chama-se de criptografar e sua funo representada pela letra E maiscula . mensagem criptografada chama-se de texto cifrado, representada pela letra C. Ao processo de transformar o texto cifrado em um texto plano chama-se de decriptografar, representado pela letra D maiscula .FIGURA 3.1. Seguindo o padro ISO 7498-2 , denomina-se o algoritmo que criptografa a mensagem de cifrador e o que decriptografa a mensagem de decifrador.

25

Texto Plano

Texto Cifrado

Texto Plano

Remetente

Destinatrio

Curioso

FIGURA 3.1 Criptografar e Decriptografar

A funo de criptografar E opera a mensagem M para produzir o texto cifrado C:

E(M) = C No processo reverso, a funo para decriptografar D opera no texto cifrado C para produzir o texto plano M: D(C) = M Logo: D(E(M)) = M

3.3 Confiana na comunicao


A confiana no processo de comunicao est relacionada a princpios bsicos, anlogos aos de uma interao face a face :

Autenticao - A certeza de quem enviou a mensagem, evitando, assim, que um intruso possa enviar uma mensagem utilizando a identidade do remetente.

Confidencial

- A certeza

de que a mensagem no est sendo ouvida

entendida - por um intruso.

26 Integridade - A certeza de que a mensagem original no foi alterado por nenhum intruso ao longo do caminho.

No repdio Tanto o remetente quanto o destinatrio tm que ter certeza de que o envio ou o recebimento, bem como o perfeito entendimento da mesma, obtiveram sucesso, evitando o repdio.

3.4 Chave
O prprio nome define a funo de uma chave em qualquer sistema, por exemplo, a chave de um cofre permite acesso ao valores nele contidos ; em um sistema de criptografia, a chave permite o acesso informao contida na mensagem. A chave representada pela letra K um nmero ou um conjunto de letras que, aplicado ao algoritmo, possibilita a transformao do texto plano em texto cifrado e vice-versa. A chave deve ser sempre mantida em segredo. Quanto maior for a chave, mais difcil ser decifrar a mensagem.

EK(M) = C ou DK(EK(M)) = M ou DK(C) = M

3.5 Algoritmo Criptogrfico


Os algoritmos criptogrficos so funes matemticas utilizadas para criptografar e decriptografar. Geralmente, existem duas funes relacionadas: uma para cifrar e outra para decifrar. Os algoritmos criptogrficos tm um interesse histrico muito grande, que remonta quase ao incio da escrita, porm os algoritmos utilizados

27 nos primrdios no poderiam ser utilizados hoje, a exemplo do utilizado pelo imperador romano Jlio Csar(CARVALHO, 2000), analisado a seguir. O imperador Jlio Csar utilizava um algoritmo de substituio. Cada letra do texto plano era substituda por outra letra algumas vezes, frente no alfabeto, gerando, assim, o texto cifrado, por exemplo:

Texto Plano

Vamos atacar no fim da tarde YDPRV DWDFDU QR ILP GD WDUGH

Texto Cifrado -

Para decifrar, os oficiais romanos saberiam o nmero de vezes (K) que a letra estaria frente e poderiam montar uma tabela assim:

A D

B E

C F

D G

E H

F I

G J

H K

I L

L O

M N P Q

O R

P S

Q T

R U

S V

V Y

W X Z A

Y B

Z C

M N

W X

C = E(M) = (M+3)

K = 3 (chave)

Observa-se que a chave neste algoritmo 3. Alm do mais com um pouco de fora bruta para analisar as 25 possveis chaves, esta mensagem facilmente seria decifrada. Os algoritmos podem ser classificados quanto chave: simtricos ou assimtricos; quanto ao nmero de bits: de blocos ou de fluxo.

3.5.1 Algoritmo de Chaves Simtrica

Tambm conhecido como algoritmo convencional, de chave secreta ou de nica chave .Figura 3.2 .O remetente e o destinatrio devem compartilhar a mesma chave para cifrar e decifrar a mensagem. Antes de transmitir a mensagem, o remetente e

28 o destinatrio devem comunicar-se por um meio seguro para trocar a informao da chave para este tipo de algoritmo vital que a chave permanea secreta .
Texto Plano
0(66 $*(6
'$ 7( '$ 7( 7,0( 7,0( 72 72 0 0 0 2) 2) 2) 72 7,0( '$7(

Texto Cifrado

Texto Plano
0(66$*(6

7(/ 12 7(/ 12 0(66$*( 0(6 6$*( 0(6 6$*( 7(/ 12

Cifrador

Decifrador

Chave do Cifrador = Chave do Decifrador


FIGURA 3.2 Mesma chave para cifrar e decifrar

3.5.1.1 Principais algoritmos de chave simtrica


DES (Data Encription Standard). Baseado num algoritmo desenvolvido pela IBM, o padro utilizado pelo governo americano para a criptografia de seus dados desde 1978. Em 1981, foi adotado como padro pela ANSI com o nome de DEA, como tentativa de padronizar procedimentos de cifragem do segmento privado, especialmente instituies financeiras. O DES utiliza cifras de blocos de 64 bits, usando uma chave de 56 bits, fazendo diversas permutaes.

Triple-DES Baseia-se na utilizao trs vezes seguidas do DES com chaves diferentes.

RC2, RC4 Algoritmos criados pelo Professor Ronald Rivest, que um dos proprietrios da RSA Data Security. Estes algoritmos usam chaves que variam de 1 a 1024 bits de extenso. Com chaves pequenas (menores que 48 bits), so cdigos fceis de serem quebrados, e como so proprietrios, no se tm muitas informaes

29 sobre sua segurana com chaves extensas. RC2 uma cifra de bloco, similar ao DES. RC4 um algoritmo de fluxo, em que o algoritmo produz uma corrente de pseudo-nmeros que so cifrados atravs de uma operao lgica XOR com a prpria mensagem.

IDEA Sigla que designa International Data Encryption Algorithm - um algoritmo de cifragem de bloco desenvolvido na Sua e publicado em 1990. IDEA utiliza uma chave de 128 bits. um algoritmo que ainda no pode ser conceituado como forte, devido a seu pouco tempo de vida, porm aparenta ser robusto. Sua chave com 128 bits dificulta a possibilidade de algum usar computadores atuais para ataques por fora bruta.

Skipjack Algoritmo secreto desenvolvido pela National Security Agency para uso por civis. o corao do chip Clipper, desenvolvido pela NSA.

3.5.2 Algoritmo de Chaves Assimtricas


Tambm conhecido como algoritmo chave pblica, projetado de uma forma tal que a chave que cifra a mensagem, conhecida como chave pblica, seja diferente da chave que decifra, conhecida como chave privada (FIGURA 3.3).
Texto Plano
0(66 $*(6
'$7( '$7( 7, 0( 7,0( 72 72 0 0 0 2) 2) 2) 72 7, 0( '$7(

Texto Cifrado

Texto Plano
0(66 $*(6

7(/ 12 7(/ 12 0(66$*( 0(66$*( 0(66$*( 7(/ 12

Cifrador

Decifrador

Chave Pblica

Chave Privada

Chave do Cifrador <> Chave do Decifrador

30

FIGURA 3.3 Chaves diferentes

3.5.2.1 Principais algoritmos de chave assimtrica


Diffie-Hellman - Foi o ponto de partida para a criptografia por chave pblica, atravs do artigo chamado "Multi-User Cryptographic Techniques", de Whitfield Diffie e Martin Hellman. A tcnica baseia-se na troca de uma chave de cifragem de tal forma que uma terceira parte no autorizada, no tenha como deduzi-la. Cada participante inicia com sua chave secreta e atravs da troca de informaes derivada uma outra chave, chamada chave de sesso, que ser usada para futuras comunicaes. O algoritmo baseia-se na exponenciao discreta, pois sua funo inversa, os logaritmos discretos, so de alta complexidade.

RSA - Desenvolvido por Ronald Rivest, Adi Shamir e Len Adleman, o algoritmo tomou por base o estudo feito por Diffie e Hellman, porm usando outro fundamento matemtico para a criao das chaves pblicas. Eles utilizaram o fato de que fcil obter-se o resultado da multiplicao de dois nmeros primos extensos, mas muito difcil obter-se os fatores primos de um nmero muito extenso.

Merkle-Hellman - Baseava-se em um jogo matemtico chamado Knapsack (Mochila), em que dada uma coleo de itens, verificam-se as possveis maneiras de armazen-la dentro de um repositrio de tamanho fixo, de forma a no sobrar espao. Foi usado durante muitos anos, porm, aps a descoberta de uma falha crucial, foi inutilizado para fins prticos.

3.5.3 Chave simtrica X chave Assimtrica


Analisando os dois tipos de algoritmos, pode-se observar que a criptografia por chave pblica tem a vantagem sobre a chave privada no sentido de viabilizar a comunicao segura entre pessoas comuns. Com a chave pblica tambm acaba o problema da distribuio de chaves existentes na criptografia por chave secreta, pois no h necessidade do compartilhamento de uma mesma chave, nem de um pr-acordo

31 entre as partes interessadas. Com isto o nvel de segurana maior - Tabela 3.1. A principal vantagem da criptografia por chave secreta est na velocidade dos cifradores e decifradores, pois estes tendem a ser mais rpidos que os de chave pblica. TABELA 3.1 Simtrico X Assimtrico (STALLINGS, 1999)

Algoritmo Simtrico
Como funciona

Algoritmo Assimtrico
1 - O algoritmo utiliza um par de chaves, uma para cifrar, outra para decifrar. 2 - O remetente e o destinatrio devem ter um par de chaves que combine. 1 - Somente uma das chaves dever permanecer secreta. 2 - O conhecimento do algoritmo e de uma das chaves deve ser insuficiente para determinar a outra chave. 3 - Tem que ser impossvel ou impraticvel decifrar a mensagem na ausncia de uma das informaes.

1 - O mesmo algoritmo usado Como para cifrar e decifrar. funciona 2 - O remetente e o destinatrio devem compartilhar a chave e o algoritmo. 1 - A chave dever ficar sempre Segurana secreta. 2O conhecimento do algoritmo deve ser insuficiente para determinar a chave. 3 - Tem que ser impossvel ou impraticvel decifrar a mensagem na ausncia de uma das informaes.

Segurana

3.5.4 Algoritmo de fluxo


Os algoritmos de fluxo cifram a mensagem bit a bit, e geralmente so utilizados em situao cuja transmisso dos dados feita da mesma forma, no permitindo acmulo de bits. Como exemplo deste tipo de algoritmo temos o ONE-TIME PAD, conhecido em portugus como FOLHA DESCARTVEL, a chave deste do mesmo tamanho da mensagem e s utilizada uma nica vez, devido a isto este tipo de algoritmo muito pouco utilizado, porm considerado o algoritmo mais seguro que existe.

3.5.5 Algoritmo de Bloco

Os algoritmos de blocos processam conjuntos de bits, denominados blocos. Com ampla utilizao, estes algoritmos so muito rpidos e eficientes, o bloco padro na

32 atualidade de 64 bits, grande o bastante para evitar uma analise e pequeno para capacidade dos computadores atuais. DES, IDEA, RC5, RSA e muitos outros so exemplo deste tipo de algoritmo.

3.6 Criptoanlise
Em criptografia, o ponto conseguir que o texto plano, a chave ou ambos sejam sempre secretos para o curioso - inimigo - , lembrando que este tem total acesso aos meios de comunicao entre o remetente e o destinatrio. Criptoanlise a cincia para reaver o texto plano sem ter acesso chave, ou descobrir a chave, ou ainda mostrar o quo fraco o sistema de criptografia (STALLINGS, 1999). A criptoanlise tem sido alvo de uma ampla pesquisa h vrios anos, sendo que a literatura especializada, hoje disponvel sobre criptografia, contm poucos exemplos de mtodos universais, que possam ser aplicados com sucesso a uma grande variedade de algoritmos criptogrficos. tentativa de criptoanalisar um texto cifrado chama-se de ataque. Existem sete tipos de ataques, pressupondo que para realizar o ataque o criptonalista tenha perfeito conhecimento do algoritmo usado para criptografar a mensagem.

Texto cifrado O criptoanalista possui vrios textos cifrados criptografados pelo mesmo algoritmo, devendo deduzir o maior nmero de textos planos possvel, ou melhor, deduzir a chave usada para criptografar as mensagens, a fim de inferir o texto plano que deseja decifrar.

C1=EK(M1), C2=EK(M2), ... Ci=EK(Mi) Deduzir P1, P2 ...... Pi; K Inferir Pi+1 de Ci+1=EK(Mi+1)

33 Textos Planos Conhecidos O criptoanalista possui vrios pares de textos planos e textos cifrados pelo mesmo algoritmo, devendo deduzir a chave usada para criptografar as mensagens, podendo ento decifrar a mensagem desejada.

P1 , C1=EK(M1); P2 , C2=EK(M2); . . . ;Pi , Ci=EK(Mi) Deduzir K Inferir Pi+1 de Ci+1=EK(Mi+1) Texto Plano Escolhido O criptoanalista, alm de possuir vrios pares de textos planos e textos cifrados, escolhe textos planos. Este tipo de ataque mais poderoso que o anterior, porque o criptoanalista pode escolher um bloco grande de texto plano para criptografar. Com um maior nmero de informao fica mais simples deduzir a chave usada para criptografar as mensagens.

P1 , C1=EK(M1); P2 , C2=EK(M2); . . . ;Pi , Ci=EK(Mi) Escolhe P1, P2 ...... Pi Deduzir K Inferir Pi+1 de Ci+1=EK(Mi+1) Texto Plano Escolhido Adaptado Este um caso especial do ataque Texto Plano Escolhido. O criptoanalista pode modificar o texto escolhido, baseado nos resultados preliminares obtidos. No ataque anterior, escolhe-se um bloco grande de texto, nele pode-se escolher um bloco pequeno de texto.

Texto Cifrado Escolhido O criptoanalista escolhe diferentes textos cifrados e tem acesso a textos planos, tendo como trabalho principal deduzir a chave.

Nota-se que a escolha do ataque est totalmente ligada ao nmero de informaes em poder de quem decidir o tipo de ataque, conforme TABELA 3.2.

TABELA 3.2 Tipos de ataques a mensagens criptografadas (STALLINGS, 1999)

34

Tipo de Ataque Texto cifrado

Informaes em poder do criptoanalista O Algoritmo Texto cifrado a ser decifrado Texto plano conhecido O algoritmo Texto cifrado a ser decifrado Um ou mais pares texto plano texto cifrado com a chave secreta Texto plano escolhido O algoritmo Texto cifrado a ser decifrado O texto plano escolhido pelo criptoanalista em conjunto com o texto cifrado gerado com a chave secreta Texto cifrado escolhido O algoritmo Texto cifrado a ser decifrado O texto cifrado escolhido pelo criptoanalista em conjunto com o texto plano decifrado com a chave secreta Texto plano escolhido O algoritmo Adaptado Texto cifrado a ser decifrado O texto plano escolhido pelo criptoanalista em conjunto com o texto cifrado gerado com a chave secreta O texto cifrado escolhido pelo criptoanalista em conjunto com o texto plano decifrado com a chave secreta

Seria muito fcil para o criptanalista pesquisar todas as possveis chaves no algoritmo utilizado pelo imperador Jlio Csar, pois como foi visto s existiriam 25. A este tipo de ataque, chama-se de Fora Bruta, porm na moderna criptografia a pesquisa exaustiva da chave pode ser impossvel, TABELA 3.3. TABELA 3.3 Tempo mdio gasto em relao ao tamanho da chave 3 chave (bits) 32 56 128 Nmero de Chaves 232=4.3 x 109 256=7.2 x 1016 2128=3.4 x 1038 Tempo Mdio 231 s = 35.8 min 255 s = 1142 anos 2127 s = 5.4 x 1024 anos

3 .7 Esteganografia
Um bom sistema criptogrfico no necessita de Esteganografia , tcnicas para esconder as mensagens de maneira que as mesmas passem despercebidas. Como exemplo, pode-se citar uma carta escrita com tinta invisvel.

35 Existem hoje diversos programas que substituem o bit menos significativo de uma imagem pelos bits da mensagem que se quer esconder. Como o olho humano no percebe tais variaes, a mensagem intercalada no altera a visualizao da imagem (SCHNEIER, 1996).

3 .8 DES
Data Encryption Standard o padro adotado a partir de janeiro de 1977 pelo National Bureau of Standard (NBS, 1977), para departamentos e agncias do governo federal americano, bem como para qualquer outra entidade que deseje us-lo para obter proteo criptogrfica. O DES est sendo substitudo pelo novo padro, que se chama AES - Advanced Ecryption System (NIST, 1998). Apresentar-se- abaixo o funcionamento do algoritmo de criptografia DES, FIGURA 3.4, que a modificao do sistema de Meyer, desenvolvido pela IBM (SCHNEIER, 1996) , mostrando, com detalhes, como um bloco de 64 bits de texto plano percorre at se transformar em texto cifrado. A permutao inicial IP o primeiro passo do algoritmo, e nada mais que uma funo que muda as posies dos bits seguindo uma matriz 64 posies, conforme exemplo abaixo (CARVALHO, 2000):

58 50 42 34 26 18 10 IP = 62 54 46 38 30 22 14 57 49 41 33 25 17 9

2 60 52 44 36 28 20 12 6 64 56 48 40 32 24 16 1 59 51 43 35 27 19 11 5 63 55 47 39 31 23 15

4 8 3 7

61 53 45 37 29 21 13

O primeiro bit vai para posio 58, o segundo para posio 50, o terceiro para posio 42 e assim por diante .Tanto a permutao inicial quanto a permutao inicial invertida no tm muita importncia quanto ao aspecto de segurana do algoritmo.

36

FIGURA 3.4 Transformao do Texto plano em texto cifrado DES

No segundo passo, dividiu-se o bloco permutado em dois, esquerda (Ln) e direita (Rn) e aplicou-se as 15 interaes, pois a 16 diferente das anteriores. Depois, juntouse direita (R16) e esquerda (L16) e aplicou-se a permutao inicial invertida ou permutao final, conforme exemplo abaixo:

37 40 IP-1 = 38 36 34 8 48 16 56 24 64 32 39 6 46 14 54 22 62 30 37 4 44 12 52 20 60 28 35 2 42 10 50 18 58 26 33 7 47 15 55 23 63 31 5 45 13 53 21 61 29 3 43 11 51 19 59 27 1 41 9 49 17 57 25

Na figura 3.5, mostra-se como funciona uma interao no algoritmo DES. O bloco da direita (Ri) passa por uma funo de permutao, que alm de trocar, expande de 32 bits para 48 bits. Existe a necessidade de expandir o bloco para poder realizar o passo seguinte que a operao de XOR (ou - exclusivo) com a chave (Ki) para que esta operao possa ser realizada o algoritmo transforma a chave de 56 bits em uma chave de 48 bits.

FIGURA 3.5 Uma interao do DES

A matriz de permutao e expanso, tambm conhecida como tabela de expanso (ET):

38

32 8 ET = 16 24

1 9 17 25

10 11 12 13 12 13 14 15 16 17 18 19 20 21 20 21 22 23 24 25 26 27 28 29 28 29 30 31 32 1

O passo seguinte uma funo de substituio e compresso denominada SBox, a qual tem 8 diferente caixas (matrizes), cada S-Box tem 6 bits de entrada e 4 bits de sada, necessitando de 256 bytes de memria, conforme FIGURA 3.6.

FIGURA 3.6 Estrutura do S-BOX

Cada matriz S-Box tem 4 linhas e 16 colunas. A entrada 110011,- que so as posies de 1 a 6 de uma palavra de 48 bits, o primeiro e o ltimo bits combinados formam 11 que 3 em decimal,- corresponde linha 3 da S1,- os 4 bits do meio formam o 1001 que 9 em decimal, coluna 9 da mesma S-Box,- ento, ao se localizar, na matriz S1 o valor correspondente linha 3, coluna 9 que 11 em decimal e 1011 binrio, lembrando que se deve comear a contar da linha 0 e coluna 0. No exemplo acima, tem-se uma entrada na funo S-Box de 110011 e uma sada 1011. S1
14 0 4 5 4 15 1 12 13 7 14 8 1 4 8 2 2 14 13 4 15 2 6 9 11 13 2 1 8 1 11 7 3 10 15 5 10 6 12 11 6 12 9 3 12 11 7 14 5 9 3 10 9 5 10 0 0 3 5 6 7 8 0 13

39

S2
15 3 0 13 1 13 14 8 8 4 7 10 14 7 11 1 6 15 10 3 11 2 4 15 3 8 13 4 4 14 1 2 9 12 5 11 7 0 8 6 2 1 12 7 13 10 6 12 12 6 9 0 0 9 3 5 5 11 2 14 10 5 15 9

S3
10 13 13 1 0 7 6 10 9 0 4 13 14 9 9 0 6 3 8 6 3 4 15 9 15 6 3 8 5 10 0 7 1 2 11 4 13 8 1 15 12 5 2 14 7 14 12 3 11 12 5 11 4 11 10 5 2 15 14 2 8 1 7 12

S4
7 13 10 3 13 8 6 15 14 11 9 0 3 5 0 6 0 6 12 10 6 15 11 1 9 0 7 13 10 3 13 8 1 4 15 9 2 7 1 4 8 2 3 5 5 12 14 11 11 1 5 12 12 10 2 7 4 14 8 2 15 9 4 14

S5
2 14 4 11 12 11 2 8 4 2 1 12 1 12 11 7 7 4 10 1 10 7 13 14 11 13 7 2 6 1 8 13 8 5 15 6 5 0 9 15 3 15 12 0 15 10 5 9 13 3 6 10 0 9 3 4 14 8 0 5 9 6 14 3

S6
12 10 9 4 1 15 14 3 10 4 15 2 15 2 5 12 9 7 2 9 2 12 8 5 6 9 12 15 8 5 3 10 0 6 7 11 13 1 0 14 3 13 4 1 4 14 10 7 14 0 1 6 7 11 13 0 5 3 11 8 11 8 6 13

S7
4 13 1 6 11 0 4 11 2 11 11 13 14 7 13 8 15 4 12 1 0 9 3 4 8 1 7 10 13 10 14 7 3 14 10 9 12 3 15 5 9 5 6 0 7 12 8 15 5 2 0 14 10 15 5 2 6 8 9 3 1 6 2 12

40 S8
13 1 7 2 2 15 11 1 8 13 4 14 4 8 1 7 6 10 9 4 15 3 12 10 11 7 14 8 1 4 2 13 10 12 0 15 9 5 6 12 3 6 10 9 14 11 13 0 5 0 15 3 0 14 3 5 12 9 5 6 7 2 8 11

Aps este passo, o algoritmo passa por uma nova funo de permutao denominada de Wire-Crossing (WC), P-Box ou permutao direta.

WC =

16 2

7 20 21 29 12 28 17 8 24 14 32 27 3

1 15 23 26

5 18 31 10 4 25

9 19 13 30

6 22 11

E depois realiza a operao XOR com o bloco esquerdo (Ln), gerando, assim, o novo bloco direito (Ri+1). O novo bloco esquerdo (Ln+1) recebe o valor do bloco direito (Ri) antes da interao. Procurando entender melhor o que ocorre com a chave K de 56 bits durante cada interao do algoritmo DES, pode-se dizer que ela sofre uma diviso similar ocorrida com o bloco, gerando duas palavras de 28 bits esquerda e direita - as quais passam por uma funo que aplica uma rotao circular esquerda, que a cada

interao muda o nmero de bits a ser rotacionado TABELA 3.4:

TABELA 3.4 Interaes X Nmero de bits Interaes N de bits 1 1 2 1 3 2 4 2 5 2 6 2 7 2 8 2 9 1 10 11 12 13 14 15 16 2 2 2 2 2 2 1

Aps a rotao, as duas palavras de 28 bits so unidas novamente e passam por uma funo de permutao e compresso, gerando Ki que aplicado na primeira operao XOR de cada interao do DES. Observa-se que Ki de 48 bits e para a prxima interao, a chave ser a unio da esquerda e direita sem passar pela funo de permutao e compresso. A FIGURA 3.7 demonstra exatamente como ocorre a transformao da chave em cada interao.

41

FIGURA 3.7 A chave no DES

Tambm ser apresentada a matriz de compresso e permutao PC: 14 17 11 24 01 05 03 28 15 06 21 10 PC = 23 19 12 04 26 08 16 07 27 20 13 02 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32

Apresenta-se o algoritmo DES, que, por muito tempo, foi alvo de fortes suspeitas por parte da comunidade internacional, inclusive o governo americano seria capaz de decriptografar as mensagens cifradas com o DES. As crticas tambm recaam quanto ao tamanho da chave, nmeros das interaes e como foram desenhadas as SBoxs, porm no existem explicaes de como foram criadas. A IBM alega que foram gastos 17 anos de muita criptoanlise para a concepo das mesmas.

3 .9 RSA
O artigo de Diffie e Hellman (1976) introduziu um novo conceito em criptografia: o de chave pblica ou chave assimtrica. Em 1978 trs pesquisadores do MIT Ron Rivest, Adi Shamir e Len Adleman criaram um mtodo para obter

42 assinaturas digitais e um sistema de criptografia de chave pblica, batizado com as iniciais de seus sobrenomes (STALLINGS, 1999). Todos conhecem a chave pblica que cifrou a mensagem e somente o destinatrio possui a chave correspondente a privada para poder decifr-la. J a

assinatura digital funciona de forma inversa, existe uma chave pblica, que garante a autenticidade de quem assinou a mensagem com uma chave privada correspondente. O RSA o algoritmo de chave pblica mais usado e testado, e mostrou-se extremamente forte, quando usado adequadamente. Ele baseia-se no fato de que extremamente difcil fatorar nmeros muito grandes. (CARVALHO, 2000).

3.9.1 Descrio do algoritmo


Para criptografar uma mensagem M, dividi-se o resultado da exponenciao de M (texto plano) por e (chave pblica) pelo mdulo n e o resto desta diviso ser C (texto cifrado). C = Me mod n

E para decifrar, dividi-se o resultado da exponenciao de C (texto cifrado) por d (chave privada) pelo mesmo mdulo n e o resto desta diviso ser M (texto plano).

M = Cd mod n

Para o algoritmo RSA funcionar so necessrios alguns passos para gerar as chaves bem como o mdulo. Primeiro gera-se o mdulo n, que oriundo da multiplicao de dois nmeros primos p e q , os quais devem ser muito grandes e tambm mantidos em segredo, causando, assim, uma enorme dificuldade para se conseguir fatorar n , evitando-se saber o jeito que d (chave privada) deriva de e (chave pblica) . (RIVEST;SHAMIR;ADLEMAN, 1976).

43 n=puq Escolhe-se a chave privada d que dever ser um nmero primo menor que n e tambm dever ser primo relativo a n. Utilizando a funo de Euler: I (n) = (p-1)u(q-1) mdc(d,I (n)) = 1 (condio para ser primo relativo) ento : e { d-1 mod I (n) Por exemplo, cria-se uma aplicao com a finalidade de calcular as chaves e o mdulo do algoritmo RSA. FIGURA 3.8.

FIGURA 3.8 Calculadora RSA

Estes valores encontram-se registrados na TABELA 3.5. TABELA 3.5 Chaves RSA Exemplo

Chave Pblica 13

Mdulo 51

Chave Privada 5

44

Considerando estes valores, criptografando:

M = 011001 = 25

Obtm-se: E(M) = C = 2513 mod 51 = 43 = 101011

Por outro lado, decifrando:

C = 101011 = 43 D(C) = M = 435 mod 51 = 25 = 011001

Apresenta-se o algoritmo RSA, este considerado

de execuo

lenta

(CARVALHO, 2000), porm, com o considervel aumento da capacidade computacional, o RSA passou a ser mais utilizado.

3 .10 Aplicaes
Ao longo da histria, sempre foi muito necessria a utilizao da criptografia, e, na atualidade, esta necessidade cresceu de maneira exponencial em funo da internet, e-commerce, telefonia celular, transaes financeiras e muitas outras aplicaes. Acredita-se que esta necessidade do mundo real migrou para os dispositivos eletrnicos utilizados na atualidade. Os intrusos (inimigos) tentam de toda forma conseguir tirar alguma informao para fraudar os remetentes, tais como, clonar cartes de crdito, falsificar documentos diversos, clonar telefones celulares, interceptar mensagens importantes, desviar transferncias bancrias etc. Como se verifica ao longo deste captulo, os estudos dos algoritmos para cifrar e decifrar mensagens sempre foram da maior importncia para a atividade militar e comercial, obtendo, assim, significativos recursos para pesquisa e implementao de

45 novos aplicativos. No que tange segurana de uma nao, a criptonalise se faz muito necessria no processo de espionagem.

46

Captulo 4 Anlise para criao de um cifrador usando redes neurais artificiais.

4.1 Princpios
As propostas para construo de algoritmos de criptografia esto baseadas no mais complexo processo de comunicao existente na natureza, a comunicao entre uma clula (neurnio) e outra, ou seja, na troca de informao entre as mesmas. Ao se analisar o modelo de neurnio artificial, sero utilizados como entradas o texto plano, os pesos (sinapes) como chave de nosso algoritmo e o net como texto cifrado. Tambm procurou-se enquadrar esses cifradores nos critrios estabelecido em 1973 pelo ainda chamado NBS (National Bureau of Standard), hoje NIST (National Institute of Standards and Technology), o qual editou uma proposta de como deveriam ser os algoritmos de criptografia, utilizando os critrios abaixo (SCHNEIER, 1996): 1 O algoritmo deve prover o mais alto nvel de segurana. 2 O algoritmo deve estar totalmente especificado e de ser fcil entendimento. 3 A segurana deve estar na chave e no em segredos no prprio algoritmo. 4 O algoritmo deve estar disponvel a todos. 5 O algoritmo deve adaptar-se a diversas aplicaes. 6 O algoritmo deve ter uma implementao econmica em dispositivos eletrnicos. 7 O algoritmo deve ser eficiente. 8 O algoritmo deve ser fcil de validar. 9 O algoritmo deve poder ser exportado.

47

4.2 Primeira proposta


Sabe-se que as redes neurais artificiais so capazes de apreender diversas

funes (MINSKY;PARPERT, 1969). Partindo deste pressuposto e admitindo que a cada treinamento as redes so inicializadas com pesos diferentes, pensa-se, ento, em utilizar a funo g(M) = M , em que M a mensagem, e C = M iw (peso da entrada) + b1 (bias) o valor da sada do neurnio da camada escondida, texto cifrado. O destinatrio deve saber o valor de lw e de b2 , obtendo, assim, o texto plano M = C lw (peso da sada) + b2 (bias). FIGURA 4.1

iw
b1

lw
b2

FIGURA 4.1 Rede direta

Na primeira proposta, utiliza-se uma rede neural artificial do tipo feedforward com o algoritmo de treinamento backpropagation, contendo um neurnio na camada de entrada, um neurnio na camada escondida e um neurnio na sada. Nota-se que no seriam necessrios mais neurnios na camada intermediria em razo da natureza da funo matemtica que essa rede deveria apreender . Aps a escolha da arquitetura da rede, passa-se ao processo de treinamento. Escolhe-se, para conjunto de exemplos, 50 nmeros entre 0 e 1000 randomicamente que so as entradas, e, como sada desejada, utiliza-se os mesmos 50 nmeros, j que a funo que a rede deve apreender g(M) = M , ou seja, sada desejada igual entrada. No que tange funo de sada dos neurnios tanto da camada escondida quanto da camada de sada de nossa rede, a escolha recaiu em uma funo de linha explicada no 2 captulo, a qual retorna a valores absolutos e no valores dispostos em um intervalo como nas funes tangentes hiperblicas ou sigmoidais.

48 Utilizando o algoritmo otimizado de Levenberg-Marquardt2, realizou-se o

processo de treinamento de nossa rede, cujos dados obtidos esto na TABELA 4.1.

TABELA 4.1 Pesos e bias obtidos aps o treinamento de nossa rede. Chaves iw b1 lw b2 Valor -1.1847859 0.1533674 -0.8440343422147 0.12944738285753

A mensagem a ser cifrada foi divida em blocos iguais de 24 bits, os quais foram considerados individualmente com M . No exemplo abaixo, observa-se como funciona a primeira proposta deste trabalho de cifrador, utilizando uma rede neural artificial.

Exemplo:

M = 111111111111111111111111 = 16777215 C = 16777215 u -1.1847859 + 0.1533674 = -19877407.6 Para representar o sinal e o nmero de casas decimais assim se resolveu: quanto ao sinal, usa-se a notao clssica: se for positivo 0 (zero), negativo 1 (um); e quanto ao nmero de casas decimais, resolveu-se usar 3 (trs) bits, o que permite chegar a 8 casas decimais, garantindo, ento, a preciso necessria para um perfeito funcionamento de tal algoritmo. Sendo assim, o texto cifrado ser 10001011110110010000110100111100 (2346257724), o primeiro bit 1 que representa o sinal negativo, seguido de 000 que representam uma casa decimal - em funo de utilizar-se somente trs bits para representao de no mximo 8 casas decimais -, e o prprio nmero sem a vrgula e o sinal 1011110110010000110100111100 (198774076).

- No apndice A, apresenta-se tabela contendo todas as funes de treinamento de redes neurais.

49 Ao receber o texto cifrado - 10001011110110010000110100111100 - o

destinatrio deve verificar o sinal - que negativo - e o nmero de casas decimais - que uma -, ento decifrar a mensagem usando suas chaves lw e b2 . C = 1011110110010000110100111100 C = 198774076 : - 10 C = -19877407.6 ento: M = -19877407.6 * -0.8440343422147 + 0.12944738285753 = 16777214.78 arredondando: M = 16777215

Ao analisar essa primeira proposta sob a luz das recomendaes do NIST, verificou-se que ela atende perfeitamente as mesmas, porm apresenta uma fragilidade no que tange linearidade da substituio do texto plano pelo texto cifrado, como ser visto na TABELA 4.2, facilitando, assim, qualquer tipo de ataque de criptonalise.

TABELA 4.2 Texto Plano e Texto cifrado 1 proposta.

Texto Plano 0 1 2 3 1000000

Texto Cifrado 0.1533674 -1.0314185 -2.2162044 -3.4009903 -1184785.747

Outra fragilidade observada nesta proposta exatamente quanto repetio de valores. Supondo que se desejasse trafegar vrios blocos de 24 bits iguais, fato muito

50 comum na criptografia atual arquivos com imagem, som etc. , logo o criptoanalista reconheceria um padro , o que tambm o levaria a decifrar a mensagem.

4.3 Segunda Proposta


Visando a eliminar a linearidade da primeira proposta e permanecendo com a

funo g(M) = M , alterou-se a arquitetura dessa rede e se passou a utilizar uma rede sada do neurnio da camada escondida , Ck = (Mk iw) + ( rw Ck-1) + b1 , ser o texto cifrado. O destinatrio deve saber o valor de lw e de b2 , conseguindo, assim, o texto plano Mk =(Ck - Ck-1 rw) lw + b2 . FIGURA 4.2.

de Elman, a qual tem uma recorrncia na camada intermediaria. Neste caso, o valor da

rw M iw
b1

lw
b2

FIGURA 4.2 Rede de Elman

Utilizou-se o algoritmo de treinamento backpropagation,

um neurnio na

camada de entrada, um neurnio na camada escondida e um neurnio na sada, como pode ser visto na FIGURA 4.2. Nesta proposta tambm no so necessrios mais neurnios na camada intermediria em razo da natureza da funo matemtica que essa rede deveria apreender . Aps a escolha da arquitetura da rede, passou-se ao processo de treinamento. Utilizou-se o mesmo conjunto de treinamento da primeira proposta e tambm foi mantida a escolha das funes de sada dos neurnios da camada intermediria e da camada sada. Utilizando o algoritmo otimizado de Levenberg-Marquardt, foi realizado o

processo de treinamento dessa rede cujos dados obtidos esto na TABELA 4.3.

51

TABELA 4.3 Pesos e bias 2 proposta. Chaves Iw b1 Rw Lw b2 Valor 0.7139376 -1.4890783 -0.3515081 1.40068261107608 2.08572613640992

Nesta proposta, a mensagem a ser cifrada foi tambm divida em blocos iguais de 24 bits, os quais foram considerados individualmente com M. No exemplo abaixo, observa-se como funciona esta proposta de cifrador, utilizando uma rede neural artificial de Elman. Exemplo:

M0 = 111111111111111111111111 = 16777215 C0 = 16777215 u 0.7139376 + 0 u -0.3515081 + -1.4890783 = 11977883 M1 = 111111111111111111111111 = 16777215 C1 = 16777215 u 0.7139376 + 11977883 u -0.3515081 + -1.4890783 = 7767560 M2 = 111111111111111111111111 = 16777215 C2 = 16777215 u 0.7139376 + 7767560 u -0.3515081 + -1.4890783 = 9247523 Manteve-se nesta proposta as mesma decises quanto ao sinal e ao nmero de casas decimais da proposta anterior, bem como quanto ao tamanho do bloco de texto cifrado em 32 bits. Ao analisar a proposta da rede Elman sob a luz das recomendaes do NIST, verificou-se que ela tambm atende perfeitamente s mesmas, porm nesta a fragilidade

52 apresentada na anterior no existe em funo da recorrncia na camada escondida, fato este que elimina a linearidade da substituio do texto plano pelo texto cifrado. Na proposta anterior, caso o criptoanalista repetisse M (texto plano), logo

descobriria seu equivalente em C (texto cifrado). J na proposta atual, o mesmo ter pela frente um grau de dificuldade bastante elevado, porque C1 (texto cifrado) agora depende do C0 ( texto cifrado anterior) , ver TABELA 4.4 TABELA 4.4 Texto Plano e Texto cifrado 2 proposta. Texto Plano 16777215 16777215 16777215 12349870 134678 12349870 12349870 Texto Cifrado 11977883 7767560 9247523 5566456 -1860504 9471017 5487896

Em razo do tamanho do bloco a trafegar no meio inseguro, aps a vigsima repetio - fato constatado nos testes realizados - do valor de M (texto plano), o texto cifrado (C) tambm passa a ter valores iguais, o que no descarta o alto grau de segurana deste algoritmo, pois todos os algoritmos tm repetio aps atingir o tamanho do bloco ou da chave.

4.4 Terceira Proposta


Visando tambm a eliminar a linearidade da primeira proposta e a prover maior segurana ao algoritmo, a terceira proposta altera a arquitetura da rede neural artificial. Enquanto nas anteriores, tinha-se somente um neurnio na camada escondida, na atual tem-se quatro, deciso que levaria o texto cifrado (C) a ter o tamanho quatro vezes maior que o texto plano (M), o que pode inviabilizar a proposta deste trabalho. Para solucionar este problema, resolveu-se que o texto cifrado (C) seria a sada de um s neurnio da camada escondida e que se utilizaria outras redes do tipo feedforward com o algoritmo de treinamento backpropagation, com o objetivo de apreenderem os

valores das sadas dos outros trs neurnios da camada escondida. FIGURA 4.3.

53

NET A

NET B

NET C

NET D

FIGURA 4.3 Rede Principal e as rede secundrias

54 Com o mesmo conjunto de treinamento, funes de transferncia e algoritmo de treinamento das propostas anteriores, realizou-se o treinamento da rede principal no qual foram obtidos os valores da TABELA 4.5.

TABELA 4.5 Pesos e bias da rede principal 3 proposta.

Chaves iw1,1 iw1,2 iw1,3 iw1,4 b1,1 b1,2 b1,3 b1,4 lw1,1 lw1,2 lw1,3 lw1,4 b2,1

Valor 0.2668579 0.1503838 0.9468040 0.4572495 0.5746335 -0.6685121 -0.0950285 0.7685239 0.85079061265215 -0.15360837609812 1.03954485396513 -0.41155930154797 -0.17650225940755

Aps o treinamento da rede principal, criou-se quatro redes secundrias as quais se denominou de Net-A, Net-B, Net-C e Net-D. Para iniciar o treinamento das redes secundrias, utilizou-se como conjunto de treinamento as sadas dos neurnios das camadas escondidas da rede principal. Para entrada de Net-A tem-se a sada do neurnio A e para sada desejada de A as sadas dos neurnios B,C e D; para entrada de Net-B tem-se a sada do neurnio B e para sada desejada de B as sadas dos neurnios A,C e D; para entrada de Net-C tem-se a sada do neurnio C e para sada desejada de C as sadas dos neurnios A,B e D; para entrada de Net-D tem-se a sada do neurnio D e para sada desejada de D as sadas dos neurnios A,B e C. Treinou-se uma a uma e foram obtidos os resultados apresentados na TABELA 4.6.

55 TABELA 4.6 Pesos e bias das redes secundrias 3 proposta.


Chave iw11 iw12 iw13 iw14 b11 b12 b13 b14 lw1 Net-A 1.54551062015900 0.86378619896213 0.81652280893915 0.13882939521477 0.43398286002001 0.05484647676547 -0.26116675586408 -0.98919572412899 0.41033525520790 1.53484287807244 0.58361739688375 lw2 0.56254174137130 0.39016120007357 -0.05891815687074 lw3 -0.80104738785000 0.87150409609577 0.91699049521632 lw4 0.70241068557880 0.91648961733835 0.81840847049932 b21 b22 b23 -0.71565547672133 -1.68711047036515 0.58291915471560 Net-B 0.25902658634663 -0.24050634656418 -1.34734004924228 -1.54998829144672 0.71153721332213 -0.48361911170240 -0.85165991730397 -0.92400208126825 -0.16333605823241 -1.91841717561257 -0.15712607684112 -0.96087645315096 -1.62215586199499 -0.59446616691731 -0.77741832381187 -1.96674506483073 -0.89773919958698 -0.34727816703311 -2.42119613848440 -1.11531018763646 0.42945630659217 0.78220011435019 0.83035738281943 Net-C -0.19315668357620 0.38503518163849 0.25290171309188 -0.35667862673513 -0.86846504086335 0.44446046799954 -0.09871269408809 0.18689875543684 -0.62754592822840 0.48514985169971 -0.29060031624009 0.65640500539179 0.65973221687626 0.59839528634476 -0.14872834618233 0.84641175469156 0.21831826697662 0.15276717112739 0.60428650970973 -0.39585310388171 -0.27856365693884 -0.55469644215418 0.39161303609192 Net-D 0.33029277693395 0.86589175640465 0.44895545134545 1.04133733105042 0.07328594220423 -0.32627355009277 -0.03801852573852 -0.14607025126306 -0.10786364981355 0.40647889542090 0.24866145625698 0.74141822351953 1.01135787657722 0.50618688875304 0.61256695383118 -0.74465004615953 0.50536496335317 -0.28594111214442 -0.33301505699199 1.27079853091819 0.35744254552177 -0.69803420270915 -1.33460195824514

Nesta proposta, a mensagem a ser cifrada foi tambm divida em blocos iguais de 24 bits, os quais foram considerados individualmente com M. No exemplo abaixo, observa-se como funciona esta proposta de cifrador, utilizando uma rede neural artificial principal e redes neurais secundrias.

Exemplo:

M0 = 111111111111111111111111 = 16777215

a = C0 = 16777215 u 0.2668579 + 0.5746335 = 4477132.93


M1 = 111111111111111111111111 = 16777215

56

b = C1 = 16777215 u 0.1503838 + - 0.6685121 = 2523020.67


M2 = 111111111111111111111111 = 16777215

c = C2 = 16777215 u 0.9468040 + - 0.0950285 = 15884734.2


M3 = 111111111111111111111111 = 16777215

d = C3 = 16777215 u 0.4572495 + 0.7685239 = 7671373.93


Manteve-se nesta proposta as mesma decises quanto ao sinal e ao nmero de casas decimais da proposta anterior, bem como quanto ao tamanho do bloco de texto cifrado em 32 bits. Ao analisar a 3 proposta sob a luz das recomendaes do NIST, verificou-se que ela tambm atende perfeitamente s mesmas, porm nesta tambm a fragilidade apresentada na primeira no existe em funo da arquitetura proposta e do algoritmo de substituio do neurnio na camada escondida que envia o texto cifrado, o que elimina a linearidade da substituio do texto plano pelo texto cifrado. Nesta proposta, utilizou-se quatro neurnios na camada escondida para facilitar a visualizao do modelo, porm pode-se estender ao nmero de neurnio, elevando, assim, a sua segurana.

4.5 Caractersticas e funcionalidades das trs propostas


Notou-se como caractersticas das trs propostas que elas so algoritmos de bloco com chave assimtrica, em que os pesos e bias da camada de entrada (chave para cifrar) tm um valor diferente dos pesos e bias da camada de sada (chave para decifrar); que no so necessrios algoritmos especiais para gerar a chave, pois o prprio

treinamento das rede neurais j gera as chaves diferentes sempre que se submete a rede a um novo processo de treinamento - TABELA 4.7-, bem como que no so necessrios nmeros primos muito grandes, fato que dificulta bastante o processo de escolha das

57 chaves. Tanto remetente quanto destinatrio podem realizar o treinamento das redes neurais artificiais e distribuir as chaves (pesos e bias), as quais devem ser mantidas secretas. TABELA 4.7 Chaves geradas nos diferentes treinamentos 1 proposta Chaves iw b1 lw b2 1 Treinamento -1.1847859 0.1533674 -0.8440343422147 0.12944738285753 2 Treinamento 1.0548574 -0.4912096 0.94799543285452 0.46566453049123 3 Treinamento 0.7577838 0.5014847 -0.84403434221470 -0.66177811055938

O tamanho do bloco est diretamente ligado ao tamanho do texto cifrado em funo da preciso necessria para recuperar o valor do texto plano. Caso se desejasse criptografar um bloco de 64 bits, o texto cifrado teria 80 bits. Essa uma caracterstica marcante nas propostas apresentadas , devido o acrscimo de 25% no tamanho do texto cifrado em relao ao texto plano. A primeira proposta apresenta uma enorme fragilidade como j foi comentado, porm as outras duas so altamente seguras e com a implementao em computadores e outros dispositivos eletrnicos bastante simples, o algoritmo de treinamento atingia o erro desejado de 1e-25 em apenas 6 pocas, em poucos segundos. Acredita-se que o cifrador neural vem para ampliar o leque de aplicaes das redes neurais.

58

Captulo 5 Criptoanlise usando redes neurais artificiais.


A necessidade de se avaliar nossas propostas e o alto grau de segurana do RSA e a simples implementao do mesmo, levou a avaliao da utilizao das redes neurais artificiais na criptoanlise.

5.1 Ataques ao RSA


Resolveu-se atacar o RSA em funo de ser um algoritmo de chave pblica, o que facilitaria em muito a obteno de pares de texto plano e texto cifrado possibilitando um ataque do tipo texto plano escolhido. Tambm se acha muito interessante e conhecida a forma como so calculadas as chaves utilizadas neste famoso algoritmo de criptografia, o que tambm incentivou a realizao a um ataque direto a elas. O desafio de realizar ataques a um dos mais importantes algoritmos criptogrficos da atualidade despertou um interesse extra que fez utilizao neste treabalho um enorme nmero de configuraes de redes neurais artificiais e a todo momento pensar em ataques diferentes os quais se passar a relatar.

5.1.1 Ataque direto s chaves do RSA


A primeira proposta de ataque recai na seguinte questo: sabendo o valor da chave pblica (e) , uma rede neural artificial seria capaz de descobrir o valor da chave privada (d) ? Para facilitar a construo dos diversos conjuntos de treinamentos necessrios para o aprendizado das redes utilizadas neste trabalho, construu-se uma aplicao em DELPHI - Figura 5.1- , que gera, de forma automtica, chaves pblicas (e), chaves privadas (p) e mdulos (n) . Vale ressaltar que a aplicao escolhe de forma aleatria pares de nmeros primos (p, q) menores que 2000, o que de certa forma reduz o nmero de possveis chaves.

59

FIGURA 5.1 Aplicao para gerar o conjunto de treinamento

O primeiro conjunto de treinamento deste trabalho tem 29 pares, sendo os valores das chaves pblicas as entradas e os valores das chaves privadas as sadas, os quais foram transferidos para o MATLAB, software escolhido para realizar o treinamento e a avaliao dos resultados de nossas propostas. Realizou-se muitos experimentos, e abaixo foram relacionados os mais

significativos em forma de ficha.

1. Rede: Tipo da rede: Entradas: Camadas escondidas: Neurnios: Sadas: Algoritmo de treinamento: Erro mnimo obtido: Dados: Concluso: Direta 1 1 8 1 BFG 373872 Decimal A rede no conseguiu apreender. Na prxima tentativa aumentar o nmero de neurnios da camada intermediria

60 2. Rede: Tipo da rede: Entradas: Camadas escondidas: Neurnios: Sadas: Algoritmo de treinamento: Erro mnimo obtido: Dados: Concluso: Direta 1 1 16 1 BFG 373872 Decimal Tentou-se diminuir o erro mnimo, dobrando o nmero de neurnios, o que no deu certo.

3. Rede: Tipo da rede: Entradas: Camadas escondidas: Neurnios: Sadas: Algoritmo de treinamento: Erro mnimo obtido: Dados: Concluso: Direta 1 2 16 1 BFG 373872 Decimal Mudou-se para duas camadas intermedirias, porm nada mudou em relao ao erro.

4.

Rede: Tipo da rede: Entradas: Camadas escondidas: Neurnios: Sadas: Algoritmo de treinamento: Erro mnimo obtido: Dados: Concluso: Direta 1 1 64 1 BFG 373872 Decimal Incrementou-se o nmero de neurnios da camada escondida, mas no se obteve a resposta desejada. Passou-se a usar uma rede recorrente.

61

5.

Rede: Tipo da rede: Entradas: Camadas escondidas: Neurnios: Sadas: Algoritmo de treinamento: Erro mnimo obtido: Dados: Concluso: Recorrente Elman 1 1 8 1 BFG 373872 Decimal Na primeira tentativa, usando este tipo de rede, no se obteve sucesso, porm se acreditou que aumentando o nmero de neurnios nosso erro poder diminuir.

6.

Rede: Tipo da rede: Entradas: Camadas escondidas: Neurnios: Sadas: Algoritmo de treinamento: Erro mnimo obtido: Dados: Concluso: Recorrente Elman 1 1 16 1 BFG 273903 Decimal O erro diminui, porm est muito longe do desejado. Observando o ocorrido, procurou-se aumentar novamente o nmero de neurnios.

7.

Rede: Tipo da rede: Entradas: Camadas escondidas: Neurnios: Sadas: Algoritmo de treinamento: Erro mnimo obtido: Dados: Concluso: Recorrente Elman 1 1 32 1 BFG 398351 Decimal O erro cresceu, o que prova que a deciso de aumentar o nmero de neurnios nem sempre benfica.

62 8. Rede: Tipo da rede: Entradas: Camadas escondidas: Neurnios: Sadas: Algoritmo de treinamento: Erro mnimo obtido: Dados: Concluso: Recorrente Elman 1 2 8 1 BFG 247895 Decimal Mudou-se o nmero de camadas intermedirias, o erro diminui, porm muito longe do erro mnimo desejado.

As diversas redes testadas acima tinham como conjunto de treinamento entradas e sadas em decimal, e sofreram alteraes nos nmeros de neunios, nmero de camadas e arquitetura, porm nenhuma delas conseguiu apreender os pares

apresentados nos perodos de treinamento, o que levou a repensar o modelo e decidir pela mudana do conjunto de treinamento para binrio, usando o comando do

MATLAB - de2bi(p , left-msb) - ento expusou-se o mesmo a novos treinamentos.

9.

Rede: Tipo da rede: Entradas: Camadas escondidas: Neurnios: Sadas: Algoritmo de treinamento: Erro mnimo obtido: Dados: Direta 16 1 16 16 LM 2.86178e-031 Binrio

Os resultados obtidos na nona rede foram bastante animadores,pois, ao se dar entrada em qualquer um dos valores desse conjunto de treinamento, notou-se que a rede realmente apreendeu, ento demos entrada em um valor que no constava do conjunto de treinamento o par 137,47 - a rede devolveu como resposta 1075, logo notou-se que a mesma no conseguia extrapolar e interpolar. Tambm neste momento, observouse que o conjunto de treinamento no poderia ser avaliado de forma correta, porque no se exps rede o valor do mdulo, valor de extrema relevncia para o RSA.

63 Fez-se as alteraes necessrias para corrigir os problemas anteriores e abandonou-se, definitivamente, conjuntos com valores decimais; logo a seguir, reiniciase a fase de treinamento de nossas redes.

10. Rede: Tipo da rede: Entradas: Camadas escondidas: Neurnios: Sadas: Algoritmo de treinamento: Erro mnimo obtido: Dados: Direta 16 1 32 16 GDX 3.64704e-011 Binrio

A dcima rede, com a incluso do mdulo no conjunto de treinamento, teve o comportamento um pouco diferente da rede anterior, porm, ao trocar o algoritmo de treinamento pelo GDX, obteve-se o resultado bastante parecido com o anterior. Expsse os valores 137,466 e se obteve 1983, quando o valor esperado era 47.

11. Rede: Tipo da rede: Entradas: Camadas escondidas: Neurnios: Sadas: Algoritmo de treinamento: Erro mnimo obtido: Dados: Recorrente Elman 16 1 48 16 GDX 4.82952e-011 Binrio

Na dcima primeira rede, alterou-se a arquitetura da rede, porm se obteve o resultado bastante parecido com o anterior. Exps-se os valores 137,466 e se obteve 80, quando o valor correto 47. Realizou-se muitas outras tentativas, no entanto os resultados sempre foram bastante desanimadores, o que leva concluso de que um ataque direto chave do RSA, utilizando redes neurais artificiais, bastante difcil ou quase impossvel em funo de a rede no conseguir interpolar ou extrapolar pontos da funo observada na Figura 5.2 que mostra o grfico de nosso conjunto de treinamento.

64

FIGURA 5.2 Grfico do conjunto de treinamento

5.1.1 Ataque texto plano escolhido ao RSA


Como se sabe no RSA, o remetente possui a chave pblica (e) e o mdulo (n) , e por ser de conhecimento tambm do intruso, este pode gerar um grande conjunto de pares para realizar a criptonalise. Constru-se um cifrador RSA para gerar um conjunto de treinamento que ser composto de pares de textos cifrados na entrada e textos planos na sada. Figura 5.3.

FIGURA 5.3 Cifrador e decifrador RSA

65 O conjunto de treinamento tem 12 pares, sendo os texto cifrado as entradas (P) e texto plano as sadas (T), todos eles foram transferidos para o MATLAB e neste transformados em binrio.

12. Rede: Tipo da rede: Entradas: Camadas escondidas: Neurnios: Sadas: Algoritmo de treinamento: Erro mnimo obtido: Dados: Direta 11 1 16 11 GDX 8.84698e-12 Binrio

A dcima segunda rede tambm conseguiu apreender os pontos do conjunto de treinamento, porm no conseguiu interpolar e extrapolar. Notou-se que o problema desta rede poderia ser o diminuto conjunto de treinamento, ento se resolveu ampliar o nmero de pares para 170.

13. Rede: Tipo da rede: Entradas: Camadas escondidas: Neurnios: Sadas: Algoritmo de treinamento: Erro mnimo obtido: Dados: Direta 11 1 16 11 GDX 6.26803e-5 Binrio

Apesar de ter ampliado o conjunto de treinamento, a rede no conseguiu extrapolar nem interpolar. Passou-se, ento, ltima tentativa que foi a troca da arquitetura direta por uma rede recorrente.

14. Rede: Tipo da rede: Entradas: Camadas escondidas: Neurnios: Sadas: Recorrente Elman 11 1 128 11

66 Algoritmo de treinamento: Erro mnimo obtido: Dados: GDX 7.44623-6 Binrio

Aps longo perodo tentando um ataque que realmente conseguisse decifrar o RSA , acredita-se que, para este tipo de algoritmo de criptografia as redes neurais diretas e de Elman no so eficientes.

5.2 Ataques aos cifradores neurais


Achou-se que seria de suma importncia para este trabalho realizar a criptoanlise dessas propostas, utilizando o tipo de ataque texto plano escolhido e a mesma metodologia dos ataques feito ao RSA. Nas prximas sees, sero descritos os resultados e os detalhes dos ataques realizados a cada uma dessas propostas.

5.2.1 Ataques primeira proposta


Desenvolveu-se um cifrador com os resultados obtidos na primeira proposta do captulo 4 , Figura 5.4 , o qual gerou um conjunto de treinamento, que tem 40 pares, sendo o texto cifrado a entrada e o texto plano a sada, para isto foram transferidos os valores para o MATLAB.

67

FIGURA 5.4 Cifrador neural

Para o primeiro ataque, utilizou-se um rede direta com 24 neurnios na camada de entrada, 48 em uma nica camada intermediaria e 34 neurnios na camada de sada. Como funes de transferncia utilizou-se a tangente hiperblica e linear respectivamente. Como algoritmo de treinamento utilizou-se o GDX. Abaixo esto apresentados os resultados obtidos: Aps 10000 pocas foi obtido o erro 2.02195e-005, erro bastante satisfatrio, porm a rede voltou a decepcionar, mesmo sendo esta primeira proposta de cifrador bastante simples e de fcil criptoanlise, ela somente apreendeu os pontos no conseguindo interpolar e extrapolar. Utilizando os mesmos parmetros, s alterando o tipo da rede por uma rede de Elman, voltou-se aos treinamentos. Foi obtido o erro de 3.31217e-006 aps 10000 pocas, proposto. Com os resultados decepcionantes na utilizao de redes neurais diretas e a rede conseguiu novamente apreender, porm no resolveu o problema

recorrentes para realizar ataques (no que concerne ao algoritmo consagrado como o

68 RSA, quanto nossa proposta mais simples de cifrador) no foram atacadas as duas outras propostas, por entender que elas so mais fortes que a primeira.

69

Captulo 6

Concluso
A incontestvel necessidade de pesquisa para prover mais segurana nas comunicaes em um mundo que cada vez mais est conectado levou a abordagem sobre este interessante tema neste trabalho. Ao longo da pesquisa procurou-se exaustivamente e sem sucesso por bibliografia, que levasse a um caminho para construo de cifradores utilizando redes neurais, dificuldade esta muito em razo da natureza da aplicao dos mesmo, que geralmente se tornam pblicos, quando obsoletos, ou quando falham. Os resultados obtidos na criao de um cifrador foram bastante expressivos, por apresentarem uma perspectiva nova em relao aos algoritmos tradicionais que dependem de geradores de chaves e da busca de nmeros primos muito grandes. Como principal desvantagem, pode-se destacar o acrscimo de 25% em relao ao tamanho do texto plano e ao texto cifrado, mas tambm vale ressaltar que a primeira proposta tem um grau de segurana bastante limitado em funo da linearidade da substituio da mensagem pelo texto cifrado. A segunda e a terceira propostas apresentam uma substituio no linear e alternada, ou seja ao criptografar mensagens iguais do mesmo tamanho do bloco, obtm-se textos cifrados diferentes, o que eleva bastante o grau de segurana em relao inclusive a algoritmos tradicionais. Vale destacar que a terceira proposta a mais complexa e a mais segura de todas, e que foi usado um modelo com quatro neurnios para simplificar o estudo. Caso se faa necessrio, pode-se aumentar este nmero elevando, assim, ainda mais o grau de segurana. A proposta para realizar criptoanlise utilizando redes neurais, foi um

verdadeiro fracasso: a rede no apreendia e quando apreendia no interpolava ou extrapolava. Aps centenas de experimentos, ao longo deste ano, pode-se afirmar, que as redes neurais diretas e a rede recorrente de Elman apresentam fortes indcios de no

70 serem instrumentos apropriados para realizar ataques a algoritmos de criptografia, em razo da superfcie da funo ser descontnua. Sendo este um primeiro trabalho, acredita-se que existam muitas pesquisas a serem realizadas em breve, e que tero como objetivo estudos para estabelecer o limite de crescimento do nmero de neurnios na camada intermediria da terceira proposta; utilizao de redes neurais para identificar mensagens escondidas em fotografias digitais Esteganografia; novos modelos neuronais para ataques ao algoritmo RSA e

criptoanlise do AES - Advanced Encryption System (NIST, 1998) novo algoritmo criptogrfico recomendado pelo NIST.

71

Referencias bibliogrficas
1. BARRETO, Jorge Muniz Intelignica Artificial No limiar do Sculo XXI . Florianopolis - Duplic , 1999

2.

BITTENCOURT, Guilherme Inteligncia Artificial: ferramentas e teorias Florianpolis : Editora da USFC, 1998

3.

CARDOSO, Silvia Helena Comunicao entre as clulas nervosas.


Disponvel em:< http://www.epub.org.br/cm/n12/fundamentos/neurotransmissores>

Acesso em: 16 nov. 2001.

4.

CARVALHO, Daniel Balparda de Criptografia: metodos e algoritmos. Book Express, 2000

5.

DIFFIE, W. The first ten years of public-key cryptography. In: Proceedings of the IEEE, v.76, Maio de 1988.

6.

HAYKIN, Simon Redes Neurais princpios e prtica 2 Edio. Bookman, 2001

7.

HOLANDA, Aurlio B. Dicionio Aurlio Eletrnico Sculo XXI. Lexikon Informtica Ltda, 1999 1 CD-ROM

8.

MICROSOFT Enciclopdia Encarta 99, verso 1.0 : Software educacional [S.E.]: Microsoft Corporation, 1999. 1 CD-ROM

9.

MINSKY, M. L. and PAPERT, S. A. Perceptrons: An Introduction to Computacional Geometry . MIT Press, 1969

10.

NBS - National Bureau of Standard Data Encryption Standard. 1977

72

11.

NIST - National Institute of Standards and Technology - Advanced Ecryption System . 1998

12.

RIVEST, R.L. , SHAMIR, A. and ADLEMAN, L. A method for obtaining digital signature and public-key cryptosystems , 1976

13.

RUSSELL, Stuart J. and NORVIG, Peter - Artificial intelligence: a modern approach. Prentice Hall, 1995

14.

SCHNEIER, B. Applied Cryptography. New York: John Wiley & Sons, 2. ed., 1996.

15.

SKUBISZEWSKI, Marcin A hardware emulator for binary neural networks. Digital, 2001

16.

SMITH, R. E. Internet Cryptography. [S.l.]: Addison Wesley Longman, 1997.

17.

STALLINGS, W. Cryptography and Network Security. Upper Saddle River: Prentice-Hall, 2. ed., 1999.

18.

STINSON, D. R. Cryptography Theory and Practice. Boca Raton: CRC Press, 1995.

73

Apndice A

MatLab - NNET

Funes para treinamento


Funo Trainbfg Trainbr Traincgb Descrio BFGS quasi-Newton retropropagao (backpropagation) Regularizao Bayesiana Powell-Beale retropropagao (backpropagation) com gradiente conjugado Traincgf Fletcher-Powell retropropagao (backpropagation) com gradiente conjugado Traincgp Polak-Ribiere retropropagao (backpropagation) com gradiente conjugado Traingd Traingda Retropropagao (backpropagation) com gradiente descendente Retropropagao (backpropagation) com gradiente conjugado e taxa de aprendizado adaptativa Traingdm Retropropagao (backpropagation) com gradiente conjugado com momentum Traingdx Retropropagao (backpropagation) com gradiente conjugado , taxa de aprendizado adaptativa e momentum Trainlm Trainscg Trainwb Trainwb1 Levenberg-Marquard retropropagao (backpropagation) Retropropagao (backpropagation) com gradiente escalar Funo de treinamento por pesos e bias Funo de treinamento por pesos e bias um vetor por vez

74

Funes de transferncia
Funo Compet Hardlim Hardlims Logsig Poslin Purelin Radbas Satlin Satlins Tansig Tribas Descrio Funo de transferncia por competio Funo de transferncia por limite rgido Funo de transferncia por limite rgido e simtrico Funo de transferncia sigmoidal Funo de transferncia linear positiva Funo de transferncia linear Funo de transferncia base radial Funo de transferncia por saturao linear Funo de transferncia por saturao linear simtrica Funo de transferncia tangente hiperblica Funo de transferncia base triangular

Vous aimerez peut-être aussi