Você está na página 1de 156

Aos meus pais

iii
iv
Agradecimentos
A realizacao desta tese so foi possvel merce de um conjunto de factores favoraveis e do
apoio concedido por muitos, que e bom recordar.
Agradeco ao meu orientador, Doutor Pedro Patrcio, todo o apoio e incentivo que
disponibilizou na elaboracao desta dissertacao; por tudo o que me ensinou e pelos sabios
conselhos que me facultou. Foi muito enriquecedor tudo o que aprendi!
Devo tambem uma palavra de agradecimento ao Doutor Antonio Machiavelo pela sua
disponibilidade e gentileza em facultar a obra The Codebreakers.
Quero manifestar gratidao `a minha famlia, por todo o apoio incondicional; ao Joao,
na paciencia e compreensao que demonstrou em diversos momentos; ao Eduardo e `a Sara
pela colabora cao na analise e correc cao da parte nao cientca.
Ana Margarida Martins
Universidade do Minho, Outubro de 2005.
v
vi
Elementos de Criptologia: uma aplicacao da

Algebra
Resumo
Nesta monograa, procuramos fazer um estudo sobre alguns sistemas criptogracos.
Esta esta dividida em seis captulos.
No primeiro captulo, efectuamos uma abordagem historica da Criptologia bem como
referimos algumas das suas aplicac oes num passado recente.
No segundo captulo, enunciamos denicoes e alguns resultados basicos de Teoria dos
N umeros,

Algebra e

Algebra Linear que serao usados nos captulos 3, 4 e 5.
No terceiro captulo, sao estudados sistemas criptogracos classicos ou simetricos, bem
como a sua criptanalise. Estes possibilitam a troca de mensagens secretas entre duas
entidades em que e necessario haver, previamente, uma distribuic ao da chave para manter a
seguranca da comunica cao. Tambem e necessario que a funcao de encriptacao seja injectiva
para que a decifracao seja efectuada de forma inequvoca.
No quarto captulo, sao estudados sistemas criptogracos de chave p ublica ou as-
simetricos, nomeadamente o RSA e o ElGamal, sendo tambem feita uma breve referencia `a
aritmetica das Curvas Elpticas e sua aplicac ao ao ElGamal. A seguranca destes sistemas
reside na construc ao de funcoes de sentido unico baseadas na diculdade de resoluc ao
de problemas matematicos que ate ao momento sao considerados computacionalmente
inviaveis.

E o caso do problema da factorizac ao de inteiros, utilizado no RSA, e do pro-
blema do logaritmo discreto, utilizado no ElGamal. Neste captulo tambem sao analisados
algoritmos necessarios para a implementac ao dos sistemas. No RSA, analisaremos testes
de primalidade probabilstica, algoritmos de factorizac ao e possveis ataques ao sistema;
no ElGamal, analisaremos algoritmos de resolucao do problema do logaritmo discreto.
No quinto captulo, sao estudados sistemas de assinaturas digitais. Apenas nos de-
brucaremos sobre a assinatura digital RSA - com uma breve alusao `as funcoes hash - e
na assinatura ElGamal.

E de salientar a utilizac ao deste metodo de autenticacao em grande
escala na internet, nomeadamente a assinatura utilizando a func ao hash SHA-1, com
encriptacao RSA. Qualquer assinatura digital envolve dois algoritmos: um para assinar e
outro para vericar.
Nos captulos 3, 4 e 5 serao apresentados varios exemplos para ilustrar o funcionamento
dos algoritmos.
Por ultimo, serao apresentadas algumas conclusoes e consideracoes, enfatizando alguns
problemas que continuam em aberto.
vii
viii
Elements of Cryptology: an aplication of Algebra
Abstract
In this monograph, our goal is to write about some cryptographic systems. It is divided
into six chapters.
In chapter one, not only do we develop a historical approach to Cryptology, but also
enumerate some of its applications in the recent past.
In chapter two, we present several denitions and basic results of Number Theory,
Algebra and Linear Algebra, which shall be used on chapters 3, 4 e 5.
In chapter three, classical or symmetrical cryptosystems, as well as their cryptanalysis,
are subject to a study. These systems enable the exchange of secret messages between two
entities, which requires that a previous distribution of the key has taken place, in order
to maintain the security of the communication. It is also necessary that the encryption
function is one-to-one, so that the decryption shall be taken forth leaving no room for
mistake.
In chapter four, public-key or asymmetrical cryptosystems are studied, namely RSA
and ElGamal. The arithmetic of the Elliptic Curves and its applications to the ElGamal
system are also briey referred to. The security of these systems lies on the elaboration of
one-way functions, based on the diculty in solving mathematical problems that until this
moment are considered computationally infeasible. That is the case of the integers fac-
torization problem, used in RSA, and the discrete logarithm, used in ElGamal. Throughout
this chapter, we also analyse some algorithms necessary to the systems implementation.
Concerning RSA, we shall analyse probabilistic primality tests, factorization algorithms
and possible attacks to the systems; regarding ElGamal, we will analyse algorithms that
provide the solution for the discrete logarithm problem.
In chapter ve, digital signature systems are studied. We shall lean solely upon the
RSA digital signature - with a brief mention to hash functions - and the ElGamal signa-
ture. This method of authentication has been largely applied on the internet, particularly
the signature that uses the hash SHA-1 function, with RSA encryption. Any digital
signature involves two algorithms: one to sign and another to verify.
In chapters 3, 4 e 5 several examples will be laid out, in order to illustrate the outcome
of algorithms.
Finally, some conclusions and comments are presented, emphasizing some of the pro-
blems that remain open.
ix
x
Conte udo
Introducao xiii
1 Evolucao da criptologia ate aos nossos dias 15
1.1 Antiguidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2 Idade Media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3 Idade Moderna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4 Historia Recente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2 Preliminares 37
2.1 Alguns Topicos sobre Teoria dos N umeros . . . . . . . . . . . . . . . . . . 37
2.1.1 Divisibilidade e Algoritmo de Euclides . . . . . . . . . . . . . . . . 37
2.1.2 Congruencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.1.3 Corpos Finitos, Resduos Quadraticos e Reciprocidade . . . . . . . 43
2.1.4 Algoritmo de Euclides Alargado . . . . . . . . . . . . . . . . . . . . 48
2.2 Conceitos de

Algebra Linear . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3 Criptologia Classica 53
3.1 Criptograa Classica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1.1 A Cifra Shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.1.2 A Cifra por Substituicao . . . . . . . . . . . . . . . . . . . . . . . . 57
3.1.3 A Cifra Am . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.1.4 A Cifra de Vigen`ere . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.1.5 A Cifra de Hill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.1.6 A Cifra por Permutac ao . . . . . . . . . . . . . . . . . . . . . . . . 64
3.1.7 Cifras de Fluxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
xi
xii CONTE

UDO
3.2 Criptanalise Classica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.2.1 Criptanalise da Cifra Am . . . . . . . . . . . . . . . . . . . . . . . 73
3.2.2 Criptanalise da Cifra por Substituicao . . . . . . . . . . . . . . . . 76
3.2.3 Criptanalise da Cifra de Vigen`ere . . . . . . . . . . . . . . . . . . . 78
3.2.4 Criptanalise da Cifra de Hill . . . . . . . . . . . . . . . . . . . . . . 79
3.2.5 Criptanalise da Cifra de Fluxo . . . . . . . . . . . . . . . . . . . . . 80
4 Criptologia de chaves p ublicas 83
4.1 Introduc ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.2 Cripto-sistema RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.2.1 Implementac ao do RSA . . . . . . . . . . . . . . . . . . . . . . . . 92
4.2.2 Testes de Primalidade Probabilstica . . . . . . . . . . . . . . . . . 93
4.2.3 Ataques ao RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.2.4 Falhas do protocolo RSA . . . . . . . . . . . . . . . . . . . . . . . . 104
4.2.5 Algoritmos de Factorizacao . . . . . . . . . . . . . . . . . . . . . . 105
4.3 Cripto-sistema ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.3.1 Algoritmos para PLD . . . . . . . . . . . . . . . . . . . . . . . . . . 115
4.3.2 Corpos nitos e sistemas de Curvas Elpticas . . . . . . . . . . . . . 127
5 Assinaturas Digitais 141
5.1 Introduc ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.2 Assinatura Digital RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
5.3 Assinatura Digital El Gamal . . . . . . . . . . . . . . . . . . . . . . . . . . 145
5.3.1 Seguranca do Sistema de Assinatura Digital El Gamal . . . . . . . 147
6 Conclusao 151
Bibliograa 153

Indice Remissivo 157


Introducao
...both Gauss and lesser mathematicians may be justied in rejoicing that there is
one science [number theory] at any rate, and that their own, whose very remoteness
from ordinary human activities should keep it gentle and clean.
- G. H. Hardy, A Mathematicians Apology, 1940
Nao se pode falar na evoluc ao da ciencia e, em particular, em Criptologia, sem se fazer
referencia `a evoluc ao da propria humanidade. Assim, antes de falarmos sobre as aplicacoes
da matematica em sistemas criptogracos, iniciamos este estudo com uma abordagem do
desenvolvimento da Criptologia ao longo dos tempos, que se deu a par da evolucao de
algumas areas da propria matematica. Nomeadamente a Teoria dos N umeros viu o seu
estatuto de matematica pura transformar-se numa das areas com mais aplicac oes. As
suas contribuic oes para a criptologia tem sido in umeras.
Nesta monograa, procuramos fazer um estudo sobre alguns sistemas criptogracos.
Esta esta dividida em seis captulos.
No primeiro captulo, efectuamos uma abordagem historica da Criptologia bem como
referimos algumas das suas aplicac oes num passado recente.
No segundo captulo, enunciamos denicoes e alguns resultados basicos de Teoria dos
N umeros,

Algebra e

Algebra Linear que serao usados nos captulos 3, 4 e 5.
No terceiro captulo, sao estudados sistemas criptogracos classicos ou simetricos, bem
como a sua criptanalise. Estes possibilitam a troca de mensagens secretas entre duas
entidades em que e necessario haver, previamente, uma distribuic ao da chave para manter a
seguranca da comunica cao. Tambem e necessario que a funcao de encriptacao seja injectiva
para que a decifrac ao seja efectuada de forma inequvoca. Analisaremos as cifras Shift, por
Substituicao, Am, de Vigin`ere, de Hill, por Permuta cao e Cifras de Fluxo.
xiii
xiv CONTE

UDO
No quarto captulo, sao estudados sistemas criptogracos de chave p ublica ou as-
simetricos, nomeadamente o RSA e o ElGamal, sendo tambem feita uma breve referencia `a
aritmetica das Curvas Elpticas e sua aplicac ao ao ElGamal. Neste tipo de cripto-sistemas,
cada utilizador tem duas chaves, uma p ublica e uma privada. Tal como nos sistemas
classicos, a funcao de decifracao tem de ser uma inversa `a esquerda da funcao de en-
criptacao. Todavia, a chave exigida para cifrar uma mensagem (p ublica) nao e a mesma
que a chave necessaria para a decifrar (privada), da a designacao de sistemas assimetricos.
A seguranca destes sistemas reside na construcao de func oes de sentido unico baseadas
na diculdade de resoluc ao de problemas matematicos que ate ao momento sao conside-
rados computacionalmente invi aveis.

E o caso do problema da factorizac ao de inteiros,
utilizado no RSA, e do problema do logaritmo discreto, utilizado no ElGamal. Neste
captulo tambem sao analisados algoritmos necessarios para a implementac ao dos sistemas.
No RSA, analisaremos testes de primalidade probabilstica, algoritmos de factorizac ao e
possveis ataques ao sistema; no ElGamal, analisaremos algoritmos de resoluc ao do proble-
ma do logaritmo discreto.
No quinto captulo, sao estudados sistemas de assinaturas digitais. Apenas nos de-
brucaremos sobre a assinatura digital RSA, com uma breve alusao `as func oes hash e na
assinatura ElGamal.

E de salientar a utilizacao deste metodo de autenticac ao em grande
escala na internet, nomeadamente a assinatura utilizando a funcao hashSHA-1, com en-
criptacao RSA. Qualquer assinatura digital envolve dois algoritmos: um para assinar e
outro para vericar.
Nos captulos 3, 4 e 5 serao apresentados varios exemplos para ilustrar o funcionamento
dos algoritmos.
Por ultimo, serao apresentadas algumas conclusoes e consideracoes, enfatizando alguns
problemas que continuam em aberto.
Actualmente, a criptograa tem um papel relevante no mundo digital em que vivemos,
ao nvel da autenticac ao de documentos e da realizacao de comunicac oes seguras.

E impres-
cindvel tambem, dar a conhecer aos alunos pre-universit arios a importancia da matematica
nas actividades diarias. Impoe-se, portanto, uma referencia `a criptograa aos alunos como
forma de os motivar para a matematica. Assim, e pertinente a abordagem deste tema
como base de uma tese de mestrado em Matematica - Especializac ao em Ensino.
Captulo 1
Evolucao da criptologia ate aos
nossos dias
Desde os tempos em que se inventou a escrita houve a necessidade de manter informac oes
secretas e formulas ocultas ... faz parte da natureza humana!
Esta indigencia conduziu ao aparecimento e desenvolvimento da criptologia, ciencia que
se ocupa da escrita secreta em todas as suas formas, abrangendo quer a criptograa quer
a criptanalise.
1
Porem, esta ciencia so foi considerada ocialmente como tal, ha cerca de
vinte anos. Ate entao, era vista como arte.
1.1 Antiguidade
Na Antiguidade, ainda nao existiam sistemas de codigos ou cifras. Todavia, houve situac oes
e solucoes engenhosas que estiveram na base da criptograa. Uma dessas situac oes e des-
crita por Kahn [6] na sua obra The Codebreakers. Trata-se de uma inscricao esculpida
por volta do ano 1900a.c., no t umulo de Khnumhotep II, referente aos monumentos que
este construiu ao servico do farao Amenemhet II. Neste registo, aparece a substituicao de
alguns hieroglifos comuns por outros smbolos invulgares. Embora nao seja um sistema
1
Cripto tem origem na palavra grega kryptos que signica oculto, escondido. Tambem do grego logos
signica estudo, ciencia, graphos escrever e analysis decomposicao. Resumidamente, podemos dizer que
a criptologia e o estudo da escrita cifrada; que a criptograa tem por objectivo escrever mensagens
que ninguem, excepto o emissor e o receptor, consegue ler e que a criptanalise surgiu com o intuito de
decifrar mensagens encriptadas.
15
16 CAP

ITULO 1. EVOLUC

AO DA CRIPTOLOGIA AT

E AOS NOSSOS DIAS


de escrita secreta, esta inscric ao, a mais antiga de que se tem conhecimento, contem uma
transformacao de escrita intencional que e um dos elementos essenciais da criptograa
2
.
Figura 1.1: Inscric ao esculpida por volta de 1900a.c., onde aparece a substituicao de alguns
hieroglifos comuns por outros smbolos invulgares.
A civilizacao Indiana tambem desenvolveu diferentes formas de comunicacao secreta, essen-
cialmente praticada pelo servico de espionagem a existente. Kahn refere o trabalho de
Kautilya, Artha-sastra, que contem informac oes polticas que descrevem esse servico de
espionagem.
Da civilizac ao da Mesopotamia foram encontradas algumas referencias criptogracas em
tabletes cuneiformes. A mais antiga data de cerca de 1500a.c. e contem uma formula para
fazer esmalte vitricado em ceramica, onde sao usados smbolos especiais com signicados
diversos.
Com o objectivo de transmitir mensagens secretas, nestas civilizac oes da Antiguidade,
em particular na Chinesa, e em paralelo com a criptograa, desenvolveu-se a esteganograa
3
,
um tipo de comunicac ao secreta que se obtem escondendo a existencia de mensagens.
Exemplos disso sao as tatuagens com mensagens que faziam nas cabecas de escravos de-
pois de as raparem, as mensagens escritas em seda na (com a qual formavam uma bola
que cobriam com cera, e que depois eram engolidas pelo mensageiro), a escrita com tinta
invisvel, entre outros.
Apesar da esteganograa oferecer alguma seguranca, sendo a mensagem descoberta,
o conte udo da comunicacao e imediatamente revelado. Com mensagens cifradas isso nao
acontece pois na criptograa o objectivo e ocultar o signicado de uma mensagem e nao a
sua existencia.
Mais tarde, por volta de 600a.c. a 500a.c., os escribas hebreus inventaram as chamadas
2
Kahn, 1996, p.71-72
3
Termo que deriva do grego steganos que signica encoberto e de graphein que signica escrever.
1.1. ANTIGUIDADE 17
Cifras Hebraicas - Atbash, Albam e Atbah. Baseadas no sistema de substituic ao monoal-
fabetica, estas cifras foram muito utilizadas em textos religiosos, nomeadamente no Antigo
Testamento as duas primeiras, e a terceira no Talmud babilonico (Seder Moed, Sukkah,
52b)
4
. Este tipo de substituic ao era reversvel uma vez que uma cifragem dupla restitua
a mensagem original.
Posteriormente, os Espartanos, o maior povo guerreiro grego, estabeleceram o primeiro
sistema criptograco militar e criaram, por volta do seculo Va.c., o scytale
5
. Tambem se
deve aos gregos os primeiros textos sobre comunicac oes secretas, como foi o caso de Sobre
a defesa de locais forticados, escrito por Eneas, o Estratego, num livro de ciencia militar.
Mais tarde, entre 330a.c. e 270a.c., o ilustre matematico grego, Euclides (sec.IIIa.c.),
de Alexandria, compilou e sistematizou a geometria e a teoria dos n umeros da sua epoca
na famosa obra Os Elementos. Foi, indubitavelmente, uma obra imprescindvel para o
desenvolvimento da Teoria dos N umeros e, consequentemente, da Criptologia. Como vere-
mos, a Teoria dos N umeros e uma area da Matematica que tem desempenhado um papel
importante na evoluc ao desta ciencia, onde se pode destacar o poder dos n umeros primos
na actual Criptologia computacional. Assim, tambem foi consideravel a contribuicao de
Eratostenes (276a.c.-194a.c.), losofo e geometra grego, com o seu famoso Crivo.
Duas formas basicas de transformacao de mensagens foram ja referidas : a transposicao
e a substituicao. Na primeira, as letras mantem a sua identidade mas perdem a sua posic ao
dado que, neste tipo de transformac ao, as letras de uma mensagem sao simplesmente
reordenadas . Na segunda, acontece precisamente o contrario, ou seja, as letras mantem a
sua posicao mas perdem a sua identidade. Os sistemas de substituicao sao mais importantes
e diversos que os de transposicao.
Apesar dos gregos terem escrito varios trabalhos teoricos relacionados com cifras de
substituicao e transposic ao, nunca foram encontradas referencias sobre a implementac ao
desses sistemas para cifrar mensagens. A primeira alusao ao uso de uma cifra desse genero,
para ns militares, deve-se aos romanos. Os governantes e povo deste imperio utilizaram
a criptograa, destacando-se a denominada Cifra de Cesar. Foi esta a primeira cifra
de substituic ao documentada, utilizada para ns militares, que surgiu na obra De Bello
Gallico (Guerras Galicas), de J ulio Cesar (101a.c.-44a.c.). Este e o unico tipo de cifra, da
4
Kahn, 1996, p. 77-79
5
Este e um engenho militar que consiste num bastao de madeira `a volta do qual se amarrava uma tira de
couro ou de pergaminho. A forma de criptograa efectuada por este objecto denomina-se transposicao.
18 CAP

ITULO 1. EVOLUC

AO DA CRIPTOLOGIA AT

E AOS NOSSOS DIAS


Antiguidade, que ainda hoje e utilizado.
Muitos outros documentos e formulas datam desta epoca, como e o caso da formula
Sator ou Quadrado Latino - exemplo de criptograa por transposicao; do Papiro de Leiden
que possui trechos cruciais de receitas de poc oes especiais em texto cifrado e do Kama-
s utra, onde Vatsy ayana, o seu autor, considera a escrita secreta uma das 64 artes que as
mulheres deveriam conhecer e praticar.
1.2 Idade Media
Durante muitos anos, aproximadamente de 500 a 1400, a criptograa das civilizacoes oci-
dentais estagnou. Roger Bacon (1214-1294) foi o unico escritor com relevancia da Idade
Media. Este monge franciscano polmato ingles descreveu o uso da criptograa, no seculo
XIII, em vez de somente a utilizar, na sua obra Epstola sobre as Obras de Arte Secreta e
a Nulidade da Magia onde, segundo Kahn, Bacon advertia: A man is crazy who writes a
secret in any other way than one which will conceal it from the vulgar
6
. Seguidamente,
colocou sete metodos indenidos para escrever esses segredos.
Enquanto a Europa se encontrava mergulhada em plena Idade Media, os eruditos
arabes-islamicos desfrutaram de um perodo com intensas realizac oes intelectuais, em
particular na matematica. Estes deram um contributo muito signicativo ao estudo da
escrita cifrada, iniciando a criptologia com a invencao da criptanalise para a substituic ao
monoalfabetica.
Poucos foram os documentos com mensagens cifradas que sobreviveram da civilizac ao
arabe e islamica. Contudo, uma obra egpcia, do seculo XIV, Muqaddimah de Abd al-
Rahm an Ibn Khald un menciona codigos especiais, semelhantes a puzzles, utilizados entre
escritorios de impostos e militares do governo. Uma seccao da enciclopedia, composta
por 14 volumes, Subh al-a sha, realca o conhecimento arabe sobre criptologia. Esta obra
erudita, terminada em 1412, de Shih ab al-Dn abu l-Abb as Ahmad ben Ali ben Ahmad
Abd All ah al-Qalqashandi, contem uma lista de cifras que inclui tanto a substituic ao
quanto a transposic ao e, pela primeira vez, uma cifra com m ultiplas substituic oes para
cada letra do texto original. Para alem de uma explicacao de criptanalise com alusao ao
uso de tabelas de frequencia de letras e conjuntos de letras que podem ocorrer juntas numa
6
Um homem e louco se escreve um segredo de uma maneira que nao lhe permita oculta-lo do vulgo.
(Kahn, 1996, p. 90)
1.2. IDADE M

EDIA 19
palavra. Segundo Kahn, Qalqashandi atribuiu esta informac ao aos registos de T aj ad-Dn
Al ibn ad-Duraihim ben Muhammad ath-Tha alib al-Mausil que viveu entre 1312 e 1361.
Infelizmente, os trabalhos criptogracos acima mencionados foram perdidos.
No livro The Codebreakers, Kahn recorda o primeiro grande losofo arabe do seculo
VIII, Ab u

Abd alRahm an alKhall ibn Ahmad ibn

Amr ibn Tamm amal Far ahd al


Zad al Y ahmad cuja obra Kit ab al muamm a - O livro da linguagem secreta - foi inspi-
rada pela decifracao que Al-Khall fez de um criptograma grego que o imperador bizantino
lhe tinha enviado. Nessa decifrac ao ele utilizou um metodo criptanaltico, conhecido como
o metodo da palavra prov avel. Este baseava-se na suposic ao do incio do texto original
ser Em nome de Deus ou algo semelhante pois era comum na epoca iniciarem-se as men-
sagens dessa forma. Embora pareca simples, Al-Khall demorou um mes a solucionar o
criptograma, o que leva a concluir que as tecnicas criptanalticas baseadas na analise da
frequencia das letras ainda nao estavam formalizadas. Mais tarde, este metodo tornou-se
padrao e chegou a ser utilizado na Segunda Guerra Mundial para decifrar mensagens da
maquina Enigma.
Segundo Singh [17], a descricao mais antiga de analise de frequencias explorada para
quebrar cifras deve-se, a Ab u Y us uf Yaq ub ibn Is-h aq ibn as-Sabb ah ibn omr an ibn Ismail
al-Kindi, referenciada no seu tratado, redescoberto em 1987, intitulado Risalah Istikhraj
al Muamma - Um Manuscrito sobre a Decifracao de Mensagens Criptogracas. Como
se pode actualmente constatar, a analise de frequencias efectuada pelos arabes anteviu a
Estatstica Matematica.
Entretanto, na Europa, por volta de 1300, novicia-se o movimento renascentista em Italia e,
no que diz respeito `a Criptograa, esta desenvolveu-se ao nvel poltico, de forma discreta.
Em 1379, o papa Clemente VII decide unicar o sistema de cifras da Italia Setentrional,
e Gabriele de Lavinde, o responsavel pela tarefa, compilou uma colecc ao de cifras num
manual, do qual o Vaticano tem uma copia. Lavinde tambem criou um alfabeto que re une a
cifra de substituic ao com um codigo de listas de palavras, slabas e nomes equivalentes. Este
tipo de substituicao combinada (codigo/cifra) e tambem chamada de nomenclator
7
.
Ao mesmo tempo que a criptograa se tornava um instrumento diplomatico de rotina,
a ciencia da criptanalise comecava a emergir no Ocidente. Esta tanto pode ter sido des-
7
O nomenclator e um sistema para cifrar mensagens baseado num alfabeto em cifra, usado na maior
parte da mensagem e uma lista limitada de palavras em codigo.
20 CAP

ITULO 1. EVOLUC

AO DA CRIPTOLOGIA AT

E AOS NOSSOS DIAS


Figura 1.2: A primeira pagina do livro Um Manuscrito sobre a Decifracao de Mensagens
Criptogracas de al-Kindi.
coberta, de forma independente, na Europa, como pode ter sido introduzida a partir do
mundo arabe. De facto, as descobertas islamicas na area das ciencias e, em particular, da
Matematica inuenciaram fortemente o renascimento da ciencia na Europa.
Nos seculos XIV e XV, a criptologia generalizou-se na Europa e tornou-se uma activi-
dade orescente. Georey Chaucer (1343-1400), Simeone de Crema, Michele Steno, Leon
Battista Alberti (1404-1472) e Sicco Simonetta sao muitos dos que contriburam para essa
notavel actividade criptologica. Em particular, Alberti inventou e publicou a primeira
cifra polialfabetica
8
e criou um disco para cifrar - Captain Midnight Decoder Badge.
8
Como o proprio nome indica, este tipo de cifra envolve dois ou mais alfabetos cifrados. Como dife-
rentes alfabetos utilizam os mesmos smbolos, habitualmente letras, um smbolo dum criptograma poderia
representar diferentes letras do texto original.
1.3. IDADE MODERNA 21
Figura 1.3: Disco de cifragem criado por Battista Alberti.
1.3 Idade Moderna
Tal como o perodo da Renascenca, a Idade Moderna (1453-1789) continuou a ser uma
epoca de grande expansao no ambito da Criptologia. Todos os governos da Europa Oci-
dental usaram a Criptograa de varias formas e tambem a codicacao. Porem, a cifra
simples de substituic ao monoalfabetica deixou de ser suciente para garantir sigilo. O
desenvolvimento consequente da analise de frequencias, primeiro no mundo arabe e, pos-
teriormente, na Europa, aniquilou a seguranca desta forma de cifra.
Como ja foi referido, Alberti foi o criador da primeira cifra polialfabetica. Ele propunha
a utilizacao de dois ou mais alfabetos de cifra e a alternancia entre eles durante a cifragem,
com o objectivo de confundir os potenciais criptanalistas. Contudo, ele nao conseguiu
transformar a sua ideia num sistema de cifra plenamente elaborado, num marco solido,
como e mencionado na obra de Kahn:
This man of many-sided genius came into the world too soon for the perfect
exercise of his singular faculties. Whether we regard him from the point of view
of art, of science, or of literature, he occupies in each department the position
of precursor, pioneer, and indicator. Always original and always fertile, he
prophesied of lands he was not privileged to enter, leaving the memory of dim
and varied greatness rather than any solid monument behind him
9
.
(Kahn, 1996, p.130)
9
Este homem, genio em diferentes areas, veio ao mundo demasiado cedo para o exerccio perfeito das
suas faculdades singulares. Quer o analisemos em termos de arte, de ciencia ou de literatura, ele ocupa,
em cada departamento a posicao de percursor, pioneiro e indicador. Sempre original e sempre fertil, ele
22 CAP

ITULO 1. EVOLUC

AO DA CRIPTOLOGIA AT

E AOS NOSSOS DIAS


Depois de Alberti, Johannes Trithemius (1462-1516), Giovan Batista Belaso e Gi-
ambattista Della Porta (1535-1615) tambem descreveram cifras polialfabeticas na forma
de tabelas de substituic ao rectangulares, destacando-se o primeiro e o terceiro destes.
Trithemius teve grande inuencia no desenvolvimento da criptologia, escreveu a primeira
obra impressa sobre esta ciencia, Polygraphiae libri sex, Ioannis Trithemii abbatis Peapoli-
tani, quondam Spanheimensis, ad Maximilianum Caesarem - Seis livros de Poligraa, por
Johannes Trithemius, abade em Wurzburg, anteriormente em Spanheim, para o Imperador
Maximiliano
10
. No quinto livro da obra aparece, pela primeira vez, tabelas quadradas,
que sao um contributo fundamental para a substituic ao polialfabetica. Este tipo de tabelas
e a forma elementar da cifra polialfabetica porque apresenta, simultaneamente, todos os
alfabetos de cifra, num sistema particular.
Figura 1.4: Obra de Johannes Trithemius, Polygraphia.
Giovan Batista Belaso, secretario de um cardeal de Carpi, teve um papel com menor im-
portancia na Criptologia. Ele introduziu a nocao do uso de uma senha como chave, para
uma cifra polialfabetica, e publicou no seu livro La cifra del. Sig. Giovan Batista Belaso
uma cifra de autochave, ideia essa que o notavel matematico Girolamo Cardano (1501-
1576) ja tinha alcancado, mas sem conseguir inventar, na perfeicao, um sistema dessa
natureza.
Della Porta, antecipou muitos escritores no contexto da criptologia. A sua extraordinaria
profetizou areas em que nao era seu privilegio entrar, deixando uma memoria de uma grandeza variada e
de contornos pouco demarcados, em vez de um monumento solido que o denisse(traducao nossa).
10
Esta obra e mais conhecida, sob o ttulo Polygraphia. Segundo Kahn, a impressao da obra foi
completada em Julho de 1518, tendo-se efectuado reimpressoes da mesma em 1550, 1571, 1600 e 1613.
1.3. IDADE MODERNA 23
obra, De Furtivis Literarum Notis - traduzida no mesmo ano, em ingles sob o ttulo On
secret notations for letters, commonly called chiphers - continha cifras arcaicas, cifras mo-
dernas, criptanalise e uma lista de peculiaridades lingusticas que ajudavam na soluc ao
das cifras. Assim, a sua obra compilava o conhecimento criptograco da epoca, antevendo
a actual divisao estandartizada das cifras. Classicou-as em cifras de transposicao, de
substituicao e de substituicao por smbolos (uso de outros alfabetos) e sugeriu a utilizacao
de sinonimos e erros ortogracos para baralhar os criptanalistas. A contribuic ao de Della
Porta `a poligraa, consistiu essencialmente, numa estraticacao dos elementos ja exis-
tentes, ou seja, na cifra de mensagens, letra a letra feita por Trithemius, na mudan ca de
chave de Belaso e no alfabeto misto de Alberti, formando um sistema moderno de substi-
tuicao polialfabetica. Embora nao seja dada nenhuma originalidade `a obra de Della Porta,
ele enunciou a primeira denicao moderna de alfabetos poligracos. Mas foi Blaise de
Vigen`ere (1523-1596) que construiu uma nova cifra polialfabetica coerente e ecaz, apos
analise pormenorizada das ideias de Alberti, Trithemius e Della Porta. A cifra de Vigen`ere
e robusta pois utiliza vinte e seis alfabetos de cifra distintos para cifrar uma mensagem.
Como a par de uma acc ao ha sempre uma reacc ao, a acompanhar este desenvolvimento
criptograco, a criptanalise nao cou atras. E, neste campo, o matematico frances Fran cois
Vi`ete (1540-1603), recordado como o pai da

Algebra, foi um dos melhores especialistas.
No nal do seculo XVI, Vi`ete ao servico de Henrique IV, rei de Franca, decifrou todos
os codigos espanhois. Esta facilidade de decifragem efectuada por Vi`ete deveu-se ao facto
dos criptanalistas espanhois da epoca ainda trabalharem com base na cifra de substituic ao
monoalfabetica, enquanto uma grande parte dos criptanalistas ja utilizavam a analise de
frequencias para quebrar criptogramas. Por esta altura, a Criptograa estava enfraquecida
face aos avan cos da Criptanalise.
Durante o seculo XVII apareceram novas cifras, nomeadamente a cifra de Bacon, actu-
almente classicada como codicac ao binaria de 5 bits e cifras geometricas, denidas pelo
bispo de Chester, John Wilkins (1614-1672), que escreveu o primeiro livro sobre cripto-
logia, em Inglaterra. Estas ultimas continham pontos, linhas e triangulos nas mensagens
cifradas.
Outro acontecimento relevante para a Criptologia foi a denic ao de uma linguagem
universal por parte do matematico alemao Athanasius Kircher (1601-1680). Em 1663,
publicou a obra Polygraphia Nova et Vniversalis ex Combinatoria Arte Detecta, que inclui
processos de cifrar mensagens e uma mistura de varias lnguas, alem de codigos para as
24 CAP

ITULO 1. EVOLUC

AO DA CRIPTOLOGIA AT

E AOS NOSSOS DIAS


relacoes alfabeticas, com os quais formou a denominada linguagem universal.
Para comunicacoes militares e governamentais, onde a seguranca era fundamental, a
cifra monoalfabetica simples era obviamente inadequada e existia alguma relutancia em
adoptar a cifra polialfabetica, dada a sua complexidade de implementacao. Por conseguinte,
os criptografos da epoca sentiram necessidade de criar uma cifra intermedia e inventaram
a cifra de substituicao homofona. Nesta, cada letra e permutada por uma variedade de
substitutos, sendo o n umero destes potenciais substitutos proporcional `a frequencia da
letra. Este tipo de cifra e considerado monoalfabetico pois, apos a denicao do alfabeto de
cifra, este permanece inalterado durante todo o processo de cifragem, nao sendo relevante
o facto de conter varias opcoes para cifrar cada letra. Indubitavelmente, este foi um
avanco na Criptologia, tendo efectuado diversas alterac oes na cifra monoalfabetica basica.
Por exemplo, atraves do acrescimo de homofonas tornou-se possvel cifrar mensagens em
seguranca, sem utilizar a complexa cifra polialfabetica.
Um exemplo marcante de uma cifra monoalfabetica melhorada, bastante segura, foi a
denominada Grande Cifra de Lus XIV (1638-1715), elaborada por Antoine e Bonaventure
Rossignol, dupla poderosa em decifrac ao. Apos a morte dos seus criadores, ela caiu em
desuso e os seus pormenores exactos perderam-se rapidamente. A Grande Cifra de Lus
XIV era tao forte que so no seculo XIX foi decifrada, segundo Singh, pelo comandante

Etienne Bazeries, um notavel perito do departamento criptograco do exercito frances.


No seculo XVIII a Criptanalise comecou a industrializar-se, com equipas de criptanalis-
tas do governo a trabalharem em cooperacao m utua nas chamadas Camaras Negras. Esta
foi a epoca da espionagem na Europa. Cada potencia europeia tinha uma Camara Negra,
ou seja, um centro cuja func ao era ler a correspondencia diplomatica internacional, copiar
as cartas e devolve-las `as agencias de correio. Viena possua a mais eciente e disciplinada
Camara, chamada The Geheime Kabinets-Kanzlei, considerada a melhor de toda a Europa.
Com uma criptanalise tao evoluda, todas as formas de cifra monoalfabetica tornaram-
-se inseguras e os criptografos sentiram-se obrigados a adoptar a cifra de Vigen`ere, mais
complexa, mas mais segura.
Mais tarde, como ja nao existiam acontecimentos que justicassem o trabalho dos
criptanalistas nas Camaras Negras, estas acabaram por se dissolver, por volta de 1850.
1.4. HIST

