a matemática dos códigos criptográficos
TRANSCRIPT
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
1/22
A MATEMTICA DOS CDIGOS CRIPTOGRFICOS
Paloma Barbosa FreireUniversidade Catlica de BrasliaCurso de Matemtica e-mail: [email protected]
Jos Eduardo CastilhoUniversidade Catlica de BrasliaCurso de Matemtica e-mail:[email protected]
RESUMO
O presente trabalho apresenta um estudo comparativo da Cifra de Csar, Cifra de Vigenre, Mquina
Enigma, RSA e Esquema Rafaella, com os seus criptosistemas usados. Para isso foram desenvolvidos os
cdigos utilizados em cada um dos tipos de criptografia citado. Nesse artigo foi relatada uma breve
histria, detalhado o criptosistemas e em seguida cada criptografia foi desenvolvida. Finalizando comuma breve citao das cifras expostas.
Palavras Chaves: criptografia, criptosistemas.
1. INTRODUO
A Criptografia teve indcios pelos chineses para a proteo dos segredos polticos e
militares. A palavra composta por dois termos gregos kryptos (kyptos - secreto,
escondido, oculto) e grapho (grapho escrita, grafia). Ela a cincia (ou arte) de
escrever uma mensagem original em cifras ou cdigos, tornando-a incompreensvel e
difcil de ser decifrada ou decodificada.
A criptografia o estudo de tcnicas matemticas, relacionadas com a
confidencialidade, integridade, autenticao de dados, ou seja, consiste na substituio
de dados num cdigo secreto como medida de segurana para que possam existir
comunicaes seguras. O mais interessante que a metodologia da criptografia no
mudou muito at meados do sculo XX. Somente depois da Segunda Guerra Mundial,
com o aparecimento do computador, a rea realmente floresceu utilizando algoritmos
matemticos mais sofisticados e se tornando difcil a sua resoluo necessitando de um
conhecimento mais aprofundado nos conceitos matemticos. Na verdade, a criptografia
formou a base para a cincia da computao moderna.
O rpido avano tecnolgico exige sistemas de segurana cada vez mais complexos
onde a criptografia deve ser implantada de forma integrada, fornecendo um escudo extra
para proteger dos dados.
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
2/22
2Desde ento, tcnicas criptogrficas tm sido utilizadas nas mais diversas reas como
operaes militares, servios como e-mail, telefonia celular, acesso seguro internet,
transaes comerciais, autenticao de usurios, uso de servios bancrios e vrias
outras operaes (KUNST e RIBEIRO, 2004).
O desenvolvimento da matemtica, em especial na rea de Teoria dos Nmeros, tem
proporcionado um avano significativo da criptografia (CAVALCANTE, 2005). Novas
tcnicas de codificao tm sido desenvolvidas de tal forma que a decodificao por
intermdio de computadores praticamente invivel. Todo sistema criptogrfico pode
ser descrito num modelo matemtico, onde, o que difere so as funes de codificao e
decodificao. Neste trabalho, apresentam-se alguns sistemas criptogrficos e orespectivo modelo matemtico.
2. UMA BREVE HISTRIA DA CRIPTOGRAFIA
A escrita por meios de cdigos comeou a ser conhecida pelo relato feito por Herdoto
um historiador romano, por volta do quinto sculo antes de Cristo, que relatou os
conflitos ocorridos entre Grcia e Prsia. Nesta batalha se lutava pela liberdade, onde a
escrita secreta foi fundamental na guerra. A estratgia utilizada pelos Persas foiorganizarem secretamente um exrcito militar para combater a Grcia, seu plano era o
ataque surpresa. No entanto no contavam que a Grcia usasse uma arma mais forte que
era a arte da escrita secreta. O grego Demarato que morava na Prsia, 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 lder dos Persas atacou a Grcia que o
esperava bem preparada. Assim Xerxes perdeu a batalha pelo fato de no ter realizado o
combate de forma surpresa. Esse tipo de criptografia, ocultao de mensagem,
conhecido como esteganografia originada da palavra grega steganos (coberto) e
graphein(escrever). (SINGH, 2002).
Acriptografia mais conhecida surgiu nas Guerras da Glia de Jlio Csar, e por este
motivo ficou conhecida como cifra de Csar. Ele substitua cada letra na mensagem por
outra que estivessem trs casas frente no alfabeto. Este tipo de criptografia por
substituio, que emprega um alfabeto, chamado de cifras monoalfabticas. (SINGH,
2002).
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
3/22
3Criptografia por substituio era muito usada, o que tornava conhecido o seu mtodo
de cifrar e decifrar sendo de fcil acesso a descoberta da mensagem criptografada. Com
isso surgiu uma nova forma de criptografia feita por substituio criada por Blaise de
Vigenre em 1563. Baseado no apenas em um, mas sim em 26 alfabetos cifrados.
Utiliza a Cifra de Csar de forma diferente para cada alfabeto, formando assim uma
tabela, chamada de Quadrado de Vigenre. Esse por sua vez denominado de cifra
polialfabtica, e foi utilizado por muito tempo, sendo quebrada somente em 1854.
Durante muitos outros anos nenhum outro mtodo de criptografia foi desenvolvido com
tanta segurana (SINGH, 2002).
Somente em 1918, o alemo Arthur Scherbius desenvolveu uma nova forma decriptografar. Ele construiu uma mquina cifrante, chamada Enigma, que era composta
de trs 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 lpis por uma mais moderna que
utilizava a tecnologia do incio do sculo XX. Em 1926 o Exrcito Alemo a utilizou
fazendo algumas modificaes obtendo a rede de comunicao mais segura da poca
(SULZBACH, 2003). Em 1940 Alan Turing e sua equipe da inteligncia britnicaconstruram o primeiro computador operacional e seu propsito especificamente era
decifrar mensagens alems cifradas pela Mquina Enigma. Esta primeira mquina
(computador) foi substituda em 1943, recebendo o nome de Colossus, com a tecnologia
de vlvulas era capaz de realizar diversos clculos capaz de quebrar cdigos da
Mquina Enigma.
Aps 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 funo de
mo nica. Composta de duas chaves diferentes, uma delas pblica que visa: a
autenticao de destino, que garante que somente o destinatrio consiga ler a
mensagem; a autenticao da origem, que evita a falsificao da identidade do emissor;
a deteco de integridade de informao que evita outra pessoa leia e altere a
informao (MONTEIRO, 2002). Aoutra a chave privada que usada para decifrar a
mensagem, assim esse algoritmo chamado de algoritmo assimtrico. A importncia
deste tipo de sistema que viabiliza a troca de informaes, de forma segura, via
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
4/22
4internet. Essa criptografia ficou conhecida como RSA, onde basea-se em funo
modular e conhecimento em teoria dos nmeros. Nos tempos de hoje utilizasse sistemas
de criptografia de chave publica, onde as chaves so nmeros com ordem de grandeza
elevado. Este o ponto chave da segurana 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 matemtica quanto a
criptografia esto 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 codificao e decodificao.
As mensagens so definidas de duas formas, uma corresponde ao texto original (m), ou
seja, a mensagem sem sofrer alteraes, j a outra forma direcionada ao texto cifrado
(c), ou seja, a mensagem cifrada.Em geral, um criptosistema pode ser representado por um modelo matemtico
constitudo dos seguintes elementos (SOUZA, 2004):
Um conjunto finito A chamado de alfabeto de entrada, que pode ser o alfabeto
latino ou sua representao numrica em cdigo ASCII.
Um conjunto M formado por cadeias finitas de elementos de A, onde cada
elemento corresponde a um texto simples, no 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 so as ferramentas
necessrias para a realizao dos processos de codificao de decodificao.
O espao E de funes eE : MC, eK, que codificam a mensagem.
O espao D de funes dD :CM, dK, que decodificam a mensagem.
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
5/22
5Para cada elemento k 1 em K defini-se uma nica bijeo de M em C, que garante a
existncia de k 2 em K que determina a funo inversa para a decodificao.
Destaca-se que sistemas simtricos so caracterizados por usarem k 1 = k 2 , pois no
processo utilizada a mesma chave tanto para codificar quanto para decodificar. Nos
sistemas assimtricos usa-se k 1 k 2 onde uma das chaves de conhecimento pblico
para a codificao e a outra a chave privada e usa-se para a decodificao. Observa-se
que sistemas simtricos exigem que cada participante do processo tenha conhecimento
da chave e no assimtrico no seria necessrio.
Existem vrias formas de se considerar o alfabeto de entrada. Uma delas seria
considerar o cdigo 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 minsculas, cujo cdigo ASCII dado no Quadro 1.
Quadro 1 Cdigo 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
Cdigo 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, sero descritos alguns sistemas criptogrficos.
4. CIFRA DE CSAR
Essa criptografia foi proposta por Jlio Csar com objetivos militares nas Guerras da
Glia. Esta usa o conceito de translao letras do alfabeto, onde cada letra do alfabeto
relacionada com a letra que est a trs casas a frente ocorrendo assim uma substituio
da letra a pela D, b por E e assim por diante (Ver no Quadro 2).
Quadro 2 - Cifra de Csar
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 descrio do modelo de um criptosistema, dada na seo anterior, a
Cifra de Csar pode ser descrita pelos seguintes elementos:
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
6/22
6A: alfabeto em cdigo ASCII descrito no Quadro 1.
M = Conjunto das mensagens a serem codificadas.
C = Conjunto das mensagens codificadas.
K = Conjunto das chaves de codificao e decodificao {1,2,...,25}
k 1 ,k 2 chaves de codificao e decodificao.
E: MC, f(x , k 1 ) = 97 + (x -97+ k 1 ) mod(26)
D : CM, g(x , k 2 ) = 97 + (x -97- k 2 ) mod(26)
Neste caso tem-se que a Cifra de Csar um sistema particular do modelo acima, com
que k 1 = k 2 =3, sendo assim um sistema simtrico. Outra observao, que o uso dafuno modular necessrio para que o cdigo gerado permanea dentro do intervalo de
variao do alfabeto como descrito no Quadro 1.
De acordo com Simon Singh, (2002) que Csar deslocava as letras em trs casas, fica
claro que, empregando-se qualquer deslocamento entre uma das 25 casas, possvel
criar 25 cdigos distintos (p.27). Esse processo pode ser representado pelo modelo
acima, usando valores diferentes valores de chaves do conjunto K, mas mantendo k 1 =
k 2 . Para melhor entendimento, aplicando o criptosistema da Cifra de Csar comoexemplo, para criptografar a mensagem freire. Utilizando passo a passo como foi
descrito acima. Para transformar a mensagem em nmeros teremos como base o
Quadro 3.
Quadro 3: Exemplo de aplicao da Cifra de Csar
Criptografia - E: MC Decriptografia - D : CM
Mensagem Seqncia ( )( )26mod39797 ++ x Texto Cifrado ( )( )26mod39797 + x Texto Original MensagemF 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, descritosno Anexo A.
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
7/22
75. CIFRA DE VIGENRE
Vigenre 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 Csar
deslocando uma casa em comparao com a linha anterior como demonstrado no
Quadro 4.
Quadro 4 - Cifra de Vigenre
Alfabetocorreto
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 Q18 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 necessrio uma palavra chave para definir as linhas que vo ser
utilizadas, como por exemplo, a mensagem Cdigo tendo a palavra chavefreireque
dever ser associada a frase que vai ser criptografada como mostra no Quadro 6.
A Cifra de Vigenre pode ser vista de uma forma matemtica de acordo com o esquema
proposto em Criptosistemas:
A: alfabeto em cdigo ASCII descrito no Quadro 1.
M = Conjunto das mensagens a serem codificadas.
C = Conjunto das mensagens codificadas.K = Conjunto das chaves de codificao e decodificao {1,2,...,25}
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
8/22
8k 1 , k 2 ,...k n chaves de codificao e decodificao.
E: M n
C n
, onde n o nmero de caracteres da palavra chave
F(x 1 ,x 2 ,... ,x n ) = F( f(x 1 ,k 1 ), f(x 2 ,k 2 ), ... , f(x n ,k n ) )
D : C n
M n
,
G(x 1 ,x 2 ,... ,x n ) = G( g(x 1 ,k 1 ), g(x 2 ,k 2 ), ... , g(x n ,k n ) ),
onde, f(x s ,k s ) e g(x s ,k s ) so as funes de codificao e decodificao do modelo
da Cifra de Csar. Neste caso, a Cifra de Vigenre tambm um sistema simtrico.
Dessa forma se tornam mais fcil o entendimento do processo de cifrar e decifrar para
cada letra do sistema de Cifra de Vigenre.
No Quadro 6 representa todo o processo da codificao e decodificao, com base nos
dados expostos no Quadro 1.
Quadro 6: Exemplo de aplicao da Cifra de Vigenre
Criptografia -E: M n Cn Decriptografia - D : CnM
n
Mensagem kn
Seqncia 97+(x-97+ kn
)(mod26)Texto
Cifrado
97+(x-97- kn
)(mod26) Seqncia 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 Vigenre, pode ser implementado com base na Cifra deCsar (Veja os cdigos descritos no Anexo B).
6. MQUINA ENIGMA
A Mquina Enigma um sistema de cifrar mensagens substituindo as letras por outras.
Para que isso acontea ocorre um tipo de permutao com o alfabeto. Esse sistema foi
uma revoluo na poca, pelo fato de ser o primeiro sistema que usou recursos
tecnolgicos. A pea principal da mquina 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
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
9/22
9letras fornecidas na mquina, sendo que em um alfabeto completo de 26 letras
determinado um vinte e seis avos de um giro completo (SINGH, 2002).
O mtodo de cifragem mais bem detalhado na figura 1, onde qualquer que seja a
permutao dos rotores nenhuma letra codificada nela prpria.
Figura 1: Mquina Enigma (fonte: http://www.ncc.up.pt/~pbv/enigma/nivel1.html)
Quando so usados trs 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 permutao no alfabeto, onde cada letra
substituda por outra (ou seja, bijetiva). Esse processo contnuo sendo que nesse
esquema os rotores seguem para o refletor, e assim voltando aos rotores. No exemplo
seguinte visto o sistema de trs rotores onde aplicado a permutao:
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:
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
10/22
10
K (aplicando p) D (aplicando q) F (aplicando r) L
Assim, a letra K substituda por L.
J o refletor sua permutao no pode ser aleatria ou arbitrria, nele que recebe a
corrente dos rotores e a envia novamente para outras modificaes. Ele deve seguir duas
regras:
No envia nenhuma letra nela prpria corrente no pode circular nos dois
sentidos no mesmo fio.
Deve ser recproco aplicando duas vezes adquirimos a letra original.
Na tabela abaixo um exemplo de permutao 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 permutao inversa ( somente trocar a primeira linha pela segunda, e vice-
versa). Portanto ao juntarmos todos os processos aqui detalhados podemos definir as
funes Ee D , assim formalizando o sistema da maquina enigma para trs rotores:
p q r u r1
q1
p1
(rotores) (refletor) (inversa dos rotores)
A: alfabeto em cdigo ASCII descrito no Quadro 1.
M = Conjunto das mensagens a serem codificadas.
C = Conjunto das mensagens codificadas.
K = Conjunto das chaves de codificao e decodificao formada pelas permutaes de
A.
p, q, r, u chaves de codificao e decodificao.
E: MC, f(x) = p(x) . q(x) . r(x) . u(x) . r 1
(x). q 1
(x). p 1
(x)
D : CM 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 permutaes satisfazem de p.p 1
se resulta na
identidade. Abaixo mostrado a inversa de p, denotada como p1
:
p1=
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
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
11/22
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 codificao com as permutaes 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 aplicao da codificao da Enigma
Criptografia - E: MC Decriptografia - D : CM
Mensagem SeqnciaSeqnciaCodificada
TextoCifrado
SeqnciaDecodificada
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 implementao da Mquina Enigma descrita noAnexo 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
Nmeros onde ser demonstrada passo a passo que se baseia a Criptografia RSA:
1 - transformar as mensagens em uma seqncia de nmeros, na regra que desejar.
Como por exemplo: A: alfabeto em cdigo ASCII descrito no Quadro 1.
M = Conjunto das mensagens a serem codificadas.
C = Conjunto das mensagens codificadas.
2 - escolher dois primos muito grandes, denominadospe q .
3 - calcular ( ) ( )( )11 = qpn onde qpn .= , que ( )s o nmero de inteiros
menores ou iguais a s que so relativamente primos com s (fundamento de Euler).
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
12/22
124 - escolher um nmero dque satisfaa MDC ( )( ) 1, =nd , onde de ( )n sejam co-
primos, utilizando o Algoritmo de Euclides.
5 - em seguida calcula-se ( )( )nde mod1. , sendo encontrado e utilizando
congruncias.
6 - separar a mensagem em pequenas partes.
7 - calcular ( )nmc e mod , para criptografar a mensagem. Sendo definido E, funo
para criptografar. Assim: E: MC, ( )nmc e mod
8 - por ltimo, para decodificar a mensagem calcula-se ( )ncm d mod . Sendo definido
D , funo para decodificar. Assim: D : CM, ( )ncm d mod
Logo o sistema RSA deve seguir todos os passos para que o resultado seja favorvel.
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 descrio do modelo de um criptosistema, dada na seo anterior, as
chaves desse esquema pede ser descrita pelos seguintes elementos:
K = Conjunto das chaves de codificao e decodificao
k1 k 2 ( )ne, ( )nd, chaves de codificao e decodificao.
Obseva-se que so utilizados duas chaves, sendo uma para criptografar e outra para
decodificar, definidas como chave pblica e chave privada. Assim esse esquema
chamado de Criptografia Assimtrica em que k 1 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 nmeros teremos como base o Quadro 1.
Logo a mensagem freire a seqncia de nmeros 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 prximo passo a ser representado ser descobrir d, onde encontrado ao resolver aoperao MDC ( ) 1,20 =d de acordo com o Algoritmo de Euclides, achando 7=d . Com
isso podemos resolver a equao ( )( )nde mod1. ( )20mod17. = e , de acordo comcongruncias j citado anteriormente chegamos em 3=e .
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
13/22
13 evidente no momento que as duas chaves necessrias para o sistema so a (3, 33)
para criptografar e (7, 33) para decriptografar. O Quadro 8 representa todo o processo
da codificao e decodificao.
Quadro 8: Exemplo da aplicao do esquema RSA.
Criptografia -E: MC Decriptografia - D : CM
Mensagem Seqncia ( )33mod3
mc Texto Cifrado ( )33mod7
cm 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 implementao 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 fcil cifra e de difcil decodificao. Esse esquema se baseia em
equaes diferencias. sendo diferente de todos os outros que analisamos, pois, nesse
processo ocorre translao de funes. Equaes diferenciais no 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 matemtica 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 fcil entendimento foi dividida em etapas, que sero
definidas passo a passo:
Utilizar o cdigo de ASCII para transformar a mensagem em valores numricos.
Como exemplo:
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
14/22
14A: alfabeto em cdigo 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 funo real ( 0f ), contnua e n vezes derivvel, 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 pblicas, tanto o emissor quanto o receptor. Os
componentes so responsveis por essa etapa, por exemplo:
EMISSOR RECEPTOR
chave privada - ca chave pblica - cpa chave privada - cb chave pblica - cpb ica 927 = ( )
2caxcpa = icb 49+= ( )
2cbxcpb =
De acordo com a descrio do modelo de um criptosistema, dada na seo anterior, as
chaves desse esquema pede ser descrita pelos seguintes elementos:
K = Conjunto das chaves de codificao e decodificao
k 1 k 2 chaves de codificao e decodificao.
So utilizadas duas chaves, sendo uma para criptografar e outra para decodificar,
definidas como chave pblica e chave privada. Assim esse esquema chamado de
Criptografia Assimtrica em que k 1 k 2 , citado no item criptosistema. O emissor aplica sua chave privada que um nmero complexo, na funo
inicial ( 0f ), gerando assim uma nova funo ( 1f ), onde considerada a
primeira funo para criptografar, da seguinte forma:
E1 : MC
( ) ( )caxfxf += 01
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
15/22
15 O emissor efetuar o argumento de autenticao definida como aa , o produto
das chaves pblicas tanto do emissor como do receptor, somado a chave privada
do emissor elevado a uma potncia maior que 4 pelo fato de estar trabalhando
com nmeros complexos e ter um grau de dificuldade mais elevado.
kcacpbcpaaa += .
Emissor envia a funo ( 1f ) e o argumento aa para o receptor.
O receptor aplica sua chave privada que um nmero complexo, na funo
inicial ( 1f ), assim gerando uma nova funo ( 2f ), onde considerada a segunda
funo para criptografar, da seguinte forma:
E 2 : MC
( ) ( )cbxfxf += 12
O receptor efetuar o argumento de autenticao definida como ab , o produto
das chaves pblicas tanto do emissor como do receptor, somado a chave privada
do receptor elevado a uma potncia maior que 4 pelo fato de estar trabalhando
com nmeros complexos e ter um grau de dificuldade mais elevado.
S
cbcpbcpaab += . Receptor gera outro argumento definido por tb , baseado na aplicao da sua
prpria chave privada sobre o argumento aa , da seguinte forma:
( )cbaatb =
Receptor envia a funo ( 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 simtrico da sua chave privada em ( 2f ) gerando ( 3f ), onde
possvel definir a primeira funo para decriptografar, da seguinte forma:
D 1 : CM
( ) ( )caxfxf = 23
Emissor gera outro argumento definido por ta , baseado na aplicao da suaprpria chave privada sobre o argumento ab , da seguinte forma:
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
16/22
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 simtrico da sua chave privada em ( 3f ) gerando ( 4f ), onde
possvel definir a segunda funo para decriptografar. Logo essa funo gerada
se trata da funo inicial assim ( 0f ) = ( 4f ), como foi indicado no exemplo na
primeira etapa, ocorrendo da seguinte forma:D 2 : CM
( ) ( )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 matemtico do Esquema Raffaela que poder ser
absorvido com mais clareza ao expressarmos no exemplo, gerado pelo cdigo
apresentado no Anexo E.
8. CONCLUO
Diversos so os esquemas para criptografar uma mensagem, assim tendo tambm as
mais diferentes formas de processos matemticos tanto para cifrar como decifrar um
texto. Foram enfatizados, no entanto, os esquemas criptogrficos de acordo com os
criptosistemas para que com isso a comparao da matemtica utilizada em cada
esquema ficasse mais claro e mais fcil quanto sua utilizao.
Ao comparar os criptosistemas dos nos trs primeiros cdigos, constata-se que todas
devem pertencer ao intervalo correspondente ao alfabeto no processo de codificao e
decodificao, destacando-se a Cifra de Csar e Vigenre onde as funes de cifrar e
decifrar utiliza-se de funo modular (mod 26). J no RSA e Esquema Rafaella, o
processo no necessrio pertencer ao intervalo do alfabeto.
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
17/22
17A Cifra de Csar e a Cifra de Vigenre foram detalhadas de acordo com seu modelo
no criptosistema, duas funes parecidas tanto para codificar quanto para decodificar a
mensagem. Assim esse tipo de criptografia, que faz uso da transposio da ordem das
letras do alfabeto, no se altera muito a forma que se aplicada. Conclui-se que essas
cifras no so baseadas muito em clculos matemticos, e sim no raciocnio lgico
matemtico. O mesmo acontece com a Mquina Enigma, onde nela ocorrem vrias
permutaes para sua codificao e para sua decodificao, com isso a mesma funo
aplicada para cifrar tambm utilizada para decifrar. Com isso ela tambm implementa
do raciocnio lgico matemtico.
A Cifra RSA utiliza conceitos e mtodos da matemtica como a Teoria dos Nmeros,sendo assim um sistema mais complexo comparado com a Cifra de Csar e Vigenre,
pois necessita de um conhecimento mais avanado de matemtica. Nesse processo foi
aplicado o mesmo procedimento que foi a nfase com o criptosistema. Conclui-se em
um sistema que utiliza de muitos mtodos matemticos, mais de fcil codificao e
difcil decodificao. J suas chaves pblicas e privadas tm um desenvolvimento
seguro tanto na transmisso quanto na utilizao.
O Esquema Rafaella uma criptografia moderna, pois foi desenvolvida em 2004,utilizando-se de conceitos e mtodos mais avanados como equaes diferenciais.
Baseia-se na dificuldade de se obter a funo original, onde sero aplicadas operaes
de translaes sobre a funo. Destaca-se o fato da sua chave privada ser criada pelo
prprio usurio e sua chave pblica gerada do surgimento de uma funo (no exemplo
exposto - ( )2caxcpa = ) onde a chave privada seja uma das razes dela. Dependendo
da chave pblica gerada, pode-se achar a chave privada, assim achando as razes da
chave pblica. Com isso ela se torna de fcil descoberta de suas chaves, pois temoscomputadores to modernos que esse tipo de informao no seria difcil. Uma forma
de se contornar este problema modificar a criao da chave pblica da seguinte forma:
( )2ycaxcpa = , onde y passa a fazer parte da chave privada, sendo assim mais difcil
a sua descoberta.
Conclui-se que tanto as criptografias usadas nos tempos mais antigos como as utilizadas
nos tempos modernos tm franquezas e dificuldades. Mas em cada tempo, com seu
desenvolvimento matemtico, faz com que sejam criadas criptografias mais complexas
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
18/22
18e tambm com a evoluo da matemtica as cifras podem ser quebradas. Isto
signifique que o processo no esttico, mas sim um processo evolutivo e de constantes
mudanas.
REFERNCIAS BIBLIOGRFICAS
RIBEIRO, V. G. ; WEBER, Raul Fernando . Problemas Computacionais paraEsquemas de Criptografia de Chave Pblica. In: 22o Simpsio Brasileiro de Redesde Computadores, 2004, Gramado. IV Workshop de Segurana em SistemasComputacionais. Porto Alegre : II/UFRGS, 2004. p. 101-112.
CAVALCANTE, Andr L.B. Teoria dos Nmeros e Criptografia, 2005, RevistaVirtual, Disponvel:http://www.upis.br/revistavirtual/Cavalcante_%20Teoria%20dos%20N%FAmeros%20e%20Criptografia_2005_UPIS.pdf
WEBER, Raul Fernando. Criptografia Contempornea. 1995Disponvel:http://www.inf.ufsc.br/~mauro/curso/redes/cripto.doc
KUNST, Rafael; RIBEIRO, Vinicius Gadis. Implementao do Esquema de
Criptografia de Chave Pblica Rafaella. Revista eletrnica de Sistema deInformaes, Vol 3, N 1, 2004,Disponvel:http:http://www.inf.ufsc.br/resi/edicao04/artigo07.pdf.
SINGH, Simon. O Livro dos Cdigos. Rio de Janeiro: Record, 2002.
SOUZA, Raimundo Cndido. Criptografia de Chave Pblica: Algoritmos quePossibilitam a Criao de Chave Assimtrica.2006.
SULZBACH, Jaime Andr. Anlise de Viabilidade da Criptografia Quntica. 2003.
MONTEIRO, Csar Alison. Implementao e Anlise Comparativa de QuatroVariaes do Criptossistema RSA. 2002.
SOUZA, Bianca Amoras. Teoria dos Nmeros e o RSA, 2004, Campinas :UNICAMP.2004.
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
19/22
19ANEXOS
Nesta seo so apresentados os cdigos que foram implementados no Maple para cada
um dos esquemas de criptografia que foram abordados no trabalho.
A Crifra de Csar
# cifra de cesar para um passo k# codifica a mensagem# x: Cdigo ASCII# k: passo do deslocamentocesar_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: Cdigo ASCII# k: passo do deslocamentocesar_decode:=proc(x,k)local dm;dm:= 97+ (x-97-k mod 26);
return dm;end proc;
B Crifra de Vigenre
# Cifra de Vigenere Usa o procedimento da Cifra de Csar.# codifica a mensagem# K: deslocamentos definidos pela palavra chave# n: nmero 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 docm[i]:=cesar_code(m[i],K[i]);
end do;return cm;end proc;
# Cifra de Vigenere - Usa o procedimento da Cifra de Csar.
# decodifica a mensagem# K: deslocamentos definidos pela palavra chave
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
20/22
20# n: nmero 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 dom[i]:=cesar_decode(cm[i],K[i]);end do;return m;end proc;
C Mquina Enigma# Mquina Enigma.# codificao# p1,p2,p2: permutaes que representam cada disco# u: permutao que representa o refletor# m: mensagem em cdigo ASCII# n: tamanho da mensagem# v1,v2,v3: relao de voltas de cada discoEnigma_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 dopos:=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;
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
21/22
21end do;return cmend proc;
# Mquina Enigma.# decodificao# p1,p2,p2: permutaes que representam cada disco# u: permutao que representa o refletor# m: mensagem em cdigo ASCII# n: tamanho da mensagem# v1,v2,v3: relao 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 dopos:=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 cmend proc;
D Esquema RSA
# RSA.# codificao
-
7/25/2019 A Matemtica Dos Cdigos Criptogrficos
22/22
22# d,n: chave privada# cm: mensagem codificadaRSA_code:=proc(e,n,m)
local cm;cm:=(m^e) mod n;return cm;end proc;
# RSA.# decodificao# d,n: chave privada# cm: mensagem codificadaRSA_decode:=proc(d,n,cm)
local m;m:=(cm^d) mod n;return m;end proc;
E Esquema Rafaella
# Rafaella.# decodificao# fo: funao com coeficientes sendo o cdigo da mensagem
# ce: chave privada do emisorRafaella_code:=proc(fo,ce)local f1;f1:=x->fo(x-ce);return f1;end proc;
# Rafaella.# codificao# fo: funao com coeficientes sendo o cdigo da mensagem# ce: chave privada do emisor
Rafaella_code:=proc(fo,ce)local f1;f1:=x->fo(x+ce);return f1;end proc;