departamento de matem´atica trabalhos de gradua¸c˜ao em...

67
Departamento de Matem´ atica Trabalhos de Gradua¸c˜ ao em Matem´atica n. o 1/98 UnB

Upload: doandung

Post on 30-Nov-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Departamento de MatematicaTrabalhos de Graduacao em Matematica n.o 1/98 UnB

Page 2: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Departamento de MatematicaTrabalhos de Graduacao em Matematica n.o 1/98 UnB

Trabalho realizado por:

• Aline Gomes da Silva Pinto

• Cleida de Assis Coutinho

• Daniela Amorim Amato

• Josimar da Silva Rocha

• Marcelo Santos Novais

• Roberto dos Santos Melo Oliveira

• Solange Maria da Conceicao Goncalves

Corpos FinitosTeoria e Aplicacoes

Com orientacao deHemar Teixeira Godinho

Revisao e EditoracaoAline G. S. Pinto, Daniela A. Amato e Roberto S. M. Oliveira

Capa: Lucas C. S. Ferreira e Roberto S. M. Oliveira

Page 3: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Sumario

Lista de Tabelas iii

Prefacio iv

1 Introducao a Criptografia 11.1 Elementos Basicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Criptosistemas Elementares . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 Criptografia 112.1 Construcao de um Criptosistema . . . . . . . . . . . . . . . . . . . . . . . . . 112.2 Unidades de Mensagem com uma Unica Letra . . . . . . . . . . . . . . . . . . 112.3 Trasformacoes Digraficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.4 Matrizes Codificadoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.5 Criptografia RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3 Topicos de Algebra 323.1 Extensoes de Corpos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.2 Corpos Finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.3 Raızes de Polinomios Irredutıveis . . . . . . . . . . . . . . . . . . . . . . . . . 40

4 Teoria de Codigos Algebricos 434.1 Codigos Lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.2 Codigos Cıclicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Indice Remissivo 60

Referencias 62

Page 4: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Lista de Tabelas

1.1 Tabela de Cesar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Tabela Atbash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Tabela de Correspondencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4 Tabuleiro de Polibius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.5 Tabela Vigenere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.6 Tabela Playfair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1 Equivalentes numericos das letras do alfabeto . . . . . . . . . . . . . . . . . . 15

Page 5: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Prefacio

A recente difusao do uso do computador, disponibilizando enormes recursos a uma quantidadesurpreendentemente grande de pessoas, encontrou nos conhecimentos matematicos ate aquiacumulados, e em particular na Algebra, um apoio imprescindıvel. Esse conhecimento, quenao visava especificamente aplicacoes computacionais, pode ser adaptado e modificado deforma a atender as mais diversas necessidades, como por exemplo a de garantir seguranca noacesso remoto a dados bancarios, a de implementar sistemas de controle de grandes estoquesde mercadorias, ou ainda, fundamentalmente, a de assegurar confiabilidade em memorias decomputadores. As aplicacoes computacionais, por sua vez, deram novo sentido e interesse aproblemas antigos, alem de gerarem novos e desafiantes problemas para a Matematica.

Foi com essa motivacao que o Prof.o Hemar Teixeira Godinho, quando convidado a par-ticipar das atividades do PET do 1.o semestre de 98, propos o tema estudado nesta brochura,na qual procura-se enfatizar a rica simbiose entre teoria e aplicacao. Assim e que o trabalhoapresenta, de inıcio, uma introducao a Criptografia, hoje de uso generalizado em redes decomunicacao. Essa introducao e usada como motivacao para o estudo de Corpos Finitos,chegando-se ao estudo dos Codigos Algebricos, tanto lineres como cıclicos.

Inicialmente, o trabalho foi realizado na forma de seminarios, orientados pelo Prof.o Hemare apresentados pelos bolsistas do PET. Em seguida, cada participante redigiu o material apre-sentado, dando origem a mais esse volume da serie Trabalhos de Graduacao em Matematica.E claro que, sendo uma realizacao coletiva, foi necessario um cuidadoso trabalho de revisao,padronizacao e editoracao do material original. Isso foi feito com grande empenho, dedicacaoe entusiasmo pelo Prof.o Hemar e pelos bolsistas Aline G. da S. Pinto, Daniela A. Amato eRoberto dos S. M. Oliveira.

Celius A. MagalhaesTutor do PET/MAT

Dezembro de 1999

Page 6: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 1

Introducao a Criptografia

A Criptografia pode ser definida como o estudo dos metodos utilizados para enviar mensagenscodificadas de forma que apenas o destinatario seja capaz de decifra-la.

1.1 Elementos Basicos

Podemos classificar nossas mensagens em dois tipos: o chamado texto original, o qual corre-sponde a mensagem que queremos enviar; e o texto codificado que corresponde a codificacaodo anterior. Podemos destacar os pontos mais importantes da relacao entre estes dois tex-tos:

a) ambos sao escritos no mesmo alfabeto. Este, por sua vez, consiste em um certo numeroN de letras (letras usuais A-Z, numerais, sinais de pontuacao, etc). Alem disso, taistextos podem ser decompostos na chamada unidade de mensagem que pode ser umaletra, um par de letras (dıgrafos), ou, de uma forma geral, um bloco de K letras;

b) um podera ser convertido no outro por meio de uma funcao adequada. Primeiramente,temos a transformacao codificacao , f, a qual e uma funcao bijetiva do conjunto deunidades de mensagem do texto original no conjunto das unidades de mensagem dotexto codificado. Enquanto isso, a transformacao decodificacao corresponde a funcaoinversa, ou seja, aplicada a qualquer unidade de mensagem do texto codificado, ela nosfornecera a unidade correspondente no texto original. Portanto f sera responsavel pelacodificacao da mensagem, enquanto que f−1, pela decodificacao. Assim se desejarmosenviar uma mensagem confidencial para um receptor A podemos utilizar tal sistema.

1.2 Criptosistemas Elementares

Os metodos descritos a seguir, apesar de simples e obsoletos hoje em dia, tem importanciafundamental na Criptografia moderna, uma vez que serviram de base para a construcao demetodos complexos, os mais utilizados atualmente. Alem disso, possuem importancia historicae facilitam o aprendizado.

1.2.1 O Criptograma de Cesar

Este criptograma e um dos primeiros, mais simples e faceis de serem quebrados. Diz ahistoria que Julio Cesar comunicava-se com amigos substituindo cada letra do seu textolegıvel (texto original) pela letra situada tres posicoes a frente no mesmo alfabeto, obtendoentao, um texto ilegıvel (texto codigo). Podemos resumir este sistema pela seguinte tabela(para alfabeto usual de 26 letras):

Page 7: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 1. Criptosistemas Elementares 2

a.o. 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 Za.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

Tabela 1.1. Tabela de Cesar.

Algoritmo de Codificacao.

• Escreva o texto original;

• Substitua cada caracter do texto original por outro do mesmo alfabeto, tal que esteesteja 3 posicoes adiante.

Algoritmo de Decodificacao.

• Escreva o texto codigo;

• Substitua cada caracter do texto codigo por outro do mesmo alfabeto, tal que este esteja3 posicoes antes.

Exemplo. Codificar o texto: QUEM E VOCE. Pela Tabela de Cesar, vemos que Qcorresponde a T. Aplicando as correspondencias restantes ao texto original ficamos com oseguinte:

texto original Q U E M E V O C Etexto codigo T X H P H Y R F H

texto codigo: TXHP H YRFH.

Exemplo. Decodificar a mensagem: XP HVSLDR. Aplicamos aqui um processo inversoao anterior. Na segunda linha da Tabela de Cesar, X leva em U. Fazendo isto ao restante dotexto codigo:

texto codigo X P H V S L D Rtexto original U M E S P I A O

texto original: UM ESPIAO = UM ESPIAO.

Observacoes.

a) A cada caracter do alfabeto original corresponde um unico caracter, distinto do primeiro,pertencente ao mesmo alfabeto;

b) A ordem usual dos caracteres do alfabeto original e a mesma daqueles do alfabetocodigo, havendo somente uma troca nas posicoes. Diz-se, entao, que o alfabeto originalfoi transladado em 3 posicoes;

Page 8: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 1. Criptosistemas Elementares 3

c) Veja que se o receptor legıtimo nao souber de quantas posicoes o alfabeto codigo foitransladado, em relacao ao alfabeto original, devera testar todos os 26 criptogramas deCesar que existem. Entretanto, o emissor podera contornar este problema enviando aTabela de Correspondencia ou um numero que indique em quantas posicoes se deu atranslacao. Estes componentes citados sao as chaves, que devem ser de conhecimentoapenas do emissor e do receptor legıtimo;

d) Atualmente, qualquer sistema no qual a ordem dos caracteres do alfabeto codigo forigual a dos caracteres do alfabeto original e dito Criptograma de Cesar. Portanto,em nosso alfabeto, ha apenas 26 tipos de criptogramas existentes, daı a facilidade emquebra-lo.

1.2.2 O Criptograma Atbash

E um sistema ainda mais simples de ser quebrado que o anterior, visto que o alfabeto codigose encontra na ordem inversa daquela do alfabeto original. Deste modo, temos a seguintetabela:

a.o.ABC D E FGH I J KLM N OPQR S TUVWXYZa.c. ZYXWVUT S RQPO N MLK J I HGF E D CBA

Tabela 1.2. Tabela Atbash.

Algoritmo de Codificacao.

Substitua cada letra do texto original pela letra correspondente, na Tabela Atbash, ao alfabetocodigo.

Algoritmo de Decodificacao.

Substitua cada letra do texto codigo pela letra correspondente, na Tabela Atbash, ao alfabetooriginal.

Exemplo. Codifique o texto: ESTAMOS ESPERANDO. Pela Tabela Atbash, temosque A e trocado por Z, B por Y, e assim sucessivamente, levando-nos a ter o seguinte textocodigo:

texto original E S T A M O S E S P E R A N D Otexto codigo V H G Z N L H V H K V I Z M W L

texto codigo: VHGZNHL VHKVIZMWL

Exemplo. Decodifique o texto codificado: XSVTL ZNZMSZ. Pela Tabela Atbash, temosque Z e trocado por A, Y por B, e assim sucessivamente, levando-nos a ter o seguinte textooriginal:

Page 9: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 1. Criptosistemas Elementares 4

texto codigo X S V T L Z N Z M S Ztexto original C H E G O A M A N H A

texto original: CHEGO AMANHA = CHEGO AMANHA

1.2.3 Substituicao Monoalfabetica

Reune os dois criptogramas ja vistos e, alem disso, todas as substituicoes de caracter porcaracter possıveis, nao havendo restricao quanto a ordem dos caracteres do alfabeto codigoem relacao ao alfabeto original. Deste modo, num alfabeto de 26 letras, ha ao todo 26!correspondencias possıveis, o que torna a tarefa de quebra do codigo por tentativas muitodifıcil. Entretanto, utilizando a analise de frequencia relativa1 (veja pagina 13 para maioresdetalhes) das letras do texto codigo, tal tarefa se torna simples.

Algoritmo de Codificacao.

• Escreva o alfabeto original na ordem usual;

• Faca corresponder a cada caracter deste um outro caracter do mesmo alfabeto. Estesera o alfabeto codigo;

• Troque cada caracter do texto original por seu correspondente no alfabeto codigo.

Algoritmo de Decodificacao.

• Use a mesma correspondencia anterior;

• Troque cada caracter do texto codigo por seu correspondente no alfabeto original.

Exemplo. Suponha que um emissor tenha criado a seguinte correspondencia:

a.o.ABC D E F GHI J KLMNOPQR S TUVWXYZa.c.HPEWGM Z S IOYAKUXTD J CQL F V NBR

Tabela 1.3. Tabela de correspondencia.

Codifique o texto: TIGRE. Na Tabela de Correspondencia, A 7→ H,B 7→ P,C 7→ E, eassim por diante. Fazendo este procedimento a todo o texto original:

texto original T I G R Etexto codigo Q I Z J G

texto codigo: QIZJG

1termo da criptologia

Page 10: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 1. Criptosistemas Elementares 5

Exemplo. Decodifique a mensagem: THUQGJH. Na segunda linha da Tabela de Cor-respondencia do Exemplo 1, H 7→ A,P 7→ B,E 7→ C, e assim por diante. Fazendo esteprocedimento a todo o texto codigo:

texto codigo T H U Q G J Htexto original P A N T E R A

texto original: PANTERA

Observacao. Veja que o emissor, ao criar a Tabela de Correspondencia deve, de algumaforma, fazer com que o receptor legıtimo a conheca. Ao mesmo tempo, ele deve manter atabela fora do conhecimento de pessoas alheias.

1.2.4 O Tabuleiro de Polibius

O Tabuleiro de Polibius e um criptograma que converge as letras do alfabeto usual em paresde numeros. Esta transformacao, portanto, leva um caracter em dois caracteres, denominadosdıgrafos . Constitui-se de uma matriz 5 × 5 das 26 letras do alfabeto, onde as letras I e Jcompartilham da mesma posicao. Veja a Tabela 1.4 a seguir:

1 2 3 4 51 A B C D E2 F G H IJ K3 L M N O P4 Q R S T U5 V W X Y Z

Tabela 1.4. Tabuleiro de Polibius.

Os numeros que identificam cada letra correspondem primeiramente a linha e, depois acoluna onde a letra se encontra nesta tabela. Um aspecto curioso deste sistema esta nareducao do numero de caracteres no alfabeto codigo, apenas cinco. Isto possibilitou, a epocade sua invencao, a transmissao de mensagens via lanternas ou tochas, isto e, se vıssemos umapessoa a nossa frente que segura na mao direita (nossa esquerda) 2 tochas, e, na outra mao(nossa dir eita), 3 tochas, ela estaria transmitindo a letra H.

Algoritmo de Codificacao

• Substitua cada letra do texto original pelos correspondentes numeros que identificam,como ja foi dito, primeiramente a linha e depois a coluna onde se encontra.

Algoritmo de Decodificacao

• Separe o texto codigo em blocos de dıgrafos, e, em cada dıgrafo, o primeiro numero daa linha onde a letra esta, e o segundo, a coluna. Esta e a letra correspondente ao dıgitodo texto codigo. Substitua o par pela letra;

Page 11: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 1. Criptosistemas Elementares 6

• Se algum par for o numero 24, substitua-o por I ou J, conforme o contexto do textooriginal.

Exemplo. Codifique o texto original: RELOGIO.

texto original R E L O G I Otexto codigo 42 15 31 34 22 24 34

texto codigo: 42153134222434.

Exemplo. Decifre a mensagem: 2145242444245134. Separando-a em dıgrafos, temos:21/45/24/24/44/24/51/34. Logo:

texto codigo 21 45 24 24 44 24 51 34texto original F U IJ IJ T IJ V O

texto original: F U IJ IJ T IJ V O = FUJITIVO.

Observacoes.

a) Obviamente, este sistema pode ser rapidamente quebrado, desde que quem o faca saibaque o texto original foi codificado no sistema do Tabuleiro de Polibius;

b) Neste criptograma nao ocorre a utilizacao de chave.

1.2.5 O Sistema Vigenere

No Sistema Vigenere faz-se uso de uma matriz simetrica 26× 26 de letras do alfabeto usual,confira a Tabela 1.5. A primeira linha correspondera sempre, tanto na codificacao quanto nadecodificacao, as letras do texto original, enquanto que a primeira coluna, da mesma maneira,correspondera as letras da palavra chave . Chama-se a primeira linha de linha texto originale a primeira coluna de coluna chave. Ao interior desta matriz correspondera o texto codigo.

Exemplo. Ilustraremos o algoritmo de codificacao codificando o texto: BOMBARELOGIO, onde a palavra chave e PC.

• Escreva a palavra chave logo abaixo do texto original, repetidas vezes, e pare ao finaldo texto original;

texto original B O M B A R E L O G I Opalavra chave P C P C P C P C P C P C

Veja que ha varios pares verticais de letras do texto original e da palavra chave.

• Tome o primeiro par, BP. Na linha texto original localize a coluna que contem B. Facasua intersecao com a linha da coluna chave onde se encontra P, obtendo desta intersecaoa letra Q, a primeira letra do texto codigo. Proceda analogamente aos demais dıgrafos,e tera:

Page 12: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 1. Criptosistemas Elementares 7

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 ZB C D E F G H I J K L M N O P Q R S T U V W X Y Z AC D E F G H I J K L M N O P Q R S T U V W X Y Z A BD E F G H I J K L M N O P Q R S T U V W X Y Z A B CE F G H I J K L M N O P Q R S T U V W X Y Z A B C DF G H I J K L M N O P Q R S T U V W X Y Z A B C D EG H I J K L M N O P Q R S T U V W X Y Z A B C D E FH I J K L M N O P Q R S T U V W X Y Z A B C D E F GI J K L M N O P Q R S T U V W X Y Z A B C D E F G HJ K L M N O P Q R S T U V W X Y Z A B C D E F G H IK L M N O P Q R S T U V W X Y Z A B C D E F G H I JL M N O P Q R S T U V W X Y Z A B C D E F G H I J KM N O P Q R S T U V W X Y Z A B C D E F G H I J K LN O P Q R S T U V W X Y Z A B C D E F G H I J K L MO P Q R S T U V W X Y Z A B C D E F G H I J K L M NP Q R S T U V W X Y Z A B C D E F G H I J K L M N OQ R S T U V W X Y Z A B C D E F G H I J K L M N O PR S T U V W X Y Z A B C D E F G H I J K L M N O P SS T U V W X Y Z A B C D E F G H I J K L M N O P Q RT U V W X Y Z A B C D E F G H I J K L M N O P Q R SU V W X Y Z A B C D E F G H I J K L M N O P Q R S TV W X Y Z A B C D E F G H I J K L M N O P Q R S T UW X Y Z A B C D E F G H I J K L M N O P Q R S T U VX Y Z A B C D E F G H I J K L M N O P Q R S T U V WY Z A B C D E F G H I J K L M N O P Q R S T U V W XZ 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

Tabela 1.5. Tabela Vigenere.

texto original B O M B A R E L O G I Opalavra chave P C P C P C P C P C P Ctexto codigo Q Q B D P T T N D I X Q

texto codigo: QQBDP TTNDIXQ.

Exemplo. Decodifique o texto: FBVVTUMO OLABIIPF, onde a palavra chave e RAM.

• Escreva a palavra chave logo acima do texto codigo, repetidas vezes, parando ao chegarao fim do texto codigo;

palavra chaveRAMRAM R A MRAMRAMRtexto codigo F B V VT U MO O L A B I I P F

Veja que, mais uma vez, ha varios dıgrafos verticais de letras, agora da palavra chave edo texto codigo.

• Para decodificar a letra F, tome o dıgrafo RF. Na coluna chave, localize R. Percorra estalinha ate encontrar F no interior da matriz e suba a linha texto original, encontrando aletra O. Esta corresponde ao texto original. Faca isto para os demais dıgrafos, e obtera:

Page 13: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 1. Criptosistemas Elementares 8

texto codigo F B V VT U MO O L A B I I P Fpalavra chaveRAMRAM R A MR A MRAMRtexto original O B J ET I V O C UM P R I DO

texto original: OBJETIVO CUMPRIDO.