ORIA RECENTE 25
1.4 Historia Recente
Com o aparecimento do telegrafo, de maquinas e dispositivos mais elaborados, entra-se
numa nova era: a era da criptograa mecanizada. Surgem tambem os sistemas de comu-
nicacao `a distancia e estes, por tornarem as mensagens mais desprotegidas, dao um novo
impulso `a criptograa. Samuel F. B. Morse (1791-1872) enviou, em 1844, por meio de um
telegrafo, a mensagem What hath God wrought!
11
. E, no ano seguinte, o seu agente
Francis O. J. Smith declarou que secrecy in correspondence, is far the most important
consideration
12
, no codigo comercial The Secret Corresponding Vocabulary; Adapted for
Use to Morses ElectroMagnetic Telegraph.
Em Inglaterra, nove anos mais tarde, publicou-se um artigo sobre telegraa, no Quar-
terly Review, salientando a supremacia da seguranca:
Means should also be taken to obviate one great objection, at present felt
with respect to sending private communications by telegraph-the violation of
all secrecy-for in any case half-a-dozen people must be cognizant of every word
addressed by one person to another. The clerks of the English Telegraph Com-
pany are sworn to secrecy, but we often write things that it would be intolerable
to see strangers read before our eyes. This is a grievous fault in the telegraph,
and it must be remedied by some means or other.... At all events, some simple
yet secure messages might to all intents and purposes be sealedto any person
except the recipient
13
.
(Kahn, 1996, p.189)
Assim, de 1790 ate ao m do seculo XIX surgem varias cifras produzidas por diferentes
dispositivos.
11
(Kahn, 1996, p.189) O que tinha Deus forjado!
12
(Kahn, 1996, p.189) O sigilo na correspondencia, e de longe o que mais deve ser considerado.
13
Devem ser tomadas medidas no sentido de se evitar (que subsista) uma grande objeccao, que hoje em
dia se tem vericado no que respeita ao envio de comunicacoes privadas por telegrafo-a violacao de todo e
qualquer sigilo-, pois em qualquer caso meia d uzia de pessoas vai ser conhecedora das palavras dirigidas por
uma pessoa a outra. Os empregados da Companhia Telegraca Inglesa prestam um juramento de sigilo,
mas, muitas vezes, escrevemos coisas que nao toleraramos ver outros lerem, mesmo `a nossa frente. Este
e um grave defeito do telegrafo, e deve ser remediado, de uma forma ou de outra... Seja como for, deve
ser introduzida uma cifra simples mas segura, facilmente adquirida e lida, atraves da qual as mensagens
possam, para todos os efeitos, ser seladaspara qualquer indivduo, excepto o receptor(traducao nossa).
26 CAP

ITULO 1. EVOLUC

AO DA CRIPTOLOGIA AT

E AOS NOSSOS DIAS


Segundo Kahn, entre 1790 e 1793 ou entre 1797 e 1800, Thomas Jeerson (1743-1826)
inventou um avultado sistema de cifras que denominou de wheel chipher. Este e um
cilindro de madeira branca que permite realizar com rapidez e seguranca uma substituic ao
polialfabetica. Foi utilizado pelo governo americano e, actualmente, ainda e utilizado pela
marinha. O destaque que este dispositivo teve, conferiu a Jeerson o ttulo de Pai da
criptograa americana.
Figura 1.5: Cilindro que permite realizar uma substituic ao polialfabetica.
Conjuntamente, a descoberta, no ano de 1799, de fontes prolongadas de electricidade -
como foi o caso da bateria de Allesandro Volta (1745-1827) - abriu caminho para novos
dispositivos electricos aplicados `a Criptologia.
Com a invencao do telegrafo electromagnetico, em Inglaterra, por Charles Wheatstone
(1802-1875)
14
e da primeira linha telegraca, na America, por Samuel Morse, assim como
do denominado Codigo Morse (que na realidade nao e uma forma de criptograa, mas
sim um alfabeto alternativo constitudo por sons curtos e longos), a Criptograa sofre
alteracoes e torna-se imprescindvel cifrar a correspondencia privada enviada por telegrafo.
Entretanto, a cifra polialfabetica de Vigen`ere continuava a ser, incontestavelmente, a
melhor maneira de garantir as comunicacoes importantes sigilosas. Essa era considerada
inquebravel e tornou-se conhecida como Le Chire Indechirable.
Porem, por volta de 1854, o matematico ingles Charles Babbage (1791-1871) - hoje
conhecido como o pai do computador - foi o autor da maior descoberta no domnio
14
Wheatstone tambem inventou uma cifra sigilosa em telegraa. Todavia, esta cou conhecida como
Cifra Playfair, derivado do nome do seu amigo, Lyon Playfair, o primeiro barao Playfair de St. Andrews.
1.4. HIST

ORIA RECENTE 27
da Criptanalise, desde o seculo IX, altura em que os eruditos arabes quebraram a cifra
monoalfabetica atraves da analise de frequencias. Babbage foi um dos primeiros a utilizar
notacoes e formulas matematicas em criptanalise e conseguiu quebrar cifras polialfabeticas
- em particular, Le Chire Indechirable - um dos acontecimentos mais relevantes do
seculo XIX na area da Criptologia. Na sua autobiograa, Passages from the Life of a
Philosopher, escreveu: One of the most singular characteristics of the art of deciphering
is the strong conviction possessed by every person, even moderately acquainted with it,
that he is able to construct a cipher which nobody else can decipher
15
.
A solucao criptanaltica para cifras polialfabeticas so foi revelada posteriormente por
Friedrich W. Kasiski (1805-1881), um ocial reformado do exercito prussiano, na sua obra,
de 1863, Die Geheimschriften und die Dechirierkunst - As Escritas Secretas e a Arte da
Decifracao. A tecnica criptanaltica e conhecida como o Teste Kasiski, tendo-se, de certa
forma, menosprezado o contributo de Babbage. Todavia, e plausvel que Os Servicos de
Informacao britanicos exigissem o sigilo de Babbage relativamente ao seu trabalho. Deste
modo, os britanicos teriam um avanco criptologico em relac ao ao resto do mundo.
A consequente inseguranca da cifra de Vigen`ere abriu as portas `a criptologia actual e
fez com que os criptografos tentassem conceber novas cifras. Todavia, durante a ultima
metade do seculo XIX, nao surgiu nada de muito signicativo. Este mesmo perodo foi
acompanhado por uma maior familiarizac ao com a criptograa entre o p ublico em geral,
comecando a manifestar-se habilidades criptogracas de diversas formas. Ate mesmo na
literatura do seculo XIX os codigos e as cifras tiveram lugar. Alguns autores como J ulio
Verne (1828-1905) utilizou criptograa em tres dos seus livros, Viagem ao centro da Terra,
Mathias Sandor e A Jangada; Edgar Allan Poe (1809-1849) escreveu um conto de cc ao
sobre cifras, The Gold-Bug - O Escaravelho de Ouro.
Na viragem para o seculo XX, Guglielmo Marconi (1874-1937) inicia a era da comu-
nicacao sem o, com a invenc ao do radio. Esta forma de comunicac ao de longa distancia
tornou ainda mais premente a necessidade de cifrar mensagens com seguranca. A telefonia
sem os, embora facilite a comunica cao e o alcance das mensagens, tem o inconveniente
de facilmente ser interceptada. Esta desvantagem em conjunto com a deagrac ao da 1
a
Guerra Mundial intensicaram a necessidade de uma cifra ecaz. No entanto, durante esse
perodo, entre 1914 e 1918, nao houve nenhuma descoberta criptograca importante.
15
Uma das principais caractersticas da arte de decifrar e a forte convic cao, que todas as pessoas tem
mesmo sem se aperceberem, que ele e capaz de construir uma cifra que ninguem consiga decifrar.
28 CAP

ITULO 1. EVOLUC

AO DA CRIPTOLOGIA AT

E AOS NOSSOS DIAS


Todas as cifras que apareceram foram facilmente quebradas pois eram variac oes ou
combinacoes de cifras inventadas no seculo XIX. Uma das mais famosas foi a cifra ADFGVX
- um misto de cifra de substituic ao e transposicao - que os alemaes utilizaram no nal da
1
a
Guerra Mundial. Esta foi quebrada pelo criptanalista frances Georges Painvin. Alias,
no tempo da guerra os franceses eram os criptanalistas mais ecazes. Para essa ecacia
contribuu o tratado La Criptographie militaire, escrito pelo holandes Jean-Guillaume-
Hubert-Victor-Francois-Alexandre-Auguste Kerckhos von Nieuwenhof, em 1883. Este
livro, o mais conciso sobre criptograa, serviu de guia relativamente aos princpios da
criptanalise e as suas ideias tiveram uma implementac ao generalizada. Como Kahn refere
em The Codebreakers, utilizando palavras do proprio Kerckhos, esta obra foi concebida
para servir de base `a criptograa militar atraves dos princpios necessarios `a invenc ao e
avaliac ao de todas as cifras planeadas para esse m
16
.
Quase no nal da guerra, os cientistas americanos descobriram que a Cifra de Vigen`ere,
ou seja, a cifra polialfabetica, podia ser usada como base para uma nova e mais poderosa
forma de cifra. Descortinaram que, aumentando o comprimento da chave, mesmo que esta
fosse tao grande quanto a propria mensagem, acabaria por ser decifrada quando a chave era
construda a partir de palavras que faziam sentido. Mas se utilizassem chaves desprovidas
de estrutura, ou seja, construdas a partir de palavras sem sentido, obtinham uma cifra
inquebravel.
Foi o major Joseph O. Mauborgne, chefe da investiga cao criptanaltica do exercito dos
Estados Unidos, quem introduziu o conceito de chave aleatoria - que consistia numa serie
aleatoria de letras - para ser utilizada, uma unica vez, numa cifra polialfabetica a m de
se obter um nvel de seguranca jamais atingido. Um sistema criptograco com utilizacao
deste genero de chave cou conhecido por one-time sistem. Trata-se de um cripto-sistema
inquebravel quer na teoria quer na pratica, porque independentemente do tempo e do
comprimento do criptograma que o criptanalista disponha, ele nunca conseguiria decifrar
uma mensagem cifrada com o one-time sistem. Mauborgne sempre teve muito interesse
em criptologia. Ja em 1914 ele conseguiu, pela primeira vez, decifrar a cifra Playfair.
Dada a seguranca que o one-time sistem proporcionava, foi elaborada uma lista de
chaves aleatorias denominada maco de cifras, a qual oferecia uma garantia de sigilo por
cada uma ser utilizada uma unica vez - e o Santo Graal da Criptograa.
Este sistema criptograco era indubitavelmente seguro, teoricamente perfeito, contudo,
16
(Kahn, 1996, p.233)
1.4. HIST

ORIA RECENTE 29
na pratica, tinha limitacoes. Uma delas era a indigencia de se ter de fazer grandes quanti-
dades de chaves aleatorias, acarretando muito tempo. Outra limitac ao era a diculdade de
distribuir essas chaves. Com tais obstaculos, este tipo de cifra so era praticavel por pessoas
que precisassem de uma comunicacao ultra-secreta porque, de outra forma, nao era usada.
Apos a 1
a
Guerra Mundial, os criptografos comecaram a explorar a tecnologia do incio
do seculo XX com vista a encontrarem um novo sistema criptograco pratico que pudesse
ser usado num conito seguinte.
Ja referimos que, no seculo XV, Leon Alberti tinha inventado uma maquina cripto-
graca chamada o disco de cifragem. Embora a utilizac ao de discos de cifra diculte a
decifragem, mesmo assim nao a torna impossvel de quebrar, uma vez que estes discos sao
uma vers ao mecanizada da cifra de Vigen`ere.
Em 1918, o inventor alemao Arthur Scherbius (1878-1929), interessado em desenvolver
a Criptograa mecanizada, construiu uma maquina criptograca electrica, baseada em
cifradores rotativos - a famosa maquina Enigma. Esta invenc ao forneceu ao exercito alemao
o sistema criptograco mais seguro do mundo e, por altura da 2
a
Guerra Mundial, as
comunicacoes dos alemaes estavam protegidas por um nvel de cifras sem paralelo. Antes de
Scherbius houve outros inventores, em outras partes do mundo, a desenvolverem maquinas,
baseadas em cifradores rotativos. Foi o caso de Hugo Alexander Koch (1870-1928) nos
Pases Baixos, de Arvid Gerhard Damm na Suecia e de Edward Hugh Hebern (1869-1952)
na America.
A este avanco criptograco seguiu-se a pesquisa criptanaltica, efectuada pelos aliados
na 2
a
Guerra Mundial, no sentido de decifrar a Enigma. Para a decifragem desta poderosa
maquina contribuiram os matematicos polacos Jerzy Rozycki (1906-1942), Henryk Zygalski
(1906-1978) e Marian Rejewski (1905-1980) e, essencialmente, os matematicos e lingustas
de Bletchley Park - a sede da Government Code and Cypher School (GC & CS), uma
organizacao de quebra de codigos. Estes ultimos, durante o Outono de 1939, apreenderam
as complexidades das mensagens Enigma. Entretanto, o British Tabulating Machine Com-
pany construiu uma maquina, designada por Bombe, instalada em Bletchley Park, para
determinar as chaves Enigma. Nesta equipa, destacou-se Alan Turing (1912-1954) que
identicou a maior fraqueza da Enigma e explorou-a . Foi gracas a este exmio matematico
que se tornou possvel deslindar a cifra Enigma. Turing tambem teve um papel importante
para a era digital e da informac ao. Conhecedor da obra de Babbage, ele criou um projecto
para o moderno computador programavel e uma maquina: a maquina universal de Turing.
30 CAP

ITULO 1. EVOLUC

AO DA CRIPTOLOGIA AT

E AOS NOSSOS DIAS


Por volta de 1943, os descodicadores do Bletchley Park inventaram um computador
programavel - o Colossus - para interpretar uma cifra alema mais potente que a Enigma, a
Cifra Lorenz. Este dispositivo determinou o desenvolvimento da criptograa e transportou-
-a para a era digital. Os computadores desempenharam um papel crucial na batalhaentre
codicadores e descodicadores, na epoca pos-guerra. Eles sao a maior expressao da era
digital, e fazem parte de, praticamente, todas as actividades humanas. Alem de ter revolu-
cionado a informac ao, esta tecnologia transformou a criptologia, tornando-a indispensavel.
Apesar de se ter comecado a utilizar computadores para cifrar mensagens, em n umeros
17
,
a cifragem processa-se por meio das cifras de substituic ao e de transposicao.
Inicialmente, esta cifragem estava limitada ao governo e aos militares, pois eram estes
que possuam computadores. Contudo, descobertas cientcas, tecnologicas e na area da
engenharia, tornaram os computadores e, consequentemente, as cifras atraves destes, muito
mais acessveis.
Durante os anos sessenta, os computadores tornaram-se mais potentes e mais baratos
e as empresas comecaram a investir nesta nova tecnologia. Logicamente, a cifragem entre
empresas generalizou-se e os criptografos depararam-se com novas diculdades, uma das
quais era a necessidade de estandardizacao.
Neste sentido, no incio dos anos setenta, em Nova Iorque, Horst Feistel (1915-1990),
ao servico do Laboratorio Thomas J. Watson da IBM, desenvolveu o sistema Lucifer - um
algoritmo de cifra candidato a padrao. Este sistema foi submetido a algumas alterac oes,
nomeadamente a um melhoramento de uma componente da chave, chamada S (para
substituicao) boxes, e a uma diminuic ao do comprimento da mesma. De todos os cripto-
-sistemas candidatos, este era o unico que oferecia a possibilidade de um padrao de cifra
que, possivelmente, nao estava ao alcance das capacidades de descodicacao da NSA -
National Security Agency.
Para adoptar uma cifra como padrao e imprescindvel que esta possua um elevado
n umero de chaves para determinar uma maior potencia `a mesma. Assim, em 23 de Novem-
bro de 1976 foi adoptada a vers ao alterada da cifra de Lucifer, de 56 bits, isto e, com cerca
de 100 000 000 000 000 000 chaves e designada por Data Encryption Standard, ou seja,
DES. Deste modo, o problema da estandardizac ao cou resolvido e aumentou a utilizac ao
da criptograa como medida de seguranca por parte das empresas.
17
Os computadores so funcionam com n umeros binarios - sequencias de dgitos binarios,ou bits (zeros e
uns).
1.4. HIST

ORIA RECENTE 31
Infelizmente, um novo problema tornava-se necessario resolver, conhecido por dis-
tribuicao da chave. A unica maneira segura de transmitir a chave de uma cifra era envi a-la
por mao propria, e uma outra, menos segura, consistia em envi a-la por correio. Com o
passar do tempo, aumentava o n umero de mensagens enviadas e o n umero de entrega de
chaves, ao nvel empresarial, que acarretava um enorme pesadelologstico e custos gerais
proibitivos. Esta questao tornou-se o problema dominante para os criptografos do perodo
pos-guerra.
Por muito segura que uma cifra fosse em teoria, na pratica essa seguranca podia ser
aluda pelo problema da distribuic ao da chave. Nao obstante a ideia de que esta diculdade
era insol uvel, uma equipa concebeu um sistema de encriptac ao que parecia desaar toda
a logica porque solucionou o problema da distribuic ao da chave. O desenvolvimento de
tecnicas destinadas a superar este problema foi, indubitavelmente, a maior revolucao na
criptograa do seculo XX.
No decorrer dos anos setenta, dois criptografos bastante entusiasmados pelo estudo do
domnio da seguranca que a criptologia exigia, associaram-se formando uma das associac oes
mais dinamicas desta ciencia: Martin Hellman (1945-), do Departamento de Engenharia
Electrotecnica da Universidade de Stanford, e Whiteld Die (1944-), um estudante de
pos-graduac ao do mesmo departamento. Debrucaram-se sobre o problema da distribuic ao
da chave, tentando desesperadamente encontrar uma alternativa para a tarefa sicamente
ardua de transportar chaves a grande distancia. Algum tempo depois, juntou-se a eles
Ralph Merkle (1952-), um intelectual que partilhava o mesmo interesse.

E imperativo efectuar aqui um parentesis e realcar a persistencia incansavel destes


especialistas, patente nas seguintes armac oes de Hellman:
Ralph, tal como nos, estava disposto a ser um palerma. E a maneira de
chegar ao topo em termos de desenvolver investigac ao original consiste em ser
um pateta, porque so os patetas persistem em tentar. Tem-se a ideia n umero 1,
ca-se entusiasmado, e ela falha. A seguir tem-se a ideia n umero 2, ca-se
entusiasmado, e ela tambem falha. Depois tem-se a ideia n umero 99, ca-
se entusiasmado, e ela falha. So um palerma continua entusiasmado com a
100
a
ideia, mas podem ser necessarias 100 ideias antes de se ter um resultado
compensador. A menos que se seja sucientemente palerma para continuar a
32 CAP

ITULO 1. EVOLUC

AO DA CRIPTOLOGIA AT

E AOS NOSSOS DIAS


sentir entusiasmo, nao se tem a motivac ao, nao se tem a energia para prosseguir.
Deus recompensa os palermas.
(Singh, 1999, p.256)
Ate verem a luz ao fundo do t unel, tera sido uma luta constante para estes ilustres
homens. Durante dois mil anos, a distribuicao da chave era considerada um axioma da
criptograa, ou seja, uma verdade irrefutavel. Entretanto, comecam a estudar a possibili-
dade de a tornar desnecessaria para a troca de mensagens secretas.
Apos muito estudo e muita persistencia Die, Hellman e Merkle inventaram um es-
quema de troca de chaves que permite dois utilizadores de um cripto-sistema privado
criarem uma chave secreta atraves de uma conversa p ublica. Esta descoberta, como iremos
analisar, introduziu a ideia de uma criptograa de chave p ublica. Alem disso, revelou a
importancia das func oes matematicas unidireccionais e da teoria da aritmetica modular
na encriptacao segura de mensagens. Esta foi uma das invencoes mais contra-intuitivas da
historia da ciencia. Em Junho de 1976, Die, Hellman e Merkle demonstraram publica-
mente a sua descoberta na Conferencia Nacional de Informatica, surpreendendo os peritos
em encriptac ao que se encontravam na assistencia.
Nao obstante o esquema de troca de chaves de Die-Helman-Merkle ter sido um salto
colossal na criptograa, intrinsecamente este sistema era pouco pratico. Die continuou
a estudar perseverantemente e, no Ver ao de 1975, ele publica um esboco de um novo tipo
de cifra, que incorporava a chamada chave assimetrica ou chave p ublica.
Anteriormente, todas as tecnicas de encriptac ao eram simetricas, ou seja, o processo de
decifracao era o oposto da encriptacao onde o emisssor e o receptor de uma mensagem tem
um conhecimento equivalente e usam a mesma chave para as cifrar e para as decifrar. Exem-
plos de encriptac ao simetrica sao a Enigma - usa uma chave para cifrar uma mensagem e
o receptor usa uma maquina igual com a mesma chave para a decifrar - e o DES que usa
a mesma chave para realizar dezasseis voltas de cifragem e a mesma chave para realizar as
dezasseis voltas inversas.
No caso do sistema de troca de chaves ser assimetrico, as chaves de encriptac ao e
de decifrac ao sao diferentes.

E esta distincao que confere um caracter especial `a cifra
assimetrica.
1.4. HIST

ORIA RECENTE 33
A ideia de Die consistia no seguinte processo
18
:
Alice criava um par de chaves - uma para cifrar mensagens e outra para decifrar.
Pressupondo que a cifra assimetrica e elaborada por computador, ambas as chaves seriam
dois n umeros diferentes. Alice mantinha secreta a chave de decifrac ao - chave privada e
divulgava a chave de encriptacao, de modo a que qualquer pessoa (Bernardo) tivesse acesso
a ela - chave p ublica.
Deste modo, se Bernardo quisesse enviar uma mensagem `a Alice, limitava-se a procurar
a chave p ublica de Alice, pois devia constar em algo semelhante a uma lista telefonica,
cifrava a mensagem com essa chave e, enviava esta ultima. Alice, ao receber o texto
cifrado seria a unica pessoa a poder decifrar a mensagem utilizando a sua chave privada.
Este sistema tem a vantagem, relativamente ao esquema da troca de chaves Die-
Hellman-Merkle, de nao necessitar de trocas de mensagens entre Alice e Bernardo. Tambem
com este tipo de sistema - de cifra assimetrica - o problema de distribuic ao da chave
ca resolvido. No entanto, embora este processo, assim descrito, possa parecer simples,
estava longe de ser transformado numa inven cao pratica, isto e, num sistema criptograco
funcional.
Para tal concretizacao, era necessario descobrir uma func ao matematica apropriada,
isto e, que fosse unidireccional ou de sentido unico -One way- e que pudesse ser inver-
tida em circunstancias excepcionais. Assim, Bernardo facilmente conseguiria cifrar uma
mensagem, mas seria incapaz de decifra-la. Contudo, Alice conseguiria efectuar essa de-
cifracao, atraves da chave privada que possua - trapdoor, uma informacao adicional- e
dessa forma invertia a func ao. So em Abril de 1977, Ronald Rivest (1948-), Adi Shamir
(1952-) e Leonard Adleman (1945-) criaram um sistema perfeito e viavel de criptograa
de chave p ublica. Apos anos de trabalho deste trio, Rivest encontrou uma func ao unidi-
reccional, reversvel apenas em determinadas circunstancias e, por conseguinte, ideal para
usar como cifra assimetrica. Como veremos mais tarde, esta func ao baseia-se no poder
dos n umeros primos. Assim que terminou de escrever um artigo com a sua ideia, entregou
18
A partir deste momento iremos utilizar Bernardo como emissor da chave p ublica e portador exclusivo
da chave privada, Alice como um qualquer utilizador da chave p ublica para cifrar mensagens e envia-las
a Bernardo e Intruso aquele que tenta interceptar o texto cifrado e decifra-lo, sem o conhecimento da
chave privada. Obviamente, que estes protagonistas abstratos podem ser humanos, computadores, redes
ou maquinas ATM.
34 CAP

ITULO 1. EVOLUC

AO DA CRIPTOLOGIA AT

E AOS NOSSOS DIAS


a Adleman para o analisar. Este ultimo era um matematico muito rigoroso, em grande
parte responsavel por detectar as falhas nas conjecturas de Rivest e Shamir. Desta vez,
Adleman nao conseguiu encontrar falhas no sistema de criptograa assimetrica que cou
denominado RSA - as iniciais dos tres autores. Esta e uma forma de criptograa de chave
p ublica. O artigo foi publicado na edic ao de Setembro de 1977, na coluna de

Mathemati-
cal Games

de Martin Gardner (1914-), da revista Scientic American, sob o ttulo A New


Kind of Chipher that Would Take Millions of Years to Break.
Entretanto, foram fundados dois jornais internacionais Cryptologia e The Journal of
Cryptology e a criptologia passou a ser considerada uma ciencia e nao uma arte, como foi
vista ate entao.
Actualmente, a International Association for Cryptologie Research (IACR) e a orga-
nizacao cientca internacional que mantem a pesquisa nesta area.
Nos ultimos tempos, face `a evolu cao dos meios de comunicac ao, `a facilidade de acesso a
esses meios e ao enorme volume de mensagens enviadas, atraves de telefones xo e movel,
fax e e-mail, a criptologia progrediu de forma exponencial.
Assim, a guerra da informac ao entre criptografos e criptanalistas tem sido ganha
pelos primeiros e parece que assim vai continuar... Segundo Phil Zimmermann (1954),
como cita Sigh, Agora e possvel fazer cifras em criptograa moderna que estejam com-
pletamente fora do alcance de todas as formas conhecidas de criptanalise. E penso que vai
continuar a ser assim. Essa ideia foi apoiada por William Crowell, vice-director da NSA:
Se todos os computadores pessoais do mundo-aproximadamente 260 milhoes- fossem pos-
tos a trabalhar numa unica mensagem cifrada PGP
19
, seria preciso, em media, 12 milhoes
de vezes a idade do universo para quebrar uma unica mensagem.
Todavia, segundo Sigh, ja se fala na criac ao de um computador quantico, uma inova cao
tecnologica que realizaria calculos com enorme rapidez. A teoria cientca associada a esta
tecnologia, a teoria quantica, consegue explicar muitos fenomenos. Ela permite que os
fsicos determinem as consequencias das reacc oes nucleares nas centrais nucleares, explica
as maravilhas do ADN, descreve como brilha o sol, e ela que e utilizada para formar o
laser que faz a leitura dos CDs... Para alem desses feitos e de talvez permitir a criacao
de computadores capazes de destruir a seguranca de qualquer tipo de cifra moderna, esta
teoria tambem seria a inspirac ao para a criac ao de uma nova cifra inquebravel, criptograa
19
PGP ou Pretty Good Privacy-e um algoritmo de encriptacao por computador desenvolvido por
Phil Zimmermann em 1991 e baseado no sistema RSA.
1.4. HIST

ORIA RECENTE 35
quantica. No entanto, parece que tudo isto existe teoricamente e nao na pratica, pois
ha muitos problemas a superar para ser possvel a construc ao de tal computador. Se
ja fosse viavel a computac ao quantica, a sim, o destino economico, poltico e militar
das nac oes sofreria imenso, uma vez que depende do poder das cifras. Contudo, se a
criptograa quantica pudesse funcionar a longa distancia, essa poderia restituir o secretismo
da informac ao pois parece ser absolutamente inquebravel.
Seria o m da criptologia, a procura de privacidade chegaria ao m. Admitindo essa
possibilidade de encriptac ao quantica, existiria total seguranca para as comunicac oes dos
governos, das forcas armadas, das empresas e do p ublico. Todavia, se assim fosse, sera que
os governos a permitiam utilizar? Iria ser tarefa difcil regular a criptograa quantica de
forma a enriquecer a Era da informac ao e a garantir a protecc ao dos criminosos...
36 CAP

ITULO 1. EVOLUC

AO DA CRIPTOLOGIA AT

E AOS NOSSOS DIAS


Captulo 2
Preliminares
Neste captulo, sao apresentadas notac oes e alguns conceitos imprescindveis para o nosso
estudo. Todavia, nocoes mais elementares nao serao aqui referenciadas.
As cifras Classicas que iremos estudar, bem como as de chave p ublica, baseiam-se
essencialmente em Teoria dos N umeros, em particular na Aritmetica Modular. Portanto,
sera feita uma revisao a algumas nocoes basicas desta area da Matematica, assim como a
alguns conteudos de

Algebra e de

Algebra Linear.
Os resultados que se seguem sao bem conhecidos da literatura, por exemplo [8], [9], [15]
e [18], e serao apresentados aqui de forma a que esta dissertac ao seja auto-contida.
2.1 Alguns Topicos sobre Teoria dos N umeros
2.1.1 Divisibilidade e Algoritmo de Euclides
Iniciaremos esta secc ao com um resultado indispensavel que nos mostra a importancia dos
n umeros primos:
Teorema 2.1.1 (Teorema Fundamental da Aritmetica). Todo o n umero natural n
pode ser escrito, de forma unica a menos da ordem dos factores, como um produto de
potencias de n umeros primos distintos entre si. Isto e, dado n 2, existem primos p
i
distintos e
i
N tais que n =

i
i
.
Recordemos, de seguida, algumas propriedades dos n umeros primos, consequentes do
teorema 2.1.1:
37
38 CAP

