22
A MATEMÁTICA DOS CÓDIGOS CRIPTOGRÁFICOS Paloma Barbosa Freire Universidade Católica de Brasília Curso de Matemática e-mail: [email protected] José Eduardo Castilho Universidade Católica de Brasília Curso de Matemática e-mail: [email protected] RESUMO O presente trabalho apresenta um estudo comparativo da Cifra de César, Cifra de Vigenère, Máquina Enigma, RSA e Esquema Rafaella, com os seus criptosistemas usados. Para isso foram desenvolvidos os códigos utilizados em cada um dos tipos de criptografia citado. Nesse artigo foi relatada uma breve história, detalhado o criptosistemas e em seguida cada criptografia foi desenvolvida. Finalizando com uma breve citação das cifras expostas. Palavras Chaves: criptografia, criptosistemas. 1. INTRODUÇÃO A Criptografia teve indícios pelos chineses para a proteção dos segredos políticos e militares. A palavra é composta por dois termos gregos kryptos (kyptos - secreto, escondido, oculto) e grapho (grapho – escrita, grafia). Ela é a ciência (ou arte) de escrever uma mensagem original em cifras ou códigos, tornando-a incompreensível e difícil de ser decifrada ou decodificada. A criptografia é o estudo de técnicas matemáticas, relacionadas com a confidencialidade, integridade, autenticação de dados, ou seja, consiste na substituição de dados num código secreto como medida de segurança para que possam existir comunicações seguras. O mais interessante é que a metodologia da criptografia não mudou muito até meados do século XX. Somente depois da Segunda Guerra Mundial, com o aparecimento do computador, a área realmente floresceu utilizando algoritmos matemáticos mais sofisticados e se tornando difícil a sua resolução necessitando de um conhecimento mais aprofundado nos conceitos matemáticos. Na verdade, a criptografia formou a base para a ciência da computação moderna. O rápido avanço tecnológico exige sistemas de segurança cada vez mais complexos onde a criptografia deve ser implantada de forma integrada, fornecendo um escudo extra para proteger dos dados.

Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

Embed Size (px)

Citation preview

Page 1: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

A MATEMÁTICA DOS CÓDIGOS CRIPTOGRÁFICOS Paloma Barbosa Freire Universidade Católica de Brasília Curso de Matemática e-mail: [email protected] José Eduardo Castilho Universidade Católica de Brasília Curso de Matemática e-mail: [email protected]

RESUMO O presente trabalho apresenta um estudo comparativo da Cifra de César, Cifra de Vigenère, Máquina

Enigma, RSA e Esquema Rafaella, com os seus criptosistemas usados. Para isso foram desenvolvidos os

códigos utilizados em cada um dos tipos de criptografia citado. Nesse artigo foi relatada uma breve

história, detalhado o criptosistemas e em seguida cada criptografia foi desenvolvida. Finalizando com

uma breve citação das cifras expostas.

Palavras Chaves: criptografia, criptosistemas. 1. INTRODUÇÃO

A Criptografia teve indícios pelos chineses para a proteção dos segredos políticos e

militares. A palavra é composta por dois termos gregos kryptos (kyptos - secreto,

escondido, oculto) e grapho (grapho – escrita, grafia). Ela é a ciência (ou arte) de

escrever uma mensagem original em cifras ou códigos, tornando-a incompreensível e

difícil de ser decifrada ou decodificada.

A criptografia é o estudo de técnicas matemáticas, relacionadas com a

confidencialidade, integridade, autenticação de dados, ou seja, consiste na substituição

de dados num código secreto como medida de segurança para que possam existir

comunicações seguras. O mais interessante é que a metodologia da criptografia não

mudou muito até meados do século XX. Somente depois da Segunda Guerra Mundial,

com o aparecimento do computador, a área realmente floresceu utilizando algoritmos

matemáticos mais sofisticados e se tornando difícil a sua resolução necessitando de um

conhecimento mais aprofundado nos conceitos matemáticos. Na verdade, a criptografia

formou a base para a ciência da computação moderna.

O rápido avanço tecnológico exige sistemas de segurança cada vez mais complexos

onde a criptografia deve ser implantada de forma integrada, fornecendo um escudo extra

para proteger dos dados.

Page 2: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

2Desde então, técnicas criptográficas têm sido utilizadas nas mais diversas áreas como

operações militares, serviços como e-mail, telefonia celular, acesso seguro à internet,

transações comerciais, autenticação de usuários, uso de serviços bancários e várias

outras operações (KUNST e RIBEIRO, 2004).

O desenvolvimento da matemática, em especial na área de Teoria dos Números, tem

proporcionado um avanço significativo da criptografia (CAVALCANTE, 2005). Novas

técnicas de codificação têm sido desenvolvidas de tal forma que a decodificação por

intermédio de computadores é praticamente inviável. Todo sistema criptográfico pode

ser descrito num modelo matemático, onde, o que difere são as funções de codificação e

decodificação. Neste trabalho, apresentam-se alguns sistemas criptográficos e o

respectivo modelo matemático.

2. UMA BREVE HISTÓRIA DA CRIPTOGRAFIA A escrita por meios de códigos começou a ser conhecida pelo relato feito por Heródoto

um historiador romano, por volta do quinto século antes de Cristo, que relatou os

conflitos ocorridos entre Grécia e Pérsia. Nesta batalha se lutava pela liberdade, onde a

escrita secreta foi fundamental na guerra. A estratégia utilizada pelos Persas foi

organizarem secretamente um exército militar para combater a Grécia, seu plano era o

ataque surpresa. No entanto não contavam que a Grécia usasse uma arma mais forte que

