Você está na página 1de 76

REA 1 FACULDADE DE CINCIA E TECNOLOGIA ENGENHARIA DA COMPUTAO

DIGO PEREIRA DA CONCEIO

FUNDAMENTOS MATEMTICOS PARA GERAO DE ALGORITMOS CRIPTOGRFICOS

SALVADOR 2011

DIGO PEREIRA DA CONCEIO

FUNDAMENTOS MATEMTICOS PARA GERAO DE ALGORITMOS CRIPTOGRFICOS

Monografia apresentada ao Curso de Engenharia da Computao da Faculdade AREA1, como requisito parcial para obteno do grau de Bacharel em Engenharia da Computao. Orientador: Leonardo Alexandre L. Melo, Esp.

SALVADOR 2011

DIGO PEREIRA DA CONCEIO

FUNDAMENTOS MATEMTICOS PARA GERAO DE ALGORITMOS CRIPTOGRFICOS

Monografia apresentada a rea 1 Faculdade de Cincia e Tecnologia, como requisito parcial para obteno do grau de Engenheiro de Computao.

Banca Examinadora

Prof. Esp. Leonardo Alexandre de L. Melo (Orientador)

Prof. MSc. Rosely O. Pestana Bervian

Prof. MSc. Alexandre Silva

Salvador,___de____________de___

quele que, em sua sabedoria, criou todas as coisas, Deus.

AGRADECIMENTOS

Agradeo a Deus que concretizou esse sonho e mostrou-me que tudo possvel quele que cr. Por toda sabedoria e inteligncia, fortaleza e conhecimento. Ele fez muito mais alm daquilo que pedi ou imaginei na minha vida. A Ele seja toda honra. A minha me, por todo amor e compreenso. Voc mostrou que sacrifcios genunos nos levam a grandes conquistas. E essa conquista nossa. A minha famlia, por sempre acreditar em mim. Sem o auxlio de vocs eu nunca teria chegado to longe. A Ivan, Binha, Rafa (prima), Rafael e Vanderlei, meus primos que me acolheram carinhosamente em seu lar durante todo este tempo fazendo da sua casa a minha casa. Ivan e Binha, vocs foram como verdadeiros pais pra mim. A Camile, minha namorada, por compreender e me ajudar durante todo o perodo de confeco deste trabalho. A todos os meus amigos, nos quais encontrei alento para carregar a carga quando esta comeava a pesar e lev-la sozinho se tornava algo impossvel. A Alisson pela motivao em busca do desconhecido, a Lucas por toda coragem quando precisei e a Vanessa pelo incentivo em perseguir esse objetivo em meio a todos os obstculos. Aos amigos da faculdade, por nos mostrar que unidos sempre chegamos mais longe. Em especial a Geydison, Luiz, Raimundo, Flvio e Leonardo por compartilharem o conhecimento, o nimo e serem como verdadeiros companheiros nessa rdua jornada. Magaly, Rosana, Dudu, Rafael Valverde, Ana Nery e Vernica vocs tambm fazem parte desse alicerce. Ao meu orientador Leonardo Melo pela confiana no sucesso deste trabalho. Enfim, a todos que se sintam dignos de participar desta alegria.

Em Cristo esto escondidos todos os tesouros da sabedoria e da cincia. Colossenses 2:2,3

RESUMO

Desde tempos remotos o homem tem percebido a importncia do sigilo da informao. Com o advento da internet, tornou-se ainda mais necessrio a proteo da informao, pois emissor e receptor agora se encontram conectados a uma rede mundial, onde os dados trafegam livremente e vulnerveis a qualquer tipo de ataque. A fim de prover segurana foram criados os chamados mecanismos de segurana, entre os quais se podem destacar a cifragem, assinatura digital, controle de acesso, integridade dos dados, troca de informaes de autenticao, certificao, entre outros. A utilizao de cifras tornou-se um padro na comunicao e novas tcnicas vem sendo desenvolvidas desde ento. Assim, este trabalho visa mostrar como os mais famosos algoritmos criptogrficos foram concebidos utilizando-se uma cincia bem antiga: a Matemtica.

Palavras-chaves: Criptografia simtrica. Criptografia assimtrica. Chave. Criptoanlise.

ABSTRACT

Since ancient times the man has realized the importance of confidentiality of information. With the advent of the internet, it has become even more necessary to protect the personal information, because now the sender and receiver are connected to a global network, where data travels freely and vulnerable to any attack. In order to provide security, it has been created socalled security mechanisms, among which we can highlight the encryption, digital signature, access control, data integrity, information exchange, authentication, certification, among others. The use of figures has become a standard in the communication and new techniques have been developed since then. This work aims to show how the most popular cryptographic algorithms are designed using a very old science: mathematics. Keywords: Symmetric encryption. Asymmetric encryption. Key. Cryptanalysis.

LISTA DE FIGURAS

Figura 1 Citale espartano ................................................................................. 18 Figura 2 Viso geral do processo de criptografia ............................................. 19 Figura 3 Frequncia das letras do alfabeto portugus ..................................... 22 Figura 4 O quadrado de Vigenre .................................................................... 23 Figura 5 Mquina Enigma ............................................................................... 25 Figura 6 Trs rotores conectados de maneira a criar um circuito eltrico ....... 25 Figura 7 Clculo tradicional do mdc ................................................................. 28 Figura 8 Representao geral do algoritmo de criptografia DES ..................... 41 Figura 9 Disposio dos bits em formato matricial ........................................... 42 Figura 10 Permutao Inicial (IP) ..................................................................... 42 Figura 11 Inverso da Permutao Inicial (IP-1) ................................................. 42 Figura 12 Uma iterao do DES....................................................................... 43 Figura 13 Escolha permutada PC1 .................................................................. 44 Figura 14 Deslocamento linear circular ........................................................... 44 Figura 15 Escolha permutada PC2 .................................................................. 44 Figura 16 Permutao de Expanso E ............................................................ 45 Figura 17 Funo de Permutao P ................................................................. 45 Figura 18 Funo F .......................................................................................... 46 Figura 19 Definio das oito S-boxes do DES ................................................. 46 Figura 20 Detalhes de uma S-box: troca de 6 bits por 4 bit ............................ 47 Figura 21 Viso geral e completa do DES ....................................................... 48 Figura 22 Inverso do DES ................................................................................ 49 Figura 23 Criptografia com DES triplo .............................................................. 50 Figura 24 Criptografia e decriptografia AES .................................................... 53 Figura 25 Organizao do bloco de entrada .................................................... 53 Figura 26 Chave expandida ............................................................................. 54 Figura 27 Transformao ShiftRow .................................................................. 55 Figura 28 S-Box ............................................................................................... 56 Figura 29 S-Box inversa ................................................................................... 56 Figura 30 Expanso de chave do AES ............................................................ 60 Figura 31 Aritmtica em modular 7 ................................................................. 63

Figura 32 Funo de mo nica genrica Yx (mod P). Alice e Bob usam neste exemplo, em particular, 7x (mod 11) ................................................................ 65 Figura 33 Criptografia de chave assimtrica .................................................... 68 Figura 34 Autenticao usando Criptografia de Chave Pblica ....................... 69 Figura 35 Esquema geral do RSA .................................................................... 71 Figura 36 Exemplo do algoritmo RSA .............................................................. 72

LISTA DE TABELAS

Tabela 1 Alguns valores da funo totiente de Euler (n) .............................. 35 Tabela 2 Parmetros do AES ........................................................................... 52 Tabela 3 Comparao entre duas funes de mo dupla e nica ................... 64

LISTA DE ABREVIATURAS E SIGLAS

AES ASCII

Advanced Encryption Standard American Standard Code for Information Interchange (Cdigo Padro Americano para Troca de Informaes)

BITS DES EFF GF IBM MDC MOD NBS NIST NSA RSA TCR

Binary Digits (Dgitos Binrios) Data Encryption Standard Electronic Frontier Foundation Galois Field (Corpo de Galois) International Business Machines Mximo Divisor Comum Mdulo National Bureau of Standards National Institute of Standards and Technology National Security Agency (Agncia de Segurana Nacional) Ronald Rivest, Adi Shamir e Leonard Adleman Teorema Chins do Resto

SUMRIO
1. INTRODUO ............................................................................................. 14 1.1 CONTEXTUALIZAO ........................................................................... 15 1.2 OBJETIVO GERAL ................................................................................. 15 1.3 OBJETIVO ESPECFICO ........................................................................ 15 1.4 JUSTIFICATIVA ...................................................................................... 16 1.5 METODOLOGIA ..................................................................................... 16 2. DAS PRIMEIRAS CIFRAS ENIGMA ........................................................ 17 2.1 ESTEGANOGRAFIA E CRIPTOGRAFIA ................................................ 17 2.1 CIFRA DE CSAR .................................................................................. 20 2.2 CRIPTOANLISE ................................................................................... 21 2.3 CIFRA DE VIGENRE ............................................................................ 22 2.4 CIFRANDO COM MQUINAS: A ENIGMA ............................................ 24 3. CONCEITOS MATEMTICOS FUNDAMENTAIS ....................................... 27 3.1 ARITMTICA MODULAR ...................................................................... 27 3.2 ALGORITMO DE EUCLIDES ................................................................. 28 3.3 ALGORITMO DE EUCLIDES ESTENDIDO ........................................... 30 3.4 NMEROS PRIMOS............................................................................... 31 3.5 TEOREMAS DE FERMAT E EULER ...................................................... 33 3.6 TEOREMA CHINS DO RESTO TCR ................................................. 33 3.7 OPERAES SOBRE CORPOS FINITOS ............................................ 33 3.7.1 Operaes em GF(28) ...................................................................... 37 4. CRIPTOGRAFIA DE CHAVE SECRETA..................................................... 40 4.1 DATA ENCRYPTION STANDARD DES .............................................. 40 4.1.1 Permutao Inicial ............................................................................ 42 4.1.2. Uma iterao do DES ...................................................................... 43 4.1.3 Gerao das subchaves Kj ............................................................... 44 4.1.4 A funo de iterao F ...................................................................... 45 4.1.5 As S-boxes ....................................................................................... 46 4.1.6 Processo de decriptografia do DES .................................................. 48

4.2 ADVANCED ENCRYPTION STANDARD AES ................................... 51 4.2.1 Esquema geral do Rijndael - AES..................................................... 52 4.2.2 Adio de chave da rodada .............................................................. 54 4.2.3 Deslocamento de linhas.................................................................... 55 4.2.4 Substituio de bytes ........................................................................ 55 4.2.5 Embaralhamento de colunas ............................................................ 58 4.2.6 Expanso de chave do AES ............................................................. 59 5. CRIPTOGRAFIA DE CHAVE PBLICA ...................................................... 62 5.1 O ESQUEMA DE DIFFIE-HELLMAN-MERKLE ...................................... 62 5.2 PRINCPIOS DE CRIPTOSSISTEMAS DE CHAVE PBLICA ............... 67 5.3 ALGORITMO RSA .................................................................................. 69 6. CONCLUSO .............................................................................................. 73 REFERNCIAS ................................................................................................ 74