Tente, com a palavra chave PC, decodificar o texto codigo do Exemplo 1.2.5, utilizandoas regras citadas, e confira com o texto original BOMBA RELOGIO.

Observacoes.

a) Neste sistema ocorre o uso de uma unica palavra chave;

b) As transformacoes de codificacao e decodificacao levam 2 letras em apenas uma;

c) Letras iguais de um texto original nem sempre levam a codificacoes iguais. Por exemplo,em BOMBA RELOGIO, temos tres letras O, mas no texto codigo nao correspondema mesma letra;

d) Dois dıgrafos iguais sempre levam a uma mesma letra, na codificacao ou na decod-ificacao. Por exemplo, em BOMBA RELOGIO, o dıgrafo OC repete-se 2 vezes,ocasionando a mesma leta, Q.

1.2.6 A Tabela Playfair

Assim como no Sistema Vigenere, a Tabela Playfair baseia-se em transformacoes dıgrafas,mas atraves de uma outra tabela de letras do nosso alfabeto. Neste caso acontece algo novo:a transformacao leva um dıgrafo em outro, tanto na codificacao quanto na decodificacao.Acredita-se que este criptograma seja o primeiro sistema completamente dıgrafo.

Algoritmo de Construcao da Tabela Playfair.

Para tal construcao, necessitamos somente da palavra chave, e esta nao deve ter letras repeti-das. Por exemplo: MOBIUS.

i) Escreva a palavra chave horizontalmente. Complete o restante das letras do nossoalfabeto escrevendo-as, segundo a ordem normal, logo abaixo da palavra chave, de talmaneira que, ao se chegar ao fim da palavra chave, pule para a proxima linha. Ao chegara ultima letra restante do alfabeto, pare o processo;

M O B IJ U SA C D E F GH K L N P QR T V W X YZ - - - - -

Page 14: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 1. Criptosistemas Elementares 9

Note que, assim como no Tabuleiro de Polibius, I e J compartilham do mesmo endereco,ou seja, sao um mesmo caracter.

ii) Transponha cada coluna desta tabela incompleta em linha, partindo da primeira. Ostracos indicados na tabela nao entram, pois indicam ausencia de letra;

MAHRZOCKTBDLVIJENWUFPXSGQY

iii) Separe este conjunto em blocos de 5 letras;

MAHRZ OCKTB DLVIJE NWUFP XSGQY

iv) Forme uma matriz 5× 5, onde cada bloco, a partir do primeiro, pertenca a uma linha;

M A H R ZO C K T BD L V IJ EN W U F PX S G Q Y

Tabela 1.6. Tabela Playfair.

Exemplo. Utilizaremos a Tabela Playfair anteriormente obtida para ilustrar a codificacaodo texto original: LEGENDA.

i) Separe o texto original em dıgrafos. Cada dıgrafo destes correspondera a um novodıgrafo no texto codigo;

LE GE ND AX

Veja que acrescentamos a letra X ao final do texto, com o objetivo de tornar par onumero de caracteres do texto original, de modo que nao haja ambiguidade para oreceptor legıtimo, quando este decodificar o texto codigo.

ii) Para codificar um dıgrafo, veja inicialmente se o par pertence a uma mesma linha oucoluna na Tabela Playfair. Neste caso, o dıgrafo codificado correspondera as letras queestao imediatamente a direita ou abaixo de cada letra do dıgrafo, nesta ordem, conformeo par divida mesma linha ou coluna. Se isto nao ocorrer, a primeira letra do dıgrafocodificado ocorrera na intersecao da linha que contem L com a coluna de E, e a segundaletra, no cruzamento da coluna de L com a linha de E.

L e E pertencem a mesma linha, logo:

L 7−→ V e E 7−→ D =⇒ LE 7−→ VD.

Aplicando a regra ao restante do texto:

Page 15: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 1. Criptosistemas Elementares 10

texto original LE GE ND AXtexto codigo VD YV XN MS

texto codigo: VDYVXNMS.

Exemplo. Algoritmo de Decodificacao. A base sera a Tabela Playfair obtida inicialmente,com a mesagem sendo o texto: VDYVXNMS.

i) Separe em dıgrafos o texto codigo;

VD YV XN MS

ii) Para decodificar o dıgrafo YV, se as letras compartilharem mesma linha ou coluna,tome, na ordem do par, as letras que estao imediatamente a esquerda ou acima dasletras do dıgrafo, respectivamente. Se nao, a primeira letra do dıgrafo do texto originalocorrera no cruzamento da linha de Y com a coluna de V, e a segunda, na intersecaoda coluna de Y com a linha de V. Como YV nao divide mesma linha o coluna:

Y 7−→ G e V 7−→ E =⇒ YV 7−→ GE.

Aplicando o metodo em todo o texto codigo:

texto codigo VD YV XN MStexto original LE GE ND AX

texto original: LEGENDAX = LEGENDA.

Observacoes.

a) Veja que quem decodifica nao precisa se preocupar quanto a paridade do numero deletras.

b) Como I e J correspondem ao mesmo caracter, a palavra chave nao deve conter simul-taneamente estas duas letras;

c) Caso um texto original tenha duas letras iguais, que estejam no mesmo dıgrafo, coloca-se uma letra intermediaria, tal que nao cause ma interpretacao do conteudo do textooriginal; Assim, esta regra aplica-se tambem ao dıgrafo IJ (ou JI).

d) Caso resulte, de uma decodificacao o caracter IJ (ou JI), decida pelo contexto da men-sagem qual dos dois caracteres deve entrar no texto original;

e) A Tabela Playfair, aqui obtida como exemplo ilustrativo, nem sempre sera a mesma.Dependera fundamentalmente da palavra chave escolhida pelo emissor.

Page 16: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2

Criptografia

2.1 Construcao de um Criptosistema

O primeiro passo para a construcao de um criptosistema e relacionar cada unidade de men-sagem a um numero inteiro, o qual e denominado equivalente numerico. Tal processo facilitaa construcao de relacoes matematicas utilizadas para codificacao e decodificacao.

Conforme foi citado anteriormente, uma unidade de mensagem pode ser uma letra, umpar de letras (dıgrafos) e etc. Assim, de uma forma geral, ela pode ser um bloco de K letrasas quais pertencem a um alfabeto de N letras. Portanto, os equivalentes numericos de cadaum desses blocos de K letras pertencem ao conjunto de inteiros {0, 1, . . . , Nk − 1}. Sex1x2 . . . xk e uma sequencia dos numeros correspondentes a cada letra do bloco de K letras, ou seja,

x1, x2, . . . , xk ∈ {0, 1, 2, . . . , N − 1},entao, o equivalente numerico dessa unidade de mensagem sera

Nk(x1) + Nk−1(x2) + · · ·+ N0(xk) ∈ {0, 1, · · · , Nk − 1}

Agora estudaremos dois casos particulares do problema acima: unidades de mensagem con-stituıdas por uma unica letra e unidades com duas letras (dıgrafos).

2.2 Unidades de mensagem formadas por uma unica

letra

Quando uma unidade de mensagem e uma unica letra no alfabeto de N letras, cada umadelas estara relacionada a um inteiro pertencente ao conjunto: {0, 1, 2, · · · , N − 1} que podeser relacionado com Z/NZ. Tal fato facilita os processos codificadores e decodificacao tendoem vista que podemos utilizar as operacoes de adicao e multiplicacao modulo N . Destacamosdois tipos de transformacoes utilizadas para codificacao e decodificacao de mensagens:

2.2.1 Transformacao Linear

Este tipo de transformacao pode ser definida como uma funcao f a qual nos fornece, paracada unidade de mensagem do texto original, a unidade de mensagem correspondente no textocodificado, ou seja,

(2.1) C = f (P ) ≡ P + b mod N

onde C seria a representacao de uma unidade de mensagem do texto codificado, e P umaunidade de mensagem do texto original. O parametro b e um numero inteiro fixo chamado

Page 17: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Unidades de Mensagem com uma Unica Letra 12

chave codificadora. Observe agora que, da Funcao (2.1):

P = C − b mod N ⇒ f−1(C) = C − b mod N(2.2)

Portanto, a partir da funcao (2.1), podemos codificar uma mensagem e, com a expressao (2.2),decodifica-la.

2.2.2 Transformacao Afim

A transformacao linear caracterizava-se por possuir uma chave composta por um unicoparametro b, o que facilitava a quebra do codigo desse tipo de criptosistema tendo em vistaque b assumia apenas N valores possıveis. A transformacao afim, por sua vez, e um tipode transformacao mais incrementada pois, ao contrario da anterior, ela possui uma chavecomposta por dois parametros: a, b. Com isso, o numero de possıveis funcoes do tipo

(2.3) C = aP + b mod N

sera maior do que o numero de funcoes (2.1), ja que b pode assumir N valores, enquantoque a, ϕ(N) valores.

A funcao afim (2.3) e utilizada para codificar mensagens enquanto sua inversa nos fornecerameios para decodificar uma mensagem. De (2.3), temos:

aP = C − b mod N ⇒ P = a∗C + b∗ mod N,(2.4)

onde a∗ = a−1 e b∗ = −a−1b , com a, b, a∗, b∗ ∈ Z/NZ. a−1 e o inverso do parametro amodulo N . Portanto devemos impor a condicao de que mdc(a,N) = 1, caso contrario naopodemos calcular P em termos de C. E importante lembrar que , conforme foi definida ini-cialmente, uma transformacao de codificacao e uma funcao bijetiva portanto, a cada unidadede mensagem do texto original, correspondera uma unica unidade de mensagem do texto cod-ificado, e vice-versa. Assim, se mdc(a,N) > 1, nao teremos uma transformacao codificadorapois mais de uma letra do texto original nos levara a uma mesma letra do texto codificado.

Exemplo. Considere a funcao f(P ) = C = 3P+4 mod 27. Neste caso, a = 3, b = 4 e N = 27,logo mdc(3, 27) = 3 > 1, mostraremos entao que duas unidades distintas de mensagem dotexto original nos levarao a uma mesma unidade de mensagem no texto codificado. Para umaletra B do alfabeto com equivalente numerico 1 teremos:

C = 3(1) + 4 mod 27 ≡ 7 mod 27,

correspondente a letra H. No entanto, para a letra K do texto original, com equivalentenumerico 10, temos

C = 3(10) + 4 mod 27 ≡ 34 mod 27 ≡ 7 mod 27

portanto, ambas as letras K e B do texto original correspondem a mesma letra no textocodificado, H.

Page 18: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Unidades de Mensagem com uma Unica Letra 13

2.2.3 Quebra de Codigo

Quando um indivıduo A deseja enviar um mensagem para um indivıduo B utilizando umatransformacao codificadora, ambos conhecem a chave de tal transformacao de forma que saocapazes de codificar e decodificar mensagens estabelecendo uma comunicacao entre si. Noentanto, suponha que uma dessas mensagens seja interceptada por um terceiro indivıduo C ,que nao conhece o tipo de transformacao utilizada por A e B e nem suas chaves, mas desejaler a mensagem, ou seja, deseja quebrar o codigo.

Para que C atinja seu objetivo, ele necessita de dois tipos de informacao: (a) a estruturageral do sistema, isto e, qual o tipo de transformacao utilizada (linear ou afim); (b) quais osparametros utilizados no sistema.

Assim, apos descobrir a transformacao, resta a ele determinar os parametros, e para isso, ometodo mais utilizado e o de analise de frequencia. Tal metodo consiste em verificar as letrasque aparecem com maior frequencia em um longo pedaco do texto codificado e comparar comas letras mais utilizadas em nosso alfabeto. Ou seja, sabemos que a letra A e a letra maisutilizada na lıngua portuguesa, entao podemos assumir que a letra mais frequente no textocodificado corresponde a codificacao de A.

Exemplo. Suponha que estamos trabalhando em nosso alfabeto de 26 letras e sabemos que atransformacao utilizada e do tipo C = aP + b mod N , ou seja, trata-se de uma transformacaoafim. Apos analisar um longo pedaco do texto codificado, verifica-se que a letra mais frequentee a letra M e a segunda mais frequente e a letra B. Assim, como A e E sao, respectivamente, a primeira e segunda letras mais frequentes na lıngua portuguesa, podemos assumir que Me a codificacao de A e B e a codificacao de E. Com isso, podemos determinar os valores daschaves a e b atraves do sistema abaixo

{12a∗ + b∗ ≡ 0 mod 27a∗ + b∗ ≡ 4 mod 27

Resolvendo o sistema, obtemos P = 7C + 24 mod 27.

Exemplo. Suponha que por meio da analise de frequencia de um longo texto codificado,descobriu-se que ele foi construido utilizando-se uma transformacao linear, ou seja, C =P + b mod N sendo a chave b = 6 e considerando um alfabeto de 28 letras (A-Z, espaco embranco= 26, “!”=27). Com isso, decifre o seguinte trecho do texto codificado

URGEVKYYUGR

Solucao. Sabemos que para utilizar a mensagem foi utilizada a funcao C = f (P ) =P +6 mod 28. Portanto, para decodificar o texto acima devemos utilizar a funcao inversa, ouseja, P = f−1(C) = C − 6 mod 28. Assim, para cada unidade de mensagem encontramos seuequivalente numerico

U R G E V K Y Y U G R F20 17 6 4 21 10 24 24 20 6 17 5

Page 19: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Trasformacoes Digraficas 14

Agora podemos decodificar a mensagem aplicando a funcao f−1 (C) em cada unidade demensagem acima

P = f−1(20) = 20− 6 mod 28 ≡ 14 mod 28

P = f−1(17) = 17− 6 mod 28 ≡ 11 mod 28

Como 14 corresponde a letra O, 11 a letra H e, assim por diante, obtemos a mensagem original:“OLA PESSOAL”.

¤

2.3 Trasformacoes Digraficas

Denominam-se dıgrafos as unidades de mensagens codificadas e decodificadas que sao for-madas por blocos de dois caracteres. Isto significa que o texto legıvel — texto nao crip-tografado — e decomposto em dois segmentos. Se o texto legıvel tem um numero inteiroımpar de letras — ou caracteres — entao deve-se adicionar um caracter extra no fim da string(conjunto de caracteres), com o intuito de se obter um numero inteiro de dıgrafos. A escol-ha deste caracter nao deve causar confusao, tal como o espaco em branco, o “X” ou “Q”seusarmos um alfabeto com apenas 26 letras.

Cada dıgrafo e entao associado a um numero equivalente. A maneira mais simples parafazer isto e tomarmos xN +y , onde x e o numero equivalente ao primeiro caracter do dıgrafo,ja o y e o numero equivalente ao segundo caracter do dıgrafo e N e o numero de caracteresdo alfabeto. Isto resulta em uma correspondencia 1-1, ou seja, bijetiva, entre o conjunto detodos os dıgrafos do alfabeto e o conjunto de todos os inteiros nao negativos menores que N2.Alem disso, temos xN + y ∈ {0, 1, . . . , N2 − 1}.

A seguir, decidimos sobrepor uma transformacao codificadora ou decodificadora, isto e,um rearranjo dos inteiros {0, 1, · · · , N2− 1}. Entre as transformacoes mais simples estao astransformacoes afins, onde vimos este conjunto de inteiros como Z/N2Z, que definem umacodificacao de P como o inteiro nao negativo menor que N2 satisfazendo a congruencia

C ≡ aP + b mod N2

Aqui, como antes, a nao deve ter fator comum com N (o que significa nao ter fator comumcom N2). Segue, entao, que podemos obter uma transformacao inversa nos mostrando comodecodificar:

P ≡ a′C + b′ mod N2

onde a′ ≡ a−1 mod N2 e b′ ≡ −a−1b mod N2. Transpomos C para um bloco de dois carac-teres para texto criptografado escrevendo-o na forma

c = x′ + y′

e entao procuraremos os caracteres com valores numericos equivalentes aos de x′ e y′ .

Page 20: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Trasformacoes Digraficas 15

Exemplo. Suponha que estamos trabalhando com um alfabeto formado por 26 caracterese usando a transformacao codificadora C ≡ 159P + 580 mod 676. Entao o dıgrafo “NO” enumericamente equivalente a

P ≡ 26x + y ∈ {0, 1, · · · , 262 − 1}

ou seja, P ≡ (26 · 13 + 14) mod 676. Entao P ≡ 352 mod 676 e o dıgrafo codificado, transfor-mado em

C ≡ (159 · 352 + 580) mod 676 ≡ 440 mod 676.

Queremos agora achar o dıgrafo correspondente a C, para isto usaremos o Algoritmo daDivisao de Euclides para descobrir x′ e y′. Como 440 = 26 · 16 + 24, obtemos

x′ = 16 ⇒ x′ 7−→ “Q′′ e y′ = 24 ⇒ y′ 7−→ “Y ′′

Com isso, temos que C corresponde a “QY”.O dıgrafo “ON” e numericamente equivalente a 377, pois 14 · 26 + 13 = 377. A transfor-

macao de “ON” e (159 ·377+580)mod676≡ 359mod676 e 359 = 26 ·13+21. Entao, obtemos“ON’ correspondendo a “NV”.

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 Z0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Tabela 2.1. Equivalentes numericos das letras do alfabeto

Observacao. Note que estes dıgrafos mudam por uma unidade, e nao ha relacao entre acodificacao de um dıgrafo e outro que tem uma letra em comum ou com um dıgrafo comordem inversa, por exemplo:

“NO′′ 6⇐⇒ “NB′′ ou “NO′′ 6⇐⇒ “ON ′′

Para quebrar um sistema codificador de dıgrafos que usa uma transformacao C ≡ aP +b mod N2, temos que saber a correspondencia que cifra texto para duas diferentes unidadesde mensagens de texto legıvel.

Como as unidades de mensagens sao digraficas, uma analise de frequencia contabiliza oquanto um bloco de dois caracteres ocorre mais frequentemente numa longa string de textocifrado. Compara-se entao com os dıgrafos conhecidos que sao os mais frequentes em umadeterminada lıngua (os dıgrafos devem ser escritos no mesmo alfabeto). Por exemplo, seusarmos o alfabeto de 26 caracteres, uma analise estatıstica nos mostra que “TH” e “HE” saoos pares de dıgrafos que mais aparecem em ordem na lıngua inglesa.

Exemplo. Voce sabe que o seu adversario esta usando um criptosistema com um alfabeto de27 caracteres, cujas letras A-Z sao representadas numericamente de forma equivalente a daTabela 2.1, e o espaco em branco = 26. Cada dıgrafo entao corresponde a um inteiro entre 0

Page 21: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Trasformacoes Digraficas 16

e 272 − 1, ou seja, 0 e 728(= 272 − 1), de acordo com a regra dita anteriormente: se os doiscaracteres do dıgrafo tem numeros equivalentes x e y, entao o dıgrafo tem numero equivalente27x + y e, alem disso, 27x + y∈ {0, 1, . . . , 728}. Suponha que o estudo de um texto cifradosimples e grande revele que os dıgrafos que ocorrem com maior frequencia sejam, em ordem,“ZA”, “IA” e “IW”. Suponha que os dıgrafos mais comuns na lıngua inglesa (para um textoescrito em um alfabeto de 27 letras) sejam “EÔ(isto e, “E + espaco em branco”), “SÔ,“ÃT”. Voce sabe que o criptosistema utiliza uma transformacao codificadora afim modulo729(= 272 = N2). Achar a chave decodificadora e ler a mensagem “NDXBHO”. Tambemache a chave codificadora.

Solucao. Sabemos que os textos nao criptografados sao codificados pela regra C ≡ aP +b mod 729, e que o texto cifrado pode ser decifrado por P ≡ a′C + b′ mod 729, aqui a e bformam a chave codificadora e a′ e b′ formam a chave decodificadora.

Primeiramente acharemos a′ e b′. Entao podemos saber como os tres dıgrafos sao de-codificados, e depois substituiremos os dıgrafos pelos tres numeros equivalentes. Podemosdeterminar a′ e b′ atraves das congruencias:

“ZA′′ = 25 · 27 + 0 = 675 e “EÃ′′ = 4 · 27 + 26 = 134,“IA′′ = 8 · 27 + 0 = 216 e “SÃ′′ = 18 · 27 + 26 = 512,“IW ′′ = 8 · 27 + 22 = 238 e “ÃT ′′ = 26 · 27 + 19 = 721

Segue entao que:

675a′ + b′ ≡ 134 mod 729 (1)216a′ + b′ ≡ 512 mod 729 (2)238a′ + b′ ≡ 721 mod 729 (3)

Se tentarmos eliminar b′ subtraindo (1) e (2), chegaremos a 459a′ ≡ 351 mod 729. Estacongruencia nao tem solucao unica a′ mod 729 (existem 27 solucoes, pois mdc(459, 729) > 1).Seria entao mais conveniente subtrair (3) de (1), obtendo:

(2.5) 437a′ ≡ (−587) mod 729.

Temos, agora, que achar o inverso de 437 modulo 729. Para isso, utilizaremos o Algoritmo daDivisao de Euclides:

729 = 437 + 292

437 = 292 + 145

292 = 2 · 145 + 2

145 = 72 · 2 + 1

E entao, temos:

1 = 145− 72 · 2 = 145− 72 · (292− 2 · 145) == 145 · 145− 72 · 292 = 145 · (437− 292)− 72 · 292 == 145 · 437− 292 · 217 = 145 · 437− 217(729− 437) == 437 · 362− 217 · 729 ≡ 437 · 362 mod 729

Page 22: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Matrizes Codificadoras 17

Portanto 437−1 = 362 e, da expressao (2.5), a′ ≡ 374 mod 729. Substituindo a′ em (1),temos: b′ ≡ 647 mod 729. Antes de prosseguir, vamos obter os equivalentes numericos paraos dıgrafos do texto codificado:

“ND′′ = 13 · 27 + 3 = 354

“XB′′ = 23 · 27 + 1 = 622

“HO′′ = 7 · 27 + 14 = 203

Aplicando agora a transformacao decodificadora P ≡ 374 ·C + 647 mod 729 para os dıgrafos,temos:

PND ≡ 374 · 354 + 647 mod 729 ≡ 365 mod 729

PXB ≡ 374 · 622 + 647 mod 729 ≡ 724 mod 729

PHO ≡ 374 · 203 + 647 mod 729 ≡ 24 mod 729

Devemos, agora, achar os dıgrafos correspondentes a cada P :

PND = 365 = 13 · 27 + 14

PXB = 724 = 26 · 27 + 22

PHO = 24 = 0 · 27 + 24

Verificando a Tabela 2.1 (pagina 15), obtemos: 13 =N, 26 =“Ô, 0 =A, 14 =O, 22 =W,24 =Y. Segue que a mensagem decodificada de “NDXBHO” e “NOÃWAY”.

Vamos achar agora a chave codificadora:

P ≡ a′C + b′ mod 729 ⇒ C ≡ (a′)−1P − b′(a′)−1 mod 729

Logo, a ≡ (a′)−1, b ≡ −(a′)−1b′, onde a′ = 374 e b′ = 647. Utilizando o mesmo metodoanterior para determinar o inverso a′, encontramos a ≡ 614 mod 729 e b ≡ 47 mod 729.

¤

2.4 Matrizes Codificadoras

2.4.1 Introducao

Nesta secao enfocaremos as unidades de mensagem formada por blocos de duas letras (osdıgrafos) nao mais como um inteiro modulo N2, mas como um vetor

(xy

), onde cada com-

ponente x e y corresponde a um inteiro modulo N (N e o numero de letras do alfabetoutilizado).

Assim, podemos associar cada dıgrafo a um ponto no plano xy sendo que, neste caso, cadaeixo coordenado e uma copia de Z/NZ, e nao uma reta real. Conseq’uentemente, esse arranjoN ×N de pontos e denotado por (Z/NZ)2. Portanto, o conjunto de unidades de mensagemdo texto codificado e do texto original podem ser representados como um conjunto de pontosneste plano xy modificado, sendo que um texto e o rearranjo do outro.

Page 23: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Matrizes Codificadoras 18

2.4.2 Algebra Linear Modulo N

Quando estavamos tratando com caracteres singulares e aplicacoes codificadoras de Z/NZ,achamos dois tipos de aplicacoes faceis de trabalhar:

a) aplicacao “linear” C = aP , onde a e inversıvel em Z/NZ;