era a arte da escrita secreta. O grego Demarato que morava na Pérsia, escreveu em um

par de tabuletas raspando a cera e escrevendo a mensagem. Depois de escrita a cobria

novamente para assim ser passada pelos guardas sem ser descoberta (SINGH, 2002).

Com isso em 23 de setembro de 480 a.C, Xerxes líder dos Persas atacou a Grécia que o

esperava bem preparada. Assim Xerxes perdeu a batalha pelo fato de não ter realizado o

combate de forma surpresa. Esse tipo de criptografia, ocultação de mensagem, é

conhecido como esteganografia originada da palavra grega steganos (coberto) e

graphein (escrever). (SINGH, 2002).

A criptografia mais conhecida surgiu nas Guerras da Gália de Júlio César, e por este

motivo ficou conhecida como cifra de César. Ele substituía cada letra na mensagem por

outra que estivessem três casas à frente no alfabeto. Este tipo de criptografia por

substituição, que emprega um alfabeto, é chamado de cifras monoalfabéticas. (SINGH,

2002).

Page 3: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

3Criptografia por substituição era muito usada, o que tornava conhecido o seu método

de cifrar e decifrar sendo de fácil acesso a descoberta da mensagem criptografada. Com

isso surgiu uma nova forma de criptografia feita por substituição criada por Blaise de

Vigenère em 1563. Baseado não apenas em um, mas sim em 26 alfabetos cifrados.

Utiliza a Cifra de César de forma diferente para cada alfabeto, formando assim uma

tabela, chamada de Quadrado de Vigenère. Esse por sua vez é denominado de cifra

polialfabética, e foi utilizado por muito tempo, sendo quebrada somente em 1854.

Durante muitos outros anos nenhum outro método de criptografia foi desenvolvido com

tanta segurança (SINGH, 2002).

Somente em 1918, o alemão Arthur Scherbius desenvolveu uma nova forma de

criptografar. Ele construiu uma máquina cifrante, chamada Enigma, que era composta

de três elementos: Um teclado para introduzir a mensagem; Um misturador que

permutava o alfabeto: Um mostrador para visualizar a mensagem cifrada (SINGH,

2002). Aqui se inicia a troca das cifras de papel e lápis por uma mais moderna que

utilizava a tecnologia do início do século XX. Em 1926 o Exército Alemão a utilizou

fazendo algumas modificações obtendo a rede de comunicação mais segura da época

(SULZBACH, 2003). Em 1940 Alan Turing e sua equipe da inteligência britânica

construíram o primeiro computador operacional e seu propósito especificamente era

decifrar mensagens alemãs cifradas pela Máquina Enigma. Esta primeira máquina

(computador) foi substituída em 1943, recebendo o nome de Colossus, com a tecnologia

de válvulas era capaz de realizar diversos cálculos capaz de quebrar códigos da

Máquina Enigma.

Após a Segunda Guerra Mundial com o desenvolvimento de computadores e outras

tecnologias a criptografia foi tornando-se mais complexa. Em1977 a equipe Rivest,

Shamir e Adleman desenvolveram um estudo de criptografar usando uma função de

mão única. Composta de duas chaves diferentes, uma delas pública que visa: a

autenticação de destino, que garante que somente o destinatário consiga ler a

mensagem; a autenticação da origem, que evita a falsificação da identidade do emissor;

a detecção de integridade de informação que evita outra pessoa leia e altere a

informação (MONTEIRO, 2002). A outra é a chave privada que é usada para decifrar a

mensagem, assim esse algoritmo é chamado de algoritmo assimétrico. A importância

deste tipo de sistema é que viabiliza a troca de informações, de forma segura, via

Page 4: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

4internet. Essa criptografia ficou conhecida como RSA, onde basea-se em função

modular e conhecimento em teoria dos números. Nos tempos de hoje utilizasse sistemas

de criptografia de chave publica, onde as chaves são números com ordem de grandeza

elevado. Este é o ponto chave da segurança destes sistemas, pois, “todos os

computadores do planeta levariam mais tempo do que a idade total do universo para

quebrar a cifra” (SINGH, 2002).

Com essa breve historia da criptografia percebe-se que tanto a matemática quanto a

criptografia estão interligadas, sendo que esse processo é continuo, onde a criptografia

moderna é definida a partir do algoritmo aplicado, que este por sua vez é definido pelo

desenvolvimento ocorrido nas disciplinas aplicadas.

3. CRIPTOSISTEMAS Os criptosistemas correspondem aos fundamentos da criptografia. Nele é definida a

terminologia dos componentes dos mecanismos de codificação e decodificação.

As mensagens são definidas de duas formas, uma corresponde ao texto original (m), ou

seja, a mensagem sem sofrer alterações, já a outra forma é direcionada ao texto cifrado

(c), ou seja, a mensagem cifrada.

Em geral, um criptosistema pode ser representado por um modelo matemático

constituído dos seguintes elementos (SOUZA, 2004):

• Um conjunto finito A chamado de alfabeto de entrada, que pode ser o alfabeto

latino ou sua representação numérica em código ASCII.

• Um conjunto M formado por cadeias finitas de elementos de A, onde cada

elemento corresponde a um texto simples, não cifrado.

• Um conjunto C formado por cadeias finitas de elementos de A, onde cada

elemento de C corresponde a um texto cifrado.

• Um conjunto K de elementos chamados chaves, que são as ferramentas

necessárias para a realização dos processos de codificação de decodificação.

• O espaço E de funções eE : M→C, e ∈K, que codificam a mensagem.

• O espaço D de funções dD :C→M, d ∈K, que decodificam a mensagem.

Page 5: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