14

1. INTRODUO

medida que o tempo passa, o sigilo da informao tem assumido um papel relevante na comunicao. A criptografia tem sido a tcnica utilizada para fornecer um canal seguro entre o emissor e o receptor da mensagem. Por um lado temos a busca por uma cifra inquebrvel a fim de manter a privacidade das mensagens; por outro, decifradores de cdigos interessados em ler o contedo destas mensagens. Essa guerra que perdura por sculos tem levado a uma corrida do conhecimento em todo o mundo onde a informao o objeto de grande valor. Segundo Singh (2010, p. 12), a codificao de mensagens vai desempenhar um processo cada vez maior na vida diria. O aumento de ataques informao tem crescido com o uso da Internet e a criao de protocolos e aplicaes. Stallings (2010, p. 5) comenta que os algoritmos criptogrficos assumem maior importncia na garantia da confidencialidade e autenticidade. Na chamada Era da Informao, a busca por mecanismos de segurana tem forado as redes de computadores a defenderem-se de invasores atravs da criptografia e diversos protocolos. Em virtude da possibilidade existente da quebra dos algoritmos criptogrficos (apesar de sua alta eficcia) faz-se necessrio uma pesquisa contnua na criao de cifras inquebrveis e cuja implementao no gere custos elevados. A grande questo que a criptografia quntica (at o presente momento indecifrvel) ainda no se tornou uma tecnologia prtica. Por muitos anos os chamados quebradores de cdigos estiveram um passo a frente daqueles que desejavam ocultar as mensagens. Com o desenvolvimento intelectual e tecnolgico, essa disputa tem atingido

propores inimaginveis e a segurana da informao se tornou prioridade. Esse trabalho est estruturado de forma a apresentar ao leitor como a matemtica tem contribudo significativamente criptografia. Vale ressaltar que h muito mais algoritmos alm dos que foram apresentados aqui e no h preocupao na implementao destes em quaisquer linguagem de

15

programao, entretanto, espera-se que o contedo abordado seja o suficiente para uma boa compreenso do assunto. O captulo 2 apresenta os conceitos bsicos da criptografia e as primeiras tcnicas mais relevantes. O captulo 3 apresenta os principais conceitos da matemtica utilizados na elaborao dos algoritmos abordados. O captulo 4 aborda dois algoritmos que utilizam uma nica chave (secreta) para cifrar e decifrar determinada mensagem. O captulo 5 apresenta um esquema alternativo na codificao de mensagem atravs do uso de chaves pblicas na garantia de maior segurana na comunicao. Por fim, o captulo 6 conclui o trabalho com algumas observaes relevantes entre a matemtica e a criptografia.

1.1 CONTEXTUALIZAO

Este trabalho surgiu do desejo de compreender melhor como os algoritmos criptogrficos fornecem um canal seguro na comunicao em redes de computadores. Alm de identificar os diversos conceitos utilizados na rea de segurana da informao referente Criptografia, busca especificamente o conhecimento prtico da matemtica na formulao de alguns algoritmos.

1.2 OBJETIVO GERAL

Compreender conceitos e termos usados na Criptografia e de que maneira determinadas reas da Matemtica so aplicadas aos algoritmos criptogrficos a fim de prover segurana na informao.

1.3 OBJETIVO ESPECFICO

Apresentar um histrico da Criptografia at a Era dos Computadores. Diferenciar Criptografia de Chave Secreta da Criptografia de Chave Pblica. Entender conceitos matemticos utilizados na Criptografia

16

Provar como a matemtica capaz de prover segurana na troca de mensagens.

1.4 JUSTIFICATIVA

A Matemtica proporcionou um avano bastante significativo na evoluo da Criptografia. Portanto, faz-se necessrio entender a estrutura dos algoritmos criptogrficos e os aspectos matemticos envolvidos a fim de compreender a importncia da Matemtica aplicada Criptografia.

1.5 METODOLOGIA

A pesquisa experimental ser a metodologia utilizada. A Criptografia ser o objeto de estudo e a Matemtica ser a varivel que ser aplicada a fim de analisar a influncia e o comportamento sobre esse objeto.

17

2. DAS PRIMEIRAS CIFRAS ENIGMA

2.1 ESTEGANOGRAFIA E CRIPTOGRAFIA

A necessidade do homem em manter suas comunicaes secretas tem seus registros desde sculos antes de Cristo. Os antigos chineses escreviam suas mensagens em seda fina, e estas eram amassadas at assumirem a forma de uma pequena bola e depois cobertas por cera. O mensageiro engolia a bola de cera e entregava a mensagem com segurana ao destinatrio e sem intercepes (Singh, 2010). A essa tcnica de ocultar a mensagem, d-se o nome de esteganografia, termo derivado das palavras gregas steganos (coberto) e graphein (escrever). No h qualquer alterao no contedo da mensagem, apenas uma forma de evitar que a mesma seja interceptada e lida por terceiros. Existem diversas tcnicas no uso da esteganografia, por exemplo: marcao de caractere, tinta invisvel, entre outras (Singh, 2010). Apesar de utilizada por muito tempo, a esteganografia possui uma fraqueza fundamental: caso a mensagem seja interceptada, o contedo da comunicao, at ento secreta, fica comprometida. Enquanto muitos buscavam uma forma de ocultar a mensagem, outros desenvolviam paralelamente a criptografia, do grego kriptos (oculto). O objetivo era esconder o significado da mensagem. O transmissor e o receptor da mensagem combinavam previamente a maneira que iriam misturar o texto de forma a torn-lo incompreensvel para terceiros. Ao receber a mensagem codificada, o receptor reverteria o processo para obter a mensagem original. Por ser uma cincia mais ampla, a criptografia pode ser dividida em duas reas: transposio e substituio. Na transposio, as letras do texto original so rearranjadas de forma sistemtica ou aleatria. De maneira mais simples, a palavra criptografia poderia ser permutada da seguinte forma: patcrragifoi. Entretanto, medida que aumenta o nmero de letras, torna-se

18

dificultoso o processo de decodificao e at mesmo impossvel se o processo de mistura no for conhecido. Para cifrar a frase Criptografando seus dados na rede utilizando o sistema de transposio chamado cerca de ferrovias, alterna-se cada letra da mensagem dispondo-as em duas linhas distintas. Para conseguir o texto cifrado, basta transcrever de forma alternada uma letra da primeira linha, seguida por outra da segunda linha: Mensagem: CRIPTOGRAFANDO SEUS DADOS NA REDE 1 linha: C I T G A A D S U D D S A E E 2 linha: R P O R F N O E S A O N R D Texto cifrado: CITGAADSUDDSAEERPORFNOESAONRD Fazendo o processo inverso, o receptor pode recuperar a mensagem facilmente. possvel ainda a utilizao de trs linhas para aumentar a complexidade do texto cifrado.
Figura 1. Citale espartano

