• Nenhum resultado encontrado

Teorema Fundamental da Aritmética e Números de Gödel Aplicados à Criptografia

N/A
N/A
Protected

Academic year: 2021

Share "Teorema Fundamental da Aritmética e Números de Gödel Aplicados à Criptografia"

Copied!
8
0
0

Texto

(1)

Teorema Fundamental da Aritm´etica e N ´umeros de G¨odel

Aplicados `a Criptografia

Vilson Vieira da Silva, Jr.1, Claudio Cesar de S´a1, Rafael Stubs Parpinelli1, Charles Christian Miers1

1Universidade do Estado de Santa Catarina (Udesc) – Centro de Ciˆencias Tecnol´ogicas Campus Universit´ario Prof. Avelino Marcante s/n – Bairro Bom Retiro

CEP 89223-100 – Joinville – SC – Brasil

vilson@void.cc, {claudio, parpinelli, charles}@joinville.udesc.br

Resumo. Atrav´es da uni˜ao do Teorema Fundamental da Aritm´etica e do con-ceito formal de n´umero de G¨odel, proposto pelo mesmo matem´atico que lhe d´a nome, busca-se o desenvolvimento de um algor´ıtmo criptogr´afico e sua poste-rior an´alise. Para isso ´e criada uma aplicac¸˜ao real, que demonstra os princ´ıpios te´oricos nos quais soluc¸˜oes pr´aticas e populares s˜ao desenvolvidas, como o al-gor´ıtmo de criptografia para gerac¸˜ao de chaves p´ublicas RSA1.

1. Introduc¸˜ao

A criptografia moderna utiliza de diversos m´etodos para a criac¸˜ao de algor´ıtmos cada vez mais confi´aveis na codificac¸˜ao de dados.

Em sua maioria, tais m´etodos est˜ao baseados em propriedades de teoremas ma-tem´aticos. Desta forma, propˆoe-se analisar a aplicac¸˜ao de um destes teoremas, o Teo-rema Fundamental da Aritm´etica, que usado como axioma em um conceito formal, cri-ado pelo matem´atico Kurt G¨odel [Hintikka 1999], revela-se como base para algor´ıtmos criptogr´aficos.

Permite-se ainda analisar tal algor´ıtmo na forma de uma aplicac¸˜ao pr´atica, com o desenvolvimento de um software de codificac¸˜ao de dados.

O artigo est´a organizado da seguinte forma: na sess˜ao 2 ´e apresentado o Teorema Fundamental da Aritm´etica, a sess˜ao 3 apresenta os n´umeros de G¨odel, assim como sua definic¸˜ao matem´atica. A sess˜ao 4 une os conceitos dos teoremas apresentados em uma aplicac¸˜ao pr´atica ligada `a criptografia e conclui o artigo atrav´es de sua an´alise.

2. O Teorema Fundamental da Aritm´etica

O Teorema Fundamental da Aritm´etica (TFA) [Mollin 1998], inicialmente provado por Euclides2 enuncia:

Para todo n´umero natural n maior que 1, ou este ´e um n´umero primo, ou pode ser escrito como um produto de n´umeros primos, de maneiraun´ıvoca.

1Iniciais do sobrenome de seus criadores: Ron Rivest, Adi Shamir e Len Adleman

2A prova foi generalizada e tornada correta posteriormente pelo matem´atico Carl Friederich Gauss

(2)

Por exemplo:

2100 = 22× 31× 52× 71 (1)

A ordem dos fatores, pela propriedade comutativa da multiplicac¸˜ao, ´e irrelevante. O que torna tal teorema interessante ´e a garantia de obtenc¸˜ao de uma representac¸˜ao ´unica para todo e qualquer n´umero natural. Isso abre diversas possibilidades de aplicac¸˜ao, como em criptografia, onde um texto pode ser codificado como uma sequˆencia de n´umeros primos.

3. Os N ´umeros de G¨odel

Kurt G¨odel, em 1931, deu um grande passo para para a evoluc¸˜ao da matem´atica com seu Teorema da Incompletude [G¨odel 1931]. Para a prova de tal teorema, G¨oedel precisou de uma abstrac¸˜ao, uma formalizac¸˜ao que o possibilitasse trazer ao seu campo de dom´ınio – a teoria dos n´umeros [Andrews 1995] – toda e qualquer sistema formal. Desta maneira, poderia “operar” sobre tais sistemas com regras aritm´eticas, botando-os em prova, ana-lisando suas caracter´ısticas, testando portanto sua completude, o objetivo primordial de sua tese.

Este propˆos ent˜ao os N ´umeros de G¨odel [Hofstadter 1989], um conceito formal a partir da teoria dos n´umeros.

3.1. Definic¸˜ao