5Para cada elemento k1 em K defini-se uma única bijeção de M em C, que garante a

existência de k2 em K que determina a função inversa para a decodificação.

Destaca-se que sistemas simétricos são caracterizados por usarem k1 = k 2 , pois no

processo é utilizada a mesma chave tanto para codificar quanto para decodificar. Nos

sistemas assimétricos usa-se k1 ≠ k 2 onde uma das chaves é de conhecimento público

para a codificação e a outra a chave é privada e usa-se para a decodificação. Observa-se

que sistemas simétricos exigem que cada participante do processo tenha conhecimento

da chave e no assimétrico não seria necessário.

Existem várias formas de se considerar o alfabeto de entrada. Uma delas seria

considerar o código ASCII, em que cada letra é representada por um valor inteiro. Nos

modelos apresentados a seguir, deve-se considerar que o alfabeto é composto somente

por letras minúsculas, cujo código ASCII é dado no Quadro 1.

Quadro 1 – Código ASCII 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

Código ASCII 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

Seguindo este modelo, serão descritos alguns sistemas criptográficos. 4. CIFRA DE CÉSAR Essa criptografia foi proposta por Júlio César com objetivos militares nas Guerras da

Gália. Esta usa o conceito de translação letras do alfabeto, onde cada letra do alfabeto é

relacionada com a letra que está a três casas a frente ocorrendo assim uma substituição

da letra a pela D, b por E e assim por diante (Ver no Quadro 2).

Quadro 2 - Cifra de César

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

De acordo com a descrição do modelo de um criptosistema, dada na seção anterior, a

Cifra de César pode ser descrita pelos seguintes elementos:

Page 6: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

6A: alfabeto em código ASCII descrito no Quadro 1.

M = Conjunto das mensagens a serem codificadas.

C = Conjunto das mensagens codificadas.

K = Conjunto das chaves de codificação e decodificação {1,2,...,25}

k 1 ,k 2 chaves de codificação e decodificação.

E : M→ C, f( x , k 1 ) = 97 + (x -97+ k1 ) mod(26)

D : C→ M, g( x , k 2 ) = 97 + (x -97- k2 ) mod(26)

Neste caso tem-se que a Cifra de César é um sistema particular do modelo acima, com

que k1 = k 2 =3, sendo assim um sistema simétrico. Outra observação, é que o uso da

função modular é necessário para que o código gerado permaneça dentro do intervalo de

variação do alfabeto como descrito no Quadro 1.

De acordo com Simon Singh, (2002) “que César deslocava as letras em três casas, fica

claro que, empregando-se qualquer deslocamento entre uma das 25 casas, é possível

criar 25 códigos distintos” (p.27). Esse processo pode ser representado pelo modelo

acima, usando valores diferentes valores de chaves do conjunto K, mas mantendo k1 =

k 2 . Para melhor entendimento, aplicando o criptosistema da Cifra de César como

exemplo, para criptografar a mensagem freire. Utilizando passo a passo como foi

descrito acima. Para transformar a mensagem em números teremos como base o

Quadro 3.

Quadro 3: Exemplo de aplicação da Cifra de César

Criptografia - E : M→ C Decriptografia - D : C→ M

Mensagem Seqüência ( )( )26mod39797 +−+ x Texto Cifrado ( )( )26mod39797 −−+ x Texto Original Mensagem

F 102 ( )( )26mod39710297 +−+ 105 ( )( )26mod39710597 −−+ 102 F

R 114 ( )( )26mod39711497 +−+ 117 ( )( )26mod39711797 −−+ 114 R

E 101 ( )( )26mod39710197 +−+ 104 ( )( )26mod39710497 −−+ 101 E

I 105 ( )( )26mod39710597 +−+ 108 ( )( )26mod39710897 −−+ 105 I

R 114 ( )( )26mod39711497 +−+ 117 ( )( )26mod39711797 −−+ 114 R

E 101 ( )( )26mod39710197 +−+ 104 ( )( )26mod39710497 −−+ 101 E

Para o exemplo acima foi usado os procedimentos implementados no Maple, descritos no Anexo A.

Page 7: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

7 5. CIFRA DE VIGENÈRE Vigenère criou uma criptografia que necessitava de uma tabela tanto para criptografar

quanto para decriptografar. Esta consiste de 26 alfabetos, sendo que na primeira linha

está o alfabeto na ordem correta e nas linhas seguintes utiliza-se a Cifra de César

deslocando uma casa em comparação com a linha anterior como é demonstrado no

Quadro 4.

Quadro 4 - Cifra de Vigenère

Alfabeto correto 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

1 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 A 2 C 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 3 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 4 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 D 5 F G H I J K L M N O P Q R S T U V W X Y Z A B C D E 6 G H I J K L M N O P Q R S T U V W X Y Z A B C D E F 7 H I J K L M N O P Q R S T U V W X Y Z A B C D E F G 8 I J K L M N O P Q R S T U V W X Y Z A B C D E F G H 9 J K L M N O P Q R S T U V W X Y Z A B C D E F G H I 10 K L M N O P Q R S T U V W X Y Z A B C D E F G H I J 11 L M N O P Q R S T U V W X Y Z A B C D E F G H I J K 12 M N O P Q R S T U V W X Y Z A B C D E F G H I J K L 13 N O P Q R S T U V W X Y Z A B C D E F G H I J K L M 14 O P Q R S T U V W X Y Z A B C D E F G H I J K L M N 15 P Q R S T U V W X Y Z A B C D E F G H I J K L M N O 16 Q R S T U V W X Y Z A B C D E F G H I J K L M N O P 17 R S T U V W X Y Z A B C D E F G H I J K L M N O P Q 18 S T U V W X Y Z A B C D E F G H I J K L M N O P Q R 19 T U V W X Y Z A B C D E F G H I J K L M N O P Q R S 20 U V W X Y Z A B C D E F G H I J K L M N O P Q R S T 21 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U 22 W X Y Z A B C D E F G H I J K L M N O P Q R S T U V 23 X Y Z A B C D E F G H I J K L M N O P Q R S T U V W 24 Y Z A B C D E F G H I J K L M N O P Q R S T U V W X 25 Z 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 26 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

