o sistemacriptográfic orsa : ataques e variantes · inês barbedo o sistemcriptográfica rsao :...

77
Inês Barbedo O Sistema Criptográfico RSA: Ataques e Variantes Departamento de Matemática Pura Faculdade de Ciências da Universidade do Porto Setembro 2003

Upload: duongkhanh

Post on 07-Feb-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

Inês Barbedo

O Sistema Criptográfico RSA: Ataques e Variantes

Departamento de Matemática Pura Faculdade de Ciências da Universidade do Porto

Setembro 2003

Page 2: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

Inês Barbedo

O Sistema Criptográfico RSA:

Ataques e Variantes

Tese submetida à Faculdade de Ciências da

Universidade do Porto para obtenção do grau de Mestre

em Matemática - Fundamentos e Aplicações

Departamento de Matemática Pura

Faculdade de Ciências da Universidade do Porto

Setembro 2003

Page 3: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

Dissertação realizada sob supervisão do

Prof. Doutor António Machiavelo,

Professor Auxiliar do

Departamento de Matemática Pura da

Faculdade de Ciências da Universidade do Porto

m

Page 4: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

Agradecimentos

Agradeço em especial ao Professor Machiavelo por ter aceite orientar este trabalho e

pela constante disponibilidade. À minha escola, ESTGM-IPB, o tempo tão precioso.

Aos meus pais e irmão o constante apoio, incentivo e paciência. Aqueles que, por

fazerem parte da minha vida, estiveram sempre por perto.

v

Page 5: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

Introdução

Criptografia é a ciência de manter secretos os segredos.

Existem dois tipos de sistemas criptográficos: os simétricos e os assimétricos. Os

sistemas criptográficos simétricos usam uma mesma chave, a chave secreta, para en-

criptar e desencriptar mensagens enquanto que os sistemas criptográficos assimétricos

usam um par de chaves: a chave pública do conhecimento de todos para encriptar a

mensagem e a chave privada só do conhecimento do receptor da mensagem que serve

para desencriptar. Por isso, os sistemas criptográficos simétricos também se chamam

sistemas criptográficos de chave secreta, e os assimétricos sistemas de chave pública.

Os sistemas criptográficos de chave simétrica têm um problema: como transmitir

a chave secreta ao emissor? Se a conseguimos transmitir de forma segura então não

precisamos do sistema criptográfico em questão! Basta usar a forma segura usada para

transmitir a chave! A necessidade do receptor e do emissor partilharem informação

secreta não segura é eliminada nos sistemas criptográficos de chave pública, pois é o

receptor que gera o par de chaves.

A ideia de sistema criptográfico de chave pública é introduzida em 1976 por Dime

e Hellman [DH76]. É uma ideia simples mas que vem revolucionar a criptografia.

Quem quiser comunicar de forma segura, encripta a mensagem com a chave pública

do receptor e só ele consegue desencriptá-la com a respectiva chave privada, que não

precisa nem deve ser partilhada com ninguém. Para além de estabelecer comunicações

seguras, os sistemas criptográficos de chave pública têm por objectivo autenticar

através de uma assinatura digital a informação transmitida.

vii

Page 6: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

Apesar de terem sido Dime e Hellman a introduzir o conceito, não apresentaram

nenhum exemplo. São Rivest, Shamir e Adleman que, em Fevereiro de 1978 [RSA78],

apresentam o primeiro sistema criptográfico de chave pública: o sistema criptográfico

RSA.

0 sistema criptográfico RSA utiliza resultados da Teoria dos Números como o Teorema

de Euler e a resolução de congruências módulo um número N igual ao produto de

dois números primos, e baseia-se no princípio de que actualmente é fácil multiplicar

números primos, mas pode ser difícil factorizar um número. As suas aplicações são

muitas no mundo electrónico como, por exemplo, garantir a privacidade e auten­

ticidade do correio electrónico, a segurança do comércio electrónico ou do acesso

a contas bancárias. Com o crescente número de utilizadores e o desenvolvimento

dos computadores utilizados, crescem também as tentativas de, pessoas estranhas aos

sistemas, descobrir palavras passe, quebrar códigos ou interceptar comunicações, o que

obriga a que os gestores de sistemas criptográficos estejam constantemente atentos,

actualizem as suas chaves e desenvolvam métodos para garantirem a eficácia desses

sistemas.

O objectivo deste trabalho é fazer uma abordagem ao sistema RSA, o sistema crip­

tográfico de chave pública mais utilizado nos dias de hoje.

Começamos por introduzir alguns tópicos da teoria da complexidade no capítulo 1,

teoria esta que nos permite estimar a eficiência de algoritmos em termos de tempo de

execução e recursos necessários. É introduzida a notação do "Big-O" e as suas pro­

priedades. São descritos o algoritmo de Euclides e um algoritmo para a exponenciação

modular para os quais se determina a complexidade. Este capítulo será importante

para os que se seguem, pois permite ter um modo de estimar o tempo de execução de

algoritmos.

No capítulo 2 introduz-se o sistema criptográfico RSA, descrevendo como são geradas

as chaves pública e privada, como se encripta e desencripta mensagens e como são

geradas as assinaturas digitais imprescindíveis à autenticação. Inclui-se também um

viu

Page 7: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

resultado que mostra que se duas pessoas têm chaves públicas diferentes com o mesmo

módulo N, facilmente determinam a factorização de TV e portanto a chave privada.

Este resultado é importante pois alerta para um erro cometido por alguns, como por

exemplo, pelos próprios criadores do RSA, Rivest, Shamir e Adleman ao propor um

exemplo lúdico de aplicação do sistema criptográfico RSA: o "Mental Poker" [Wad81].

Segue-se, no capítulo 3, a descrição de alguns ataques ao sistema RSA. Começa-se por

dar um exemplo de um ataque no caso em que se usa um expoente privado pequeno.

Enuncia-se o Teorema de Coppersmith que permite determinar de forma eficiente

raízes inteiras pequenas de polinómios de coeficientes inteiros módulo N. Este teorema

é utilizado em vários ataques ao sistema criptográfico RSA de que iremos apresentar

dois exemplos.

No capítulo 4 são introduzidas três variantes do sistema RSA original. A primeira

variante, denomidada "Batch" RSA, propõe-se fazer várias desencriptações pelo custo

de uma, tornando assim o processo de desencriptação mais rápido. A segunda variante,

RSA com múltiplos factores, propõe uma mudança estrutural: mudar a estrutura do

módulo para o produto de vários factores primos em vez de dois ou manter os dois

primos mas, sendo um deles elevado a uma potência maior que 1. Esta variante

que altera a estrutura do módulo tem por objectivo não só acelerar os processos

de encriptação e desencriptação mas também proteger o sistema de alguns ataques.

A terceira e última variante pretende tornar o processo mais rápido, reequilibrando

o esforço efectuado pela encriptação e pela desencriptação, e proteger o sistema de

ataques a expoentes públicos pequenos.

Este trabalho termina com dois apêndices. O primeiro, o apêndice A, descreve uma

forma de formatar as mensagens a que se vai aplicar o sistema criptográfico RSA. O

apêndice B descreve explicitamente o inverso do isomorfismo canónico de Z* xZ* —> Z*N

que será usado no trabalho, e enuncia e prova o Teorema Chinês dos Restos, teorema

muito presente em todo este trabalho.

IX

Page 8: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

Conteúdo

1 Complexidade 1

1.1 Tempo de execução de um algoritmo 1

1.2 A notação do "Big O" 5

1.3 Algoritmo de Euclides 8

1.4 Exponenciação modular 9

2 O Sistema Criptográfico RSA 11

2.1 Terminologia e Conceitos Básicos 11

2.2 Descrição do código RSA 13

2.3 Assinaturas Digitais 20

3 Descrição de Ataques ao RSA 23

3.1 Expoente Privado Pequeno 23

3.2 Expoente Público Pequeno 26

3.2.1 Teorema de Coppersmith 27

3.2.2 Ataque de Hastad 35

3.2.3 Ataque a mensagens camufladas que usam o mesmo módulo . . 37

xi

Page 9: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

4 Variantes do RSA 43

4.1 "Batch" RSA 43

4.2 RSA com múltiplos factores 50

4.2.1 RSA multi-potência: pr ■ q 51

4.2.2 RSA multi-primos: p\ ■ p2 ■ ... ■ pr 54

4.3 RSA reequilibrado 55

A P K C S # 1 59

B z^z;xz; 6 1

Referências 55

xii

Page 10: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

Capítulo 1

Complexidade

Neste capítulo iremos abordar alguns tópicos da teoria da complexidade, teoria esta

que nos permite estimar a eficiência de algoritmos em termos de tempo de execução e

recursos necessários. É introduzida a notação do "Big-0" e as suas propriedades. São

descritos o algoritmo de Euclides e um algoritmo para a exponenciação modular para

os quais se determina a complexidade. Este capítulo será importante para os que se

seguem pois introduz uma maneira de estimar o tempo de execução de um algoritmo.

1.1 Tempo de execução de um algoritmo

Quando se pensa num algoritmo não basta que ele resolva um problema. Aliás, existem

normalmente vários algoritmos para resolver um mesmo problema. Um algoritmo será

melhor ou mais eficiente que outro se utilizar menos recursos, tempo de execução e

espaço de memória, para resolver o mesmo problema. Para poder comparar dois ou

mais algoritmos que resolvem o mesmo problema e poder optar pelo melhor, deverá

existir alguma forma objectiva de os analisar.

A complexidade de um algoritmo é uma estimativa do tempo necessário à execução

desse algoritmo expressa em função das operações fundamentais e do tamanho dos

1

Page 11: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

2 CAPÍTULO 1. COMPLEXIDADE

dados de entrada (input). As operações fundamentais são aquelas que aparecem em

cada passo de um algoritmo como, por exemplo, a adição, multiplicação, subtracção

ou divisão de números.

Um inteiro n escrito numa base b é representado na forma ( 4 _ i 4 _ 2 • ■ ­ ÍWO)* onde

os d's são os dígitos, i.é, números entre 0 e b ­ 1 se b < 10 e as letras ordenadas do

alfabeto se b > 10. Assim'diz­se que n = d^b^1 + dk_2bk~2 + • ■ • + dxb + d0, com

(4­1 ^ 0, tem k­dígitos ou tamanho k na base 6. Portanto um número n que satisfaz

bh~x <n <bk tem fc­dígitos na base b, ou seja1,

fc=Llog6nj + l = ^ n |_ log o

dá o número de dígitos na base 6. Podemos omitir a referência à base b sempre que

se estiver na base usual decimal (b = 10), ou quando esta se subentenda do contexto.

Por exemplo, no caso binário (b = 2) chamaremos bits aos dígitos, introduzindo assim

no texto a base binária em que se está a trabalhar.

Vamos agora ver como funcionam algumas operações em binário para em seguida

definir o que é uma operação elementar, determinar a complexidade de um algoritmo,

estimando o seu tempo de execução.

Exemplo 1.1.1. Adição de dois números em binário

1 1 1 1 0 0 0 + 0 0 1 1 1 1 0 1 0 0 1 0 1 1 0

Suponhamos que estamos a adicionar dois números com no máximo fc­bits cada. Se

algum dos números tiver menos bits que o outro serão acrescentados 0 ' s à esquerda

do número com menos bits ficando ambos com o mesmo tamanho. Analisemos com

detalhe como se procede para efectuar a adição. O que se faz é repetir k vezes os

seguintes passos: 1 [arj denota o maior inteiro menor ou igual a x e \x] o menor inteiro maior ou igual a x

Page 12: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

1.1. TEMPO DE EXECUÇÃO DE UM ALGORITMO 3

1. Olhar para o bit de cima e para o bit de baixo verificando ainda se "veio 1"

(carry) da operação anterior.

2. Se os bits são ambos 0 e não "veio 1", então escrever 0 no resultado e continuar.

3. Se ou (a) os bits são ambos 0 e "veio 1", ou (b) um dos bits é 0 e o outro 1, e

não "veio 1", então escrever 1 no resultado e continuar.

4. Se ou (a) um dos bits é 1 e o outro 0 e "veio 1" ou (b) ambos os bits são 1 e não

"veio 1", então escrever 0 no resultado, colocar "vai 1" na coluna à esquerda e

continuar.

5. Se ambos os bits são 1 e existe "veio 1", então escrever 1 no resultado, colocar

"vai 1" na coluna à esquerda e continuar.

Aplicar estes procedimentos uma vez diz-se aplicar uma operação elementar (bit ope­

ration). Adicionar dois números com fc-bits requer assim fc operações elementares.

Todas as tarefas, mesmo algumas bem complicadas, podem ser reduzidas a operações

elementares. Portanto, estimar o tempo que um computador leva a executar um algo­

ritmo será proporcional ao número de operações elementares a executar. O tempo que

uma operação elementar leva a ser executada depende da velocidade de processamento

do computador que está a ser utilizado, sendo nos dias de hoje da ordem dos IO-9

segundos (1 nanosegundo). Quando se fala em estimar o "tempo" de um algoritmo o

que de facto queremos dizer é que estamos a estimar o número de operações elementares

que o algoritmo executa.

O tempo necessário à adição de dois números é assim igual ao maior dos tamanhos

dos números, o que podemos escrever da seguinte forma

Tempo estimado para(fc-bit+Z-bit)= max(fc,/).

Vamos agora estimar o tempo necessário ao produto de dois números binários um com

fc-bits e outro com i-bits.

Page 13: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

4 CAPÍTULO 1. COMPLEXIDADE

Exemplo 1.1.2. Multiplicação de dois números escritos em binário.

1 1 1 0 1 x 1 1 0 1 1 1 1 0 1

1 1 1 0 1 0 1 1 1 0 1

1 0 1 1 1 1 0 0 1

Suponhamos que é usado o procedimento seguido no exemplo anterior para multiplicar

o número n com /c-bits pelo número m com /-bits e vamos assumir, sem perda de

generalidade, que k > /. O que se obtém são no máximo / linhas, pois por cada bit

igual a 0 em m escreve-se menos uma linha, e onde cada linha é uma cópia de n

deslocada um dígito para a esquerda, i.é, acrescida de um 0 no extremo direito. Assim

em cada linha teremos inteiros com no máximo (k + Z)-bits.

fc-bits (n)

x /-bits (m)

} < / linhas

< k + /-bits

Com vista a contar as operações elementares envolvidas nesta multiplicação, vamos

supor que é apenas efectuada uma adição de cada vez, ou seja, adicionamos a primeira

linha com a segunda, depois adicionamos a terceira linha com o resultado obtido da

adição das duas primeiras linhas e por diante até não haver mais linhas. Teremos

assim que efectuar / - 1 adições. Como em cada adição são executadas no máximo

k + / operações elementares o número total dessas operações será, no máximo

Tempo estimado para (/v-bitsx/-bits)<

<(/ adições) x (A; + / op. elementares por adição)

< l(k + l)< 2kl , porque / < k.

Page 14: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

1.2. A NOTAÇÃO DO "BIG O" 5

A estimativa de tempo que é feita em termos de operações elementares dá-nos um

limite superior para o número de operações elementares necessárias ao algoritmo,