Os N´umeros de G¨odel (NG) s˜ao definidos por uma func¸˜ao que designa um n´umero natural a cada s´ımbolo ou f´ormula de alguma linguagem formal e a potˆencia destes n´umeros primos seguindo a posicionalidade na palavra ou texto. A estes n´umeros naturais d´a-se o nome de N´umeros de G¨odel.

Portanto, tendo um conjunto cont´avel S, pode-se definir a func¸˜ao de gerac¸˜ao de N´umeros de G¨odel (func¸˜ao de numerac¸˜ao de G¨odel) por:

f : S → N

Como para S pode-se ter qualquer conjunto de elementos cont´aveis, toda e qual-quer linguagem formal pode ser convertida para uma representac¸˜ao no dom´ınio dos n´umeros naturais.

(3)

aos n´umeros naturais:

f (a) = 1 (2)

f (b) = 2 (3)

Agora, como m´etodo de concatenac¸˜ao de s´ımbolos, G¨odel utilizou a estrat´egia de usar os s´ımbolos (j´a convertidos para n´umeros naturais) como expoentes de uma seq¨uˆencia de n´umeros primos, onde cada s´ımbolo ocupa o expoente de um ´unico n´umero primo. Portanto, para a palavra abba se tem a representac¸˜ao num´erica dada por:

N Gabba = 21 × 32 × 52 × 71 = 3150

Define-se assim uma relac¸˜ao entre o alfabeto de S com os n´umeros naturais, onde a palavra abba constitui o NG 3150, de forma un´ıvoca.

Os NG s˜ao portanto ´unicos e representam numericamente uma palavra de um sis-tema formal qualquer. Haja visto que esta representac¸˜ao se faz por produto de n´umeros primos, que por si s´o s˜ao de dif´ıcil busca por m´etodos computacionais, tˆem tal dificuldade aumentada pelo fato desta representac¸˜ao ter grande complexidade espacial, fazendo cres-cer o tamanho do NG de maneira exponencial, devido ao produto dos n´umeros primos desta sequˆencia.

4. TFA e NG Aplicados `a Criptografia

4.1. Criptografia

Sempre foi desejo do homem manter em seguranc¸a certas informac¸˜oes. A criptogra-fia [Schneier 1995] ´e uma das mais importantes disciplinas por tr´as desta seguranc¸a. Esta, atrav´es da matem´atica e da ciˆencia da computac¸˜ao, pode criar m´etodos muito eficientes de codificac¸˜ao e decodificac¸˜ao, com alto grau de confiabilidade.

Um destes m´etodos baseia-se no aproveitamento de certas caracter´ısticas encon-tradas em teoremas matem´aticos. Tal estrat´egia ´e usada como base, por exemplo, para um dos sistemas criptogr´aficos mais populares da atualidade: a criptografia por chaves p´ublicas [Choudhury and Choudhury 2002].

(4)

para codificar a mensagem, que s´o poder´a ser aberta pelo destinat´ario e ningu´em mais, nem mesmo o pr´oprio emissor.

Um exemplo de algor´ıtmo gerador de chaves p´ublicas e privadas ´e o popular RSA [Rivest et al. 1978], criado em 1978 por Ronald Rivest, Adi Shamir e Len Adle-man, e utilizado na codificac¸˜ao em protocolos seguros como SSL3 [Rescorla 2000] e na criac¸˜ao de certificados de seguranc¸a para servic¸os de risco como as redes virtuais privadas, VPN4[Holden 2003].

4.2. Formulac¸˜ao

As caracter´ısticas dos N´umeros de G¨odel e do Teorema Fundamental da Aritm´etica possi-bilita a criac¸˜ao de um algor´ıtmo de criptografia baseado em chaves. Dos NG, tal algor´ıtmo herda a func¸˜ao numeradora, que unida com a propriedade da univocacidade garantida pelo TFA, proporciona a gerac¸˜ao de n´umeros naturais ´unicos para cada s´ımbolo ou combinac¸˜ao destes. Al´em disso, garante-se tamb´em a operac¸˜ao inversa, onde tais n´umeros gerados po-dem ser convertidos novamente aos seus s´ımbolos originais, haja visto que a fatorac¸˜ao ´e dada pela sequˆencia 2i× 3j × 5k× 7l× ....

Assim a proposta ´e fazer uma codificac¸˜ao usando os NG e uma decodificac¸˜ao atrav´es da fatorac¸˜ao destes. Portanto, define-se o algor´ıtmo que implementa estas operac¸˜oes:

Codificac¸˜ao

1. Tendo-se como entrada h w, C i sendo w ∈ L( S ) e C = { ( x , y ) | x ∈ S, y ∈ N, f ( x ) = y } (a chave codificadora), onde L( S ) = { x+| x ∈ S } e S = { a, b } (alfabeto da palavra a codificar);

2. Para cada elemento i da palavra w, toma-se seu par ( i , yi) da relac¸˜ao definida na chave C;

3. Encontra-se o NG pela multiplicac¸˜ao da seq¨uˆencia de n´umeros primos dado por N G = 2y1 × 3y2 × 5y3 × ... × pyn

n , onde p ´e o consecutivo n´umero primo n v´alido e n o tamanho da palavra w.

Decodificac¸˜ao

1. Tendo-se como entrada h g, C i sendo g ∈ N (um n´umero de G¨odel) e C a chave criptogr´afica usada na codificac¸˜ao;

2. Fatora-se g (aqui aplicando o m´etodo recursivo): (a) Se g ´e um primo, retorna-o. Sen˜ao, g0 = pg

i sendo pi um n´umero primo i

consecutivo;

(b) Se a divis˜ao n˜ao gerar resto, adiciona pi `a lista Lg e fatora g0. Caso contr´ario, g0 = pg