Fonte: (http://www.numaboa.com.br/criptografia/transposicoes/322-bastao-de-licurgo, 2002)

Outra forma de transposio bastante utilizada por espartanos militares foi o citale tambm conhecido como Basto de Licurgo, apresentado na figura 1. O receptor enrolava uma tira de couro em volta do basto e escrevia a mensagem. Aps desenrolar a tira, o que surgia era uma fila de caracteres ilegveis. Em muitos casos, o mensageiro utilizava-se da esteganografia ao usar a tira como cinto, com as letras voltadas para dentro. Para o destinatrio decifrar a mensagem bastava apenas ter um citale de mesmo dimetro usado pelo remetente.

19

Na substituio, as letras do texto original so substitudas por outras letras, nmeros ou smbolos previamente definidos. Uma das formas recomendadas emparelhar as letras do alfabeto de forma aleatria e substituir o par correspondente no texto cifrado. Por exemplo:

A B F L

G I

K M P Q T W Y Z E H J O S V

R C N U D X

Dessa forma, o texto original Lanado ao vento poderia ser escrito como ALGFLKW LW ZPGJW.
Figura 2. Viso geral do processo de criptografia

Fonte: SINGH (2010)

De forma geral, um esquema criptogrfico envolve o uso de uma chave (uma palavra) e um algoritmo (conjunto de operaes matemticas) que o emissor utiliza para cifrar (tornar ilegvel) o texto original. O receptor recebe o texto cifrado e usa o mesmo algoritmo e chave para decifrar (tornar legvel) a mensagem. A figura 2 ilustra esse processo.

20

2.1 CIFRA DE CSAR

A cifra de Csar, como ficou bastante conhecida, uma das tcnicas de substituio mais antiga e simples. Consiste em substituir cada letra do alfabeto original por outra letra do alfabeto cifrado com posio fixa de trs casas a frente. Sendo assim, tem-se:

Alfabeto original a b c d e f g h i j k l m n o p q r s t u v w x y z

Alfabeto cifrado: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Para o texto: protegendo a rede Texto cifrado: SURWHJHQGR D UHGH Atribuindo um valor numrico a cada letra no alfabeto original iniciando com 0 a letra a, 1 a letra b e assim por diante, possvel expressar a cifra de Csar pela seguinte equao C = E(k,p) = (p + k) mod 26 na qual: p = posio da letra do texto claro; k = deslocamento entre 1 a 25; E(k,p) a relao entre p e k; C = letra cifrada. Para a cifra de Csar, o valor de k sempre ser igual a trs. Para decriptografar basta fazer p = D(k,C) = (C k) mod 26 (2) (1)

21

na qual: D(k,C) a relao entre k e C. O clculo envolvendo aritmtica modular (mod) ser explicado no Captulo 3. Por enquanto, apenas considere a Cifra de Csar como sendo circular, ou seja, aps a letra z retorna-se a letra a. Entretanto, a cifra de Csar pode ser facilmente quebrada devido a limitao de apenas 25 combinaes possveis. Algum que testasse todas as possibilidades acabaria decifrando a mensagem sem realizar muito esforo. A essa tcnica d-se o nome de fora bruta (Singh, 2010).

2.2 CRIPTOANLISE

Os rabes os primeiros a conseguir decifrar mensagens criptografadas sem a utilizao do ataque por fora bruta. Eles criaram a chamada criptoanlise, a cincia de recuperar a chave utilizada no criptossistema (Singh, 2010). Devido ao vasto conhecimento na rea de lingustica, os rabes analisaram as caractersticas do prprio alfabeto e perceberam

comportamentos interessantes. Eles verificaram que, de um modo geral, algumas letras aparecem com maior frequncia em relao s outras. Com isso, eles puderam explorar as vulnerabilidades das mensagens e decifr-las atravs da anlise de frequncia das letras. Realizando um ensaio estatstico nas letras do alfabeto portugus com base em vrios textos extrados de livros e peridicos, nota-se que possvel determinar uma frequncia quase fixa dessas letras.

22
Figura 3. Frequncia das letras do alfabeto portugus

Fonte: (http://www.numaboa.com.br/criptografia/criptoanalise/310-frequencia-portugues, 2005) 7

Na figura 3, a letra que mais aparece no nosso alfabeto a letra a com 14,63%, seguida da letra e com 12,57% e letra o com 10,73%. Com posse dessas informaes, um criptoanalista aplica a frequncia de letras no texto cifrado e faz uma relao entre essa frequncia e a do texto original. Aps a anlise, caso uma letra qualquer tenha um fator estatstico de 8%, por exemplo, bem provvel que ela seja a substituta para a letra s do alfabeto original.

2.3 CIFRA DE VIGENRE

A cifra de Vigenre consiste em utilizar 26 cifras de Csar, com deslocamento de 1 a 26.

23
Figura 4. O quadrado de Vigenre

Fonte: STALLINGS (2008)

Inicialmente montado o quadrado de Vigenre, conforme apresentado na Figura 4. No topo aparece o alfabeto que representa as letras do texto original seguido por 26 alfabetos cifrados deslocados de uma letra com relao ao alfabeto anterior. Sendo assim, possvel cifrar qualquer texto com um ou mais dos alfabetos cifrados disponveis. Para criptografar uma mensagem, necessrio o uso de uma chave que seja to longa quanto o texto que se deseja cifrar. Escolhida a palavra-chave, ela escrita acima do texto original e repetida at que cada letra da mensagem tenha um par correspondente. Singh (2010) ilustra um exemplo em que a frase divert troops to east ridge combinada com a palavra-chave WHITE codificada assim:
Palavrachave Textooriginal Texto cifrado W H I d Z i v T E W H I e r T t r T E W H I s Z t T E W H I s t T E r i W H I d g e

o o p

O E a

P D X V P

A Z H S L

B H I

W Z

B K M Z

N M

24

A cifragem simples. Para cifrar a primeira letra, d, observamos que a letra W a correspondente no alfabeto cifrado, ou seja, neste primeiro momento ser utilizada a linha 22 do quadrado de Vigenre. Basta fazer a interseco da letra d com a fileira que inicia com W, o que resulta na letra Z. Portanto, a letra d no texto original ser representada por Z no texto cifrado. Esse processo repetido com cada letra da mensagem at que esta seja codificada completamente (Singh, 2010). A cifra de Vigenre oferece maior segurana com relao as cifras monoalfabticas j que ela no pode ser decifrada pela anlise de frequncia, nem por ataque por fora bruta devido ao grande nmero de chaves, o equivalente a 2626 (6.15611958 x 1036 possiblidades).

2.4 CIFRANDO COM MQUINAS: A ENIGMA

A primeira mquina criptogrfica o disco de cifras. Foi criada por Leon Alberti e utilizava dois discos concntricos com um alfabeto gravado em cada um deles. Com isso, era possvel cifrar mensagens utilizando o descolamento simples de Csar. Para aumentar a complexidade, Alberti aprimorou o disco de forma a gerar cifras polialfabticas com a utilizao de uma palavra chave, o equivalente a uma verso mecanizada da cifra de Vigenre. (Singh, 2010) Apesar de ter sido bastante utilizada devido a facilidade e agilidade em manusear, o disco de cifras ainda no era indecifrvel. Foi Arthur Scherbius, engenheiro eletricista, que criou o mais conhecido sistema de cifragem da histria: Enigma, uma verso eltrica do disco de cifras. (Singh, 2010) A Enigma baseava-se no princpio de mquinas de rotor1. Era formada basicamente por trs elementos: um teclado para entrada de texto, trs rotores e um painel de iluminao contendo as letras de A a Z que se acendiam a cada tecla pressionada.

Mquina que consiste em um conjunto de cilindros rotativos independentes, atravs dos quais podem fluir pulsos eltricos.

25
Figura 5. Mquina Enigma

Fonte: (http://pt.wikipedia.org/wiki/Enigma_%28m%C3%A1quina%29, 2011)

Figura 6. Trs rotores conectados de maneira a criar um circuito eltrico

Fonte: (http://pt.wikipedia.org/wiki/Enigma_%28m%C3%A1quina%29, 2011)

A figura 5 fornece uma viso geral da Enigma. Os trs discos misturadores eram conectados entre si por fiao eltrica e no interior de cada um destes as 26 letras do alfabeto, conforme a figura 6. A cifragem d-se da seguinte forma: a cada tecla pressionada pelo operador, o primeiro cilindro desloca uma posio enquanto os outros dois permanecem estticos. Aps completar uma volta completa, o segundo cilindro deslocado uma casa e o terceiro ainda permanece em sua posio inicial. Quando o segundo cilindro ento completar 26 voltas, o terceiro cilindro desloca de sua primeira posio. Por um longo tempo a Enigma foi considerada indecifrvel porque ela fornecia 26 x 26 x 26, ou seja, 17.576 combinaes possveis dos misturadores.

26

Scherbius aprimorou a enigma inserindo mais elementos a fim de aumentar a segurana da cifra. Primeiro, ele tornou possvel a remoo e troca da posio dos misturadores, o que aumenta o nmero de combinaes multiplicada por um fator de 6. Segundo, ele introduziu um painel de tomadas para conectar o teclado ao primeiro rotor; o painel permitia a troca de seis pares de letras fornecendo 100.391.791.500 modos distintos de se conectar. Desta forma, a Enigma possua um nmero total de chaves correspondente a 17.576 x 6 x 100.391.791.500 = 10.000.000.000.000.000 Os poloneses foram os primeiros a decifrar a terrvel Enigma. O matemtico Marian Rejewski recebeu o devido mrito por conseguir transformar em texto claro as mensagens interceptadas. Alguns anos depois, a Inglaterra reuniu cerca de sete mil pessoas das mais diversas profisses em uma central chamada Bletchley Park aonde mensagens alems chegavam diariamente para serem decifradas. Dentre todos, Alan Turing destacou-se e conseguiu criar um mecanismo eletro-mecnico com capacidade de decifrar os textos ilegveis em pouco menos de uma hora. (Singh, 2010) A utilizao de mquinas criptogrficas durante a Segunda Guerra Mundial proporcionou o desenvolvimento dos computadores. O processo de cifragem se daria por meio da utilizao de nmeros em vez de letras. O computador lida com um sistema binrio, ou seja, sequncias de zero e um conhecidos como bits. A criptografia cresce potencialmente devido ao grande avano tecnolgico que ocorreu desde ento at a chegada da internet.

27

3. CONCEITOS MATEMTICOS FUNDAMENTAIS


A seguir sero apresentados os conceitos necessrios para o entendimento de alguns clculos utilizados durante o processo criptogrfico de determinados algoritmos. O contedo ser o abordado de uma forma aplicada as necessidades do tema em questo, portanto, alguns elementos da Teoria dos Nmeros ficaro de fora deste Captulo.

3.1 ARITMTICA MODULAR

Dado qualquer inteiro n positivo e qualquer inteiro a positivo, ao dividir a por n, obtm-se o quociente q e resto r. De forma geral possvel expressar da seguinte forma: a = qn + r Veja os dois exemplos abaixo: a = 11 ; a = -11; n = 7; n = 7; q = 1; q = -2 r = 4; r = 3; 11 = 1 x 7 + 4; -11 = (-2) x 7 + 3; 0 r < |n|; q = [a/n] (3)

Define-se a mod n como sendo o resto r da diviso de a por n. O inteiro n chamado mdulo. 11 mod 7 = 4; -11 mod 7 = 4

Dois inteiros a e b so ditos congruentes mdulo n, se (a mod n) = (b mod n). Isso o mesmo que a b (mod n). O smbolo e o uso dos parnteses em (mod n) indicam equivalncia de dois binrios. 73 4 (mod 23); 21 9 (mod 10)

Se a e b so dois nmeros inteiros equivalentes mod n, ento so verdadeiras as propriedades:

28

(a + b) mod n = (a mod n) + (b mod n) (a x b) mod n = (a mod n) x (b mod n)

3.2 ALGORITMO DE EUCLIDES

O algoritmo euclidiano um procedimento utilizado para encontrar o mximo divisor comum entre dois inteiros positivos (mdc). Consiste basicamente nos seguintes passos: 1. Divida A por B; 2. O valor de B passa a ser o valor de A e o resto R passa a ser B. 3. O algoritmo termina quando o resto R for zero.
Figura 7. Clculo tradicional do mdc

Fonte: http://professormarcello.com/index.php?option=com_content&task= view&id=694&Itemid=47 (2010)

A figura 7 ilustra como realizado o clculo do mdc na forma mais tradicional. Sabe-se que o resto da diviso entre dois inteiros pode ser expresso atravs do mdulo, logo:

mdc(a, b) = mdc(b, a mod b)

(4)

O mdc(a, b) sempre um valor inteiro positivo para quaisquer valores de a e b. Portanto, mdc(a, b) = mdc(|a|, |b|) o que permite ao algoritmo euclidiano considerar que a > b > 0. Abaixo segue um pseudocdigo:

29

O algoritmo possui uma sequncia finita garantindo que em algum momento o resto r ser zero. Stallings (2008) ilustra um exemplo:

30

3.3 ALGORITMO DE EUCLIDES ESTENDIDO

Quando os nmeros a e b so relativamente primos, alm de calcular o mdc(a, b), o algoritmo euclidiano pode ser estendido de forma a encontrar o inverso multiplicativo de b de modo que bb-1 = 1 mod a. O algoritmo satisfaz a seguinte condio: ax + by = mdc(a, b) sendo, x e y dois nmeros inteiros. Pelo algoritmo de Euclides, o mdc(396, 13) = (61 X 13) (2 x 396), pois: 13 = 396 x 0 + 13 396 = 30 x 13 + 6 13 = 6 x 2 + 1 6=1x6+0 mdc(396, 13) mdc(13, 6) mdc(6, 1) (5)

Logo, o mdc(396, 13) = 1. O algoritmo estendido de Euclides leva em conta os restos diferentes de zero encontrados nas divises. Pode ser expresso da seguinte maneira:

13 = (1 x 13) - (0 x 396) 13 = (1 x 13)

(6)

6 = (1 x 396) - (30 x 13) ... em (6) diz que 13 = (1 x 13) 6 = (1 x 396) - (30 x (1 x 13)) 6 = (1 x 396) - (30 x 13)

(7)

1 = (1 x 13) - (2 x 6) ... em (7) diz que 6 = (1 x 396) - (30 x 13) 1 = (1 x 13) - 2 x ((1 x 396) - (30 x 13)) 1 = (1 x 13) - (2 x 396) + (60 x 13) 1 = (61 x 13) - (2 x 396)

(8)

31

O nmero 61 o inverso multiplicativo de 13. Aplicando o algoritmo estendido na criptografia de chave pblica, o nmero inverso representado por d, pois d e-1 mod (n).

3.4 NMEROS PRIMOS


Um nmero inteiro p > 0 considerado um nmero primo se e somente se seus nicos divisores forem 1 e o prprio p. O conjunto dos nmeros primos infinito e a medida que se avana, a quantidade de primos diminuem. Terada (2011) diz que a probabilidade de um inteiro n ser primo em torno de 1 / ln (n). Essa probabilidade corolrio da Teoria de Nmeros Primos e afirma que se (x) denota o nmero de primos x, ento

=1 Um teorema fundamental da aritmtica diz que qualquer nmero inteiro pode ser representado pela multiplicao de um ou mais nmeros primos. A quantidade de vezes que determinado nmero aparece indicado com os expoentes. No fcil determinar os fatores primos de um nmero grande e essa caracterstica que permite ao algoritmo RSA confidencialidade da chave privada.

91 = 7 x 13 3600 = 24 x 32 x 52 11011 = 7 x 112 x 13

Existe um teorema para testar se um nmero primo ou no. No h um meio fcil de fazer isso, mas Miller e Rabin propuseram um algoritmo que gera um nmero que no necessariamente primo, mas possui grandes chances probabilsticas de ser primo (Stallings, 2008). Considere que qualquer nmero mpar n pode ser escrito como

32

n 1 = 2kqcom k > 0, q mpar

(9)

Ao fazer (n 1), tem-se um nmero inteiro par. Em seguida, divida (n 1) por 2 at que o resultado q seja um valor mpar, gerando um total de k divises. Stallings (2008) mostra duas propriedades necessrias para a compreenso do algoritmo de Miller-Rabin. A primeira propriedade descrita diz que a2 mod p = 1 se e somente se a mod p = 1 para p primo e a < p. A segunda propriedade expressa da seguinte forma: Seja p um nmero primo maior que 2, ento verdade que p 1 = 2kq, com k > 0, q mpar. Considere um inteiro a no intervalo 1 < a < p 1. Ento uma das seguintes propriedades verdadeira: 1. aq mod p = 1 ou aq 1 (mod p).

2. Existe algum nmero j no intervalo (1 j k) tal que a(2j 1)q mod p = 1 mod p = p 1 ou a(2j 1)q 1 (mod p).

O pseudocdigo a seguir mostra como verificar a primalidade de determinado nmero. Usando um candidato n como entrada e tendo conclusivo como resultado mostra que o nmero no primo; caso o retorno seja inconclusivo n pode ou no ser primo. TESTE (n) 1. Encontre inteiros k, q, com k > 0, q mpar, de modo que (n 1 = 2kq); 2. Selecione um inteiro aleatrios a, 1 < a < n 1; 3. Se aq mod n = 1 ento return (inconclusivo); 4. para j = 0 at k 1 faa 5. Se mod n n 1 ento return (inconclusivo);

6. return (composto).

33

Stallings (2008) continua com um exemplo:

Tome como exemplo o nmero primo n = 29. Temos (n 1) = 28 = 22(7) = 2kq. Primeiro, vamos testar a = 10. Calculamos 107 mod 29 = 17, que no 1 nem 28, de modo que o teste continua. O prximo clculo descobre que (10 7)2 mod 29 = 28, e o teste inconclusivo, ou seja, 29 pode ser primo. Teste novamente com a = 2. Tem-se os seguintes clculos: 27 mod 29 = 12; 214 mod 29 = 28; e o teste novamente retorna inconclusivo. Se o teste for realizado para todos os inteiros a no intervalo de 1 a 28, obtm-se o mesmo resultado inconclusivo, que compatvel com n sendo um nmero primo.

3.5 TEOREMAS DE FERMAT E EULER Esses dois teoremas desempenham papel importantssimo na criptografia.

Teorema de Fermat

O Teorema de Fermat diz que: Se p primo e a um inteiro no divisvel por p, ento: ap-1 1 ( mod p )

(10)

Considerando que a no seja relativamente primo de p, possvel escrever a mesma equao anterior como: ap a (mod p) p = 5, a = 3 p = 5, a = 10 ap = 35 = 243 3(mod 5) = a(mod 5) ap = 105 = 100000 10(mod 5) = 0(mod 5) = a(mod p) (11)

Este teorema utilizado para calcular o resto da diviso quando o valor do mdulo um nmero primo.

34

Calcular 364 mod 31 Inicialmente, o nmero 64 pode ser decomposto como 64 = 30 x 2 + 4. Aplicando o Teorema de Fermat para a = 3 e p = 31 330 1 (mod 31) Ento, 364 (330)2 x 34 1 x 81 19 (mod 31)

Funo Totiente de Euler A funo Totiente de Euler escrita como (n) e definida como a

quantidade de inteiros positivos menores que n e relativamente primos de n. Por conveno, (1) = 1. Determine (37) e (35). Como 37 primo, consequentemente todos os nmeros positivos de 1 a 36 faro parte do resultado. Assim, (37) = 36. Para determinar (35), lista-se

todos os inteiros positivos que 35 so relativamente primos dele: 1, 2, 3, 4, 6, 8, 9, 11, 12, 13, 16, 17, 18, 19, 22, 23, 24, 26, 27, 29, 31, 32, 33, 34 Existem 24 nmeros na lista, de modo que (35) = 24.

notvel que para um nmero primo p, (p) = p 1. Considerando dois nmeros primos p e q, com p q e n o resultado da multiplicao n = pq, (n) = (pq) = (p) x (q) = (p 1) x (q 1) (12)

35
Tabela 1. Alguns valores da funo tociente de Euler (n)

Fonte: STALLINGS (2008)

Teorema de Euler O teorema de Euler (tambm conhecido como o Teorema de FermatEuler) afirma que, se a e n so nmeros relativamente primos, ento: 1 (mod n) = 34 = 81 1 (mod 10) = 1 (mod n) = 210 = 1024 1 (mod 11) = 1 (mod n) (13)

a = 3; n = 10; (10) = 4 a = 2; n = 11; (11) = 10

Assim como o Teorema de Fermat, uma forma alternativa de expressar o teorema de Euler : a (mod n) (14)

3.6 TEOREMA CHINS DO RESTO TCR O matemtico chins Sun-Tsu descobriu como calcular inteiros N que ao serem divididos por 3, 5, 7 respectivamente resultem em 2, 3, 2. A soluo N

36

= 23. De fato, todos os inteiros expressos por 23 + 105k para qualquer k fazem parte dessa soluo. Segundo o Teorema Chins do Resto (TCR), k inteiros, m1, m2,...mk, relativamente primos entre si, possvel representar um inteiro N N = n1 mod m1, N = n2 mod m2,...N = nk mod mk da seguinte forma: N mod (m1 x m2 x ...mk) (16) (15)

Assim, o inteiro 25 pode ser representado como (4 mod 7, 3 mod 11) ou 25 mod (7 x 11). Terada (2010) diz que fcil representar (15) a partir de (16): basta dividir N por cada mj e obter o resto. Entretanto, obter (16) a partir de (15) no um caminho fcil e disso que trata o TCR. Tendo N = a mod A, N = b mod B, deseja-se obter N mod (AB). Como A e B so relativamente primos, possvel calcular o inverso multiplicativo de forma que a equao se torne verdadeira: AA + BB = 1 (17)

Portanto, A = A-1 mod B e B = B-1 mod A. Multiplicando (17) por N temse: NAA + NBB = N (18)

possvel ainda escrever N = a mod A como N = a + rA para qualquer r, e N = b mod B como N = b + tB para algum t. Substituindo N em (4), obtm-se: N = (b + tB)AA + (a + rA)BB Aplicando mod (AB) em (5) chega-se a: N = (bAA + aBB) mod (AB) (20) (19)

Considere o exemplo a seguir como um teste de validade de (20):

37

a = 4, A = 7, b = 3, B = 11 A = 7-1 mod 11 = 8 B = 11-1 mod 7 = 2 Ento (bAA + aBB) mod (AB) = (3 x 8 x 7 + 4 x 2 x 11) mod (77) = 25. O RSA usa n = qr na gerao do par de chaves. Tendo xp mod q e xp mod r aplica-se o TCR para calcular xp mod n.

3.7 OPERAES SOBRE CORPOS FINITOS Stallings (2008) define um corpo como um conjunto de elementos com operaes binrias de adio, subtrao, multiplicao e diviso sem sair do conjunto. Esse conjunto pode ser finito ou infinito. A criptografia se interessa apenas pelos corpos finitos. possvel definir a ordem de um corpo finito como uma potncia pn, onde p um nmero primo e n um inteiro positivo. A notao usada como GF(pn); GF a sigla de Galois Field (Stallings, 2008).

3.7.1 Operaes em GF(28)

O Advanced Encryption Standard (AES) utiliza a aritmtica no corpo finito GF(28), ou seja, utilizado um polinmio na forma b7 x7+ b6 x6 + b5 x5 + b4 x4 + b3 x3 + b2 x2 + b1 x + b0, onde (b7b6b5b4b3b2b1b0) so os bits do byte B. A seguir ser explicado as operaes sobre esse corpo: Soma feito um XOR bit a bit. O smbolo usado para indicar essa

operao. Para valores de entrada iguais a sada 0 e para valores diferentes sempre 1.

38

A 0 0 1 1

B 0 1 0 1

Sada 0 1 1 0

Assim: 11011100 Multiplicao

10001110 = 01010010.

Inicialmente a multiplicao entre os polinmios feita na aritmtica polinomial comum. Cada termo distribudo por todos os demais termos do outro polinmio. O resultado submetido ao mdulo do polinmio irredutvel de grau 8, o AES usa o m(x)= x8 + x4 + x3 + x + 1 ou (11Bh). Stallings (2008) explica que um polinmio f(x) sobre um corpo F chamado de irredutvel se e somente se f(x) no puder ser expresso como um produto de dois polinmios, ambos sobre F, e ambos de grau menor que o de f(x). Isto o caracteriza como um polinmio primo. Exemplo: Calcular 53h * 83h. 53h = 01010011 e 83h = 10000011 Representando os valores binrios em funes, tem-se: f(x) = x6 + x4 + x2 + x + 1 e g(x) = x7 + x + 1

f(x) x g(x)

x13 + x11 + x9 + x8 + x7 + x7 + x5 + x3 + x2 + x + x6 + x4 + x2 + x + 1 = x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1

Aplicando o mdulo pelo polinmio irredutvel: x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1 mod x8 + x4 + x3 + x + 1 = x7 + x6 + 1 (21)

39

Quando a multiplicao se d entre um polinmio e uma constante existe uma tcnica simples de ser implementada. Observe a igualdade: x8 mod m(x) = [ m(x) x8 ] = ( x4 + x3 + x +1 ) onde m(x) = x8 + x4 + x3 + x + 1, que o corpo finito usado no AES. Agora considere um polinmio em GF(2n) na forma f(x) = b7x7 + b6x6 + + b5x5 + b4x4 + b3x3 + b2x2 + b1x + b0. Em seguida, multiplique por x e ter: (22)

f(x) = (b7x8 + b6x7 + b5x6 + b4x5 + b3x4 + b2x3 + b1x2 + b0x) mod m(x)

(23)

Se b7 = 0, o polinmio ter um grau menor que 8, o que significa que ele se encontra na forma reduzida dispensando quaisquer clculos adicionais. Se b7 = 1, ento necessrio a reduo mdulo m(x)

f(x) = (b6x7 + b5x6 + b4x5 + b3x4 + b2x3 + b1x2 + b0x) + (x4 + x3 + x +1) Dessa forma, o resultado da multiplicao

(24)

f(x), na qual

corresponde a constante 02h : Se b7 = 0 Se b7 = 1 (b6b5b4b3b2b1b00) (b6b5b4b3b2b1b00) (00011011) (25) (26)

Exemplo: Calcular 57h x 13h Inicialmente pode-se dizer que 13h = 01h + 02h + 10h. Ento:
57h x 02h = 01010111 x 02h = 10101110 (AEh) 57h x 04h = 57h x 02h x 02h = (AEh) x 02h = 01011100 00011011 = 01000111 (47h)

57h x 08h = 47h x 02h = 01000111 x 02h = 10001110 (8Eh) 57h x 10h = 8Eh x 02h= 10001110 x 02h = 00011100 00011011 = 00000111 (07h)

Juntando os clculos intermedirios tem-se: 57h x 13h = 57h x (01h + 02h + 10h) = 57h + AEh + 07h = FEh.

40

4. CRIPTOGRAFIA DE CHAVE SECRETA

Como o prprio nome sugere, esse tipo de criptografia exige a utilizao de uma chave que permanea em segredo entre as partes que se comunicam. Tambm conhecida como criptografia de chave simtrica porque a mesma chave que se usa para cifrar a mensagem usada para decifr-la. Um grande problema se torna evidente: a distribuio das chaves. Pense na seguinte situao: Alice deseja enviar uma mensagem confidencial para Bob; entretanto, eles necessitam obter uma cpia da mesma chave. Eles no podem simplesmente enviar a chave pelo canal de comunicao porque uma terceira pessoa pode estar na escuta da linha a fim de fazer uma interceptao. Como eles podem ento trocar mensagens de forma segura? Apesar de muitos acreditarem na insolubilidade do problema, uma equipe apresentou uma soluo brilhante em meados da dcada de 1970 criando um sistema de cifragem que parecia desafiar toda a lgica. Esta descoberta tem sido considerada a maior conquista da criptografia desde a inveno das cifras monoalfabticas (utilizao de apenas um nico alfabeto). (Singh, 2010).

4.1 DATA ENCRYPTION STANDARD DES Em 1973 o National Bureau of Standards (NBS) solicitou propostas para a criao de uma cifra com os seguintes critrios: possuir um elevado nvel de segurana com uma chave de tamanho pequeno e que realizasse a cifragem e decifragem; ser compreensvel; a segurana no deve depender da confidencialidade do algoritmo ; ser adaptvel e econmico ; ser eficaz e exportvel. A IBM props o algoritmo Lucifer com um tamanho de chave igual a 128 bits desenvolvido por Horst Feistel, porm a National Security Agency (NSA)

41

receosa de no conseguir decodificar esse novo padro de cifras limitou o tamanho da chave a 56 bits. Foi em 23 de novembro de 1976 que o DES (Data Encryption Standard), verso de 56 bits do Lucifer, foi adotado como cifra oficial americana.
Figura 8. Representao geral do algoritmo de criptografia DES

Fonte: STALLINGS (2008)

O DES composto por trs componentes: uma entrada de texto legvel, uma chave e uma sada de texto cifrado. No esquema geral do algoritmo DES mostrado na figura 8, a entrada um bloco de 64 bits e a chave tem 56 bits ditos teis durante o processo criptogrfico, pois os 8 bits restantes so usados como bits de paridade, a fim de verificar a integridade da chave. O resultado desse processo uma sada de 64 bits de texto cifrado. Inicialmente o texto cifrado submetido a uma Permutao Inicial (IP) e dividido em dois blocos de 32 bits cada. Em seguida, ocorrem 16 iteraes com subchaves distintas. Durante essas rodadas so utilizadas funes de permutao e deslocamento linear para gerar as chaves subsequentes. Ao final

42

dessas iteraes as duas metades do texto so trocadas entre si e o resultado submetido ao Inverso da Permutao Inicial (IP -1) gerando um texto ilegvel de 64 bits como sada. 4.1.1 Permutao Inicial

Ao receber um bloco de 64 bits como entrada, estes ficam dispostos em um formato de matriz como ilustra a Figura 9:
Figura 9. Disposio dos bits em formato matricial

Fonte: Adaptado de Stallings (2008)

Mi corresponde a um dgito binrio.

As figuras 10 e 11 ilustram as permutaes que ocorrem no incio e final respectivamente durante o processo de cifragem do texto. Assumindo que cada

43

bit ocupa uma posio inicial como mostrado anteriormente, aps serem permutados, o 58 bit do texto original passar a ser o 1 bit, o 50 ocupar a 2 posio e assim as permutaes ocorrem conforme a Figura 9. Segundo Terada (2011), as duas permutaes no acrescentam valor criptogrfico e so irrelevantes para qualquer criptoanlise que venha ser aplicada ao DES.

4.1.2. Uma iterao do DES

A entrada de 64 bits dividida igualmente em duas metades de 32 bits, como mostra a Figura 12.

Figura 12. Uma iterao do DES

Fonte: Adaptado de Terada (2011)

Em seguida, aplica-se a funo F (ser detalhada posteriormente) no bloco da direita (Rj), onde j indica o nmero da rodada. O resultado dessa operao submetido a um XOR com a metade do bloco da esquerda (Lj). A sada resultante torna-se a nova metade da direita (Rj+1). Neste ponto, Rj passa a ser a nova metade da esquerda (Lj+1).

44

4.1.3 Gerao das subchaves Kj A chave inicial K tem um comprimento de 56 bits que passam por uma permutao PCI, vide Figura 13, e, em seguida, so divididos em dois blocos de 28 bits cada. aplicado um deslocamento circular Lj para a esquerda em cada metade conforme Figura 14. Aps passar por uma Permutao e Contrao PC2, como mostra a Figura 15, os 56 bits so reduzidos para 48 bits gerando a primeira subchave K1.

Figura 13. Escolha Permutada PC1

Fonte: (STALLINGS, 2008)

Figura 14. Deslocamento Linear Circular

Fonte: (STALLINGS, 2008)

Figura 15. Escolha Permutada PC2

Fonte: (STALLINGS, 2008)

45

Para gerar as suchaves posteriores (K2, K3, ... K16) tomam-se os blocos antes de sofrerem a Permutao PC2 para serem as novas entradas.

4.1.4 A funo de iterao F

Aps a diviso do bloco de entrada, a metade da direita Rj sofre uma Expanso e Permutao E, conforme a Figura 16, expandindo o nmero deste sub-bloco de 32 bits para 48 bits. O resultado dessa operao submetido a uma operao XOR com a subchave Kj de 48 bits.

Figura 16. Permutao de Expanso E

Fonte: STALLINGS (2008)

Em seguida, os 48 bits resultantes passam por substituies definidas pelos oito S-boxes. No final desse processo, os bits so contrados para 32 bits e sofrem uma ltima permutao P, como ilustra a Figura 17.
Figura 17. Funo de Permutao P

Fonte: (STALLINGS, 2008)

A Figura 18 ilustra o bloco da funo F.

46
Figura 18. Funo F

Fonte: STALLINGS (2008)

4.1.5 As S-boxes

Essa substituio constituda por 8 S-boxes que recebem 6 bits de entrada e geram 4 bits de sada. A Figura 19 apresenta a definio das 4 primeiras S-boxes do DES.
Figura 19. Definio das 4 primeiras S-boxes do DES

Fonte: STALLINGS (2008)

47

Figura 20 Detalhes de uma S-box: troca de 6 bits por 4 bit

Fonte: Adaptado de Terada (2011)

Segundo Terada (2011), a substituio ocorre da seguinte forma: 1. Dos 6 bits de b1b2b3b4b5b6 os dois bits da extremidade definem o ndice de linha na tabela, o que pode resultar em um valor entre 0 e 3. No exemplo ilustrado da Figura 20, o valor (10) na base 2 corresponde a 2 na base decimal. 2. Os bits b2b3b4b5 definem o ndice de coluna. Como so 4 bits, tem-se um valor situado entre 0 e 15 (1111 o valor mximo para 4 bits) para um total de 16 colunas na tabela. Dessa forma, um mapeamento ocorre para cada grupo de 6 bits de entrada gerando valores j definidos para uma sada de 32 bits no total. Cada S-box nica e possui valores em posies especficas.

48

Figura 21 Viso geral e completa do DES

Fonte: (Adaptado de (TERADA, 2011))

A Figura 21 apresenta uma viso geral do DES com detalhes da entrada do bloco de 64 bits e da chave de 56 bits. A funo F mostra a interao entre as duas partes compondo o processo completo.

4.1.6 Processo de decriptografia do DES

O processo de decriptografia consiste em realizar o caminho inverso da criptografia. Por isso, esse mtodo tambm conhecido criptografia de chave simtrica porque se utiliza a mesma chave para cifrar e decifrar a mensagem.

49

Figura 22. Inverso do DES

Fonte: Adaptado de Terada (2011)

Sendo assim, considere a Figura 22 como o processo de inverso do DES, onde se tem: 1. A entrada de texto cifrado de 64 bits que passam por uma Permutao Inicial IP e so divididos em duas metades trocadas. 2. So realizadas 16 iteraes utilizando as 16 chaves comeando pela K16, K15, ...K1.

50

3. Aps o processo anterior os bits so obtidos com metades ainda trocadas. Assim como na criptografia, ocorre uma nova troca entre as metades e o resultado dessa operao submetido ao Inverso da Permutao Inicial IP-1. A sada o texto legvel de 64 bits. H tambm o S-DES que uma verso simplificada do DES para fins didticos. Ele possui reduo na quantidade de bits do bloco de entrada (8 bits) e da chave (10 bits), e apenas duas rodadas. Devido a alta vulnerabilidade do DES ao ataque de fora bruta, foram realizadas melhorias para dificultar a decriptografia. Como alternativa, foi desenvolvido o 3DES, DES triplo, com trs chaves (Stallings, 2008). Ele possui uma chave com tamanho de 168 bits e pode ser definido pela funo: C = E( K3, D ( K2 ,E ( K1 ,P ) ) ) na qual: E = funo de Criptografia (Encryption); D = funo de Decriptografia (Decryption). A compatibilidade com o DES mantida fazendo-se K3 = K2 ou K1 = K2. O 3DES muito resistente criptoanlise, entretanto relativamente lento quando executado em software.
Figura 23. Criptografia com DES triplo

Fonte: Adaptado de Stallings (2008)

A Figura 23 ilustra cada um dos estgios do 3DES.

51

4.2 ADVANCED ENCRYPTION STANDARD AES Em julho de 1998, a Electronic Frontier Foundation (EFF) provou ter quebrado o DES com o uso de uma mquina que eles chamaram decifradora de DES. A EFF publicou os detalhes para que qualquer pessoa montasse a sua prpria mquina. Ela tinha um custo total de quase 250 mil dlares e obteve um ataque com sucesso em menos de trs dias. Tendo em vista a tendncia do barateamento do hardware e o aumento das velocidades de processamento, ficou perceptvel que o DES estava se tornando intil (Stallings, 2008). Apesar da segurana do 3DES, ele no se mostrava um candidato para ocupar o lugar do DES. Em vista disso, em 1997 o National Institute of Standards and Technology (NIST) props mundialmente uma alternativa para um novo AES com os seguintes requisitos: 1. Cifra de bloco simtrica tendo como entrada um bloco de 128 bits. 2. A chave deveria ter suporte para tamanho de 128, 192 e 256 bits. 3. Segurana igual ou superior ao Triple-DES alm de uma melhor eficincia. 4. Implementao de forma segura e eficiente em hardware e software numa grande variedade de plataformas e aplicaes. 5. Simplicidade de projeto.

Em uma primeira rodada de avaliao, 15 algoritmos propostos foram aceitos. Uma segunda rodada estreitou a competio para 5 algoritmos. O NIST completou o processo de avaliao e publicou um padro final (FIPS PUB 197) em novembro de 2001. O NIST selecionou o Rijndael para o AES como o algoritmo AES proposto. Os dois pesquisadores que desenvolveram e enviaram o Rijndael para o AES so criptgrafos belgas: o Dr. Joan Daemen e Dr. Vincent Rijmen (STALLINGS, 2008, p. 92)

52

4.2.1 Esquema geral do Rijndael - AES

Antes de iniciar com o esquema geral do AES faz-se necessrio ressaltar a possibilidade do algoritmo em usar tamanhos diferentes para a chave (128, 192 ou 256 bits) e o bloco de entrada (limitado at 128 bits).
Tabela 2. Parmetros do AES

Fonte: STALLINGS (2008)

A Tabela 2 estabelece uma relao de parmetros entre os componentes do algoritmo. Considere o bloco de entrada e a chave, ambos, com tamanho igual a 128 bits cada um. O AES possui apenas quatro funes que so utilizadas durante as 10 rodadas: AddRoundKey, ShiftRows, SubBytes, e MixColumns. Para criptografar e decriptografar, primeiramente usa-se a funo

AddRoundKey (este passo no conta como uma rodada), seguido por nove rodadas, onde cada uma delas aplica as quatro funes no bloco, e por fim, uma rodada utilizando novamente as funes exceto MixColumns.

53
Figura 24. Criptografia e decriptografia AES

Fonte: STALLINGS (2008)

A Figura 24 ilustra os processos de criptografia e decriptografia. Inicialmente o bloco representado em forma matricial organizando os bits de entrada por colunas.
Figura 25. Organizao do bloco de entrada

Fonte: STALLINGS (2008)

54

Como mostra a Figura 25, a matriz tem dimenso 4x4 onde cada elemento representa um byte e so inseridos seguindo a ordem das colunas e no das linhas, como se faz tradicionalmente na leitura de matrizes.
Figura 26. Chave expandida

Fonte: STALLINGS (2008)

A representao matricial a mesma para a chave, mas ao ser expandida para gerar as demais chaves ela passa a ser representada na forma vetorial, como ilustra a Figura 26. O vetor de words formado por 44 words de quatro bytes cada.

4.2.2 Adio de chave da rodada

A adio de chave da rodada (AddRoundKey) uma operao bsica e simples do AES. De maneira clara, os 128 bits de entrada so submetidos a um XOR bit a bit com a chave da rodada. Como pode ser visto, possvel aplicar essa funo em nvel de coluna entre os 4 bytes das duas matrizes. Os valores esto no sistema de numerao hexadecimal.

55

4.2.3 Deslocamento de linhas

O deslocamento de linhas (ShiftRows) faz uma transformao na organizao dos bytes deslocando-os de forma circular sempre para a esquerda de acordo a linha na qual se encontram.

Figura 27 Transformao ShiftRow

Fonte: (STALLINGS, 2008)

Como ilustra a figura 27, a primeira linha permanece inalterada, a segunda sofre deslocamento de um byte, a terceira de dois bytes e a quarta de trs bytes.

4.2.4 Substituio de bytes

Essa operao consiste no mapeamento dos bytes da matriz para novos bytes baseado na S-Box da Figura 28. A matriz composta por valores hexadecimais, tem dimenso 16 x 16 e nela possvel combinar quaisquer valores de 8 bits, o que resulta em 256 possibilidades distintas.

56
Figura 28. S-Box

Fonte: STALLINGS (2008)

Figura 29. S-Box inversa

Fonte: STALLINGS (2008)

Os 4 bits da esquerda servem como ndice de linha enquanto os 4 bits da direita indicam o ndice da coluna. Assim, o byte 3Ah permutado para o byte cuja linha 3 e coluna A, obtendo-se 80h. A notao usada para valores hexadecimais ser XXh, onde X pode ser um valor entre 0 e 9, A e F.

57

Segundo Terada (2011, p. 92) a operao SubBytes trata-se de uma transformao no-linear para tornar o Rijndael forte contra ataques criptoanalticos conhecidos como o Diferencial e o Linear. No do escopo desse trabalho detalhar sobre esse dois tipos de ataques. Para uma melhor compreenso segue um exemplo completo da funo SubBytes: EA 83 5C F0 04 45 33 2D 65 5D 98 AD 85 96 B0 C5 87 EC 4A 8C F2 6E C3 D8 4D 4C 46 95 97 90 E7 A6

Para reverter a transformao usa-se a S-Box inversa da Figura 29. Como no exemplo anterior, a entrada 3Ah tem como sada 80h, e a entrada 80h na S-Box inversa gera como sada 3Ah. A S-box construda da seguinte forma: 1. Encontre o inverso multiplicativo de cada byte no corpo finito GF(2 8). O valor 00h mapeado para si mesmo. 2. Aplique a seguinte transformao nos 8 bits (b7, b6, b5, b4, b3, b2, b1, b0) de cada byte da S-box: bi = bi onde 0 i b(i+4) mod 8 b(i+5) mod 8 b(i+6) mod 8 b(i+7) mod 8 ci

8 e ci o i-simo bit do byte c cujo valor 63h (01100011).

O ndice 7 corresponde ao bit mais significativo. A representao em forma matricial :

58

4.2.5 Embaralhamento de colunas

Essa funo consiste no mapeamento dos bytes de cada coluna para um novo valor como resultado da combinao linear de todas as colunas.

Desta forma, possvel expressar a transformao MixColumns sobre uma nica coluna como:

Veja como fica a matriz de bytes aps ser submetida a MixColumns: 87 6E 46 A6 F2 4C E7 8C 4D 90 4A D8 97 EC C3 95 47 37 94 ED 40 D4 E4 A5 A3 70 3A A6 4C 9F 42 BC

importante lembrar que as operaes ocorrem em GF(2 8). Assim, a adio a operao XOR bit a bit e a multiplicao de um valor por 02h definida pelas equaes (25) e (26). Para s0,0, tem-se que:
s0,0 = (02h 87h) 03h 6Eh = 6Eh (03h 6Eh) 46h A6h

02h 87h = (0000 1110)

(0001 1011) = (0001 0101) (1101 1100) = (1011 0010).

(02h 6Eh) = (0110 1110)

59

Por fim, 02h 87h = 0001 0101 03h 6Eh = 1011 0010 46h = 0100 0110 A6h = 1010 0110 0100 0111 47h

4.2.6 Expanso de chave do AES

A chave de 128 bits organizada em um vetor linear de 4 words cada uma com 16 bytes. Aps a expanso tem-se um total de 44 words (176 bytes); assim possvel utilizar uma chave de 4 words para as 10 rodadas do AES, incluindo o estgio AddRoundKey. O pseudocdigo descreve o processo de expanso: KeyExpansion ( byte key[16], word w[44] ) { word temp for ( i = 0; i < 4; i++ ) { w[ i ] = ( key[ 4 * i ], key[ 4 * i + 1 ], key[ 4 * i + 2 ], key[ 4 * i + 3] ); } for ( i = 4; i < 44; i++ ) { temp = w[ i 1 ]; if ( i mod 4 = 0 ) temp = SubWord( RotWord( temp )) w[ i ] = w[ i 4 ] temp; } } Rcon[ i / 4 ];

60

Figura 30. Expanso de chave do AES

Fonte: STALLINGS (2008)

Como ilustra a Figura 30, os 16 bytes da chave so mapeados para quatro words. A primeira coluna corresponde a w0, a segunda a w1 e assim sucessivamente. Analisando cuidadosamente a figura, nota-se que w[i] depende de w[ i 1 ] e w[ i 4 ]. A operao realizada um XOR com um diferencial na word que tiver uma posio mltipla de 4. O smbolo g usado para indicar a operao mais complexa realizado nessas words especficas. Ela composta pelas sub-funes: 1. Deslocamento circular de um byte esquerda. RotWord transforma a word de entrada [b0, b1, b2, b3] em [b1, b2, b3, b0]. 2. SubWord faz uso da S-box para substituir cada byte da word de entrada. 3. O resultado das etapas acima so submetidos a um XOR com uma constante de rodada, denominada Rcon[j]. Stallings (2008) diz que a constante de rodada definida por Rcon[j] = (RC[j], 0, 0, 0), com (RC[1] = 1, RC[j] = 2 RC[ j - 1] ) e com multiplicao definida sobre o corpo GF(28). Os valores de RC[j] em hexadecimal so

61

J RC[j]

1 01

2 02

3 04

4 08

5 10

6 20

7 40

8 80

9 1B

10 36

RCon realiza um XOR apenas com os bytes mais esquerda pois os demais valores da word so sempre 0. Assim, para RC[4] tem-se Rcon[4] = 08000000. Para uma melhor compreenso, considere o exemplo a seguir: Chave da rodada 8 : EA D2 73 B5 8D BA D2 31 2B F5 60 7F 8D 29 2F Para calcular a chave da rodada 9 so aplicada as funes descritas anteriormente:
i(decimal) temp Aps RotWord 36 7F8D292F 8D292F7F Aps SubWord 5DA515D2 1B000000 Rcon (9) Aps XOR com Rcon 46A515D2 EAD27321 w[i - 4] w[i] = temp w[ i 4 ] AC7766F3

na qual: i a posio da word no vetor, no caso w[36].

62

5. CRIPTOGRAFIA DE CHAVE PBLICA

O conceito de criptografia de chave pblica surgiu da necessidade de solucionar dois problemas da criptografia de chave secreta: a distribuio de chaves e as assinaturas digitais. Como mencionado no Captulo 4, o grande gargalo da criptografia simtrica era fazer com que os usurios trocassem a chave de forma secreta. Pensando nisso, Whitfield Diffie (matemtico formado pelo MIT) iniciou estudos visando buscar uma forma alternativa de criptografia, algo que revolucionasse o mundo criptogrfico. O resultado de suas pesquisas juntamente com Martin Hellman e Ralph Merkle resultaram na criptografia de chave assimtrica (Singh, 2010). Esse novo tipo de cifragem utiliza duas chaves: uma chave pblica, de conhecimento de todos e uma chave privada, exclusiva do proprietrio. A primeira usada, normalmente, para criptografar o texto claro, enquanto que a outra usada para decriptografar. Por isso, esse tipo de criptografia considerada como assimtrica porque chaves diferentes so usadas para cifrar e decifrar a mesma mensagem. A criptografia de chave simtrica baseada apenas em permutaes e substituies, mas a criptografia de chave pblica utiliza funes matemticas. De fato, o desenvolvimento da criptografia de chave pblica a maior e talvez a nica verdadeira revoluo na histria da criptografia. (STALLINGS, 2008). O RSA (Rivest, Shamir, Adleman) o um dos principais algoritmos de chave pblica e tem grande aceitao desde a sua publicao em 1978 pelos pesquisadores do MIT Ron Rivest, Adi Shamir e Leonard Adleman.

5.1 O ESQUEMA DE DIFFIE-HELLMAN-MERKLE

Segundo Singh (2010), Diffie e Hellman concentraram sua pesquisa nas funes matemticas. Entenda como funo qualquer operao matemtica que transforma um nmero em outro nmero. Assim, triplicar uma funo

63

que transforma o nmero 5 em 15. As cifragens feitas por computador tambm podem serem vistas como funes, pois transformam um nmero (texto original) em outro (texto cifrado). Eles buscaram uma funo de mo nica, ou seja, que fosse de difcil reverso. A funo de triplicar de mo dupla porque pode ser facilmente revertida; se um nmero multiplicado por 3 resultou em 15, ento o nmero original obviamente o 5. Diffie e Hellman pensaram em situaes do cotidiano para ilustrar exemplos de funes de mo nica e mo dupla. O ato de acender uma lmpada um exemplo de mo dupla porque ao pressionar novamente o interruptor o estado original da lmpada (desligada) restaurado. Entretanto, o interesse de Diffie e Hellman eram as funes de mo nica. Tomando ainda como exemplo atividades do dia-a-dia, considere o ato de quebrar um ovo. fcil quebr-lo, mas impossvel restaur-lo ao seu estado original. Ou ainda a mistura de duas tintas de cor azul e amarela para produzir tinta verde, contudo impossvel desfazer a mistura para recuperar qualquer uma das cores. Nessa linha de raciocnio, eles passaram a estudar a aritmtica modular.
Figura 31. Aritmtica em modular 7

Fonte: Adaptado de Singh (2010)

A Figura 31 mostra um relgio para o clculo de valores em mdulo 7. Para calcular 2 + 3 posicione-se no nmero 2 e avance 3 casas obtendo o 5. Para calcular 2 + 6, comece no 2 e avance 6 casas para obter 1 como resultado. 2 + 3 = 5 (mod 7) e 2 + 6 = 1 (mod 7)

64

Isso uma simples analogia do que os matemticos realmente fazem. Primeiro faa o clculo usando a aritmtica normal e obtenha y. Em seguida, para saber o resultado em (mod x), divida y por x e anote o resto. Ento o resto a resposta em (mod x). Para calcular 12 x 8 (mod 15), faa: 12 x 8 = 96 96 dividido por 15 = 6, resto 6 12 x 8 = 6 (mod 15)

Para perceber a complexidade de reverso da aritmtica modular, faa uma comparao com uma funo reversvel. Considere a funo f(x) = 3x. Se o resultado dado for 81, fcil deduzir que a resposta para x 4, pois 34 = 81. Apenas com alguns palpites possvel encontrar o resultado. Caso fosse sugerido o nmero 6 como resposta teria-se 36 = 729, o que leva a entender que o palpite est alm do valor correto de x. Agora, considere que te seja pedido o valor de x para 3x (mod 7) = 1. Se o palpite inicial for 5, tem-se 35 (mod 7) = 5 que um resultado alto para o que se deseja. Logicamente, tenta-se um valor menor para x. Mas certamente isso seria intil porque a resposta verdadeira para x 6. A tabela 3 mostra que a funo 3x (mod 7) no tem uma sequncia lgica de resultados como 3x.

Tabela 3 Comparao entre duas funes de mo dupla e nica

X 3x 3x (mod 7)

1 3 3

2 9 2

3 27 6

4 81 4

5 243 5

6 729 1

Fonte: Adaptado de Singh (2010)

Imagine a construo da tabela para a funo 453 x (mod 21.997). Seria muito dificultoso calcular um valor de x para um resultado 5.787. Veja que ao

65

escolher x fcil calcular a funo e obter 5.787, mas seria necessrio horas para construir uma tabela como a Tabela 3 e encontrar x. Depois de dois anos, Hellman chegou a concluso do uso de uma funo de mo nica na forma Yx (mod P). Alice e Bob2 escolhem um valor para Y e P com uma nica restrio de Y ser menor do que P. No h problema se Eva ouvir a conversao mesmo que eles usem uma linha telefnica para trocar essa informao porque as mesmas no secretas.
Figura 32. Funo de mo nica genrica Y (mod P). Alice e Bob usam neste exemplo, em particular, 7 (mod 11)
x x

Alice Fase 1 Alice escolhe um nmero, digamos 3, e o mantm em segredo. Chame o nmero de A. Fase 2 Alice introduz o 3 na funo de mo nica e o resultado de 7 (mod 11): 7 (mod 11) = 343(mod 11) = 2 Fase 3 Alice chama o resultado de seus clculos de alfa e envia seu resultado, 2, para Bob. A troca
A 3

Bob Bob escolhe um nmero, digamos 6, e o mantm em segredo. Chame o nmero de B. Bob introduz o 6 na funo de mo nica e o resultado de 7B(mod 11): 76(mod 11) = 117.649(mod 11) = 4 Bob chama o resultado de seus clculos de beta e envia seu resultado, 4, para Alice.

Normalmente este seria um momento crucial porque Alice e Bob esto trocando informaes, e portanto esta uma oportunidade para Eva escutar e descobrir os detalhes da informao transmitida. Contudo, Eva pode ouvir sem comprometer a segurana final do sistema. Alice e Bob podem usar a mesma linha telefnica atravs da qual escolheram os valores de Y e P, e Eva pode interceptar esses nmeros que esto sendo trocados, ou seja, 2 e 4. Contudo estes nmeros no so a chave, e por isso no importa que Eva os conhea.

Alice, Bob e Eva so personagens clssicos da criptografia (Singh, 2010).

66

Fase 4

Alice pega o resultado de Bob e calcula a soluo de A (mod 11): 43 (mod 11) = 64 (mod 11) = 9

Bob pega o resultado de Alice e calcula a soluo de B (mod 11): 26 (mod 11) = 64 (mod 11) = 9

A chave

Miraculosamente Alice e Bob terminaram com o mesmo nmero 9. Esta a chave!

Fonte: Adaptado de Singh (2011)

Os passos seguintes so descritos na Figura 32. Neste ponto, Alice e Bob podem usar o nmero 9 como chave para cifrar uma mensagem atravs do DES, por exemplo. Analisando cada passo descrito na Figura 32 possvel notar que Alice e Bob conseguiram trocar informaes e obter uma chave secreta. Mas como ter certeza que Eva no conseguir calcular a chave atravs dos valores conhecidos de Y e P? Como Eva no conhece os valores de A e B, ela ter que calcular A atravs de alfa como resultado de A na funo 7x (mod 11) ou calcular B atravs de beta como resultado de B na funo 7x (mod 11). Contudo, essa uma funo de mo nica, o que torna esse processo de reverso difcil para Eva, principalmente se os nmeros forem muito grandes. Singh (2010) traz uma analogia do esquema de Hellman para a gerao da chave secreta entre Alice e Bob. Presuma que Alice, Bob e Eva tenham um vaso de trs litros com um litro de tinta amarela, cada um. Alice e Bob acrescentam um litro de sua cor secreta ao seu prprio vaso. Alice pode usar um tom de vermelho enquanto Bob pode colocar verde. Eles enviam seus vasos um para o outro. Finalmente Alice pega a mistura de Bob e acrescenta um litro de sua prpria cor secreta. Simultaneamente Bob pega o vaso de Alice e acrescenta sua cor secreta. Ao final da mistura, Alice e Bob possuem a mesma cor nos vasos porque ambos possuem as cores amarelo, vermelho e verde. Entretanto, eles no tm conhecimento da cor secreta que cada um

67

usou. Quanto a Eva, ela pode ter interceptado um dos vasos aps a primeira mistura, mas no consegue descobrir qual a cor secreta usada para gerar tal cor porque a mistura de tintas uma funo de mo nica. O problema da distribuio de chaves estava parcialmente resolvido. Parcialmente porque era necessrio que Alice e Bob estivessem juntos no momento da gerao da chave. Imagine que Alice deseja enviar uma mensagem para Bob, mas ele se encontra dormindo. Alice ficaria

impossibilitada de entregar a mensagem porque antes necessrio que haja uma troca mtua de informaes para gerar uma chave secreta. Apesar de um grande passo, esse esquema prejudicava a espontaneidade do e-mail.

5.2 PRINCPIOS DE CRIPTOSSISTEMAS DE CHAVE PBLICA

Apesar do esquema criptogrfico funcional apresentado anteriormente, nada havia sido implementado em computador. Entretanto, j se pensava na ideia de chaves diferentes para cifrar e decifrar a mensagem. Alice teria uma chave pblica que seria do conhecimento de todos, disponvel em uma lista telefnica, por exemplo. Ela no precisa transmitir essa chave de forma confidencial, antes expe a todos a sua chave de cifragem pblica, inclusive a malfica Eva. Contudo, a chave pblica em nada ajuda no processo de decifragem. Mesmo que Bob criptografe a mensagem com a chave pblica de Alice, somente ela poder decriptograf-la com sua chave particular. O criptossistema de chave pblica pode ser representado pela analogia:
Alice projeta um cadeado e uma chave. Ela guarda a chave, mas manda fabricar milhares de rplicas do cadeado e as distribui pelas agncias do correio do mundo inteiro. Se Bob quer mandar uma mensagem, ele a coloca em uma caixa, vai at a agncia local dos correios e pede um cadeado da Alice, usando-o para trancar a caixa. Agora ele incapaz de abri-la, mas quando Alice a receber poder abri-la com sua chave nica. O cadeado e o processo de tranc-la so equivalentes chave de cifragem pblica, porque todos tm acesso aos cadeados e todos podem us-los para trancar uma mensagem em uma caixa. A chave do cadeado equivale chave de decifragem particular, porque somente Alice a possui, s ela pode abrir o cadeado e s ela pode ter acesso mensagem na caixa. (SINGH, 2010, p. 296).

68

possvel notar duas caractersticas na elaborao de algoritmos assimtricos: Ser computacionalmente invivel determinar a chave de decriptografia mesmo com o conhecimento do algoritmo e chave de criptografia. Qualquer uma das duas chaves podem ser usadas para criptografar desde que a outra seja usada para decriptografar.

Figura 33 Criptografia de chave assimtrica

Fonte: (STALLINGS, 2008)

A Figura 33 mostra o esquema para a criptografia de chave assimtrica. Quando usada de forma contrria ao modo convencional, a criptografia assimtrica prov outros benefcios alm da confidencialidade dos dados. Considere que Bob deseja enviar uma mensagem para Alice e criptografa-a com sua chave privada. Alice pode facilmente decifrar a mensagem com a chave pblica de Bob. Portanto, a mensagem cifrada com a chave privada de Bob serve para indicar que ele realmente enviou tal mensagem. Logo, todas as mensagens criptografadas dessa forma servem como uma assinatura digital. Esse processo semelhante s assinaturas em documentos de papel para verificar se uma mensagem foi enviada por determinada pessoa.

69
Figura 34. Autenticao usando Criptografia de Chave Pblica

Fonte: STALLINGS (2008)

A figura 34 mostra a garantia da autenticao atravs do uso da criptografia de chave pblica.

5.3 ALGORITMO RSA Inicialmente, Alice precisa gerar um par de chaves: a chave pblica PU e a chave privada PR. Para isso, necessrio que ela escolha dois nmeros, p e q, inteiros e primos. Em seguida, Alice multiplica p e q obtendo N. Suponha que Alice escolheu p = 2 e q = 11. Multiplicando os dois nmeros, temos que N = 2 x 11 = 22. O valor N como a chave pblica e se torna disponvel a todos, mas somente Alice deve conhecer p e q porque estes valores so informaes especficas e necessrias para a decifragem das mensagens. Em vista de N ser uma informao acessvel a todos, necessrio que ele seja um valor suficientemente grande de tal forma que seja impossvel encontrar os valores de p e q atravs da fatorao. Para Singh (2010) este talvez o aspecto mais belo e elegante da cifra assimtrica RSA o que garante a segurana do alogritmo. Agora Alice deve escolher um terceiro nmero e que seja menor e relativamente primo a (p 1)(q 1) e calcular um inteiro d que satisfaa e x d = 1 mod (p 1 )(q 1). Dois nmeros inteiros so ditos relativamente primos se o

70

nmero 1 o nico fator inteiro positivo em comum entre eles. Considerando os valores de p e q que tm sido utilizados at o momento tem-se: ed 1 mod (2 1 )(11 1 ) ed 1 mod 10

Como o valor de e deve ser relativamente primo a 10, um dos valores possveis e = 3. Logo, atravs do algoritmo de Euclides achamos d = 7, pois 21 = 1 mod 10. De forma geral, o relacionamento entre e e d pode ser expresso como ed mod (n) = 1 , onde (n) = (pq) = (p 1)(q 1). Isso equivalente a dizer ed d 1 mod (n) e-1 mod (n)

Em posse de todas as informaes necessrias, Alice pode enviar uma mensagem criptografada para Bob. A criptografia e a decriptografia tem a seguinte forma para um bloco de texto claro M e sada de texto cifrado C: C = Me mod n M = Cd mod n = (Me)d mod n = Med mod n Por fim, a chave pblica de Alice expressa por PU = (e, n) e a chave secreta por PR = (d, n). Para o exemplo em questo, PU = (3, 22) e PR = (7, 22). Stallings (2008) resume os ingredientes do esquema RSA: p,q , dois nmeros primos n = pq e, com mdc( (n), e) = 1; 1 < e < (n) d e-1 (mod (n)) (privados, escolhidos) (pblico, calculado) (pblico, escolhido) (privado, calculado)

71
Figura 35 Esquema geral do RSA

Fonte: STALLINGS (2008)

A figura 35 mostra de forma direta e clara o esquema geral do RSA. Um exemplo extrado de Stallings (2008) mostra como calcular o par de chaves e o processo de criptografar e decriptografar uma mensagem: 1. Selecione dois nmeros primos, p = 17 e q = 11. 2. Calcule n = 17 x 11 = 187. 3. Calcule (n) = (p 1)(q 1) = 16 x 10 = 160. 4. Escolha um nmero e que seja menor e relativamente primo a 160; faa e = 7. 5. Determine d tal que de 1 (mod 160) e d < 160. Usando o algoritmo de (n) =

Euclides, tem-se que o valor correto de d = 23, pois 23 x 7 = 161 = 1 x 160 + 1. As chaves resultantes so: PU = {7, 187} e PR = {23, 187}. Agora imagine que Bob quer enviar a letra X para Alice. Em ASCII, ela representada por 101 1000, que vale 88 decimais. Portanto, o texto claro de entrada M = 88. Para criptografar o cdigo necessrio calcular C = 887 mod 187. Usando

72

as propriedades da aritmtica modular o clculo se torna mais fcil, pois 7 = 4 + 2 + 1: 887 mod 187 = [(884 mod 187) x (882 mod 187) x (881 mod 187)] mod 187 881 mod 187 = 88 882 mod 187 = 7744 mod 187 = 77 884 mod 187 = 59.969.536 mod 187 = 132 887 mod 187 = (88 x 77 x 132) mod 187 = 894.432 mod 187 = 11 Bob neste momento envia o texto cifrado, C = 11, para Alice. Para decriptografar a mensagem, Alice calcula M = 1123 mod 187: M = 1123 mod 187 1123 mod 187 = [(111 mod 187) x (112 mod 187) x (114 mod 187) x x (118 mod 187) x (118 mod 187)] 111 mod 187 = 11 112 mod 187 = 121 114 mod 187 = 14.641 mod 187 = 55 118 mod 187 = 214.358.881 mod 187 = 33 1123 mod 187 = (11 x 121 x 55 x 33 x 33) mod 187 = 88 M = 88 = X em ASCII A Figura 36 ilustra o exemplo.
Figura 36. Exemplo do algoritmo RSA

Fonte: STALLINGS (2008)

73

6. CONCLUSO

A criptografia tem se apresentada como uma arte to antiga quanto essencial nas comunicaes. medida que foi evoluindo, ela foi se adequando a tecnologia da poca, o que sempre tornava o processo de decifragem um novo obstculo para os quebradores de cdigo. Contudo, a Matemtica sempre mostrou assumir papel importante no estudo da Criptografia. Desde a inveno do computador, as mensagens passaram a ser codificadas no sistema de numerao binria. Isso j mostrava que a Matemtica possui uma melhor capacidade de lidar com as mais variadas tcnicas criptogrficas. A primeira vista pode parecer difcil aplicar a matemtica criptografia de uma forma que traga a segurana necessria. Mas a persistncia de alguns pesquisadores mostrou que h muito a ser explorado, pois at hoje nessa cincia perduram problemas insolveis. No o simples uso de uma funo matemtica que criar a cifra indecifrvel, mas a combinao lgica de diversos dos seus elementos associados at mesmo a outras reas do conhecimento, como a fsica quntica, pode fornecer uma cifra

temporariamente segura, como a Criptografia Quntica. importante notar que a evoluo da tecnologia est diretamente ligada a segurana da informao, pois quanto mais poder computacional existir mais fcil ser ter acesso as mensagens criptografadas, principalmente pelo uso da fora bruta. Um grande exemplo o algoritmo RSA que tem sua segurana baseada na dificuldade computacional de se fatorar um nmero relativamente grande. Por fim, importante a constante pesquisa no ramo da Matemtica aplicada Criptografia. A NSA, por exemplo, possui os melhores matemticos do mundo porque sabe do potencial que o conhecimento desses profissionais podem causar na atual Era da Informao. Em meio ao grande avano tecnolgico, a matemtica prevalece como um dos alicerces que sustm a criptografia.

74

REFERNCIAS

ALMEIDA. Andr Tenreiro de. O uso da matemtica na criptografia. Rio de Janeiro, s/i 2005. Disponvel em: http://www.gta.ufrj.br/grad/05_2/aes/. Acesso em: 06 nov. 2011. BEZERRA, D. J.; MALAGUTTI, P. L.; RODRIGUES, V. C. S. Aprendendo criptologia de forma divertida. Paraba, 2010. Disponvel em: http://www.mat.ufpb.br/bienalsbm/arquivos/Oficinas_Completos/O1Completo.pd f. Acesso em: 06 set. 2011. CDIGOS SECRETOS. A ctala espartana. [s/l]. Disponvel em: http://www.dm.ufscar.br/~caetano/iae2004/G6/citala.htm. Acesso em 12 set. 2011. DONDA, Daniel. A matemtica da cifra de Vigenre. [s/l], 29 set. 2010. Disponvel em: http://www.mcsesolution.com/Seguran%C3%A7a/a-matematicada-cifra-de-vigenere.html. Acesso em: 10 out. 2011. KIOSKEA. Introduo codificao DES. [s/l], 11 jul. 2009. Disponvel em: http://pt.kioskea.net/contents/crypto/des.php3. Acesso em: 19 set. 2011. KUROSE, J. F.; ROSS, K. W. Redes de computadores e a internet. 5 ed. So Paulo: Editora Addison-Wesley, 2010. MAIER, R. R.; Teoria dos nmeros. Braslia, 2005. 139 f. Notas de aula, Departamento de Matemtica IE/UnB. Disponvel em: http://www.mat.unb.br/~maierr/tnotas.pdf. Acesso em: 22 nov. 2011. MATHIAS. Leopoldo A. P. Algoritmo de criptografia AES. Disponvel em: http://www.gta.ufrj.br/grad/05_2/aes/. Acesso em: 29 out. 2011. NUMABOA. Criptografia Numaboa. Disponvel em: http://www.numaboa.com.br/criptografia. Acesso em: 14 set. 2011. SINGH, Simon. O livro dos cdigos: a cincia do sigilo do Egito criptografia quntica. 8 ed. Rio de Janeiro: Editora Record, 2010. STALLINGS, William. Criptografia e segurana de redes: princpios e prticas. 4 ed. So Paulo: Editora Pearson, 2008. TANENBAUM, A. S. Redes de computadores. 4 ed. Rio de Janeiro: Editora Campus, 2003. TERADA, Routo. Segurana de dados: criptografia em rede computador. 2 ed. So Paulo: Editora Edgar Blucher, 2011.

75

ULBRICH, Henrique Cesar; DELLA VALLE, James. Universidade Hacker: desvende todos os segredos do submundo dos hackers. 6 ed. So Paulo: Editora Digerati Books, 2009. VARGAS, Marcello. MDC. Porto Alegre, 07 out. 2010. Disponvel em: http://professormarcello.com/index.php?option=com_content&task=view&id=69 4&Itemid=47. Acesso em: 14 nov. 2011. WIKIPDIA. Enigma (mquina). [s/l], 04 de nov. 2011. Disponvel em: http://pt.wikipedia.org/wiki/Enigma_%28m%C3%A1quina%29. Acesso em: 13 nov. 2011.

Você também pode gostar