b) aplicacao “afim” C = aP + b, onde a e inversıvel em Z/NZ.

Temos uma situacao similar quando nossas unidades de mensagens sao vetores dıgrafos.Primeiro, consideremos as aplicacoes lineares. A diferenca quando trabalhamos com (Z/NZ)2

e Z/NZ e que agora, ao inves de um inteiro a, precisamos de uma matriz 2 × 2, que deno-taremos por A.

Seja R um anel comutativo. Denotaremos R∗ o subconjun-to dos elementos inversıveis de R. Por exemplo, o seguinte conjunto:

(Z/NZ)∗ = {0 6 j 6 N∣∣ mdc(j, N) = 1}.

Denote M 2(R) o conjunto de todas as matrizes 2 × 2 com entradas em R, com adicao emultiplicacao definidas da forma usual para matrizes. M 2(R) e um anel, mas nao e um anelcomutativo, isto e, em mulplicacao de matrizes a ordem dos fatores faz diferenca.

Consideraremos R = R como sendo o anel de numeros reais (na verdade, corpo). Admi-tiremos que a matriz (

a bc d

)

com a, b, c e d ∈ R, tem um inverso multiplicativo se, e somente se, o determinante D = ad−bcfor nao nulo e, neste caso, a matriz inversa e

(D−1d −D−1b−D−1c D−1a.

)

Temos uma situacao similar quando trabalhamos sobre um anel arbitrario R. Suponha que

A =

(a bc d

)∈ M 2(R) e que D = det(A) esteja em R∗. Seja D−1 o inverso multiplicativo

de D em R. Entao, (D−1d −D−1b−D−1c D−1a

)(a bc d

)=

(1 00 1

)

e obtemos o mesmo resultado se multiplicarmos na ordem oposta.

Exemplo. Ache a inversa de A =

(2 37 8

)∈ M 2(Z/26Z).

Solucao. Aqui D = 2 ·8− 3 ·7 = −5 = 21 mod 26. Como mdc(21, 26) = 1, o determinanteD tem inverso 21−1. Devemos entao achar x = 21−1 tal que 21x − 1 = 26k. Com algumastentativas percebe-se que 21 · 5− 1 = 4 · 26, logo 21−1 = 5. Segue que,

A−1 =

(5 · 8 −5 · 3−5 · 7 5 · 2

)≡

(14 1117 10

)mod 26

¤

Page 24: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Matrizes Codificadoras 19

Proposicao 2.1. Seja A=

(a bc d

)∈ M 2(Z/NZ) e D = ad − bc. As seguintes afirmacoes

sao equivalentes:

i) mdc(D, N) = 1;

ii) A tem uma matriz inversa;

iii) Se x e y nao sao ambos nulos em Z/NZ, entao A

(xy

)6=

(00

);

iv) A tem uma correspondencia 1-1 de (Z/NZ)2 com ela mesma.

Demonstracao. Ja consideramos que (i) ⇒ (ii). E suficiente agora provar que (ii) ⇒ (iv)⇒ (iii) ⇒ (i). Suponhamos que (ii) vale. Entao (iv) tambem vale, pois A−1 da a aplicacao

inversa de

(x′

y′

)em

(xy

). Se temos (iv), entao

(xy

)6=

(00

)implica que A ·

(xy

)6=

(00

), e

portanto (iii) e verdadeira. Provaremos, agora, que (iii) ⇒ (i), mostrando que, se negarmos(i), (iii) sera falsa.

Suponha que (i) e falsa e que m = mdc(D, N) > 1 e seja m′ = Nm

. Tres casos sao possıveis:

Caso (1). Se todas as quatro entradas de A sao divisıveis por m e

(xy

)=

(m′

m′

)⇒ A

(xy

)=

A

(m′

m′

)=

(00

), que contradiz (iii).

Caso (2). Se a e b nao sao ambos divisıveis por m, seja

(xy

)=

(−bm′

am′

). Entao A

(xy

)=

(−abm′ + bam′

−cbm′ + dam′

)=

(0

Dm′

)=

(00

), porque m divide D e entao N = mm′ divide Dm′.

Caso (3). Se c e d nao sao ambos divisıveis por m, seja

(xy

)=

(dm′

−cm′

)e portanto o caso

(iii) reduz-se ao caso (ii).Estes tres casos esgotam todas as possibilidades. Portanto, negar (i) implica negar (iii).

Isto completa a prova desta proposicao.

¥

Exemplo. Resolva os seguintes sistemas de congruencias simultaneas:

a)

{2x + 3y ≡ 1 mod 267x + 8x ≡ 2 mod 26

b)

{x + 3y ≡ 1 mod 267x + 9y ≡ 2 mod 26

c)

{x + 3y ≡ 1 mod 267x + 9y ≡ 1 mod 26

Solucao.

Page 25: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Matrizes Codificadoras 20

a) A forma matricial deste sistema e AX ≡ B mod 26, onde A e a matriz do exemploanterior, X =

(xy

)e B =

(12

). Obtemos uma unica solucao:

X ≡ A−1B ≡(

14 1117 10

)(12

)≡

(1011

)mod 26

b) A matriz deste sistema nao tem inversa modulo 26, pois o determinante e 14, que temfator comum 2 com 26, isto e, mdc(14, 26) > 1. Contudo, se trabalharmos modulo13 podemos achar a solucao da mesma congruencia mod13 e ver se ela corresponde asolucao que procuramos modulo 26. Modulo 13, obtemos:

(xy

)≡

(9 106 1

)(12

)≡

(38

)mod 13

Testando o resultado modulo 26, vemos que o sistema nao tem solucao.

c) O processo de resolucao e o mesmo de (b). A matriz A e a mesma de (b), mas temosque considerar que: (

xy

)=

(9 106 1

)(11

)

Assim ,(

xy

) ≡ (67

)mod 13.

Testando as possibilidades modulo 26, achamos duas solucoes:

(67

)e

(1920

).

¤

2.4.3 Matrizes Codificadoras

Analogamente a secao anterior, aqui tambem teremos dois tipos de transformacao: as trans-formacoes lineares, C = aP, e as transformacoes afim, C = aP + b,onde a e inversıvel emZ/NZ. No entanto, pelo fato dos dıgrafos serem representados por vetores, utilizamos, nestecaso, como chave codificadora, uma matriz A ∈ M 2(Z/NZ), onde cada entrada pertence aZ/NZ.

Transformacoes lineares

Para codificar uma mensagem utilizamos a regra

(2.6) C = AP,

onde P e C sao matrizes coluna 2×1 e correspondem ao dıgrafo do texto original e codificado,respectivamente, isto e, (

xy

)=

(a bc d

)(x′

y′

)

Page 26: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Matrizes Codificadoras 21

onde A =(

a bc d

). A partir da equacao (2.6), supondo que a matriz A seja inversıvel, determi-

namos a regra para decodificar:

(2.7) C = AP =⇒ P = A−1C

Com isto, verificamos que C = AP sera uma transformacao decodificadora se, e somente se,a matriz A for inversıvel. Tal fato impoe a condicao de que o determinante D da matriz Adevera ser coprimo com N . Entao, mdc(D, N) > 1 implica que nao existe D−1 modulo N,consequentemente, nao existe A−1. Enfim, a equacao (2.7) e utilizada para decodificar umamensagem, da seguinte forma:

P = A−1C =⇒(

xy

)=

(D−1d −D−1b−D−1c D−1a

)(x′

y′

)

Alem disso, podemos generalizar a situacao anterior no caso de desejarmos codificar umasequencia composta por K dıgrafos, ou seja, por K valores

P = P1P2P3 . . . Pk =

(x1 x2 x3 · · · xk

y1 y2 y3 · · · yk

)

que corresponde a uma matriz 2× k.

O conjunto de vetores codificados:

(x′1y′1

),

(x′2y′2

), . . . ,

(x′ky′k

), atraves da transformacao

linear C = AP tambem correspondera a uma matriz 2× k:

C =

(x′1 x′2 x′3 · · · x′ky′1 y′2 y′3 · · · y′k

),

ja que A e uma matriz 2× 2 inversıvel. Tal generalizacao facilita a codificacao e a decodifi-cacao, pois nao e necessario aplicar a transformacao C = AP ou P = A−1C a cada dıgrafoseparadamente.

Transformacao afim

Uma transformacao afim tem a forma:

C = AP + B

Ela diferencia-se da transformacao linear, pelo fato de adicionar um vetor constante B =(

ef

)apos a aplicacao da matriz A ao vetor P do texto original. Assim, C = AP + B sera:

(2.8)

(x′

y′

)=

(a bc d

)(xy

)+

(ef

)

onde cada elemento e congruente modulo N .De forma analoga a transformacao linear, podemos decodificar uma mensagem determi-

nando a funcao inversa da funcao (2.8), isto e,

C = AP + B =⇒ P = A′C + B′

onde A′ = A−1, B′ = −A−1B e assumimos que A seja uma matriz inversıvel.

Page 27: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Matrizes Codificadoras 22

Quebra de codigo

Para este metodo, as chaves codificadoras e decodificadoras consistem nas matrizes A e suainversa A−1, respectivamente. Portanto, se um determinado indivıduo deseja ler determinadamensagem codificada por meio de transformacao com matrizes, ele devera proceder de formaanaloga a secao anterior. Ou seja, devera utilizar a analise de freq’uencia para verificarquais os dıgrafos que aparecem com maior freq’uencia no texto, e assumir que tais dıgrafoscorrespondem a codificacao dos dıgrafos mais comuns de uma determinanda lıngua.

Suponha entao que, utilizando o procedimento acima, o indivıduo determine dois paresde dıgrafos do texto original e do texto codificado. Sejam C1 = AP1 e C2 = AP2. Assim,para determinar a matriz A−1 e construir a funcao P = A−1C para decodificar a mensagem,colocamos as colunas P1 e P2 em uma matriz 2 × 2 e procedemos da mesma maneira paraC1 e C2. Assim, (

C1 C2

)= A

(P1 P2

)=⇒ C = AP

Sendo P e C matrizes conhecidas, podemos determinar A e A−1 em termos de P, C, P−1, C−1:

↗ CP−1 = APP−1 ⇒ A = CP−1.

C = AP↘

CC−1 = APC−1 ⇒ A−1 = PC−1.

No entanto, no caso da transformacao afim, para determinarmos as chaves A e B precisamosde, no mınimo, 3 pares de dıgrafos . Assim, conhecemos os dıgrafos do texto original:

P1 =

(x1

y1

); P2 =

(x2

y2

)e P3 =

(x3

y3

),

que correspondem aos dıgrafos do texto codificado:

C1 =

(x′1y′1

); C2 =

(x′2y′2

)e C3 =

(x′3y′3

).

Considerando entao que P = A−1C − A−1B = A′C + B′, montamos as equacoes:

P1 = A′C1 + B′(2.9)

P2 = A′C2 + B′(2.10)

P3 = A′C3 + B′(2.11)

Para determinar as matrizes A′ e B′ procedemos da seguinte forma:

a) Subtraimos a equacao (2.11) das equacoes (2.9) e (2.10):

(P1 − P3) = A′(C1 − C3) + B′

(P2 − P3) = A′(C2 − C3) + B′

Page 28: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Matrizes Codificadoras 23

b) Com as colunas (P1 − P3) e (P2 − P3) formamos a matriz P , o mesmo fazemos com(C1 − C3) e (C2 − C3), formando a matriz C. Portanto:

((P1 − P3)(P2 − P3)

)= A′((C1 − C3)(C2 − C3)

)=⇒ P = A′C,

supondo C inversıvel, entao A′ = PC−1.

c) Finalmente, para determinar B′ basta substituir A′ em qualquer umas das equacoes(2.9), (2.10) ou (2.11):

P1 = A′C1 + B′ =⇒ B′ = P1 − A′C1

Exemplo. Suponha que seu adversario esteja utilizando uma matriz 2× 2, como chave cod-ificadora, com um alfabeto de 29 letras (A-Z, espaco em branco= “Ô=26, ?=27 e !=28). Aseguinte mensagem e entao interceptada:

PXNZHBÃ?PZCGDYEFI

suponha sabermos que as ultimas 4 letras do texto codificado correspondem a palavra PET!no texto original e que a transformacao utilizada e linear. Decifre a mensagem.

Solucao. Sabemos que P = A−1C entao, como conhecemos as ultimas 4 letras do textooriginal correspondentes as ultimas 4 letras do texto codificado, podemos formar dois paresde dıgrafos. Os dıgrafos (PE) e (T!), no texto original, e (YE) e (FI), respectivamente, notexto codificado. Logo, P =

(15 194 28

)e C =

(24 54 8

). Sendo P = A−1C =⇒ A−1 = PC−1,

portanto, para que A−1 exista, a matriz C devera ser inversıvel. Assim, seu determinantedeve ser coprimo com N = 29. De fato, det(C) = 24 · 8− 5 · 4 = 172 mod 29 ≡ 27 mod 29, emdc(27, 29) = 1.

Agora devemos determinar o inverso de D modulo 29:

29 = 27 + 2 e 27 = 2 · 13 + 1,

desta forma procedemos como feito na pagina 16:

1 = 27− 2 · 13 = 27− 13 · (29− 27) == 14 · 27− 13 · 29 ≡ 14 · 27 mod 29

Portanto D−1 ≡ 14 mod 29. Logo:

C−1 =

(14 · 8 −14 · 5−14 · 4 14 · 24

)≡

(25 172 17

)mod 29

e A−1 = PC−1 =

(15 194 28

)(25 172 17

)≡

(7 2711 22

)mod 29

Page 29: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Matrizes Codificadoras 24

Conhecendo A−1, podemos decodificar o texto:

P =

(7 2711 22

)(15 13 7 1 27 25 6 24 523 25 14 26 15 2 14 4 8

)

≡(

1 12 21 13 14 26 14 15 194 26 8 3 18 0 26 4 28

)mod 29

= 19491292692198913939149189269091492691594919928

que, de acordo com a Tabela 2.1, significa: “BEMÃVINDOSÃAOÃPET!”