procurando em geral obter uma estimativa simples e fácil de se trabalhar. Por exemplo,

na multiplicação o número de linhas diferentes de zero a considerar para as adições

será menor que l - 1 e se l tiver muitos zeros essa diferença será significativa. Ou ainda,

poderiamos ter usado uma técnica um pouco mais complicada que aquela aqui usada

para multiplicar dois números. Prova-se que (ver [Rie85, p. 348-356]), usando outras

técnicas para multiplicar dois números com fc-bits, o tempo estimado é proporcional

a (Hog A; log log A;) operações elementares, para k suficientemente grande.

1.2 A notação do "Big O"

Definição 1.2.1. Sejam T(n) e f(n) funções reais positivas de variável inteira posi­

tiva. Se existem uma constante C e uma constante n0 tais que T(n) < Cf{n) para todo

n > n0, então escreve-se T(n) = 0(f{n)) e diz-se que T tem complexidade dominada

porO{f{n)).

Esta definição extende-se de forma óbvia ao caso de T e / serem funções com mais

que uma variável.

Na prática é muito difícil prever com algum rigor o tempo de execução, T(n), de um

algoritmo. O que a notação do "big-O" introduz é uma análise assimptótica (n -» oo)

e uma majoração dessa estimativa. Note-se que a igualdade T(n) - 0(f(n)) não é

verdadeiramente uma equação porque 0(f(n)) não representa uma só função /(n)

mas sim um conjunto de funções tais que T(n) < Cf(n), para alguma constante C.

Assim, o sinal "=" nesta notação significa efectivamente inclusão, "Ç".

Voltemos aos nossos exemplos anteriores da adição e multiplicação de dois números

para exprimir o tempo estimado nesta nova notação. Recordemos que se n tem fc-bits

e m tem Z-bits, então k < j ^ f + 1 e / < ^ f + 1. Assim, escrevemos que a adição tem

complexidade 0(max(logm,logn)) e a multiplicação O(logmlogn).

Page 15: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

6 CAPÍTULO 1. COMPLEXIDADE

Podemos ter vários tipos de complexidade, entre outros:

• constante: 0(1);

• logarítmica: O (log n);

• linear: 0(n);

• polinomial: 0(nc), com c G N;

• exponencial: 0(an), com a > 1.

Para melhor entender como é que a notação do "big-O" exprime a estimativa do tempo

de execução de um dado algoritmo, vejamos um exemplo.

Exemplo 1.2.2. Suponhamos que um algoritmo é executado em tempo cúbico sobre

o tamanho do dado de entrada (input) N, i.é, 0(n3), onde n é o tamanho de N.

Vamos supor que N tem 1024 bits e que a unidade de tempo do computador que

temos à disposição, ou seja, o tempo que demora a executar uma operação elementar

(bit operation), é o nanosegundo (IO-9 do segundo). Como,

este algoritmo demora (supondo que a constante implícita no "O" é 1) « 1,07 se­

gundos! Se este algoritmo tivesse tempo 0(2") onde n continua a ser o tamanho do

módulo N em binário, demoraria muitos milénios a ser executado. Para ter um termo

de comparação se N tivesse 64-bits em vez dos 1024, sendo portanto 8 vezes mais

pequeno, o referido algoritmo demoraria « 584 anos!

Este exemplo serve também para perceber que algoritmos com complexidade expo­

nencial têm pouca utilidade prática. Normalmente os algoritmos desejados, porque

são os "eficientes", são os algoritmos polinomiais, sendo assim fundamental na teoria

de algoritmos e ciências da computação a seguinte definição.

Page 16: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

1.2. A NOTAÇÃO DO "BIG O" 7

Definição 1.2.3. Um algoritmo que solucione um problema envolvendo os inteiros

m,ri2,..­,nr com ki,k2,...,kr bits cada, respectivamente, diz­se um algoritmo em tempo

polinomial se existem inteiros di,d2,...,dr tais que o número de operações elementares

necessárias ao algoritmo é 0(k11k2

2 ■ ■ • kf~).

O seguinte teorema estabelece algumas propriedades básicas da notação do "big­O".

Teorema 1.2.4. Sejam f e g funções reais positivas de variável natural,

(i) Se ce R+, então cO(g) = 0(g).

(ii) 0(f) + 0(g) = 0(max{f,g}).

(in)0(f)0(g) = 0(fg).

Prova: (i) Se / = 0(g), então existe uma constante k € R+ tal que f(n) < kg(n) para

todo o n suficientemente grande. Assim,

cf(n) < (ck)g(n),

donde se obtém cf — 0(g), ou seja, cO(g) = 0(g).

(ii) Seja hi ­ 0(f) e h2 = 0(g), então existem Ci,c2 € M+ tais que hi(n) < c1f(n) e

h2(n) < c2g(n) para n suficientemente grande. Portanto,

hi(n) + h2(n) < cif(n) + c2g(n)

< 2max{clf(n),c2g(n)}

< 2max{ci,C2}max{/, g}

ou seja, 0(f) + 0(g) = O (max{/,g}).

(iii) Seja hi = 0(f) e h2 = 0(g), então existem C\, c2 6 M+ tais que hi(n) < Cif(n) e

h2(n) < c2g(n) para n suficientemente grande. Consequentemente,

hi(n)h2(n) < Cic2f(n)g(n),

o que implica que

0(f)0(g) = hh2 = O(fg).

Page 17: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

8 CAPÍTULO 1. COMPLEXIDADE

O

Observe-se que (i) é um caso particular de (iii), basta tomar f(n) =constante. Além

disso, se f = g e aplicarmos repetidas vezes, digamos k vezes, (iii) obtemos 0(fk) =

0(f)k.

1.3 Algoritmo de Euclides

O algoritmo de Euclides é uma forma eficiente de determinar o máximo divisor comum

entre dois números inteiros e escrever esse máximo divisor comum, como combinação

linear inteira dos dois inteiros dados. Vamos estimar o tempo de execução do algoritmo

de Euclides.

Proposição 1.3.1. Sejam a e b dois números inteiros positivos tais que a > b. O

algoritmo de Euclides é um processo finito de complexidade O(logò).

Antes de provar a proposição vamos enunciar e provar um Lema que mostra que o

algoritmo de Euclides é um processo finito.

Lema 1.3.2. Se a > b e a = bq + r com 0 < r < b então r < | .

Prova: Como a > b, tem-se que q > 1, portanto bq > b e a — bq + r >b + r . Daqui

resulta que r < a - b. Somando com b que é maior que r resulta que 2r < a. O

Provemos então a proposição 1.3.1.

Prova: Aplicando o algoritmo de Euclides obtemos as seguintes igualdades:

a = bq0 + r0

b = r0qi + ri

r0 = rxq2 + r2 (1.1)

n = r2qs + r3

Page 18: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

1.4. EXPONENCIAÇÃO MODULAR 9

para alguns inteiros positivos q0,qu..., 0 < r0 < b e 0 < r< < r<+1) com i > 1. Assim,

pelo lema anterior, cujas hipóteses são satisfeitas pelas igualdades (1.1), resulta que:

r i < f

ra < ri < F

5̂ < ? < £

r2t_i < £

Faça­se í = fiofljo]. Tem­se 2l > b e portanto r2 t­i < 1, ou seja, este resto tem de ser

zero. Resulta então que número de passos a efectuar no algoritmo de Euclides até o

processo terminar é inferior a 2í, que é aproximadamente 2fo#2& ou seja o algoritmo

tem tempo estimado O(logò), o que conclui a prova do teorema. □

1.4 Exponenciação modular

Uma outra operação que iremos usar várias vezes é a exponenciação modular, i.é,

determinar o menor inteiro positivo congruente com ar mod N, onde r e N são números

naturais. Existe uma forma de determinar este número, mais rápida que multiplicar a

por ele próprio r vezes e depois reduzir módulo N. A ideia do algoritmo é escrever a

potência r em binário, calcular as potências de a da forma a2' por aplicação sucessiva

da operação "elevar ao quadrado" e, por fim, multiplicar aquelas cujos expoentes

aparecem na decomposição binária de r.

Vamos descrever o algoritmo e estimar o seu tempo de execução.

Proposição 1.4.1. Dados os inteiros positivos o, r e N, tais que a < N o tempo

estimado para determinar o menor inteiro positivo congruente com o? mod N é

0(logrlog2 N).

Page 19: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

1 0 CAPÍTULO 1. COMPLEXIDADE

Prova: Comecemos por descrever o algoritmo que determina o menor inteiro positivo

congruente com ar mod N, onde a < N.

Dados de entrada (input): a,r,N

Resultado (output): y

(1) x := a, y := 1, s := r;

(2) Enquanto s ^ l fazer

b := s (mod 2)

se b = 1 então y :— y ■ x (mod N)

x := x ■ x (mod N)

- = — LSJ: (3) return y.

Para estimar o tempo que leva a executar o algoritmo, observemos que em cada passo é

efectuada uma ou duas multiplicações de números menores que TV2, visto que a < N.

Logo em cada passo temos tempo dominado por 0(logiV2log./V2) = 0(log2 N). O

número de passos do algoritmo é o número de bits de r, portanto O(logr). Conclui­se

assim que o tempo que demora a exponenciação modular é 0(logr • log2 N). O

Page 20: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

Capítulo 2

O Sistema Criptográfico RSA

Antes de descrever o sistema criptográfico RSA, neste capítulo, começamos por esta­

belecer terminologia e conceitos básicos de criptografia. Depois introduz-se o sistema

RSA, descrevendo como são geradas as chaves pública e privada, como se encripta

e desencripta mensagens e como são geradas as assinaturas digitais imprescindíveis

à autenticação. Apresenta-se ainda um resultado que mostra que se duas pessoas

que têm chaves públicas diferentes com o mesmo módulo, facilmente encontram a

chave privada uma da outra. Este resultado é importante pois alerta para um erro

cometido por alguns, como por exemplo, os próprios criadores do RSA, Rivest, Shamir

e Adleman, ao propor um exemplo lúdico de aplicação do sistema criptográfico RSA:

o "Mental Poker" [Wad81].

2.1 Terminologia e Conceitos Básicos

Criptografia é a arte de criar escritas secretas com o objectivo de transmitir informação

confidencial de forma a serem lidas ou interpretadas apenas por pessoas que conheçam

o seu significado. Chamaremos ao texto inicial (plaintext) mensagem original, ao texto

final (cryptotext) criptograma. Ao processo que transforma a mensagem original no

criptograma pode chamar-se codificação, cifragem ou encriptação. Optamos por usar

11

Page 21: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

1 2 CAPÍTULO 2. O SISTEMA CRIPTOGRÁFICO RSA

o termo encriptação (encrypt). Para o processo inverso, ou seja, para a partir do

criptograma recuperar a mensagem original, pode usar-se os termos descodificação,

decrifragem ou desencriptação. Aquele por que optamos é desencriptação (decrypt).

Criptanálise (Criptanalysis) é o estudo das debilidades dos sistemas criptográficos e

quem faz criptoanálise, o criptoanalista (cryptanalist) é usualmente denominado de

inimigo ou intruso, pois é aquele que tenta quebrar o sistema e conseguir desencriptar

os criptogramas dirigidos a terceiros.

O sistema criptográfico RSA, criado em 1978 por Ronald Rivest, Adi Shamir e Leonard

Adleman [RSA78], baseia-se na assimetria que existe entre a simplicidade de multi­

plicar quaisquer dois números primos e a dificuldade, mediante algumas condições que

veremos adiante, de dado um inteiro o factorizar em números primos.

0 sistema RSA diz-se um sistema criptográfico de chave pública pois neste sistema,

contrariamente aos sistemas criptográficos de chave simétrica, em que o receptor e o

emissor têm de chegar a acordo sobre a chave a utilizar, tendo de usar algum meio

de comunicação para chegar a esse acordo, cada utilizador gera um par de chaves:

uma chave pública que é do conhecimento de todos, e uma outra associada à primeira

que só o próprio conhece, a chave privada. A chave pública é usada para encriptar a

mensagem original e a chave privada para desencriptar o criptograma.

Os objectivos da criptografia não se limitam à confidencialidade. Devem também

permitir ao receptor verificar se uma dada mensagem foi alterada ou danificada durante

a sua transmissão, quem é o seu emissor e garantir que o emissor não poderá mais

tarde negar o envio da mensagem.

O RSA é o sistema criptográfico de chave pública mais usado nos dias de hoje, não

só na transmissão ou armazenamento de informação, mas também em transações e

comércio electrónico.

Page 22: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

2.2. DESCRIÇÃO DO CÓDIGO RSA 13

2.2 Descrição do código RSA

Sejam p e q dois primos distintos "grandes", onde grandes se refere ao número de

dígitos de cada número, sendo actualmente sugerido números com 512 bits (155

dígitos). Determina-se N = pq e <p{N) = (p - l ) ( í - 1)- A iV chama-se mrfduZo

e </? é a função de Euler1.

Considera-se e tal que {e,<p{N)) = 1 e, usando o algoritmo de Euclides, determina-se

d tal que ed = 1 {mod <p(N)), ou seja, d s e~l {mod <p(N)). A e chama-se expoente de

encriptação e a d expoente de desencriptação. O par {N, e) é a c/iaue pú6/ica porque

pode ser divulgada publicamente, e o par (N, d) a chave privada que só o receptor

do criptograma conhece e pode usar para desencriptar o criptograma. Assim, aos

expoentes de encriptação e e de desencriptação d também se chama expoente público

e expoente privado, respectivamente.

Seja X a mensagem inicial. Para encriptar a mensagem X usando a chave pública

(N,e), teremos primeiro de a formatar (ver apêndice A) em blocos de inteiros M tais

que M < N e (M, N) = 1, pois se M e N não fossem primos entre si ficaria exposta

a factorização de N. O processo de encriptação é aplicado a M determinando-se

C s Me {mod N). Para desencriptar o criptograma C, com vista a recuperar a

mensagem M, basta calcular Cd {mod N). De facto,

Cd = Med = Med~l M = M {mod N)

onde a última igualdade se justifica com o Teorema de Euler 2.

Como {e,ip{N)) = 1, a cada chave pública corresponde apenas uma única chave pri­

vada. Temos portanto, a garantia de que a cada mensagem M corresponde apenas um

criptograma C, não havendo qualquer possibilidade de ambiguidade na desencriptação.

Finalmente a mensagem original X obtém-se de M aplicando o algoritmo recíproco

do que formatou a mensagem inicial X em M. V(iV)=número de inteiros positivos menores ou iguais a N que são primos com N. 2Teorema de Euler [Ang95, p. 107] Se n é um inteiro positivo e a 6 Z são tais que (o,n) = 1,

então afW s 1 (modn).

Page 23: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

14 CAPÍTULO 2. O SISTEMA CRIPTOGRÁFICO RSA

A escolha de p e de q deve ser feita com alguns cuidados tendo em vista dificultar

a factorização de N. Devem ser gerados aleatoriamente seguindo, por exemplo, o

seguinte processo: começa-se por gerar um número aleatório grande, x; se x for par

então x passa a ser o seu sucessor, x + 1; aplica-se um teste de primalidade a x.

Se x não for primo então consideramos o número ímpar seguinte, x + 2, ao qual