Para o uso da tabela será necessário uma palavra chave para definir as linhas que vão ser

utilizadas, como por exemplo, a mensagem “Código” tendo a palavra chave freire que

deverá ser associada a frase que vai ser criptografada como mostra no Quadro 6.

A Cifra de Vigenère pode ser vista de uma forma matemática de acordo com o esquema

proposto em Criptosistemas:

A: alfabeto em código ASCII descrito no Quadro 1.

M = Conjunto das mensagens a serem codificadas.

C = Conjunto das mensagens codificadas.

K = Conjunto das chaves de codificação e decodificação {1,2,...,25}

Page 8: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

8k 1 , k 2 ,...k n chaves de codificação e decodificação.

E : Mn

→ Cn

, onde n é o número de caracteres da palavra chave

F(x 1 ,x 2 ,... ,xn ) = F( f(x 1 ,k 1 ), f(x 2 ,k 2 ), ... , f(xn ,k n ) )

D : Cn

→ Mn

,

G(x 1 ,x 2 ,... ,xn ) = G( g(x1 ,k 1 ), g(x 2 ,k 2 ), ... , g(xn ,k n ) ),

onde, f(xs ,k s ) e g(xs ,k s ) são as funções de codificação e decodificação do modelo

da Cifra de César. Neste caso, a Cifra de Vigenère também é um sistema simétrico.

Dessa forma se tornam mais fácil o entendimento do processo de cifrar e decifrar para

cada letra do sistema de Cifra de Vigenère.

No Quadro 6 representa todo o processo da codificação e decodificação, com base nos

dados expostos no Quadro 1.

Quadro 6: Exemplo de aplicação da Cifra de Vigenère

Criptografia - E : Mn

→ Cn

Decriptografia - D : C

n→ M

n

Mensagem k n Seqüência 97+(x-97+ k n )(mod26) Texto Cifrado 97+(x-97- k n )(mod26) Seqüência Mensagem

C F 5 99 97+(99-97+5)(mod26) 104 97+(104-97-5)(mod26) 99 C

O R 17 111 97+(111-97+17)(mod26) 102 97+(102-97-17)(mod26) 111 O

D E 4 100 97+(100-97+4)(mod26) 104 97+(104-97-4)(mod26) 100 D

I I 8 105 97+(105-97+8)(mod26) 113 97+(113-97-8)(mod26) 105 I

G R 17 103 97+(103-97+17)(mod26) 120 97+(120-97-17)(mod26) 103 G

O E 4 111 97+(111-97+4)(mod26) 115 97+(115-97-4)(mod26) 111 O

O procedimento da Cifra de Vigenère, pode ser implementado com base na Cifra de César (Veja os códigos descritos no Anexo B).

6. MÁQUINA ENIGMA A Máquina Enigma é um sistema de cifrar mensagens substituindo as letras por outras.

Para que isso aconteça ocorre um tipo de permutação com o alfabeto. Esse sistema foi

uma revolução na época, pelo fato de ser o primeiro sistema que usou recursos

tecnológicos. A peça principal da máquina é o misturador de borracha em um formato

de disco com fios que ligam o teclado ao mostrador. A mensagem é criptografada a

medida em que gira o misturador, pois ele é definido de acordo com a quantidade de

Page 9: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

9letras fornecidas na máquina, sendo que em um alfabeto completo de 26 letras é

determinado um vinte e seis avos de um giro completo (SINGH, 2002).

O método de cifragem é mais bem detalhado na figura 1, onde qualquer que seja a

permutação dos rotores nenhuma letra é codificada nela própria.