¤Exemplo. Suponha que para codificar determinada mensagem foi utilizada uma transfor-macao e obteve-se o seguinte texto codificado:

YWAV!ZI?EZOCGOUUB

Determine a chave decodificadora e decifre a mensagem, se as ultimas 8 letras do texto acimacorrespondem a palavra (PESSOAL!) no texto original.

Solucao. Tomando os tres ultimos dıgrafos no texto codificado e seus correspondentes notexto original, obtemos de P = A′C + B′ as equacoes:

P1 = A′C1 + B′ =⇒(

1818

)= A′

(26

)+ B′(2.12)

P2 = A′C2 + B′ =⇒(

140

)= A′

(1420

)+ B′(2.13)

P3 = A′C3 + B′ =⇒(

1127

)= A′

(201

)+ B′(2.14)

(2.12)− (2.14) ⇒(

18− 1118− 27

)= A′

(2− 206− 1

)⇒

(720

)= A′

(115

)

(2.13)− (2.14) ⇒(

14− 110− 27

)= A′

(14− 2020− 1

)=⇒

(32

)= A′

(2319

)

Fazendo P =(P1 − P3 P2 − P3

)e C =

(C1 − C3 C2 − C3

)temos:

(7 320 2

)= A′

(11 235 19

)⇒ A′ =

(7 320 2

) −1(11 235 19

)

︸ ︷︷ ︸C

Devemos determinar C−1: det C ≡ 7 mod 29, mas 7−1 ≡ 25 mod 29. Entao:

C−1 =

(25 · 19 −25 · 23−25 · 5 25 · 11

)≡

(11 520 14

)mod 29

e A′ = PC−1 =

(7 320 2

)(11 520 14

)≡

(21 1928 12

)mod 29

Page 30: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Matrizes Codificadoras 25

substituindo A′ na Equacao (2.12), determinamos B′:

B′ = P1 − A′C1 =

(1818

)−

(21 1928 12

)(26

)

≡(

76

)mod 29.

Portanto, P = A′C ⊕ B′ =

(21 1928 12

)C ⊕

(76

), onde ⊕ significa somar o vetor B′ a cada

coluna. Substituindo o valor de C nesta ultima expressao, determinamos o texto original P :

P =

(21 1928 12

)(24 0 27 25 28 25 2 14 2022 21 15 8 4 14 6 20 1

)⊕

(76

)

≡(

1 0 18 17 4 15 18 14 1114 26 14 19 26 4 18 0 27

)mod 29

Portanto a mensagem original e

19490926918914917919949269159491891891490911927

Isto e: “BOAÃSORTEÃPESSOAL!”.

¤

Observacao. De forma que tudo o que foi relatado acima funcione, observe que a matrizP formada pelos dois dıgrafos conhecidos do texto original deve ser inversıvel, isto e, seudeterminante D nao pode possuir um fator comum com o numero N de letras. Mas, e se naotivermos tanta sorte? Se por acaso conhecermos outro par texto codificado-texto original,entao poderıamos tentar usar este par no lugar da 1a ou 2a coluna de P e C, esperando obteruma matriz inversıvel. Por outro lado, suponha que nao temos nenhuma outra informacao,ou que nenhum dos dıgrafos conhecidos do texto original nos da uma matriz inversıvel P ,entao nao podemos achar A−1 exatamente. Entretanto, devemos ser capazes de obter infor-macoes suficientes a respeito de A−1 de forma que podemos cortar drasticamente o numerode possibilidades para a matriz decodificadora. Agora ilustraremos isto com um exemplo.

Exemplo. Suponha que sabemos que nosso adversario esta usando uma matriz codificadoraA em um alfabeto com 26 letras. Recebemos o texto cifrado “WKNCCHSSJH” , e sabemosque as primeiras quatro letras corresponde a palavra “GIVE”. Queremos achar a matrizdecodificadora A−1 e ler a mensagem.

Solucao. P = “GIVE” =

(6 218 4

), C = “WKNC” =

(22 1310 2

), e A−1 = P · C−1. Ime-

diatamente nos deparamos com um problema: det(C) = 18 e mdc(18, 26) = 2. Podemosproceder da seguinte forma para resolver tal problema :

Seja A a matriz reducao modulo 13, e similarmente P e C. Se considerarmos estas matrizesem M 2(Z/13Z), podemos tomar C−1 — mais precisamente C−1, porque mdc(det(C), 13) = 1.

Page 31: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Criptografia RSA 26

Consequentemente, de P = A−1 · C, podemos determinar A−1.

A−1 = P · C−1 =

(6 88 4

)(9 010 2

)−1

Sabemos que det(C) = 18, logo temos que determinar 18−1. Observe que 18 ·8−1 = 13 ·11 ⇒18−1 = 8. Portanto:

A−1 =

(6 88 4

)(8 · 2 −8 · 0−8 · 10 8 · 9

)≡

(2 43 2

)mod 13.

Como as entradas de A−1 sao inteiros mod 26 e como reduzimos suas entradas para(2 43 2

)modulo 13, segue que existem duas possibilidades para cada entrada na matriz A−1,

vejamos porque. Mais precisamente, A−1 =

(2 43 2

)+13A1, onde A1 ∈ M 2(Z/2Z) e a matriz

2×2 de zeros e uns, que trazem 24 = 16 possibilidades. Contudo, em primeiro lugar, como A−1

e inversıvel, o determinante dela deve ser primo. Em segundo lugar, quando substituirmosA−1 na equacao A−1 · C = P , deveremos satisfaze-la. Assim restam duas possibilidades para

A1: A1 =

(1 01 1

)ou

(1 11 1

), isto e , A−1 =

(15 1714 15

)ou A−1 =

(15 1716 15

). Tentando

decodificar com a primeira matriz (P = A−1 · C) temos:

C = “WKNCCHSSJH” =

(22 13 2 18 910 2 7 18 7

)

Entao,

P =

(15 1416 15

)(22 13 2 18 910 2 7 18 7

)≡

(6 21 6 4 78 4 7 12 15

)

= “GIV EGHEMP ′′.

Esta mensagem P nao e legıvel. Decodificando com a segunda matriz, temos:

P =

(15 1716 15

)(22 13 2 18 910 2 7 18 7

)≡

(6 21 19 4 208 4 7 12 15

)

= “GIV ETHEMUP ′′.

Portanto, a mensagem P esta legıvel e correta.

¤

2.5 Criptografia RSA

2.5.1 Uma nocao de Criptografia de chave publica

Nos criptosistemas estudados ate agora, para codificar determinadas mensagens utilizavamosdois tipos de transformacoes: a transformacao linear e a transformacao afim . Em ambos

Page 32: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Criptografia RSA 27

os casos, precisavamos de um modulo para codificar a mensagem e outro para decodifica-la,sendo que um poderia ser determinado a partir do outro, distinguindo-se apenas pelas chavescodificadora e decodificadora utilizadas.

Por exemplo, no caso da transformacao afim para a codificacao, utilizavamos a funcao:C = aP + b mod N , onde o par (a, b) era chamado chave codificadora , denotada por Kc. Noprocesso decodificador, por sua vez, utilizavamos o mesmo algoritmo: P = a−1C − a−1b modN , sendo (a−1,−a−1b) a chave decodificadora, denotada por Kd.

A utilizacao deste tipo de criptosistema nao se mostra muito vantajosa, tendo em vistaser relativamente facil determinar o modulo e a chave decodificadora a partir do modulo decodificacao. Assim, trata-se de um criptosistema em que para dificultar a quebra de codigo,mantendo o metodo mais seguro, dever-se-ia aumentar o tamanho da unidade de mensagemdo texto original e do texto codificado. Entretanto, isto provocaria um aumento do tempopara realizacao de operacoes aritmeticas no processo de codificacao, principalmente no quediz respeito ao calculo do elemento inverso, a−1. O criptosistema de chave publica surgiucomo forma de solucionar este problema.

Definicao de um criptosistema de chave publica

O criptosistema de chave publica tem como caracterıstica fundamental, e o que o distingue dosdemais criptosistemas aqui estudados, o fato de que o conhecimento do processo codificadornao permite a determinacao do processo decodificador, sem um tempo exaustivo de calculos.Assim, a funcao bijetiva f — que nos fornece a unidade de mensagem do texto codificadocorrespondente a cada unidade de mensagem do texto original — e conhecida como unıvocapois, do ponto de vista pratico, ela nao e inversıvel.

Alem disso, a razao do nome deste tipo de criptosistema, chave publica, baseia-se no fatode que cada usuario do metodo tem sua chave codificadora tornada publica, ou seja, qualquerpessoa fica sabendo como mandar uma mensagem para um determinado banco ou empresase as chaves , Kc, codificadoras de cada um destes destinatarios sao conhecidas. Como cadadestinatario contem sua propria chave decodificadora, Kd, a qual e mantida secreta, ele serao unico capaz de ler a mensagem.

Autenticacao

Uma das partes mais importantes de uma mensagem e a assinatura. A assinatura pessoale difıcil de ser duplicada, e isso leva o receptor a ter certeza de que a mensagem e de fatoda pessoa que o nome consta assinado. Se a mensagem e particularmente importante, deve-se usar metodos adicionais para autenticar a comunicacao. E numa comunicacao eletronica, onde nao ha assinatura fısica, deve-se buscar outros metodos. Por exemplo, quando umexecutivo de uma corporacao quer sacar dinheiro de sua conta pelo telefone, ele e submetidoa um questionario, com intuito de obter informacoes pessoais — nome da mae, por exemplo— que tanto o executivo quanto o Banco identificam — atraves dos dados fornecidos quandoa conta foi aberta — no entanto, um impostor, no caso, nao saberia de tais dados.

Na Criptografia de chave publica existe uma maneira facil de se identificar de tal formaque ninguem passar por voce. Sejam A (Aline) e B (Beto) dois usuarios do sistema. Seja fA a

Page 33: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Criptografia RSA 28

transformacao decodificadora com a qual qualquer usuario do sistema pode enviar mensagenspara Aline, e seja fB a trasformacao analoga para Beto. Por simplicidade, assumiremosque o conjunto P de todas as unidades de mensagens de texto original e o conjunto C detodas as unidades de mensagens do texto codificado sao iguais e os mesmos para todos osusuarios. Seja P a “assinatura” de Aline. Nao seria suficiente que Aline enviasse para Betoa mensagem codificada fB(P ), tendo em vista que todo mundo e capaz de fazer isso e assimnao seria possıvel saber se a mensagem foi ou nao forjada. Ao inves disso, no inıcio ou final damensagem Aline deve transmitir fBf−1

A (P ). Entao, Beto ao decodificar, incluindo esta parte,obtera o texto original exceto por um pequeno pedaco que corresponde a f−1

A (P ). como Betosabe que a mensagem e supostamente de Aline ele aplica fA (o qual e publico) e obtem P .Como apenas Aline poderia ter aplicado a funcao f−1

A , ele sabe que a mensagem foi de fatoenviado por Aline.

Na pratica, os sistemas de codificacao de chave publica tendem a ser mais lentos doque implementar sistemas classicos que estao atualmente em uso. O numero de unidades demensagens legıveis que podem ser transmitidas por segundo e menor. Por esta razao, sistemasde codificacao de chave publica nao foram disseminados em termos de mercado. Entretanto,se uma rede de usuarios sente que o sistema tradicional e limitado, entao eles devem usar umsistema de Criptografia de Chave Publica para auxiliar a capacidade de enviar uns aos outrossuas chaves K = (Kc, Kd) do sistema classico.

Portanto, as regras basicas para o sistema classico podem ser aceitas para sobrepor ooutro sistema, e as chaves podem ser periodicamente trocadas usando o lento sistema deCriptografia de Chave Publica, enquanto um grande volume de mensagens possa ser mandadorapido, usando metodos antigos.

2.5.2 O Sistema RSA

De acordo com o que foi descrito anteriormente, cada usuario deste criptosistema possui suapropria chave codificadora e decodificadora, sendo que a primeira e conhecida publicamenteenquanto a outra e mantida secreta, de forma a manter a seguranca do metodo. Nossoproximo passo consiste em descrever como determinar os modulos e as chaves, tendo comobase a grande dificuldade que existe no processo de fatoracao de grandes numeros inteiros.

Descricao do metodo

Para codificar uma mensagem usando RSA e suficiente conhecer o produto n de dois numerosinteiros primos muito grandes e escolhidos aleatoriamente, os quais denotaremos por p eq. Enquanto isso, para decodificar uma mensagem precisamos conhecer cada primo p eq separadamente. Assim, mesmo que n seja conhecido publicamente, para decodificarprecisamos fatora-lo. Considerando que n e relativamente grande, sua fatoracao nao e umtrabalho simples, o que garante a dificuldade na quebra do codigo.

a) Construcao do criptosistema

Para construir um criptosistema RSA, um usuario deve seguir os seguintes passos:

Page 34: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Criptografia RSA 29

1. escolher aleatoriamente dois primos grandes p e q;

2. calcular ϕ(n) = (p− 1) · (q − 1) (quando p e q sao conhecidos, fica facil calcularϕ(n), no entanto, o inverso nao e verdadeiro);

3. escolher um numero inteiro e entre 1 e ϕ(n) tal que mdc(e, ϕ(n)

)= 1 e estabelecer

a chave codificadora:Kc = (n, e);

4. calcular o inverso multiplicativo de e modulo ϕ(n):

d = e−1 mod ϕ(n);

e estabelecer a chave decodificadora Kd = (n, d).

b) modulos para codificacao e decodificacao:

Apos um usuario A determinar sua chave codificadora Kc = (n, e), ela e tornada publicae qualquer outro usuario B podera enviar mensagens para A utilizando o modulo:

(2.15) C = f(P ) = P e mod n

o que corresponde a transformacao de codificacao, uma funcao bijetiva de Z/NZ nelemesmo.

Exemplo. Suponha que um determinado usuario escolha aleatoriamente os primos p = 5 eq = 7, entao n = p · q = 35 e ϕ(n) = (p − 1) · (q − 1) = 24. Alem disso, podemos escolhere como sendo 7

(mdc(7, 24) = 1

). Logo, se desejarmos codificar uma unidade de mensagem

cujo equivalente numerico e 52, utilizamos a funcao (2.15):

C ≡ (52)7 mod 35 ≡ 3 mod 35.

Portanto a unidade de mensagem do texto original com equivalente numerico 52 correspondea unidade de mensagem do texto codificado com equivalente numerico 3.

Para se decodificar e necessario conhecer a chave de decodificacao Kd = (n, d), onde d eo inverso multiplicativo de e modulo ϕ(n), ou seja,

(2.16) d = e−1 mod ϕ(n),

o que esclarece a condicao de que e e ϕ(n) devam ser primos, caso contrario, nao seriapossıvel determinar d. Apos determinar o valor de d, utilizamos o modulo:

(2.17) P = Cd mod n = f−1(C)

chamado de transformacao decodificadora.

Page 35: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Criptografia RSA 30

E facil verificar que as funcoes (2.15) e (2.17) sao inversas uma da outra, devido a nossaescolha de d. De (2.15), obtemos que:

P e ≡ C mod n ⇒ P ≡ Ce−1

mod n

como e−1 mod ϕ(n) = d , entao

P ≡ Cd mod n ⇒ f−1(C) = P ≡ Cd mod n

Exemplo. Suponha agora que se conheca a chave de codificacao, Kc = (n, e) = (33, 7), eque voce deseja decodificar a unidade de mensagem do texto com equivalente numerico 15.Para resolver este problema, devemos determinar a chave decodificadora: Kd = (n, d). Sendod ≡ e−1 mod ϕ(n), devemos fatorar n em um produto de dois numeros primos, a saber:

n = 33 = 3 · 11,

logo, ϕ(n) = 20 e d ≡ 7−1 mod 20 ≡ 3 mod 20. Assim, Kd = (n, d) = (33, 3). Agorautilizamos a funcao (2.17): P ≡ (15)3 mod 33 ≡ 9 mod 33. Portanto 9 e a decodificacao de15.

Observacoes.

a) Para ilustrar o criptosistema RSA, utilizamos valores pequenos para p e q de forma afacilitar nossos calculos e esclarecer como o metodo deve ser aplicado. Mas na pratica,p e q sao primos muito grandes, com mais de 100 dıgitos e, portanto, os calculos devemser feitos utilizando-se um computador, principalmente no que diz respeito a fatoracaode n.

b) Na escolha de p e q, o usuario A deve verificar se algumas condicoes sao satisfeitas.Dentre elas, devemos nos certificar que os dois primos nao sejam valores muito proximos,e que p− 1 e q − 1 nao tenham um mdc muito pequeno mas que ambos tenham umfator primo relativamente grande.

c) Conforme foi visto anteriormente, quando N e o produto de dois primos p e q, conhecerϕ(n) e equivalente a conhecer a fatoracao. Suponha agora que conseguimos quebrar umsistema RSA ao determinar um inteiro positivo d tal que aed ≡ a mod n para todo aprimo com n. Isto e equivalente a ed − 1 ser um multiplo do mmc de p − 1 e q − 1.Conhecer m = ed− 1 na verdade e mais fraco do que conhecer ϕ(n). No entanto, agoraapresentaremos um procedimento que nos permite usar o inteiro m para fatorar n.

Suponha que n seja conhecido, assim como um inteiro n tal que am ≡ 1 mod n, paratodo a primo com n. Observe que tal inteiro m deve ser par. Primeiramente verifi-camos se m

2possui a mesma propriedade e, neste caso, podemos substituir m por m

2.Se

am/2 6≡ 1 mod n para todo a primo com n, entao devemos ter am/2 6≡ 1 mod n para pelomenos 50 % dos a’s em (Z/NZ)∗. Assim, se testarmos inumeros a’s escolhidos aleato-riamente e encontrarmos que em todos os casos temos am/2 ≡ 1 mod n, entao temosalta probabilidade de ter tal congruencia para todo a primo com n, e assim poderemossubstitui m por m

2. Realizamos este processo ate que nao tenhamos tal congruencia

quando tomarmos metade do expoente. agora existem duas possibilidades:

Page 36: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 2. Criptografia RSA 31

1. m/2 e multiplo de um dos dois numeros p−1 ou q−1 , mas nao de ambos. Nestecaso, sempre teremos am/2 ≡ 1 mod p acontece, mas em exatamente 50 % dasvezes am/2 e congruente a −1 ao inves de ser congruente a +1 modulo q.

2. m/2 nao e um multilplo de p − 1 nem de q − 1. Neste caso temos que am/2 ≡ 1tanto modulo p quanto modulo q (e consequentemente modulo n) em exatamente25 % das vezes,teremos am/2 ≡ −1 modulo p e q em exatamente 25 % das vezes,e para os 50 % restantes dos valores de a , am/2 ≡ 1 modulo um dos primos eam/2 ≡ −1 modulo o outro primo.

Entao, por tentativas aleatorias, teremos alta probabilidade de brevemente encontrarum a tal que am/2 − 1 e divisıvel por um dos dois primos mas nao pelo outro. Umavez que encontramos tal a podemos imediatamente fatorar n, pois mdc(n, am/2) = p.O exemplo acima e um exemplo de algoritmo probabilıstico.