ITULO 2. PRELIMINARES
Propriedades de divisibilidade 2.1.2.
1. Se um n umero primo p divide ab, entao p[a ou p[b;
2. Se m[a , n[a e (m, n) = 1, entao mn[a.

E relevante referir o algoritmo seguinte, que apesar de ser conhecido ha mais de dois
mil anos, tera um papel crucial nos resultados apresentados neste trabalho. Apresenta-nos
um processo relativamente rapido de determinar o maximo divisor comum entre naturais.
Algoritmo 2.1.3 (Algoritmo de Euclides). Sejam a e b dois inteiros tais que a > b.
Comecamos por dividir a por b, obtendo um quociente q
1
e um resto r
1
: a = b q
1
+ r
1
.
Seguidamente, efectuamos uma segunda divisao, dividindo b por r
1
: b = r
1
q
2
+r
2
. Depois,
dividimos r
1
por r
2
e assim continuamente obtendo um novo quociente e um novo resto.
Quando, por m, obtivermos um resto que divida o resto anterior terminamos o algoritmo
e o maximo divisor comum entre a e b e o ultimo resto, diferente de zero.
O algoritmo de Euclides fornece uma construcao da demonstrac ao da propriedade que
se segue:
Proposicao 2.1.4. Sejam a, b N e (a, b) = d, entao, existem inteiros x e y tais que
d = xa + yb.
Os naturais primos relativos com m xo, m N, permitem denir uma funcao que
sera de extrema importancia, por exemplo, em algumas cifras de chave p ublica.
Denicao 2.1.5 (A funcao de Euler). Seja m um inteiro positivo. A funcao de
Euler e uma funcao natural de variavel natural onde (m) e denida como o n umero de
naturais menores que m que sao primos relativos de m. Ou seja,
: N N
(m) = [ a N : (a, m) = 1 a m [
Observacao 2.1.6. Temos que:
(1) = 1;
se p e primo, (p) = p 1;
Para p primo, (p

) = p

p
1
= p

(1
1
p
).
2.1. ALGUNS T

OPICOS SOBRE TEORIA DOS N

UMEROS 39
2.1.2 Congruencias
A aritmetica modular sera a base deste trabalho. A linguagem especial de congruencia e
a sua notacao, desenvolvida por Gauss (1777-1855), sao uteis em Teoria dos N umeros. De
facto, todas as informacoes relativas a questoes de divisibilidade estao contidas nos restos
da divisao de inteiros.
Denicao 2.1.7. Seja m um inteiro positivo e a e b inteiros. Dizemos que a e congruente
com b modulo m se a diferenca entre a e b for divisvel por m.
Se a for congruente com b modulo m, escrevemos a b mod m. Se m ,[ (a b),
escrevemos a , b mod m, e dizemos que a e b nao sao congruentes modulo m. Ao inteiro
m chamamos o modulo da congruencia.
Sao validas as armac oes seguintes, onde a, b, c Z e m N:
1. a a mod m, para todo a.
2. Se a b mod m ent ao b a mod m.
3. Se a b mod m e b c mod m entao a c mod m.
Assim, a congruencia modulo m e uma relac ao de equivalencia sobre Z. Deste modo,
podemos denir classes de congruencia modulo m da forma
[a] = n Z : n a mod m, com a Z.
Ou seja, [a] e o conjunto de inteiros da forma a + km, onde k varia em Z.

E natural a identicac ao do conjunto das classes de equivalencia das congruencias


modulo m com os elementos de 0, 1, . . . , m 1 = Z
m
. Doravante, usaremos esta
identicacao.
Denicao 2.1.8. a
1
, a
2
, . . . , a
m
e um sistema completo de resduos modulo m se
U[a
i
] = Z e 0 a
i
< m.
Em geral, nas Cifras Classicas iremos cifrar texto alfabetico. Uma vez que o alfabeto
tem 26 letras, vamos denir uma correspondencia biunvoca entre as letras alfabeticas e o
conjunto completo de resduos modulo 26, isto e, os elementos distintos de Z
26
. Todavia,
podamos denir as cifras classicas em Z
m
, para qualquer modulo m, utilizando outro
alfabeto de cifra.
40 CAP

ITULO 2. PRELIMINARES
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
O conjunto Z
m
com as operac oes adicao e multiplicac ao modulo m
Z
m
= 0, 1, 2, . . . , m1
a b := a + b mod m
1
a b := ab mod m
forma o anel dos inteiros modulo m. Podemos acrescentar que (Z
m
, ) e um grupo abeliano
e (Z
m
, , ) e um anel abeliano.
Consequentemente, de (Z
p
, , ) ser anel e (Z

p
, ) ser grupo, com Z

p
= Z
p
0 e p
primo, temos que (Z
p
, , ) e um corpo nito.
Dada a congruencia a b mod m, se dividirmos a e b por m, obtemos, para cada
um, um quociente e um resto inteiros, tais que os restos estao entre 0 e m1 Ou seja,
a = q
1
m + r
1
e b = q
2
m +r
2
, onde 0 r
1
m1 e 0 r
2
m1.
Obviamente, a b mod m se e so se r
1
= r
2
.
Por conseguinte, a b mod m e equivalente a a mod m = b mod m.
As demonstrac oes dos resultados seguintes estao largamente publicados na bibliograa
[9] e [15].
Proposicao 2.1.9. Para a, b, c, d e m inteiros com m > 0:
1. Se a b mod m e c d mod m, entao ax +cy bx + dy mod m, x, y Z.
2. Se a b mod m e c d mod m, entao a c b d mod m, x, y Z.
3. Se a b mod m, entao ac bc mod m.
4. Se a b mod m e c d mod m, entao ac bd mod m.
5. Se a b mod m e d[m, d > 0, entao a b mod d.
1
Para simplicar a notacao, a b e denotado por a + b.
2.1. ALGUNS T

OPICOS SOBRE TEORIA DOS N

UMEROS 41
6. Se a b mod m, entao ac bc mod mc, c > 0.
7. Se a b mod m, entao a
k
b
k
mod m, k N.
No resultado seguinte, [m
1
, . . . , m
r
] denota o mnimo m ultiplo comum de m
1
, . . . , m
r
.
Teorema 2.1.10. Para a, x, y e m inteiros tal que m > 0:
1. ax ay mod m x y mod
m
(a,m)
.
2. Se x y mod m
i
, i = 1, . . . , r, entao x y mod [m
1
, . . . , m
r
]), onde m
1
, m
2
, . . . , m
r
sao inteiros positivos.
Teorema 2.1.11 (Pequeno Teorema de Fermat). Sejam p um primo e a um inteiro
positivo. Entao a
p
a mod p. Em particular, se p ,[ a, entao a
p1
1 mod p.
Corolario 2.1.12. Se p ,[ a e se n m mod (p 1), entao a
n
a
m
mod p.
O resultado seguinte e uma generalizacao do Pequeno Teorema de Fermat para n umeros
inteiros compostos, estabelecida por Euler em 1760.
Teorema 2.1.13 (Teorema de Euler). Sejam a um inteiro e m um inteiro positivo tais
que (a, m) = 1, entao a
(m)
1 mod m.
Corolario 2.1.14. Se (a, m) = 1 e n

e o menor resduo de n, nao negativo, modulo (m),


entao a
n
a
n

mod m.
Como vimos, Z
m
com as operac oes adicao e multiplicac ao modulo m e um anel, para
todo o m inteiro positivo. Os elementos de Z
m
que tem inverso multiplicativo sao os primos
relativos de m.
Suponhamos que queremos resolver uma congruencia, ax b mod m, onde assumi-
mos, sem perda de generalidade, que 0 a, b < m, m > 0:
1. Caso Geral
Se (a, m) = 1, ent ao ax b mod m tem soluc ao.
Se x
1
e uma soluc ao de ax b mod m, ent ao todas as outras soluc oes sao dadas
por x
1
+ km, k Z, isto e, sao congruentes com x
1
mod m.
Neste caso,
1
x 0, 1, . . . , m1 : ax b mod m.
42 CAP

ITULO 2. PRELIMINARES
Se (a, m) = d, d > 1 ent ao existe uma soluc ao se e so se d[b. Neste caso, a congruencia
ax b mod m e equivalente (em termos de soluc oes) `a congruencia a

x b

mod m

, onde a

=
a
d
, b

=
b
d
, m

=
m
d
. Portanto, tem exactamente d soluc oes
modulo m: x
0
, x
0
+
m
d
, x
0
+2
m
d
, . . . , x
0
+(d1)
m
d
, sendo x
0
a unica soluc ao modulo
m de
a
d
x
b
d
mod
m
d
- porque (
a
d
,
m
d
) = 1.
2. Caso particular: b = 1
Neste caso, ax 1 mod m tem soluc ao se e so se (a, m) = 1. Alem disso, se
ax 1 mod m tem soluc ao, entao
1
x
0
0, 1, . . . , m 1 : ax
0
1 mod m.
A solucao desta congruencia e o inverso de a modulo m.
Temos o resultado seguinte:
Teorema 2.1.15. ax b mod m tem solucao unica x Z
m
se e so se (a, m) = 1.
O resultado seguinte vai ser de extrema importancia no captulo dos sistemas de chave
p ublica.
Teorema 2.1.16 (Teorema do Resto Chines). Sejam m
1
, m
2
, . . . , m
k
n umeros primos
relativos dois a dois, ou seja, tal que (m
i
, m
j
) = 1 para i ,= j, e sejam a
1
, a
2
, . . . , a
k
inteiros. Entao, o sistema de congruencias
_

_
x a
1
mod m
1
x a
2
mod m
2

x a
k
mod m
k
tem uma unica soluc ao modulo M, onde M = m
1
m
2
. . . m
k
, dada por:
X
k

i=1
a
i
M
i
y
i
mod m
j
a
j
mod m
j
, 1 j k
onde M
i
=
M
m
i
e y
i
= M
1
i
mod m
i
, para 1 i k.
Teorema 2.1.17. A funcao de Euler e multiplicativa, o que signica que
(mn) = (m) (n), sempre que (m, n) = 1.
2.1. ALGUNS T

OPICOS SOBRE TEORIA DOS N

UMEROS 43
Como vimos na observa cao 2.1.6, da pagina 38, (p

) = p

(1
1
p
). Assim, para
a decomposicao de m num produto de factores primos distintos, m = p

1
1
p

2
2
. . . p

n
n
,
aplicando o corolario anterior, temos que:
(m) = p

1
1
(1
1
p
1
) p

2
2
(1
1
p
2
) . . . p

n
n
(1
1
p
n
) = m
n

i=1
(1
1
p
i
).
Duas consequencias da formula de (m) uteis para o RSA sao:
Proposicao 2.1.18. Seja n = p q, com p e q primos distintos. Entao
(n) = (p 1) (q 1).
Proposicao 2.1.19. Seja n = p q, com p e q primos distintos. Determinar (n) e
equivalente a factorizar n.
Este ultimo resultado provaremos posteriormente.
2.1.3 Corpos Finitos, Resduos Quadraticos e Reciprocidade
Corpos Finitos
Os corpos nitos desempenham um papel importante em diversas aplicacoes de Criptologia.
De momento, serao descritas algumas bases teoricas para a construcao de corpos nitos.
Todos os corpos nitos tem a ordem de uma potencia de um primo, p
n
, com p primo
e n inteiro positivo. Com efeito, podemos dizer que nao existe nenhum corpo nito com r
elementos, a menos que, r = p
n
. Estes corpos nitos sao denominados de Corpos Galois,
e denotados por GF(p
n
). Em particular, para n = 1, o corpo resultante e GF(p) = Z
p
.
Para facilitar a leitura, Z
p
denota, implicitamente, o corpo (Z
p
, , ). Assim sendo, existem
corpos nitos de ordem p para todo o primo p, Z
p
, os quais podem ser usados na construc ao
de outros corpos nitos de ordem p
n
.
Teorema 2.1.20. Seja F um corpo nito. Entao [ F [ = p
n
para algum p primo e n inteiro
positivo.
Um resultado importante para este estudo, de Teoria Elementar de Grupos, e o Teorema
de Lagrange.
Denicao 2.1.21. Seja G um grupo multiplicativo nito. A ordem de um elemento g G
e o menor inteiro positivo m tal que g
m
= e
G
e denota-se por m = ord(g).
44 CAP

ITULO 2. PRELIMINARES
Teorema 2.1.22 (Teorema de Lagrange). Suponha-se que G e um grupo multiplicativo
de ordem n e seja g G. Entao, a ordem de g divide n, ou seja, a ordem de um elemento
de G divide a ordem do grupo.
Proposicao 2.1.23. Sejam p primo e d um natural tal que d [ (p 1); entao a con-
gruencia x
d
1 0 mod p tem exactamente d solucoes.
A demonstrac ao da proposicao anterior encontra-se em [9].
O lema seguinte tem por base o resultado anterior, 2.1.23.
Lema 2.1.24. Sejam p primo e d um inteiro tal que p 1 = 2
r
s d = 2
r

, com
s, s

inteiros mpares.
1. a congruencia w
d
1 mod p tem exactamente (d, p 1) solucoes.
2. Se r

< r w
d
1 mod p tem exactamente (d, p 1) solucoes.
Se r

r w
d
1 mod p nao tem solucoes.
Demonstracao
1. Pela proposic ao 2.1.23, se p for primo e d [ (p 1), entao w
d
1 mod p tem
exactamente d = (d, p 1) soluc oes.
Se d ,[ (p 1), ent ao escreve-se (d, p 1) = dx + (p 1)y.
Pelo Pequeno Teorema de Fermat 2.1.11, w
p 1
1 mod p.
Logo, se w
d
1 mod p (w
d
)
x
(w
p 1
)
y
1 mod p w
(d, p 1)
1 mod p.
Portanto, toda a soluc ao para w
d
1 mod p e uma soluc ao para w
(d, p 1)
1
mod p, e vice-versa.
Como p e primo e (d, p 1) [ (p 1), pela proposic ao 2.1.23, o n umero de solucoes
de w
d
1 mod p e (d, p 1).
2. Se w
d
1 mod p entao w
2d
1 mod p .
Por 1, w
2d
1 mod p tem exactamente (2d, p 1) soluc oes. Podemos factorizar
w
2d
1 = (w
d
1) (w
d
+ 1) 0 mod p.
2.1. ALGUNS T

OPICOS SOBRE TEORIA DOS N

UMEROS 45
Por 1, w
d
1 0 mod p tem (d, p 1) soluc oes. Logo, w
d
+ 1 0 mod p tera
soluc oes se (2d, p 1) > (d, p 1).
Pela formula do maximo divisor comum em termos da factorizacao em n umeros
primos, (2d, p 1) = 2
min{r

+1, r}
(s, s

) e (d, p 1) = 2
min{r, r

}
(s, s

).
Assim, para que (2d, p 1) > (d, p 1) tera que minr

+ 1, r > minr

, r.
Consequentemente, isto so e possvel se r

< r.
Neste caso, (2d, p 1) = 2 (d, p 1) , logo w
d
1 mod p tem (d, p 1)
soluc oes se r

< r.
Note-se que podemos ver os teoremas 2.1.11 e 2.1.13 como corolarios do teorema de
Lagrange.
Proposicao 2.1.25. Suponhamos (a, n) = 1 e a
i
a
j
mod n, entao i j mod ord(a).
Proposicao 2.1.26. Se (a, n) = 1, entao ord(a) [ (n). Em particular, se p for primo
e (a, p) = 1, entao ord(a) [ (p 1).
Denicao 2.1.27. Um elemento Z

p
com ordem p1 denomina-se elemento primitivo
modulo p se Z

p
=< >.
Assim, e um elemento primitivo se
i
: 0 i p 2 = Z

p
.
Teorema 2.1.28. Seja F um corpo nito. Entao F

e um grupo cclico multiplicativo.


Como consequencia, se p for primo, ent ao Z

p
e um grupo cclico. Ou seja, existe um
elemento Z

p
tal que Z

p
=< >.
Sejam p primo e Z
p
[x] o conjunto de todos os polinomios na variavel x, com coecientes
em Z
p
. (Z
p
[x], +, ) e um anel onde a adicao e a multiplica cao sao efectuadas de modo
usual.
Para f(x), g(x) Z
p
[x], dizemos que f(x) [ g(x) se existir q(x) Z
p
[x] : g(x) =
f(x) q(x).
Para f(x) =
k

i=0

i
x
i
Z
p
[x]/0, dene-se deg(f), o grau do polinomio f, como
maxi :
i
,= 0. Por convencao deg(0) = .
46 CAP

ITULO 2. PRELIMINARES
Suponhamos f(x), g(x), h(x) Z
p
[x] e deg(f) = n 1. Denimos
g(x) h(x) mod f(x) se f(x) [ (g(x) h(x)).
Representaremos o anel de polinomios modulo f(x) por Z
p
[x]/(f(x)).
Uma propriedade dos polinomios equiparada `a primalidade e a irredutibilidade, que
denimos seguidamente.
Denicao 2.1.29. Um polinomio f(x) Z
p
[x] diz-se ser irredutvel se nao existirem
polinomios f
1
(x), f
2
(x) Z
p
[x] : f(x) = f
1
(x) f
2
(x), onde deg(f
1
), deg(f
2
) > 0.
Teorema 2.1.30. Suponhamos que f e um elemento de um domnio euclidiano D. Entao
f e irredutvel se e so se D/(f) for um corpo.
Resduos Quadraticos e Reciprocidade
Denicao 2.1.31. Seja p um primo mpar e x um inteiro, 1 x p1. x e um resduo
quadratico modulo p se a congruencia y
2
x mod p tiver uma solucao y Z
p
.
Destacamos o resultado seguinte, que sera usado na analise do Problema da Residuosi-
dade Quadratica - PRQ.
Teorema 2.1.32 (Criterio de Euler). Seja p um inteiro primo > 2. Entao x e um
resduo quadratico modulo p se e so se x
p1
2
1 mod p.
Denicao 2.1.33 (Smbolo de Legendre). Seja p um inteiro primo > 2. Para a 0,
dene-se o smbolo de Legendre,
_
a
p
_
como se segue:
_
a
p
_
=
_

_
0 se a 0 mod p
1 se a e um resduo quadratico modulo p
1 se a nao e um resduo quadratico modulo p.
Teorema 2.1.34. Seja p um inteiro primo maior que 2. Entao,
_
a
p
_
a
p1
2
mod p.
2.1. ALGUNS T

OPICOS SOBRE TEORIA DOS N

UMEROS 47
Demonstracao
Se a for m ultiplo de p, ent ao a 0 mod p. Logo, a
p1
2
0 mod p. Pelo smbolo de
Legendre temos que a
p1
2

_
a
p
_
mod p.
Se a for um resduo quadratico modulo p entao, pelo Criterio de Euler 2.1.32, a
p1
2
mod p 1 mod p. Utilizando a notacao do smbolo de Legendre,
_
a
p
_
a
p1
2
mod p.
Se a nao for um resduo quadratico modulo p entao, pelo Pequeno Teorema de Fer-
mat 2.1.11, a
p1
1 mod p. Donde, a
p1
2
1 mod p. Como a nao e um resduo
quadratico modulo p, pelo smbolo de Legendre, temos que a
p1
2
1 mod p, ou seja,
_
a
p
_
a
p1
2
mod p.

E possvel generalizar a denic ao do smbolo de Legendre para a seguinte:


Denicao 2.1.35 (Smbolo de Jacobi). Seja n um inteiro positivo e mpar, cuja facto-
rizacao num produto de factores primos e n = p
e
1
1
. . . p
e
k
k
. Seja a 0 um inteiro. O
smbolo de Jacobi,
_
a
n
_
, e denido da forma:
_
a
n
_
=
k

i=1
_
a
p
i
_
e
i
.
Podemos avaliar o smbolo de Jacobi sem factorizar n, utilizando algumas propriedades
de Teoria dos N umeros que apresentamos de seguida:
Propriedades 2.1.36.
1. Se n for um inteiro mpar e m
1
m
2
mod n, entao
_
m
1
n
_
=
_
m
2
n
_
.
2. Se n for um inteiro mpar, entao
_
2
n
_
=
_
1 se n 1 mod 8
1 se n 3 mod 8.
3. Se n for um inteiro mpar, entao
_
m
1
m
2
n
_
=
_
m
1
n
_ _
m
2
n
_
.
48 CAP

ITULO 2. PRELIMINARES
Em particular, se m = 2
k
t, com t mpar, entao
_
m
n
_
=
_
2
n
_
k
_
t
n
_
.
4. Lei da Reciprocidade Quadratica
Sejam m e n inteiros mpares. Entao
_
m
n
_
=
_

_
n
m
_
se m n 3 mod 4
_
n
m
_
caso contrario.
Seja n > 1 um inteiro mpar. Se n for primo ent ao
_
a
n
_
a
n1
2
mod n, para algum
a.
Por outro lado, se n for composto, podemos ou nao ter o caso
_
a
n
_
a
n1
2
mod n.
Denicao 2.1.37. Se n for um n umero composto mpar e a um inteiro tal que (a, n) = 1
e que satisfaz
_
a
n
_
a
n1
2
mod n, entao n e um pseudo-primo de Euler relativamente `a
base a.
Para n, n umero composto e mpar, n e um pseudo-primo de Euler na base a para, no
maximo, metade dos inteiros a tal que, 1 a n 1(observac ao referida em [18]).
2.1.4 Algoritmo de Euclides Alargado
Algoritmo de Euclides Alargado
2
Utilizando o Algoritmo de Euclides podemos determinar se um inteiro positivo r
1
< r
0
tem inverso multiplicativo modulo r
0
, calculando (r
1
, r
0
). Todavia, caso (r
1
, r
0
) = 1 camos
a saber que r
1
possui inverso multiplicativo modulo r
0
, mas nao indica de forma imediata
o seu valor.
Denamos uma sequencia numerica t
0
, t
1
. . . , t
m
de acordo com a seguinte recorrencia:
_

_
t
0
= 0
t
1
= 1
t
j
= t
j2
q
j1
t
j1
mod r
0
, j 2
2
Conhecido como Extended Euclidean Algorithm.
2.1. ALGUNS T

OPICOS SOBRE TEORIA DOS N

UMEROS 49
onde os q
j
sao denidos como no Algoritmo de Euclides, 2.1.3.
Seguem os seguintes resultados:
Teorema 2.1.38. Para 0 j m, temos r
j
t
j
r
1
mod r
0
, onde os q
j
e r
j
sao
denidos como no Algoritmo de Euclides e os t
j
como na recorrencia denida anterior-
mente.
Corolario 2.1.39. Se (r
0
, r
1
) = 1, entao t
m
= r
1
1
mod r
0
.
Deste modo, a sequencia numerica t
0
, t
1
. . . , t
m
pode ser calculada, no Algoritmo de
Euclides, simultaneamente com os q
j
e r
j
e poderemos determinar o inverso multiplicativo
de r
1
modulo r
0
, caso exista, atraves do algoritmo que se segue:
Algoritmo 2.1.40 (Algoritmo de Euclides Alargado).
1. n
0
= r
0
2. b
0
= r
1
3. t
0
= 0
4. t = 1
5. q = [
n
0
b
0
]
6. r = n
0
q b
0
7. Enquanto r > 0 faz
8. temp = t
0
q t
9. Se temp 0 entao temp = temp mod r
0
10. Se temp < 0 entao temp = r
0
((temp) mod r
0
)
3
11. t
0
= t
12. t = temp
4
3
Neste passo do algoritmo a expressao temp e denida de forma a que a reducao modulo r
0
seja
efectuada com um argumento positivo.
4
Este e o caso em que tr
1
r mod r
0
, resultado do teorema 2.1.38.
50 CAP

ITULO 2. PRELIMINARES
13. n
0
= b
0
14. b
0
= r
15. q = [
n
0
b
0
]
16. r = n
0
q b
0
17. Se b
0
,= 1 entao
r
1
n~ao tem inverso multiplicativo modulo r
0
Senao
r
1
1
= t mod r
0
2.2 Conceitos de

Algebra Linear
No estudo de Criptologia, na Cifra de Hill e sua criptanalise, utilizaremos teoria de matrizes
e aritmetica modular - onde todas as operacoes sao efectuadas sobre o anel Z
m
- necessarios
para se cifrar e decifrar mensagens.
Doravante, R indica um anel comutativo.
Seja U(R) o subconjunto de R constitudo pelos elementos invertveis de R, isto e, as
unidades de R. Por exemplo,
U(Z
m
) = a N : (a, m) = 1 0 < a < m.
Seja /
n
(R) o anel das matrizes n n sobre R, com a adicao e a multiplicac ao denidas
do modo usual.
Enunciamos, de seguida, alguns resultados classicos que podem ser encontrados, por
exemplo, na seccao 3 do captulo V II, em [5].
Como sempre, S
n
denota o grupo das permuta coes de n elementos e sgn o sinal da
permuta cao .
Denicao 2.2.1. Seja A = [a
ij
] /
n
(R). O determinante de A, denotado por det(A)
e denido da forma
det(A) =

S
n
(sgn) a
1(1)
a
2(2)
. . . a
n(n)
.
2.2. CONCEITOS DE

ALGEBRA LINEAR 51
Denicao 2.2.2. Dada uma matriz A = [a
i,j
] /
n
(R), dene-se cofactor
A

i,j
= (1)
i+j
det A
i,j
,
onde A
i,j
se obtem a partir de A suprimindo a linha i e a coluna j. A matriz dos cofactores
de A, denotada por cof A ou adj A e dada por cof A = [A

i,j
]
nn
.
Aos cofactores tambem se chamam complementos algebricos, e `a matriz dos cofactores
pode-se chamar matriz dos complementos algebricos.
Seguidamente, apresentamos uma actualizacao geral de determinante de uma matriz,
segundo Laplace. A denic ao de determinante e assim apresentada de uma forma recursiva.
Denicao 2.2.3. Se A = [a
ij
] for uma matriz sobre R, entao
det(A) =
n

j=1
(1)
i +j
a
ij
det (A
i,j
), , i = 1, . . . , n segundo a linha i de A.
=
n

i=1
a
ij
(1)
i +j
det (A
i,j
), j = 1, . . . , n segundo a coluna j de A.
O resultado seguinte tera um papel relevante na cifra de Hill.
Teorema 2.2.4. Se A = [a
ij
] for uma matriz n n, com n 2 sobre R, entao tem-se
A(cof A)
t
= (det A) I.
Se det A for uma unidade, a matriz inversa de A existe e
A
1
= det (A)
1
(cof A)
t
.
Corolario 2.2.5. Uma matriz quadrada A com elementos em Z
m
e invertvel se e so se o
resduo de det(A) modulo m tem inverso multiplicativo modulo m.
52 CAP

ITULO 2. PRELIMINARES
Captulo 3
Criptologia Classica
Como ja foi mencionado, a Criptologia envolve quer a Criptograa quer a Criptanalise.
Iniciaremos este captulo com a apresenta cao e aplicac ao de diferentes cripto-sistemas
classicos, apos a qual faremos uma analise criptanaltica dos mesmos. Basicamente, a
teoria desenvolvida neste captulo podera ser encontrada em [18] e [14].
3.1 Criptograa Classica
O objectivo essencial da criptograa e possibilitar a comunica cao entre duas entidades
Alice e Bernardo, atraves de um canal inseguro, de forma a que um Intruso que interra
na comunicac ao nao compreenda a mensagem que Alice transmite a Bernardo.
Denicao 3.1.1. Um sistema criptograco e um 5-uplo (T, (, /, c, T) que satisfaz as
seguintes condi coes:
1. T, ( sao conjuntos nitos de smbolos;
2. / e um conjunto nito de chaves;
3. c = (
P
, T = T
C
;
4. para cada K /, existem e
K
c e d
K
T tais que
x T, d
K
(e
K
(x)) = x.
53
54 CAP

ITULO 3. CRIPTOLOGIA CL

ASSICA
A condicao 4 indica que a func ao d
K
e inversa `a esquerda da funcao e
K
, para a mesma
chave K, isto e, que o cripto-sistema e simetrico.
O processo de comunica cao entre Alice e Bernardo, numa cifra classica ou simetrica,
utiliza um sistema criptograco especco, que segue os seguintes passos:
1. Alice e Bernardo escolhem, aleatoriamente, uma chave K / - este passo e efectuado
quando eles estao juntos, sem serem observados por um Intruso, ou quando tem acesso
a um canal seguro; neste caso, nao necessitam de estar no mesmo local;
2. Alice cifra uma mensagem e envia-a ao Bernardo, por meio de um canal inseguro.
Para isso, admitamos que a mensagem e uma sequencia de smbolos (cada x
i
e um
smbolo de texto original (ou plaintext), doravante denotado por TO),
x = x
1
x
2
x
3
x
n
, para algum inteiro n 1, onde x
i
T, 1 i n
Cada x
i
e cifrado em y
i
= e
K
(x
i
) , 1 i n, utilizando a funcao e
K
, especicada
para a chave k / predenida. Deste modo, obtemos uma sequencia cifrada de
smbolos,
y = y
1
y
2
y
3
y
n
que e enviada atraves de um canal inseguro;
3. O Bernardo recebe essa ultima sequencia y = y
1
y
2
y
3
y
n
e decifra-a, atraves da
func ao d
K
, isto e, obtem TO, x = x
1
x
2
x
3
x
n
, uma vez que d
K
(y) = x.
Esquematicamente temos:
Intruso
Alice
x
//
Cifrar
y
OO
//
Decifrar
x
//
Bernardo
OO
//
Canal Seguro
OO
Chave
k
3.1. CRIPTOGRAFIA CL

ASSICA 55

E imprescindvel que a func ao e


K
seja injectiva, caso contrario a decifrac ao nao poderia
ser efectuada de forma inequvoca. A injectividade tambem e necessaria para que se possa
denir a funcao inversa e
1
K
= d
K
.
Por exemplo, se uma mensagem fosse cifrada atraves de uma func ao tal que
y = e
K
(x
i
) = e
K
(x
j
) , com x
i
,= x
j
,
o receptor do texto cifrado, doravante denotado por TC, nao saberia qual das opcoes tomar,
isto e, se deveria decifrar y em x
i
ou em x
j
.

E de referir que, no caso particular de T = (, cada func ao e


K
e uma permutac ao. Como
os conjuntos nitos de smbolos sao iguais, cada uma dessas func oes e
K
apenas permuta
os elementos do conjunto T.
Antes de considerarmos diferentes tipos de cifras simetricas, vamos introduzir uma
nocao intuitiva de funcao sentido unico
1
, referida em [14].
Uma funcao f de um conjunto T num conjunto ( e uma funcao sentido unico se f(x)
for facil de calcular, para todo o x T mas que, para um elemento aleatorio y Imf
seja computacionalmente invi avel encontrar um x T tal que f(x) = y.
Consideramos que uma func ao e facil de calcular quando pode ser calculada em
tempo polinomial e que e computacionalmente invi avel quando nao pode ser calculada
em tempo polinomial. Embora a existencia de tal func ao pareca ser equivalente `a conjectura
P ,= NP
2
, adoptaremos a seguinte convenc ao:
um problema sera chamado de facil se existir um algoritmo de tempo polinomial
das entradas que o resolva;
um problema sera chamado de difcil ou computacionalmente inviavel se nao exis-
tir um algoritmo determinista ou probabilstico de tempo polinomial das entradas que
o resolva;
1
Tambem conhecida como funcao one-way.
2
Um problema diz-se de classe P se existir um algoritmo de tempo polinomial para o resolver. Caso
contrario, diz-se nao-P. Os problemas do tipo P sao considerados exactamente aqueles cuja solucao e
praticavel computacionalmente. Os problemas ditos NP constituem uma classe intermedia de problemas
nao deterministas polinomiais: problemas cuja solucao nao e necessariamente de tipo polinomial, mas
em que a verica cao de uma solucao e polinomial. Ninguem faz ideia como demonstrar que P ,= NP,
todavia, ninguem acredita que P = NP. Alias, o problema P = NP e um dos problemas do milenio ,
considerado o problema fundamental da teoria da complexidade.
56 CAP

ITULO 3. CRIPTOLOGIA CL

ASSICA
3.1.1 A Cifra Shift
Este tipo de Cifra constitui um cripto-sistema, tal como enunciamos no incio deste captulo.
A Cifra Shift
T = ( = / = Z
26
Para 0 K 25, denimos as operac oes algebricas:
e
K
(x) = x +K mod 26
d
K
(y) = y K mod 26
com x, y Z
26
.
Podemos vericar que, d
K
(e
K
(x)) = x, x Z
26
.
d
K
(e
K
(x)) = d
K
(x + K) = x +K K = x, x Z
26
.
Caso particular: Cifra de Cesar. Esta baseia-se num alfabeto de cifra, constitudo
pelos mesmos smbolos, que avanca tres lugaresrelativamente ao alfabeto simples. Tra-
ta-se de uma Cifra Shift com K = 3.
Exemplo 3.1.2.
K = 3 e
3
(x) = x + 3 mod 26 d
3
(y) = y 3 mod 26
TO
3
: cesarusouaescritasecretacommuitafrequencia
que equivale numericamente a:
2 4 18 0 17 20 18 14 20 0 4 18 2 17 8 19 0 18 4 2 17
4 19 0 2 14 12 12 20 8 19 0 5 17 4 16 20 4 13 2 8 0
Aplicando a funcao e
3
obtem-se:
5 7 21 3 20 23 21 17 23 3 7 21 5 20 11 22 3 21 7 5 20
7 22 3 5 17 15 15 23 11 22 3 8 20 7 19 23 7 16 5 11 3
que corresponde a: FHVDUXVRXDHVFULWDVHFUHWDFRPPXLWDIUHTXHQFLD
O receptor para decifrar a mensagem comeca por converter a sequencia de caracteres
alfabeticos na corresponde equivalencia numerica e aplica a func ao d
3
. Por m, converte a
sequencia de inteiros nos respectivos caracteres alfabeticos.
3
Na criptograa de mensagens que envolvem caracteres alfabeticos usaremos letras mai usculas para o
texto cifrado e min usculas para o texto original.
3.1. CRIPTOGRAFIA CL

ASSICA 57
Na utilizacao pratica de um bom cripto-sistema e essencial que este satisfaca as condicoes:
Cada e
K
e d
K
tem que ser ecientemente computaveis;
Um Intruso, oponente ao sistema, ao ter conhecimento da sequencia de TC, deve ser
incapaz de determinar a chave K ou a sequencia correspondente de TO. De forma
ambgua, esta propriedade dene a seguranca do sistema.
A Cifra Shift nao e segura pois apenas tem 26 chaves possveis, ou seja [/[ = 26.
Assim, apos uma procura exaustiva da chave, TO sera determinado, em media, ao m de
13 tentativas de func oes d
K
.
Uma condicao necessaria para que um cripto-sistema seja seguro e o conjunto das chaves
ser muito grande, isto e,
/ muito longo = cripto-sistema seguro
3.1.2 A Cifra por Substituicao
Este sistema criptograco foi utilizado durante muitos anos e nao necessita de usar a
equivalencia numerica dos caracteres alfabeticos. Um exemplo deste genero de cifra sao os
criptogramas em forma de puzzles que aparecem em alguns jornais.
A Cifra por Substituicao
T = ( = Z
26
/ = o
26
, e o conjunto de todas as permuta coes possveis de 26 smbolos - 0, 1, . . ., 25.
Para cada permutac ao o
26
, denimos,
e

(x) = (x)
d

(y) =
1
(x)
com x, y Z
26
, onde
1
e a permuta cao inversa de .
Como podemos observar, uma chave para este modelo de cifra consiste numa per-
mutacao de 26 caracteres alfabeticos. Consequentemente, existem 26! possibilidades de
escolha de chaves,
[/[ = 26! > 4 10
26
.
Uma procura exaustiva da chave seria invi avel, mesmo para um computador. Todavia,
um conjunto de chaves bastante longo e uma condicao necessaria para a seguranca de um
58 CAP

ITULO 3. CRIPTOLOGIA CL

ASSICA
cripto-sistema, ainda que nao seja o suciente para garantir essa seguranca. Como veremos
posteriormente, existem outros metodos de criptanalise da Cifra por Substituic ao.
3.1.3 A Cifra Am
Quer a Cifra Shift, quer a Cifra Am sao casos especiais de Cifras por Substituicao, pois
ambas utilizam para cifrar uma permutac ao de caracteres alfabeticos, em que T = ( = Z
26
.
A primeira inclui apenas 26 das 26! permutac oes possveis de 26 elementos. A segunda
restringe as funcoes de encriptacao a:
e(x) = ax + b mod 26, a, b Z
26
.
Este tipo de func ao denomina-se funcao am. No caso particular de a = 1, obtemos a
funcao e
K
da Cifra Shift.
Mais uma vez, para se poder decifrar uma func ao am, e necessario que esta seja
injectiva e, portanto, para todo o y Z
26
, ax + b y mod 26 tem soluc ao unica x.
Vejamos:
A congruencia ax+b y mod 26 e equivalente `a congruencia ax y b mod 26. Como
y varia em Z
26
, tambem y b varia em Z
26
. Deste modo, e suciente estudar quando e
que a congruencia ax y mod 26, y Z
26
, tem soluc ao unica x Z
26
.
Pelo teorema 2.1.15, conclui-se que a congruencia ax y mod 26, y Z
26
, tem
solucao unica quando (a, 26) = 1. Caso contrario, se (a, 26) = d, d > 1, a congruencia
nao teria soluc ao unica e, consequentemente, a func ao e nao seria injectiva.
Exemplo 3.1.3.
Consideremos a funcao am: e(x) = 13x + 7 mod 26
(13, 26) = 13 ,= 1.
De facto, e(x) = e(x + 2), x Z
26
; logo,
e : Z
26
Z
26
nao e injectiva.
x e(x) = 13x + 7
Para esta funcao e(x) = 13x + 7 existem x
1
, x
2
Z
26
distintos:
13x
1
+ 7 13x
2
+ 7 mod 26 13(x
1
x
2
) 0 mod 26 26 [ 13(x
1
x
2
).
3.1. CRIPTOGRAFIA CL

ASSICA 59
Por exemplo, x
1
= 5 e x
2
= 7.
Resumindo, em termos gerais podemos aferir que a congruencia ax b mod m tem
solucao unica x Z
m
, b Z
m
, se e so se (a, m) = 1, precisamente o que nos diz o teorema
2.1.15.
No caso particular de m = 26, facilmente se verica que (Z
26
) = 12. Uma vez que a
decomposic ao num produto de factores primos do n umero 26 e, 26 = 2 13. Os 12 valores
possveis para a Z
26
sao: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25.
Na Cifra Am o parametro b pertence ao anel comutativo Z
26
logo, existem [/
26
[ =
12 26 = 312 chaves possveis. De facto, numa Cifra Am [/[ = m (m). Com um
conjunto de chaves tao pequeno, resulta obvio que esta cifra e insegura.
Para decifrar a Cifra Am e necessario resolver a congruencia y ax + b mod 26 em
ordem a x. Assim, y ax + b mod 26, ou seja, ax y b mod 26.
Pelo teorema 2.1.15 sabemos que a solucao e unica em Z
26
, e, para a determinar,
e necessario que a possua inverso multiplicativo. Todos os primos relativos de 26 tem
inverso multiplicativo, de acordo com o que foi dito na pagina 41.
Logo, se (a, 26) = 1, ent ao a tem inverso multiplicativo modulo 26. Consequentemente,
y ax + b mod 26e equivalente a x a
1
(y b) mod 26. Deste modo,
d
k
(y) = a
1
(y b) mod 26.
A Cifra Am
T = ( = Z
26
/ = (a, b) Z
2
26
: (a, 26) = 1
Para cada K = (a, b) /, denimos as func oes:
e
K
(x) = ax +b mod 26
d
K
(y) = a
1
(y b) mod 26
com x, y Z
26
.
Veriquemos que d
K
e a func ao inversa de e
K
.
De facto,
d
K
(e
K
(x)) = d
K
(ax+b) = a
1
(ax+bb) mod 26 = (a
1
a)x mod 26 = x, x Z
26
.
Exemplo 3.1.4. Suponhamos K = (5, 2) (K / porque, alem de (5, 2) Z
2
26
, tambem
(5, 26) = 1); logo, e
K
(x) = 5x + 2.
60 CAP

ITULO 3. CRIPTOLOGIA CL

ASSICA
5 tem 21 como inverso multiplicativo, ou seja, 5 21 1 mod 26 portanto, a correspon-
dente func ao d
k
tal que d
K
(e
K
(x)) = x e: d
K
(y) = 21y 16.
Utilizando esta Cifra Am, assim denida, vamos cifrar o TO, insegura.
Com a equivalencia entre os caracteres alfabeticos e os resduos modulo 26, obtemos a
correspondente sequencia, 8 13 18 4 6 20 17 0.
Ciframos:
e
K
(8) = 16 e
K
(13) = 15 e
K
(18) = 14 e
K
(4) = 22
e
K
(6) = 6 e
K
(20) = 24 e
K
(17) = 9 e
K
(0) = 2
e obtemos: 16 15 14 22 6 24 9 2
que corresponde `a sequencia alfabetica: Q P O W G Y J C
E, deciframos como se segue, para obtermos a palavra insegura:
d
K
(16) = 8 d
K
(15) = 13 d
K
(14) = 18 d
K
(22) = 4
d
K
(6) = 6 d
K
(24) = 20 d
K
(9) = 17 d
K
(2) = 0
Apos a equivalencia numerica entre os resduos modulo 26 e os caracteres alfabeticos
obtemos o pretendido.
Como vimos, na Cifra por Substituicao, e em particular, nas Cifras Shift e Am, apos
a escolha de uma chave, cada caracter alfabetico e transformado num unico caracter do
mesmo tipo. Portanto, os respectivos sistemas criptogracos dizem-se monoalfabeticos.
3.1.4 A Cifra de Vigen`ere
Ao contr ario das cifras denidas anteriormente, esta e uma cifra polialfabetica. Como
veremos, neste tipo de cifra por substituicao, o alfabeto de cifra modica-se durante a
aplicacao da func ao de encriptacao, sendo essa alterac ao denida pela chave pre-estabelecida.
Estes sistemas criptogracos sao mais seguros que os monoalfabeticos, pois geralmente a
sua criptanalise e mais difcil.
3.1. CRIPTOGRAFIA CL

ASSICA 61
A Cifra de Vigen`ere
Seja m um inteiro positivo xo.
T = ( = /
m
= Z
m
26
,
logo
[/
m
[ = 26
m
Para uma chave K = (k
1
, k
2
, k
3
, . . . , k
m
) denimos as operac oes:
e
K
(x
1
, x
2
, x
3
, . . . , x
m
) = (x
1
+ k
1
, x
2
+ k
2
, x
3
+ k
3
, . . . , x
m
+k
m
)
d
K
(y
1
, y
2
, y
3
, . . . , y
m
) = (y
1
k
1
, y
2
k
2
, y
3
k
3
, . . . , y
m
k
m
).
Veriquemos que d
K
e a func ao inversa de e
K
.
De facto,
d
K
(e
K
(x
1
, x
2
, x
3
, . . . , x
m
)) = d
K
(x
1
+ k
1
, x
2
+ k
2
, x
3
+ k
3
, . . . , x
m
+ k
m
) =
= (x
1
+ k
1
k
1
, x
2
+ k
2
k
2
, x
3
+ k
3
k
3
, . . . , x
m
+k
m
k
m
) = (x
1
, x
2
, x
3
, . . . , x
m
),
(x
1
, x
2
, x
3
, . . . , x
m
) Z
m
26
.
Tal como anteriormente, utilizaremos a equivalencia numerica entre os caracteres al-
fabeticos e os resduos modulo 26, denida na pagina 40. Todavia, caso o n umero de
caracteres da mensagem TO nao seja m ultiplo do n umero de colunas/linhas de k, pode-
mos, por exemplo, acrescentar o ultimo caracter ate obter um m ultiplo, ou utilizar a
equivalencia entre Z
27
e as 26 letras do alfabeto, juntamente com a tecla espaco, ou
considerar o codigo ASCII, Z
255
.
Na Cifra de Vigen`ere podemos associar cada chave k com uma sequencia alfabetica de
comprimento m-Palavra Chave. Este tipo de Cifra, encripta m caracteres alfabeticos ao
mesmo tempo: cada elemento de TO equivale a m caracteres alfabeticos.
Exemplo 3.1.5. Imaginemos que Alice quer enviar uma mensagem secreta para Bernardo,
utilizando uma Cifra de Vigen`ere. Consideremos a palavra chave BLAISE, que corresponde
a K = (1, 11, 0, 8, 18, 4) e m = 6. Para este comprimento de chave existem
[/
6
[ = (26)
6
= 308915776 > 308900000(= 3.089 10
8
)
chaves possveis. Suponhamos que TO e: criptosistemainseguro.
Para cifrar a mensagem efectua-se os seguintes passos:
Converte-se os caracteres alfabeticos de TO em resduos modulo 26;
2178151914188181941208131846201714
Agrupam-se seis a seis e adiciona-sea chave modulo 26 como se segue.
62 CAP

ITULO 3. CRIPTOLOGIA CL

ASSICA
2 17 8 15 19 14 18 8 18 19 4 12 0 8 13 18 4 6
1 11 0 8 18 4 1 11 0 8 18 4 1 11 0 8 18 4
3 2 8 23 11 18 19 19 18 1 22 16 1 19 13 0 22 10
20 17 14
1 11 0
21 2 14
O correspondente TC e: DCIXLSTTSBWQBTNAWKVCO
Bernardo para decifrar a mensagem convertia a sequencia de caracteres alfabeticos
recebida em resduos modulo 26. E, de forma semelhante, mas inversa, agrupava os resduos
obtidos seis a seis e subtraaa chave modulo 26, obtendo a mensagem original que Alice
lhe tinha enviado.
NOTA: Mesmo para valores de m relativamente pequenos, uma procura exaustiva da
chave requer muito tempo (como vimos, para m = 6, [/
6
[ = (26)
6
= 308915776 >
308900000(= 3.089 10
8
)). Contudo, se a procura for efectuada com o auxlio de um
computador, esta e feita com alguma rapidez.
3.1.5 A Cifra de Hill
Este cripto-sistema tambem e polialfabetico. A sua denominacao deve-se a Lester S. Hill,
que o sugeriu em 1929.
Considera-se m inteiro positivo, e T = ( = Z
m
26
.
Consideremos: m = 3; TO: x = (x
1
, x
2
, x
3
) e TC: y = (y
1
, y
2
, y
3
). Agora, denimos
cada um dos elementos de y: y
1
, y
2
, e y
3
, em func ao dos x
1
, x
2
, e x
3
, utilizando notac ao
matricial. Por exemplo:
_

_
y
1
y
2
y
3
_

_
=
_

_
1 3 4
2 7 0
0 0 1
_

_
_

_
x
1
x
2
x
3
_

_
Neste genero de cifra, escolhe-se para chave uma matriz quadrada, K
mm
, K = (k
ij
)
i, j=1,...,m
.
Para x = (x
1
, x
2
, . . . , x
m
) T K /.
Calculamos y = e
K
(x) = (y
1
, y
2
, . . . , y
m
).
Assim, y = Kx, e TC e obtido a partir de TO por meio de uma transformacao linear.
3.1. CRIPTOGRAFIA CL

ASSICA 63
Para se decifrar TC obtido atraves de uma cifra de Hill e necessario que a matriz K
possua inversa, neste caso `a esquerda. Consequentemente, K
1
y = x.
4
Voltando ao caso referido na pagina 62, em Z
26
,
K
1
=
_

_
7 23 24
24 1 8
0 0 1
_

_
, onde as operac oes aritmeticas sao efectuadas em Z
26
.
Seguidamente, vamos cifrar e decifrar uma mensagem, utilizando a matriz K como
chave.
Formemos, a partir de TO: margarida , tres elementos:
_

_
12
0
17
_

_
corresponde a mar
_

_
6
0
17
_

_
corresponde a gar
_

_
8
3
0
_

_
corresponde a ida
Ciframos TO, em Z
26
,
5
_

_
1 3 4
2 7 0
0 0 1
_

_
_

_
12
0
17
_

_
=
_

_
2
24
17
_

_
_

_
1 3 4
2 7 0
0 0 1
_

_
_

_
6
0
17
_

_
=
_

_
22
12
17
_

_
4
A matriz K e quadrada; logo, a inversa `a esquerda e igual `a inversa `a direita, porque o anel das
matrizes quadradas sobre um anel comutativo e Dedekind nito.
5
O n umero de caracteres da mensagem TO e m ultiplo do n umero de colunas/linhas de K. Tal como
na Cifra de Vigen`ere, caso isso nao aconte ca, acrescenta-se o ultimo caracter ate obter um m ultiplo, por
exemplo. Outra alternativa seria considerar Z
27
(26 letras mais 1 espaco) ou Z
255
, o codigo ASCII.
64 CAP

ITULO 3. CRIPTOLOGIA CL

ASSICA
_

_
1 3 4
2 7 0
0 0 1
_

_
_

_
8
3
0
_

_
=
_

_
17
11
0
_

_
Deste modo obtemos TC: CYMRRLA .
Se Bernardo quisesse decifrar a mensagem, utilizava a matriz K
1
e calculava os resduos
modulo 26, correspondentes aos caracteres alfabeticos de TO.
NOTA: Vericamos que a decifrac ao so e possvel se K for uma matriz invertvel. As
matrizes invertveis sao imprescindveis para decifrar uma mensagem.
A Cifra de Hill
Seja m um inteiro positivo xo.
T = ( = Z
m
26
/ = matrizes invertveis em Z
26
, mm
Para uma chave K / dene-se as funcoes:
e
K
(x) = Kx e d
K
(y) = K
1
y, onde todas as operac oes sao efectuadas em Z
26
.
Veriquemos que d
K
e a func ao inversa de e
K
.
De facto,
d
K
(e
K
(x)) = d
K
(Kx) = K
1
Kx = x, x Z
m
26
.
3.1.6 A Cifra por Permutacao
A Cifra por Permutacao e um caso especial da Cifra de Hill. Este tipo de cifra, ao contr ario
das cifras estudadas anteriormente, nao envolve a substituicao de caracteres do texto origi-
nal por outros caracteres no texto cifrado, mas sim a alterac ao das posicoes dos primeiros
caracteres. A distinc ao entre uma Cifra por Substituicao e uma por Permutacao foi reali-
zada, por volta de 1563, por Giovanni Porta.
Formalmente, denimos a Cifra por Permutacao como se segue,
3.1. CRIPTOGRAFIA CL

ASSICA 65
A Cifra por Permutacao
Seja m um inteiro positivo xo.
T = ( = Z
m
26
/ = conjunto de todas as permuta coes de 1, . . . , m.
Para uma chave, isto e, para uma permutac ao dene-se as func oes:
e

(x
1
, . . . , x
m
) = (x

(1), . . . , x

(m))
d

(y
1
, . . . , y
m
) = (y

1(1), . . . , y

1(m)),
onde
1
e uma permuta cao inversa de .
Veriquemos que d
K
e a func ao inversa de e
K
.
De facto,
d

(e

(x
1
, . . . , x
m
)) = d

(x

(1), . . . , x

(m)) = (x

1(1), . . . , x

1(m)) = (x
1
, . . . , x
m
),
(x
1
, . . . , x
m
) Z
m
26
.
Exemplo 3.1.6. Suponhamos m = 7 e, escolha-se a permuta cao seguinte para chave:
:
1 2 3 4 5 6 7
2 5 6 3 7 4 1
Entao,

1
:
1 2 3 4 5 6 7
7 1 4 6 2 3 5
Supondo TO: criptosistemainseguro
Para se cifrar a mensagem, agrupam-se os caracteres de 7 em 7 e aplica-se a permutac ao
.
criptos [ istemai [ nseguro
Depois, cada grupo de 7 letras e reagrupado de acordo com a permutac ao . Obtendo-se:
RTOISPCSMATIEISUREOGN
De forma similar, podemos decifrar esta mensagem utilizando a permutacao
1
.
Como ja foi referido, este cripto-sistema e um caso particular da Cifra de Hill. Dada uma
permuta cao /, podemos denir uma matriz de permuta cao associada a , K

= (k
i,j
),
tal que:
k
i,j
=
_
1 , i = (j)
0 , caso contrario
66 CAP

ITULO 3. CRIPTOLOGIA CL

ASSICA
Facilmente constatamos que a matriz de permutacao e uma matriz onde todas as linhas
e colunas tem exactamente um 1 e os restantes elementos sao nulos. Assim, podemos obter
esta matriz a partir da matriz identidade, permutando linhas ou colunas. Relacionando
esta cifra com a de Hill, vemos que a utilizacao da matriz K

e equivalente `a aplicac ao
duma permutacao correspondente. Alem disso, K
1

= K

1, ou seja, a inversa da matriz


K

e a matriz de permutacao denida por


1
. Consequentemente, a decifracao da Cifra
de Hill equivale `a permutacao de decifracao.
Exemplo 3.1.7. Exemplo de equivalencia entre permutacoes e matrizes de permutac ao.
Consideremos a permuta cao anteriormente denida e respectiva inversa,
:
1 2 3 4 5 6 7
2 5 6 3 7 4 1

1
:
1 2 3 4 5 6 7
7 1 4 6 2 3 5
As matrizes de permutac ao associadas sao, respectivamente (fazendo a troca linhas por
linhas):
K

=
_

_
0 0 0 0 0 0 1
1 0 0 0 0 0 0
0 0 0 1 0 0 0
0 0 0 0 0 1 0
0 1 0 0 0 0 0
0 0 1 0 0 0 0
0 0 0 0 1 0 0
_

_
K
1

=
_

_
0 1 0 0 0 0 0
0 0 0 0 1 0 0
0 0 0 0 0 1 0
0 0 1 0 0 0 0
0 0 0 0 0 0 1
0 0 0 1 0 0 0
1 0 0 0 0 0 0
_

_
tendo K

K
1

= I
7
.
3.1.7 Cifras de Fluxo
Em todos os cripto-sistemas vistos ate esta parte, utilizou-se a mesma chave-K-para cifrar
toda a mensagem TO. De facto, TC era obtido da forma:
y = y
1
y
2
. . . = e
K
(x
1
) e
K
(x
2
) . . . .
A cripto-sistemas deste tipo e usual chamar-se Cifras de Blocos.
Tambem e possvel, em alternativa, utilizar outro tipo de cripto-sistemas, denomina-
dos por Cifras de Fluxo
6
. Nestas, tem-se como objectivo gerar uma Chave de Fluxo, ou
6
Conhecidas como Cifras Stream
3.1. CRIPTOGRAFIA CL

ASSICA 67
Keystream, z = z
1
z
2
. . ., e utiliza-la para cifrar uma mensagem TO, x = x
1
x
2
. . . de
acordo com a seguinte regra:
y = y
1
y
2
. . . = e
z
1
(x
1
) e
z
2
(x
2
) . . .
Funcionamento de uma Cifra de Fluxo:
Suponhamos que temos uma chave, K /, e uma mensagem TO, x = x
1
x
2
. . ..
Dene-se uma funcao f
i
que serve para criar z
i
, o i-esimo elemento da Chave de Fluxo. f
i
depende da chave K e dos primeiros i 1 elementos de TO,
z
i
= f
i
(K, x
1
. . . , x
i1
).
Como vimos, os elementos da Chave de Fluxo, z
i
, sao usados para cifrar os elementos de
TO, x
i
, da forma: y
i
= e
z
i
(x
i
).
Para tal, calcula-se sucessivamente z
1
y
1
z
2
y
2
. . ..
Inversamente, para decifrar o texto obtido, y
1
y
2
. . ., calcula-se sucessivamente z
1
x
1
z
2
x
2
. . ..
Formalmente, podemos denir uma Cifra de Fluxo como se segue.
Denicao 3.1.8. Uma Cifra de Fluxo e um 7-uplo (T, (, /, L, T, c, T) que satisfaz
as condi coes:
1. T, ( sao conjuntos nitos de smbolos;
2. /, e o espaco das chaves, um conjunto nito de chaves possveis;
3. L e um conjunto nito chamado Alfabeto da Chave de Fluxo;
4. T = (f
1
, f
2
, . . .) e o gerador da Chave de Fluxo.
Para i 1, f
i
: / T
i1
L
5. Para cada z L, existe uma funcao e
z
c e uma funcao d
z
T:
e
z
: T
C
(
P
d
z
: (
P
T
C
tais que, d
z
( e
z
(x)) = x, x T
C
.
68 CAP

ITULO 3. CRIPTOLOGIA CL

ASSICA
Comparando uma Cifra de Blocos com uma Cifra de Fluxo, apercebemo-nos que a
primeira e um caso particular da segunda, com Chave de Fluxo constante tal que,
z
i
= K, i 1.
Alguns casos especiais de Cifras de Fluxo:
Uma Cifra de Fluxo e sncrona se a Chave de Fluxo e independente de TO, isto
e, se a Chave de Fluxo e gerada unicamente como func ao de K. Nesta situacao, K
expande-se numa Chave de Fluxo z
1
z
2
. . ..
Uma Cifra de Fluxo e periodica, com perodo d, se
z
i+d
= z
i
, i N.
A Cifra de Vigen`ere pode ser vista como um caso particular de uma Cifra de Fluxo
periodica, de perodo m, com palavra chave de comprimento m. Essa chave e da forma
K = (k
1
, . . . k
m
) tal que os m k
i
, com i = 1, . . . m sao os primeiros m elementos da
Chave de Fluxo: z
i
= k
i
, 1 i m. Para os restantes elementos a Chave de Fluxo
volta-se a repetir.
Neste caso especco, as func oes e
z
e d
z
sao identicas `as denidas para a Cifra Shift, ou
seja, e
z
(x) = x + z e d
z
(y) = y z.
Muitas vezes, a Cifra de Fluxo e descrita em termos do sistema binario, isto e,
T = ( = L = Z
2
.
Neste exemplo, as funcoes e
z
e d
z
sao adicoes modulo 2:
e
z
(x) = x +z mod 2
d
z
(y) = y z mod 2.
Se atribuirmos a 0 e 1 os valores de verdade falsidade(F) e verdade(V), respecti-
vamente, a adicao modulo 2 corresponde `a operacao disjuncao exclusiva. Consequente-
mente, podemos implementar sistemas, em hardware, capazes de cifrar e decifrar mensagens
ecientemente.
3.1. CRIPTOGRAFIA CL

ASSICA 69
Exemplo 3.1.9. Exemplo de um metodo para gerar uma Chave de Fluxo sncrona.
Suponha-se que inicialmente temos (k
1
, . . . , k
m
) e seja z
i
= k
i
, 1 i m (como na
Cifra de Vigen`ere).
Agora, vamos gerar a Chave de Fluxo atraves de uma relac ao de recorrencia linear, de grau
m:
z
m+i
=
m1

j=0
c
j
z
i+j
mod 2 , onde c
0
, c
1
, . . . , c
m1
Z
2
sao constantes pre-determinadas.
NOTA: Esta relacao de recorrencia tem grau m porque cada termo depende dos m
termos anteriores. Podemos considerar c
0
= 1 sem perda de generalidade, de outro modo,
a recorrencia seria de grau m1.

E tambem linear porque z


i+m
e uma funcao linear dos termos anteriores.
Neste exemplo, a chave K consiste em 2m valores: k
1
, . . . , k
m
, c
0
, . . . , c
m1
.
Se (k
1
, . . . , k
m
) = (0, . . . , 0), entao a Chave de Fluxo e constituda unicamente por
zeros. Neste caso, o texto cifrado seria identico ao texto original. No entanto, se as cons-
tantes c
0
, . . . , c
m1
forem escolhidas de modo conveniente, qualquer outro vector inicial
(k
1
, . . . , k
m
) dara origem a uma Chave de Fluxo periodica, de perodo 2
m
1. Assim,
verica-se que uma chave de pequeno comprimento pode originar uma Chave de Fluxo de
perodo longo.
Relativamente `a Criptanalise da Cifra de Vigen`ere podemos adiantar que esta sera que-
bradaatraves da investigacao do facto da chave de uxo desta Cifra ter um perodo curto.
Exemplo 3.1.10. Vamos gerar uma Chave de Fluxo:
Seja m = 5 e z
i+5
= z
i
+ z
i+1
mod 2, com i 1 a func ao que gera a Chave de Fluxo.
Se a Chave de Fluxo inicial for diferente de (0, 0, 0, 0, 0), obtemos uma Chave de Fluxo
de perodo 31. Por exemplo, se iniciarmos com o vector (1, 1, 0, 0, 0), a Chave de Fluxo
gerada e:
1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, ...
Se utilizarmos outro vector inicial, obteramos uma outra permuta cao cclica da mesma
Chave de Fluxo. Vejamos, se utilizarmos para vector inicial (1, 0, 0, 0, 0) obteramos a
70 CAP

ITULO 3. CRIPTOLOGIA CL

ASSICA
Chave de Fluxo:
1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, ...
Este metodo de gerar uma Chave de Fluxo pode ser produzido ecientemente em
hardware, utilizando um programa denominado Linear Feedback Shift Register ou
LFSR. Este metodo para gerar a Chave de Fluxo do exemplo 3.1.10 pode ser esquema-
tizado como se segue:
///. -,
() *+
+

k
1
oo
k
2
oo
OO
k
3
oo
k
4
oo
k
5
oo
Seguidamente, veremos outra Cifra de Fluxo, nao sncrona, conhecida por Cifra Au-
tochave. A sua designacao deve-se ao facto de o proprio texto original servir de chave,
exceptuando a inicial k - chave inicial.
Formalmente,
A Cifra Autochave
T = ( = / = L = Z
26
.
z
1
= k , z
i
= x
i1
(i 2) , 0 z
i
25.
e
zi
(x) = x +z
i
mod 26
d
zi
(y) = y z
i
mod 26
com x, y Z
26
.
Este tipo de cifra apropria-se `a Cifra de Vigen`ere. De seguida veremos um exemplo de
aplicacao da Cifra Autochave.
Exemplo 3.1.11.
K = 5 - chave inicial.
TO: criptosistemainseguro
Para cifrar a mensagem Alice converte TO na correspondente sequencia de resduos
modulo 26,
2 17 8 15 19 14 18 8 18 19 4 12 0 8 13 18 4 6 20 17 14
Logo, a Chave de Fluxo e:
[5 2 17 8 15 19 14 18 8 18 19 4 12 0 8 13 18 4 6 20 17]
3.2. CRIPTAN

ALISE CL

ASSICA 71
Aplicando a funcao e
z
, obtem-se:
7 19 25 23 8 7 6 0 0 11 23 16 12 8 21 5 22 10 0 11 5
Em caracteres alfabeticos, temos TC:
HTZXIHGAALXQMIV FWKALF
Para decifrar a mensagem, Bernardo converte o texto alfabetico nos correspondentes resduos
modulo 26 e, posteriormente, aplica a func ao de decifrac ao.
Vem que,
x
1
= d
z
1
(y
1
) = d
5
(7) = 7 5 mod 26 = 2
x
2
= d
z
2
(y
2
) = d
2
(19) = 19 2 mod 26 = 17
.
.
.
x
21
= d
z
21
(y
21
) = d
17
(5) = 5 17 mod 26 = 14
Como podemos observar, cada elemento que se obtem - x
i
, e o elemento da Chave de Fluxo
que se utiliza na determinac ao do x
i
seguinte. Deste modo, o receptor de TC determina
os resduos modulo 26 que geram TO, criptosistemainseguro.
Tal como as cifras anteriores, esta tambem e insegura, uma vez que apenas existem 26
chaves iniciais possveis.
3.2 Criptanalise Classica
Nesta secccao iremos estudar algumas tecnicas de Criptanalise. Teremos por base o
princpio de Kerckho.
O Princpio de Kerckho baseia-se na conjectura de que o intruso tem conhecimento
do sistema criptograco utilizado.
Assim, vamos supor que o intruso conhece o cripto-sistema usado. Caso contr ario, a
criptanalise de uma mensagem seria, obviamente, mais difcil de se obter.
Consoante a informac ao que o intruso tenha sobre o sistema utilizado, poderao ser
efectuados diferentes tipos de ataques, com o objectivo de determinar a chave. Seguem-
se alguns:
72 CAP

ITULO 3. CRIPTOLOGIA CL

ASSICA
1. Apenas e conhecido TC
Neste caso, o intruso teve acesso unicamente a TC, y.
2. Tambem e conhecido TO
Neste tipo de ataque, o intruso teve acesso a TO, x, alem de TC, y.
3. TO e escolhido
Nesta circunstancia, o intruso obteve, temporariamente, o mecanismo de cifrar men-
sagens. Logo, ele pode escolher uma mensagem de TO - x e obter a correspondente
cifrada - y.
4. TC e escolhido
Nestas condicoes, o intruso teve acesso, temporariamente, ao mecanismo de de-
cifrac ao. Assim, ele pode escolher uma mensagem de TC - y e obter a correspondente
mensagem de TO - x. Este tipo de ataquee particularmente relevante para os sis-
temas de chave p ublica, como veremos ulteriormente.
A partir de agora, estaremos no papeldo intruso, ou seja, o nosso objectivo sera
determinar a chave do sistema criptograco que estejamos a investigar.
Principiamos com um exemplo de uma tecnica criptanaltica, a tabela de Beker & Piper.
Esta e constituda pelas frequencias relativas estimadas para as 26 letras do alfabeto, calcu-
ladas atraves de uma grande quantidade de textos ingleses. Consequentemente, e possvel
a frequencia relativa de cada letra do alfabeto ser tomada como uma estimativa da proba-
bilidade da ocorrencia dessa letra num texto ingles.
Beker & Piper, com base na tabela 3.1, formaram 5 grupos de letras:
1. Letra E, com probabilidade de 0, 120 aproximadamente;
2. Letras T, A, O, I, N, S, H, R, cada uma com probabilidade entre 0, 06 e 0, 09;
3. Letras D, L, cada uma com probabilidade de 0, 04 aproximadamente;
4. Letras C, U, M, W, F, G, Y, P, B, cada uma com probabilidade entre 0, 015 e
0, 028;
5. Letras V, K, J, X, Q, Z, cada uma com probabilidade menor que 0, 01.
3.2. CRIPTAN

ALISE CL

ASSICA 73
letra probabilidade letra probabilidade
A .082 N .067
B .015 O .075
C .028 P .019
D .043 Q .001
E .127 R .060
F .022 S .063
G .020 T .091
H .061 U .028
I .070 V .010
J .002 W .023
K .008 X .001
L .040 Y .020
M .024 Z .001
Tabela 3.1: Probabilidades estimadas por Beker & Piper.
Para este genero de analise, tambem e util referir as sequencias de 2 ou 3 letras, isto e,
os digramas e os trigramas mais comuns.
Por ordem decrescente, os 30 digramas mais frequentes sao: TH, HE, IN, ER, AN, RE,
ED, ON, ES, ST, EN, AT, TO, NT, HA, ND, OU, EA, NG, AS, OR, TI, IS, ET, IT, AR,
TE, SE, HI, OF.
Tambem por ordem decrescente, os 12 trigramas mais usuais sao: THE, ING, AND,
HER, ERE, ENT, THA, NTH, WAS, ETH, FOR, DTH.
3.2.1 Criptanalise da Cifra Am
Na criptanalise de uma Cifra Am efectua-se uma analise frequencista das diferentes letras
que possam aparecer numa mensagem interceptada por um intruso.
Exemplo 3.2.1. Dado que a tabela de Beker & Piper diz respeito `a Lingua Inglesa, o
exemplo sera de uma mensagem em ingles, e nao em portugues. Tambem existe uma
tabela relativa `a Lingua Portuguesa; todavia, essa e brasileira e, caso fosse utilizada com
uma mensagem em Portugues(Portugal), a sua analise seria ambgua.
74 CAP

ITULO 3. CRIPTOLOGIA CL

ASSICA
Suponhamos que foi interceptada a seguinte mensagem, cifrada por uma Cifra Am
TC:
M J S Z T U G J C Z L S Q O C H J U C R
O Y H V W M T C P R Q T J W E Y Q J W O
A P U I F W R G W U B O W D W J C F C J
W C O U B K C T L W K C T Q M O Q P M F
Y R Q P G P Y K H W J T L W U J S G J U
Y Z O J Q P G O C P R B Q W F R O F Q P
W C J C F G W H J C Z J U H C H Q F Q T
S C P R Q P B U J K C T Q U P T L W U J S
Tabela de frequencias das 26 letras do alfabeto
letra frequencia absoluta letra frequencia absoluta
A 1 N 0
B 4 O 9
C 16 P 11
D 1 Q 13
E 1 R 7
F 7 S 5
G 6 T 9
H 6 U 11
I 1 V 1
J 16 W 15
K 4 X 0
L 4 Y 5
M 4 Z 4
TC e constitudo por 161 caracteres alfabeticos, o que e suciente para quebrar uma
Cifra Am. Efectuando uma analise estatstica das frequencias das diferentes letras, pode-
mos observar que as letras mais frequentes sao: C e J (16 ocorrencias); W (15 ocorrencias);
Q (13 ocorrencias); P e U (11 ocorrencias).
3.2. CRIPTAN

ALISE CL

ASSICA 75
Numa primeira analise, tendo em conta a tabela de Beker & Piper, podemos con-
jecturar que C e J sao as letras cifradas de e e r, respectivamente, uma vez que estas
sao das letras mais comuns num texto ingles. Temos que e
K
(4) = 2 e e
K
(17) = 9.
Como a cifra utilizada e Am, e
K
(x) = ax + b, com a, b Z
26
. Consequentemente,
temos duas equac oes lineares com duas incognitas.
_
4a + b = 2 mod 26
17a + b = 9 mod 26

_
b = 2 4a mod 26
13a = 7 mod 26
Como 13a 0 mod 26, quando a e par, ter-se-ia 0 = 7 mod 26. Se a fosse mpar,
a = 2x + 1, ter-se-ia 13 = 7 mod 26. Logo, esta hipotese nao e valida.
Segunda hipotese: C e J sao as letras cifradas de a e r, respectivamente. Temos que
e
K
(0) = 2 e e
K
(17) = 9. Procedendo de igual modo, temos que a = 5 e b = 2, sao
soluc oes unicas em Z
26
. Como mdc(a, 26) = 1, podemos considerar esta uma chave
possvel. Agora, teremos de calcular a funcao de decifracao, d
K
, correspondente `a
chave K = (5, 2) e, seguidamente, decifrar o texto dado para ver se TO tem sentido.
Este ultimo passo, conrmara a validade da chave K = (5, 2). Deste modo, obtemos
d
K
(y) = 21y 16, e o texto decifrado:
c r y p t o g r a p h y i s a b r o a d
s u b j e c t a n d i t r e q u i r e s
k n o w l e d g e o f s e v e r a l a r
e a s o f m a t h e m a t i c s i n c l
u d i n g n u m b e r t h e o r y g r o
u p s r i n g s a n d f i e l d s l i n
e a r a l g e b r a p r o b a b i l i t
y a n d i n f o r m a t i o n t h e o r y
Ou seja,
cryptography is a broad subject; and it requires knowledge of several
areas of mathematics, including number theory, groups, rings and elds,
linear algebra, probability and information theory.
7
7
Criptograa e um tema vasto; e exige o conhecimento de diferentes areas da matematica, incluindo
teoria dos n umeros, grupos, aneis e corpos, algebra linear, probabilidade e teoria de informacao.
76 CAP

ITULO 3. CRIPTOLOGIA CL

ASSICA
Este texto original foi retirado do livro The Codebreakers, de D. Kahn, Scribner,
1996.
3.2.2 Criptanalise da Cifra por Substituicao
A criptanalise de uma Cifra obtida por substituic ao e mais complicada que uma Cifra Am.
Vejamos um exemplo.
Exemplo 3.2.2. TC obtido atraves de uma Cifra por Substituicao:
S J W I J Z Q U X J Y X L Q G L X Z Y G E X X
R Z X Q U X Y Z J W L I J Z V U G E X W Q G L
X Z Y G A X J U W Y I G Z X Z X Q U X Y Z Z D
W Q X Y I X Y D S X G H Y I X R I J U J G I Z
Tabela de frequencias das 26 letras do alfabeto
letra frequencia absoluta letra frequencia absoluta
A 1 N 0
B 0 O 0
C 0 P 0
D 2 Q 6
E 2 R 2
F 0 S 2
G 8 T 0
H 1 U 6
I 7 V 1
J 8 W 5
K 0 X 17
L 4 Y 9
M 0 Z 11
A letra mais frequente no texto e a X. Assim, vamos conjecturar que d
K
(X) = e.
3.2. CRIPTAN

ALISE CL

ASSICA 77
As letras que mais vezes aparecem no texto alem da letra X sao: Z(11 ocorrencias); Y(9
ocorrencias); J e G(8 ocorrencias); I(7 ocorrencias); Q e U(6 ocorrencias); W(5 ocorrencias).
Vamos supor que estas letras sao encriptacoes de s, t, a, o, h, i, r, n, respectivamente.
Todavia, a frequencia entre elas nao varia muito para sabermos se e esta a melhor cor-
respondencia. Como tal, analisaremos alguns digramas, em particular os da forma X
e X , uma vez que conjecturamos que e era cifrada em X. Os digramas mais frequentes
sao: XY (4 ocorrencias); ZX, XZ e UX(3 ocorrencias). Como ZX e XZ aparecem 3 vezes
cada um, podemos pensar que d
K
(Z) r, s, t, e que d
K
(Y ), d
K
(U) r, s, t, pois
estes tambem ocorrem varias vezes. Contudo, as correspondencias correctas nao resultam
inequivocamente claras.
Vamos supor que d
K
(Z) = s, d
K
(U) = r e d
K
(Y ) = t. Ate este ponto temos,
S J W I J s Q r e J t e L Q G L e s t G E e e
R s e Q r e t s J W L I J s V r G E e W Q G L
e s t G A e J r W t I G s e s e Q r e t s s D
W Q e t I e t D S e G H t I e R I J r J G I s
Ao analisarmos o texto com as conjecturas que efectuamos, ressaltam-nos especialmente
dois poligramas iguais - seQrets, e dois trigramas - tIe. Como o trigrama mais comum e
the, vamos admitir que d
K
(I) = h. Quanto ao poligrama, tudo indica ser a palavra
secrets, logo d
K
(Q) = c. Incorporando no texto mais estas hipoteses, temos:
S J W h J s c r e J t e L c G L e s t G E e e
R s e c r e t s J W L h J s V r G E e W c G L
e s t G A e J r W t h G s e s e c r e t s s D
W c e t h e t D S e G H t h e R h J r J G h s
Ate agora, a letra e foi a unica vogal a ser decifrada.

E plausvel que algumas das
letras que faltam descobrir sejam vogais, caso contr ario teramos grandes sequencias de
consoantes. Consultando o texto anterior, constatamos que entre estas letras, as mais
constantes sao J, G e W. Dadas as suas posic oes, verosimilmente, J e G serao duas das
vogais a, o ou i. Segundo a tabela de Beker & Piper, os digramas mais comuns constitudos
por essas vogais e outras letras ja decifradas sao: at, to, ha, ea, as, or, ti, is, it, ar e hi.
78 CAP

ITULO 3. CRIPTOLOGIA CL

ASSICA
Confrantando estes digramas com o texto, estabelece-se a conjectura de que d
K
(J) = a e
d
K
(G) = o. Temos entao:
S a W h a s c r e a t e L c o L e s t o E e e
R s e c r e t s a W L h a s V r o E e W c o L
e s t o A e a r W t h o s e s e c r e t s s D
W c e t h e t D S e o H t h e R h a r a o h s
No texto aparecem, algumas vezes, os digramas eL e Le. Como e bastante usual nos
textos ingleses o digrama ed, sugere-se que d
K
(L) = d. Tambem podemos vericar que a
letra W surge a maioria das vezes a seguir a uma vogal, `a letra r ou `a letra D, esta ultima
ainda por decifrar. Como sao muito frequentes os digramas in, an, on, en e o
trigrama and, sugere-se que d
K
(W) = n. Portanto, temos:
S a n h a s c r e a t e d c o d e s t o E e e
R s e c r e t s a n d h a s V r o E e n c o d
e s t o A e a r n t h o s e s e c r e t s s D
n c e t h e t D S e o H t h e R h a r a o h s
Por m, facilmente podemos completar o texto com signicado,
Man has created codes to keep secrets and has broken codes to learn those
secrets since the time of the Pharaohs.
8
3.2.3 Criptanalise da Cifra de Vigen`ere
Existem varios metodos para quebrar uma mensagem encriptada atraves da Cifra de
Vigen`ere.
Vamos apresentar uma tecnica que serve para determinar o comprimento de uma chave
deste tipo de cifra, denotado por m:
Teste Kasiski
O nome desta tecnica deve-se ao seu autor, Friedrich Kasiski, que a descreveu em 1863.
8
O Homem tem criado codigos para manter segredos e tem quebrado codigos para car a conhecer esses
segredos desde o tempo dos faraos.
3.2. CRIPTAN

ALISE CL

ASSICA 79
Baseia-se na observac ao de que dois segmentos iguais de TO sao cifrados em segmentos
tambem estes iguais, sempre que a ocorrencia dos segmentos em TO estejam separados em
x posic oes, tal que x 0 mod m.
Inversamente, se observarmos dois segmentos iguais em TC, cada um de comprimento
maior ou igual a 3, diz-se que e muito provavel que esses dois segmentos identicos de TC
correspondam a segmentos identicos de TO.
3.2.4 Criptanalise da Cifra de Hill
Iremos estudar o ataque tipo 2 `a Cifra de Hill, ou seja, vamos admitir que TO e TC sao
conhecidos.
Nestas condic oes, este tipo de cifra e facilmente quebrada.
Comecaremos por assumir que o intruso ja determinou o comprimento da chave, m.
Vamos tambem considerar que ele tem, pelo menos, m pares distintos de muplos:
x
j
= (x
1,j
, x
2,j
, . . . , x
m,j
) - representa muplos de TO;
y
j
= (y
1,j
, y
2,j
, . . . , y
m,j
) - representa muplos de TC;
y
j
= e
K
(x
j
), com 1 j m
Se denirmos duas matrizes mm, X = (x
i,j
) e Y = (y
i,j
) temos a equac ao matricial:
Y = KX, onde K e uma matriz mm que representa a chave (desconhecida).
Se a matriz X for invertvel, o intruso pode determinar a chave que foi utilizada, deter-
minando K = Y X
1
e, desta forma, quebrar o sistema criptograco. Porque sendo X
e K invertveis, necessariamente Y tera de ser invertvel pois o produto de duas matrizes
invertveis e uma matriz invertvel.
Se a matriz X nao for invertvel, sera necessario escolher, por exaustao, outros pares
de muplos, caso se encontre.
Exemplo 3.2.3. Suponhamos que a mensagem civilizar e cifrado em SKDEXOZXN,
utilizando a Cifra de Hill, com m = 3 e desconhecendo-se a chave, K.
80 CAP

ITULO 3. CRIPTOLOGIA CL

ASSICA
Temos que: e
K
(2, 8, 21) = (18, 10, 3) ; e
K
(8, 11, 8) = (4, 23, 14);
e
K
(25, 0, 17) = (25, 23, 13). Ou seja,
X =
_

_
2 8 25
8 11 0
21 8 17
_

_
e Y =
_

_
18 4 25
10 23 23
3 14 13
_

_
.
Assim,
_

_
18 4 25
10 23 23
3 14 13
_

_
= K
_

_
2 8 25
8 11 0
21 8 17
_

_
.
Logo, K = Y X
1
Pelo teorema 2.2.4,
X
1
= (det X)
1
(cof X)
t
= 25
1
_

_
5 20 15
12 3 22
11 18 10
_

_
t
= 25
_

_
5 12 11
20 3 18
15 22 10
_

_
=
_

_
21 14 15
6 23 8
11 4 16
_

_
Logo,
K =
_

_
1 2 0
3 7 0
4 0 1
_

_
.
A maior diculdade na Cifra de Hill e encontrar uma matriz K invertvel. E na cripta-
nalise, a adversidade reside na possibilidade da matriz X-texto original- nao ser invertvel.
3.2.5 Criptanalise da Cifra de Fluxo
Vamos considerar que a Chave de Fluxo foi gerada atraves da utilizac ao do LFSR e, como
tal, o texto cifrado resulta da adic ao modulo 2 de TO (em linguagem binaria) com a Chave
de Fluxo, isto e, y
i
= x
i
+ z
i
mod 2.
A Chave de Fluxo e apresentada a partir de z
1
, . . . , z
m
utilizando a relacao de recorrencia
linear, denida no exemplo 3.1.9 :
z
m+i
=
m1

j=0
c
j
z
i+j
mod 2, onde c
0
, . . . , c
m1
Z
2
(c
0
= 1).
3.2. CRIPTAN

ALISE CL

ASSICA 81
Como todas as operac oes no sistema criptograco sao lineares, e possvel que este seja
vulneravel ao ataque 2, tal como a Cifra de Hill.
Suponhamos que o intruso conhece TO, x
1
, x
2
, . . . , x
n
e o correspondente TC, y
1
, y
2
, . . . , y
n
.
Podemos construir os elementos da Chave de Fluxo:
z
i
= x
i
+ y
i
mod 2 , 1 i n
Suponhamos que o intruso tambem sabe o valor de m. Consequentemente, ele apenas
precisa de determinar c
0
, c
1
, . . . , c
m1
para poder construir toda a Chave de Fluxo,
i 1 z
m+i
=
m1

j=0
c
j
z
i+j
mod 2
. .
equacao linear com m incognitas, c
0
,c
1
,...,c
m1
.
Se n 2m, temos m equacoes lineares com m incognitas e podemos determinar as
solucoes. Podemos escrever o sistema das equacoes na forma matricial:
[z
m+1
z
m+2
. . . z
2m
] = [c
0
c
1
. . . c
m1
]
_

_
z
1
z
2
. . . z
m
z
2
z
3
. . . z
m+1
.
.
.
.
.
.
.
.
.
.
.
.
z
m
z
m+1
. . . z
2m1
_

_
Se a matriz dos coecientes tiver inverso modulo 2, obtemos a soluc ao
[c
0
c
1
. . . c
m1
] = [z
m+1
z
m+2
. . . z
2m
]
_

_
z
1
z
2
. . . z
m
z
2
z
3
. . . z
m+1
.
.
.
.
.
.
.
.
.
.
.
.
z
m
z
m+1
. . . z
2m1
_

_
1
Notamos que a matriz dos coecientes,
_

_
z
1
z
2
. . . z
m
z
2
z
3
. . . z
m+1
.
.
.
.
.
.
.
.
.
.
.
.
z
m
z
m+1
. . . z
2m1
_

_
, e invertvel se m
for o grau de recorrencia utilizado para construir a Chave de Fluxo, z
m+i
=
m1

j=0
c
j
z
i+j
mod 2, como e referido em [18].
82 CAP

ITULO 3. CRIPTOLOGIA CL

ASSICA
Exemplo 3.2.4. Suponha-se que um intruso pretende quebrar uma Cifra de Fluxo.
Admitamos que ele conhece TC:
0010110111110110
e o correspondente TO:
1011001110001111.
Deste modo ele pode construir a Chave de Fluxo
1001111001111001.
Agora, vamos supor que o intruso sabe que a Chave de Fluxo foi gerada pelo sistema
LFSR, com m = 4. Assim,
z
4+i
=
3

j=0
c
j
z
i+j
mod 2, ou seja, por exemplo
[1 1 1 0] = [c
0
c
1
c
2
c
3
]
_

_
1 0 0 1
0 0 1 1
0 1 1 1
1 1 1 1
_

_
Logo,
[c
0
c
1
c
2
c
3
] = [1 1 1 0]
_

_
1 0 0 1
0 0 1 1
0 1 1 1
1 1 1 1
_

_
1
.
Pelo teorema 2.2.4, da pagina 51,
[c
0
c
1
c
2
c
3
] = [1 1 1 0]
_

_
0 0 1 1
0 1 1 0
1 1 1 1
1 0 1 1
_

_
Portanto, [c
0
c
1
c
2
c
3
] = [1 0 1 0] e a func ao de recorrencia que gera a Chave de Fluxo e
z
4+i
= z
i
+ z
i+2
mod 2.
Captulo 4
Criptologia de chaves p ublicas
4.1 Introducao
Nos sistemas criptogracos de chave privada - modelos classicos de criptograa e no DES
& AES - e necessario:
o conhecimento da chave por parte do emissor e do receptor da mensagem, antes da
comunicac ao;
a utilizacao de um canal de comunica cao seguro.
Alem disso, tera de haver conanca entre ambas as partes que estabelecem a comu-
nicacao, sendo esta uma das preocupac oes primarias no que diz respeito a transaccoes
comerciais.
Deste modo, e necessario que um sistema de chave p ublica satisfaca, para alem da
seguranca criptanaltica, as seguintes condic oes:
autenticidade: o receptor da mensagem devera ser capaz de vericar a origem da
mesma;
integridade: o receptor da mensagem devera ser capaz de conrmar que nao houve
modicacao da mesma, durante a sua transmissao;
83
84 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
nao repudiac ao: o emissor da mensagem nao dever a ter possibilidade de negar, pos-
teriormente, o envio da mesma.
Neste tipo de sistema, cada utilizador tem duas chaves: uma p ublica (que nos da uma
funcao de encriptacao e
K
) e uma privada (que nos da a func ao de decifrac ao d
K
, sendo
necessario que d
K
(e
K
(m)) = m, para qualquer mensagem m).
Tal como nos sistemas de chaves privadas (ver denic ao 3.1.1), um sistema criptograco
e denido da seguinte forma:
Denicao 4.1.1. Um sistema criptograco e um 5-uplo (T, (, /, c, T) que satisfaz as
seguintes condi coes:
1. T, ( sao conjuntos nitos de smbolos;
2. / e um conjunto nito de chaves privadas e p ublicas;
3. c = (
P
, T = T
C
;
4. para cada K /, existem e
K
c e d
K
T tais que
x T, d
K
(e
K
(x)) = x.
A condicao 4 indica que a func ao d
K
e inversa `a esquerda da func ao e
K
. Contudo, a
chave exigida para cifrar uma mensagem nao e a mesma que a chave necessaria para a
decifrar; isto e, o cripto-sistema e assimetrico (ou de chave p ublica).
Como a func ao e
K
e p ublica, um intruso pode gerar diversos textos cifrados. Logo, um
sistema deste tipo deve garantir seguranca na eventualidade de um ataque em que quer o
TC quer o TO sejam ambos conhecidos.
Destarte, para que o sistema seja funcional, e imprescindvel que um utilizador calcule
e
K
(m) e d
K
(m) rapidamente e que, em termos de seguranca, seja impossvel determinar
d
K
a partir de e
K
em tempo razoavel.
Assim, um sistema de chave p ublica deve ser construdo utilizando uma func ao sentido
unico(ver pagina 55) especca denominada sentido unico com informacao adicional, ou
seja, one-way trapdoor. Esta pode ser denida, intuitivamente e informalmente, como
uma funcao sentido unico f, de um conjunto X para um conjunto Y , com a propriedade
4.1. INTRODUC

AO 85
adicional que, dada uma informacao extra, trapdoor, torna-se viavel encontrar, para cada
y Imf, um x X, tal que f(x) = y.
Nos cripto-sistemas estudados neste captulo, assim como nas assinaturas digitais que
iremos analisar, a sua seguranca assenta na construc ao de func oes sentido unicobaseadas
na diculdade de resoluc ao de dois problemas computacionalmente inviaveis(pagina 55).
Todavia, e de referir que ate ao momento ainda nao conseguiram demonstrar essa inviabi-
lidade computacional(p. 133 [9]; p. 3 [14]).
1. Problema da Factorizacao de Inteiros - PFI
Consideremos a func ao f(p, q) = pq, com p e q primos sucientemente grandes.
A func ao e facil de calcular porque uma multiplicac ao demora tempo proporcional
ao produto do n umero dos dgitos de p e q. Contudo, calcular a func ao inversa de f
e um problema extremamente difcil de resolver. Nao e conhecido nenhum metodo
eciente capaz de factorizar n num produto de potencias de primos. Este problema
denomina-se Problema da Factorizacao de Inteiros - PFI.
O metodo da divisao trivial para factorizar n tem uma durac ao proporcional `a

p,
se p for o menor primo e n nao tiver mais de 18 a 20 dgitos.
Em n umero de dgitos, este processo e exponencial. Ate mesmo metodos de facto-
rizac ao mais ecientes nao conseguem factorizar n umeros com mais de 120 dgitos.
Por exemplo, se p e q tiverem cerca de 100 dgitos cada, entao esta funcao e sentido
unico. Porem, isso ainda nao esta demonstrado, como se pode encontrar referenciado
em [9].
2. Problema Logaritmo Discreto - PLD
Intuitivamente, podemos apresentar a seguinte denicao,
Denicao 4.1.2 ( PLD - Problema Logaritmo Discreto). Seja G um grupo
nito comutativo. Sejam e dois elementos do grupo tais que e elemento pri-
mitivo do grupo. O Problema Logaritmo Discreto consiste em encontrar um unico
inteiro a, 0 < a ord() tal que
a
. Denota-se a = log

.
Apesar de consideravel procura, ainda nao e conhecido nenhum metodo que resolva
o PLD em tempo polinomial do n umero de dgitos.
86 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Consideremos dois valores xos, n e e uma func ao f(x) =
x
mod n. Esta funcao
e considerada facil de calcular pois o n umero de passos necessarios para estimar f e
uma funcao polinomial do n umero de dgitos de x, e n. Ou seja, f e uma funcao
de tempo polinomial.
1
.
O problema matematico da funcao inversa, isto e, de determinar x, sabendo os valores
de n, e
x
mod n e conhecido como Problema Logaritmo Discreto - PLD.
3. Problema da Residuosidade Quadratica - PRQ

E evidente que existem outros problemas matematicos que podem ser utilizados na
construc ao de funcoes sentido unico. O terceiro exemplo que vamos ver e o Proble-
ma da Residuosidade Quadratica - PRQ. Este problema consiste em encontrar
x tal que x
2
a mod n, com (a, n) = 1. Por outras palavras, determinar se a e
resduo quadratico modulo n. Analisemos este caso:
Dados os inteiros a e n, vamos averiguar se a e um resduo quadratico modulo n:
Se n = p for um n umero primo mpar, ent ao pelo Criterio de Euler 2.1.32, a e
um resduo quadratico de n, se e so se a
n1
2
1 mod n.
Se n for um n umero composto mpar, ent ao a e um resduo quadratico de n, se
e so se a for um resduo quadratico modulo todo o primo que divide n.
De facto, se (
a
n
) = 1 entao (
a
p
i
) = 1, para algum i. Consequentemente, a
nao e um resduo quadratico modulo n.
Por outro lado, se (
a
n
) = 1, com n n umero composto mpar, e possvel que a nao
seja um resduo quadratico modulo n. Este e o caso que podemos ver como um pro-
blema intratavel, uma vez que o unico metodo conhecido para determinar resduos
quadraticos requer, neste caso, que primeiro factorizemos n. Portanto, dada a di-
culdade de resolver PRQ, muitos investigadores propuseram sistemas criptogracos
cuja seguranca se baseia nessa diculdade.
1
A funcao exponencial pode ser calculada, no maximo, em log
2
x operacoes de eleva cao ao quadrado.
O quadrado de um n umero, y
2
, pode ser calculado em (log
2
y)
2
passos. Em qualquer caso, o n umero de
passos e uma funcao polinomial do n umero de dgitos do valor de entrada, como e referido em [9].
4.1. INTRODUC

AO 87
No primeiro captulo foi ja referido que se deveu a Die e a Hellman a ideia da concepc ao
de um sistema de chave p ublica. O problema da distribuic ao da chave, foi resolvido atraves
do Protocolo de Troca de Chaves de Die-Hellman
PROTOCOLO DIFFIE-HELLMAN
1. Um primo p e um elemento primitivo Z

p
sao p ublicos;
2. Alice escolhe um elemento a Z

p
- a sua chave privada, calcula u =
a
mod p
e envia u a Bernardo;
3. Bernardo escolhe um elemento b Z

p
- a sua chave privada, calcula v =
b
mod p
e envia v a Alice;
4. Alice e Bernardo calculam k =
ab
mod p; utilizam k como uma chave privada
para futuras comunicac oes.
Podemos designar o problema matematico que esta na base deste protocolo, por PDH -
Problema Die-Hellman. Este problema reside na diculdade de encontrar
ab
mod p,
dados (p, , u, v).
Actualmente, ainda se desconhece qualquer processo que consiga determinar
ab
mod p,
a partir de u =
a
mod p e v =
b
mod p, sem a resolucao do PLD, denido na pagina
84. Deste modo, podemos dizer que o Protocolo de Troca de Chaves tem por base o PLD,
para grupos comutativos nitos. Todavia, esta conjectura ainda nao foi provada.
Assim sendo, para este protocolo nao existe nenhum algoritmo, conhecido e eciente,
que determine k em tempo razoavel. Com o conhecimento de (p, , u, v), sendo p um
primo sucientemente grande e escolhido apropriadamente, tal que
v
a
k mod p u
b
k mod p,
determinar a ou determinar b e um PLD.
Em termos de seguranca, este protocolo e susceptvel de um ataque durante o processo
de troca de chaves.

E possvel um intruso interceptar u e v e substituir ambos por u

e v

escolhidos por ele. Deste modo, se o intruso interceptar todas as comunica coes efectuadas
entre Alice e Bernardo, ele pode substitui-las por outras. Este tipo de ataque pode ser
evitado se, juntamente com o protocolo de troca de chaves, combinarmos um algoritmo de
autenticacao e um esquema de identicacao - aplicacoes de um sistema de chave p ublica.
88 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Com efeito, Rivest, Shamir e Adleman foram os primeiros a concretizar um sistema de
chave p ublica, o RSA.
Posteriormente, foram propostos outros sistemas de chave p ublica, tambem denomina-
dos assimetricos, tais como Merkle-Hellman Knapsack, McEliece, ElGamal, Chor-Rivest e
a Curva Elptica, cuja seguranca varia de acordo com os diferentes problemas computa-
cionais acima referidos, entre outros...
A criptograa assimetrica tem numerosas aplicac oes:
1. Documentos digitais (cheques, bilhetes de lotaria, reservas...) podem ser autentica-
dos utilizando tecnicas de chave p ublica. Uma assinatura e cifrada com uma chave
privada e a cifra resultante e axada ao documento. Qualquer entidade pode vericar
a autenticidade do documento utilizando uma chave p ublica anexa.
2. Assinaturas digitais e metodos de autenticac ao sao utilizados para um controle de
acesso em redes informaticas.
3. Tecnicas de chave p ublica sao actualmente utilizadas em comercio, smart cards,
caixas ATM, bem como em outras transacc oes bancarias electronicas.
4. A vericac ao de alguns tratados/convenc oes internacionais pode ser efectuada por
meio de tecnicas de chave p ublica.
4.2 Cripto-sistema RSA
Muitos dos resultados mencionados no captulo 1 assumem conhecimentos preliminares
sobre Teoria dos N umeros,

Algebra e Teoria Elementar de Grupos que sao exclusivamente
necessarios tanto para a construcao do sistema criptograco RSA, como do ElGamal.
O sistema RSA utiliza operacoes em Z
n
, onde n e o produto de dois naturais primos,
mpares e distintos, p e q. Veremos que a seguranca deste protocolo se baseia na diculdade
em factorizar inteiros que sao o produto de primos sucientemente grandes. Este problema
e conhecido como PRSA - Problema RSA.
Podemos descrever este sistema sucintamente, da seguinte forma:
4.2. CRIPTO-SISTEMA RSA 89
1. Escolhem-se aleatoriamente, atraves de testes de primalidade, dois primos p e q su-
cientemente grandes (cada um com, pelo menos, cerca de 100 dgitos
2
); calcula-se
n = pq e (n) = (p 1)(q 1).
2. Escolhe-se um inteiro b, 1 < b < (n) tal que (b, (n)) = 1 e calcula-se o inverso
de b, a b
1
mod (n), utilizando o Algoritmo de Euclides Alargado, 2.1.40.
3. A chave p ublica e o par (n, b) e a chave secreta e (p, q, a).
Descricao do cripto-sistema RSA
Seja n = pq, onde p e q sao primos mpares distintos.
Sejam T = ( = Z
n
, e dena-se
/ = (n, p, q, a, b) : n = pq, p, q primos ab 1 mod (n).
Para K = (n, p, q, a, b), dene-se as func oes:
e
K
(x) = x
b
mod n
d
K
(y) = y
a
mod n com x, y Z
n
.
Os valores de n e b sao p ublicos e os valores de p, q e a sao secretos.
A proposicao seguinte prova que a func ao d
K
e a operacao inversa da funcao e
K
.
Proposicao 4.2.1. Suponhamos que n = pq e um produto de dois n umeros primos
distintos. Se as funcoes e
K
e d
K
forem denidas como anteriormente, entao
d
K
( e
K
( x ) ) = x, para todo o x, 0 x < n .
Demonstracao
d
K
(e
K
(x)) = (x
b
)
a
x
ab
Como ab 1 mod (n), ent ao ab = 1 + t(n), para algum t Z, e reciprocamente.
Segue que
x
ab
x (x
p1
)
t (q1)
.
2
O n umero composto n usado no RSA deve ter mais do que 155 dgitos decimais.
90 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Se (x, p) = 1, pelo Pequeno Teorema de Fermat, 2.1.11, x
p1
1 mod p.
Logo, x
ab
= x (1)
t(q1)
mod p = x mod p.
Se (x, p) ,= 1, entao, x = 0 mod p. Logo, tambem x
ab
= x mod p.
Por outro lado, x
ab
x (x
q1
)
t (p1)
.
De forma semelhante, se (x, q) = 1, pelo Pequeno Teorema de Fermat, 2.1.11, x
q1
1
mod q.
Por conseguinte, x
ab
= x (1)
t(p1)
mod q = x mod q.
Se (x, q) ,= 1, entao, x = 0 mod q. Logo, tambem x
ab
= x mod q.
Destarte, p [ (x
ab
x) q [ (x
ab
x)
Consequentemente, pela propriedade 2.1.2, da pagina 38, n[ (x
ab
x) o que signica
que x
ab
= x mod n.
Deste modo, provamos que d
K
(e
K
(x)) = x, x Z
n
.
Pela descric ao do RSA podemos reconhecer que o PRSA, que pede para inverter a
funcao sentido unico com informac ao adicionale
K
, esta estreitamente relacionado com o
PFI. Embora se conjecture que quebraro RSA seja polinomialmente equivalente `a facto-
rizacao de n, esta equivalencia ainda nao foi demonstrada, como e referido em [14].
Vejamos um exemplo simples, para analisarmos tudo o que e necessario para a imple-
mentacao do RSA.
Exemplo 4.2.2.
1. Suponhamos que Bernardo deseja divulgar uma chave, para lhe enviarem mensagens
cifradas. Numa fase inicial, ele comeca por considerar dois n umeros primos sucien-
temente grandes p e q que vao ser mantidos secretos. Esses n umeros devem ter mais
de 100 dgitos cada, para tornar o sistema mais seguro. Contudo, por uma questao
de simplicidade, partimos do princpio que ele escolheu p = 13 e q = 17.
4.2. CRIPTO-SISTEMA RSA 91
2. Seguidamente, ele calcula n = 221 e (n) = 192. Como 192 = 2
6
. 3, ao escolher o
inteiro b para expoente da funcao e
K
este nao pode ser divisvel por 2 nem por 3.
Como observacao, na pratica nao ha necessidade de factorizar (n), basta vericar
que (b, (n)) = 1, utilizando o algoritmo de Euclides, 2.1.3. Deste modo, averiguamos
a existencia do inverso multiplicativo de b.
Suponhamos que Bernardo escolhe b = 25, (25, 192) = 1, entao existe b
1
mod 192.
3. Apos o passo anterior, ele ja pode divulgar a chave p ublica (n, b) = (221, 25), uma
vez que estes valores sao necessarios para cifrar mensagens que sejam enviadas a
Bernardo.
4. Imaginemos que uma pessoa, Alice, quer cifrar uma mensagem e remete-la a Bernardo.
Em primeiro lugar, ela tem de converter a mensagem original em n umero, x, por
exemplo, x = 29. Depois, para obter a mensagem cifrada y, tera de utilizar a func ao
e
K
(x) = x
b
mod n, com os valores da chave p ublica de Bernardo, ou seja, tera de
calcular y = 29
25
mod 221.
Como observac ao, para facilitar os calculos utilizaremos uma forma de simplicac ao
para a determinac ao de exponenciais em aritmetica modular.
Como 25 = 5 + 5 + 5 + 5 + 5,
29
25
mod 221 = [ 29
5
mod 221 29
5
mod 221 29
5
mod 221 29
5
mod 221
29
5
mod 221] mod 221 139
5
mod 221 107 mod 221.
Seguidamente, ela envia y = 107 a Bernardo.
5. Uma vez que e
K
e uma funcao sentido unico, e difcil a um intruso determinar
x a partir de y. Todavia, Bernardo consegue faze-lo, visto possuir uma informacao
adicional, trapdoor, isto e, conhece os valores de p, q e pode determinar a = b
1
.
Pelo Algoritmo de Euclides Alargado, 2.1.40, ele calcula a = 169.
6. Por m, para decifrar a mensagem, Bernardo limita-se a aplicar a func ao d
K
, a
y = 107
d
K
(107) = 107
169
mod 221 =
= [107
5
mod 221 107
5
mod 221
. .
33 vezes
107
4
mod 221] mod 221 29 mod 221.
92 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Assim, a seguranca do sistema RSA e garantida por a funcao e
K
ser sentido unico,
o que torna inviavel um intruso decifrar mensagens por ele interceptadas. Alem disso, o
receptor das mensagens tem informac ao adicional que as permite decifrar.
No entanto, para o sistema RSA ser seguro e imprescindvel que n = pq seja suciente-
mente grande, a m de que a sua factorizacao seja inviavel.
Alias, e como veremos mais adiante, a grandeza de p e q por si nao garantem a seguranca,
ou inviolabilidade, do RSA.
4.2.1 Implementacao do RSA
Para a implementac ao do RSA ainda e preciso focar alguns aspectos, nomeadamente:
A eciencia das func oes e
K
e d
K
;
Alguns pormenores da implementacao do sistema criptograco;
Problemas de seguranca.
Note-se que as func oes aritmeticas e
k
e d
k
envolvem exponenciais modulares, em Z
n
.
Uma exponenciacao modular, x
c
mod n, pode ser executada atraves de c 1 mul-
tiplicacoes modulares. No entanto, caso o expoente seja um valor elevado, este processo
e muito ineciente. Ate mesmo para valores pequenos os calculos sao morosos, quando
calculados com a ajuda de uma simples calculadora, como pudemos constatar no exemplo
4.2.2. De forma a reduzir o n umero de multiplicacoes modulares necessarias para calcular
x
c
mod n, usaremos o algoritmo square-and-multiply.
Algoritmo 4.2.3. [square-and-multiply para calcular x
c
mod n]
1. z = 1
2. Para i = l 1 downto 0 faz
3. z = z
2
mod n
4. Se b
i
= 1 entao z = z xmod n
b esta representado em notac~ao binaria, ou seja, b =
l 1

i =0
b
i
2
i
.
4.2. CRIPTO-SISTEMA RSA 93
Com a utilizacao do algoritmo square-and-multiply, as func oes e
K
e d
K
do RSA
podem ser executadas em tempo polinomial.
Exemplo 4.2.4. Para ilustrar a utilidade do algoritmo 4.2.3 vamos regressar ao exemplo
4.2.2 e considerar b = 175. No 4

passo do exemplo, para calcular y = 29


175
mod 221,
de forma eciente, vamos aplicar o square-and-multiply, como se segue:
i b
i
z
7 1 1
2
29 = 29
6 0 29
2
= 178
5 1 178
2
29 = 139
4 0 139
2
= 94
3 1 94
2
29 = 105
2 1 105
2
29 = 159
1 1 159
2
29 = 92
0 1 92
2
29 = 146
Portanto, y = 146.
4.2.2 Testes de Primalidade Probabilstica
Para implementar o RSA deve-se, em primeiro lugar, gerar dois primos sucientemente
grandes, p e q. Para tal, vamos criar aleatoriamente dois inteiros com um n umero elevado
de dgitos e testa-los quanto `a sua primalidade. Existem varios algoritmos nao determi-
nistas para testar a primalidade, tais como os algoritmos probabilsticos Monte Carlo, de
tempo polinomial: Solovay-Strassen e Miller-Rabin. Embora nao garantam que um inteiro
seja primo, a probabilidade de errar pode ser reduzida, correndo o algoritmo um n umero
suciente de vezes.
Dada a nossa preocupacao, e importante saber quantos inteiros de um determinado
tamanho sao necessarios testar ate determinarmos um que seja primo.
Teorema 4.2.5 (Teorema do N umero Primo). Dado um inteiro N, o n umero de
primos que nao excede N e, aproximadamente,
N
lnN
.
94 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
De facto, se considerarmos a func ao de distribuic ao de primos
(N) =

p N p primo
1
e compararmos com os valores de
N
lnN
, para N = 10, 10
2
, 10
3
, . . . , 10
20
(ver p.88 de [20]),
apercebemo-nos que
N
lnN
da uma estimativa razoavelmente precisa de (N).
Se escolhermos um inteiro p, de forma aleatoria, entao a probabilidade de que p seja
primo e, aproximadamente,
1
lnp
.
Denicao 4.2.6. Um algoritmo Monte Carlo yes-biased e um algoritmo probabilstico
para um problema de decisao no qual:
a resposta yesesta sempre correcta.
a resposta nopode estar incorrecta.
A probabilidade de dar uma resposta errada neste tipo de algoritmos e igual a .
Denicao 4.2.7. Um problema de decisao e um problema do qual tera de haver uma
resposta: simou nao.
Exemplos de problemas de decisao 4.2.8.
1. Composto
Hipotese: Seja n um inteiro positivo, n 2.
n e composto?
2. Resduos quadraticos
Hipotese: Seja p um primo mpar e x um inteiro tal que 0 x p 1.
x e um resduo quadratico modulo p?
O algoritmo de primalidade que se segue e um algoritmo Monte Carlo yes-biased
para o problema de decisao Composto, 1, com
1
2
, como consequencia do que foi dito
na pagina 48.
Algoritmo 4.2.9 (Teste de Primalidade Solovay-Strassen para um inteirompar,
n).
1. Escolher, ao acaso, um inteiro a: 1 a n 1.
4.2. CRIPTO-SISTEMA RSA 95
2. Se
_
a
n
_
a
n1
2
mod n, Entao
responde n e primo
Senao responde n e composto.
Interpretemos, de seguida, o algoritmo:
Se n for primo, pelo teorema 2.1.34,
_
a
n
_
a
n1
2
mod n. Logo a resposta n e primo
e correcta.
Sendo n um pseudo-primo de Euler relativamente `a base a, tambem se verica a con-
gruencia
_
a
n
_
a
n1
2
mod n, portanto o algoritmo responde n e primo incorrectamen-
te
3
.
No caso de
_
a
n
_
, a
n1
2
mod n, signica que a
n1
2
mod n , 1 mod n o que quer
dizer que n possui razes nao triviais, ou seja, n e composto e a resposta e correcta.
Seguidamente, vamos analisar a probabilidade de um inteiro n, escolhido aleatoria-
mente, ser primo quando a sua primalidade e testada m vezes, utilizando o algoritmo
Solovay-Strassen.
Sejam, A e B os acontecimentos:
A : um inteiro mpar, escolhido ao acaso, e composto.
B : o algoritmo responde n e primo m vezes consecutivas.
p( A [ B) =
p( B|A) p( A)
p( B )

2
m
p( A)
p( B | A) p( A) + p( B |

A) p(

A)
Pelo Teorema do N umero Primo 4.2.5, existem
N
lnN
n umeros primos menores ou iguais
a N. Se N n 2N, o n umero de primos e,
2N
ln2N

N
lnN

N
lnN
Assim, p(

A) =
N
lnN
N
2
=
2
lnN
e p( A) = 1
2
lnN
3
Exite uma innidade de pseudoprimos relativamente a uma base qualquer a. Assimptoticamente, estes
n umeros sao pouco frequentes, quando comparados com os n umeros primos. Da, o teste de pseudoprima-
lidade ser utilizado como um teste probabilstico de primalidade.
96 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Consequentemente,
p( A [ B)
2
m
(1
2
lnN
)
2
m
(1
2
lnN
) +1
2
lnN
=
2
m
(lnN 2)
2
m
(lnN 2) +2
=
lnN 2
lnN 2 +2
m+1
Para valores de m elevados, tais como 50 ou 100, p(A [ B) e proximo de 0.
Outro algoritmo Monte Carlo yes-biasedpara o problema de decisao Composto, e o
denominado Teste de Primalidade Miller-Rabin, tambem conhecido por Teste de
Pseudoprimalidade Forte.
Algoritmo 4.2.10 (Teste de Primalidade Miller-Rabin, para um inteiro mpar,
n).
1. Escreve-se n 1 = 2
k
m, k 1, mmpar
2. Escolhe-se, ao acaso, um inteiro a: 1 a n 1
3. Escreve-se b = a
m
mod n
4. Se b 1 mod n Entao responde "n e primo"e sai
5. Para i = 0 ate k 1 faz
6. Se b 1 mod n Entao responde n e primo e sai
Senao b := b
2
mod n
7. responde "n e composto"
Interpretemos, de seguida, o algoritmo:
Se n for primo, pelo Pequeno Teorema de Fermat temos a
n1
1 mod n a
n1
2

1 mod n. Ou seja, a
2
k
m
1 mod n a
2
k1
m
1 mod n.
Se a
2
k1
m
1 mod n a
2
k2
m
1 mod n.
O raciocnio segue de forma analoga ate obtermos a
2
0
m
1 mod n, ou seja, a
m
1
mod n.
4.2. CRIPTO-SISTEMA RSA 97
Podemos observar que o algoritmo segue um raciocnio inverso, isto e, em vez de
calcular sucessivamente a raiz quadrada, vai elevando ao quadrado, pois em termos com-
putacionais torna-se mais simples. Deste modo, calculamos a
m
mod n, a
2m
mod n, . . . ,
ate obtermos a
2
k
m
mod n.
Sejam x
0
= a
m
mod n, x
1
= a
2m
mod n, x
2
= a
4m
mod n, . . . , x
i
= a
2
i
m
mod n,
. . . , x
k
= a
2
k
m
mod n.
Obtemos cada termo da sequencia x
1
, x
2
, . . . , x
k
calculando o quadrado do termo anterior
e tomando o resto modulo n.
Assim:
Se o algoritmo terminar no passo 4: estamos perante a situac ao em que x
0
1
mod n logo, x
0
, x
1
, x
2
, . . . , x
k
e da forma 1, 1, . . . , 1.
Caso o algoritmo termine no passo 6: estamos perante a situac ao em que existe
um indce i, 0 i k 1 para o qual x
i
1 mod n. O que signica que
x
0
, x
1
, x
2
, . . . , x
k
e da forma , , 1, 1, . . . , 1, onde representa um inteiro
diferente de 1 e de 1.
Se o algoritmo terminar no passo 7: signica que n e, indubitavelmente, um n umero
composto. Assim, x
2
1 mod n tem mais solucoes alem das triviais, x 1
mod n para algumx = a
2
i
m
mod n, 0 i k 1. A sequencia x
0
, x
1
, x
2
, . . . , x
k

pode ser da forma , . . . , , 1, . . . , 1, ou , . . . , ,. Na primeira das duas


sequencias, existe um inteiro i, 0 i k para o qual a
2
i
m
1 mod n a
2
i1
m
,
1 mod n.
Apos a analise do algoritmo podemos apresentar as seguintes denic oes:
Denicao 4.2.11. Suponhamos que n e um inteirompar e n1 = 2
k
m, k 1, mmpar.
Entao, diz-se que n passa o teste de pseudoprimalidade forte relativamente `a base a se
a
m
1 mod n a
2
i
m
1 mod n, para algum 0 i k 1.
98 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Denicao 4.2.12. Um n umero composto mpar n que passe o teste de pseudoprimalidade
forte relativamente `a base a denomina-se pseudoprimo forte para a base a.
Provemos que o Teste Miller-Rabin e um algoritmo Monte Carlo yes-biased para
o problema de decisao Composto.
Demonstracao
Vamos provar por reduc ao ao absurdo.
Suponhamos que o algoritmo responde: n e composto, sendo n primo.
Como n e primo, pelo Pequeno Teorema de Fermat, a
n1
1 mod n e, consequente-
mente, a
2
k1
m
1 mod n. Sendo n primo, apenas existem razes triviais de 1 mod n,
nomeadamente, 1 mod n.
Por outro lado, como o algoritmo responde que n e composto, ent ao a
2
k1
m
, 1
mod n, logo a
2
k1
m
1 mod n.
Seguindo o mesmo raciocnio, a
2
k2
m
1 mod n e, por repetic ao sucessiva deste argu-
mento, chegamos `a conclusao que a
m
1 mod n.
Estamos perante uma contradic ao, pois neste caso o algoritmo responderia que n era
primo e nao composto, como foi o caso. Assim, se o algoritmo responder que n e composto,
a resposta esta incontestavelmente correcta.
Tambem existe uma innidade de pseudoprimos fortes relativamente a uma base qual-
quer a, tal como de pseudoprimos. Todavia, num determinado intervalo de n umeros reais
e relativamente a uma mesma base a, o n umero de pseudoprimos fortes e bastante menor
que o de pseudoprimos. Alem disso, nao existem inteiros compostos capazes de passar o
Teste de Pseudoprimalidade Forte Miller-Rabin relativamente a todas as bases a tais que
(a, n) = 1, contrariamente ao que acontecia com o Teste de Pseudoprimalidade Solovay-
Strassen.
Igualmente, podemos observar que, dada uma base a, o Teste de Pseudoprimalidade
apenas verica se a
n1
2
1 mod n, ou seja, se a
2
k1
m
1 mod n. Ja o Teste de
Pseudoprimalidade Forte verica se a
m
1 mod n a
2
i
m
1 mod n, para algum
0 i k 1.
Outra vantagem do Teste de Pseudoprimalidade Forte e a probabilidade dele errar ser
menor ou igual a 1/4, ou seja, menor que a do Teste Solovay-Strassene, portanto, mais
ecaz.
4.2. CRIPTO-SISTEMA RSA 99
4.2.3 Ataques ao RSA
Como ja foi mencionado, a seguranca do RSA baseia-se, supostamente, no PFI e na cre-
dibilidade de que a funcao e
K
(x) = x
b
mod n seja uma funcao sentido unico. Embora
ainda nao esteja provado, supoe-se que determinar d
K
, a partir de e
K
, seja equivalente a
factorizar o inteiro n.
Vejamos alguns possveis ataques para quebraro RSA:
Obviamente, um dos ataques reside na factorizac ao de n.
Proposicao 4.2.13. Suponhamos que n = pq, p e q primos distintos. Entao, factorizar
n e equivalente a determinar (n) .
Demonstracao
=
Se conhecermos a factorizac ao de n, ent ao (n) = (p 1) (q 1).
=
Por outro lado, se n e (n) forem conhecidos, facilmente calculamos p e q, resolvendo
o sistema
_
n = pq
(n) = (p 1)(q 1)
Na resoluc ao deste sistema obtemos uma equac ao do 2

grau em ordem a p (ou em


ordem a q), p
2
+ p((n) n 1), +n = 0, logo p e uma das razes desta equac ao
quadratica. Como p e q sao primos distintos com n = pq, q e a outra raiz da equac ao.
Desta maneira, factorizar n equivale a determinar (n).
Factorizacao de Fermat.
Esta tecnica e util para factorizar n, quando p e q sao primos mpares sucientemente
grandes, distintos e relativamente proximos um do outro. Vejamos,
Sejam: n = pq; x =
p +q
2
; y =
p q
2
.
Ent ao, n = x
2
y
2
= (x y) (x + y).
Como n = pq, p e q sao iguais a x + y e x y.
100 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Agora, para determinar p e q basta determinar x e y.
Suponhamos que x e o menor inteiro, maior que a raiz quadrada de n, ent ao
y
2
= x
2
n.
Se tivermos assumido o valor correcto de x, x
2
n sera um quadrado perfeito, y
2
.
Caso contr ario, a suposic ao estava errada e acrescentamos uma unidade `a suposicao
anterior do valor de x, e repetimos o mesmo raciocnio, ate encontrarmos um valor para x
tal que x
2
n seja o quadrado perfeito, y
2
.
Como p e q sao primos proximos um do outro, y e relativamente pequeno e o processo
deve repetir-se um pequeno n umero de vezes.
Seguidamente, apresentamos um algoritmo que factoriza n, desconhecendo o valor de
(n), mas que utiliza um algoritmo hipotetico A para calcular o valor do expoente de
decifracao, a.
Denicao 4.2.14. Seja um n umero real, com 0 < 1. Um algoritmo Las Vegas e
um algoritmo probabilstico tal que, para qualquer hipotese I, o algoritmo pode falhar sem
dar uma resposta. A probabilidade de isso acontecer e igual a .
Contudo, quando o algoritmo apresenta uma resposta ao problema, esta e correcta, con-
trariamente a um Algoritmo Monte Carlo que apresentava sempre uma resposta, estando
esta correcta ou nao.
O algoritmo que vamos descrever e do tipo Las Vegase determina uma raiz quadrada
nao trivial de 1 mod n que nos conduzira `a factorizacao de n, com apenas alguns calculos
polinomiais.
Algoritmo 4.2.15.
1. Escolhe-se, aleatoriamente, w: 1 w n 1
2. Calcula-se x = (w, n)
3. Se 1 < x < n, ent~ao sai
4.2. CRIPTO-SISTEMA RSA 101
4. Calcula-se a = A(b)
5. Escreve-se ab 1 = 2
k
m, m mpar k 1
6. Calcula-se v = w
m
mod n
7. Se v 1 mod n entao sai
8. Enquanto v , 1 mod n faz
9. v
0
:= v
10. v := v
2
mod n
11. Se v
0
1 mod n entao sai
12. Senao x = (v
0
+ 1, n)
Interpretemos, de seguida, o algoritmo:
Comecemos por referir que:
n = pq x
2
1 mod n se e so se
_
x
2
1 mod p x 1 mod p
x
2
1 mod q x 1 mod q
Desta forma, x
2
1 mod n tem quatro razes quadradas de 1 mod n, duas triviais e
duas nao triviais. Seja x uma dessas razes quadradas de 1 mod n, nao trivial,
x
2
1 mod n x
2
1 0 mod n n [ (x
2
1) n [ (x + 1) (x 1) .
Como x e uma raiz nao trivial, n ,[ (x + 1) n ,[ (x 1).
Logo, (n, x 1) = p ou (n, x 1) = q e (n, x + 1) = q ou (n, x + 1) = p.
Assim, determinar uma raiz quadrada de 1 mod n, nao trivial, conduz-nos `a factori-
zacao de n.
Se tivermos a sorte de escolher, inicialmente, um valor para w que seja m ultiplo de p
ou m ultiplo de q, poderemos factorizar n de forma imediata.
Caso (w, n) = 1, calculamos w
m
mod n, w
2m
mod n, . . . , ate que w
2
t
m
1 mod n,
para algum 0 t k.
102 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Como ab 1 = 2
k
m 0 mod (n), pelo Teorema de Euler 2.1.13, w
2
k
m
1
mod n.
Deste modo, o ciclo Enquanto . . . faz executa, no maximo, k iteracoes.
No nal deste ciclo temos um valor atribudo a v
0
tal que v
2
0
1 mod n.
Se v
0
1 mod n, o algoritmo falha, dado que esta e uma raiz quadrada de 1
mod n, trivial.
Caso contr ario, v
0
e uma raiz quadrada de 1 mod n, nao trivial e podemos factorizar
n.
Para estimarmos a probabilidade deste algoritmo falhar, vamos contar o n umero de
vezes que isso acontece, isto e, o n umero de soluc oes das congruencias dos passos 7 e 11,
determinado atraves do teorema que se segue. Este resultado encontra-se demonstrado em
[9].
Teorema 4.2.16. Seja n = pq, p e q primos distintos. Para um determinado a e um
determinado b, (n) [ (ab 1).
Se ab 1 = 2
k
m, com m mpar, entao o n umero de solucoes das congruencias:
_
w
m
1 mod n
w
2
t
m
1 mod n, 0 t k 1
e, no maximo,
n
2
.
Demonstracao
Seja ab 1 = 2
k
m, k > 1 m mpar; p 1 = 2
i
p
1
q 1 = 2
j
q
1
, com p
1
e
q
1
mpares.
Como,
_
(n) [ (ab 1)
(n) = (p 1) (q 1)
Entao 2
i +j
p
1
q
1
[ 2
k
m.
Portanto, 2
i +j
[ 2
k
p
1
q
1
[ m, logo i + j k p
1
[ m q
1
[ m.
Agora, w
m
1 mod n e equivalente a
_
w
m
1 mod p
lema 2.1.24
= tem (m, p 1) soluc oes
w
m
1 mod q
lema 2.1.24
= tem (m, q 1) solucoes
4.2. CRIPTO-SISTEMA RSA 103
ou seja,
_
_
_
(m, p 1) = (m, 2
i
p
1
)
p
1
| m mmpar
= p
1
solucoes.
(m, q 1) = (m, 2
j
q
1
)
q
1
| m mmpar
= q
1
soluc oes.
Pelo Teorema do Resto Chines 2.1.16, o n umero de solucoes de w
m
1 mod n e
p
1
q
1
.
Agora, vamos determinar o n umero de soluc oes de w
2
t
m
1 mod n, 0 t
k 1 , ou de forma equivalente, de
_
w
2
t
m
1 mod p
w
2
t
m
1 mod q
Pelo Pequeno Teorema de Fermat 2.1.11, temos t < i.
De facto, w
2
t
m
= w
2
t
p
1
r
, porque p
1
[ m. Por sua vez, para t i, w
2
t
p
1
r
1
mod p.
De igual modo, t < j, porque w
2
t
m
1 mod q, quando t j.
Portanto, t < mini, j.
Nestas condicoes, pelo lema 2.1.24, a congruencia w
2
t
m
1 mod p tem (2
t
m, p
1) soluc oes.
Por denic ao de p 1, por p
1
[ m, m mpar e por t < i , o n umero de soluc oes da
congruencia w
2
t
m
1 mod p e 2
t
p
1
.
De modo analogo, provaramos que, para t < mini, j, a congruencia w
2
t
m
1
mod q tem 2
t
q
1
soluc oes.
Pelo Teorema do Resto Chines 2.1.16, o n umero de solucoes da congruencia w
2
t
m
1
mod n e:
_
0 , t mini, j
2
2 t
p
1
q
1
, t mini, j 1
Como 0 t k 1, supondo i j, sem perda de generalidade, o n umero de
solucoes e zero para t i.
Assim, o n umero de escolhas possveis para w que, segundo o Algoritmo 4.2.15, repre-
sentam mas escolhase, no maximo,
p
1
q
1
+ p
1
q
1
(1 + 2
2
+ 2
4
+ 2
6
+ . . . + 2
2 i 2
) = p
1
q
1
(1 +
1 2
2 i
1 2
2
) = p
1
q
1
(1 +
2
2 i
1
3
)
=
2
3
p
1
q
1
+
p
1
q
1
2
2 i
3
<
2
3

n
4
+
p
1
q
1
2
2 i
3
<
n
6
+
p
1
q
1
2
i +j
3
104 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
=
n
6
+
(p 1)(q 1)
3
<
n
6
+
n
3
=
n
2
.
Agora, facilmente provamos que a probabilidade do algoritmo 4.2.15 nao responder e
menor ou igual a 1/2.
Demonstracao
Como o n umero de mas escolhaspossveis para w sao menores que
n
2
, ent ao, pelo
menos,
n
2
sao boas escolhas. Consequentemente, a probabilidade do algoritmo 4.2.15
ter sucesso e maior ou igual a
1
2
.
Todos os metodos de ataqueao RSA, como os que vimos anteriormente - determinac ao
de (n), desconhecendo a factorizac ao de n; determinac ao do expoente de decifrac ao a,
sem calcular (n) e sem factorizar n e a determinac ao da i-esima raiz de um n umero c
modulo n - sao problemas muito proximos do PFI. Como tal, podemos conjecturar que a
seguranca do RSA depende da diculdade da factorizac ao de n.
4.2.4 Falhas do protocolo RSA
Na implementacao do RSA existem fraquezas adicionais, que podemos denominar por
falhas do protocolo, na implementac ao deste sistema criptograco. Vejamos alguns
exemplos de falhas:
1. Common Modulus
Se varios utilizadores partilharem o mesmo produto de primos num cripto-sistema
RSA, com diferentes expoentes de encriptac ao, e enviarem a mesma mensagem para
mais do que uma pessoa, ent ao e possvel descobrir a mensagem original, sem facto-
rizar n e desconhecendo o valor de a.
Demonstracao
Suponhamos que m
b
1
mod n e que m
b
2
mod n sao conhecidos.
Se (b
1
, b
2
) = 1 entao existem x, y tais que b
1
x + b
2
y = 1,
logo podemos determinar m porque m = m
b
1
x+b
2
y
= (m
b
1
)
x
(m
b
2
)
y
mod n.
4.2. CRIPTO-SISTEMA RSA 105
2. Low Exponent
Seja b = 5, o expoente de encriptac ao utilizado por um grupo de utilizadores do
RSA.
Se n
1
, n
2
, n
3
, n
4
, n
5
forem cinco modulos, ou seja, produto de dois primos diferentes
RSA, de 5 utilizadores, ent ao uma mesma mensagem enviada para esses 5 utilizadores
pode ser descoberta.
Demonstracao
Suponhamos y
i
= m
5
mod n
i
, i = 1, 2, 3, 4, 5, sendo y
i
conhecido.
Como m < n
i
,
i
, entao m
5
< n
1
n
2
n
3
n
4
n
5
.
Pelo Teorema do Resto Chines 2.1.16, podemos encontrar Y tal que
Y y
i
mod n
i
, i = 1, 2, 3, 4, 5.
A soluc ao que satisfaz, simultaneamente, estas congruencias e unica modulo n
1
n
2
n
3
n
4
n
5
(os valores dos n
i
s devem ser primos relativos, de outro modo, podemos factoriza-los,
calculando o maximo divisor comum).
Assim, Y = m
5
porque m
5
satisfaz as 5 congruencias. A igualdade esta assegurada
pois m
5
< n
1
n
2
n
3
n
4
n
5
. Por consequencia, podemos determinar a mensagem m,
calculando a raiz ndice 5 de Y , ou seja, m =
5

Y .
4.2.5 Algoritmos de Factorizacao
Nesta secc ao iremos analisar alguns algoritmos de factorizac ao de um n umero composto
conhecido. Este processo e, em geral, mais moroso que a procura de um n umero primo com
aproximadamente o mesmo tamanho. Contudo, esta observacao ainda nao foi demonstrada.
A Divisao Trivial e um metodo perfeitamente razoavel para factorizar um inteiro
composto n, se n < 10
12
. Para valores de n superiores e necessario utilizar tecnicas
mais sosticadas.
Algoritmo (p 1) Pollard ( Metodo (p 1) Pollards)
Este metodo, embora nao resulte para todos os n umeros, da-nos a factorizacao de
106 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
muitos n umeros elevados, procurando todos os factores primos mpares p de n, que
tem a propriedade adicional de todas as potencias de primos q, de (p 1), serem
menores ou iguais a B (xo inicialmente).
A ideia deste algoritmo e a seguinte:
Seja n o inteiro composto que se pretende factorizar e p [ n, p primo. Pelo Pequeno
Teorema de Fermat 2.1.11, como (a, p) = 1 entao a
p1
1 mod p.
Sendo p desconhecido, seja M tal que (p 1) [ M.
Logo, a
M
1 mod p e portanto, p [ (a
M
1).
4
Como p [ n p [ (a
M
1) p [ (a
M
1, n).
Em vez de calcularmos a
M
1, podemos calcular:
a
M
1 mod n e (a
M
1, n).
Se (a
M
1, n) ,= n, entao encontramos um factor de n, nao trivial, que pode ser p.
Para M, a possibilidade mais simples e tomar M = k!, com valores crescentes para
k.
Se todas as potencias de primos de (p 1) forem menores ou iguais a k e por
sua vez menores ou iguais a B, ent ao (p 1) [ k! , o que implica que k! 0
mod (p 1) . Por conseguinte, como (a, p) = 1, segue que a
k!
1 mod p.
Temos ent ao,
p [ (a
k!
1 mod n) p [ n = p [ (a
k!
1 mod n, n).
Deste modo, podemos encontrar um factor de n nao trivial.
Algoritmo 4.2.17 (Algoritmo (p 1) Pollard).
Entradas: n e B: B q, para todo o q [ (p 1).
1. a := 2
4
M deve ser sucientemente pequeno para se poder calcular a
M
em tempo razoavel. Como desconhece-
mos a factorizacao em potencias de primos de (p 1), M deve incluir todos os primos com limite superior
B.
4.2. CRIPTO-SISTEMA RSA 107
2. Para j = 2 Ate B Fazer
a := a
j
mod n
3. d := (a 1, n)
4. Se 1 < d < n Entao d e um factor, n~ao trivial, de n (o algoritmo
termina com sucesso)
Senao n~ao se encontrou nenhum factor, n~ao trivial, de n (o algoritmo
falha).
Interpretemos, de seguida, o algoritmo:
Neste algoritmo comecamos por supor que p e um divisor primo de n e que q B,
para todo o q [ (p 1). Entao B! contem todas as potencias de primos q que dividem
(p 1), ou seja, (p 1) [ B!.
No nal do ciclo Para . . . Ate . . . Fazer, passo 2: temos a 2
B!
mod n.
Como p [ n, a 2
B!
mod p.
Pelo Pequeno Teorema de Fermat 2.1.11, a
p 1
1 mod p.
Portanto, 2
B!
1 mod p, ou seja, a 1 mod p.
Assim, no passo 4, temos que p [ (a 1) p [ n = p [ d, sendo d = (a 1, n)
por atribuic ao no passo 3.
Ent ao, d sera um divisor proprio de n, se 1 < d < n, a menos que a = 1, no passo
3.
Se encontrarmos um factor nao trivial d, podemos tentar factorizar d e
n
d
, caso eles
sejam n umeros compostos.
Durante a execucao deste algoritmo sao efectuadas B 1 exponenciac oes modulares.
Se aumentarmos bastante o tamanho de B, digamos para

n, o algoritmo tera sucesso


mas nao sera mais rapido que a divisao trivial.
Assim, este metodo requer que n tenha um factor primo p tal que (p 1) tenha
factores primos sucientemente pequenos.

E facil construir um cripto-sistema RSA
108 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
que resista `a factorizacao por este metodo, basta encontrarmos dois primos p
1
e q
1
-
utilizando um Teste de Primalidade Monte Carlo - tais que,
p = 2 p
1
+ 1 q = 2 q
1
+ 1, com p e q primos.
Consequentemente, o RSA modulo n = pq sera resistente `a tentativa de factorizac ao
de n, pelo Metodo (p 1) Pollard. De facto, se p = 2 p
1
+ 1 q = 2 q
1
+ 1,
segue que, p 1 = 2 p
1
q 1 = 2 q
1
, com p
1
e q
1
primos sucientemente grandes.
Nestas condic oes, (p 1) nao tem apenas factores primos pequenos, logo B teria
de ser um n umero bastante elevado, o que torna este metodo invi avel.
4.3 Cripto-sistema ElGamal
Este e um sistema de chave p ublica que foi introduzido por T. El Gamal em 1985. Pode
ser utilizado para cifrar mensagens e tambem em assinaturas digitais. A implementac ao
do sistema criptograco ElGamal pode ser efectuada em qualquer grupo nito onde o PLD
seja intrat avel.
Comecemos por apresentar uma descric ao generalizada do sistema criptograco ElGa-
mal.
Descric ao do cripto-sistema ElGamal (Generalizado)
Seja G um grupo nito munido da operac ao .
Seja G, um elemento tal que o PLD em H e intrat avel,
onde H =
i
: i 0 e o subgrupo gerado por .
Seja a N. Sejam T = G e ( = G G e dena-se,
/ = (G, , a, ) : =
a
.
Os valores e sao p ublicos e a e secreto.
Para K /, K = (G, , a, ) , e para um n umero secreto, escolhido ao acaso, k Z
|H|
,
dene-se:
e
K
: GZ
|H|
G G
(x, k) (y
1
, y
2
)
onde y
1
=
k
y
2
= x
k
.
Para um texto cifrado y = (y
1
, y
2
) dene-se :
d
K
(y
1
, y
2
) = y
2
(y
a
1
)
1
.
4.3. CRIPTO-SISTEMA ELGAMAL 109
A encriptac ao requer o uso de um inteiro aleatorio k tal que 0 k [ H [ 1.
Todavia, se Alice (a emissora da mensagem) nao conhecer a ordem do subgrupo H, ela
pode gerar um inteiro k tal que 0 k [ G [ 1 e cifrar e decifrar sem qualquer
alteracao.
Observacao 4.3.1.

E de referir que o grupo G nao necessita de ser um grupo abeliano,
mas sim o subgrupo H, o que acontece sempre, uma vez que H e cclico.
Como ja foi referido, embora os passos anteriores sejam especcos do sistema cripto-
graco ElGamal, o cripto-sistema pode aparecer de diversas formas devido aos varios tipos
de grupos nitos que podem ser utilizados para G.
Posteriormente, mostraremos como incorporar Curvas Elpticas neste sistema, sabendo
que as Curvas Elpticas sobre corpos nitos formam grupos nitos abelianos com determi-
nadas operac oes.
Em particular, quando consideramos para G o grupo multiplicativo Z

p
, com p primo,
a implementac ao do ElGamal e facil de efectuar como veremos de seguida:
Descric ao do cripto-sistema ElGamal
Seja p primo tal que o PLD e intratavel no corpo Z
p
(nomeadamente, no grupo multiplicativo Z

p
).
Seja Z

p
um elemento primitivo modulo p, isto e, Z

p
=< >.
Sejam T = Z

p
e ( = Z

p
Z

p
e dena-se,
/ = (p, , a, ) : =
a
mod p.
Para K /, K = (p, , a, ) , e para um n umero secreto, escolhido ao acaso, k Z
p 1
,
dene-se a func ao e
K
:
e
K
: Z

p
Z
p 1
Z

p
Z

p
(x, k) (y
1
, y
2
)
onde y
1
=
k
mod p y
2
= x
k
mod p .
Para y
1
, y
2
Z

p
dene-se :
d
K
(y
1
, y
2
) = y
2
(y
a
1
)
1
mod p.
Veriquemos que d
K
(e
K
(x, k)) = x.
De facto,
d
K
(e
K
(x, k)) = d
K
(y
1
, y
2
) = y
2
(y
a
1
)
1
mod p = x
k
[(
k
)
a
]
1
mod p
= x
k
(
a
)
k
mod p = x
k

k
mod p = x mod p.
110 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Neste algoritmo, a encriptacao e feita com alguma aleatoriedade, uma vez que se escolhe
um valor para k antes de cada encriptacao. Por outras palavras, podemos dizer que uma
mensagem m pode ser encriptada em diferentes textos cifrados, consoante os diferentes
valores escolhidos para k. Assim, o TC depende quer do TO quer do valor k. Por essa
razao, o sistema criptograco ElGamal e nao determinstico.
5
.
O valor de k e necessario para que haja uma verdadeira seguranca do sistema. Ele
aumenta o n umero de possibilidades de TO e diminui a criptanalise baseada em analise
estatstica.
A principal desvantagem da encriptac ao ElGamal e a mensagem cifrada car com uma
extensao dupla, ja que o TC e duas vezes mais longo que o correspondente TO.
Exemplo 4.3.2. Este exemplo sera construdo utilizando algumas das potencialidades do
software MuPAD Pro 3.1.
Suponhamos que Alice vai enviar a mensagem ELEJ a Bernardo, atraves de um canal
de comunicac ao inseguro.
1. Bernardo inicia o processo escolhendo p primo.
p:=nextprime(1785225)
1785227
Atraves das instrucoes que se seguem Bernardo verica que 2 e elemento primitivo
modulo 1785227.
primitivo:=proc(f,p)
local i, pot;
begin i:=1;
pot:=powermod(f,1,p):
while (pot<>1 and i<p-2) do
i:=i+1:
pot:=powermod(f,i,p):
if pot=1 then print(f,"nao e primitivo"); end if:
end while:
i:=i+1:
5
Um algoritmo diz-se determinstico quando nao utiliza n umeros escolhidos aleatoriamente.
4.3. CRIPTO-SISTEMA ELGAMAL 111
return(i);
end proc:
primitivo(2,1785227)
1785226
Seguidamente, escolhe a = 37.
Calcula = 1467650 e envia publicamente os valores (p, , ).
2^(37) mod 1785227
1467650
2. Suponhamos que Alice utiliza a correspondencia biunvoca entre as letras alfabeticas
e o conjunto completo de resduos modulo 26, denida na pagina 40, para converter
a mensagem num unico bloco numerico equivalente. Assim, x = 41149. Depois
Alice escolhe k = 47 e calcula y
1
= 1497693 e y
2
= 105376 e envia e
K
(x) =
(1497693, 105376) a Bernardo.
2^(47) mod 1785227
1497693
41149*1467650^(47) mod 1785227
105376
3. Assim, Bernardo, para decifrar a mensagem m, calcula:
d
K
(1497693, 105376) = 41149.
105376*(1497693^(-1))^(37) mod 1785227
41149
No exemplo que vimos, os valores de (p, , , y
1
, y
2
) sao todos p ublicos, uma vez que
foram transmitidos por um canal de comunicac ao inseguro. Para existir seguranca no
sistema, um intruso nao deve ser capaz de determinar y
2
y
a
1
mod p, isto e, de descobrir
o valor de a a partir de p, e =
a
mod p. Por outras palavras, o intruso nao dever a
ser capaz de resolver o PLD com um modulo primo.
Tal como o protocolo de Troca de Chaves Die-Hellman, tambem o sistema criptogra-
co ElGamal , nomeadamente a funcao sentido unico com informac ao adicionaldeste
protocolo baseia-se na diculdade do PLD 4.1.2 em corpos nitos, denido na pagina 85.
112 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Teorema 4.3.3. Quebraro sistema criptograco El Gamal e equivalente a resolver o
PDH-Problema Die-Hellman.
Demonstracao
Seja K = (p, , a, ) a chave do El Gamal, onde =
a
mod p.
Suponhamos que existe um algoritmo A que resolve o PDH e seja (y
1
, y
2
) uma en-
criptacao El Gamal.
Aplicando o algoritmo A com entradas p, , y
1
e obtemos o valor
A(p, , y
1
, ) = A(p, ,
k
,
a
) =
ka
mod p =
k
mod p.
Logo, facilmente determinamos a decifrac ao de (y
1
, y
2
),
x = d
K
(y
1
, y
2
) = y
2
(y
a
1
)
1
mod p = y
2
(
ka
)
1
mod p = y
2
(
k
)
1
mod p.
Reciprocamente, suponhamos que B e um algoritmo que determina a decifrac ao El Gamal.
Ou seja, B toma como entradas os valores p, , , y
1
, y
2
e calcula
x = y
2
(y
a
1
)
1
mod p = y
2
(y
log


1
)
1
mod p.
Assim, com as entradas p, , e , para o PDH, vemos que
B(p, , , , 1)
1
= 1 ((
log


)
1
)
1
mod p =
log


mod p,
como era pretendido.
Um outro aspecto importante para a seguranca do El Gamal esta relacionado com o
valor k. Este nao deve ser utilizado em diferentes TO. Se tal acontecesse, ent ao seria
possvel recuperar todos os TO a partir de um deles. Vejamos como:
Seja k o valor utilizado na encriptacao das mensagens m
1
, m
2
e m
3
e e
k
(m
1
) =
(y
1
, y
2
), e
k
(m
2
) = (z
1
, z
2
) e e
k
(m
3
) = (w
1
, w
2
), os correspondentes TC. Entao,
y
2
z
2
=
m
1

k
m
2

k
=
m
1
m
2
e
y
2
w
2
=
m
1

k
m
3

k
=
m
1
m
3
.
Destarte, as mensagens m
2
e m
3
podem ser recuperadas a partir do conhecimento de m
1
,
sem saber a chave privada a.
Como ja foi mencionado, o cripto-sistema ElGamal pode aparecer de diversas formas,
consoante o tipo de grupo utilizado para G. Assim, iremos seguidamente ver um exemplo
do ElGamal utilizando um grupo com elementos diferentes de zero de um corpo nito
que nao Z
p
. Tal como anteriormente, Alice vai enviar uma mensagem secreta a Bernardo
atraves de um canal de comunicacao inseguro.
4.3. CRIPTO-SISTEMA ELGAMAL 113
Exemplo 4.3.4. Este exemplo tambem sera construdo atraves do software MuPAD Pro
3.1.
Suponhamos que Alice vai enviar uma mensagem secreta a Bernardo, atraves de um
canal de comunicac ao inseguro.
1. Bernardo inicia o processo testendo a primitividade do polinomio f(x) = x
4
+ x
3
+
6x + 3 Z
7
[x]. Como f(x) e primitivo, G =< x >.
primitivo:=proc(f,p)
local i;
begin i:=1;
while powermod(x,i,f)<>1 do
i:=i+1:
end while;
print(i);
if i<p^(degree(f))-1 then print("nao eprimitivo")
else print(f,"eprimitivo");
end if;
end proc;
exper:=proc()
begin
input ("polinomio",f);
input ("primo",p);
Polin:=Dom::Polynomial(Dom::IntegerMod(p));
f:=Polin(f);
primitivo(f,p);
end proc;
proc primitivo(f,p)...end
proc exper()...end
exper()
f
(1 mod 7) x
4
+ (1 mod 7) x
3
+ (6 mod 7) x + (3 mod 7)
114 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
p
7
2. Seguidamente, relativamente ao corpo nito Z
7
[x]/(f(x)), com 2400 elementos, Bernardo
considera o grupo multiplicativo G = (Z
7
[x]/(f(x)))

. Depois toma a = x, n =
489, calcula b = a
n
mod f(x) e envia publicamente f(x), a e b.
b:=powermod(x,489,f)
6 x
3
+ 6 x
2
+ 6x
3. Utilizando um metodo p ublico de conversao, Alice converte a mensagem no elemento
w = 6x
3
+ x + 5 de G.
Polin
Dom::Polynomial(Dom::IntegerMod(7), LexOrder)
w:=Polin(6*x^3+x+5)
(6 mod 7)x
3
+ (1 mod 7)x + (5 mod 7)
Posteriormente, Alice escolhe k = 608, calcula y
1
= y e y
2
= z em G e envia os
valores calculados a Bernardo.
k:=608:
y:=powermod(x,k,f)
x
3
+ 4
z:=coerce(divide(w*powermod(b,k,f),f,Rem),Polin)
(3 mod 7)x
3
+ (6 mod 7)x
2
+ (3 mod 7)x + (6 mod 7)
4. Como f(x) e primitivo e a = x, ent ao [a[ = [G[ = 2400. Deste modo, Bernardo
consegue recuperar w calculando z y
(n)
= z y
(2400n)
= 6x
3
+ x + 5.
decifra:=coerce(divide(z*powermod(y,p^(degree(f))-1-n,f),f,Rem),Polin)
(6 mod 7)x
3
+ (1 mod 7)x + (5 mod 7)
4.3. CRIPTO-SISTEMA ELGAMAL 115
4.3.1 Algoritmos para PLD
Qualquer vers ao do Problema Logaritmo Discreto e equivalente ao PLD num grupo cclico.
A diculdade do PLD parece depender, essencialmente, da representac ao do grupo que e
usado. De um modo mais geral, podemos considerar o PLD para um grupo nito G da
seguinte forma:
Premissa: I = (G, , ) onde G e um grupo nito munido de uma operacao ,
G e H sendo H o subgrupo gerado por , ou seja, H =
i
: i 0.
Objectivo: Encontrar o unico inteiro a : 0 a [ H [ 1 e
a
= onde
a
signica
. .
a vezes
. Denotamos o inteiro a por log

.
Doravante, nesta subsecc ao, vamos considerar p primo, um elemento primitivo modulo
p, com e p xos. O problema PLD surge em qualquer grupo G; todavia iremos considera-
lo apenas em grupos comutativos nitos, como por exemplo no grupo multiplicativo (Z

p
, ),
onde o PLD e um problema difcil.
Sendo um elemento primitivo modulo p, entao 1, ,
2
, . . . ,
p 2
e um conjunto
com elementos distintos modulo p; todos eles sao elementos invertveis modulo p. Assim,
para qualquer inteiro , com (, p) = 1 existe um a , 0 a p 2 tal que

a
mod p (denicao 4.1.2). O nosso objectivo nesta seccao e estudar algoritmos que
determinem o expoente a .
Os algoritmos conhecidos para resolver o PLD podem ser categorizados, essencialmente,
em tres classes:
Algoritmos que trabalham em grupos arbitrarios, isto e, aqueles que nao exploram
qualquer propriedade especca do grupo, como e o caso do Metodo Shanks
Baby-Step, Giant-Step ou Algoritmo de Shank. Este e um tipo de metodo
de razes quadradas para calcular logartmos discretos, ou seja, calcula a = log


mod p tal que
a
= mod p.
Algoritmos que trabalham bem em grupos nitos, para os quais a ordem dos grupos
nao tem factores primos longos. Mais especicamente, algoritmos que trabalham
para grupos com ordens suaves.
6
Neste tipo de algoritmos encontra-se o Algo-
ritmo Silver Pohlig Hellman baseado no Teorema do Resto Chines 2.1.16.
6
Um inteiro positivo chama-se suave ou smooth se nao tiver factores primos longos.
116 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Algoritmos que exploram metodos para representar os elementos do grupo como
produto de elementos de um conjunto relativamente pequeno, denominado base
de factores-pode tambem utilizar o Teorema do Resto Chines. Nesta categoria
encontram-se varias formas de Calculus Index
Algoritmo de Shank
Algoritmo 4.3.5 (Shank).
1. Calcula m =

p |
2. Calcula-se o passo "Giant":
Determina-se uma sequ^encia L
1
de pares ordenados da forma
(j,
mj
mod p), 0 j m 1.
L
1
= (0, 1), (1,
m
), (2,
2m
), . . . , (m 1,
m(m1)
) mod p
e ordena-se, por ordem crescente, relativamente `a segunda coordenada,

mj
mod p.
3. Calcula-se o passo "Baby":
Determina-se uma sequ^encia L
2
de pares ordenados da forma
(i,
i
mod p), 0 i m 1.
L
2
= (0, ), (1,
1
), (2,
2
), . . . , (m 1,
1 m
) mod p
e ordena-se, por ordem crescente, relativamente `a segunda coordenada,

i
mod p.
4. Procura-se, compara-se e calcula-se:
Procura-se em ambas as listas, L
1
e L
2
, um par com a mesma segunda
coordenada e define-se log

= mj + i mod (p 1).
Interpretemos, de seguida, o algoritmo:
De facto,
_
(j, y) L
1
(i, y) L
2
=
_

mj
y mod p

i
y mod p
4.3. CRIPTO-SISTEMA ELGAMAL 117
Logo,
mj

i
mod p
mj +i

a
mod p que, por sua vez, e equivalente a
a mj + i mod (p 1), 0 i, j m 1.
Com efeito, dene-se log

= mj + i mod (p 1). Deste modo, a procura do passo 4


tera sucesso. Este passo pode ser realizado com uma passagem simultanea por cada uma
das duas sequencias, L
1
e L
2
. Embora o algoritmo possa trabalhar em grupos arbitrarios,
se a ordem do grupo for maior do que 10
40
, o algoritmo e invi avel.
Exemplo 4.3.6. Suponhamos p = 317. Pretendemos determinar log
5
315.
1. Calcula m =

p |
p = 317; m = 17; = 5; = 315. Entao,
m
mod p = 5
17
mod 317 = 154.
2. Calcula-se o passo Giant:
Vamos determinar uma sequencia L
1
de pares ordenados da forma:
(j, 5
17 j
mod 317) , 0 j 16.
L
1
= (0, 1); (1, 5
17
mod 317); (2, 5
2 17
mod 317); . . . , (16, 5
16 17
mod 317)
ou seja,
L
1
= (0, 1); (1, 154); (2, 258); (3, 107); (4, 311); (5, 27); (6, 37); (7, 309); (8, 36);
(9, 155); (10, 95); (11, 48); (12, 101); (13, 21); (14, 64); (15, 29); (16, 28)
e agora ordena-se, por ordem crescente, relativamente `a segunda coordenada,
L
1
= (0, 1); (13, 21); (5, 27); (16, 28); (15, 29); (8, 36); (6, 37); (11, 48); (14, 64);
(10, 95); (12, 101); (3, 107); (1, 154); (9, 155); (2, 258); (7, 309); (4, 311)
3. Calcula-se o passo Baby:
Determinamos uma sequencia L
2
de pares ordenados da forma:
(i, 315 5
i
mod 317), 0 i 16.
L
2
= (0, 315); (1, 63); (2, 76); (3, 142); (4 282); (5, 310); (6, 62); (7, 266); (8, 180);
(9, 36); (10, 134); (11, 217); (12, 297); (13, 313); (14, 126); (15, 152); (16, 284)
agora ordena-se, por ordem crescente, relativamente `a segunda coordenada,
L
2
= (9, 36); (6, 62); (1, 63); (2, 76); (14, 126); (10, 134); (3, 142); (15, 152); (8, 180);
(11, 217); (7, 266); (4, 282); (16, 284); (12, 297); (5, 310); (13, 313); (0, 315)
118 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
4. Procura-se, compara-se e calcula-se:
Procura-se em ambas as listas, L
1
e L
2
, um par com a mesma segunda coordenada
e dene-se log

= mj + i mod (p 1), oy seja,


(8, 36) L
1
(9, 36) L
2
Logo,
log
5
315 = 17 8 + 9 mod 316 = 145.
Algoritmo Silver Pohlig Hellman
Algoritmo 4.3.7 (Silver Pohlig Hellman). Seguidamente, vamos ver uma descri-
c~ ao deste algoritmo que serve para calcular log

mod q
c
, considerando:
q primo, tal que p 1 0 mod q
c
p 1 , 0 mod q
c +1
.
Durante a execuc~ao do algoritmo, este calcula a
0
, a
1
, . . . , a
c 1
, onde
x =
c 1

i =0
a
i
q
i
, com x = a mod q
c
a = log

.
1. Calcula
i
=
(p 1) i
q
mod p, 0 i q 1
2. Coloca j := 0
j
:=
3. Enquanto j c 1 Faz
4. :=
p 1
q
j +1
j
mod p
5. Encontra i tal que
i
=
6. a
j
:= i
7.
j +1
:=
j

a
j
q
j
mod p
8. j := j + 1
Interpretemos, de seguida, o algoritmo:
4.3. CRIPTO-SISTEMA ELGAMAL 119
Suponhamos p 1 =
k

i =1
p
c
i
i
, p
i
primos distintos.
O valor a = log

e determinado, de forma unica, mod (p 1).


Se calcularmos a mod p
c
i
i
, para cada 1 i k, ent ao podemos calcular a mod (p 1),
pelo Teorema do Resto Chines 2.1.16.
Mediante as nossas condicoes, mostraremos como calcular o valor x = a mod q
c
,
0 x q
c
1.
Assim, podemos exprimir a como: a = x + q
c
s, s inteiro.
Tambem podemos representar x da forma
x =
c 1

i =0
a
i
q
i
, 0 a
i
q 1 0 i c 1.
1

passo: calcular a
0
Podemos demonstrar que

p 1
q

(p 1) a
0
q
. .

0
mod p (4.1)
Demonstracao
Sabemos que a = log

mod (p 1). Como (, p) = 1, entao


a
mod p.
Logo,
p 1
q

(p 1) a
q
mod p.
Como a = x + q
c
s, s inteiro, temos que:

p 1
q

(p 1) (x +q
c
s)
q
mod p.
Assim, e suciente mostrar que:
(p 1) (x +q
c
s)
q

(p 1) a
0
q
mod p, ou seja,
(p 1) (x+q
c
s)
q

(p 1) a
0
q
mod (p 1).
Temos que:
(p 1) (x+q
c
s)
q

(p 1) a
0
q
=
(p 1)
q
(x + q
c
s a
0
) =
(p 1)
q
(
c 1

i =0
a
i
q
i
+ q
c
s a
0
) =
(p 1)
q
(
c 1

i =1
a
i
q
i
+ q
c
s) = (p 1) (
c 1

i =1
a
i
q
i1
+ q
c 1
s) 0 mod (p 1).
120 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Logo,
p 1
q

(p 1) a
0
q
mod p
Deste modo vamos comecar por calcular
p 1
q
mod p
Se
p 1
q
1 mod p = a
0
= 0.
Se
p 1
q
, 1 mod p ,
ent ao calculamos sucessivamente
1
=
p 1
q
mod p,
2
=
(p 1) 2
q
mod p, . . .
ate que
i

p 1
q
mod p, para algum i, 0 i q 1. Assim, a
0
= i.
Se c = 1
Neste caso, o algoritmo termina pois, x = a mod q, 0 x q 1 .
Logo, x = a
0
mod q, ou seja, x = i mod q.
Se c > 1
prosseguimos o algoritmo, calculando a
1
.
Para isso, denimos
1
=
a
0
e denotamos x
1
= log


1
. .
a
1
mod q
c
.
x
1
= a
1
mod q
c
x
1
= log


1
mod q
c
x
1
= log

(
a
0
) mod q
c
x
1
= log

a
0
mod q
c
x
1
= x a
0
mod q
c
x
1
=
c 1

i =0
a
i
q
i
a
0
mod q
c
x
1
=
c 1

i =1
a
i
q
i
mod q
c
.
Ent ao, provaremos que:
p 1
q
2

(p 1) a
1
q
mod p.
Demonstracao
Sabemos que:
1
=
a
0
e que x
1
= log


1
. .
a
1
mod q
c
, ou seja,
x
1
=
c 1

i =1
a
i
q
i
mod q
c
.
Seguindo um raciocnio analogo `a demonstracao da igualdade 4.1, prova-se o pre-
tendido.
4.3. CRIPTO-SISTEMA ELGAMAL 121
De facto,
p 1
q
2
1
(
a
0
)
p 1
q
2
mod p, ou seja,

p 1
q
2
1
(
x+q
c
s a
0
)
p 1
q
2
mod p.
Com efeito, podemos calcular
p 1
q
2
1
mod p e depois encontrar i tal que

i
..

(p 1) i
q
mod p

p 1
q
2
1
mod p.
Consequentemente, a
1
= i .
Se c = 2
Neste caso, o algoritmo termina pois, x = a mod q
2
x =
1

i =0
a
i
q
i
, ou seja,
x = a
0
q
0
+ a
1
q
1
.
Se c > 2
repetimos o processo c 2 vezes mais, obtendo a
2
, . . . , a
c 1
.
Por m, como p 1 0 mod q
c
e x a mod q
c
, pelo Teorema do Resto
Chines 2.1.16, x a mod (p 1) .
Exemplo 4.3.8. Pretendemos calcular log

mod q
c
, tal que:
q primo p 1 0 mod q
c
p 1 , 0 mod q
c+1
Entradas:
Seja p = 1013. Consequentemente, p 1 = 2
2
11 23.
Suponhamos = 3 e = 30. Queremos determinar a = log
3
30. Para tal vamos:
1

calcular a mod 2
2
;
2

calcular a mod 11;


3

calcular a mod 23;


1. Comecamos por colocar q = 2 c = 2. Nestas condic oes, q e primo,
1012 0 mod 2
2
e 1012 , 0 mod 2
3
e vamos calcular a mod 2
2
.
122 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
(a) Determinemos
i
=
(p 1) i
q
mod p, 0 i q 1.

0
=
(p 1) 0
q
mod p
0
= 1.

1
= 3
1012 1
2
mod 1013
1
= 1012.
(b) Coloca-se j = 0
j
=
(c) Enquanto j c 1 faz-se:
Para j = 0
0
= 30
(d) calcula-se =
p1
q
j+1
j
mod p. Assim,
= 30
1012
2
mod 1013 = 1012.
(e) Encontrar i: =
i
, ou seja, i = 1
(f) Logo, a
0
:= 1.
(g) Calculemos
j+1
=
j

a
j
q
j
mod p, isto e,
1
= 30 3
1 1
mod 1013, ou
seja,
1
= 10.
(h) j := j + 1.
Para j = 1
(i) =
p1
q
1+1
1
mod p = 10
1012
2
2
mod 1013 = 1.
(j) Como = 1 =
0
(k) a
1
= 0
Visto a
0
= 1 a
1
= 0, ent ao a mod 4 =
1

i =0
a
i
q
i
= 1, ou seja, a 1 mod 4.
2. Agora vamos calcular a mod 11. Comecamos por colocar q = 11 c = 1. Nestas
condic oes, q e primo, 1012 0 mod 11 e 1012 , 0 mod 11
2
.
(a) Determinemos
i
=
1012 i
11
mod 1013, 0 i 10.

0
= 1.

1
= 3
1012
11
mod 1013
1
= 122.
4.3. CRIPTO-SISTEMA ELGAMAL 123

2
= 3
1012 2
11
mod 1013
2
= 702.

3
= 3
1012 3
11
mod 1013
3
= 552.

4
= 3
1012 4
11
mod 1013
4
= 486.

5
= 3
1012 5
11
mod 1013
5
= 538.

6
= 3
1012 6
11
mod 1013
6
= 804.

7
= 3
1012 7
11
mod 1013
7
= 840.

8
= 3
1012 8
11
mod 1013
8
= 167.

9
= 3
1012 9
11
mod 1013
9
= 114.

10
= 3
1012 10
11
mod 1013
10
= 739.
(b) Coloca-se j = 0
j
= = 30
Para j = 0
(c) calcula-se = 30
1012
11
mod 1013 = 739.
(d) =
10
= 739, logo, i = 10
(e) Portanto, a
0
= 10.
Como a
0
= 10, entao a mod 11 = 10, ou seja, a 10 mod 11.
3. Seguidamente vamos calcular a mod 23. Comecamos por colocar q = 23 c = 1.
Nestas condicoes, q e primo, 1012 0 mod 23 e 1012 , 0 mod 23
2
.
(a) Determinemos
i
=
1012 i
23
mod 1013, 0 i 22.

0
= 1.

1
= 3
1012
23
mod 1013
1
= 586.

2
= 3
1012 2
23
mod 1013
2
= 1002.

3
= 3
1012 3
23
mod 1013
3
= 645.

4
= 121.
5
= 1009.
6
= 695.
7
= 44.
8
= 459.
9
= 529.

10
= 16.
11
= 259.
12
= 837.
13
= 190.
14
= 923.
15
= 949.

16
= 990.
17
= 704. . . .
22
= 223.
124 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
(b) Coloca-se j = 0
j
= = 30
Para j = 0
(c) calcula-se = 30
1012
23
mod 1013 = 704.
(d) =
17
= 704, logo, i = 17
(e) Portanto, a
0
= 17.
Visto que a
0
= 17, ent ao a mod 23 = 17, ou seja, a 17 mod 23.
Pelo Teorema do Resto Chines determinamos a = log

= log
3
30, resolvendo o sistema
_

_
a 1 mod 4
a 10 mod 11
a 17 mod 23
M = 4 11 23 = 1012.
M
1
=
1012
4
= 253
M
2
=
1012
11
= 92
M
3
=
1012
4
= 253
y
1
= 253
1
mod 4 = 1
y
2
= 92
1
mod 11 = 3
y
3
= 44
1
mod 23 = 11
a =
3

i =1
a
i
M
i
y
i
mod M a = 109 mod 1012 Logo, a = log
3
30 = 109 Z
1013
O Metodo Calculus Index
Algoritmo 4.3.9 (O Metodo Calculus Index). Este metodo usa uma base de
factores primos "pequenos", conjunto B. A finalidade e encontrar um
inteiro a tal que =
a
num grupo multiplicativo F

p
.
1

passo: [base de factores] Escolhemos um conjunto de inteiros,


usualmente os primeiros B primos.
4.3. CRIPTO-SISTEMA ELGAMAL 125
Suponhamos B = p
1
, p
2
, . . . , p
B
.
2

passo:[calcula e factoriza
s
mod p]
Escolhe-se, aleatoriamente, um expoente s < p, calcula-se

s
mod p e factoriza-se num produto da forma

s
= p
a
1 s
1
p
a
2 s
2
. . . p
a
B s
B
mod p.
Ou, de forma equivalente:
s = a
1 s
log

p
1
+ a
2 s
log

p
2
+ . . . + a
B s
log

p
B
mod (p 1).
3

passo: Repetimos o passo 2 para encontrar B factorizac~oes e,


seguidamente, resolvemos o sistema de congru^encias
s
i
= a
1 s
i
log

p
1
+ a
2 s
i
log

p
2
+ . . . + a
B s
i
log

p
B
mod (p 1)
para determinar o valor dos logaritmos dos B primos da base de
factores, ou seja, log

p
j
, 1 j B.
4

passo: Aleatoriamente, escolhemos expoentes s < p, calculamos



s
mod p, e tentamos factorizar esse valor num produto dos
logaritmos discretos dos elementos da base de factores.

s
= p
k
1
1
p
k
2
2
. . . p
k
B
B
mod p.
Quando tivermos sucesso com a escolha do elemento s, obtemos o
valor de n = log

, atraves da relac~ ao que se segue


log

+ s = k
1
log

p
1
+ k
2
log

p
2
+ . . . + k
B
log

p
B
mod (p 1).
Caso contrario, escolhemos outro valor para s, regressamos ao
passo 2 e repetimos o processo.
Exemplo 4.3.10. Pretendemos determinar o logaritmo discreto a = log
11
7 em Z

17
.
Seguiremos os passos descritos no algoritmo 4.3.9.
Assim, p = 17, = 11 e = 7.
1. Suponhamos que temos a seguinte base de factores B = 2, 3, 5.
126 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
2. Este passo precisa de ser repetido diversas vezes, de modo a encontrar 3 factorizacoes
independentes.
11
2
2 mod 17
11
3
5 mod 17 ()
11
4
4 mod 17
11
5
2 5 mod 17
11
6
2
3
mod 17 ()
11
7
3 mod 17 ( )
3. De modo equivalente podemos escrever as congruencias (*), (**) e (***), respectiva-
mente, da forma
3 log
11
5 mod 16
6 3 log
11
2 mod 16
7 log
11
3 mod 16.
Assim, facilmente conclumos que
log
11
5 3 mod 16
log
11
2 2 mod 16
log
11
3 7 mod 16.
4. Seguidamente vamos escolher s < p, calcular
s
mod p e tentar factorizar esse
valor como um produto da forma 2
k
1
3
k
2
5
k
3
.
= 7 11 3
2
mod 17.
Deste modo, pela relac ao
log

+ s = k
1
log

p
1
+ k
2
log

p
2
+ . . . + k
B
log

p
B
mod (p 1).
temos que
log
11
7 2 log
11
3 1 2 7 1 13 mod 16.
4.3. CRIPTO-SISTEMA ELGAMAL 127
4.3.2 Corpos nitos e sistemas de Curvas Elpticas
Nesta parte do nosso trabalho, analisaremos corpos nitos, curvas elpticas e a aplicacao
destas no sistema criptograco ElGamal. Este assunto e tratado nas obras de Stinson [18]
e de Klima [7]. Comecemos por ver um exemplo em que o PLD e facil de resolver.
Exemplo 4.3.11. Consideremos o grupo cclico aditivo Z
n
e suponhamos que (, n) = 1.
Assim, e um gerador (elemento primitivo) de Z
n
.
A operac ao do grupo e a adicao modulo n, logo a operac ao exponencial,
a
, corres-
ponde neste caso `a multiplicacao por a modulo n. Consequentemente, para este conjunto,
o PLD e encontrar o inteiro a tal que a mod n.
Como (, n) = 1, ent ao tem inverso multiplicativo modulo n e podemos calcular

1
mod n, utilizando o Algoritmo de Euclides Alargado. Deste modo, resolvemos o
PLD, calculando a:
a = log

=
1
mod n.
Embora nao seja habitual trabalharmos com o grupo aditivo Z
n
, quando n = p 1, com
p primo, este grupo e isomorfo ao grupo cclico multiplicativo Z

p
, uma vez que este grupo
e cclico e de ordem p 1. Como sabemos calcular ecientemente Logaritmos Discretos no
grupo aditivo, isto sugere que nos possamos resolver o PLD em Z

p
, reduzindoo problema
`a sua resoluc ao em Z
p 1
. Assim, vamos denir o isomorsmo (ver [18]).
Como (Z

p
, ) e isomorfo a (Z
p 1
, +), ent ao existe uma bijeccao
: Z

p
Z
p 1
tal que
(xy mod p) = ((x) + (y)) mod p 1
donde segue,
(
a
mod p) = a () mod p 1.
Nesta sequencia, temos que

a
mod p e equivalente a a () () mod p 1.
Por isso, resolvendo a congruencia em ordem a a,
a = log

= () (()
1
) mod p 1.
128 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Consequentemente, se tivermos um metodo eciente de determinar o isomorsmo , entao
teremos um algoritmo eciente para calcular Logaritmos Discretos em Z

p
.
Todavia, deparamo-nos com a diculdade de nao conhecer nenhum metodo geral para
calcular, ecazmente, o isomorsmo , para um primo arbitrario p. E, mesmo sabendo que
os dois grupos sao isomorfos, nao se conhece nenhum algoritmo que descreva o isomorsmo,
de forma eciente e explcita.
Em suma, este metodo pode ser aplicado em qualquer grupo G. Se existir um metodo
eciente de calcular o isomorsmo entre H e Z
|H|
, ent ao o PLD num grupo G, descrito ante-
riormente pode ser resolvido de forma convincente. Reciprocamente, um metodo eciente
de calcular Logaritmos Discretos produz um algoritmo ecaz para calcular o isomorsmo
entre os dois grupos, H e Z
|H|
7
.
Como pudemos ver, o PLD pode ser facil ou aparentemente difcil, dependendo da
representacao do grupo (cclico) que e usada. Portanto, vamos analisar outros grupos onde
o PLD pareca ser intrat avel. Existem duas classes desse tipo de grupos:
1. O grupo multiplicativo do Corpo Galois, GF(p
n
),
2. O grupo de uma Curva Elptica denida sobre um corpo nito.
Corpos Galois ou Corpos Finitos
Vamos descrever como podemos construir um Corpo Galois, ou seja, um corpo nito com
p
n
elementos, onde p e primo e n e um inteiro positivo.
Com base na denic ao 2.1.29, dado f(x) Z
p
[x] , podemos dizer que Z
p
[x]/(f(x)) e
corpo se e so se f(x) for irredutvel.
Os inversos multiplicativos emZ
p
[x]/(f(x)) podem ser calculados utilizando uma adaptac ao
do Algoritmo de Euclides Alargado.
Para o corpo Z
p
[x]/(f(x)), se x for um elemento gerador de G = (Z
p
[x]/(f(x)))

, ent ao
f(x) e um polinomio primitivo. Assim, para vericarmos que f(x), irredutvel, e primitivo,
basta percorrer as potencias de x, e aferir se todas, ate certo expoente, sao diferentes de 1.

E tambem interessante apresentar todas as potencias modulo f(x), pois a representac ao


dos elementos de Z
p
[x]/(f(x)) como potencias de x permite efectuar o produto desses
elementos de uma forma simples, multiplicando as potencias de x e convertendo o resultado
num elemento de Z
p
[x]/(f(x)).
7
Consideramos G e H da forma como foram denidos no cripto-sistema ElGamal, na pagina 108.
4.3. CRIPTO-SISTEMA ELGAMAL 129
Para averiguar a primitividade de um polinomio monico utilizaremos o resultado que
se segue.
Dado um polinomio monico f(x) = a
0
+ a
1
x + . . . a
n1
x
n1
+ x
n
, podemos denir o
vector dos coecientes r
f(x)
= [a
0
a
1
. . . a
n1
]
T
, e a matriz companheira
L[f(x)] =
_
0 . . . 0
I
n1
r
f(x)
_
.
Assume-se que f(x) Z
p
[x] e irredutvel, e portanto, que Z
p
[x]/(f(x)) e um corpo.
Pretende-se calcular os coecientes de x
k
mod f(x). De facto, mostraremos que
r
x
k = L[f(x)]
k1
[0 1 0 . . . 0]
T
, desde que k 1.
A prova e feita por induc ao.
Para k = 1 e imediato.
Suponhamos, entao, que r
x
k = L[f(x)]
k1
[0 1 0 . . . 0]
T
. Para facilitar a escrita,
L = L[f(x)], e x
k
mod f(x) = b
0
+ b
1
x + + b
n1
x
n1
= (L
k1
_

_
0
1
0
.
.
.
0
_

_
)
T
_

_
1
x
x
2
.
.
.
x
n1
_

_
.
x
k+1
= x
k
x = (L
k1
_

_
0
1
0
.
.
.
0
_

_
)
T
_

_
1
x
x
2
.
.
.
x
n1
_

_
x = (b
0
+ b
1
x + + b
n1
x
n1
)x =
= b
n1
a
0
+ (b
0
b
n1
a
1
)x + (b
1
b
n1
a
2
)x
2
+ + (b
n2
b
n1
a
n1
)x
n1
Tal e igual a (
_

_
0 . . . 0 a
0
1 a
1
0 . . . 1 a
n1
_

_
_

_
b
0
b
1
.
.
.
b
n1
_

_
)
T
_

_
1
x
.
.
.
x
n1
_

_
= (LL
k1
_

_
0
1
0
.
.
.
0
_

_
)
T
_

_
1
x
.
.
.
x
n1
_

_
.
130 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Portanto,
r
x
k+1 = L
k
_

_
0
1
0
.
.
.
0
_

_
.
De seguida apresentamos duas exemplicac oes do resultado acima referido.
Exemplo 4.3.12. Queremos construir um corpo nito Z
2
[x]/(f(x)), com f(x) Z
2
[x]
tal que f(x) e um polinomio primitivo em Z
2
[x].
Consideremos f(x) = x
4
+ x
3
+x
2
+ x + 1 Z
2
[x].
1. O polinomio f(x) e irredutvel em Z
2
[x], logo F = Z
2
[x]/(f(x)) e corpo nito com
2
4
elementos. Tal pode ser vericado recorrendo, por exemplo, ao MuPAD.
2. Queremos averiguar se f(x) e primitivo em Z
2
[x], ou seja, se F

=< x >.
Como deg(f(x)) = 4, ent ao f(x) e primitivo se e so se ord(x) = 2
4
1 = 15, isto
e, x
15
= 1 mas x
i
,= 1, 1 < i < 15, em F.
Deste modo, consideremos a matriz companheira associada a f(x)
_

_
0 0 0 1
1 0 0 1
0 1 0 1
0 0 1 1
_

_
.
Em cada passo vamos incrementando uma potencia de x.
0 0 0 1 0 0 0 1 1
1 0 0 1 1 0 0 1 0
0 1 0 1 0 1 0 1 0
0 0 1 1 0 0 1 1 0
x x
2
x
3
x
4
x
5
Como, pelo Teorema de Lagrange 2.1.22, a ordem de um subgrupo divide a ordem
do grupo, [F

[ = 2
4
1 = 15. Consequentemente, os subgrupos proprios tem, no
maximo, ordem 5 e x
5
1 mod 2; logo, ord(x) = 5 ,= 15. Conclumos, portanto,
que o polinomio f(x) = x
4
+x
3
+ x
2
+ x + 1 nao e primitivo.
4.3. CRIPTO-SISTEMA ELGAMAL 131
Agora, consideremos f
2
(x) = x
4
+ x
3
+ 1 Z
2
[x]. Facilmente vericamos, utilizando o
MuPAD, que f
2
(x) = x
4
+ x
3
+ 1 e um polinomio irredutvel em Z
2
[x]. Logo,
F = Z
2
[x]/(f
2
(x)) e corpo nito com 2
4
elementos.
Seguidamente, vamos averiguar se f
2
(x) e um polinomio primitivo em Z
2
[x], isto e, se
F

=< x >, com deg(f


2
(x)) = 4. Ja sabemos que f
2
(x) e primitivo se e so se
ord(x) = 15 = [F

[, ou seja, x
15
1 mod 2 x
i
, 1 mod 2, 0 < i < 15.
De modo analogo ao caso anterior, provamos que f
2
(x) = x
4
+ x
3
+ 1 e um polinomio
primitivo em Z
2
[x].
Os 16 elementos de Z
2
[x]/(f
2
(x)) sao:
0, 1, x, x + 1, x
2
, x
2
+ 1, x
2
+ x, x
2
+ x + 1, x
3
, x
3
+ 1, x
3
+ x, x
3
+ x
2
, x
3
+ x + 1,
x
3
+ x
2
+ 1, x
3
+ x
2
+ x, x
3
+ x
2
+ x + 1.
Utilizando a representa cao dos elementos de (Z
2
[x]/(f
2
(x)))

como potencias de x
temos:
x, elemento do corpo:, x
x
2
, elemento do corpo:, x
2
x
3
, elemento do corpo:, x
3
x
4
, elemento do corpo:, x
3
+ 1
x
5
, elemento do corpo:, x
3
+ x + 1
x
6
, elemento do corpo:, x
3
+ x
2
+ x + 1
x
7
, elemento do corpo:, x
2
+ x + 1
x
8
, elemento do corpo:, x
3
+x
2
+ x
x
9
, elemento do corpo:, x
2
+ 1
x
10
, elemento do corpo:, x
3
+ x
x
11
, elemento do corpo:, x
3
+ x
2
+ 1
x
12
, elemento do corpo:, x + 1
x
13
, elemento do corpo:, x
2
+ x
x
14
, elemento do corpo:, x
3
+x
2
x
15
, elemento do corpo:, 1
O grupo multiplicativo Z

p
, p primo e um grupo cclico de ordem p 1. Alias, o grupo
multiplicativo de qualquer corpo nito e cclico. Logo, GF(p
n
)/0 e um grupo cclico
de ordem p
n
1. Assim, temos varios exemplos de grupos cclicos onde o PLD pode ser
132 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
estudado. Na pratica, o corpo nito GF(2
n
) tem sido muito estudado. Quer o algoritmo de
Shank, quer o de Silver Pohlig Hellman trabalham, frequentemente, com corpos GF(2
n
).
Para valores elevados de n (n > 800) o PLD em GF(2
n
) pensa-se ser intratavel, uma
vez que 2
n
1 tem, pelo menos, um factor primo sucientemente grande.
Curvas Elpticas
Recentemente, a Teoria dos N umeros e a Geometria Algebrica - nomeadamente a teoria de
curvas elpticas denidas sobre corpos nitos - tem tido aplicacao em criptograa. Basi-
camente, isto deve-se ao facto das curvas elpticas sobre corpos nitos proporcionarem um
enorme suprimento de grupos abelianos nitos, os quais, mesmo sendo de grande dimensao,
sao ecazes devido `a sua estrutura algebrica.
A teoria sobre curvas elpticas aparece, de forma notavel, em diversos tipos de problemas
matematicos, desde testes de primalidade, factorizacao de inteiros, problemas Diofantinos
e, mais recentemente, em sistemas criptogracos de chave p ublica e na demonstrac ao do

Ultimo Teorema de Fermat. A ideia de utilizar Curvas Elpticas em criptograa de chave


p ublica foi pela primeira vez proposta por Neal Koblitz e Victor Miller em 1985. Esta
teoria podera ser encontrada em [18], [7] ou em [8].
Iremos apresentar as denic oes basilares e factos essenciais sobre curvas elpticas, ne-
cessarios para compreender as suas aplicac oes em Criptograa.
Intuitivamente, uma curva elptica e o lugar geometrico dos pontos dum plano que
satisfazem uma equacao c ubica em duas variaveis.
Formalmente,
Denicao 4.3.13. Seja F um corpo. Uma curva elptica sobre F e o conjunto de pontos
(x, y) F F que satisfazem a equacao y
2
= x
3
+ bx
2
+ cx + d, com b, c, d F.
Se F for um corpo com caracterstica diferente de dois e de tres, ent ao uma curva
elptica sobre F e o conjunto de pontos (x, y) F F que satisfazem a equac ao
y
2
= x
3
+ cx + d, com c, d F, acrescentado de um elemento denotado por O e
chamado ponto do innito . Neste caso, o polinomio c ubico x
3
+ cx + d nao tem
razes m ultiplas ou, de forma equivalente, 4c
3
+ 27d
2
,= 0
8
.
8
A formula resolvente para polinomios do 3

grau, ax
3
+ bx
2
+ cx + d = 0 tem como binomio
discriminante = 4a
3
c
3
+ 27a
2
d
2
. Se < 0, o polinomio tem 3 razes reais; Se = 0, pelo menos
duas razes do polinomio sao m ultiplas; Se > 0, entao o polinomio tem uma raiz real e duas complexas.
4.3. CRIPTO-SISTEMA ELGAMAL 133
Se F for um corpo de caracterstica 2, ent ao uma curva elptica sobre F e o conjunto
formado pelos pontos (x, y) F F que sao solucao de uma equacao da forma:
y
2
+ cy = x
3
+ cx + d ou da forma y
2
+ xy = x
3
+ bx
2
+ d, com b, c, d F
e do ponto do innito O , onde o polinomio c ubico x
3
+ cx + d pode ter razes
m ultiplas.
Se F for um corpo de caracterstica 3, ent ao uma curva elptica sobre F e o conjunto
formado pelos pontos (x, y) F F que sao solucao de uma equacao da forma:
y
2
= x
3
+ bx
2
+ cx + d , com b, c, d F e do ponto do innito O, onde o
polinomio c ubico x
3
+ bx
2
+ cx + d nao pode ter razes m ultiplas.
Antes de analisar alguns exemplos especcos de curvas elpticas sobre varios corpos,
e importante referir que uma curva elptica c pode formar um grupo abeliano, denindo
uma operacao conveniente sobre o conjunto dos seus pontos. Podemos ter curvas elpticas
sobre os reais, sobre os complexos, sobre os racionais ou sobre corpos nitos.
Consideremos uma curva elptica sobre o corpo Z
p
, p primo.
Denicao 4.3.14. Seja p > 3 primo. A curva elptica y
2
= x
3
+ cx + d sobre Z
p
e o
conjunto formado pelas solucoes (x, y) Z
p
Z
p
da congruencia
y
2
x
3
+ cx + d mod p, (4.2)
onde c, d Z
p
sao constantes, com 4c
3
+ 27d
2
,= 0 mod p, juntamente com o ponto
do innito O.
Deste modo, uma curva elptica c pode formar um grupo abeliano quando, sobre os
seus pontos esta denida uma operacao de adic ao que podemos expressar algebricamente
como se segue (nesta, todas as operac oes aritmeticas sao efectuadas em Z
p
):
Suponhamos que P = (x
1
, y
1
) e Q = (x
2
, y
2
) sao pontos de c.
1. Se x
2
= x
1
e y
2
= y
1
, ent ao P + Q = O.
2. De outro modo, P + Q = (x
3
, y
3
) onde
x
3
=
2
x
1
x
2
mod p
y
3
= (x
1
x
3
) y
1
mod p
134 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
e
=
_

_
y
2
y
1
x
2
x
1
, P ,= Q
3 x
2
1
+a
2 y
1
, P = Q
3. Finalmente, dene-se P + O = O + P = P, P c.
A denic ao anterior de P + Q da ao conjunto dos pontos da curva elptica a estrutura
de grupo abeliano (referido em [18].
O ponto do innito O e o elemento identidade do grupo. O inverso de (x, y), que es-
creveremos (x, y) uma vez que o grupo e aditivo, e (x, y), como podemos concluir por 1.
Para primos p sucientemente pequenos, podemos construir uma curva elptica sobre
Z
p
por tentativa e erro. Deste modo, vamos utilizar os passos abaixo indicados, de forma
a obter as solucoes da equacao 4.2:
1. Determinar o valor de x Z
p
que goza da propriedade z = x
3
+ cx + d mod p,
de forma a z ser um quadrado perfeito em Z
p
.
2. Encontrar todos os y Z
p
: y
2
= z mod p, ou seja, encontrar todos os resduos
quadraticos em Z

p
.
Para o passo 1, consideramos o homomorsmo s(y) = y
2
em Z

p
.

E de notar que o
n ucleo de s(y) e:
/ = x Z

p
: s(x) = e, sendo e o elemento identidade = x Z

p
: x
2
= 1 = 1, 1.
Logo, [/[ = 2 e o conjunto dos resduos quadraticos em Z

p
,
1Q(p) = z Z

p
: z = s(y), y Z

tem ordem t =
p 1
2
.
Seguidamente, consideremos a func ao g(x) = x
t
1.
Se z 1Q(p), ent ao z = y
2
mod p, y Z
p
.
Como tal, pelo Teorema de Lagrange,
g(z) = z
t
1 = y
2t
1 = y
p 1
1 = 0 mod p.
4.3. CRIPTO-SISTEMA ELGAMAL 135
Deste modo, conclumos que as t razes de g(x) sao precisamente os t elementos em
1Q(p).
Resumindo, temos os seguintes lemas:
Lema 4.3.15. Um elemento z e um resduo quadratico em Z

p
se e so se
z
p 1
2
= 1 mod .p
Por isso, z e um quadrado perfeito em Z
p
se e so se z = 0 z
p 1
2
= 1 mod p.
No passo 2, se z = y
2
mod p, ent ao (z
p +1
4
)
2
= y
p +1
= y
2
= z mod p. Conse-
quentemente, se p = 3 mod 4, entao podemos encontrar uma raiz quadrada de z calcu-
lando z
p +1
4
mod p. Portanto,
Lema 4.3.16. Suponhamos que p = 3 mod 4. Se z for um resduo quadratico em Z

p
,
entao y = z
p +1
4
mod p e uma raiz quadrada de z em Z

p
. A outra raiz quadrada de z em
Z

p
e y.
Sintetizando de um modo geral,
Seja p primo, p > 3 p = 3 mod 4 e, suponhamos c, d Z
p
: 4c
3
+ 27 d
2
,= 0
mod p.
Seja c a curva elptica de pares ordenados (x, y) Z
p
Z
p
que sao as soluc oes da
equacao y
2
= x
3
+ cx + d mod p e O, o ponto do innito. Ent ao, para 1Q(p),
conjunto dos resduos quadraticos em Z

p
, temos:
c = (x, y) : z = x
3
+ cx + d 1Q(p) y = z
p +1
4
mod p
(x, 0) : x
3
+ cx + d = 0 O.
Exemplo 4.3.17. Seja p = 7 e c, a curva elptica de equac ao: y
2
= x
3
+ x + 4 mod 7.
Podemos vericar que 4 1
3
+ 27 4
2
= 2 mod 7 ,= 0 mod 7.
Vamos determinar os pontos de c:
1. Por tentativa e erro, vamos determinar os valores de x Z
7
para os quais
z = x
3
+ x + 4 mod 7 e um resduo quadratico em Z

7
.
136 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Por exemplo, para x = 0, z = 4 mod 7 = 4. Ent ao, como z
p 1
2
= 4
3
1
mod 7, pelo Lema 4.3.15, z = 4 e um resduo quadratico em Z

7
, ou seja,
z = 4 1Q(7).
De igual modo, para x = 1, z = 6 mod 7 = 6. Ent ao, como z
p 1
2
= 6
3
6
mod 7 ,= 1 mod 7, pelo Lema 4.3.15, z = 6 , 1Q(7). Utilizando o mesmo
processo podemos construir a seguinte tabela:
x z = x
3
+ x + 4 mod 7 1Q(7) ?
0 4 Sim
1 6 Nao
2 0 Nao
3 6 Nao
4 2 Sim
5 1 Sim
6 2 Sim
2. Seguidamente, para cada resduo quadratico, z Z

7
, vamos encontrar os valo-
res de y Z

7
para os quais y
2
= z mod p.
Como 7 = 3 mod 4, pelo lema 4.3.16, podemos determinar os valores de y
Z

7
, isto e, as razes quadradas de z em Z

7
.
Pelo lema 4.3.16, para o resduo quadratico z = 4, que resultou de x = 0, as
razes quadradas de z = 4 em Z

7
sao:
y = z
p +1
4
mod 7 = 4
2
mod 7 = 2 e y = 2 mod 7 = 5.
Portanto, dois pares ordenados de pontos da curva elptica c sao (0, 2); (0, 5).
Assim, repetindo o processo para os restantes resduos quadraticos em Z

7
de-
terminamos os pares ordenados pertencentes `a curva elptica c que satisfazem,
(x, y) : z = x
3
+ x + 4 mod 7 1Q(7) y = z
7 +1
4
mod 7 =
= (0, 2); (0, 5); (4, 3); (4, 4); (5, 1); (5, 6); (6, 3); (6, 4).
4.3. CRIPTO-SISTEMA ELGAMAL 137
3. Consultando a tabela anterior de resduos quadraticos, podemos determinar que
o unico valor de x Z
7
, pertencente `a curva elptica c, que satisfaz a equacao
z = x
3
+ x + 4 = 0 mod 7 e (2, 0).
Assim,
c = (0, 2); (0, 5); (2, 0); (4, 3); (4, 4); (5, 1); (5, 6); (6, 3); (6, 4); O.
4. Agora, vamos calcular a soma dos elementos P = (x
1
, y
1
) = (4, 3) e
Q = (x
2
, y
2
) = (5, 6) em c, P + Q = (x
3
, y
3
), com P ,= Q, logo, pela denic ao
de soma em 2, da pagina 133, temos
_
x
3
=
2
x
1
x
2
mod p
y
3
= (x
1
x
3
) y
1
mod p
onde =
y
2
y
1
x
2
x
1
= 3 1
1
mod 7 = 3 1 mod 7 = 3.
_
x
3
= (3
2
4 5) mod 7 = 0
y
3
= [3(4 0) 3] mod 7 = 2
Portanto, nesta curva elptica c, (4, 3) + (5, 6) = (0, 2) c.
5. Podemos tambem calcular, para P = (0, 5)
P + P = (x
3
, y
3
). Como P = Q = P, pela denic ao 2, da pagina 133, temos
_
x
3
=
2
x
1
x
2
mod p
y
3
= (x
1
x
3
) y
1
mod p
onde =
3 x
2
1
+a
2 y
1
=
3 0
2
+1
2 5
mod 7 = 1 10
1
mod 7 =
= 1 3
1
mod 7 = 1 5 mod 7 = 5.
_
x
3
= (5
2
2 0) mod 7 = 4
y
3
= [5(0 4) 5] mod 7 = 3
ou seja, em c, (0, 5) + (0, 5) = (4, 3).
Embora as curvas elpticas sobre Z
p
nao sejam particularmente faceis de construir ou
ate de descrever, a sua estrutura geral e simples e especca como pudemos ver e, esta
sintetizada no teorema que se segue:
138 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
Teorema 4.3.18. Seja c uma curva elptica sobre Z
p
, p primo, p > 3. Entao, c e
isomorfo ao produto directo Z
n
1
Z
n
2
dos grupos aditivos Z
n
1
e Z
n
2
, para inteiros n
1
e
n
2
tais que n
2
[ n
1
e n
2
[ (p 1).
Como exemplo do teorema anterior, consideremos a curva elptica c denida no exemplo
4.3.17. Como [ c [ = 10, os unicos valores possveis para n
1
e n
2
, pelo teorema 4.3.18 sao
n
1
= 10 e n
2
= 1.
Deste modo, podemos vericar que = (0, 5) c gera todos os elementos em c.
Alias, qualquer elemento de c, `a excepc ao do ponto do innito, e um elemento primitivo
de c. Vejamos,
2 = + = (0, 5) + (0, 5) = (4, 3), como vimos anteriormente.
3 = 2 + = (4, 3) + (0, 5) = (5, 1).
4 = 3 + = (5, 1) + (0, 5) = (6, 4).
5 = 4 + = (6, 4) + (0, 5) = (2, 0).
6 = 5 + = (2, 0) + (0, 5) = (6, 3).
7 = 6 + = (6, 3) + (0, 5) = (5, 6).
8 = 7 + = (5, 6) + (0, 5) = (4, 4).
9 = 8 + = (4, 4) + (0, 5) = (0, 2)
9
.
Conclumos que = (0, 5) e um elemento primitivo e, consequentemente, c e cclico.
Assim, os valores correctos para n
1
e n
2
, sao n
1
= 10 e n
2
= 1 e c e isomorfo ao grupo
aditivo cclico Z
10
.
Agora, consideremos uma curva elptica c sobre Z
p
, sendo p um primo sucientemente
grande. Uma curva elptica c denida sobre Z
p
, com p primo, p > 3 tera, aproximada-
mente, p pontos sobre a curva. Embora a construcao de todos os seus elementos seja geral-
mente impossvel, podemos calcular o valor exacto de [ c [, de modo nao trivial, utilizando
um algoritmo de tempo polinomial, denominado algoritmo de Schoof
10
. Seguidamente,
apresentamos um resultado que pode ser referido de forma simples e que produz limites
superiores e inferiores sobre [ c [. Este resultado e conhecido por teorema de Hasse.
9
Como a operacao denida no grupo e a adicao, as potencias de foram escritas como m ultiplos de .
10
Este algoritmo vai alem do alcance do conte udo desta dissertacao.
4.3. CRIPTO-SISTEMA ELGAMAL 139
Teorema 4.3.19 (Teorema de Hasse). Seja c uma curva elptica sobre Z
p
. Entao,
p + 1 2

p [ c [ p + 1 + 2

p.
Sistema Criptograco ElGamal Aplicado a Curvas Elpticas
Uma vez que podemos calcular [ c [, queremos encontrar um subgrupo cclico de c para o
qual o PLD seja intrat avel. Para isso, e necessario termos conhecimento sobre a estrutura
do grupo c, o qual e-nos facultado pelo teorema 4.3.18.
Assim, se os inteiros n
1
e n
2
forem calculados, sabemos que c tem um subgrupo cclico
isomorfo a Z
n
1
que pode ser, potencialmente, utilizado como um conjunto para ser aplicado
num cripto-sistema ElGamal.
Se n
2
= 1, ent ao c e um grupo cclico. Tambem podemos tirar essa conclusao se [ c [
for um n umero primo, ou um produto de primos distintos. De facto, no caso analisado
anteriormente, c era cclico e [ c [ = 10 = 2 5.
Os algoritmos Shanke o Silver Pohlig Hellmanpodem ser aplicados ao problema
logartmico das curvas elpticas. Contudo, existe uma tecnica para explorar e explicitar
isomorsmos entre curvas elpticas e corpos nitos que nos direcciona para algoritmos
ecientes relativos a uma determinada classe de curvas elpticas.
Esta tecnica deve-se a Menezes, Okamoto e Vanstone e pode ser aplicada com uma
classe especial de curvas elpticas, denominadas Curvas Supersingulares, as quais devem
ser aplicadas em sistemas criptogracos.
Todavia, se nao se utilizarem curvas elpticas supersingulares, torna-se visvel que uma
curva elptica com um subgrupo cclico de tamanho, aproximadamente, 2
160
produz um
conjunto seguro para ser utilizado num cripto-sistema, em que a ordem do subgrupo e
divisvel por, pelo menos, um factor primo sucientemente grande. Neste caso, o sistema
criptograco esta seguro contra um ataque Silver Pohlig Hellman.
Seguidamente, vejamos um exemplo de aplicac ao da curva elptica do exemplo 4.3.17,
ao sistema criptograco ElGamal.
Exemplo 4.3.20. Como vimos, = (0, 5) e elemento primitivo de c. Seja a = 3 o
expoente de encriptacao de Bernardo. Neste caso,
= a = 3 = (5, 1).
140 CAP

ITULO 4. CRIPTOLOGIA DE CHAVES P

UBLICAS
A func ao de encriptac ao, e
K
e:
e
K
(x, k) = (k , x + k a ) = (k(0, 5), x + k(5, 1)),
onde x c , 0 k 9 e a operac ao de decifrac ao d
K
e:
d
K
(y
1
, y
2
) = y
2
a y
1
= y
2
3y
1
.
Suponhamos que Alice quer cifrar a mensagem (5, 6) c. Se ela escolher, aleatoriamente,
o valor k = 2 Z
9
, ent ao y = (y
1
, y
2
) sera:
y
1
= 2(0, 5) = (4, 3) e y
2
= (5, 6) + 2(5, 1) = (5, 6), +, (6, 3) = (5, 1).
Assim, y = ((4, 3), (5, 1)).
Agora, se Bernardo receber o TC, y, de Alice, ele decifra a mensagem original correcta-
mente calculando x = y
2
3y
1
= (5, 1) 3(4, 3) = (5, 1) 3 2 = (5, 1) 6 =
(5, 1) (6, 3) = (5, 1) + (6, 4) = (5, 6).
Em termos praticos, a implementa cao de um sistema ElGamal sobre curvas elpticas
apresenta algumas diculdades. Como ja foi mencionado, este sistema quando aplicado
sobre GF(p
n
), comn > 1 - ou sobre Z
p
- constroi uma mensagem com o dobro da mensagem
original. Quando aplicado sobre curvas elpticas tem uma expansao para o quadruplo. Isto
acontece, uma vez que existem, aproximadamente, p elementos de TO e, cada elemento do
TC corresponde a quatro elementos do corpo. Um outro problema da implementac ao do
ElGamal sobre curvas elpticas e o espaco do TO ser o conjunto formado pelos pontos de
uma curva elptica c e nao ser conhecido nenhum metodo determinstico para gerar pontos
de c, como esta referenciado em [18].
Menezes e Vanstone proposeram uma variac ao do sistema ElGamal sobre curvas elpticas
mais eciente, onde a curva elptica e usada para dissimularos elementos dos textos TO
e TC que nao necessitam de ser pontos de c, podendo ser quaisquer pares ordenados de
elementos do corpo, diferentes de zero. Todavia, dada a expansividade deste estudo, o
sistema criptograco Menezes-Vanstone nao sera aqui analisado (ver [18]).
Captulo 5
Assinaturas Digitais
5.1 Introducao
Uma assinatura digital num documento electronico desempenha a mesma func ao que uma
assinatura manuscrita. Tal como esta ultima, as assinaturas digitais sao indicadas para
transaccoes legais e nanceiras, e devem ter a mesma legitimidade. Em Portugal, o primeiro
passo no sentido da consagrac ao legal das assinaturas digitais deu-se atraves do Decreto-
Lei n

290 D/99, emitido pelo Ministerio da Ciencia e da Tecnologia, com a aprovac ao


do regime jurdico dos documentos electronicos e da assinatura digital
1
. Actualmente,
alem de transacc oes bancarias e de comercio entre outras, o concurso de educadores de
infancia e de professores dos Ensinos Basico e secundario para o ano escolar de 2005/2006
foi efectuado por meio de documentos electronicos e utilizando um algoritmo de assinatura
digital sha1RSA, com uma chave p ublica RSA de 2048 bits.
Como as assinaturas servem para autenticar a veracidade do conte udo de um docu-
mento, existem dois aspectos de primordial importancia neste tipo de subscric ao:
a assinatura propriamente dita: tem de fazer parte do algoritmo da mensagem que
esta a ser assinada. Todavia, pode estar oculta.
a vericac ao da mesma: pode ser realizada atraves de um algoritmo de vericac ao
p ublico. Assim, qualquer entidade pode conferir uma assinatura digital.
1
http : //www.pj.pt/htm/legislacao/dr informatica/DL290 D 99.htm
141
142 CAP

ITULO 5. ASSINATURAS DIGITAIS


Deste modo, uma assinatura digital tem duas componentes, um algoritmo para assinar-
sig e outro para vericar-ver. Se, por exemplo, Bernardo assinar uma mensagem x usando
o algoritmo sig , a assinatura resultante sig (x) pode ser vericada com o algoritmo p ublico
ver . Consoante a autenticidade da assinatura, dado um par ordenado (x, y), o algoritmo
responde verdadeiroou falso.
Denicao 5.1.1. Uma assinatura digital e um 5-uplo (T, /, /, o, 1), que satisfaz as
seguintes condi coes:
1. T e um conjunto nito de possveis mensagens;
2. / e um conjunto nito de possveis assinaturas;
3. /, e o espaco das chaves, um conjunto nito de chaves possveis;
4. Para cada K / existe um algoritmo para assinar, sig
K
o e um correspondente
algoritmo de vericacao ver
K
1 . As funcoes sig
K
: T / e ver
K
: T /
verdadeiro, falso satisfazem a seguinte equacao para toda a mensagem x T e
para toda a assinatura y / :
ver
K
(x, y) =
_
verdadeiro se y = sig
K
(x)
falso se y ,= sig
K
(x)
Para todo o K / as func oes sig
K
e ver
K
devem ser func oes de tempo polinomial.
Dever a ser computacionalmente inviavelpara um intruso falsicar a assinatura de
Bernardo, numa mensagem x. Isto e, apenas Bernardo dever a conseguir calcular a assi-
natura y , tal que ver
K
(x, y) = verdadeiro.
Porem, um intruso pode sempre testar todas as possveis assinaturas y para uma men-
sagem x atraves da func ao p ublica ver e falsicar a assinatura de Bernardo.
Assim, tal como nos sistemas criptogracos de chave p ublica a nalidade sera encontrar
sistemas de assinaturas digitais que sejam computacionalmente seguros.
Seguidamente, iremos analisar, em particular, os sistemas de assinaturas digitais RSA
e El Gamal nos quais a chave privada e utilizada para assinar uma mensagem.
5.2 Assinatura Digital RSA
O RSA e exemplo de um sistema que pode ser utilizado na construc ao de assinaturas
digitais, uma vez que satisfaz a propriedade e
K
(d
K
(x)) = x alem de d
K
(e
K
(x)) = x,
5.2. ASSINATURA DIGITAL RSA 143
0 x < n - esta ultima propriedade e requerida para que as funcoes de encriptacao e de
decifracao sejam ecientes. Vejamos:
e
K
(d
K
(x)) = e
K
(x
a
mod n) = (x
a
)
b
mod n = x
ab
mod n.
De modo semelhante `a demonstracao efectuada na proposic ao 4.2.1, prova-se que
x
ab
mod n = x, 0 x < n
Descricao do sistema de Assinatura Digital RSA
Seja n = pq, onde p e q sao primos.
Seja T = / = Z
n
, e dena-se,
/ = (n, p, q, a, b) : n = pq, p, q primos ab 1 mod (n).
Para K = (n, p, q, a, b), dene-se:
sig
K
(x) = x
a
mod n - func ao secreta
ver
K
(x, y) = verdadeiro x y
b
mod n com x, y Z
n
Os valores de n e b sao p ublicos e os valores de p, q e a sao secretos.
Facilmente, reconhecemos que a funcao que serve para assinar mensagens, sig
K
corres-
ponde `a funcao de decifrac ao d
K
. Nao obstante esta func ao ser secreta, qualquer entidade
pode forjar uma assinatura presente numa mensagem aleatoria x calculando x = e
K
(y),
para algum y e, seguidamente, y = sig
K
(x), embora necessite de algum tempo para o
fazer. Uma forma de contornar esta diculdade de seguranca sera exigir que as mensagens
contenham informacao redundante suciente para que uma assinatura forjada, deste tipo,
nao corresponda a uma mensagem x que contenha determinada signicancia.
Como alternativa, e o que se faz em termos praticos e assinar uma parte do documento
- hash of the document - e nao o documento na ntegra.
Uma funcao hashou funcao resumo do documento e um valor que depende do docu-
mento. Usualmente e de tamanho xo, mas a func ao e denida de tal forma que e difcil
encontrar duas mensagens com a mesma func ao hash. Informalmente, podemos dizer
que:
144 CAP

ITULO 5. ASSINATURAS DIGITAIS


Uma func ao hashe uma aplicacao facil de calcular, f(x) = h , sendo x uma men-
sagem de comprimento arbitrario e h um valor de tamanho xo que goza da propriedade:
e difcil encontrar dois valores diferentes x e x

tais que f(x) = f(x

).
De facto, se parte da assinatura de Bernardo consistir no valor h = f(x), onde x e todo
o texto da mensagem, ent ao Alice pode vericar que alem da mensagem ter sido realmente
enviada por Bernardo, nao houve interferencia durante a transmissao.
Nomeadamente, Alice aplica a func ao hashf ao texto decifrado de Bernardo(TO)
e verica que o resultado e concordante com o valor h da assinatura de Bernardo. Por
hipotese, nenhuma interferencia poderia alterar x sem alterar o valor h = f(x).
O processo de assinatura de um documento x efectua-se da seguinte forma:
1. Bernardo constroi uma mensagem resumo utilizando uma func ao hash, h = f(x)
e calcula a assinatura y = sig
K
(h).
2. Bernardo divulga o par ordenado (x, y) atraves de um canal.
3. a verica cao pode ser efectuada por qualquer entidade atraves da reconstruc ao da
mensagem resumo h = f(x) e da vericacao ver(h, y) = verdadeiro.
Poderia ser efectuada uma analise aprofundada deste tipo de funcoes que sao utilizadas
em muitos sistemas de assinaturas digitais. Contudo, sabemos de antem ao que todo o
trabalho de investigacao tem m ultiplas potencialidades e, uma vez que nesta dissertac ao
demos maior atenc ao aos sistemas de encriptacao, camos por uma breve referencia a estas
funcoes as quais sao de uma importancia extrema para a protecc ao da integridade de um
documento de tamanho arbitrario que e enviado juntamente com uma assinatura digital.
Este assunto encontra-se aprofundado na obra [18].
Agora, vamos ver como combinar uma assinatura digital com uma encriptacao de chave
p ublica. Admitamos que Alice quer enviar uma mensagem cifrada e assinada a Bernardo:
1. Alice assina a mensagem, y = sig
A
(x);
2. Alice utiliza a func ao p ublica de encriptacao de Bernardo e cifra o TO, x, e a assi-
natura, y tal que z = e
B
(x, y). Seguidamente, envia z a Bernardo;
3. Quando Bernardo receber z: calcula d
B
(z) = (x, y); e, atraves da func ao de veri-
cac ao p ublica de Alice, ver
A
, conrma que ver
A
(x, y) = verdadeiro.
5.3. ASSINATURA DIGITAL EL GAMAL 145
Por uma questao de seguranca, deve-se primeiro assinar um documento e, so depois, cifrar
a mensagem. Vejamos:
Se primeiro encriptasse a mensagem, z = e
B
(x), depois assinasse, y = sig
A
(z) e,
seguidamente, enviasse o par (z, y) a Bernardo, ele conrmava do mesmo modo a assi-
natura e decifrava a mensagem, d
B
(z) = (x, y) e ver
A
(x, y) = verdadeiro. Contudo, um
intruso que obtivesse o par (z, y) antes da mensagem chegar a Bernardo, podia substi-
tuir a assinatura de Alice y, pela sua y

= sig
I
(z), uma vez que ele pode assinar o TC,
z = e
B
(x), mesmo desconhecendo o TO.
Depois, se o intruso enviasse (z, y

) a Bernardo, este ultimo vericaria a assinatura


utilizando ver
I
(x, y

) e pensaria que a mensagem tinha sido enviada, originalmente, pelo


intruso.
5.3 Assinatura Digital El Gamal
O sistema ElGamal e especialmente destinado a ser utilizado em assinaturas digitais.

E nao
determinista, tal como o sistema criptograco ElGamal. Assim, existem varias assinaturas
validas para uma dada mensagem e, consequentemente, o algoritmo de vericac ao deve
aceitar qualquer uma das assinaturas validas como autentica.
Descricao do sistema de Assinatura Digital ElGamal
Seja p primo.
Seja Z

p
um elemento primitivo.
Seja T = Z

p
; / = Z

p
Z
p 1
, e dena-se,
/ = (p, a, , ) :
a
mod p, onde p, e sao valores p ublicos e
a e um valor secreto.
Para K /, K = (p, a, , ) e para um n umero k Z

p1
, escolhido ao acaso,
dene-se:
sig
K
(x, k) = (, ), onde:
=
k
mod p
= (x a) k
1
mod p 1.
Para x, y Z

p
e Z
p1
dene-se:
ver
K
(x, , ) = verdadeiro se


x
mod p e
ver
K
(x, , ) = falso , caso contr ario.
146 CAP

ITULO 5. ASSINATURAS DIGITAIS


Se a assinatura digital for construda correctamente, entao a vericac ao sera verdadeira,
ou seja,


x
mod p. Vejamos:

k
mod p
a +k
mod p.
Ent ao, queremos provar que

a +k

x
mod p
ou, de forma equivalente, que a + k x mod p 1.
De facto, a + k a + k (x a) k
1
mod p 1 a + x a mod p 1.
Por conseguinte, a + k x mod p 1.
Resumindo, para calcular uma assinatura digital ElGamal e necessario utilizar os valores
secretos:
1. O valor a que e parte da chave;
2. O n umero secreto aleatorio k que e utilizado para assinar uma mensagem x.
Tal como nas assinaturas digitais RSA, tambem nas ElGamal a vericacao pode ser
realizada apenas atraves da informacao p ublica.
Exemplo 5.3.1. Vamos admitir que Bernardo quer enviar uma mensagem assinada a
Alice.
Consideremos os valores de p = 1785227, = 2, a = 37, = 1467650 e a mensagem
x = 41149, utilizados no exemplo 4.3.2 do sistema criptograco ElGamal da pagina 110.
Suponhamos que ele escolhe o valor aleatorio k = 47.

E de notar que (47, 1785226) = 1,
sendo k
1
mod p = 569753.
Ent ao,
= 2
47
mod 1785227 = 1497693
e
= (41149 37 ) k
1
mod p 1 = 493116.
Qualquer entidade pode vericar esta assinatura conrmando a congruencia:


x
mod p
ou seja,
1467650
1497693
1497693
493116
807332 mod 1785227
5.3. ASSINATURA DIGITAL EL GAMAL 147
e
2
41149
807332 mod 1785227.
Consequentemente, a assinatura e valida.
5.3.1 Seguranca do Sistema de Assinatura Digital El Gamal
Seguidamente, vamos analisar diferentes situac oes de tentativa de falsicar uma assinatura
digital, por parte do intruso, conhecida uma mensagem x e desconhecendo o valor de a.
Consideremos o problema em conseguir determinar e que satisfacam


x
mod p.
1. Se um intruso escolher um valor e tentar determinar o correspondente valor , ele
teria de resolver um PLD, pois:


x
mod p e equivalente a log

x
mod p.
2. Por outro lado, se um intruso primeiro escolhesse e tentasse calcular , teria de
resolver a equac ao:


x
mod p, com desconhecido.
Este problema nao parece estar relacionado com o PLD, mas e uma equacao sobre a
qual nao se conhece nenhuma solucao possvel. Talvez exista uma maneira de calcular
e simultaneamente, que satisfacam essa equac ao, isto e, de modo a que (, ) seja
uma assinatura digital. Todavia, ainda ninguem descobriu um metodo que resolvesse
a condicao em causa, assim como ainda ninguem conseguiu provar que tal nao podia
ser feito, como e referido em [18].
3. Se um intruso escolher e e tentar resolver a equac ao


x
mod p, em
ordem a x, depara-se com o PLD, uma vez que


x
mod p equivale a
x log

mod p.
Tambem neste caso, um intruso nao conseguiria assinar uma mensagem aleatoria.
4. Se um intruso escolher, simultaneamente, , e x, entao consegue assinar a mensagem
x. Vejamos:
Suponhamos i e j inteiros tais que:
0 i, j p 2 (j, p 1) = 1
148 CAP

ITULO 5. ASSINATURAS DIGITAIS


Efectuam-se os seguintes calculos:
_

_
=
i

j
mod p
= j
1
mod p 1
x = i j
1
mod p 1
onde j
1
e calculado modulo p1.Deste modo, (, ) e uma assinatura digital valida
para a mensagem x.
Veriquemos:

(
i

j
)
j
1
mod p

i j
1

mod p
x
mod p
Embora estes metodos analisados anteriormente produzam assinaturas falsicadas que
sao validas, nao parecem permitir que um intruso consiga falsicar uma assinatura de uma
mensagem por ele escolhida, sem primeiro resolver um PLD.
Por este motivo, estes metodos nao representam uma ameaca para a seguranca do sis-
tema de assinaturas digitais ElGamal.
Apos esta analise iremos apresentar duas formas possveis de quebraro sistema de
assinatura digital ElGamal, quando utilizadas cuidadosamente. Sao exemplos de futuras
falhas de protocolo.
1. Caso k seja conhecido, facilmente se calcula a. Vejamos:
= (x a ) k
1
mod p 1 k = (x a ) mod p 1
a = (x k ) mod p 1 a = (x k )
1
mod p 1
Deste modo, determinamos a, o sistema e quebrado e um intruso pode falsicar
a assinatura. Como tal, o valor secreto k, escolhido aleatoriamente, nao deve ser
revelado.
2. Outra falha do sistema e utilizar o mesmo valor de k para assinar duas mensagens
diferentes. Tambem nesta situac ao um intruso facilmente determina a e quebra o
sistema.
Vejamos como isto pode ser efectuado:
Suponhamos que (,
1
) e (,
2
) sao assinaturas digitais das mensagens x
1
e x
2
,
respectivamente.
5.3. ASSINATURA DIGITAL EL GAMAL 149
Ent ao, temos que:

1

x
1
mod p

2

x
2
mod p.
Assim,
x
1
x
2

1

2
mod p.
Como =
k
mod p, com k desconhecido, entao
x
1
x
2

k (
1

2
)
mod p, ou
seja,
x
1
x
2
k (
1

2
) mod p 1 (5.1)
Agora, seja d = (
1

2
, p 1). Como, d [ (p 1) d [ (
1

2
), entao
d [ (x
1
x
2
).
De seguida, dena-se:
_

_
x

=
x
1
x
2
d

=

1

2
d
p

=
p 1
d
Ent ao, a congruencia 5.1 passa a ser:
x

mod p

.
Como (

, p

) = 1, podemos calcular = (

)
1
mod p

. Logo, o valor de k e
determinado modulo p

como:
k = x

mod p

.
Existem d candidatos para k:
k = x

+ i p

mod p 1 , 0 i d 1
O unico valor correcto entre os d candidatos e aquele que satisfaz a condicao:

k
mod p
Conclumos que o sistema ElGamal de assinaturas digitais nao e mais seguro que o PLD.
Consequentemente, como um sistema de assinaturas pode funcionar como um documento
legal, e natural que seja, por vezes, necessario vericar uma assinatura digital muitos anos
apos a mensagem ter sido assinada. Assim sendo, deveremos utilizar um valor para p
sucientemente grande.
150 CAP

ITULO 5. ASSINATURAS DIGITAIS


Captulo 6
Conclusao
Neste momento, e oportuno registar algumas observac oes, necessariamente breves, sobre o
estudo que nos propusemos efectuar, e apresentar possveis direccoes que este poderia ter
seguido.
Na analise dos diferentes sistemas criptogracos classicos, utilizamos o anel comutativo
Z
26
nas cifras classicas. As respectivas func oes de encriptacao e decifrac ao foram denidas
`a custa da aritmetica desses aneis, sendo a func ao de decifracao inversa `a esquerda da de
encriptacao.

E de salientar, no caso da cifra de Hill, a importancia da chave ser uma matriz
invertvel e acrescentar que seria muito util, em termos computacionais, que essa matriz K
fosse igual `a sua inversa. Deste modo, um possvel estudo que ca em aberto e uma analise
da aplicac ao da teoria das inversas de Drazin (utilizada para gerar func oes involut orias) a
este tipo de cifra.
Quando nos debruc amos sobre sistemas criptogracos de chave p ublica e assinaturas
digitais trabalhamos com diferentes tipos de estruturas algebricas:
no RSA e nas assinaturas digitais RSA - aneis comutativos Z
n
, sendo n o produto
de dois primos mpares distintos; a seguranca destes sistemas foi construda `a custa
de funcoes sentido unico e baseou-se na diculdade de resolucao do PFI.
no ElGamal e nas assinaturas digitais ElGamal - grupos nitos, em particular, o
grupo multiplicativo Z

p
com p primo, assim como o grupo de uma Curva Elptica
denida sobre um corpo nito. A seguranca destes sistemas foi construda `a custa
de funcoes sentido unico e baseou-se na diculdade de resolucao do PLD.
Surpreendemo-nos bastante com a aplicacao diversicada das curvas elpticas denidas
151
152 CAP

ITULO 6. CONCLUS

AO
sobre corpos nitos, nomeadamente a sua aplicacao em sistemas de chave p ublica. A sua
seguranca baseia-se na diculdade de resoluc ao do PLD, nao so no ElGamal, como tambem
no Protocolo de troca de chaves de Die-Hellman, entre outros. Nao deixaria de ser um
tema interessante o estudo destas curvas...
No que concerne `as assinaturas digitais RSA utilizando func oes hash(nao e demais
sublinhar que poderamos ter aprofundado este assunto) como ja foi mencionado. Actual-
mente, estas funcoes sao de extrema importancia no que diz respeito `a autentica cao de
documentos, garantindo tambem a sua integridade e o nao-rep udio do envio das mesmas.
Quando utilizamos o software MuPAD Pro 3.1, na construcao do exemplo 4.3.2, aperce-
bemo-nos que uma abordagem interessante do tema desta tese seria a implementa cao com-
putacional de alguns cripto-sistemas. Foi curioso veicar que algoritmos tais como o Al-
goritmo de Euclides Alargado e o Teste de Primalidade Miller-Rabin ja se encontravam
instalados no MuPAD. Atraves deste programa pudemos constatar que a computac ao de
determinados algoritmos se podem tornar problemas diceis de resolver, ou seja, computa-
cionalmente inviaveis.
Por m, resta-nos falar na complexidade computacional dos diferentes algoritmos es-
tudados que nao foi abordado. Todavia, nao camos indiferentes a este assunto. Como ja
mencionamos, o problema P = NP e um dos problemas do milenio . Como tal, quem
o resolver recebe um milhao de dolares atribudo pelo Clay Mathematics Institute e entra
para o pante ao dos cientistas imortais. Este problema esta intrinsecamente relacionado com
os problemas computacionalmente invi aveis que estudamos na investigacao da seguranca
dos sistemas de chave p ublica, os quais estao associado a problemas NP. Concretamente,
o RSA baseia-se no facto da factorizacao de um inteiro que e o produto de dois primos
sucientemente grandes ser um problema considerado dicl, ou computacionalmente
inviavel , mas a vericacao de uma factorizac ao ser trivial. De forma semelhante, no El-
Gamal calcular uma exponencial =
x
e uma func ao de tempo polinomial, ou seja,
facil de efectuar, mas determinar o logaritmo discreto de na base um problema
computacionalmente invi avel . Se alguem conseguisse provar P = NP (o que se julga
improvavel), seria uma catastrofe de proporc oes incalculaveis. Todos os sistemas de segu-
ranca de computadores por passwords, de codigos Multibanco e comunica coes no sistema
nanceiro cariam inseguros. A economia mundial arruinar-se-ia... seria o caos!
A actualidade deste tema fumentou, indubitavelmente, a nossa curiosidade pela sua
investigac ao. Esta foi deveras graticante!
153
Esta monograa termina de forma inacabada. Muito mais poderia ter sido investi-
gado... Contudo, as limitac oes impostas pelo cumprimento dos prazos impossibilita-nos a
continuac ao deste estudo. Ficara, esperamos, para outras oportunidades...
Gostaramos, nalmente, de deixar ao leitor uma lista de stios na internet que achamos
interessantes ao tomarmos conhecimento do assunto tratado.
rsasecurity.com - Laboratorios RSA;
en.wikipedia.org - enciclopedia;
http://www.iacr.org/jofc/jofc.html - Journal of Cryptology, jornal ocial da Inter-
national Association for Cryptologic Research;
http://www.dean.usma.edu/math/pubs/cryptologia - Cryptologia, jornal dedicado
a todos os aspectos da criptologia;
http://www.nsa.gov/museum/index.cfm - Museu nacional de criptologia;
http://www.sobrenatural.org/Site/curtas/curtas descricao.asp?Str ID=1617 - O ultimo
voo do corvo. Supostamente um criptograma feito por Edgar Allan Poe, sob o dis-
farce de Tyler. So em 1992, foi decifrado por Gil Broza.
154 CAP

ITULO 6. CONCLUS

AO
Bibliograa
[1] H. Anton e C. Rorres, Elementary Linear Algebra, John Wiley & Sons, 1994.
[2] J. Buescu, O Misterio do Bilhete de Identidade e Outras Historias, gradiva, 2001.
[3] B. Hartley e T.O. Hawkes, Rings, Modules and Linear Algebra, Chapman and Hall,
1976.
[4] R. E. Hartwig, Comunicacao particular.
[5] T.W. Hungerford, Algebra, Springer, 1996.
[6] D. Kahn, The Codebreakers-The Comprehensive History of Secret Communication
from Ancient Times to the Internet, Scribner, 1996.
[7] R. E. Klima, Neil Sigmon e Ernest Stitzinger, Applications of Abstract Algebra with
MAPLE, CRC Press, 2000.
[8] N. Koblitz, A Course in Number Theory and Cryptography, Springer-Verlag, 1994.
[9] R. Kumanduri e C. Romero, Number Theory with Computer Applications, Prentice
Hall, 1998.
[10] M. Gardner, Mathematical Games: A new kind of cipher that would take millions of
years to break, Scientic American, paginas 120-124, Setembro de 1977.
[11] G. A. Gurevich, Jules Vernes cryptogram Everybody realized that if the attempts to
decipher the document failed, the convict would stand no chance., Quantum, paginas
44-48, Setembro/Outubro de 1990.
[12] L. T. Magalhaes

Algebra Linear como introducao `a matematica aplicada, IST, 1987.
155
156 BIBLIOGRAFIA
[13] M. Majewski, MuPAD Pro Computing Essentials, Springer, 2004.
[14] G. Maze, Algebraic Methods for Constructing One-Way Trapdoor Functions, PhD
Thesis, Department of Mathematics, University of Notre Dame, 2003.
[15] K. H. Rosen, Elementary Number Theory and its applications, AT&T Laboratories,
2000.
[16] M. Rosen e K. Ireland, A Classical Introduction to Modern Number Theory, Springer,
1992.
[17] S. Singh, O Livro dos Codigos, Temas & Debates, 1999.
[18] D. R. Stinson, Cryptography: Theory and Practice, CRC Press, 1995.
[19] D. Welsh, Codes and Cryptography, Oxford Science Publications, 1998.
[20] Song Y. Yan, Number Theory for Computing, Springer, 2002.

Indice
algoritmo
de Euclides, 38
de Euclides alargado, 49
Monte Carlo yes-biased, 94
square-and-multiply, 92
algoritmo Las Vegas, 100
algoritmos de factorizacao
(p 1) Pollard, 105, 106
divisao trivial, 105
algoritmos para PLD
Calculus Index, 124
Shank, 116
Silver Pohlig Hellman, 118
algoritmos para PLD, 115
assinatura digital, 142
cifra
Am, 58, 73
Autochave, 70
Fluxo, 66, 80
Hill, 62, 79
Permutac ao, 64
Shift, 56
Substituicao, 57, 76
Vigen`ere, 23, 60, 78
criterio de Euler, 46
curva elptica
denic ao, 132, 133
determinante segundo Laplace, 51
ElGamal
aplicac ao de curvas elpticas, 139
assinatura digital, 145
cripto-sistema de chave p ublica, 108,
109, 111
func ao de Euler, 38
lei da Reciprocidade Quadratica, 48
problema
da factorizacao de inteiros, 85
da residuosidade quadratica, 86
do logaritmo discreto, 85
RSA
assinatura digital, 142, 144
ataques ao, 99, 100
cripto-sistema de chave p ublica, 33, 88
falhas do protocolo
Common Modulus, 104
Low Exponent, 104
smbolo
de Jacobi, 47
de Legendre, 46
157
158

INDICE
sistema criptograco, 53
teorema
de Euler, 41
de Lagrange, 44
do n umero primo, 93
do resto chines, 42
fundamental da aritmetica, 37
pequeno teorema de Fermat, 41
teste de primalidade
Miller-Rabin, 96, 98
Solovay-Strassen, 94
troca de chaves Die-Hellman, 32, 87, 111

Você também pode gostar