i+1 e assim sucessivamente, at´e obter uma divis˜ao sem

resto.

(5)

3. A lista Lg cont´em g fatorado. Conta-se, para cada elemento j de Lg, a quantidade de elementos iguais a j. O valor desta contagem valora kj;

4. Para cada kj encontrado, toma-se seu par ( j, kj) da relac¸˜ao definida na chave C; 5. Encontra-se a palavra w, formada pela concatenac¸˜ao dos kj calculados.

4.3. Aplicac¸˜ao

A partir dos algor´ıtmos de codificac¸˜ao e decodificac¸˜ao por TFA, pˆode-se desenvolver um software que implementa tal sistema criptogr´afico. O aplicativo foi desenvolvido buscando-se certa eficiˆencia, mesmo que somente para a demonstrac¸˜ao do m´etodo. Para tal, utilizou-se a linguagem de programac¸˜ao C [Kernighan and Ritchie 1978]. Ainda, para as operac¸˜oes de fatorac¸˜ao e multiplicac¸˜ao de n´umeros naturais, utilizou-se a biblioteca PARI, componente do sistema de computac¸˜ao alg´ebrica PARI/GP5.

Optou-se pelo uso desta biblioteca devida `a necessidade da computac¸˜ao de gran-des valores num´ericos.

Para a execuc¸˜ao do software necessita-se, para a codificac¸˜ao, de duas entradas: o arquivo texto contendo a chave (chave.txt, neste exemplo) e uma palavra que ser´a codifi-cada (original.txt). Para a decodificac¸˜ao, ainda ´e necess´aria a chave e o n´umero natural que ser´a fatorado (criptografado.txt).

O arquivo texto que abriga a chave possui o formato hs´ımbolo c´odigoi, onde s´ımbolo ´e qualquer caractere ASCII e c´odigo um n´umero natural maior ou igual a zero. Como exemplo:

a 1 b 2

As codificac¸˜oes s˜ao realizadas pelo parˆametro -c e as decodificac¸˜oes por -d. Um exemplo de execuc¸˜ao seria:

./goedel -c chave.txt < original.txt > criptografado.txt

Ainda, o parˆametro -s leva `a execuc¸˜ao do show mode, que apresenta todos os passos realizados na codificac¸˜ao e decodificac¸˜ao de uma palavra dada. Por exemplo:

(6)

./goedel -s chave.txt < original.txt *** CODIFICACAO entrada = aaba fatoracao = 2ˆ1 3ˆ1 5ˆ2 7ˆ1 codificado = 1050 *** DECODIFICACAO saida = aaba