d) Como enviar uma assinatura em RSA? Quando discutimos autenticacao assumimos porsimplicidade que P = C. Apresentaremos agora uma maneira de evitar o problema determos diferentes nA e o problema de termos o numero de letras na unidade de mensagemdo texto original diferente do numero de letras na unidade do texto codificado. Suponhaque ALine esta enviando sua assinatura para Beto. Ela conhece a chave codificadorade Beto Kc,B = (nB, eB) e a sua propria chave decodificadora. O que ela faz e enviarfBf−1

A (P ) se nA 6 nB , ou entao f−1A fB(P ) se nA > nB. Isto e, no primeiro caso ela toma

o menor resto positivo de P dA modulo nA; e entao considerando este numero modulonb, ela calcula (P dA mod nA)eB mod nB, o qual manda como unidade de mensagemdo texto codificado. Ja no caso nA > nB, primeiramente calcula-se P eB mod nB eentao, trabalhando modulo nA eleva-se a potencia dA. Claramente Beto pode verificara autenticidade da mensagem no primeiro caso elevando a potencia dB modulo nB eelevando o resultado obtido a potencia eA modulo nA; no segundo caso ele realiza asmesmas duas operacoes, mas na ordem inversa.

Page 37: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 3

Topicos de Algebra

3.1 Extensoes de Corpos

Seja F um corpo. Um subconjunto K de F que e tambem um corpo com as operacoes de Fe chamado um subcorpo de F. Neste contexto, F e chamado uma extensao de K. Se K 6= F,dizemos que K e um subcorpo proprio de F.

Se K e um subcorpo de um corpo finito Fp, p primo, entao K precisa conter os elementos0 e 1, e tambem todos os outros elementos de Fp, porque K e fechado para a operacao deadicao. Segue que Fp nao contem subcorpos proprios. Agora iremos prosseguir para a seguintedefinicao.

Definicao 3.1. Um corpo que nao contem subcorpos proprios e chamado um corpo primo.

Pelo argumento acima, qualquer corpo finito de ordem p, p primo, e um corpo primo.Outro exemplo de um corpo primo e o corpo Q dos numeros racionais.

A intersecao de qualquer colecao de subcorpos nao vazios de um dado corpo F e tambemum subcorpo de F. Se tomarmos a intersecao de todos os subcorpos de F, obtemos o subcorpoprimo de F, que e obviamente um corpo primo.

Teorema 3.2. O subcorpo primo de um corpo F e isomorfo a Fp ou a Q, conforme a carac-terıstica de F ser um primo p ou 0.

Definicao 3.3. Seja K um subcorpo de um corpo F e M um subconjunto qualquer de F.Entao definimos corpo K(M) como a intersecao de todos os subcorpos de F que contem K eM. Para um conjunto M finito, M = {θ1, · · · , θn} nos escrevemos K(M) = K(θ1, · · · , θn).Se M consistir de um unico elemento θ ∈ F, entao L = K(θ) e chamada extensao simplesde K e θ e chamado de elemento definidor de L sobre K.

Obviamente, K(M) e o menor subcorpo de F contendo K e M. Agora nos definiremos umimportante tipo de extensao.

Definicao 3.4. Seja K um subcorpo de F e θ ∈ F. Se θ satisfaz uma equacao polinomialnao trivial com coeficientes em K, ou seja, se anθ

n + · · · + a1θ + a0 = 0 com ai ∈ K nemtodos sendo 0, entao θ e chamado de algebrico sobre K. Uma extensao L de K e chamadaalgebrica sobre K (ou uma extensao algebrica de K) se todo elemento de L e algebricosobre K.

Teorema 3.5. F [x] e um domınio de ideais principais. Entao, para todo ideal J 6= (0) deF [x] existe um polinomio monico unicamente determinado g ∈ F [x] com J = (g).

Demonstracao. Suponhamos que J 6= (0) seja um ideal de F [x]. Sejam h(x) um polinomionao nulo de menor grau contido em J e b o coeficiente lıder de h(x). Definindo g(x) = b−1h(x),temos que g ∈ J e g e monico. Se f ∈ J e arbitrario, o Algoritmo da Divisao encontra q, r ∈

Page 38: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 3. Extensoes de Corpos 33

F [x] com f = qg + r e grau(r) < grau(g) = grau(h). Ja que J e um ideal, f − qg = r ∈ J, epela definicao de h temos que r = 0. Alem disso, f e multiplo de g, e daı J = (g). Se g1 ∈ F [x]e outro polinomio monico com J = (g1), entao g = c1g1 e g1 = c2g com c1, c2 ∈ F [x]. Istoimplica em g = c1c2g, disto c1c2 = 1 e c1 e c2 sao polinomios constantes. Ja que ambos g e g1

sao monicos, segue que g = g1, e a unicidade de g fica estabelecida.

¥

Supondo que θ ∈ F seja algebrico sobre K, considere o conjunto J = {f ∈ K[x]∣∣

f(θ) = 0}. E facil notar que J e um ideal de K[x], e nos temos que J 6= (0) ja que θ ealgebrico sobre K. Segue entao do Teorema 3.5 que existe um polinomio monico unicamentedeterminado g ∈ K[x] tal que J e igual ao ideal principal (g). E importante mencionar que ge irredutıvel em K[x]. Ja que, em primeiro lugar, g e de grau positivo visto que tem θ comouma de suas raızes; e se g = h1h2 ∈ K[x] com 1 6 grau(hi) < grau(g)(i = 1, 2), entao0 = g(θ) = h1(θ) h2(θ), o que implica em h1 ou h2 estar em J e ser divisıvel por g, o que eimpossıvel.

Definicao 3.6. Se θ ∈ F e algebrico sobre K, entao o polinomio monico unicamente determi-nado g ∈ K[x] que gera o ideal J = {f ∈ K[x]

∣∣ f(θ) = 0} de K[x] e chamado de polinomiominimal (ou polinomio definidor, ou polinomio irredutıvel) de θ sobre K. O grau deg sera chamado de grau de θ sobre K.

Teorema 3.7. Se θ ∈ F e algebrico sobre K, entao o polinomio minimal g sobre K tem asseguintes propriedades:

i) g e irredutıvel em K[x];

ii) Para f ∈ K[x] temos que f(θ) = 0 se, e somente se, g divide f ;

iii) g e o polinomio monico em K[x] de menor grau tendo θ como uma raiz.

Demonstracao. A propriedade (i) ja foi mencionada e (ii) segue da definicao de g. Ja em(iii) e suficiente notarmos que qualquer polinomio monico em K[x] tendo θ como uma raizdeve ser um multiplo de g, assim ou e igual a g ou seu grau e maior do que o grau de g.

¥

Note que, tanto o polinomio minimal quanto o grau do elemento algebrico θ, dependemdo corpo K que estamos considerando, isto e, a menos que esteja implıcito pelo contexto,jamais devemos ser descuidados a ponto de falarmos de polinomio minimal ou de grau de θsem especificarmos o corpo K.

Se L e uma extensao de K, entao L pode ser visto como um espaco vetorial sobre K, poisos elementos de L ( = “vetores”) formam, antes de tudo, um grupo abeliano com respeito aoperacao de adicao. Alem disso, todo “vetor” α ∈ L pode ser multiplicado por um “escalar”r ∈ K que o produto r α ainda continua em L e as leis para a multiplicacao por escalares saosatisfeitas: r(α + β) = rα + rβ, (r + s)α = rα + sα, (r s)α = r(sα), e 1α = α, onde r, s ∈ Ke α, β ∈ L.

Page 39: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 3. Extensoes de Corpos 34

Definicao 3.8. Seja L uma extensao de K. Se L, considerado como um espaco vetorialsobre o espaco K, e de dimensao finita, entao L e chamado uma extensao finita de K. Adimensao do espaco vetorial L sobre K e entao chamado de grau de L sobre K, em sımbolo[L : K].

Teorema 3.9. Se L e uma extensao finita de K e M e uma extensao finita de L, entao Me uma extensao finita de K com:

[M : K] = [M : L] · [L : K]

Demonstracao. Sejam m = [M : L], n = [L : K], {α1, α2, · · · , αm} a base de M sobreL e {β1, β2, · · · , βm} a base de L sobre K. Entao todo α ∈ M e uma combinacao linear doselementos da base de M sobre L, isto e,

α = δ1α1 + δ2α2 + · · ·+ δmαm =m∑

i=1

δiαi,

com os elementos δi ∈ L, 1 6 i 6 m.Mas cada δi, com i = 1, 2, · · · ,m, e um vetor do espaco vetorial L sobre K, portanto, cada

δi, 1 6 i 6 m, em L e uma combinacao linear dos elementos da base de L sobre K, ou seja,

δi = ai1β1 + ai2β2 + · · ·+ ainβn =n∑

j=1

aijβj,

para alguns aij ∈ K, 1 6 j 6 n. Logo,

α =m∑

i=1

δiαi =m∑

i=1

(n∑

j=1

aijβj

)αi =

m∑i=1

n∑j=1

aijβjαi.

Mostramos que ∀α ∈ M , α e combinacao linear dos elementos das bases de M sobre Le de L sobre K. Falta mostrar agora que os elementos βjαi, 1 6 i 6 m, 1 6 j 6 n, saolinearmente independentes sobre K o que finaliza a demonstracao do teorema. Isto e, bastamostrar que os mn elementos βjαi, 1 6 i 6 m, 1 6 j 6 n, sao L.I. sobre K.

Suponhamos que temos sij ∈ K tal que

m∑i=1

n∑j=1

sijβjαi = 0.

Queremos mostrar que sij = 0 para todos 1 6 i 6 m e 1 6 j 6 n.Temos

0 =m∑

i=1

n∑j=1

sijβjαi =m∑

i=1

(n∑

j=1

sijβj

)αi.

Como os {αi}16i6m sao linearmente independentes (pois formam uma base de M sobre L),temos que

∑mj=1 βjαij = 0, mas desta vez os {βi}16j6n e que sao L.I. por serem elementos da

base de L sobre K, logo sij = 0, para todos os 1 6 i 6 m e 1 6 j 6 n.

Page 40: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 3. Extensoes de Corpos 35

Portanto, {βjαi} sao L.I., com 1 6 i 6 m e 1 6 j 6 n. Assim formam uma base de Msobre K.

¥

Teorema 3.10. Toda extensao finita de K e algebrica sobre K.

Demonstracao. Seja L uma extensao finita de K e consideremos [L : K] = m.Para ϑ ∈ L, os m + 1 elementos 1, ϑ, ϑ2, · · · , ϑm devem ser linearmente dependentes sobre

K, logo existe uma combinacao a0+a1ϑ+a2ϑ2+· · ·+amϑm = 0, com ai ∈ K, nao todos nulos,

com i = 0, 1, · · · ,m. Entao ϑ satisfaz alguma equacao polinomial nao trivial com coeficientesem K, isto e, existe um polinomio em K[X], com coeficientes nao nulos, a0+a1X+· · ·+amXm

tal quea0 + a1ϑ + a2ϑ

2 + · · ·+ amϑm = 0,

ou seja, ϑ e raiz deste polinomio. Portanto ϑ e algebrico sobre K.Como ϑ e um elemento qualquer de L, temos que todo elemento de L e algebrico sobre L,

logo L e uma extensao algebrica de K.

¥

Uma consequencia imediata deste teorema esta a seguir:Sejam F uma extensao de K e ϑ ∈ F algebrico sobre K. Considere uma extensao simples

K(ϑ) de K, obtida pela adicao de um elemento algebrico. Temos que K(ϑ) e uma extensaofinita de K e portanto K(ϑ) e algebrica sobre K.

Teorema 3.11. Seja ϑ ∈ F algebrico de grau n sobre K e seja g o polinomio minimal de ϑsobre K. Entao :

i) K(ϑ) e isomorfo a K[X]/(g);

ii) [K(ϑ) : K] = n e {1, ϑ, ϑ2, · · · , ϑn−1} e uma base de K(ϑ) sobre K;

iii) Todo α ∈ K(ϑ) e algebrico sobre K e seu grau sobre K e um divisor de n.

Teorema 3.12. Seja f ∈ K[x] um polinomio irredutıvel sobre um corpo K. Entao existeuma extensao algebrica simples de K que contem uma raiz de f .

Demonstracao. Considere o anel das classes residuais

L = K[x]/(f).

Como f e inrredutıvel sobre K segue que L e um corpo. Sabemos que os elementos de L saoas classes residuais

[h] = h + (f), onde h ∈ K[x].

Dessa forma para todo a ∈ K nos podemos formar a classe residual [a] determinada pelaconstante polinomial a, e se a, b ∈ K sao elementos distintos, entao [a] 6= [b] desde que ftenha grau positivo. Considere agora a aplicacao

a 7→ [a],

Page 41: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 3. Extensoes de Corpos 36

um isomorfismo de K no subcorpo K′de L. Portanto K

′pode ser identificado com K. Em

outras palavras, nos podemos ver L como um extensao de K. Logo, para todo polinomio

h(x) = a0 + a1x + · · ·+ amxm ∈ K[x]

se considerarmos as regras de operacao com classes residuais e a identificacao [ai] = ai, teremos

[h] = [a0 + a1x + · · ·+ amxm] = [a0] + [a1][x] + · · ·+ [am][x]m

= a0 + a1[x] + · · ·+ am[x]m.

Sendo assim, qualquer elemento de L pode ser escrito como uma expressao polinomial em[x] com coeficientes em K. Ja que qualquer corpo que contenha ao mesmo tempo K e [x]necessariamente deve conter essas expressoes polinomiais, entao L e um extensao simples deK obtida por [x]. Agora, se f(x) = b0 + b1x + · · ·+ bnxn, entao:

f([x]) = b0 + b1[x] + · · ·+ bn[x]n = [b0 + b1x + · · ·+ bnxn] = [f ] = [0].

Portanto [x] e uma raiz de f e L e uma extensao algebrica simples de K.

¥

Exemplo. Considere o corpo primo F3 e o polinomio

f(x) = x2 + x + 2 ∈ F3[x],

que e irredutıvel sobre F3. Seja θ uma raiz de f , isto e, θ e a classe residual x + (f) ∈ L =F3[x]/(f). A outra raiz de f em L e entao 2θ + 2, pois:

f(2θ + 2) = (2θ + 2)2 + (2θ + 2) + 2 = θ2 + θ + 2 = 0.

Portanto, pelo Teorema 3.11 (ii), ou pelo que ja sabemos sobre a estrutura de um corpo declasses residuais, a extensao algebrica simples L = F3(θ) consiste de nove elementos, a saber:

0, 1, 2, θ, θ + 1, θ + 2, 2θ, 2θ + 1, 2θ + 2.

Teorema 3.13. Sejam α e β duas raızes de um polinomio f ∈ K[x], irredutıvel sobre K.Entao K(α) e K(β) sao isomorfos sobre uma aplicacao que leva α em β e mantem os ele-mentos de K fixos.

Definicao 3.14. Seja f ∈ K[x] um polinomio de grau positivo e F uma extensao de K. Entaodizemos que f e fatoravel em F se, e somente se, f pode ser escrito como um produto defatores lineares de F[x], isto e, se existem elementos α1, α2, · · · , αn ∈ F tais que

f(x) = a(x− α1)(x− α2) · · · (x− αn),

Onde a e o coeficiente dominante de f . Dizemos tambem que F e o corpo de decomposicaode f sobre K se f e fatoravel em F e F = K(α1, α2, · · · , αn).

Teorema 3.15. (Existencia e unicidade do corpo de decomposicao). Se K e umcorpo e f ∈ K[x] e um polinomio qualquer de grau positivo, entao existe um corpo de decom-posicao de f sobre K. Dois corpos de decomposicao quaisquer de f sobre K sao isomorfossobre um isomorfismo que mantem os elementos de K fixos e leva as raızes umas nas outras.

Page 42: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 3. Corpos Finitos 37

3.2 Corpos Finitos

Lema 3.16. Suponha F um corpo finito que contem um subcorpo K com q elementos. EntaoF tem qm elementos, onde [F : K] = m.

Demonstracao. F e um espaco vetorial sobre o corpo K e, como F e finito, ele e dimen-sionalmente finito como um espaco vetorial sobre K. Se [F : K] = m, entao F possui uma basesobre K contendo m elementos, digamos {b1, b2, · · · , bm}. Logo todo elemento b ∈ F podeser representado por b = a1b1 + a2b2 + · · · + ambm, com b ∈ F e ai ∈ F, onde i = 1, 2, · · · ,mde forma unica, ou seja, qualquer elemento no espaco vetorial F pode ser escrito como com-binacao linear dos elementos da base com coeficientes em K, como cada ındice i pode ter qvalores, pois K tem q elementos e podemos fazer uma combinacao desses q elementos, F temexatamente qm elementos.

¥

Teorema 3.17. Seja F um corpo finito. Entao F possui pn elementos onde o primo p e acaracterıstica de F e n e o grau de F sobre seu subcorpo primo.

Demonstracao. Como F e finito, sua caracterıstica e um primo p. Entretanto, o subcorpoprimo K de F e isomorfo a Fp, portanto K possui o mesmo numero de elementos de Fp que ep. Se K tem p elementos e [F : K] = n entao F tem pn elementos, pois F e um espaco vetorialsobre o subcorpo primo K, e todo elemento b ∈ F, pode ser escrito como combinacao lineardos elementos da base {b1, b2, · · · , bn}, ou seja, b = a1b1 + a2b2 + · · ·+ anbn, onde ai ∈ K.

Como K tem p elementos, pois K e isomorfo a Fp, entao cada ai podera assumir p valoresdistintos.

Com isso temos que todo corpo finito tem como caracterıstica um numero primo p e osubcorpo primo desse corpo finito e isomorfo a Fp = Z/〈p〉, consequentemente tal subcorpoprimo tem p elementos.

¥

Lema 3.18. Se F e um corpo finito com q elementos, entao todo a ∈ F satisfaz aq = a.

Demonstracao. A igualdade aq = a e obtida para a = 0. Por outro lado, os elementos naonulos de F formam um grupo multiplicativo de ordem q − 1. Logo aq−1 = 1 para todo a ∈ Fcom a 6= 0, multiplicando por a nos dois lados da igualdade temos, (aq−1)a = a ⇔ aq = a.

¥

Lema 3.19. Se F e um corpo finito com q elementos e K e um subcorpo de F, entao opolinomio f = Xq −X ∈ K[X] e fatorado em K[X] como,

Xq −X =∏

a∈F(X − a),

e F e chamado de corpo de decomposicao de Xq −X sobre K.

Observacao. O polinomio Xq − X tem grau igual ao numero de elementos do corpo F,portanto pode ser decomposto em F pois aq = a, para todo a ∈ F.

Page 43: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 3. Corpos Finitos 38

Demonstracao. O polinomio Xq − X de grau q tem, no maximo q raızes em F, pois sef se fatora em F, entao este possui as raızes em F, ja que f =

∏a∈F(X − a), onde a ∈ F,

ou seja, as raızes de f pertencem a F. Pelo lema anterior, conhecemos q raızes de f , que saotodos os elementos de F. Logo o polinomio dado se decompoe em F da maneira indicada enao pode se decompor em um corpo menor, pois um corpo menor teria n < q elementos quee menor que o numero de raızes.