Figura 1: Máquina Enigma (fonte: http://www.ncc.up.pt/~pbv/enigma/nivel1.html)

Quando são usados três misturadores com um alfabeto de 26 letras, é aumentado a sua

quantidade de troca de 26 para 26x26x26, ou seja 17.576 alfabetos cifrados (SINGH,

2002).

Maquina Enigma é representada por uma permutação no alfabeto, onde cada letra é

substituída por outra (ou seja, bijetiva). Esse processo é contínuo sendo que nesse

esquema os rotores seguem para o refletor, e assim voltando aos rotores. No exemplo

seguinte é visto o sistema de três rotores onde aplicado a permutação:

p = 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

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

q = 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

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

r = 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

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

Aplicando:

x → p(x) → q(p(x)) → r(q(x)) Transformando:

Page 10: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

10

K → (aplicando p) → D → (aplicando q) → F→ (aplicando r) → L

Assim, a letra K é substituída por L.

Já o refletor sua permutação não pode ser aleatória ou arbitrária, é nele que recebe a

corrente dos rotores e a envia novamente para outras modificações. Ele deve seguir duas

regras:

• Não envia nenhuma letra nela própria – corrente não pode circular nos dois

sentidos no mesmo fio.

• Deve ser recíproco – aplicando duas vezes adquirimos a letra original.

Na tabela abaixo é um exemplo de permutação do refletor, definido por u:

u = 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

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

Ao sair do refletor a corrente retorna passando pelos rotores, como é o processo de volta

é aplicado à permutação inversa (é somente trocar a primeira linha pela segunda, e vice-

versa). Portanto ao juntarmos todos os processos aqui detalhados podemos definir as

funções E e D , assim formalizando o sistema da maquina enigma para três rotores:

p → q → r → u → r− 1

→ q− 1

→ p− 1

(rotores) (refletor) (inversa dos rotores) A: alfabeto em código ASCII descrito no Quadro 1.

M = Conjunto das mensagens a serem codificadas.

C = Conjunto das mensagens codificadas.

K = Conjunto das chaves de codificação e decodificação formada pelas permutações de

A.

p, q, r, u chaves de codificação e decodificação.

E : M→ C, f(x) = p(x) . q(x) . r(x) . u(x) . r− 1

(x). q− 1

(x). p− 1

(x)

D : C→ M g(x) = p(x) . q(x) . r(x) . u(x) . r− 1

(x). q− 1

(x). p− 1

(x)

Observe que f(x) = g(x), pois as permutações satisfazem de p.p− 1

se resulta na

identidade. Abaixo é mostrado a inversa de p, denotada como p− 1

:

p 1− = C B E I M H R K Q V D L T Z J A G X P U S Y N W O F

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

Page 11: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

11

p.p− 1

= id

id = 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

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

Exemplo de codificação com as permutações acima e considerando que o disco 1 gira a

cada letra, o disco 2 a cada 2 e o disco 3 a cada 3. Com isto temos FREIRE codificado

para MUSFOY decodifica novamente na mensagem FREIRE.

Quadro 7: Exemplo de aplicação da codificação da Enigma

Criptografia - E : M→ C Decriptografia - D : C→ M

Mensagem Seqüência Seqüência Codificada

Texto Cifrado

Seqüência Decodificada Mensagem

F 102 109 M 102 F

R 114 117 U 114 R

E 101 115 S 101 E

I 105 102 F 105 I

R 114 111 O 114 R

E 101 121 Y 101 E

O exemplo acima foi gerado pela implementação da Máquina Enigma descrita no Anexo C 7. CRIPTOGRAFIA RSA O sistema RSA foi criado por Rivest, Shamir e Adleman onde as iniciais dos nomes dos

seus criadores deram o nome RSA. Esse sistema se baseia nos conceitos de Teoria dos

Números onde será demonstrada passo a passo que se baseia a Criptografia RSA:

1º - transformar as mensagens em uma seqüência de números, na regra que desejar.

Como por exemplo: A: alfabeto em código ASCII descrito no Quadro 1.

M = Conjunto das mensagens a serem codificadas.

C = Conjunto das mensagens codificadas.

2º - escolher dois primos muito grandes, denominados p e q .

3º - calcular ( ) ( )( )11 −−= qpnϕ onde qpn .= , que ( )sϕ é o número de inteiros

menores ou iguais a s que são relativamente primos com s (fundamento ϕ de Euler).

Page 12: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

12 4º - escolher um número d que satisfaça MDC ( )( ) 1, =nd ϕ , onde d e ( )nϕ sejam co-

primos, utilizando o Algoritmo de Euclides.

5º - em seguida calcula-se ( )( )nde ϕmod1. ≡ , sendo encontrado e utilizando

congruências.

6º - separar a mensagem em pequenas partes.

7º - calcular ( )nmc e mod≡ , para criptografar a mensagem. Sendo definido E , função

para criptografar. Assim: E : M→ C, ( )nmc e mod≡

8º - por último, para decodificar a mensagem calcula-se ( )ncm d mod≡ . Sendo definido

D , função para decodificar. Assim: D : C→ M, ( )ncm d mod≡

Logo o sistema RSA deve seguir todos os passos para que o resultado seja favorável.

Com isso destacam-se duas chaves (estas por sua vez definidas em criptosistemas como

k) para criptografar detalhada como ( )ne, e outra para decriptografar, ( )nd , .

De acordo com a descrição do modelo de um criptosistema, dada na seção anterior, as

chaves desse esquema pede ser descrita pelos seguintes elementos:

K = Conjunto das chaves de codificação e decodificação

k1 ≠ k 2 → ( )ne, ≠ ( )nd , chaves de codificação e decodificação.

Obseva-se que são utilizados duas chaves, sendo uma para criptografar e outra para

decodificar, definidas como chave pública e chave privada. Assim esse esquema é

chamado de Criptografia Assimétrica em que k1 ≠ k 2 , citado no item criptosistema.

Para melhor entendimento, aplicando o sistema RSA para criptografar a mensagem

freire, utilizando passo a passo como foi descrito acima. Para transformar a mensagem

em números teremos como base o Quadro 1.

Logo a mensagem freire é a seqüência de números 102 - 114 - 101 - 105 - 114 - 101.

Em seguida escolheremos 3=p e 11=q , agora podendo calcular:

qpn .= = 3 . 11 = 33

( ) ( )( )11 −−= qpnϕ = ( )( ) 2011113 =−−

O próximo passo a ser representado será descobrir d , onde é encontrado ao resolver a

operação MDC( ) 1,20 =d de acordo com o Algoritmo de Euclides, achando 7=d . Com

isso podemos resolver a equação ( )( )nde ϕmod1. ≡ ( )20mod17. ≡= e , de acordo com

congruências já citado anteriormente chegamos em 3=e .

Page 13: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

13 É evidente no momento que as duas chaves necessárias para o sistema são a (3, 33)

para criptografar e (7, 33) para decriptografar. O Quadro 8 representa todo o processo

da codificação e decodificação.

Quadro 8: Exemplo da aplicação do esquema RSA.

Criptografia - E : M→ C Decriptografia - D : C→ M

Mensagem Seqüência ( )33mod3mc ≡ Texto Cifrado ( )33mod7cm ≡ Texto Original Mensagem

F 102 ( ) 2733mod1023 =≡c 27 ( ) 10233mod277 =≡m 102 F

R 114 ( ) 933mod1143 =≡c 9 ( ) 11433mod97 =≡m 114 R

E 101 ( ) 833mod1013 =≡c 8 ( ) 10133mod87 =≡m 101 E

I 105 ( ) 1833mod1053 =≡c 18 ( ) 10533mod187 =≡m 105 I

R 114 ( ) 933mod1143 =≡c 9 ( ) 11433mod97 =≡m 114 R

E 101 ( ) 833mod1013 =≡c 8 ( ) 10133mod87 =≡m 101 E

A implementação do Sistema RSA encontra-se no Anexo D.

8. ESQUEMA RAFAELLA O sistema Rafaella foi desenvolvido em 2004 por Ribeiro e Weber com o objetivo de

criar um sistema de fácil cifra e de difícil decodificação. Esse esquema se baseia em

equações diferencias. sendo diferente de todos os outros que analisamos, pois, nesse

processo ocorre translação de funções. Equações diferenciais não é aplicada diretamente

mais sim dela se conseguiu o surgimento do sistema de criptografia Rafaella, baseando-

se em teoria dos grupos de Lie e simetrias em matemática discreta. (KUNST e

RIBEIRO, 2004).

Esse sistema destaca-se pelo fato de suas chaves privadas serem definidas pelos

componentes do sistema, onde uma deverá ser do emissor da mensagem e a outra do

receptor da mensagem criptografada.

Para que seja um processo de fácil entendimento foi dividida em etapas, que serão

definidas passo a passo:

• Utilizar o código de ASCII para transformar a mensagem em valores numéricos.

Como exemplo:

Page 14: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

14 A: alfabeto em código ASCII descrito no Quadro 1.

M = Conjunto das mensagens a serem codificadas.

C = Conjunto das mensagens codificadas.

Mensagem F R E I R E

ASCII 102 114 101 105 114 101

• Escolher uma função real (0f ), contínua e “n” vezes derivável, onde a

quantidade de coeficientes deve ser a mesma da mensagem.

Podendo ser retratada da seguinte forma:

( ) ( ) ( ) ( ) ( ) ( ) ( )xxxxxx eeeeeexf 709,204,9456,045,2456,37564,80 101114105101114102 +++++=

• Criar as chaves privadas e públicas, tanto o emissor quanto o receptor. Os

componentes são responsáveis por essa etapa, por exemplo:

EMISSOR RECEPTOR

chave privada - ca chave pública - cpa chave privada - cb chave pública - cpb ica 927−= ( )2caxcpa −= icb 49+= ( )2cbxcpb −=

De acordo com a descrição do modelo de um criptosistema, dada na seção anterior, as

chaves desse esquema pede ser descrita pelos seguintes elementos:

K = Conjunto das chaves de codificação e decodificação

k1 ≠ k 2 chaves de codificação e decodificação.

São utilizadas duas chaves, sendo uma para criptografar e outra para decodificar,

definidas como chave pública e chave privada. Assim esse esquema é chamado de

Criptografia Assimétrica em que k1 ≠ k 2 , citado no item criptosistema.

• O emissor aplica sua chave privada que é um número complexo, na função

inicial ( 0f ), gerando assim uma nova função (1f ), onde é considerada a

primeira função para criptografar, da seguinte forma:

E 1 : M→ C

( ) ( )caxfxf += 01

Page 15: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

15 • O emissor efetuar o argumento de autenticação definida como aa , o produto

das chaves públicas tanto do emissor como do receptor, somado a chave privada

do emissor elevado a uma potência maior que 4 pelo fato de estar trabalhando

com números complexos e ter um grau de dificuldade mais elevado.

kcacpbcpaaa += .

• Emissor envia a função (1f ) e o argumento aa para o receptor.

• O receptor aplica sua chave privada que é um número complexo, na função

inicial ( 1f ), assim gerando uma nova função (2f ), onde é considerada a segunda

função para criptografar, da seguinte forma:

E 2 : M→ C

( ) ( )cbxfxf += 12

• O receptor efetuar o argumento de autenticação definida como ab , o produto

das chaves públicas tanto do emissor como do receptor, somado a chave privada

do receptor elevado a uma potência maior que 4 pelo fato de estar trabalhando

com números complexos e ter um grau de dificuldade mais elevado.

Scbcpbcpaab += .

• Receptor gera outro argumento definido por tb , baseado na aplicação da sua

própria chave privada sobre o argumento aa , da seguinte forma:

( )cbaatb =

• Receptor envia a função (2f ), ab e tb para o emissor.

• Emissor calcula vb que consiste em retirar de tb sua chave privada. Assim

podendo verificar e ter a certeza da identidade de seu receptor, da seguinte

forma:

0=−= tbcavb k

• Emissor calcula o simétrico da sua chave privada em ( 2f ) gerando ( 3f ), onde é

possível definir a primeira função para decriptografar, da seguinte forma:

D 1 : C→ M

( ) ( )caxfxf −= 23

• Emissor gera outro argumento definido por ta , baseado na aplicação da sua

própria chave privada sobre o argumento ab , da seguinte forma:

Page 16: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

16 ( )caabta =

• O emissor envia ta e ( 3f ) para o receptor.

• Receptor calcula va que consiste em retirar de ta sua chave privada. Assim

podendo verificar e ter a certeza da identidade de seu emissor.

0=−= tacbva S

• Receptor calcula o simétrico da sua chave privada em ( 3f ) gerando ( 4f ), onde é

possível definir a segunda função para decriptografar. Logo essa função gerada

se trata da função inicial assim (0f ) = ( 4f ), como foi indicado no exemplo na

primeira etapa, ocorrendo da seguinte forma:

D 2 : C→ M

( ) ( )cbxfxf −= 34

( ) ( ) ( ) ( ) ( ) ( ) ( )xxxxxx eeeeeexf 709,204,9456,045,2456,37564,84 101114105101114102 +++++=

04 ff =

( ) ( ) ( ) ( ) ( ) ( ) ( )xxxxxx eeeeeexf 709,204,9456,045,2456,37564,80 101114105101114102 +++++=

Com isso, foi definido todo o processo matemático do Esquema Raffaela que poderá ser

absorvido com mais clareza ao expressarmos no exemplo, gerado pelo código

apresentado no Anexo E.

8. CONCLUÇÃO Diversos são os esquemas para criptografar uma mensagem, assim tendo também as

mais diferentes formas de processos matemáticos tanto para cifrar como decifrar um

texto. Foram enfatizados, no entanto, os esquemas criptográficos de acordo com os

criptosistemas para que com isso a comparação da matemática utilizada em cada

esquema ficasse mais claro e mais fácil quanto à sua utilização.

Ao comparar os criptosistemas dos nos três primeiros códigos, constata-se que todas

devem pertencer ao intervalo correspondente ao alfabeto no processo de codificação e

decodificação, destacando-se a Cifra de César e Vigenère onde as funções de cifrar e

decifrar utiliza-se de função modular (mod 26). Já no RSA e Esquema Rafaella, o

processo não é necessário pertencer ao intervalo do alfabeto.

Page 17: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

17 A Cifra de César e a Cifra de Vigenère foram detalhadas de acordo com seu modelo

no criptosistema, duas funções parecidas tanto para codificar quanto para decodificar a

mensagem. Assim esse tipo de criptografia, que faz uso da transposição da ordem das

letras do alfabeto, não se altera muito a forma que se é aplicada. Conclui-se que essas

cifras não são baseadas muito em cálculos matemáticos, e sim no raciocínio lógico

matemático. O mesmo acontece com a Máquina Enigma, onde nela ocorrem várias

permutações para sua codificação e para sua decodificação, com isso a mesma função

aplicada para cifrar é também utilizada para decifrar. Com isso ela também implementa

do raciocínio lógico matemático.

A Cifra RSA utiliza conceitos e métodos da matemática como a Teoria dos Números,

sendo assim um sistema mais complexo comparado com a Cifra de César e Vigenère,

pois necessita de um conhecimento mais avançado de matemática. Nesse processo foi

aplicado o mesmo procedimento que foi a ênfase com o criptosistema. Conclui-se em

um sistema que utiliza de muitos métodos matemáticos, mais de fácil codificação e

difícil decodificação. Já suas chaves públicas e privadas têm um desenvolvimento

seguro tanto na transmissão quanto na utilização.

O Esquema Rafaella é uma criptografia moderna, pois foi desenvolvida em 2004,

utilizando-se de conceitos e métodos mais avançados como equações diferenciais.

Baseia-se na dificuldade de se obter a função original, onde serão aplicadas operações

de translações sobre a função. Destaca-se o fato da sua chave privada ser criada pelo

próprio usuário e sua chave pública é gerada do surgimento de uma função (no exemplo

exposto - ( )2caxcpa −= ) onde a chave privada seja uma das raízes dela. Dependendo

da chave pública gerada, pode-se achar a chave privada, assim achando as raízes da

chave pública. Com isso ela se torna de fácil descoberta de suas chaves, pois temos

computadores tão modernos que esse tipo de informação não seria difícil. Uma forma

de se contornar este problema é modificar a criação da chave pública da seguinte forma:

( )2ycaxcpa −= , onde y passa a fazer parte da chave privada, sendo assim mais difícil

a sua descoberta.

Conclui-se que tanto as criptografias usadas nos tempos mais antigos como as utilizadas

nos tempos modernos têm franquezas e dificuldades. Mas em cada tempo, com seu

desenvolvimento matemático, faz com que sejam criadas criptografias mais complexas

Page 18: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

18 e também com a evolução da matemática as cifras podem ser quebradas. Isto

signifique que o processo não é estático, mas sim um processo evolutivo e de constantes

mudanças.

REFERÊNCIAS BIBLIOGRÁFICAS RIBEIRO, V. G. ; WEBER, Raul Fernando . Problemas Computacionais para Esquemas de Criptografia de Chave Pública. In: 22o Simpósio Brasileiro de Redes de Computadores, 2004, Gramado. IV Workshop de Segurança em Sistemas Computacionais. Porto Alegre : II/UFRGS, 2004. p. 101-112. CAVALCANTE, André L.B. Teoria dos Números e Criptografia, 2005, Revista Virtual, Disponível: http://www.upis.br/revistavirtual/Cavalcante_%20Teoria%20dos%20N%FAmeros%20e%20Criptografia_2005_UPIS.pdf WEBER, Raul Fernando. Criptografia Contemporânea. 1995 Disponível: http://www.inf.ufsc.br/~mauro/curso/redes/cripto.doc KUNST, Rafael; RIBEIRO, Vinicius Gadis. Implementação do Esquema de Criptografia de Chave Pública Rafaella. Revista eletrônica de Sistema de Informações, Vol 3, Nº 1, 2004, Disponível: http:http://www.inf.ufsc.br/resi/edicao04/artigo07.pdf. SINGH, Simon. O Livro dos Códigos. Rio de Janeiro: Record, 2002. SOUZA, Raimundo Cândido. Criptografia de Chave Pública: Algoritmos que Possibilitam a Criação de Chave Assimétrica. 2006. SULZBACH, Jaime André. Análise de Viabilidade da Criptografia Quântica. 2003. MONTEIRO, César Alison. Implementação e Análise Comparativa de Quatro Variações do Criptossistema RSA. 2002. SOUZA, Bianca Amoras. Teoria dos Números e o RSA, 2004, Campinas : UNICAMP.2004.

Page 19: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

19 ANEXOS Nesta seção são apresentados os códigos que foram implementados no Maple para cada um dos esquemas de criptografia que foram abordados no trabalho. A – Crifra de César # cifra de cesar para um passo k # codifica a mensagem # x: Código ASCII # k: passo do deslocamento cesar_code:=proc(x,k) local cm; cm:=97+(x-97+k mod 26); return cm; end proc;

# cifra de cesar para um passo k # decodifica a mensagem # x: Código ASCII # k: passo do deslocamento cesar_decode:=proc(x,k) local dm; dm:= 97+ (x-97-k mod 26); return dm; end proc;

B – Crifra de Vigenère # Cifra de Vigenere – Usa o procedimento da Cifra d e César. # codifica a mensagem # K: deslocamentos definidos pela palavra chave # n: número de deslocamentos. # m: bloco da mensagem Vige_code:=proc(K,n,m) local i,j,cm; cm:=vector(n); for i from 1 to n do cm[i]:=cesar_code(m[i],K[i]); end do; return cm; end proc;

# Cifra de Vigenere - Usa o procedimento da Cifra d e César. # decodifica a mensagem # K: deslocamentos definidos pela palavra chave

Page 20: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

20 # n: número de deslocamentos. # cm: bloco da mensagem Vige_decode:=proc(K,n,cm) local i,j,m; m:=vector(n); for i from 1 to n do m[i]:=cesar_decode(cm[i],K[i]); end do; return m; end proc;

C – Máquina Enigma # Máquina Enigma. # codificação # p1,p2,p2: permutações que representam cada disco # u: permutação que representa o refletor # m: mensagem em código ASCII # n: tamanho da mensagem # v1,v2,v3: relação de voltas de cada disco Enigma_code:=proc(p1,p2,p3,u,m,n,v1,v2,v3) local pos,cm,c1,c2,c3,i,k; cm:=vector(n); c1:=0; c2:=0;c3:=0; for i from 1 to n do pos:=m[i]-97; pos:=((pos+c1) mod 26); pos:=p1[2,pos+1] ; pos:=((pos+c2) mod 26); pos:=p2[2,pos+1]; pos:=((pos+c3) mod 26); pos:=p3[2,pos+1]; pos:=u[2,pos+1]; k:=1; while pos <> p3[2,k] do k:=k+1; end do; pos:=p3[1,k]; k:=1; while pos <> p2[2,k] do k:=k+1; end do; pos:=p2[1,k]; k:=1; while pos <> p1[2,k] do k:=k+1; end do; pos:=p1[1,k]; cm[i]:=pos+97; if (i mod v1) = 0 then c1:= c1+1; end if; if (i mod v2) = 0 then c2:= c2+1; end if; if (i mod v3) = 0 then c3:= c3+1; end if;

Page 21: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

21 end do; return cm end proc;

# Máquina Enigma. # decodificação # p1,p2,p2: permutações que representam cada disco # u: permutação que representa o refletor # m: mensagem em código ASCII # n: tamanho da mensagem # v1,v2,v3: relação de voltas de cada disco Enigma_decode:=proc(p1,p2,p3,u,m,n,v1,v2,v3) local pos,cm,c1,c2,c3,i,k; cm:=vector(n); c1:=0; c2:=0;c3:=0; for i from 1 to n do pos:=m[i]-97; pos:=p1[2,pos+1] ; pos:=p2[2,pos+1]; pos:=p3[2,pos+1]; pos:=u[2,pos+1]; k:=1; while pos <> p3[2,k] do k:=k+1; end do; pos:=p3[1,k]; pos:=((pos-c3) mod 26); k:=1; while pos <> p2[2,k] do k:=k+1; end do; pos:=p2[1,k]; pos:=((pos-c2) mod 26); k:=1; while pos <> p1[2,k] do k:=k+1; end do; pos:=p1[1,k]; pos:=((pos-c1) mod 26); cm[i]:=pos+97; if (i mod v1) = 0 then c1:= c1+1; end if; if (i mod v2) = 0 then c2:= c2+1; end if; if (i mod v3) = 0 then c3:= c3+1; end if; end do; return cm end proc; D – Esquema RSA # RSA. # codificação

Page 22: Paloma Barbosa Freire - ucb.br · 3 Criptografia por substituição era muito usada, o que tornava conhecido o seu método de cifrar e decifrar sendo de fácil acesso a descoberta

22 # d,n: chave privada # cm: mensagem codificada RSA_code:=proc(e,n,m) local cm; cm:=(m^e) mod n; return cm; end proc;

# RSA. # decodificação # d,n: chave privada # cm: mensagem codificada RSA_decode:=proc(d,n,cm) local m; m:=(cm^d) mod n; return m; end proc; E – Esquema Rafaella # Rafaella. # decodificação # fo: funçao com coeficientes sendo o código da men sagem # ce: chave privada do emisor Rafaella_code:=proc(fo,ce) local f1; f1:=x->fo(x-ce); return f1; end proc; # Rafaella. # codificação # fo: funçao com coeficientes sendo o código da men sagem # ce: chave privada do emisor Rafaella_code:=proc(fo,ce) local f1; f1:=x->fo(x+ce); return f1; end proc;