A aplicac¸˜ao est´a dispon´ıvel no reposit´orio (http://mov.void.cc/archives/goedel-0.2.tar.bz2) sobre a licenc¸a p´ublica GPL 6. Maiores informac¸˜oes sobre sua instalac¸˜ao e uso encontram-se no arquivo README do pacote distribu´ıdo.

4.4. An´alise

A criptografia moderna considera eficiente os algor´ıtmos de codificac¸˜ao/decodificac¸˜ao cujo tempo computacional requerido para sua execuc¸˜ao ´e impratic´avel por computadores pessoais e at´e mesmo por super-computadores [Mao 2003].

Pensando desta forma, o m´etodo utilizado fornece uma demonstrac¸˜ao do poder dado pelos n´umeros primos no desenvolvimento de algor´ıtmos de criptografia.

O software produzido n˜ao suporta a codificac¸˜ao de uma palavra de entrada muito grande, haja visto que para cada elemento desta palavra, ´e necess´ario um n´umero primo que o “represente”, tendo-se portanto alta complexidade espacial. Al´em disso, para uma quantidade grande de s´ımbolos, os expoentes de tais n´umeros primos ser˜ao compostos por valores de v´arios d´ıgitos, o que aumentar´a ainda mais o tempo de processamento, alta complexidade temporal.

Se por um lado isto lembra errˆoneamente ineficiˆencia, por outro leva `a comprovac¸˜ao de que a quebra de uma chave criptogr´afica gerada por estrat´egias seme-lhantes `a empregada, ´e praticamente imposs´ıvel, somente conseguida pelo uso de novas t´ecnicas de processamento [Ord 2002], e ainda n˜ao comprovadas.

(7)

5. Conclus˜oes

O Teorema Fundamental da Aritm´etica revelou fatos interessantes. Aplic´a-lo como axi-oma para os N´umeros de G¨odel, fez propor um m´etodo criptogr´afico, que apesar de pouco eficiente, demonstra a base na qual algor´ıtmos de criptografia massivamente usados atu-almente s˜ao desenvolvidos.

Ainda, descobriu-se que a propriedade da incompletude dos sistemas formais, descoberta e provada por Kurt G¨odel dos N´umeros de G¨odel, n˜ao ´e somente uma ca-racter´ıstica de ineficiˆencia de algor´ıtmos. Nota-se que se vista de um novo ˆangulo, o da criptografia moderna, revela-se como um identificador n˜ao da ineficiˆencia, mas da eficiˆencia de seguranc¸a de algor´ıtmos criptogr´aficos. Quanto mais os computadores s˜ao incapazes de quebrar as chaves criadas por estes algor´ıtmos, mais tempo estes perdurar˜ao como padr˜oes de codificac¸˜ao.

O software desenvolvido permitiu analisar de maneira pr´atica a teoria aqui desen-volvida. Comprovou-se a dificuldade da decodificac¸˜ao de uma mensagem criptografada, pela fatorac¸˜ao em termos de n´umeros primos de um n´umero natural de milhares de casas decimais.

Enfim, de axioma para aplicac¸˜ao em novos teoremas, `a base para o desenvolvi-mento de soluc¸˜oes pr´aticas, o Teorema Fundamental da Aritm´etica prova que as teorias podem ser usadas para uma gama de aplicac¸˜oes, e n˜ao somente destinadas a hip´oteses n˜ao implementadas.

Referˆencias

Andrews, G. E. (1995). Number Theory. Dover Publications, 1st edition.

Choudhury, S. and Choudhury, S. (2002). Public Key Infrastructure and Implementation and Design. Wiley, 1st edition.

G¨odel, K. (1931). Uber formal unentscheidbare satze der principia mathematica und verwandter systeme, i. Mathematik und Physik, 38.

Hintikka, J. (1999). On G¨odel. Wadsworth Publishing, 1st edition.

Hofstadter, D. R. (1989). G¨odel, Escher, Bach: An Eternal Golden Braid. Vintage Books, 1st edition.

Holden, G. (2003). Guide to Firewalls and Network Security: Intrusion Detection and VPNs. Course Technology, 1st edition.

Kernighan, B. and Ritchie, D. (1978). The C Programming Language. Prentice Hall, 1st edition.

Mao, W. (2003). Modern Cryptography: Theory and Practice. Prentice Hall, 1st edition. Mollin, R. A. (1998). Fundamental Number Theory with Applications. CRC-Press, 1st

edition.

Ord, T. (2002). Hypercomputation: computing more than the turing machine. Honours Thesis, University of Melbourne.

(8)

Rivest, R., Shamir, A., and Adleman, L. (1978). A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, Vol. 21 (2), pp.120-126. Schneier, B. (1995). Applied Cryptography: Protocols, Algorithms, and Source Code in

Referências

Documentos relacionados

A avaliação teve como objetivo verificar o impacto dos elementos de gamificação inseridos (dicas e erros gratuitos, distribuição dos planos de aula em níveis de

O Governo do Estado do Maranhão por intermédio do Instituto Estadual de Educação, Ciência e Tecnologia do Maranhão (IEMA), Órgão vinculado à Secretaria de Estado da

A pesquisa pode ser caracterizada como exploratória e experimental em uma primeira etapa (estudo piloto), na qual foram geradas hipóteses e um conjunto de observáveis, variáveis

Este trabalho apresenta um estudo sobre os N´umeros Primos que passa por resultados b´asicos, como a infinitude dos n´umeros primos e o Teorema Fundamental da Aritm´etica, e

Os testes de desequilíbrio de resistência DC dentro de um par e de desequilíbrio de resistência DC entre pares se tornarão uma preocupação ainda maior à medida que mais

3 O presente artigo tem como objetivo expor as melhorias nas praticas e ferramentas de recrutamento e seleção, visando explorar o capital intelectual para

DATA: 17/out PERÍODO: MATUTINO ( ) VESPERTINO ( X ) NOTURNO ( ) LOCAL: Bloco XXIB - sala 11. Horário Nº Trabalho Título do trabalho

Este desafio nos exige uma nova postura frente às questões ambientais, significa tomar o meio ambiente como problema pedagógico, como práxis unificadora que favoreça