Se F e um corpo finito de q elementos e K um subcorpo de F, entao o polinomio de grauigual ao numero de elementos de F, ou seja, f = Xq − X em K[X] fatora em F[X] comoXq −X =

∏a∈F(X − a), a ∈ F, todo elemento de F satisfaz aq = a.

Logo, se a1, a2, · · · , aq sao elementos de F entao

aq1 − a1 = 0; aq

2 − a2 = 0; · · · ; aqq − aq = 0,

consequentemente todos os elementos de F sao raızes de f = Xq −X, portanto

Xq −X = (X − a1) · (X − a2) · · · (X − aq), onde ai ∈ F.

Como F tem q elementos, Xq−X tem q raızes em F e F e corpo de decomposicao de f = Xq−Xporque F possui todas as raızes de f .

¥

Teorema 3.20 (Existencia e Unicidade de Corpos Finitos). Para todo primo p e todointeiro positivo n existe um corpo finito com pn elementos. Qualquer corpo finito com q = pn

elementos e isomorfo ao corpo de decomposicao de Xq − X sobre Fp, n = [F : Fp], entao Ftem pn elementos.

Demonstracao.

(Existencia) Para q = pn considere Xq −X ∈ Fp[X] e seja F o seu corpo de decomposicaosobre Fp. Esse polinomio possui q raızes distintas em F, ja que sua derivada e qXq−1−1 = −1em Fp[X] e portanto nao pode ter nenhuma raiz comum com Xq −X.

(Unicidade) Seja S = {a ∈ F∣∣ aq − a = 0}. Queremos provar que o conjunto S que e

composto por todas as raızes do polinomio, q = pn, e isomorfo ao corpo de decomposicao Fde f sobre Fp. S e subcorpo de F, ja que:

i) S contem 1 e 0;

ii) a, b ∈ S ⇒ (a− b)q = aq − bq = a− b ⇒ a− b ∈ S;

iii) para a, b ∈ S, b 6= 0, temos (ab−1)q = aqb−q = ab−1 ⇒ ab−1 ∈ S.

Por outro lado, Xq − X deve se decompor em S, ja que S contem todos as raızes dopolinomio, logo o numero de elementos de S e igual ao numero de elementos do corpo dedecomposicao F e tais elementos sao iguais pois sao as raızes de f = Xq − X ⇒ F = S.Portanto, F = S e como S tem q elementos, F e um corpo finito.

¥

Page 44: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 3. Corpos Finitos 39

Teorema 3.21 (Criterio do subcorpo). Seja Fq um corpo finito com q = pn elementos.Entao todo subcorpo de Fq tem ordem pm, onde m e um divisor positivo de n. Reciprocamente,se m e um divisor positivo de n, entao existe exatamente um subcorpo de Fq com pm elementos.

Demonstracao. Esta claro que um subcorpo K de Fq tem ordem pm para algum inteiropositivo m 6 n. O Lema 3.16 mostra que q = pn deve ser uma potencia de pm, entao m enecessariamente um divisor de n.

Reciprocamente, se m e um divisor positivo de n, entao pm − 1 divide pn − 1, e tambemxpm−1 − 1 divide xpn−1 − 1 em Fp[x]. Consequentemente, xpm − x divide xpn − x = xq − x emFp[x]. Assim, toda raiz de xpm − x e uma raiz de xq − x que tambem pertence a Fq. Segueque Fq deve conter como um subcorpo um corpo de decomposicao de xpm − x sobre Fp, ecomo foi visto na demonstracao do Teorema 3.20 tal corpo de decomposicao tem ordem pm.Se existirem dois subcorpos distintos de ordem pm em Fq, eles conteriam juntos mais do quepm raızes de xpm − x em Fq, o que e uma contradicao.

¥

A demonstracao do Teorema 3.21 mostra que o unico subcorpo de Fpn de ordem pm, ondem e um divisor positivo de n, consiste precisamente das raızes dos polinomio xpm − x ∈ Fp[x]em Fpn .

Teorema 3.22. Para um corpo finito Fq o grupo multiplicativo F∗q de elementos nao-nulos deFq e cıclico.

Demonstracao. Devemos assumir que q > 3. Seja h = pr11 pr2

2 · · · prmm a decomposicao em

fatores primos da ordem h = q−1 do grupo F∗q. Para todo i, 1 6 i 6 m, o polinomio xh/pi−1tem no maximo h/pi raızes em Fq. Como h/pi < h, segue que existem elementos nao-nulos

em Fq que nao sao raızes deste polinomio. Seja ai um desses elementos e seja bi = ah/p

rii

i .

Temos que bp

rii

i = 1, pois a ordem de bi e um divisor de prii e, portanto, tem a forma psi

i com0 6 si 6 ri. Por outro lado,

bp

ri−1i

i = ah/pi

i 6= 1,

entao a ordem de bi e prii . Nos alegamos que o elemento b = b1b2 · · · bm tem ordem h. Supon-

hamos, por contradicao, que a ordem de b seja um divisor proprio de h e, portanto, um divisorde pelo menos um dos m inteiros h/pi, 1 6 i 6 m, digamos de h/p1. Entao nos temos

1 = bh/p1 = bh/p1

1 bh/p1

2 · · · bh/p1m .

Agora se 2 6 i 6 m, entao prii divide h/p1 e, consequentemente b

h/p1

i = 1. Logo bh/p1

1 = 1.Isto implica que a ordem de b1 deve dividir h/p1, o que e impossıvel ja que a ordem de b1 epr1

1 . Portanto, F∗q e um grupo cıclico com gerador b.

¥

Definicao 3.23. Um gerador do grupo cıclico F∗q e chamado um elemento primitivo deFq.

Page 45: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 3. Raızes de Polinomios Irredutıveis 40

Fq contem ϕ(q − 1) elementos primitivos, onde ϕ e a funcao de Euler. A existenciade elementos primitivos pode ser utilizada para mostrarmos um resultado que implica, emparticular, que todo corpo finito pode ser visto como uma simples extensao algebrica de seusubcorpo primo.

Teorema 3.24. Seja Fq um corpo finito e Fr uma extensao finita de Fq. Entao Fr e umaextensao algebrica simples de Fq e todo elemento primitivo de Fr pode servir como um elementodefinidor de Fr sobre Fq.

Demonstracao. Seja ζ um elemento primitivo de Fq. Entao claramente temos que Fq(ζ) ⊆Fr. Por outro lado, Fq(ζ) contem o zero, todas as potencias de ζ e tambem todos os elementosde Fr. Portanto Fr = Fq(ζ).

¥

Corolario 3.25. Para todo corpo finito Fq e todo inteiro positivo n existe um polinomioirredutıvel em Fq[x] de grau n.

Demonstracao. Seja Fr o corpo de extensao de Fq de ordem qn, tal que [Fr : Fq] = n.Pelo Teorema 3.24 temos que Fr = Fq(ζ) para algum ζ ∈ Fr. Entao o polinomio minimal deζ sobre Fq e um polinomio irredutıvel em Fq[x] de grau n, de acordo com os Teoremas 3.7 (i)e 3.11 (ii).

¥

3.3 Raızes de Polinomios Irredutıveis

Nesta secao coletaremos alguma informacao sobre o conjunto de raızes de um polinomioirredutıvel sobre um corpo finito.

Lema 3.26. Seja f ∈ Fq[x] um polinomio irredutıvel sobre um corpo finito Fq e seja α umaraiz de f em uma extensao de Fq. Entao para um polinomio h ∈ Fq[x] nos temos h(α) = 0se, e somente se, f divide h.

Demonstracao. Seja α o coeficiente lıder de f e seja g(x) = a−1 f(x). Entao g e umpolinomio monico irredutıvel em Fq[x] com g(α) = 0, e tambem e o polinomio minimal de αsobre Fq no sentido da Definicao 3.6. O resto segue do Teorema 3.7(ii).

¥

Lema 3.27. Seja f ∈ Fq[x] um polinomio irredutıvel sobre Fq de grau m. Entao f(x) dividexqn − x se, e somente se, m divide n.

Demonstracao. Suponha que f(x) divida xqn − x. Seja α uma raiz de f no corpo dedecomposicao de f sobre Fq. Entao αqn

= α, onde α ∈ Fqn . Segue que Fq(α) e um subcorpode Fqn . Mas ja que [Fq(α) : Fq] = m e [Fqn : Fq] = n, entao m divide n pelo Teorema 3.9

Reciprocamente, se m divide n, entao Fqm e um subcorpo de Fqn , pelo Teorema 3.21. Seα e uma raiz de f no corpo de decomposicao de f sobre Fq, entao [Fq(α) : Fq] = m, e assim

Page 46: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 3. Raızes de Polinomios Irredutıveis 41

Fq(α) = Fqm . Consequentemente, temos que α ∈ Fqn , o que implica em αqn= α e, desta

forma α e uma raiz de xqn − x ∈ Fq[x]. Entao, pelo Lema 3.26, f(x) divide xqn − x.

¥

Teorema 3.28. Se f e um polinomio irredutıvel em Fq[x] de grau m, entao f tem uma raiz αem Fqm. Alem disso, todas as raızes de f sao simples e sao dadas pelos m distintos elementosα, αq, αq2

, · · · , αqm−1de Fqm.

Demonstracao. Seja α uma raiz de f , onde α pertence ao corpo de decomposicao de fsobre Fq. Entao

[Fq(α) : Fq] = m,

o que implica que Fq(α) = Fqm , e em particular α ∈ Fqm . Agora vamos provar que se β ∈ Fqm

e uma raiz de f , entao βq tambem e. De fato, escrevendo

f(x) = amxm + · · ·+ a1x + a0

com ai ∈ Fq e 0 6 i 6 m, segue do lema 3.18 que:

f(βq) = amβqm + · · ·+ a1βq + a0 = aq

mβqm + · · ·+ aq1β

q + aq0

= (amβm + · · ·+ a1β + a0)q = f(β)q = 0.

Portanto, os elementos α, αq, αq2, · · · , αqm−1

sao raızes de f . Resta provar que esseselementos sao distintos. Suponha, por contradicao, que αqj

= αqk, para j, k ∈ Z e

0 6 j < k 6 m− 1. Segue que

αqj · αqm−k

= αqk · αqm−k ⇒ αqm−k+j

= αqm

= α.

Portanto pelo lema 3.26, f(x) divide xqm−k+j − x. Logo pelo lema 3.27, isto so e possıvel sem dividir m− k + j. Mas 0 < m− k + j < m, o que e um absurdo.

¥

Corolario 3.29. Seja f um polinomio irredutıvel em Fq[x] de grau m. Entao o corpo dedecomposicao de f sobre Fq e dado por Fqm.

Demonstracao. No Teorema 3.28 provamos que f e fatoravel em Fqm . Portanto

Fq(α, αq, αq2

, · · · , αqm−1

) = Fq(α) = Fqm ,

para uma raiz α de f em Fqm , onde a segunda identidade decorre da demonstracao do Teorema3.28.

¥

Corolario 3.30. Quaisquer dois polinomios irredutıveis em Fq[x] de mesmo grau, possuemcorpos de decoposicao isomorfos.

Definicao 3.31. Seja Fqm uma extensao de Fq e α ∈ Fqm. Entao os elementosα, αq, αq2

, · · · , αqm−1sao chamados de conjugados de α com respeito a Fq.

Page 47: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 3. Raızes de Polinomios Irredutıveis 42

Teorema 3.32. Os conjugados de α ∈ F∗q com respeito a qualquer subcorpo de Fq tem mesmaordem do grupo F∗q.

Demonstracao. Ja que F∗q e um grupo cıclico pelo Teorema 3.22, o resultado acima seguedo Teorema 3.22 e do fato de toda potencia da caracterıstica de Fq ser relativamente primocom a ordem q − 1 de F∗q.

¥

Corolario 3.33. Se α e um elemento primitivo de Fq, entao todos os seus conjugados comrespeito a qualquer subcorpo de Fq tambem sao elementos primitivos.

Teorema 3.34. Os automorfismos distintos de Fqm sobre Fq sao exatamente as funcoes

σ0, σ1, · · · , σm−1, definidas por σj(α) = αqj, para α ∈ Fqm e 0 6 j 6 m− 1.

Demonstracao. Para qualquer σj e para todo α, β ∈ Fqm , nos obviamente temos

σj(αβ) = σj(α)σj(β).

Alem disso, segue queσj(α + β) = σj(α) + σj(β).

Portanto σj e um endomorfismo de Fqm . Temos tambem que σj(α) = 0 se, e somente se,α = 0. O que mostra que σj e injetiva. Como Fqm e um conjunto finito, σj e um epimorfismoe consequentemente e um automorfismo de Fqm . Logo, pelo lema 3.18, σj(a) = a para todoa ∈ Fq e assim qualquer σj e um automorfismo de Fqm sobre Fq. As funcoes σ0, σ1, · · · , σm−1

sao distintas desde que assumam valores distintos para um elemento primitivo de Fqm .Agora suponha que σ e um automorfismo qualquer de Fqm sobre Fq. Seja β um elemento

primitivo de Fqm e f(x) = xm + am−1xm−1 + · · ·+ a0 ∈ Fq[x] seu polinomio minimal sobre Fq.

Entao

0 = σ(βm + am−1βm−1 + · · ·+ a0)

= σ(β)m + am−1σ(β)m−1 + · · ·+ a0,

o que prova que σ(β) e uma raiz de f em Fqm . Portanto, segue do Teorema 3.28 que σ(β) = βqj

para algum j, 0 6 j 6 m− 1. Finalmente sabendo que σ e um homomorfismo, resulta queσ(α) = αqj

para todo α ∈ Fqm .

¥

Page 48: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4

Teoria de Codigos Algebricos

A Teoria de Codigos Algebricos e uma das maiores aplicacoes de Corpos Finitos. Cada maissubsıdios algebricos tais como a teoria de Corpos Finitos e a Teoria de Polinomios sobreCorpos Finitos tem influenciado bastante a teoria de codigos.

Nesta discussao de Teoria de Codigos Algebricos nao incluiremos problemas de imple-mentacao ou realizacao tecnica dos codigos, nos restringiremos ao estudo das propriedadesbasicas.

Na primeira secao apresentaremos os fundamentos da Teoria de Codigos Algebricos ediscutiremos codigos lineares que sao baseados em tranformacoes lineares. Na secao seguinte,introduziremos um caso particular dos codigos lineares: os Codigos Cıclicos.

A Teoria de Codigos Algebricos vai alem da descrita neste capıtulo. Se o leitor desejaraprofunda-la, a Teoria de Corpos Finitos apresentada no capıtulo anterior fornecera a basenecessaria.

4.1 Codigos Lineares

O problema da codificacao e da decodificacao com uma transmissao segura atraves de um canalbarulhento e de grande importancia hoje. Como nao ha canal ideal, o receptor da mensagemtransmitida pode obter informacao distorcida e errar na interpretacao do sinal transmitido.O metodo para melhorar a confianca da transmissao depende da Teoria de Corpos Finitos.

A ideia basica da Teoria de Codigos Algebricos e transmitir informacoes redundantes juntocom a mensagem que se quer comunicar, isto e, extender a serie de sımbolos da mensagemem uma serie maior, de uma maneira sistematica.

Um sistema simples de comunicacao e o seguinte:

mensagemf−−−−→ mensagem

(a) codificada(c)||↓

canal de ´ 9 9 9 “barulho”transmissaoÃ

mensagemg−−−−→ mensagem

recebida decodificada(c + e) (a)

Os sımbolos da mensagem e da mensagem codificada fazem parte do mesmo corpo finito Fq.O bloco de k sımbolos de mensagem a1a2 · · · ak, ai ∈ Fq sao codificados na palavra codigo

c1c2 · · · cn, com n sımbolos cj ∈ Fq, onde n > k, atraves da funcao f : Fkq −→ Fn

q , onde n e

Page 49: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Lineares 44

k sao os comprimentos da mensagem e da palavra codificada respectivamente. f e chamadaplano codificador e g : Fn

q −→ Fkq e o plano decodificador.

Um tipo simples de plano codificador surge quando cada bloco

a1a2 · · · ak

de sımbolos de mensagem sao codificados na palavra codigo

a1a2 · · · akck+1 · · · cn,

onde os k primeiros sımbolos pertencem a mensagem original e os n−k sımbolos adicionais emFq sao sımbolos de controle. Tais planos codificadores geralmente se apresentam da seguinteforma:

Seja H uma matriz de ordem (n − k) × n, com entradas em Fq, da seguinte forma: H =(A, In−k), onde A e uma matriz de ordem (n− k)× k e In−k e a matriz identidade de ordemn− k.

(4.1) H =

(A(n−k)×k In−k

)= H(n−k)×n

Entao os sımbolos de controle ck+1, · · · , cn podem ser calculados a partir do sistema deequacoes

(4.2) Hct = 0

para palavras codigo c. As equacoes desse sistema sao chamadas de equacoes de checagem deparidade.

Exemplo. Seja H uma matriz 3× 7 sobre F2:

H =

1 0 1 1 1 0 01 1 0 1 0 1 01 1 1 0 0 0 1

n− k = 3 : numero de sımbolos de controle (=ordem da matriz identidade)n = 7 : dimensao do vetor c, do codigok = 4 : dimensao do vetor a, da mensagemComo a palavra codigo e da forma a1 · · · akck+1 · · · cn e queremos determina-la, basta achar

ck+1, · · · , cn pois os sımbolos anteriores a ck+1 sao c1 = a1, c2 = a2, · · · , ck = ak. Os sımbolosde controle podem ser determinados resolvendo Hct = 0:

1 0 1 1 1 0 01 1 0 1 0 1 01 1 1 0 0 0 1

c1

c2

c3

c4

c5

c6

c7

= 0 ⇔

c1 + c3 + c4 + c5 = 0c1 + c2 + c4 + c6 = 0c1 + c2 + c3 + c7 = 0

Page 50: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Lineares 45

c1, c2, c3 e c4 sao conhecidos, entao podemos achar c5, c6 e c7 em funcao deles. Assimtemos:

c5 = −c1 − c3 − c4, c6 = −c1 − c2 − c4, c7 = −c1 − c2 − c3.

Como estamos em F2:

c5 = c1 + c3 + c4, c6 = c1 + c2 + c4, c7 = c1 + c2 + c3

Portanto o plano codificador neste caso e uma aplicacao linear de F42 em F7

2 dada por:

(a1, a2, a3, a4) 7→ (a1, a2, a3, a4, a1 + a3 + a4, a1 + a2 + a4, a1 + a2 + a3)

Definicao 4.1. Seja H uma matriz (n−k)×k de posto n−k com entradas em Fq. O conjuntoC de todos os vetores n-dimensionais c ∈ Fn

q tais que Hct = 0 e chamado um codigo (n, k)linear sobre Fq; n e o comprimento e k a dimensao do codigo. Os elementos de C saochamados palavras codigo (ou vetores codigo), a matriz H e a matriz de checagem deparidade de C. Se q = 2, C e chamado codigo binario . Se H for da forma (A, In−k)entao C e chamado codigo sistematico.

Notamos que o conjunto C de todas as solucoes do sistema Hct = 0 de equacoes lineares eum subespaco de dimensao k do espaco vetorial Fn