aplicamos de novo o teste, e por diante até se obter o primo pretendido. Outra

coisa a ter em atenção é que p e q devem ser primos relativamente próximos (mas

não demasiadamente próximos porque senão podem ser descobertos pelo método de

factorização de Fermât [Rie85, pp. 153-155]). Se o módulo N tem n-bits então os

primos p e g devem ter |-bits cada, i.é, ter o mesmo tamanho (mas com os primeiros

bits diferentes, por exemplo), pois quanto maior for um factor primo, mais difícil é

encontrá-lo.

A segurança das chaves e o tamanho que devem ter, prende-se com aquilo a que se

destinam e depende da rapidez e eficiência do "hardware" e "software" disponíveis

no mercado. Em Fevereiro de 1978, quando foi apresentado o sistema criptográfico

RSA [RSA78], era aconselhado que as chaves tivessem 200-bits (tamanho do módulo

N). Nos dias de hoje [RSA03, /technotes] (ano 2003) se quisermos um sistema de

alta segurança para um servidor, deverá usar-se uma chave com 2048-bits, se for

um utilizador de um sistema que tem necessidade de arquivar documentos durante

algum tempo, deve-se utilizar uma chave com 768 ou 1024 bits. Se for apenas

para proteger uma transmissão de informação, como por exemplo, uma mensagem

de correio electrónico que quando chegar ao destino será arquivada ou apagada, são

então aconselhadas chaves com 512 bits pois quanto maiores forem as chaves mais

demorado fica o sistema. Em Agosto de 1999 foi decomposto um número com 512-

bits (155 dígitos), denominado RSA-155. Apesar disso, não deixou de ser este o

tamanho aconselhado para algum tipo de chaves, pois para além da sua factorização

ter demorado 7 meses e envolvido muitos meios, utilizou só métodos de factorização

já existentes e foi necessário em grosso modo o tempo já previsto à priori.

Há formas de acelerar a encriptação e desencriptação. Algumas delas serão abordadas

Page 24: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

2.2. DESCRIÇÃO DO CÓDIGO RSA 15

no capítulo 4, mas um exemplo de uma forma de tornar a encriptação mais rápida,

é escolher um expoente de encriptação e que quando escrito em binário tenha muitos

zeros, como por exemplo os primos 3, 17 ou 216 + 1, e usar a exponenciação modular.

0 processo torna-se mais rápido porque, por exemplo no caso de e = 216 +1 = 65537, o

que se faz, tal como descrito na secção 1.4, é começar por determinar o menor inteiro

positivo tal que M 2 " {mod N) = ((((M2)2)2)2)2 (mod N). Por fim multiplica-se

o resultado por M e reduz-se mod N. Portanto a encriptação com este expoente

público requer apenas 17 multiplicações o que a torna um processo mais rápido que a

desencriptação. Como e não deve, por razões de segurança que veremos no capítulo

3, ser demasiado pequeno, utiliza-se muitas vezes este expoente público, e = 216 + 1.

Para tornar a desencriptação mais rápida pode usar-se o Teorema Chinês dos Restos,

pois o receptor conhece os factores p e q do módulo N. Consideremos o isomorfismo

canónico (ver apêndice B)

* : Z ^ —+ z ; x z ;

x i—» (x,x).

Fazendo cd — * _ 1 (*(c d ) ) = * _ 1 (c d ,c d ) , calculam-se cd mod p e cd mod q em Zp e

em Zç, respectivamente, em vez de cd em ZN, e depois usa-se o Teorema Chinês dos

ELestos, trabalhando assim com números que têm metade dos bits de JV.

Uma outra questão importante na escolha de chaves para o sistema criptográfico RSA

é assegurar-nos que chaves diferentes têm módulos diferentes.

Por exemplo, imaginemos uma rede de comunicação com i > 1 utilizadores. O gestor

da rede atribuí um par et, di a cada utilizador ficando assim cada um com as suas

chaves pública e privada (N,ei) e {N,di}, respectivamente. Aparentemente desde que

cada um não revelasse a sua chave privada, a rede seria segura. Mas, o teorema

seguinte mostra que expor um expoente privado di de uma chave (N, di) é equivalente

a factorizar N. Portanto mesmo que não tenha sido fornecida a factorização de N

a nenhum dos i utilizadores, eles conseguiriam factorizar N o que tornaria a rede

totalmente insegura.

Page 25: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

16 CAPÍTULO 2. O SISTEMA CRIPTOGRÁFICO RSA

Teorema 2.2.1. Seja (N,e) uma chave pública RSA. Dada a chave privada d, pode­

mos factorizar o módulo N = pq usando um algoritmo probabilístico de tempo esperado

O (hg N), com probabilidade de sucesso maior ou igual a \. Reciprocamente, dada a

factorização de N podemos determinar d.

Prova: O facto que dada a factorização de N se pode determinar d, resulta da própria

construção do sistema RSA.

Provemos agora que tendo d se consegue factorizar N. Dado d, seja k­ed­1. Pela

definição de d e e sabe­se que <p(N)\k. Como <p(N) é par pode­se escrever k = 2*r

onde r é ímpar e t > 1. Tem­se que gk = 1 para todo o g e 1*N porque pelo teorema