q . (As solucoes de Hct = 0 sao os elementosck+1, · · · , cn que determinam um subespaco do espaco vetorial Fn

q ja que sao elementos de Fq.Alem disso, sua dimensao e k porque cada elemento ck+1, · · · cn e determinado a partir dosk anteriores, ou seja, como funcao de a1 = c1, a2 = c2, · · · , ak = ck, ou seja, eles podem serexpressos como combinacao linear desses vetores.) Quando as palavras codigo formam umgrupo aditivo, C e tambem chamado codigo de grupo. Alem disso, C pode ser consideradocomo espaco nulo da matriz H.

Exemplo. Seja q = 2 e considere a seguinte mensagem a2a2 · · · ak, entao o sistema de codifi-cacao f e definido por:

f : a1a2 · · · ak 7−→ b1b2 · · · bk+1

onde bi = ai para i = 1, 2, · · · , k e bk+1 =∑k

i=1 ai. Neste caso, a palavra codigo b1 · · · bk+1 pos-sui apenas um sımbolo de controle que pode ser determinado somando-se todos os elementosanteriores (os sımbolos de mensagem).

Segue que a soma dos dıgitos de qualquer palavra codigo b1 · · · bk+1 e zero, pois se

bk+1 = a1 + a2 + · · ·+ ak

entao

b1 + b2 + · · ·+ bk + bk+1 = a1 + a2 + · · ·+ ak + (a1 + a2 + · · ·+ ak)

= 2a1 + 2a2 + · · ·+ 2ak

= 0

pois estamos em F2.

Page 51: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Lineares 46

Se a soma dos dıgitos da palavra recebida for 1, entao o receptor sabera que um erro detransmissao deve ter ocorrido. Temos que n = k + 1, entao este codigo e um codigo (n, n− 1)binario linear, com matriz de checagem de paridade

H =(1 1 · · · 1

),

pela Equacao 4.1 (pag. 44). Como temos n− k = 1, entao

H =

(A1×(n−1) I1

)= H1×n

Exemplo (Codigo de repeticao). Em um codigo de repeticao , cada palavra codigo (vetorlinha c) consiste em apenas um sımbolo de mensagem a1 e n − 1 sımbolos de controle c2 =· · · = cn todos iguais a a1; isto e, a1 e repetido n− 1 vezes. Este e um codigo (n, k) = (n, 1)linear com matriz de checagem de paridade H = (−1, In−1), pela Equacao 4.1 (pag. 44).Como k = 1, entao:

H =

(A(n−1)×1 In−1

)= H(n−1)×n

A e uma matriz coluna com todas as entradas iguais a −1. Assim:

H =

−1 1 0 · · · 0−1 0 1 · · · 0...

......

. . ....

−1 0 0 · · · 1

,

resolvendo Hct = 0, obtemos o sistema:

H

a1

c2...cn

= 0 ⇔

−a1 + c2 = 0−a1 + c3 = 0

...−a1 + cn = 0

⇔ a1 = c2 = c3 = · · · = cn

Lema 4.2. As equacoes de checagem de paridade Hct = 0 com H = (A, In−k) implicam:

ct =

(Ik

−A

)at = [a(Ik,−At)]t,

onde a = (a1 · · · ak) e a mensagem e c = (a1 · · · akck+1 · · · cn) e a palavra codigo.

Demonstracao.

Hct = 0 ⇔

x11 x12 · · · x1k 1 0 · · · 0x21 x22 · · · x2k 0 1 · · · 0...

.... . .

......

.... . .

...x(n−k)1 x(n−k)2 · · · x(n−k)k 0 0 · · · 1

a1...

ak

ck+1...cn

= 0

Page 52: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Lineares 47

x11a1 + x12a2 + · · · + x1kak + ck+1 = 0x21a1 + x22a2 + · · · + x2kak + ck+2 = 0

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .x(n−k),1a1 + x(n−k),2a2 + · · · + x(n−k),kak + cn = 0

ck+1 = − x11a1 − x12a2 − · · · − x1kak

ck+2 = − x21a1 − x22a2 − · · · − x2kak

. . . . . . . . . . . . . . . . . . . . . . . . . .cn = − x(n−k),1a1 − x(n−k),2a2 − · · · − x(n−k),kak

ck+1

ck+2...cn

=

−x11 −x12 · · · −x1k

−x21 −x22 · · · −x2k

. . . . . . . . . . . . . . . . . . . . . . . . .−x(n−k),1 −x(n−k),2 · · · −x(n−k),k

a1

a2...

ak

Para completar o vetor c, falta c1 · · · ck. Portanto:

c1

c2...ck...cn

=

1 0 00 1 0

. . . . . . . . . . . . . . . . . .0 0 1

−x11 −x12 −x1k

−x21 −x22 −x2k

. . . . . . . . . . . . . . . . . .−x(n−k),1 −x(n−k),2 −x(n−k),k

a1

a2...

ak

=

(Ik

−A

)at =⇒ ct =

(Ik

−A

)at = Xat = (aX t)t.

Como

X =

1 0 · 00 1 · · · 0

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 0 · · · 1

−x11 −x12 · · · −x1k

−x21 −x22 · · · −x2k

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .−x(n−k),1 −x(n−k),2 · · · −x(n−k),k

, e

X t =

1 0 · · · 0 −x11 · · · −x(n−k),1

0 1 · · · 0 −x12 · · · −x(n−k),2

. . . . . . . . . . . . . . . . . . . . . . . . .0 0 · · · 1 −x1k · · · −x(n−k),k

Entao temos

ct =

(Ik

−A

)at = Xat = (aX t)t = [a(Ik,−At)]t

Page 53: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Lineares 48

¥

Definicao 4.3. A matriz k×n G = (Ik,−At) e chamada a matriz geradora canonica deum codigo (n, k) linear com matriz de checagem de paridade H = (A, In−k).

Se G = (Ik,−At) e ct = [a(Ik,−At)]t, entao ct = (aG)t = Gtat, logo:

(4.3) ct(aG) = (aG)t(aG) = I ⇒ cct(aG) = cI =⇒ c = aG

Conclusao. G e, portanto, a matriz geradora.

A partir de Hct = 0 (4.2) e c = aG (4.3), segue que H e G estao relacionados da seguinteforma:

Hct = 0 ⇒ (Hct)t = (0)t ⇒ cH t = 0 ⇒ (aG)H t = 0 ⇒ ata(GH t) = at0

=⇒ GH t = 0(4.4)

O codigo C e igual ao espaco linha da matriz geradora canonica G. De forma mais geral,qualquer matriz Gk×n cujo espaco linha seja igual a C e chamada matriz geradora de C. Umamatriz G geradora de C pode ser utilizada para codificacao, uma mensagem c e codificadapor c = aG ∈ C.

(c1c2 · · · cn) = (a1a2 · · · ak)

g11 g12 · · · g1n

g21 g22 · · · g2n

. . . . . . . . . .gk1 gk2 · · · gkn

= (a1g11 + a2g12 + · · ·+ akgk1, a1g12 + a2g22 + · · ·+ akgk2, · · · , a1g1n + a2g2n + · · ·+ akgkn)

= (a1g11 + a2g12 + · · ·+ akgk1, a1g12 + a2g22 + · · ·+ akgk2, · · · , a1g1n + a2g2n + · · ·+ akgkn)

c1

c2...cn

=

a1g11 + a2g21 + · · ·+ akgk1

a1g12 + a2g22 + · · ·+ akgk2

. . . . . . . . . . . . . . . . . . . . . .a1g1n + a2g2n + · · ·+ akgkn

Portanto

c1

c2...cn

= a1

g11

g12...

g1n

+ a2

g21

g22...

g2n

+ · · ·+ ak

gk1

gk2...

gkn

ou seja, para cada mensagem sımbolo a, teremos um vetor c correspondente, que e umacombinacao linear dos vetores linha de G.

Page 54: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Lineares 49

Exemplo. A matriz geradora canonica do codigo definido por H no Exemplo 4.1 e dada porG = (Ik,−At), isto e:

G =

1 0 0 0 −1 −1 −10 1 0 0 0 −1 −10 0 1 0 −1 0 −10 0 0 1 −1 −1 0

1 0 0 0 1 1 10 1 0 0 0 1 10 0 1 0 1 0 10 0 0 1 1 1 0

Definicao 4.4. Se c e uma palavra codigo e y e a palavra recebida apos a comunicacao porum canal barulhento entao e = y − c = e1e2 · · · en e chamada palavra erro (ou vetor erro).

Definicao 4.5. Sejam x, y dois vetores em Fnq . Entao definimos:

i) distancia de Hamming d(x, y) entre x e y e o numero de coordenadas em que xdifere de y;

ii) peso (de Hamming) w(x) do vetor x e o numero de coordenadas nao-nulas de x.

Assim d(x, y) nos da o numero de erros se x e o codigo transmitido e y e a palavra recebida.Segue que w(x) = d(x, 0) (como d(x, 0) e o numero de coordenadas em que o vetor x difere dovetor nulo, ele nos fornecera o numero de coordenadas nao-nulas de x) e d(x, y) = w(x− y).

Lema 4.6. A distancia de Hamming e uma metrica em Fnq ; isto e, para todo x, y, z ∈ Fn

q ,temos:

i) d(x, y) = 0 ⇔ x = y;

ii) d(x, y) = d(y, x);

iii) d(x, y) 6 d(x, y) + d(y, z).

Demonstracao.

i) Sejam x = (x1, x2, · · · , xn) e y = (y1, y2, · · · , yn) dois vetores em Fnq e suponha que

d(x, y) = 0. Entao x e y nao diferem em nenhuma coordenada, logo x1 = y1, x2 =y2, · · · , xn = yn. Consequentemente, x = y pois suas coordenadas sao iguais.

ii) Sejam x = (x1, · · · , xn) e y = (y1, · · · , yn) dois vetores em Fnq . Suponha que d(x, y) = k

logox1 6= y1, x2 6= y2, · · · , xk 6= yk, mas xk+1 = yk+1, · · · , xn = yn

entao d(y, x) = k ⇒ d(x, y) = d(y, x).

iii) DefinaDx,y = {i ∈ [o, n] ∈ N

∣∣ xi 6= yi}Dy,z = {i ∈ [o, n] ∈ N

∣∣ yi 6= zi}Dx,z = {i ∈ [o, n] ∈ N

∣∣ xi 6= zi}

Page 55: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Lineares 50

Assim, pela definicao de d(x, y), observamos que:

d(x, y) = #Dx,y, d(y, z) = #Dy,z e d(x, z) = #Dx,z

Observe que se A ⊂ (B ∪ C) ⇒ #A 6 #B + #C. Portanto, basta mostrarmos queDx,z ⊂ (Dx,y ∪Dy,z). Seja j ∈ Dx,z ⇒ xj 6= zj. Suponha que xj 6= yj, entao j ∈ Dx,y.Suponha que xj = yj, entao yj 6= zj e portanto j ∈ Dy,z. Logo Dx,z ⊂ (Dx,y ∪ Dy,z)⇔ d(x, z) 6 d(x, y) + d(y, z).

¥

Nas palavras da mensagem recebida y, normalmente tentamos achar a palavra codigo ctal que w(y − c) e o menor possıvel, isto e, assumimos que e mais provavel que poucos errostenham ocorrido. Assim estamos procurando uma palavra codigo c que esta mais proximade y de acordo com a distancia de Hamming. Essa regra e chamada decodificacao do vizinhomais proximo.

Definicao 4.7. Para t ∈ [0, n] ∈ N um codigo C ⊆ Fnq e chamado t-corretor de erros se,

para qualquer y ∈ Fnq , existe no maximo um c ∈ C tal que d(y, c) 6 t.

Se c ∈ C e transmitido e ocorrem no maximo t erros, entao temos d(y, c) 6 t para apalavra recebida y. Se C e um t-corretor de erros, entao para todas as outras palavras codigoz 6= c temos d(y, z) > t (ou seja, cada mensagem y recebida corresponde a uma unica palavracodigo enviada sendo o erro maximo igual a t) o que significa que c esta mais proximo de y ea decodificacao do vizinho mais proximo nos fornece o resultado correto.

Definicao 4.8. O numerodc = min

u6=vu,v∈C

d(u, v) = min06=c∈C

w(c)

e chamado distancia mınima do codigo linear C.

Teorema 4.9. Um codigo C com distancia mınima dc pode corrigir ate t erros se dc > 2t+1.

Demonstracao. Uma bola Bt(x) de raio t e centro x ∈ Fnq consiste de todos os vetores

u ∈ Fnq tal que d(x, u) 6 t. Cada palavra recebida com t ou menos erros devem estar numa

bola de raio t e centro na palavra codigo transmitida, como garante a regra de decodificacaodo vizinho mais proximo.

Para corrigir t erros, as bolas com palavras codigo x como centro nao devem se interceptar,pois se Bt(x)∩Bt(x

′) 6= ∅, entao a palavra recebida v corresponderia a duas palavras codigox e x′ enviadas, o que nao pode ocorrer, se queremos ser capazes de corrigir o erro.

Se u ∈ Bt(x) e u ∈ Bt(y), x, y ∈ C, x 6= y entao, pelo Lema 4.6 d(x, y) 6 d(x, u) + d(u, y).Como d(x, u) 6 t e d(u, y) = d(y, u) 6 t, temos que d(x, y) 6 2t. Uma contradicao dedc > 2t + 1.

¥

Page 56: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Lineares 51

Exemplo. No codigo do Exemplo 4.1 temos:

c5 = c1 + c3 + c4, c6 = c1 + c2 + c4, c7 = c1 + c2 + c3,

(a1, a2, a3, a4) 7→ (a1, a2, a3, a4, a1 + a3 + a4, a1 + a2 + a4, a1 + a2 + a3).

Pela Definicao 4.8 : dc = min06=c∈C

w(c) temos:

c = (a1, a2, a3, a4, a1 + a3 + a4, a1 + a2 + a4, a1 + a2 + a3)

Se a1 6= 0 e a2 = a3 = a4 = 0 ⇒ c = (a1, 0, 0, 0, a1, a1, a1) ⇒ w(c) = 4,

se a2 6= 0 e a1 = a3 = a4 = 0 ⇒ c = (0, a2, 0, 0, 0, a2, a2) ⇒ w(c) = 3,

se a3 6= 0 e a1 = a2 = a4 = 0 ⇒ c = (0, 0, a3, 0, a3, 0, a3) ⇒ w(c) = 3,

se a4 6= 0 e a1 = a2 = a3 = 0 ⇒ c = (0, 0, 0, a4, a4, a4, 0) ⇒ w(c) = 3.

Portanto, dc = min06=c∈C

w(c) = 3 e, pelo teorema anterior, pode corrigir t = 1 erro.

Lema 4.10. Um codigo linear C com matriz de checagem de paridade H tem distanciamınima dc > s + 1 se e somente se quaisquer s colunas de H sao linearmente independentes.

Demonstracao. Assumimos haver s colunas linearmente dependentes de H, entao

Hct = 0.

Supondo que sejam as s primeiras colunas, teremos

x11 x12 · · · x1s · · · x1k

x21 x22 · · · x2s · · · x2k

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .x(n−k),1 x(n−k),2 · · · x(n−k),s · · · x(n−k),k

c1

c2...cs

0...0

= 0

x11c1 + x12c2 + · · · + x1scs

x21c1 + x22c2 + · · · + x2scs

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .x(n−k),1c1 + x(n−k),2c2 + · · · + x(n−k),scs

= 0

⇔ c1

x11

x21...

x(n−k),1

+ · · ·+ cs

x1s

x2s...

x(n−k),s

= 0

e w(c) 6 s para um c especıfico, c ∈ C, c 6= 0, segue que dc 6 s. Reciprocamente, se quaisquers colunas de H sao linearmente independentes, entao nao ha c ∈ C, c 6= 0, de peso 6 s, segueque dc > s + 1.

¥

Page 57: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Lineares 52

Agora descreveremos um algoritmo simples para Codigos Lineares.

4.1.1 Algoritmo para Codigos Lineares.

Seja C um codigo (n, k) linear sobre Fq. O espaco vetorial Fnq /C consiste em todas as classes

laterais a + C = {a + c∣∣ c ∈ C} com a ∈ Fn

q (a ∈ Fkq , mas se adicionarmos n− k coordenadas

nulas ao vetor a, ele pertencera a Fnq ).

Cada classe lateral contem qk vetores e Fnq pode ser considerado como sendo uma particao

em classes lateras de C,

Fnq = (a(0) + C) ∪ (a(1) + C) ∪ · · · ∪ (a(s) + C),

onde a(0) = 0 e s = qn−k − 1. Assim um vetor y recebido deve estar contido em umadessas classes laterais. Seja a(i) + C a classe lateral que contem y. Se a palavra codigo c foitransmitida, entao o erro e dado por

e = y − c = a(i) + c(j) − c = a(i) + z ∈ a(i) + C,

pois z = c(j) − c ∈ C (o erro pertence a mesma classe lateral do vetor y recebido). Isto nosleva ao esquema de decodificacao seguinte:

4.1.2 Decodificacao de Codigos Lineares:

Todos os vetores erro e possıveis de um vetor recebido y sao vetores na classe lateral y, ouseja, so podemos achar os erros de y na mesma classe lateral onde se encontra y. O vetor erromais apropriado e o vetor e com peso mınimo que pertence a classe lateral do y. Portanto,decodificamos y como x = y−e, onde x e a palavra codigo enviada (pois e = y−c ⇒ c = y−e).

Definicao 4.11. Seja C ⊆ Fnq um codigo (n, k) linear e seja Fn

q /C um espaco quociente. Umelemento de peso mınimo em uma classe lateral a + C e chamado lıder da classe lateral dea + C. Se varios vetores de a + C tem o peso mınimo, escolhemos um como lıder da classelateral.

Sejam a(1), · · · , a(s) os lıderes das classes laterais diferentes de a(0) + C, onde a(0) = 0, esejam c(1) = 0, c(2), · · · , c(qk) todas as palavras codigo de C. Considere o seguinte arranjo.

(III)︷ ︸︸ ︷(I)

{a(0) + c(1) a(0) + c(2) · · · a(0) + c(qk)

a(1) + c(1) a(1) + c(2) · · · a(1) + c(qk)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

(II)

a(s) + c(1) a(s) + c(2) · · · a(s) + c(qk)

Page 58: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Lineares 53

(I): linha de palavras codigo

(II): classes laterais nao nulas

(III): coluna dos lıderes das classes laterais (c(1) = 0)

Se uma palavra y = a(i) + c(j) e recebida entao o decodificador decide que o erro e (que deverapertencer a mesma classe lateral de y) e o lıder da classe lateral correspondente a a(i). O erroe deve ser o vetor de peso mınimo da classe lateral de y. Como o vetor de peso mınimo e olıder da classe lateral, entao tal vetor sera:

a(i) + c(1) , pois c(1) = 0 ⇒ e = a(i)

Como x = y− e = a(i) + c(j)−a(i) = c(j) (palavra procurada), ou seja, a decodificacao de ye feita atraves de determinar o primeiro elemento (a(0) + c(j) = c(j)) na coluna de y. A classelateral de y pode ser determinada pelo calculo da chamada sındrome de y.

Definicao 4.12. Seja H a matriz de checagem de paridade de um codigo (n, k) linear C.Entao o vetor S(y) = Hyt de comprimento n− k e chamado sındrome.

Teorema 4.13. Para y, z ∈ Fnq temos:

i) S(y) = 0 ⇔ y ∈ C;