de Euler, como (g, N) = 1 e k = </?(A0a para algum a € N,

3* = (^ (JV))° = Ia (mod TV) s 1 (mod N).

Em ZAT existem 4 raízes quadradas da unidade, pois pelo Teorema Chinês dos Restos,

x2 = 1 (mod N) & x2 = 1 (mod p)

x2 = 1 (moei q)

x = 1 mod p a; = —1 mod p <^ ^ V< Vi = i l (modpq).

x = — 1 mod g I x = 1 mod g

Se determinarmos uma das duas raízes não triviais, ou seja, x tal que

x = 1 mod p A x = ­ 1 mod g ou x = ­ 1 mod p A x = 1 mod g

fica exposta a factorização de iV pois ou (x — 1, N) = p ou (x — 1, N) = q.

Assim, o objectivo é encontrar uma raiz quadrada não trivial de 1 (mod N) usando o

facto de gk = 1 e portanto g2 r, l = 0,1, • • • , t ­ 1 são possíveis candidatos. Para isso

vamos provar que:

Se g é escolhido aleatoriamente em Z*N, então a probabilidade de g ser tal

que um dos elementos da sequência gk^2',gk^4; ■■■;gk^2 mod N ê uma raiz

quadrada não trivial da unidade é | .

Page 26: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

2.2. DESCRIÇÃO DO CÓDIGO RSA 17

Consideremos o conjunto

G = {g eZ*N : g2'r é uma raiz quadrada da unidade diferente de ± 1,

para algum l G {0,1,..., t — 1}}.

O que queremos provar é que #G > !\^.

Como já vimos g2'r é uma raiz quadrada da unidade não trivial se

g2 r = 1 (mod p)

g2r = — 1 (mod q)

ou <72'r = — 1 (modp)

(2.1)

(2.2) g 2 r = 1 (mod q).

Consideremos o isomorfismo canónico Z*N —* 1* x Z* (ver apêndice B) e sejam

a e (3 geradores dos grupos cíclicos Z* e Z*, respectivamente. Via este isomor­

fismo g corresponde a um elemento («*,/#) G Z* x Z* e portanto (a2 '", /?2'rj) =

= (±1, Tl)- Assim, / ,-Jllr „2'r J<7

# G = #{(i,j) : ( a 2 ' " , / ^ ) = ([l]p> [-1],) ou ( a 2 ' " , / ^ ) = ([-1]P) [1],)

para algum Z 6 {0,1, ...,í — 1}}.

Podemos pois reescrever (2.1) e (2.2) da seguinte forma

ou

2lri = 0 (mod p — 1)

2'rj = *=* (mod q - 1)

2'rz = £=- (mod p — 1)

2'rj = 0 (mod g - 1)

(2.1')

(2.2')

e contar, para cada l G {0,1, ...,t - 1} os pares (i,j) que satisfazem estas condições.

Relembremos que k = ed - 1 = 2'r com r ímpar e í > 1. Sejam p - 1 = Tu e

Page 27: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

1 8 CAPÍTULO 2. O SISTEMA CRIPTOGRÁFICO RSA

q ­ 1 = 2bv onde 2 \ uv e vamos assumir, sem perda de generalidade, que 1 < a < b. Observe­se que uv\r.

Por um resultado elementar3 da Teoria dos Números sabemos que 2lri = 0 (modp­1)

tem solução se e só se (2lr,p — l)\p ­ 1. Como

(2lr,p ­ 1) = (2'r, 2°u) = u2miníí'°>

e u2"»"{'.«}|2Qu, a congruência tem sempre solução e além disso, pelo mesmo resultado,

sabemos que o número de soluções i é u2minV­aK De forma análoga concluí­se que o

número de soluções para j na segunda congruência em (2.1 ') é

(2'r, q ­ 1) = (2'r, 2bv) = v2min^

quando 2miní''6> | 26"1, portanto l < b, ou seja, o número de soluções para j é v2z

quando l < b — 1 e zero se / > ò.

De modo análogo, de (2.2' ) obtém­se o número de soluções para i na primeira

congruência:

(2lr,p ­ 1) = (2'r, 2°ÍÍ) = U2™n<'­Q}

quando 2miní''°> | 2a""1, portanto / < a, ou seja, o número de soluções para i é «21

quando l < a e zero se Z > a.

0 número de soluções para j na segunda congruência é

(2'r, q ­ 1) = (2'r, 26u) = w2min{ ' '6}.

Como a < b e a primeira congruência só tem solução quando l < a, o número de

soluções da segunda é, neste caso, v2l.

Em resumo, dado l, tem­se:

• (2.1 ') tem solução sse / < b e o número de soluções é uv2mm^l'a^ ■ 2';

3Teorema [LeV96, p. 58] A congruência ax = b (mod m) com (o, m) = d tem solução se e só se

d | b. Além disso, se d\b, o número de soluções é d.

Page 28: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

2.2. DESCRIÇÃO DO CÓDIGO RSA 19

• (2.2') tem solução sse l < a e o número de soluções é uv2minV'a} ■ 2l = uv221 =

uvi1.

Para cada l a solução (i, j) é única (injectividade do isomorfismo), portanto na sequência

9r, 92r, ■■■■> 52'"1'" s ° P o d e existir uma raiz quadrada da unidade não trivial para cada l.

O número de pares (i, j) procurados, é assim, o produto do número de soluções i pelo

número de soluções j , obtidas em cada sistema.

No sistema (2.1') existem uv2miri^^2l soluções para l = 0,1,...,a,...,6 ­ 1. Como

a <b o número de soluções para cada l = 0,1,. . . , a,..., b — 1 é:

u ■ v, 2u ■ 2v, 22u ■ 22v, ■ ■ • , 2au ■ 2av, 2au ■ 2a+1v, ■ ■ ■ , 2au ■ 2b~lv

portanto o número total é

uv (1 + 4 + • ■ • + 4a) + uv ■ 4a(2 + • • • + 2b~a) = uv1­^­ + uv • 4a • 21~2^'1

= uv 4 a + 1 ­ l , QO+6 _ o2a+

3

No sistema (2.2') existem soluções (i, j) para l — 0,1, • • • , a ­ 1 portanto

u ■ v,u2 ■ v2,u22 • v22, ■ ■ • ,u2a~1 • v2a~l

donde 4a ­ 1

uv (1 + 4 + • • • + 4a"1) = uv ■ ­—­. v 4 ­ 1

Resulta então que o número total de soluções (i,j) com a < b é:

uv.(£±i=l + 2«+»­2­4° + ^ ) = ^ 1 ^ 1 ^ ( 4 ­ 6 + i ) ­ 2 + 2 Q + 6 ­

= v(N)[l­£&] > <p(N) (1 ­ f ^ ) , porque a < b

= „(iV) (1 - ^ - I)

> <p(N) ( | ­ | ) , porque a > 1 _ £ím

2

Page 29: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

20 CAPÍTULO 2. O SISTEMA CRIPTOGRÁFICO RSA

como se queria provar.

Fica assim provado que a probabilidade de g ser tal que um dos elementos da sequência

gk/2. gfc/4. . gk/2 mo(jL yyr g u m a ra i 'z qUadrada não trivial da unidade, é maior ou igual

a J-

Falta ver que todos os elementos da sequência podem ser eficientemente determina­

dos em tempo O(log3 N). Pela proposiçãol.4.1 o calculo de g2tr tem complexidade

dominada por 0(log(2V) log2 N) (ao calcular g2tr passa­se por todos os elementos da

sequência gr,g2r,g2 r,­­­ ,g2r)­ Observe­se que 2'r = k e k\tp(N) logo k < <p(N).

Como <p(N) tem tamanho próximo de N, log(fc) < log(iV) e portanto 0(log(fc)) =

O(logiV), donde se conclui que o algoritmo tem complexidade O (log N ■ log2 N) =

0(log3iV). □

2.3 Assinaturas Digitais

Pode­se ao enviar uma mensagem querer também assiná­la, tal como se assina um

documento ou um cheque. O sistema RSA pode também ser usado para esse fim,

sendo possível associar a uma mensagem uma assinatura digital que não é mais que

um número inteiro que garante a origem da mensagem.

Para assinar uma mensagem M o emissor começa por usar a sua chave privada,

digamos (NE, de), para determinar

A = MdE {mod NE).

Em seguida o emissor usa a chave pública do receptor (NR,eR) para encriptar a

mensagem assinada A, fazendo

C = AeR (mod NR)

e envia C ao receptor. O receptor pode então desencriptar o criptograma C usando a

sua chave privada (NR, dR) e verificar a origem da mensagem usando a chave pública

Page 30: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

2.3. ASSINATURAS DIGITAIS 21

do emissor {NE,eE). Ou seja, o que receptor tem que fazer é determinar

CdR {mod NR) = A e AtE (mod NE) = M.

Devemos ter em atenção que, porque os módulos não são iguais, não podemos trocar

a ordem das coisas tendo mesmo de em primeiro lugar desencriptar a mensagem e

só depois verificar a origem da mensagem, i.é, verificar a assinatura. Outra questão

que se coloca por estarem a ser usados módulos diferentes é que se NE < NR não há

problemas mas se NE > NR parte da mensagem será perdida!

Existem várias formas de ultrapassar o problema:

• ter em atenção o tamanho de NR e NE que são públicos, começar o processo

pela assinatura, como acima descrito, se NE < NR ou iniciar pela encriptação e

só depois assinar, caso contrário;

• o emissor ter o cuidado de redefinir o tamanho dos blocos em que se divide a

mensagem depois de assinada;

• assegurar uma lista de chaves de tal forma que todos os utilizadores do RSA usem

as chaves com módulo mais pequeno para assinar mensagens e as de módulo

maior para encriptar mensagens assinadas.

Existem outras formas de assinaturas digitais. Quisemos apenas mostrar como pode

o RSA ser usado não só para encriptação de mensagens mas também para garantir a

origem das mensagens, cumprindo assim os vários objectivos da criptografia já atrás

referidos: codificação, autenticação e possibilidade de verificar a origem das mensagens

enviadas.

Page 31: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

22 CAPÍTULO 2. O SISTEMA CRIPTOGRÁFICO RSA

Page 32: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

Capítulo 3

Descrição de Ataques ao RSA

Neste capítulo descrevem-se alguns ataques ao sistema RSA que se aplicam quando são

utilizados expoentes públicos ou privados pequenos. Começa-se por dar um exemplo

de um ataque no caso em que se usa um expoente privado pequeno. Enuncia-se

o Teorema de Coppersmith que permite determinar de forma eficiente raízes inteiras

pequenas de polinómios de coeficientes inteiros módulo N. Este teorema é utilizado em

vários ataques ao sistema criptográfico RSA, quando se usa expoente público pequeno,

e de que apresentamos dois exemplos.

3.1 Expoente Privado Pequeno

Numa tentativa de tornar o processo de desencriptação mais rápido podemos cair na

tentação de escolher um expoente privado d "pequeno". O que o seguinte teorema

de M. Wiener mostra é que a escolha de d "pequeno" pode levar à ruptura total da

segurança do sistema criptográfico RSA, ou seja, consegue-se determinar o expoente

privado d e consequentemente a factorização de N.

Teorema 3.1.1 (M.Wiener). Seja N — pq, com q < p < 2q. Seja d < ^TV*. Dada

a chave pública RSA {N,e) tal que ed = 1 (mod <p(N)) consegue-se determinar d em

23

Page 33: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

24

tempo 0(logN).

CAPÍTULO 3. DESCRIÇÃO DE ATAQUES AO RSA

Prova: A prova baseia-se na teoria de aproximação por fracções contínuas.

Seja (N, e) uma chave pública RSA tal que ed = 1 (mod <p(N)). Então existe k € N

tal que ed-ktp(N) = 1. Ora, ed-kíp(N) = 1 <& ^ - k = ^ e portanto podemos

escrever

<p(N) d dip(N) ' (3.1)

Em princípio <p(N) é um número "grande" o que torna |j numa boa aproximação de

Não conhecemos (p(N), mas

¥>(W) = (p - l )( ï - 1) = pg - p - q + 1 = N - (p + q - 1)

e podemos usar N para conseguir uma aproximação de <p(N). Como por hipótese

q < p <2q, tem-se

q <pq e p < 2pq, portanto q < \/N e p < \/2N.

Logo

p + q-l<p + q< \Í2\ÍN + VN = (y/2 + 1)\//V < 3\/jV.

Tem-se assim uma aproximação de <p(N) por TV

|JV — v?(iV)| = \p + q-l\ <3VÍV.

Como vimos —fa é uma boa aproximação de | , mas —A~- é desconhecido. A ideia

apresentada em (3.1), para obter k e d é, em vez de usar a aproximação de jj por - ^

aproximar | por ^ , pois ^ é conhecido e próximo de -T^T, e depois usar o facto de

as fracções continuas serem um bom meio para obter boas aproximações. Tem-se

e k N~d

ed-kN Nd

ed - kip(N) -kN + k^p(N) Nd

1 - k(N - <p(N)) Nd

k(N - tp(N)) - 1 k(N - <p(N))

<

_Nd 2,ky/N 3k

Nd

Nd VNd'

Page 34: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

3.1. EXPOENTE PRIVADO PEQUENO 25

Observe­se que k<p(N) = ed­l<ed,e< <p{N) por construção da chave pública RSA,

e por hipótese d < |iVï portanto

ktp(N) <ed< ip(N)d o que implica k < d < ­N*

obtendo­se assim

e N

<

<

<

m

3fc ^Nd 3 • ÎNÏ _ d ­y/N d­N*

1 _ 1 1 _3_ d­iV4 ~ 3 ' d iV4 J_ J_ 3d2 < 2d2 ■

Como ed ­ kip(N) = 1, f é uma fracção racional irredutível e, além disso, satisfaz

a desigualdade | ^ ­ | | < ^p. Portanto, por um resultado clássico da teoria de

aproximação por facções contínuas1 \ é uma convergente de jf.

Vamos agora descrever como se determinam as convergentes de ~. Aplicando o

algoritmo de Euclides a e e N, existem inteiros $ > 0 e 0 < n < ri+1 com i > 0

e 0 < r0 < e, obtêm­se as seguintes igualdades

e = Nq0 + r0

N = r0Qi + ri

r0 = r"i<?2 + r2

n = í"2<?3 + r3

(3.2)

portanto

'Teorema [Khi97, p. 30] Toda a fracção racional irredutível | q ue satisfaz a desigualdade

a; ­ 2 < Y? é uma convergente de x.

Page 35: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

26 CAPÍTULO 3. DESCRIÇÃO DE ATAQUES AO RSA

_e_ __ Nqo+r0 N roqi+ri

eqi +r _ 1

_ 1

­, porque e < (p(N) < N logo q0 = 0 e r0 = e

91 + r i«2+ r 2 J

o que dá um desenvolvimento em fracção contínua simples (finita)

— 1 92 +

53 + 7 •+9n

Se representarmos o desenvolvimento em fracção contínua de ■­ por (qo,qi,—,qn),

então 2 — (?0i 9i, •••, 9m), para algum m G N em virtude de | ser uma convergente de _e_ AT

Para completar a prova falta ainda ver que por este processo se obtém d de forma

eficiente em tempo O(logiV). Como vimos as convergentes de ~ determinam­se

aplicando o algoritmo de Euclides. Pela proposição 1.3.1 sabemos que o algoritmo

de Euclides tem tempo estimado O(logiV). Como g é uma dessas convergentes e é

uma fracção irredutível, fica determinado d em tempo dominado por 0(log N), o que

conclui a prova do teorema. D

3.2 Expoente Público Pequeno

Tal como para acelerar o processo de desencriptação se pode cair na tentação de

escolher um expoente privado "pequeno", no processo de encriptação podemos querer

escolher um expoente público pequeno na tentativa de tornar a encriptação mais

rápida. O menor valor possível para o expoente público e é 3, mas com vista a

prevenir eventuais ataques, como os que descrevemos nesta secção, o valor sugerido é

216 + 1. Este número tem a particularidade de ser uma potência de dois acrescida de

Page 36: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

3.2. EXPOENTE PÚBLICO PEQUENO 27

uma unidade, o que permite fazer a exponenciação modular Me mod N, onde M é a

mensagem a encriptar e N é o módulo RSA, de uma forma um pouco mais rápida,

como já foi referido no capítulo 2.

Contrariamente ao que acontece nos ataques que têm por objectivo obter o expoente

privado e portanto a factorização de iV, os ataques ao expoente público estão longe

de levar à ruptura total do sistema RSA pois não chegam a factorizar o módulo N.

O objectivo destes ataques é normalmente desencriptar uma mensagem sem precisar

de descobrir a chave privada. Alguns dos ataques mais poderosos ao expoente público

usam o Teorema de Coppersmith, que iremos enunciar e provar antes de dar exemplo

desses ataques.

3.2.1 Teorema de Coppersmith

Seja f(x) um polinómio de grau k numa variável,

f(x) = xk + ak-ixk~l + h a-ix + a0.

Vamos assumir que f(x) é um polinómio mónico irredutível e N um número composto

difícil de factorizar. O teorema de Coppersmith fornece um método eficiente de, em

certas condições, determinar todas as raízes pequenas de / mod N. No método só

é relevante o facto de f(x) ser mónico e as restantes propriedades de N e f irão ser

importantes quando estivermos a aplicar o teorema no ambiente exigido pelo sistema

criptográfico RSA.

Teorema 3.2.1 (Coppersmith) . Sejam N um inteiro do qual não se conhece a facto­

rização e f(x) G Z[x] um polinómio mónico de grau k. Então, consegue-se encontrar

todos os inteiros \x0\ < ^Nl/k tais que f(x0) = 0 (mod N), em tempo polinomial

sobre logN e k.

Coppersmith, em [Cop97], descreve e prova este método eficiente de determinar to­

das as raízes "pequenas" inteiras módulo N, do polinómio f(x). Ainda em 1997,

Page 37: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

28 CAPITULO 3. DESCRIÇÃO DE ATAQUES AO RSA

Howgrave-Graham apresenta um método mais simples, para determinar essas mesmas

raízes. No ano seguinte, em 1998, na sua tese de doutoramento [HG98] mostra que

os dois métodos são equivalentes, depois de efectuados alguns ajustes ao método

apresentado por Coppersmith.

Para provar o teorema é necessário introduzir alguns conceitos e resultados prelim­

inares.

Definição 3.2.2. Seja n um inteiro positivo. Um subconjunto L do espaço vecto­

rial Rra diz-se um reticulado se existe um conjunto de vectores de R" linearmente

independentes {òi, ò2,..., bn} tais que

n ( n

L = y j Zòj = < >J Cjòj : Q 6 Z e 1 < i < n i= l l. t=l

Se assim acontecer, dizemos que {bi,b2, ...,ò„} e uma base para L e que o reticulado

tem dimensão n.

Um reticulado pode ser visto como o conjunto das combinações lineares inteiras dos

vectores linha {bi,b2, -..,bn} de uma matriz M, que formam uma base para o reti­

culado. Assim, podemos definir o determinante do reticulado como sendo det(L) =

| det(&i, • • • ,òn)| = |det(M)|. Em particular, det(M) ^ 0. Note-se que este deter­

minante não depende da base escolhida porque se tivermos duas bases para L, as

respectivas matrizes de mudança de base têm entradas no conjunto Z dos números

inteiros e são inversas uma da outra. Por isso os seus determinantes são números

inteiros cujo produto é um, donde se conclui que os determinates são ±1 e assim o seu

módulo é 1.

Utilizando o processo de ortogonalização de Gram-Schmidt à base {6i, b2,..., ò„}, obtém-

-se uma base ortogonal {6J, í>5> •••> K}- Os vectores b* com 1 < i < n e os números

reais Uy, 1 < j < i < n são indutivamente definidos por

i-l

b* = bi-J2lJ-ijb*j,

Page 38: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

3.2. EXPOENTE PÚBLICO PEQUENO 29

_bj*b;

^'b*.b*

onde • denota o produto interno em Rn. Assim, det(L) = |(6;,&5, • • • ,b*n)\ e como os

vectores b* são ortogonais entre si dois a dois, det(L) = n"=i Pi II­

Em [LLL82], Lenstra, Lenstra Jr. e Lovász introduzem o seguinte conceito de base

reduzida.

Definição 3.2.3. Uma base {61,62, ­ A } do reticulado L diz­se reduzida se

'M < o' Paral <J<i^n

e \\b* + Vü­lbt1\\

2 > l\\bU\\2, para 1< i < n,

onde II • II denota a norma euclideana.

A seguinte proposição estabelece algumas propriedades das bases reduzidas.

Proposição 3.2.4. Seja {61,62,­­' ,6n} uma base reduzida para o reticulado L em

R", e seja {b\, 6£, ■ • ■ , 6*} a base obtida quando aplicado o processo de ortogonalização

de Gram­Schmidt a essa base. Tem­se:

(i) INI2 < 2Í­1||6*||2, para l<j<i<n;

(ii) det(L) < nr=i Pill < 2n(n­1)/4det(L);

(in) ||6i|| <2("­1)/4det(L)1/".

Prova: Da definição de base reduzida temos que

lW>(f-^i)ll^ill^5ll*t-illa.

para 1 < i < n. Portanto, por indução resulta que

||6*||2 < 2 '̂Hò*!!2, para 1 < j < i < n.

Page 39: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

30 CAPÍTULO 3. DESCRIÇÃO DE ATAQUES AO RSA

Como bi = b* + J2lf=\ fkjVj, b* e b* são ortogonais, i / j e \iiid\ < 1/2, resulta que

i~\

< IWII+E j2^||ôí||2

3=1

= ( I + ^ - ^ H Ô ; *| |2 - í.) J \\u

< 2i-1||ò*||2.

Assim, \\bjW2 < 2^1||ò*||2 < 2i-1\\b*\\2 para 1 < j < i < n o que prova (»).

Sabemos que det(L) = ü L i ll^ll e Ifôll < llòill < 2(i_1)/2||ò*|| donde se conclui (ti).

Para provar (m) basta fazer j = 1 em (i) e multiplicar as desigualdades obtidas para

i = 1, • • • ,n. D

No mesmo artigo [LLL82] é apresentado um algoritmo que determina uma base re­

duzida {bi,b2,-..,bn} para um reticulado L em tempo2 0(n4logi?), onde R é um

número real maior que 2 tal que |òj|2 < R para 1 < i < n. Como "output" esse

algoritmo fornece uma matriz B, cujas linhas são os vectores da base reduzida, que se

obtém da matriz M, operando sobre as suas linhas.

Estamos agora em condições de provar o teorema de Coppersmith seguindo o método

apresentado por Howgrave-Graham.

Prova: Seja f(x) G l\x\ um polinómio mónico de grau k. Seja X um número natural

tal que \x\ < X, a determinar convenientemente adiante. Pretende-se determinar

todas as raízes inteiras pequenas, XQ, de f(x) = 0 (mod N).

Para algum h > 2 defina-se a matriz triangular inferior M = (rriij) com hk linhas e

hk colunas, onde rriij = aidX^~x para i — 1,2, • • • , hk e j ~ 1, • • • , i, e os aid são os

2 Se usarmos os algoritmos leccionados na escola primária para as operações elementares o tempo

estimado é 0(n6(\ogR)3), tal como foi descrito no capítulo 1, conseguindo-se um tempo estimado

por 0(n4 log R) quando são utilizadas técnicas mais eficientes para multiplicar.

Page 40: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

3.2. EXPOENTE PÚBLICO PEQUENO 31

coeficientes de xj l na seguinte expressão:

?„,«(*) = N(h-l~v)xu (f(x))v = OÍ,I + ai)2x + • • • + a ^ - 1 (3.3)

com v = [(i - l)/k\ e u = (i - 1) - kv, ou seja, i - 1 = kv + u sendo v o quociente

da divisão de i - 1 por k e u o resto da mesma divisão. Note-se que qUiV(x0) =

0 (mod iV'l~1) para todo o u,v > 0, pois

/(xo) = 0 (mod N) «• (/(xo))" = 0 (mod iVü)

& xu0(f(x0))v = 0(modNv)

& Nh-1~vxu(f(x0)Y = 0 (mod N'1'1).

Como M é uma matriz triangular, o seu determinante é o produto dos elementos da

diagonal, que são os coeficientes dos termos de maior grau em cada um dos polinómios

Qu,v Logo

hk

det(M) = YlN^-vXi-1

j=i

prhk{h-l)/2yhk(hk-l)/2

porque hk

E 3=1

uma vez que

hk

= E j=fc+l

= <

/ l f c - 1

E = fc-l + A;-2 + --- + fc-(/i-l)

1, k<j<2k

2, 2k<j< 3k

h-1, (h- l)k <j< hk.

Seja B a matriz cujas linhas são a base reduzida que se obtém aplicando o algoritmo

de redução LLL às linhas da matriz M, e denotemos o primeiro vector linha de B por

b\. Pela propriedade (iii) da Proposição 3.2.4 resulta que

llòiH < 2{hk~l)/iX{hk'v>/2N{h~1)l2. (3.4)

Page 41: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

32 CAPITULO 3. DESCRIÇÃO DE ATAQUES AO RSA

Observemos que ||6i|| > ­4 ­ YJjLi \Ki\ P o i s P e l a Desigualdade de Chauchy3

hk hk hk hk

£iM­i < £ I ^ I 2 £ I = £ M M ^ ) = />HN

Se, além disso, considerarmos c tal que 6x = cM obtemos hk

1161,1 2 ^ S I V 1 hk hk fifc

£ CittlM + £ Cj™i,2 + ■•• + £ Cimiihk i = l j = l i = i hk / hk \ / ftfc

22 Ci(Xi

<i + £ Cjai>2 X + ••• + £<

i=l \ i = l \ < = i

1

> .— \r(x)\ para todo o \x\ < X, (3.5)

onde

hk­l hk I hk \ / hfc

r(X) = £ CíQí>X + £ Q a í ' 1 ) X H h £ ciai,hk | ­

hk hk hk

= Ci 22 ai,ix3'1 + c2 £ «2,i^_ 1 + • • • + Qifc £ afcfcjar 3=1 i= l j= l

= CigMi1,(x) + c2qu<v(x) + ■■■ + chkqu<v(x).

i - i

(3.6)

Assim, ||òi || pode ser visto como um "limite superior" para o polinómio r(x) no domínio

|x| < X. Observemos que se f(x0) = 0 (mod N) então r(xQ) = 0 (mod N^1) pois

9u,­u(xo) = 0 (mod Nh_1), para todo o u, v.

Juntando as relações 3.4 e 3.5 obtidas para b\ conclui­se que podemos construir um

polinómio r(x) que satisfaz r(x0) — 0 (mod iV'1""1) sempre que x0 é tal que /(x0) =

0 (mod N) e

\r(x)\ < (^­V^Jhk) X{hk­^l2N{h­l)l2, para todo o |x| < X.

Depois de construído o polinómio r(x), descrito em (3.6), escolhe­se

X < (2­l>\hk)­l«hk­V) iv(^­D/("­i) (3.7)

3Desigualdade de Cauchy: (Yl2=i akbk) < ]CL=i al Sfc=i ^l c o m ak e 6*: sucessões de números

reais quaisquer.

Page 42: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

3.2. EXPOENTE PÚBLICO PEQUENO 33

para se ter

\r(x)\ < A^ ­ 1 para todo |a;| < X,

o que implica que se r{x0) = 0 (mod Nh~l) então r(x0) = 0 sobre os inteiros, para

cada x0 tal que \x0\ < X. Como facilmente se determinam as raízes inteiras de

um polinómio de coeficientes inteiros4, obtêm­se assim todos os \x0\ < X tais que

T­(XO) = 0. Resta agora verificar se de facto satisfazem f(x0) = 0 (mod N).

Note­se ainda que h foi tomado como um inteiro qualquer maior que 1 e quando h ­»

oo temos que o majorantes de X em (3.7) tende para 2~l/2N1/k, portanto podemos

escolher qualquer X tal que X < ­^N1/k.

O tempo estimado para determinar todas as raízes "pequenas" de f(x) = 0 (mod N)

é dominado pela implementação do algoritmo LLL que determina a base reduzida

sendo, segundo Howgrave­Graham em [HG98, p. 82], 0(h9k6 log3 N). □

Para ilustrar como é aplicado o método vamos dar o exemplo apresentado por Howgrave­

Graham em [HG98, p. 77]

Exemplo 3.2.5. Seja f(x) = x2 + Ux + 19. Pretende­se determinar todas as raízes

inteiras de f(x) = 0 (mod 35) considerando h = 3 (k = 2, pois é o grau do polinómio

f(x) e X = 2 de forma a verificar a condição 3.7). O método foi provado para o

domínio |x0| < ­jnNl/k, mas existem casos, como o exemplo que se segue, em que o

método descrito ainda encontra raízes fora do intervalo ~­^N1/k, ­^N1,k .

4Por um resultado elementar: Seja f(x) = anxn H 1­ a0 G Z[x] e seja ^ uma raiz racional de

f{x), com (r,s) = 1. Então r\a0 e s\an.

Portanto basta verificar quais os números racionais *■ tais que r\a0 e s\an são de facto raízes do

polinómio.

Page 43: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

34 CAPÍTULO 3. DESCRIÇÃO DE ATAQUES AO RSA

Começamos por construir a matriz quadrada M de ordem 6:

/ 1225

0 1225 x 2

665 490 x 2 35 x 22

0 665 x 2 490 x 22 35 x 23

361 532 x 2 234 x 22 28 x 23 24

0 361 x 2 532 x 22 234 x 23 28 x 24 25

Através da aplicação do algoritmo LLL obtém­se a matriz reduzida

M =

\

í 3 8 x 2 ­24 x 22 ­ 8 x 23 ­ 1 x 24 2 x 25

49 5 0 x 2 0 20 x 23 0 2 x 2 5

B = 115 ­ 8 3 x 2 4 x 22 13 x 23 6 x 24

2 x 2 5

61 1 6 x 2 37 x 22 ­16 x 23 3 x 24 4 x 25

21 ­ 3 7 x 2 ­14 x 22 2 x 23 14 x 24 ­ 4 x 2 5

^ ­201 4 x 2 33 x 22 ­ 4 x 23 ­ 3 x 24 1 x 2 5

onde B = HM e f 70 46 ­98 32 ­ 5 7 2 ^

73 48 ­104 32 ­56 2

H = 55 36 ­74 27 ­50 2

125 82 ­171 60 ­109 4

­175 ­115 254 ­74 126 ­ 4

^ 41 27 ­59 18 ­ 3 1 1 y

0 polinómio pi "etendido pode obter­se:

considerando o vector òi (Ia linha da matriz reduzida B) temos os coeficientes do

polinómio r(x) desde que cada uma das entradas seja dividida respectivemente

por 1,2, ■ • • , 25; assim r(x) = 2x5 ­ x4 ­ 8x3 ­ 24x2 + 8x + 3,

usando as entradas de hi = (ai), a primeira linha de H, para formar a soma

r(x) = axN2 + a2N

2x + a3Nf(x) + a4Nxf(x) + aòf(x) + a6xf(x),

que é obviamente igual ao polinómio obtido no ponto anterior.

Page 44: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

3.2. EXPOENTE PÚBLICO PEQUENO 35

3.2.2 Ataque de Hastad

O ataque que a seguir se descreve, implementado por Hastad, é um primeiro exemplo

de aplicação do teorema de Coppersmith em ataques ao sistema criptográfico RSA.

Comecemos por dar um exemplo.

Exemplo 3.2.6. Suponhamos que um emissor quer enviar uma mensagem encriptada

M para os receptores RuR2,...,Rk. Cada um dos receptores tem a sua chave pública

{Ni,ei). Vamos assumir que M é menor que qualquer dos Nt. Naturalmente o

emissor encripta a mensagem M com as respectivas chaves públicas e envia o i-ésimo

criptograma ao receptor Ri. Um intruso pode interceptar a ligação sem que o emissor

se aperceba e coleccionar os k criptogramas.

Para simplificar, suponhamos que todos os expoentes de encriptação e, são iguais

a 3. Vamos mostrar que se k > 3, o intruso consegue recuperar M, a partir dos

criptogramas Ci, C2, C3,..., onde

d = M3 (mod Ni)

C2 = M3 (mod N2)

C-Ò = M3 (modN3).

Podemos assumir que (NÍ,NJ) = 1 para todo o i / j , pois caso contrário pode-se

factorizar algum dos iVf. Assim, aplicando o Teorema Chinês dos Restos a Ci, C2 e C3

obtém-se O G 1>NIN2N3 satisfazendo

C' = M3 (mod iViiVyVa).

Como M < NiyVi temos M3 < NiN2N3. Então C = M3 e portanto M = \fC'.

Mais geralmente, se os expoentes de encriptação forem todos iguais a e, pode-se

recuperar M logo que se tenha k > e onde k é o número de criptogramas interceptados.

Portanto, este ataque só será bem sucedido se o expoente público e for relativamente

pequeno.

Page 45: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

36 CAPÍTULO 3. DESCRIÇÃO DE ATAQUES AO RSA

Numa tentativa de prevenir este ataque podemos, em vez de encriptar a mensagem

M, camuflá-la (padding) primeiro com um polinómio e usar expoentes de encriptação

diferentes. Uma camuflagem poderá ser, por exemplo, se a mensagem M tem m-bits,

aplicar a função linear fi(x) = i2m + M à mensagem M, i.é, justapor os "bits" de i à

esquerda dos de M, e encriptar Mt = / ,(M).

Assim, o emissor fixaria um polinómio público ft e ZNi[x] para cada receptor Rly ...,Rk

e transmitiria a encriptação de fi(M) ao receptor Rj. O que se interceptaria seria então

os criptogramas

d = fi(M)ei mod Ni, para f = 1,2,..., k.

O próximo teorema mostra que mesmo usando expoentes de encriptação diferentes

e este tipo de camuflagem, por aplicação de funções polinomiais às mensagens, não

se previne este tipo de ataque quando o número de criptogramas interceptados é

suficientemente grande.

Teorema 3.2.7 (Hastad) . Sejam N%,N2,..., Nk inteiros dois a dois primos entre si,

N = Ni...Nk e Nmin = min^iVj). Sejam & = /'* - d G Zjvjs], k polinómios de

grau no máximo n, onde n = m.axi-ii„nk{eideg(fi)} e /< € luN\x\ é um polinómio

público que serve para camuflar (pad) a mensagem. Suponhamos que existe um único

M < Nmin que satisfaz Çi(M) = 0 (mod NJ, Vi = l,...,k. Se k > n, podemos

recuperar M em tempo 0(n4log3 N).

Prova: Comecemos por observar que M é a mensagem a encriptar e portanto deverá

ter sido formatada de forma a que M < N, Vi logo M < min;=li...fc(./Vj). Notemos

ainda que todos os polinómios ft devem ter o coeficiente guia invertível, pois caso

contrário, i.é, se para algum i o coeficiente guia não for invertível em Z*N, ficaria

exposta a factorização de iVj. Assim todos os polinómios gt = /?* — d G Z^[x] têm

também o coeficiente guia invertível.

Multiplicando cada <& pela potência de x apropriada, podemos considerar que todos

Page 46: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

3.2. EXPOENTE PÚBLICO PEQUENO 37

os polinómios têm grau n. Consideremos então n

gi(x) = ^ P a ^ (mod Ni), onde ain é invertível em ZNi.

Aplicando o Teorema Chinês dos Restos calculamos os números inteiros ut (i =

l,­­­ ,k) tais que u< < N com i = l,...,k e (a demonstração do Teorema Chinês

dos Restos incluída no apêndice B fornece um método de calcular tais números):

{ 1 (mod Ni) se i = j

0 (mod Nj) se i ^ j .

Seja G(x) € %j?[x] o polinómio definido por k

G{x) = y^ujgj{x).

Tem­se então, k

G(M) s J2ujgj(M) = gi{M) = 0 (mod Ni),Vi i=i

o que implica que G(M) = 0 (mod N), porque (Ni, Nj) = 1, Vi ^ j .

O coeficiente guia de G(x) é ain (mod Ni), para todo i porque £ i = 1 UjOjn = ain (mod JV»).

Como (ain, iVj) = 1, Vz = 1, • • • , k, resulta que o coeficiente guia de G(x) é invertível

módulo JV. Multiplicando G(x) pelo inverso do coeficiente guia e reduzindo mod N

obtemos um polinómio mónico G(x) de grau n tal que G(M) = 0 (mod N) e além

disso M < Nm­m <~N < N . Estamos nas condições de aplicar o Teorema de

Coppersmith e recuperar M, uma raiz inteira do polinómio mónico G(M) (mod N).

O tempo estimado para recuperar a mensagem M é dominado pelo tempo de aplicar

o Teorema de Coppersmith que é 0(n4 log3 N). □

3.2.3 Ataque a mensagens camufladas que usam o mesmo

módulo

Suponhamos que um emissor envia uma mensagem M camuflada (paded) a um rece­

ptor, onde a camuflagem é feita aleatoriamente acrescentando uns "bits" à mensagem

Page 47: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

38 CAPITULO 3. DESCRIÇÃO DE ATAQUES AO RSA

original, antes de ser encriptada. Suponhamos ainda que um intruso intercepta o

criptograma enviado e impede que este chegue ao receptor. O emissor vendo que

o receptor não responde à mensagem enviada faz uma nova tentativa. Camufla

novamente a mensagem M, encripta com a mesma chave pública e envia o respectivo

criptograma, que é novamente interceptado pelo intruso. O intruso tem então em seu

poder dois criptogramas correspondentes a duas codificações da mesma mensagem M

usando duas camuflagens aleatórias diferentes.

0 que o seguinte teorema mostra é que embora o intruso não consiga descobrir a

camuflagem, que neste caso supomos ser uma função linear fi(x) = 2mx + rt onde

m e cada r» estão nas condições descritas no teorema seguinte, ele pode recuperar a

mensagem inicial. Como se verá no fim desta secção este ataque só é possível se o

expoente público e for pequeno, pelo que a prova completa só será feita para o caso

em que e = 3.

Teorema 3.2.8. Seja (N, e) a chave pública RSA, onde N tem n-bits de comprimento.

Sejam m = f22^] e M Ç. Z*N uma mensagem com no máximo (n-m)-bits. Definam-se

Ml = TM + rieM2 = 2mM + r2

onde ri e r2 são inteiros distintos e 0 < ri,r2 < 2m. Se conhecermos (N,e) e as

codificações C\ e C2 de M\ e M2 (não conhecendo r\ e r2) podemos recuperar M em

tempo polinomial.

Prova: Sejam g\ (x,y) = Xe - C\ e g2(x, y) = (x + y)e-C2 com g\, g2 G ZN. O número

Mi é uma raiz comum aos polinómios gi(x, r2 — ri) e g2(x,r2 — ri), pois

gi(Mur2 - n) = Ml - d = 0 mod N

e

g2(Mi,r2 - ri) = (Mi + r2 - n)e -C2 = (2mM + n + r2 - nf - C2

= (2mM + r2)e -C2 - M2e - C2 = 0 mod N

Page 48: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

3.2. EXPOENTE PÚBLICO PEQUENO 39

Por outras palavras, A = r2 ­ n é uma raiz da resultante5 resx(gi(x,y),g2(x,y)) G Z.

Como <7i e g2 são polinómios de grau e sobre a variável 2, então

% ) = ­resx(g1(x,y),g2(x,y)) = det(R)

onde R é a matriz quadrada de ordem 2e

fí D

T

onde

• D = —Ci/e é uma matriz diagonal de ordem e, cujas entradas não depende de

y;

• 7e é a matriz identidade de ordem e;

• Té uma matriz triangular superior de ordem e cujos elementos da diagonal são

Ve ­ C2;

• Pé uma matriz triangular inferior de ordem e cujos elementos da diagonal são

iguais a 1. 5Deflnição [Spi94, pp. 150­153]: Sejam f(x) = ao + aixH \­anx

n e g(x) = Ò0 + &I:EH Vbmxm

polinómios sobre um anel comutativo A tais que a„ / 0 e t m / 0. A resultante de / e g, que é um

elemento do anel A e se denota por res(f,g), é o determinante da matriz quadrada de ordem (m + n)

I ao o,i a,2

0 ao ai a2 m <

n <

o„­ i an 0

an_i an

0 \

0

0 CLQ a i ai ■ ■ ■

6o h bm 0 0

0 6o h bm 0

O n - l On

0

0

V 0 0 &o bi 6m_i òm /

Uma propriedade fundamental da resultante é: / , g têm raiz comum o res(f,g) = 0.

Page 49: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

40 CAPITULO 3. DESCRIÇÃO DE ATAQUES AO RSA

Ora, det(R) = \DP-TIe\, pelo teorema 3 de [SilOO], e só a matriz M contribui para

o determinante com termos que dependem de y, sendo fácil ver que a matriz DP - T

tem como entradas polinómios em y, de grau e na diagonal principal e de grau menor

fora da diagonal. Portanto h(y) tem grau e2.

Exemplo 3.2.9. Vejamos o que obtemos em h(y) = -resx(gx(x,y),g2{x)y)) quando

e = 3. Temos

gi(x,y) = xs -Ci

g2(x, y)=x3 + 3x2y + 3xy2 + y3 - C2

logo

- C i 0 0 1 0 0

0 -d 0 0 1 0

0 o - d 0 0 1 h{y) - -

y3-C2 3y2 3y 1 0 0

0 y3-C2 3y2 3y 1 0

0 0 y3-C2 3y2 3y 1

= y9 + 3y 6 d - 3y6C2 + 21y3C*2C1 + 3y3C22 + 3y3C2 + C3 - 3C\C2 + 3CYC2

2 - C\.

Logo temos um polinómio mónico na variável y de grau 32.

Estamos a supor que 0 < r i , r 2 < 2m logo A = r2 — rx < 2m. Além disso, N tem

n-bits, resultando que

|A| <2m <N%.

Assim, h(A) = 0 (mod N) onde A é uma raiz pequena, A < Nl/e , do polinómio

mónico de grau e2, h(y). Estamos em condições de aplicar o teorema de Coppersmith

e assim determinar A de forma eficiente.

Sabendo A podemos reescrever g2(x) — (x + A)e — C2 da seguinte forma:

g2(x) = f(xY-C2

Page 50: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

3.2. EXPOENTE PÚBLICO PEQUENO 41

fix) — x + A e portanto M2 = / (Mi) . Para concluir a demonstração basta aplicar o

Lema de Franklin-Reiter que se apresenta de seguida.

Lema 3.2.10 (Franklin-Reiter). Seja (N, e) uma chave pública RS A. Sejam M1,M2e

Z*N distintos satisfazendo M2 = /(Mi) mod N para algum polinómio linear f(x) =

ax + be ZN[x) com ò ^ 0. Então dado (N, e, Ci,C2, f), pode-se recuperar Mx e M2

em tempo polinomial.

Prova: Comecemos por observar que Mi é raiz do polinómio

g2(x) = / (x) e - C2 e ZN[x],

pois C2 = Mf mod N, e também é raiz do polinómio

gi(x) = xe - Ci e ZN[x].

Portanto x - Mx é factor comum aos dois polinómios. Aplicando o algoritmo de

Euclides determina-se o máximo divisor comum de gi e g2. Se o máximo divisor comum

for linear então está determinado o factor e portanto também Mxe M2 = f(Mi).

No caso e = 3 temos gx{x) = (x - Mi)p{x) onde p{x) é um polinómio quadrático

irredutível mod N porque x3—Cx tem uma única raiz, pois caso contrário teríamos para

duas mensagens diferentes um mesmo criptograma, o que é garantido não acontecer

dado (e,ip(N)) - 1. Como g2 não pode dividir gu o m.d.c(g1,g2) ê linear.

Para e > 3 ou o m.d.c. é linear procedendo-se da forma acima descrita ou o ataque

falha. Q

Este ataque só é de facto uma ameaça para e pequeno pois para valores grandes de e

o cálculo de m.d.c.(gi,g2) e res(gi,g2) é proibitivo.

Page 51: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

CAPÍTULO 3. DESCRIÇÃO DE ATAQUES AO RSA

i

Page 52: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

Capítulo 4

Variantes do RSA

Vamos introduzir três variantes do sistema criptográfico RSA original que têm como

objectivo principal acelerar a implementação do sistema. A primeira variante, de-

nomidada "Batch" RSA, propõe-se fazer várias desencriptações pelo custo de uma,

tornando assim o processo de desencriptação mais rápido. A segunda variante, RSA

com múltiplos factores, é a única variante que propõe uma mudança estrutural: mudar

a estrutura do módulo para o produto de vários factores primos em vez de dois ou

manter os dois primos mas sendo um deles elevado a uma potência maior que 1.

Esta variante que altera a estrutura do módulo tem por objectivo não só acelerar

os processos de encriptação e desencriptação mas também proteger o sistema de

a,lguns ataques. A terceira e última variante pretende tornar o processo mais rápido,

reequilibrando o esforço efectuado pela encriptação e pela desencriptação, e proteger

o sistema de ataques a expoentes públicos pequenos.

4.1 "Batch" RSA

O número de utilizadores do "World Web Wide" (WWW) e diversidade de páginas

disponíveis na "Web" tem aumentado muito nos últimos anos. Nos dias de hoje é

possível através da Internet comunicar, pesquisar, consultar, comprar, pagar contas,

43

Page 53: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

4 4 CAPÍTULO 4. VARIANTES DO RSA

fazer transferências bancárias ou aplicações financeiras. Algumas páginas "web", como

por exemplo as de comércio electrónico ou de aplicações financeiras, têm de garantir

a privacidade e autenticidade das suas comunicações usando para isso protocolos de

segurança. Infelizmente os servidores que protegem as suas comunicações tornam­

se muitos mais lentos dos que não usam qualquer tipo de segurança, o que obriga a

grandes investimentos em "hardware" de forma a que o tempo de resposta ao utilizador

seja aceitável. O que descrevemos nesta secção é um algoritmo que permite acelerar

o tempo de resposta ao utilizador sem ser necessário qualquer tipo de "hardware"

específico. A ideia base do que iremos descrever é o servidor aguardar até receber b

pedidos de acesso por b clientes diferentes e tratá­los como se fosse apenas um.

Suponhamos que o protocolo de segurança utilizado pelo servidor é o sistema crip­

tográfico RSA. O processo de desencriptação do RSA original usa a exponenciação e

o produto modulares. Para garantir a segurança do sistema o expoente privado deve

ser suficientemente grande, o que torna o processo de desencriptação lento. A variante

"Batch" RSA propõe uma forma de acelerar esse processo, fazendo a desencriptação

de vários criptogramas pelo custo de um.

Exemplo 4.1.1. Suponhamos que Ci é o criptograma que se obtém quando encriptada

a mensagem Mi com a chave pública (N, 3), e C2 o criptograma que se obtém da

encriptação de M2 com a chave pública (N,5). Para desencriptar os criptogramas

é necessário determinar C\'z mod N e C21/5 mod N, onde 1/3 e 1/5 representam,

neste contexto, os inversos de 3 e 5 mod <p(N), respectivamente. Se fizermos A =

{C\ ■ Cl)1/15 (mod N) obtém­se 410

Cl/3 = TS­FTI (mod W, P° i s AW = [(<?? ■ C 23 ) 1 / 1 5 ] 1 0 = Cí / 3 • Cl ■ C\ (mod N)

e

C*21/5 = ­£— (mod N), pois A6 = [(Cl ■ Cl)1/15]6 = C\ ■ C2

1/5 • C2 (mod N). Ci • Ci

Portanto pelo custo de calcular apenas a 15a raiz mod N e mais algumas operações

aritméticas consegue­se desencriptar Ci e C j . Como calcular a 15a raiz leva o mesmo

tempo que uma desencriptação temos então duas desencriptações pelo custo de uma.

Page 54: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

4.1. "BATCH" RSA 45

Fiat, em [Fia89], descreve como funciona este método para um número qualquer de

utilizadores. O processo de desencriptação com "batch" usa árvores binárias em que

cada nó tem sempre dois filhos. Seja N o módulo RSA e ò o tamanho do "batch", ou

se:ja, temos b expoentes de encriptação, eu e2, ... eb, todos primos com ip(N) e primos

entre si dois a dois. Por exemplo, e1, e2, ... eb podem ser os b primeiros números

ímpares que não dividem ip(N).

Pelo que vimos nos capítulos anteriores pode parecer imprudente o facto de se estar a

usar o mesmo módulo e expoentes públicos pequenos. Note-se que quem gera as chaves

é o servidor, portanto tem que ter várias chaves públicas à disposição para que os seus

clientes acedam ao sistema em segurança. Só o servidor conhece as respectivas chaves

privadas, logo a factorização do módulo. Quanto aos expoentes públicos recordemos

que os ataques descritos no capítulo anterior só se aplicam quando estamos a encriptar

várias vezes a mesma mensagem, algo que aqui não acontece pois aos b utilizadores

diferentes correspondem b mensagens diferentes.

Assim, dados os criptogramas G\, C2, ..., Cb o objectivo é gerar as b raízes

C\/ei (modN), C21/e2 (modN), ..., C*6

1/et (mod N)

pelo custo de uma.

O processo divide-se em três passos que passamos a descrever:

I o Passo: Construção do produto (figura 4.1)

Começar por construir uma árvore binária A cujas folhas (os nós sem filhos) são

etiquetadas com os expoentes públicos ei, e2, ... eb e os respectivos criptogramas

Ci, C2, ...,Cb. A árvore deverá ser construída das folhas para a raiz, portanto de

baixo para cima, de forma a que cada nó tenha exactamente dois filhos e tal que

W = X t̂=i U^ogeí seja mínimo, onde U denota a profundidade da folha e*1.

'Em [Knu73, p. 402] Knuth descreve um algoritmo proposto por Huffman para construir uma

árvore nestas condições.

Page 55: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

46 CAPÍTULO 4. VARIANTES DO RSA

Seja E — Yli=i ei­ Usando a árvore A obtém­se o produto

C = Cf/eíC^/e2...C^eb(modN)

trabalhando das folhas para a raiz através do seguinte processo recursivo: a cada nó

interno associar os produtos E = EL ■ ER e C = Cffl • C^L {mod N) onde EL e ER

são o produto dos expoentes públicos associados respectivamente aos nós filhos do

ramo esquerdo e ramo direito e CL e CR são o produto dos criptogramas associados

igualmente aos nós filhos do ramo esquerdo e ramo direito, respectivamente. C é

simplesmente o resultado associado à raiz. O esquema da figura que se segue mostra

como se obtém um nó dos dois nós filhos.

C = CtR ■ CfL {mod N) E = EL­ ER

CL EL

Figura 4.1: Construção do produto

2°Passo: Extracção da raiz

Extrair a E­ésima raiz de C, calculando o inverso de E (mod <p(N)) para obter

Cl/E _ C l / ex . Cl/e2 . . . Cl/eb ^ ^

3° Passo: Decomposição em factores (figura 4.2)

As raízes pretendidas são os factores de C1/,£'. Portanto, o objectivo é, novamente

através de uma árvore binária construída agora da raiz para as folhas (de cima para

CR ER

Page 56: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

4.1. "BATCH" RSA 47

baixo) e usando a árvore construída no Io passo, determinar a decomposição de Cí/E

nos b factores C\,ei, C21/e2, ■ • • , C\l&h'. Começa­se por decompor C1/E no produto dos

dois factores correspondentes aos nós filhos da primeira árvore que estão na mesma

posição. Cada um destes nós filhos será novamente factorizado no produto dos dois

factores que se encontram na posição correspondente na primeira árvore, até se obter

os b números pretendidos. Para isso, seja fc = [§] e começamos por determinar X,

associado à raiz da árvore tal que:

X = 0 (mod ei)

X = 0 (mod e2)

X = 0 (mod ek)

X = 1 (mod efc+i)

X = 1 (mod ek+2)

X = 1 (moei et).

Através do Teorema Chinês dos Restos determinamos a solução única X mod ]\i=l e*

deste sistema. Usando a notação do Io passo, o valor de X associado a cada nó filho

é a solução única do seguinte sistema:

X = 0 (mod EL)

X = 1 (mod ER).

Existem então XL e XR tais que

X = ELXL,

X — 1 = ERXR

Page 57: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

48 CAPITULO 4. VARIANTES DO RSA

Calcula-se de seguida a X-ésima potência módulo N de M = CllE (mod N) obtendo:

- ín^/ei) ( E K M ) n^/ei

\i=l / \i=k+l ) i=k+l

= C M * , n c'M(^div). i=fc+l

M e X são os valores associados à raiz da nova árvore. Para obter o produto MR =

Y[i-k+i Ci , que é a factorização de M associada ao filho direito, basta calcular C*L,

CRR e usar a igualdade anterior, ou seja, MR = X

A* XL (mod N). CL e CR são

os valores associados aos filhos esquerdo e direito correspondentes ao nó da árvore

construída no Io passo que se encontra na mesma posição. Para determinar o outro

produto, a factorização associada ao filho do lado esquerdo, basta dividir C^E por

rL=fc+i Q ) i-é; ML = -M-. O processo repete-se como esquematizado na figura 4.2

sobre os valores obtidos e é fácil ver que se obtém a factorização pretendida.

ML=$-(modN) \ J \^J MR= "* (modN)

Figura 4.2: Decomposição do produto

Page 58: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

4.1. "BATCH" RSA 49

Exemplo 4.1.2. Vejamos como são construídas as árvores num exemplo que pretende

desencriptar 7 mensagens pelo custo de uma, com expoentes públicos pequenos.

C = Cf'7 • Cf'7 ■ C^ 5 (mod N) E = 3 ■ 5 ■ 7 = 105

C = C^3 ■ C2B/5 ■ C3

B/7 ■ C°/u ■ Cf / 1 3 (mod JV)

E = 3­5­7­ 11­13 = 15015

^C^­Cl1 (modN) E= 11 ­13 = 143

C = C\­C\ (mod JV

E = 3­5 = 15

M equivC­t ■ C 2 C­l / 7 .C , ; / u ­C 51 / 1 3 (modJV)

X = 8295

M n s C 4l / U ­ C ^ / 1 3 ( m o < i J V )

T ^ X J Î = 58

ML = Cí

= C ] / n (mod AT)Mfl s C, = ^ 5 / 1 3 (mod N) V — 58 Xfi =

M L = Cx1/3 (mod N) M f l = C2

1/5 (mod JV) * L = — i s Xr,

Figura 4.3: Exemplo de árvores construidas quando utilizada a variante "batch"RSA.

Page 59: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

50 CAPÍTULO 4. VARIANTES DO RSA

Esta técnica de desencriptar b critpogramas de uma só "fornada" (batching) só vale

a pena quando os expoentes públicos são pequenos, pois caso contrário as operações

aritméticas adicionais tornam­se demasiado dispendiosas. Além disso, só podemos

usar a desencriptação com "batch" se estivermos a usar o mesmo módulo e expoentes

públicos primos entre si. Se as chaves públicas forem iguais o processo não funciona

como é mostrado no apêndice A de [SB01] usando resultados de Teoria de Galois.

Esta variante do sistema criptográfico RSA aplica­se, por exemplo, ao protocolo de

segurança "Secure Socket Layer" (SSL). Para ter uma ideia de quanto é mais rápido

o processo de desencriptação com "batch", apresentamos na seguinte tabela alguns

resultados obtidos experimentalmente (com um Intel Pentium III, 700MHz e 256 MB

RAM) por Boneh e Shacham em [SB01].

tamanho do "batch" tamanho do módulo N tamanho do "batch"

512 1024 2048

sem "batch"

2

4

8

1,53

1,22

0,81

0,70

8,38

5,27

3,18

2,42

52,96

29,43

16,41

10,81

Tabela 4.1: tempo de desencriptação RSA por utilizador, em milisegundos, em função

dos tamanhos do "batch" e da chave.

4.2 RSA com múltiplos factores

Uma outra forma de tornar o processo de desencriptação mais rápido que no RSA

original é alterar a estrutura do módulo N. Iremos considerar duas alterações da

estrutura do módulo: uma em que N é o produto de dois números primos mas onde

um deles é elevado a uma potência, i.é, N = pr ■ q e por isso será denominado de

RSA multi­potência, e outro em que N é o produto de pelo menos três primos, i.é,

Page 60: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

4.2. RSA COM MÚLTIPLOS FACTORES 51

N = pi­p2­ •■• ■ Pr, r > 3, a que chamaremos RSA multi­primos.

4.2.1 RSA multi­potência: pr ■ q

Comecemos por descrever os processos de encriptação e desencriptação para então

ver porque é mais rápida a desencriptação dos criptogramas, relativamente ao RSA

original.

Para que o tamanho de N ­ pr ■ q seja n­bits e sabendo que os primos p e q devem

ser próximos para ter maior segurança, cada um deles deverá ter [^J ­b i t s . Tal como

no RSA original, tem­se um expoente público e primo com tp(N), para gerar a chave

privada determina­se d tal que ed = 1 (mod <p(N)) e, além disso, determinam­se os

menores inteiros positivos dp e dq tais que

dp = d (mod p — l)edq = d (mod q — 1).

A chave pública é então (N, e) e a chave privada (p, q, dp, dq).

O processo de encriptação funciona exactamente como no RSA original, C = Me (mod N),

mas para desencriptar um criptograma C procede­se de forma um pouco diferente

porque a chave privada a usar será da forma (p, q, dp, dq).

Começa­se por calcular Mp = Cdp mod p e Mq = Cd" mod q, de onde se obtém M* =

C mod pe Mq = C mod q. Partindo de Mp mod p e usando um método conhecido que

iremos descrever a seguir, constrói­se Mp = Mp (modp) tal que (Mp)e = C (modpr)

e portanto M' = Cd (mod pr). Usando o Teorema Chinês dos Restos determina­se

M e Z j v tal que M = M' (modpr)

< M = Mq (mod q)

Então M = Cd mod N que é a desencriptação de C.

Falta então descrever o método pelo qual se obtém M'p tal que (Mp)e = C (mod pr)

partindo de Mp (modp).

Page 61: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

52 CAPÍTULO 4. VARIANTES DO RSA

Observemos que Mp (mod pr) pode ser escrito na sua expansão p­ádica

ML = K0 + KlP + K2p2 + ... + Kr­if"1 (mod tf) (4.1)

e apliquemos um método conhecido (ver [Vin77, pp. 76­78]) que nos permite determi­

nar uma solução de xe = C (modpr) conhecendo uma solução de xe = C (modp1"1).

Sabemos que Mp é uma solução de xe = C (mod p) e queremos determinar uma

solução de xe = C (mod p2) da forma Mp + pKx com K\ € Z.

Ora,

(Mp +pK1)e = M;+p­e­ K,M;­X S C (modp2)

que é equivalente a Ml­C —£ + eKxMl~l = 0 (modp).

p p

Como (eMp_1,p) = 1 a congruência tem solução e esta é única. O processo repete­se agora com vista a determinar K2 tal que ((Mp + pK\) + p2K2)

e =

C (modp3). De forma semelhante ao feito anteriormente

(Mp 4­ pK,Y + p2 • eK2(Mp + pKxf­1 = C (mod p3)

O WV+P^Y­C + eK2(Mp+pK1Y­í = 0 (modp),

que como (e(Mp + pKi)e~l,p) = 1 porque (e,p) = (Mp~l,p) = 1 tem solução (única).

Assumindo que já foram determinados os valores Ki,K2, ...,iíri_1 tal que T4,­_I = Mp +

pKx +p2K2 H hpl~1Ki^i é solução de xe = C (modp1), queremos determinar uma

solução áe xe = C (mod pl+1) da forma A^i +plKt. Temos

(Ai..1+piKi)e = C(modpi+1)

<» Í4J_J + pi ■ eKiAlZl = C (mod pi+1)

& ^f^ + eKiAtl = 0 (mod p)

e como (A\Z\,v) = 1 a congruência tem solução.

O processo repete­se até i = r — 1 obtendo­se assim uma solução Mp de xe =

C (modpr).

Takagi, em [Tak98], resume o processo de desencriptação no seguinte algoritmo, onde

M'(modpr) está escrito na forma (4.1):

Page 62: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

4.2. RSA COM MÚLTIPLOS FACTORES 53

Dados de entrada (input): d,p,q,e,r,C

Resultado (output): M

(1) dp := [d]p-i, dq := [d\q-i;

(2) K0 := [Cd»]p, Mq := [C%;

(3) A := K0-

Para i — 1 até r — 1 fazer

# : = [4e-i]P-+i;

Bi := f em Z;

Í4Í :=^ i - i+ .p á Xi emZ;

(4) M; := i4r_i;

( 6 ) M : = [ ç 1 ? M ; + p 1 p r M g U .

Para verificar que de facto este processo de desencriptação é mais rápido observe-

se que no RS A original se fazem duas exponenciações módulo (|)-bits (ver secção

1.4). No RS A multi-potência fazem-se também as duas exponenciações mas módulo

números com ( ^ ) - b i t s , passo (2) do algoritmo de Takagi, e como os outros passos

são mais rápidos2 que a exponenciação, a complexidade deste método é dominada por

essas duas exponenciações. Se usarmos o algoritmo para a exponenciação modular tal

como descrito na secção 1.4 para calcular xd mod p ele levará tempo O (log d log p).

Como d e p são da mesma ordem o tempo será estimado por 0(log3p). Assim o RS A

multi-potência relativamente ao RSA original será mais rápido aproximadamente

2 ( f ) 3 _ ( r + l ) 3

2 f e ) 3 8

Portanto quando r = 2, para o RSA de 1024 bits a rapidez aumentará aproximada­

mente 3,38 vezes. 2Esses passos envolvem basicamente resolver r-1 congruências lineares (algoritmo de Euclides) e

parte-se do princípio que o expoente e deverá ser próximo de uma potência de 2, por exemplo 216 + 1;

os passos (5) e (6) não são mais que uma aplicação do Teorema Chinês dos Restos.

Page 63: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

54 CAPÍTULO 4. VARIANTES DO RSA

Quanto à segurança, esta variante depende tal como no RSA original da dificuldade de

factorização do módulo N = prq. Para manter o RSA com um módulo de 1024 bits, r

deverá ser no máximo 2 ficando pe q com 341 bits cada. Se r = 3 teríamos p eq com

256 bits cada, o que não é seguro pois estariam dentro dos limites de factorização pelo

método das curvas elípticas (Elliptic Curve Method (ECM), actualmente um dos me­

lhores algoritmos de factorização). Boneh, Durfee e Howgrave­Graham em [BDHG99]

afirmam que o RSA multi­potência deve ser tratado com cuidado, principalmente para

valores grandes de r e mostram que s e r » \fiõgp~, N pode ser factorizado usando

um algoritmo de factorização que assimptóticamente é ainda mais rápido que o ECM,

para números deste tipo.

4.2.2 RSA multi­primos: p\ ■ p% ■ ... ■ pr

Tal como na secção anterior, vamos começar por descrever os processos de encriptação

e desencriptação desta variante do RSA.

As chaves públicas e privadas são, tal como no RSA original, (N, e) e (A'', d),

respectivamente, onde N = pip2...pr. Logo (f(N) = YTÍ=I(PÍ ­ 1) e se IV tem n­

bits, cada pi deverá ter [^J­bits. A encriptação funciona exactamente como no

RSA original. A desencriptação faz­se usando o Teorema Chinês dos Restos. Seja

dPi = d (mod pi — 1). Para desencriptar um criptograma C começamos por calcular

Mi = Cdpi (mod pi) para cada i = 1, ..., r. Aplicando o teorema Chinês dos Restos

determina­se o único M tal que M = Cd (mod N).

Também aqui o processo de desencriptação é mais rápido. Os cálculos em que se

usa o Teorema Chinês dos Restos (cuja complexidade é igual à do algoritmo de

Euclides) são insignificantes quando comparados com as r exponenciações. O RSA

original que usa igualmente o Teorema Chinês dos Restos na desencriptação requer

duas exponenciações módulo um número com (|)­bits (ver secção 1.4). No caso do

RSA multi­primos são feitas r exponenciações módulo um número com [^J­bits. Tal

como vimos anteriormente o tempo estimado para cada uma das exponenciações é

Page 64: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

4.3. RSA REEQUILIBRADO 55

cúbico sobre o tamanho do módulo e portanto o aumento de velocidade será

2 (f )3 _ r2

Para um RS A com módulo de 1024 bits e r = 3, esta variante do RS A é aproximada­

mente 2,25 vezes mais rápida que RSA original.

A segurança desta variante do RSA depende tal como no RSA original, da dificuldade

de factorizar N = p\ ­pi ■ •■• ­Pr com r > 2. Os algoritmos de factorização não ganham

nada com esta nova estrutura do N se tivermos o cuidado, tal como no RSA original,

de escolher cada um dos primos p< suficientemente grande. Por exemplo, se queremos

JV com 1024 bits, r deverá ser no máximo 3 pois se r = 4 cada um dos números

primos terá 256 bits, que tal como atrás referido, estão dentro dos limites do método

de factorização por curvas elípticas (ECM). Em contrapartida, como para maior parte

dos ataques que se conhecem ao RSA é crucial que N seja exactamente o produto de

dois primos, ao usarmos mais que dois factores estamos a proteger o sistema desses

mesmos ataques.

Hinek, Low e Teske em [HLT02] apresentam um estudo sobre a efectividade dos ataques

descritos no artigo [Bon99] e aqui apresentados no capítulo 3, quando aplicados a esta

variante e concluem que muitos deles deixam de ser eficazes.

4.3 RSA reequilibrado

No RSA original, a encriptação e a verificação de assinaturas são mais rápidas que a

desencriptação e a geração de assinaturas, respectivamente, onde assinar uma men­

sagem significa encriptá­la com a chave privada do emissor para que o receptor possa

desencriptá­la com a chave pública do emissor, verificando assim a sua origem (ver

secção 2.3). Em algumas aplicações do RSA o desejado é precisamente o inverso. Por

exemplo, um telemóvel que precisa de gerar uma assinatura RSA que vai ser testada

num servidor muito mais rápido, seria preferível que assinar fosse mais rápido do que

verificar.

Page 65: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

56 CAPÍTULO 4. VARIANTES DO RSA

Wiener [Wie90] apresentou uma variante do RSA com o objectivo de reequilibrar

(rebalance) a dificuldade de desencriptar e a facilidade da encriptação passando algum

do trabalho da desencriptação para a encriptação. Note-se que não podemos sim­

plesmente acelerar a desencriptação usando um expoente privado d pequeno pois se

d < |iV1/4 o sistema torna-se inseguro (ataque descrito na secção 3.1). 0 reequilíbrio

consegue-se usando um d grande mas tal que d modp-led mod q — l sejam pequenos.

Vejamos então como são as chaves pública e privada, que deverão ser geradas com

especial cuidado, e como funcionam os processos de encriptação e desencriptação desta

variante, RSA reequilibrado.

Sejam n e k dois inteiros tais que k < | . Geram-se dois primos distintos p e q com

(f)-bits cada e tais que m.d.c.(p - 1, q - 1) — 2 e N = pq. Depois escolhem-se

aleatoriamente dp e dq, com fc-bits cada, tais que (dp,p — 1) = 1 e (dq,q — 1) = 1.

Determina-se d tal que

d = dp (modp — 1)

d = dq (mod q — 1).

Para resolver o sistema seria natural usar o Teorema Chinês dos Restos, o que não é

possível pois p — 1 e q — 1 não são primos entre si. Mas ^ e ^~ são dois números

primos entre si e podemos aplicar o Teorema Chinês dos Restos para determinar d'

tal que

íd' = ^(mod^) í 2d' + l = dp (modp- 1) < ou seja < [ d' = 4 f i (mod a=i) [2d' + l = dq (mod q - 1)

Seja então d = 2d'+l. Assim, d é grande e dv e dq, que são os menores inteiros positivos

tais que dp = d (mod p — 1) e dq = d (mod q — 1), respectivamente, são pequenos,

portanto a chave privada pretendida é (p,q,dp,dq). O expoente público e é calculado

em último lugar: é o inverso módulo p(N) (observe-se que como (dp,p — 1) = 1 e

(dq,q — 1) = 1, (d,p — 1) = 1 e (d, q — 1) = 1). A chave pública é então (e,N) e a

chave privada (p, q, dp, dq).

A encriptação é idêntica à do RSA original sendo a única diferença o tamanho do

expoente e que passa a ser bastante maior. A desencriptação de um criptograma C

Page 66: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

4.3. RSA REEQUILIBRADO 57

é um pouco diferente uma vez que a chave privada é (p,q,dp,dq). Começa-se por

calcular

Mp = Cd" mod p

Mq = Cdq mod q

e depois, usando o Teorema Chinês dos Restos, determina-se a mensagem original M £ ZN tal que

M = Mp mod p

M = Mq mod q

e porque d = dp (mod p — 1) e d = dq (mod q — 1)

M = Cd mod p . =* M = Cd mod N.

M = Cd mod q

Para comparar o desempenho desta variante com o RSA original observemos que

no RSA original o tempo de execução é dominado por duas exponenciações módulo

números com (|)-bits cada. Nesta variante as operações mais demoradas são as duas

primeiras exponenciações da desencriptação onde cada um dos expoentes tem fc-bits.

Como a exponenciação leva tempo linear sobre o tamanho dos expoentes, o processo

é acelerado em ^ . Assim para um módulo N com 1024 bits e k = 160 temos um

aumento na rapidez de execução de aproximandamente 3,2.

Esta variante tem por objectivo, para além de acelerar o processo de desencriptação,

proteger o sistema RSA contra ataques a sistemas criptográficos RSA que usam

expoentes privados pequenos descrito na secção 3.1. Para tal escolhe-se um d grande

mas usa-se uma chave privada (p,q,dp,dq), onde dp e dq são números pequenos, com

fc-bits e k < n/2 onde n é o tamanho da chave, nas condições acima descritas para

desencriptar uma mensagem (ou assinar). No entanto, Boneh e Shacham em [BS02]

chamam a atenção para o facto de que tendo uma chave privada (p,q,dp,dq) nessas

condições, com dp < dq, então pode-se determinar d em tempo 0{\ogdp*Jdp). A

escolha de k > 160 tem a ver com este facto, pois se dp e dq têm pelo menos 160-

bits cada, log dp^/cÇ — 160A/2160 > 280, o que torna o cálculo de d impraticável

(actualmente).

Page 67: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

58 CAPÍTULO 4. VARIANTES DO RSA

Page 68: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

Apêndice A

PKCS#1

Para encriptar ou assinar uma mensagem usando o sistema criptográfico RSA a men­

sagem tem primeiro de ser devidamente formatada. O texto original é de alguma

forma transformado num número binário X, por exemplo usando o código ASCII. A

sequência de bits (bit string) X é divida em partes de um dado tamanho. A cada

uma dessas partes é aplicado o PKCS#1 (Public Key Cryptography Standard) que

é um conjunto de normas para camuflar (padding) e formatar a mensagem antes de

a encriptar ou assinar. Estas normas foram desenvolvidas pelo RSA Laboratories

[RSA03] e alguns dos seus clientes (por exemplo, Apple, Microsoft, MIT) de sistemas

de segurança de dados, no início dos anos 90. As regras de camuflagem são ligeiramente

diferentes nos casos de encriptar e assinar, devido ao tipo de ataques que têm por

objectivo proteger.

A formatação dos blocos tem a seguinte estrutura

00 BT PS 00 D

em que

• o tamanho total do bloco é igual ao tamanho do módulo RSA que se está a usar

escrito em "bytes", vamos supor fc-bytes;

59

Page 69: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

60 APÊNDICE A. PKCS#1

• D são os dados a ser encriptados ou assinados, com no máximo (k ­ ll)­bytes;

devemos ter em atenção que o primeiro dígito de D tem que ser diferente de zero

para que não haja ambiguidade quanto ao seu tamanho;

• PS (padding string) é uma sequência de bytes de tamanho [k ­ 3­(tamanho de

D em bytes)]­bytes e serve para camuflar a mensagem;

• BT (block type) é um byte que escrito em hexadecimal é 00 ou 01; se BT=00

então PS tem todos os bytes iguais a zero, caso que se usa quando se pretende

encriptar a mensagem, e se BT=01 então PS tem todos os bytes iguais a ff1,

caso que se usa quando se pretende assinar;

• 00 é um "byte" escrito em hexadecimal que assegura que o bloco quando inter­

pretado como um valor inteiro é menor que o módulo RS A.

O PKCS#1 é apenas um exemplo de formatação, que segundo Menezes [MvOV97,

p. 656] incorpora duas versões anteriores de PKCS. Existe uma série de outras versões

para o PKCS cada uma delas com as suas expecificações como se poderá ver em

[MvOV97, p. 656] e na página do RS A Laboratories [RSA03, /pkcs].

xNa notação hexadecimal usam­se 16 símbolos, utilizando­se os dez algarismos da notação decimal

seguidos das primeiras 5 letras do alfabeto: 0, 1, ■ ■ ■, 9, a, b, c, d, e, f; portanto na base 16,

ff= 15 x 16 + 15 = 265, na base 10.

Page 70: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

Apêndice B

>JN ~ Zp x Zq

Consideremos Zm o conjunto das classes de equivalência ou classes residuais módulo

m, onde m é um inteiro positivo. Um elemento a G Zm será representado por [o]m.

Note-se que a relação de congruência é uma relação de equivalência porque tem as

seguintes propriedades:

• a = a (mod m), Va G Z;

• a = b (mod m) & b = a (mod m), Va, ò G Z;

• a = b (mod m) A b = c (mod m) => a = c (mod m), Va, b, c G Z.

Além disso: /*

a ± ò = a' ± 6' (mod m) a = a' (mod m) A ò = b' (mod m) => < , Va, a', 6,6'G Z.

aò = a'ò' (mod m)

Das propriedades das congruências concluí-se que Zm é um anel comutativo. Se p for

primo, Zp é corpo e o grupo multiplicativo Z* dos elementos não nulos de Zp é cíclico

e existe g G Z tal que a, a2, ..., op_1 são exactamente todos os elementos de Zp. A 5

chama-se gerador ou raiz primitiva de Zp [LeV96, pp. 79-84].

61

Page 71: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

62 APÊNDICE B. Z*N ~ Z*P x Z£

Designemos por 7L*m o grupo dos elementos invertíveis de ZTO e por tp(m) a ordem de

Z^. Observe-se que se z G Z*m <3> zx = 1 é solúvel em Zm , zx = 1 (mod m) tem

solução que sabemos só acontecer se e só se (z, m) = 1.

E fácil verificar que, sendo N = pq,

z*N -> z ; x z * p q (B.l)

x i—► (x,x).

é um isomorfismo. Pretende­se aqui exibir o seu inverso e para tal vamos usar o

Teorema Chinês dos Restos.

Teorema B.0.1 (Teorema Chinês dos Restos). Sejam ni,na, ...,rik inteiros posi­

tivos primos entre si dois a dois e sejam ri,r%,..., r^ inteiros quaisquer. Então as

congruências x = ri (mod ni )

x = r% (mod riz)

x = Tk (mod Uk)

têm uma solução comum que é única módulo N = ni • ... • nk­

Prova: Seja iV = fjj­i n i­ Tem­se evidentemente (^,«i) = 1, Vi G {1, 2,..., £;}. Daqui

resulta que existem inteiros íj tais que ^ í j = 1 (mod 7ij). Como ~í j = 0 (mod n,­),

com j ^ i, o inteiro _ AiV

í = l

é solução de cada uma das congruências consideradas, visto que

xo = g i m + g í 2 r 2 + ... + %tkrk = ^Un (mod ru), pois ­^ = 0 (mod m), se j ^ i

= Ti (mod rii), Vi G {1, 2,..., fc}, porque ^U = 1 (mod nf).

Vejamos que a solução é única módulo N. Com efeito, se x0 e rcj são soluções de todas

as congruências x = rj (mod n*), Vi G {1,2,..., fc} tem­se então x0 = xx (mod n*), Vi G

Page 72: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

63

{1,2,..., k} e como os n» são primos entre si dois a dois, resulta que x0 = xi (mod N).

O

A pré­imagem de (y, z) G Z* x Z* pelo isomorfismo (B.l) é portanto dada por

[x)N = \y)phq + [z}qt2p (mod N),

onde hq = l mod pet2p = l mod q. Vejamos um exemplo.

Exemplo B.0.2. Consideremos os seguintes grupos

Z$ = {1,2}

Z^ = {1,2,3,4}

ZÎ5 = {1,2,4,7,8,11,13,14}

Vamos ver como é que, dado um elemento de Z3 x ZJ, se obtém o elemento de Z*15 que

lhe corresponde via o isomorfismo (B.l). Sejam ri G Z3 e r2 G Zg. O que queremos é

determinar 2 G Zj5 tal que

{ 2 = ri (mod p)

z = r2 (moei g)

Sejam m = 3 e n2 = 5 para que iV = 15 = nin2. Calcula­se ~ = y = 5 e

5*4 s 1 (mod 3)=>íi = 2 e ^ = f = 3 e 3 í 2 = l (mod 5) =► í2 = 2. Assim,

AT N z = rit\ h r2t2— (mod 15) = lOri + 6r2 (mod 15).

ni n2

Portanto cada um dos 8 elementos Z*15 é a pré­imagem de um elemento (y, z) G Z3 x Zg,

obtido da forma acima descrita. Na tabela seguinte explicita­se o isomorfismo inverso

do isomorfismo (B.l) neste caso concreto.

Page 73: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

64 APÊNDICE B. Z*N ~ Z*P x Z*Q

ZJxZJ (1,1)

(2,1)

(1,2)

(2,2)

(1,3)

(2,3)

(1,4)

(2,4)

Z 15

10 x 1 + 6 x 1 = 10 + 6 = 16 (mod 15) = 1

1 0 x 2 + 6 x 1 = 20 + 6 = 26 (mod 15) = 11

10 x 1 + 6 x 2 = 10 + 12 = 22 (mod 15) = 7

10 x 2 + 6 x 2 = 20 + 12 s 32 (mod 15) = 2

10 x 1 + 6 x 3 = 10 + 18 = 28 (mod 15) = 13

10 x 2 + 6 x 3 = 20 + 18 = 38 (mod 15) = 8

10 x 1 + 6 x 4 = 10 + 24 = 34 (mod 15) = 4

10 x 2 + 6 x 4 = 20 + 24 = 44 (mod 15) = 14

Como o cálculo da solução do sistema de congruências no Teorema Chinês dos Restos

envolve apenas o algoritmo de Euclides e umas multiplicações e adições, a sua com­

plexidade é a mesma do algoritmo de Euclides.

Page 74: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

Referências

[And94] George E. Andrews. Number Theory. Dover, New York, 1994.

[Ang95] W. S. Ariglin. The Queen of Mathematics: an introdution to number

theory. Kluwer Academic Publishers, 1995.

[BDOO] D. Boneh and G. Durfee. Cryptanalysis of RSA with private key d less

than n0'292. IEEE Transactions on Information Theory, 46(4):1339-1349,

Jul. 2000.

[BDHG99] D. Boneh, G. Durfee, and N. Howgrave-Graham. Factoring n = prq for

large r. In Proceedings of Crypto'99, volume 1666, pages 326-337. LNCS,

Springer-Ver lag, 1999.

[Bon99] Dan Boneh. Twenty years of attacks the RSA cryptosystem. Notices of

the AMS, pages 203-213, February 1999.

[BS02] Dan Boneh and Hovav Shacham. I. Fast variants of RSA, II. How to en­

crypt properly with RSA, III. Composite-residuosity based cryptography:

An overview. RSA Laboratories CryptoBytes, 5(1), Winter/Spring 2002.

[Coh93] H. Cohen. A Course in Computational Algebraic Number Theory., volume

138 of Graduate Texts in Mathematics. Springer-Verlag, 1993.

[Cop97] Don Coppersmith. Small solutions to polynomial equations, and low

exponent rsa vulnerabilities. Journal of CRYPTOLOGY, (10):233-260,

1997.

65

Page 75: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

66 REFERÊNCIAS

[DH76] W. Diffie and M. Hellman. New directions in cryptography. IEEE

Transactions on Informattion Theory, 22(6):644-654, Nov. 1976.

[DK02] Hans Delfs and Helmut Knebl. Introdution to Cryptography. Springer-

Verlag, 2002.

[Fia89] Amos Fiat. Batch RSA. In G. Brassard, editor, Proceedings of Crypto '89,

volume 435, pages 175-185. LNCS, Springer-Verlag, 1989.

[GKP95] Ronald Graham, Donald Knuth, and Oren Patashnik. Concrete Mathe­

matics. Addison-Wesley, 2nd edition, 1995.

[HG98] Howgrave-Graham. Computational Mathematics Inspired by RSA. PhD

thesis, University of Bath, 1998.

[HLT02] M. Hinek, Mo Low, and E. Teske. On some attacks on multi-prime RSA.

In Advances in Cryptology- Proceedings of SAC 2002. LNCS, to appear,

2002.

[JS98] Antoine Joux and Jacques Stern. Lattice reduction: A toolbox for the

cryptanalyst. Journal of CRYPTOLOGY, (11):161-185, 1998.

[Khi97] A. Ya Khinchin. Continued Fractions. Dover, 3rd edition, 1997.

[Knu73] Donald Knuth. The Art of Computer Programming. Addison-Wesley, 2nd

edition, 1973.

[Kob87] Neal Koblitz. A Course in Number Theory and Cryptography., volume 114

of Graduate Texts in Mathematics. Springer-Verlag, 1987.

[Kob98] Neal Koblitz. Algebraic Aspects of Cryptography. Graduate Texts in

Mathematics. Springer-Verlag, 1998.

[Lab03] RSA Laboratories. Frequently Asked Question About Today Cryptography.

http://www.rsasecurity.com/rsalabs/faq, 2003.

Page 76: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

REFERÊNCIAS 6 7

[LeV96] William J. LeVeque. Fundamentals of Number Theory. Dover, New York,

1996.

[LLL82] A. K. Lenstra, H. W. Lenstra, and L. Lovász. Factoring polynomials with

rational coefficients. Mathematische Annalen, 261:515-534, 1982.

[Lov86] László Lovász. An Algorithmic Theory of Numbers, Graphs and Convexity.

SIAM Publications, 1986.

[LV01] Arjen K. Lenstra and Eric R. Verheul. Selecting cryptography key sizes.

Journal of CRYPTOLOGY, (14):255-293, August 2001.

[MolOl] Richard A. Mollin. An Introdution to Cryptography. Chapman&Hall/CRC,

2001.

[Mor93] José Morgado. Teoria Elementar dos Números. Departamento de

Matemática Pura da FCUP, 1993.

[MvOV97] A. Menezes, P. van Oorschot, and S. Vanstone. Handbook of Applied

Cryptography. CRC Press, 1997.

[Rie85] Hans Riesel. Prime Numbers and Computer Methods for Factorization.

Birkháuser, 2nd edition, 1985.

[RSA78] R. Rivest, A. Shamir, and L. Adleman. A method for obtaining digital

signatures and public-key cryptosystems. Communications of the ACM,

21(2):120-126, Feb. 1978.

[RSA03] RSA Laboratories, http://www.rsasecurity.com/rsalabs/, 2003.

[Sal96] Arto Salomaa. Public-Key Cryptography. Springer-Verlag, 2nd edition,

1996.

[SB01] H. Shacham and D. Boneh. Improving SSL handshake performance via

batching. In D. Naccache, editor, Proceedings of RSA 2001, volume 2020,

pages 28-43. LNCS, Springer-Verlag, 2001.

Page 77: O SistemaCriptográfic oRSA : Ataques e Variantes · Inês Barbedo O SistemCriptográfica RSAo : Ataques e Variantes Tese submetida à Faculdade de Ciências da Universidade do Porto

68 REFERÊNCIAS

[Sha95] Adi Shamir. RSA for paranoids. RSA Laboratories CryptoRytes, 1(3),

Autumn 1995.

[SilOO] John R. Silvester. Determinants of block matrices. Maths Gazette, 84:460-

467, 2000.

[Spi94] Karlheinz Spindler. Abstract Algebra with Applications, volume 2. Marcel

Dekker, 1994.

[Tak97] T. Takagi. Fast RSA-type cryptosystem using n-adic expansion. In

Advances in Cryptology- Crypto'97, volume 1294, pages 372-384. LNCS,

Springer-Verlag, 1997.

[Tak98] T. Takagi. Fast RSA-type cryptosystem modulo pkq. In Proceedings of

Crypto'98, volume 1462, pages 318-326. LNCS, Springer-Verlag, 1998.

[Vin77] Ivan Vinogradov. Fundamentos de la Teoria de los Números. Editorial

Mir, 1977.

[Wad81] Wadsworth, editor. The Mathematical Gardner: Mental Poker, pages 37-

43. David Klarner, 1981.

[Wie90] M. Wiener. Cryptanalysis of short RSA secret exponents. IEEE

Transactions on Informattion Theory, 36(3):553-558, May 1990.