ii) S(y) = S(z) ⇔ y + C = z + C.

Demonstracao.

i) Sabemos que Hct = 0 correspondem as equacoes de checagem de paridade. Logo, seS(y) = Hyt = 0 ⇒ Hct = Hyt ⇒ y = c ⇒ y ∈ C.

ii) S(y) = Hyt e S(z) = Hzt,se S(y) = S(z) temos Hyt = Hzt ⇔ Hyt − Hzt = 0 ⇔H(y − z)t = 0 ⇔ y − z ∈ C ⇔ y + C = z + C.

¥

Se e = y − c, c ∈ C e y ∈ Fnq , entao

S(y) = S(c + e) = S(c) + S(e) = Hct + Het = 0 + S(e) = S(e).

Portanto, S(y) = S(e). Pelo Teorema 4.13, isso ocorre se, e somente se, y + C = e + C, ouseja, y e e pertencem a mesma classe lateral.

Page 59: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Lineares 54

4.1.3 Algoritmo do lıder da classe lateral.

Sejam C ⊆ Fnq um codigo (n, k) linear e y um vetor recebido. Para corrigir erros em y, proceda

da seguinte forma:

i) Calcule S(y), para determinar a qual classe lateral y pertence;

ii) Ache o lıder da classe lateral (aquele com menor peso), que corresponde ao vetor erroe, com sındrome igual a S(y);

iii) Decodifique y como x = y − e. Aqui x e a palavra codigo com distancia mınima de y.

Exemplo. Seja C um codigo (4, 2) binario linear com matriz geradora G e matriz de checagemde paridade H:

G =

(1 0 1 00 1 1 1

), H =

(1 1 1 00 1 0 1

)

(n, k) = (4, 2). Logo os vetores mensagem sao de duas dimensoes e as palavras codigo saovetores de quatro dimensoes.

a = (a1a2) c = (c1c2c3c4)

Sabemos que c = aG e Hct = 0. Como os elementos dos vetores pertencem a F2, os vetoresa de duas componentes correspondem a todas as combinacoes duas a duas dos elementos deF2 que sao 0 e 1.

a) vetores mensagem:a(1) a(2) a(3) a(4)

00 10 01 11b) palavras codigo

c(1) = a(1)G = (0 0)

(1 0 1 00 1 1 1

)=

(0 0 0 0

)

c(2) = a(2)G = (1 0)

(1 0 1 00 1 1 1

)=

(1 0 1 0

)

c(3) = a(3)G = (0 1)

(1 0 1 00 1 1 1

)=

(0 1 1 1

)

c(4) = a(4)G = (1 1)

(1 0 1 00 1 1 1

)=

(1 1 1 1

)

Page 60: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Lineares 55

c) classes laterais a + C, onde C = {c(1), c(2), c(3), c(4)} ⇒ qk = 22 = 4 elementos

a(1) + C :

a(1) + c(1) = c(1) = (0000)a(1) + c(2) = c(2) = (1010)a(1) + c(3) = c(3) = (0111)a(1) + c(4) = c(4) = (1101)

a(2) + C :

a(2) + c(1) = (1000) + (0000) = (1000)a(2) + c(2) = (1000) + (1010) = (0010)a(2) + c(3) = (1000) + (0111) = (1111)a(2) + c(4) = (1000) + (1101) = (0101)

a(3) + C :

a(3) + c(1) = (0100) + (0000) = (0100)a(3) + c(2) = (0100) + (1010) = (1110)a(3) + c(3) = (0100) + (0111) = (0011)a(3) + c(4) = (0100) + (1101) = (1001)

a(4) + C :

a(4) + c(1) = (1100) + (0000) = (1100)a(4) + c(2) = (1100) + (1010) = (0110)a(4) + c(3) = (1100) + (0111) = (1011)a(4) + c(4) = (1100) + (1101) = (0001)

d) calculo da sındrome de cada classe: Temos pelo Teorema 4.13 que S(y) = S(z) ⇔y + C = z + C. Logo, todos os elementos de uma mesma classe possuem a mesma sındrome.

a(1) + c(j) = c(j) : S(c(j)) =

(0

0

), pois c(j) ∈ C

a(2) + c(j) : S(a(2) + c(j)) = Hyt =

(1 1 1 00 1 0 1

)

1000

=

(1

0

)

a(3) + c(j) : S(a(3) + c(j)) = Hyt =

(1 1 1 00 1 0 1

)

0100

=

(1

1

)

a(4) + c(j) : S(a(4) + c(j)) = Hyt =

(1 1 1 00 1 0 1

)

0001

=

(0

1

)

Page 61: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Lineares 56

Com os dados calculados acima, obtemos o seguinte esquema:

(IV)︷ ︸︸ ︷ (V)︷ ︸︸ ︷(I)

{00 10 01 11

(II){

0000 1010 0111 0101

(0

0

)

1000 0010 1111 0101

(1

0

)

0100 1110 0011 1001

(1

1

)

(III)

0001 1011 0110 1100

(0

1

)

(I): mensagem original

(II): palavras codigo

(III): outras classes laterais

(IV): lıderes das classes laterais

(V): sındromes

Se y = 1110 e recebido, poderıamos olhar a qual classe lateral y pertence. Mas paraarranjos grandes, esse processo e muito demorado. Entretanto, achamos S(y) primeiro

S(y) = Hyt =

(1 1 1 00 1 0 1

)

1110

=

(1

1

)

e verificamos qual classe lateral possui sındrome(11

), que devera ser a classe que y pertence.

Entao, pegamos o erro e igual ao lıder da classe lateral que y pertence. Neste caso e = 0100,que tambem possui sındrome

(11

). Assim, a palavra codigo original sera

c = y − e = (1110)− (0100) = (1010).

Em seguida, localizamos (1010) na linha (II) de palavras codigo e entao buscamos seu corre-spondente na mensagem original, ou seja, a(2) = 10.

4.1.4 Codigos Binarios de Hamming:

Em codigos lineares mais longos e praticamente impossıvel achar lıderes das classes lateraiscom peso mınimo; por exemplo, um codigo (50, 20) linear sobre F2 (isto e, binario) tem109 classes laterais. Por isso e necessario construir codigos especiais para diminuir essasdificuldades.

Page 62: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Lineares 57

Teorema 4.14. Em um codigo (n, k) binario linear com matriz de checagem de paridade H,a sındrome de um vetor y recebido e igual a soma das colunas de H que correspondem ascoordenadas do vetor y onde os erros ocorreram.

Demonstracao. Seja y ∈ Fn2 o vetor recebido, y = x + e, x ∈ C. Entao temos: S(y) =

S(x + e) = S(x) + S(e). Como x ∈ C, pelo Teorema 4.13, teremos que S(x) = 0, assimS(y) = S(e) = Het.

Sejam i1, i2, · · · as coordenadas de y em que ocorreram erros, isto e, e =0 · · · 01i10 · · · 01i20 · · · , entao a Sındrome de y sera:

S(y) = Het = (· · ·hi1 · · ·hi2 · · · )

0...01i1

0...01i2

0...

= hi1 + hi2 + · · ·

onde hi e a i-esima coluna de H.

¥

Se todas as colunas de H sao diferentes, entao um unico erro na i-esima posicao da palavratransmitida fornece S(y) = hi, assim um erro pode ser corrigido. Para simplificar o processode localizacao do erro, a seguinte classe de codigos e usada.

Definicao 4.15. Um codigo binario Cm de comprimento n = 2m − 1, m > 2, com umamatriz de checagem de paridade H de ordem m × (2m − 1) e chamado codigo binario deHamming se as colunas de H sao as representacoes binarias dos inteiros 1, 2, · · · , 2m − 1.

Lema 4.16. Cm e um codigo 1-corretor de erro de dimensao 2m −m− 1.

Demonstracao. Por definicao da matriz de checagem de paridade H de Cm, o posto(dimensao do espaco linha) de H e m. Tambem, quaisquer duas colunas de H sao linearmenteindependentes, pois as colunas de H sao as representacoes binarias dos inteiros 1, 2, · · · , 2m−1.Pelo Lema 4.10 a distancia mınima de Cm e igual a 3, isto e, dCm > s + 1, onde s = 2, onumero de colunas linearmente independentes de H. Segue que Cm e 1-corretor de erro, poisdCm > 2t + 1 = 3 ⇒ t = 1, pelo Teorema 4.9.

Um codigo (n, k) tem comprimento n e dimensao k. Cm tem n = 2m − 1 por definicao.H e uma matriz (n − k) × n, no caso de Cm, H tem ordem (m) × (2m − 1). Assim temosn− k = m ⇒ k = n−m = 2m − 1−m.

¥

Page 63: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Cıclicos 58

Exemplo. Seja C3 um codigo (7, 4) de Hamming com matriz de checagem de paridade

H =

0 0 0 1 0 1 10 1 1 0 1 1 11 0 1 0 0 0 1

Se a sındrome da palavra recebida y e S(y) = (1 0 1)t, entao temos que um erro deve terocorrido na quinta posicao, pois 101 e a representacao binaria de 5.

Os codigos de Hamming podem tambem ser definidos em casos nao- binarios, isto e, sobreCorpos Finitos Fq arbitrarios. Neste caso, a matriz de checagem de paridade H e uma matrizm× (qm − 1)/(q− 1) que tem pares de colunas linearmente independentes. Tal matriz defineum codigo ((qm − 1)/(q − 1), (qm − 1)/(q − 1)−m) de distancia mınima 3.

4.2 Codigos Cıclicos

Codigos Cıclicos sao uma classe especial dos codigos lineares que podem ser implementadosfacilmente e cuja estrutura matematica e razoavelmente bem conhecida. Neste estudo ex-plicaremos a relacao intrınseca entre Codigos Cıclicos e classes laterais de polinomios sobreFq.

Definicao 4.17. Um codigo (n, k) linear C sobre Fq e chamado cıclico se (a0, a1, · · · , an−1) ∈C implica (an−1, a0, a1, · · · , an−2) ∈ C.

Vamos impor a restricao de que mdc(n, q) = 1 e seja (xn − 1) o ideal gerado por xn − 1 ∈Fq[x]. Entao todos os elementos de Fq[x]/(xn − 1) podem ser representados por polinomiosde graus menores que n. Observe que existe um isomorfismo entre o espaco vetorial Fn

q e oconjunto das classes de resıduo do anel Fq[x]/(xn − 1), ou seja,

(a0, a1, · · · , an−1) ↔ a0 + a1x + · · ·+ an−1xn−1.

Por causa desse isomorfismo, denotaremos os elementos de Fq[x]/(xn−1) como polinomios degrau < n modulo xn−1 ou como vetores ou palavras sobre Fq. A multiplicacao de polinomiose definida de forma usual, isto e, se f ∈ Fq[x]/(xn − 1), g1, g2 ∈ Fq[x], entao g1g2 = f ,significando que g1g2 ≡ f mod (xn − 1).

A matriz geradora G e dada por:

G =

g0 g1 g2 · · · gn−k 0 0 0 · · · 00 g0 g1 · · · gn−k−1 gn−k 0 0 · · · 00 0 g0 · · · gn−k−2 gn−k−1 gn−k 0 · · · 00 0 0 · · · gn−k−3 gn−k−2 gn−k−1 gn−k · · · 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 0 0 · · · 0 0 g0 g1 · · · gn−k

onde g(x) = g0 + g1x + · · ·+ gn−kxn−k.

Page 64: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Capıtulo 4. Codigos Cıclicos 59

Seja, por exemplo, n = 8 e k = 5 ⇒ n− k = 3. Entao

a(x) = a0 + a1x + a2x2 + a3x

3 + a4x4 e g(x) = g0 + g1x + g2x

2 + g3x3.

Portanto a mensagem codificada c(x) e igual a:

a(x)g(x) = (a0 + a1x + a2x2 + a3x

3 + a4x4)(g0 + g1x + g2x

2 + g3x3)

= a0g0 + (a0g1 + a1g0)x + (a0g2 + a1g1 + a2g0)x2+

+ a0g3 + a1g2 + a2g1 + a3g0)x3 + (a1g3 + a2g2 + a3g1 + a4g0)x

4+

+ (a2g3 + a3g2 + a4g1)x5 + (a3g3 + a4g2)x

6 + (a4g3)x7 ⇒

c = (a0a1a2a3a4)

g0 g1 g2 g3 0 0 0 00 g0 g1 g2 g3 0 0 00 0 g0 g1 g2 g3 0 00 0 0 g0 g1 g2 g3 00 0 0 0 g0 g1 g2 g3

As colunas de G sao obviamente linearmente independentes e o posto (G) = k, a dimensaode C. Se

h(x) = (xn − 1)/g(x) = h0 + h1x + · · ·+ hkxk,

entao vemos que a matriz

H =

0 0 · · · 0 0 hk hk−1 · · · h1 h0

0 0 · · · 0 hk hk−1 hk−2 · · · h0 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .hk hk−1 · · · h1 h0 0 0 · · · 0 0

e a matriz de checagem de paridade de C.Desde que usamos a termilogia de vetores a = (a0, a1, · · · , an−1) como sinonimo de

polinomios a(x) = a0 + a1x + · · · + an−1xn−1 sobre Fq, podemos interpretar C como um

subconjunto do anel quociente Fq[x]/(xn − 1).

Teorema 4.18. O codigo linear C e cıclico se e somente se C e um ideal de Fq[x]/(xn − 1).

Demonstracao. Se C e um ideal e (a0, a1, · · · , an−1) ∈ C, entao tambem x(a0 + a1x +· · ·+an−1x

n−1) = (an−1, a0, · · · , an−2) ∈ C. Reciprocamente, se (a0, a1, · · · , an−1) ∈ C implica(an−1, a0, · · · , an−2) ∈ C, entao para todo a(x) ∈ C temos xa(x) ∈ C, entao tambem x2a(x) ∈C, x3a(x) ∈ C, · · · . Portanto b(x)a(x) ∈ C para qualquer polinomio b(x), isto e, C e um ideal.

¥

Todo ideal de Fq[x]/(xn − 1) e principal. Em particular, todo ideal nao-nulo C e geradopelo polinomio monico de menor grau g(x) no ideal, onde g(x) divide (xn − 1). Assim umcodigo (n, k) cıclico C pode ser obtido multilicando-se cada mensagem de k coordenadas(identificada como um polinomio de grau < k) por um polinomio fixo g(x) de grau n− k comg(x) um divisor de xn−1. Os polinomios g(x), xg(x), · · · , xk−1g(x) correspondem as palavrascodigo de C.

Page 65: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Indice Remissivo

algoritmoda divisao de Euclides, 15, 16, 32do lıder da classe lateral, 54para codigos lineares, 52

analise de frequencia relativa, 4, 13, 15analise de freq’uencia relativa, 22assinatura, 27, 28

codigo(n, k) linear, 45, 48, 52–54, 58t-corretor de erros, 50binario, 45

comprimento, 57de Hamming, 56, 57linear, 46, 54, 57

cıclico, 43, 58, 59comprimento, 45, 57de grupo, 45de repeticao, 46dimensao, 45, 57linear, 43, 56, 58

algoritmo, 52cıclico, 58, 59decodificacao, 52

sistematico, 45chave(s), 3, 12, 13, 22, 27, 28

codificadora, 12, 16, 20, 22, 23, 27–30coluna chave, 6decodificadora, 16, 22, 24, 27, 29, 30publica, 26–28palavra chave, 6–8, 10

classe residual, 35, 36classes laterais de polinomios, 58combinacao linear, 48corpo(s)

de decomposicao, 36–41elemento definidor, 40extensao, 32

algebrica, 32, 40finita, 34, 35simples, 32

finito(s), 37, 38, 43, 58caracterıstica, 37

elemento primitivo, 39, 40, 42primo(s), 32, 36

criptografia, 1, 11de chave publica, 26–28RSA, veja RSA

criptograma Atbash, 3criptograma de Cesar, 1, 3

dıgrafo(s), 1, 5–11, 14, 15, 17, 18, 20–22, 24distancia

de Hamming, 49, 50mınima, 51, 57mınima de um codigo, 50, 54, 58

equacoes de checagem de paridade, 44, 46,53

espaco vetorial, 33, 34, 37, 45, 52, 58

funcao ϕ de Euler, 12, 29, 30, 40

grupo cıclico, 39, 42

Julio Cesar, 1

lıder da classe lateral, 52, 53algoritmo, 54

linha texto original, 6

matrizde checagem de paridade, 45, 46, 48, 51,

53, 54, 57–59geradora canonica, 48, 49

matrizes codificadoras, 17, 20

palavracodigo, 44, 45, 50, 52, 59erro, 49

pesode Hamming, 49mınimo, 52, 53, 56

planocodificador, 44, 45decodificador, 44

polinomiograu, 32, 33, 35–38, 58, 59irredutıvel, 33, 35, 40, 41

Page 66: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

INDICE REMISSIVO 61

raız, 36, 40monico, 32, 33, 40, 59minimal, 33, 35, 40raız, 33, 36, 38, 39, 41

quebra de codigo, 1, 3, 4, 6, 12, 13, 15, 22,27, 28

RSA, 26, 28, 62codificacao, 28construcao, 28

sımbolos de controle, 44sındrome, 53, 54, 57, 58sındrome de y, 53sistema Vigenere, 6, 8subcorpo primo, 32, 37, 40substituicao monoalfabetica, 4

tabela Playfair, 8, 9tabuleiro de Polibius, 5, 6, 9Teoria

de Codigos Algebricos, 43de Corpos Finitos, 43de Polinomios sobre Corpos Finitos, 43

transformacaoafim, 12, 13, 16, 20–22, 26, 27digrafica, 14linear, 11, 20, 21, 23, 26

Page 67: Departamento de Matem´atica Trabalhos de Gradua¸c˜ao em ...conteudo.icmc.usp.br/pessoas/frasson/aled/material/corpos_finitos.pdf · Departamento de Matem´atica Trabalhos de Gradua¸c˜ao

Referencias

[1] Adilson Goncalves — Introducao a Algebra — IMPA-Projeto Euclides,Rio de Janeiro.

[2] H. Godinho, S. Shokranian e M. Soares — Teoria dos Numeros — Editora da UnB,Brasılia-DF, 1994 .

[3] R. Lidl e H. Niederreiter — Introduction to Finite Fields and Their Applications —Cambridge University Press, Cambridge, 1994.

[4] Neal Koblitz — A Course in Number Theory and Cryptography — Springer-Verlag, NewYork, 1987.

[5] S.C. Coutinho — Numeros Inteiros e Criptografia RSA — IMPA & SBM, Rio de Janeiro,1997.

[6] Site da Internet: An Introduction to Cryptography(http://www.ftech.net/˜monark/crypto/crypt.htm).

[7] Site da Internet: Criptografia(http://www.nucc.pucsp.br/novo/cripto/cripto.html).