Sei sulla pagina 1di 54

Universit degli Studi di Trento

Facolt di Scienze Matematiche Fisiche e Naturali Dipartimento di Matematica

Attacco di Wiener ad RSA


Elisa Signori

Relatore:

Prof. Massimiliano Sala

Controrelatore: Prof. Andrea Caranti

Anno accademico

2012/2013

Universit degli Studi di Trento


Facolt di Scienze Matematiche Fisiche e Naturali Dipartimento di Matematica

Attacco di Wiener ad RSA

Tesi di:
Elisa Signori

Relatore:
Prof. Massimiliano Sala

Controrelatore:
Prof. Andrea Caranti

Anno accademico

2012/2013

A Linda, che mi ha dato la carica per portare a termine questo percorso, e a tutta la mia grande famiglia...

Ringraziamenti
Desidero ringraziare il prof. Sala, relatore di questa tesi, e Marco Calderini che mi hanno costantemente guidata e supportata durante la stesura della stessa.

Ringrazio Simone e Linda per essermi stati pazientemente accanto durante questo percorso ed Emanuela, Paolo e Lorenzo per l'incrollabile sostegno dimostratomi in tutti questi anni.

Ringrazio inne gli innumerevoli amici che mi hanno tirato su il morale nei momenti di sconforto e tutti i compagni di studi che, in vari modi, mi hanno saputo aiutare.

Indice
Acknowledgment Introduzione 1 Introduzione alla crittograa e preliminari
1.1 1.2 1.3 1.4 Cifrari a chiave pubblica e a chiave privata . . . . . . . . . . . . . . . Numeri primi e funzione di Eulero . . . . . . . . . . . . . . . . . . . . Teorema cinese dei resti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1 1 1
1 3 6 9

Fattorizzazione in numeri primi

2 Algoritmo RSA, requisiti di sicurezza e principali attacchi


2.1 2.2 2.3 2.4 2.5 Algoritmo RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Firma autenticata nell'RSA

11
11 15 17 19 19 20 22 22 23 23 24 24

Requisiti generali per la sicurezza

Attacchi elementari dovuti a errata scelta del modulo . . . . . . . . . Attacchi con esponente pubblico piccolo 2.5.1 2.5.2 2.5.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Attacco di Hstad sulla trasmissione

Attacco di Franklin-Reiter sui messaggi correlati . . . . . . . . Attacco di Coppersmith . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.6

Attacchi all'esposizione parziale della chiave 2.6.1 2.6.2

Esposizione parziale della chiave con esponenti piccoli . . . . . Esposizione parziale della chiave con esponenti medi . . . . . . . . . . . . . . . . . . . . . . .

2.7

Attacchi con esponente privato piccolo

3 Frazioni continue 4 Attacco di Wiener a RSA


4.1 4.2 4.3 4.4 Attacco di Wiener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmo dell'attacco di Wiener passo per passo . . . . . . . . . . .

25 29
29 35 37 39 39

Esempio numerico di attacco di Wiener . . . . . . . . . . . . . . . . . Come contrastare l'attacco di Wiener . . . . . . . . . . . . . . . . . . 4.4.1 Scelta di

grande . . . . . . . . . . . . . . . . . . . . . . . . .

4.4.2 4.5

Utilizzo del teorema cinese dei resti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39 40

Miglioramenti dell'attacco di Wiener

Bibliograa

42

ii

Introduzione
Il crittosistema RSA [RSA78], che deve il nome ai suoi inventori Rivest, Shamir e Adleman, fa parte dei crittosistemi cos detti a chiave pubblica, dove ad ogni utente coinvolto nella comunicazione viene associata una coppia di chiavi, una pubblica ed una privata. Tale algoritmo stato ed ancora largamente utilizzato per proteggere dati digitali e per garantirne l'autenticit (ad esempio pagamenti con carte di credito on-line, posta elettronica certicata, ecc.). Nel corso degli anni, sono stati ideati vari attacchi ad RSA ([Bon99]); tuttavia, il crittosistema non mai stato veramente compromesso a livello pratico. Per cifrare con il crittosistema RSA, il mittente utilizza due interi, l'esponente di cifratura

e il modulo

(la coppia di valori

(n, e)

costituisce la chiave pubblica del

destinatario). Per decifrare, il destinatario sfrutta invece la cosiddetta chiave privata composta dalla coppia di interi

(n, d), dove n il modulo del sistema e d l'esponente


Tali parametri sono scelti in

privato di decifratura (noto soltanto al destinatario). modo tale che

sia il prodotto di due numeri primi segreti,

q,

e i valori

soddisno la seguente equivalenza in modulo

e d 1 (mod (p 1)(q 1)).1


La sicurezza di RSA si basa sulla dicolt di fattorizzare numeri interi grandi in fattori primi. Per rompere il sistema, necessario fattorizzare primi

(ovvero calcolare i

q );

si pu dimostrare che tale problema equivalente a ricavare l'esponente

privato

d.

Per questo motivo scegliere opportunamente i vari parametri di fonda-

mentale importanza per la sicurezza del sistema.

In questo elaborato verr

descritto in dettaglio RSA e verranno illustrati alcul'attenzione sull'attacco di Wiener,

ni attacchi ad esso; in particolare, si focalizzer

il quale permette di determinare l'esponente privato

d, se scelto sotto una certa soglia.

In sintesi, vengono ora riportati gli argomenti presentati in questa tesi.

1 Si

noti che, anch d esista, ci si deve assicurare che e e (p 1)(q 1) siano coprimi.
iii

Il

Capitolo 1

tratter

generalmente i sistemi crittograci a chiave pubblica e a

chiave privata. Esso conterr inoltre alcuni importanti teoremi e dezioni preliminari; servir anzitutto denire la relazione di congruenza e la funzione di Eulero Verr poi enunciato il teorema cinese dei resti e si tratter

(n).

brevemente il problema

della fattorizzazione in numeri primi, su cui si basa la sicurezza di RSA.

Nel

Capitolo 2

si passer a descrivere dettagliatamente l'algoritmo di RSA, siste-

ma crittograco a chiave pubblica; dopo averne illustrato un esempio, si vedr come si pu facilmente ottenere una rma digitale per garantire l'autenticit del mittente di un messaggio. Seguir una sezione dedicata all'elencazione di alcuni requisiti di

sicurezza; tali norme sono dettate dal NIST, ovvero il

and Technology.

National Institute of Standards

Verr

poi fatta una breve panoramica su alcuni tra i principali

attacchi noti al sistema RSA.

Per poter descrivere in particolare l'attacco di Wiener, servir la teoria delle frazioni continue, sulla quale si concentra tutto il

Capitolo 3.

Verranno dati quindi la

denizione di frazione continua nita semplice, la denizione di convergente

m-esima

dello sviluppo in frazione continua e alcuni teoremi e proposizioni fondamentali per la comprensione dei contenuti seguenti.

Inne, il

Capitolo 4

si focalizzer sull'attacco di Wiener ad RSA. Si enuncer e si

dimostrer quindi il teorema di Wiener e si descriver dettagliatamente l'algoritmo di attacco. Verranno illustrati inoltre dei metodi per contrastarlo, ideati da Wiener stesso, e verranno fornite alcune note storiche su ulteriori miglioramenti scoperti di recente.

iv

Introduzione alla crittograa e preliminari


Questo capitolo inizia con una breve introduzione alla crittograa, alla quale segue una descrizione sintetica dei sistemi crittograci a chiave pubblica e a chiave privata. Per comprendere il funzionamento dell'algoritmo del sistema RSA, necessario denire la funzione di Eulero

(n),

dove

un intero positivo, e enunciare il teorema

cinese dei resti. Si tratta poi brevemente il problema della fattorizzazione in numeri primi.

1.1

Cifrari a chiave pubblica e a chiave privata

La crittograa la scienza che si occupa di proteggere le informazioni che vengono scambiate durante la comunicazione tra due utenti su un canale potenzialmente insicuro; l'obiettivo che essa si pregge quindi di impedire a una terza persona di comprendere i messaggi inviati tra mittente e destinatario del sistema. Lo sviluppo della crittograa andato di pari passo con quello della crittanalisi, che si occupa dello studio degli attacchi ai cifrari, e dell'informatica, che studia invece l'elaborazione di dati e la loro rappresentazione mediante apparecchiature elettroniche; questo perch crittogra e crittanalisti necessitano di elaboratori molto sosticati per poter condurre le loro indagini sulla cifratura e decifratura dei messaggi.

Con l'avvento di internet le applicazioni della crittograa hanno assunto importanza sempre maggiore, essendoci sempre pi bisogno di sicurezza, specialmente nelle transazioni in rete e non (si pensi a bancomat e carte di credito in generale).

Fino a non molti anni fa si utilizzavano sistemi crittograci a chiave simmetrica; in questi casi Alice e Bob, che vogliono scambiarsi informazioni, utilizzano una sola chiave privata per cifrare e decifrare i messaggi. Questa chiave ovviamente deve essere nota solo a loro perch possano comunicare senza che Eva (l'intruso) la intercetti e possa decifrare i messaggi; il problema che lo scambio della chiave deve avvenire in modo sicuro, quindi si richiede necessariamente che il canale lo sia. Per eliminare il pericolo di cui abbiamo parlato, negli anni Settanta nasce la crittograa a chiave pubblica (o asimmetrica) che andremo qui di seguito a descrivere.

Capitolo 1. Introduzione alla crittograa e preliminari

Figura 1.1: chiave pubblica

Alice e Bob scelgono entrambi una chiave pubblica con la quale poter cifrare messaggi a loro diretti, mentre mantengono segreta la chiave associata per decifrarli; cio, Alice cifra con la chiave pubblica di Bob che l'unico in grado di decifrare il messaggio, utilizzando la chiave privata nota solo a lui (vedi gura 1.1). Con i sistemi crittograci asimmetrici ogni utente possiede due chiavi, una pubblica (nota a tutti coloro con cui si vuole comunicare) e una privata (nota soltanto all'utente che deve decifrare i messaggi). Si risolve cos il problema dello scambio delle chiavi, cruciale nei sistemi a chiave privata.

1.2. Numeri primi e funzione di Eulero


La crittograa a chiave pubblica permette anche di garantire l'identit di chi invia un messaggio (rma digitale); infatti il mittente pu rmare un messaggio con la sua chiave privata (che solo lui possiede) e chiunque potr vericare l'autenticit di tale rma grazie alla chiave pubblica, che nota a tutti. Questa innovazione

molto importante se si considerano tutte le operazioni che compiamo ogni giorno (ad esempio la PEC

) in cui ci necessario.

Il pi conosciuto cifrario a chiave pubblica RSA, ideato da Ronal Rivest, Adi Shamir e Leonard Adleman nel 1976, che sfrutta alcune propriet fondamentali dei numeri primi ([RSA78]). La sua sicurezza si basa sulla dicolt di fattorizzare un numero intero; in particolare, nell'RSA la chiave pubblica costituita da un numero intero

ottenuto moltiplicando tra loro due numeri primi molto grandi, che restano segreti.

1.2

Numeri primi e funzione di Eulero


Un numero intero maggiore di e per se stesso.

Denizione 1.
soltanto per

1 si dice primo se divisibile senza resto n.

Ci sono vari modi per testare la primalit di un intero a dividerlo per tutti i primi no a

Il pi semplice provare

(non ha senso andare avanti perch, se

primo, avr sicuramente un fattore primo minore o uguale a

n);

non

tuttavia questo

metodo non praticabile perch molto laborioso per primi grandi e quindi necessita di tempi eccessivamente lunghi. Ci sono metodi pi sosticati per determinare che un numero primo, ma spesso pi facile vedere che un numero non primo. Questo perch i numeri primi sono numeri speciali, che godono di particolari propriet: se una di esse non soddisfatta per un certo numero, possiamo dire con certezza che esso non primo.

Denizione
se

2 (Congruenza)

Sia

n Z;

allora

n divide a b a b (mod n).

ovvero se esiste un numero intero

b si dicono congruenti modulo n c tale che a = b + cn. In simboli: n n > 0)

Si pu facilmente dimostrare che la congruenza modulo relazione di equivalenza; in particolare, essa d luogo a

(con

una

classi di equivalenza

[0] , [1] , [n 1]
che corrispondono a tutti i possibili resti della divisione per Si denota con

n.

Zn

l'anello quoziente modulo la relazione di equivalenza; in particolare,

1 Sta

per posta elettronica certicata.


3

Capitolo 1. Introduzione alla crittograa e preliminari


si dimostra che

Zn

un campo se e solo se

primo.

Denizione

3 (Funzione di Eulero)

Sia

un numero intero positivo; allora

(n)

il

n. Equivalentemente, (n) l'ordine del gruppo degli elementi invertibili dell'anello Zn (ogni classe resto ha un unico rappresentante non negativo minore di n).
numero degli interi non negativi minori di che sono coprimi con

Proposizione 1.

La funzione

moltiplicativa, cio

(m n) = (m) (n)
se

(m, n) = 1.
Per il Teorema (3) cinese dei resti, che verr enunciato in seguito, si

Dimostrazione.

ha l'isomorsmo seguente

Zmn Zm Zn u + mnZ (u + mZ, u + nZ).


Grazie a esso possiamo dire che il numero anello uguaglia quello del secondo, che prodotto diretto di anelli.

(1.1)

(mn) di elementi invertibili del primo (m)(n) per una generale propriet del

Osservazione 1.
minori di

Se

primo,

(n) = p 1,

perch tutti gli interi positivi

sono coprimi con

p.
cio

Se

potenza di un primo

p,

n = p ,

per un opportuno

vale

(n) = p p1 = p1 (p 1).
Questo perch il numero di interi positivi coprimi con tra il numero degli interi positivi minori di di

dato dalla dierenza

e il numero dei multipli positivi

minori o uguali a

n = p q dove p e q sono due numeri primi grandi e distinti (anch ci sia una certa sicurezza p e q dovrebbero avere circa
Il caso che interessa a noi, relativo all'RSA 100 cifre decimali). Dalle propriet della funzione di Eulero abbiamo che

(n) = (p) (q ) = (p 1) (q 1).

1.2. Numeri primi e funzione di Eulero

Teorema

1 (di Eulero-Fermat)

Siano

a, n

interi positivi con

(a, n) = 1;

allora

a(n) 1 (mod n). (a, n) = 1, l'intero a appartiene al gruppo degli elementi invertibili dell'anello Zn (indicato come Zn ). Poich tale gruppo ha ordine (n), segue le tesi.
Se

Dimostrazione. Teorema

2 (piccolo teorema di Fermat)

Sia

un primo; allora per ogni intero

vale

ap a (mod p).

Dimostrazione.
nella forma

Se

p | a,

la conclusione immediata; se invece

p a

la tesi segue dal

teorema di Eulero-Fermat.

Tale risultato ancora pi evidente se la tesi si scrive

a (a

p1

1) 0 (mod p).

Il piccolo teorema di Fermat ci illustra una delle propriet dei numeri primi, per cui possiamo dire che, se un intero gode di questa propriet, c' un'alta probabilit che esso sia primo. Tuttavia, bisogna fare attenzione ad alcuni numeri che deniamo qui di seguito.

Denizione
to alla base

4 (numero pseudoprimo)

Un numero intero

n si dice pseudoprimo rispet-

se

bn1 1 (mod n).


Notiamo che, se

primo, allora

pseudoprimo rispetto ad ogni base

b,

per il

piccolo teorema di Fermat. I numeri pseudoprimi sono quindi numeri che pretenderebbero di essere primi passando solo per il test

bn1 1 (mod n)

per un certo

e ci ovviamente non suciente

per determinare la sua primalit. Tali numeri per fortuna si determinano facilmente; possibile fare ci per la seguente Proposizione.

Proposizione 2.

Sia

n intero diverso da 1 e non primo; se n non pseudoprimo rispetto


allora non pseudoprimo rispetto ad almeno la met delle basi

a una certa base

possibili (che sono le

(n)

basi

con

0 < b < n

(b, n) = 1).

B = {b (Zn ) : bn1 = 1} l'insieme delle basi per cui n pseudoprimo, considerate modulo n. Osserviamo che B un sottogruppo proprio di (Zn ) ; infatti un sottogruppo in quanto, dati a, b B , cio an1 = bn1 = 1, n1 segue che (ab) = 1, quindi ab B e (a1 )n1 = (an1 )1 = 1, quindi a1 B .
Sia 5

Dimostrazione.

Capitolo 1. Introduzione alla crittograa e preliminari


Inoltre, per ipotesi, esiste almeno una base non sta in

b per cui n non pseudoprimo e che quindi

B.

Segue che

|B | =
dove

(n) (n) |(Zn ) : B | 2 B


in

|(Zn ) : B |

indica la dimensione di

Z n,

cio il grado dell'estensione

Z n

di

(abbiamo dovuto provare che Sia

sottogruppo di

Z n ). 1.
Allora

Denizione 5.

un intero dispari non primo e diverso da

si dice

numero di Carmichael se

bn1 1 (mod n)
per ogni base

tale che

(b, n) = 1.

Un numero di Carmichael quindi un numero non primo ma pseudoprimo rispetto a qualunque base. Anche i numeri di Carmichael si possono scoprire facilmente, usando un semplice algoritmo basato sul fatto che, se un intero unici interi

primo, allora gli

tali che

b 1 (mod n)

sono

1.

Esistono anche algoritmi pi ranati (in cui non ci addentriamo) per testare la primalit di un intero, che non presentano casi eccezionali come i numeri di Carmichael.

1.3

Teorema cinese dei resti


3 (Teorema cinese dei resti)

Teorema

Siano

n1 , n2 , . . . , nm

numeri interi positivi a

due a due coprimi e siano

a1 , a2 , . . . , am

altrettanti interi. Allora:

esiste un intero

che risolve il seguente sistema:

x a1 (mod n1 ) x a (mod n ) 2 2 ... x am (mod nm ).


Inoltre, detta

(1.2)

x0 una soluzione particolare, essa rappresenta la soluzione generale xk = x0 + (n1 n2 . . . nm ) k , con k Z;


due interi modulo

b e c che sono soluzione del sistema (1.2) N = n1 n2 . . . nm , cio b c (mod N ); v


e

sono congruenti tra loro

due interi

che siano congruenti tra loro modulo

ni ,

per ogni

i = 1 . . . m,

lo sono anche modulo

1.3. Teorema cinese dei resti

Dimostrazione.
1. Sia

Dimostrazione seguendo [Jac89] e [Sta07].

N N = n1 n2 . . .nm e sia, per ogni i = 1, . . . , m, Ni = n = j =i nj . Allora, i per ogni indice i, non avendo ni alcun fattore primo con nj , (per ogni j = i), segue che ni non ha fattori primi in comune con Ni , ossia (Nj , ni ) = 1. Quindi, per ogni i = 1, . . . , m, la congruenza lineare Ni x bi (mod ni ) ammette una soluzione ci . m Sia ora c = i=1 Ni ci e sia ssato un indice i. Si osservi che, per ogni j = i, ni divide Nj e quindi anche Ni ci . Pertanto

c = Ni ci +
j =i

Nj cj Ni ci bi (mod ni ). Ni x bi (mod ni ). N ni , per ogni i = 1, . . . , m, si ha che i = 1, . . . , m, ossia xk soluzione del sistema x x0 (mod ni )
per ogni

L'ultima congruenza dovuta al fatto che ci verica il sistema Sia ora

k Z; allora, essendo xk x0 bi (mod ni ), per ogni x

(1.2). Sia quindi una soluzione del sistema (1.2). Allora

indice i, quindi

ni | (x x0 ). Poich gli ni sono a due a due coprimi, il loro prodotto (cio N ) divide x x0 ; questo per il teorema fondamentale dell'aritmetica (4). Quindi esiste k Z tale che x x0 = kN , cio x = xk .

2. Siano

b, c

le soluzioni del sistema

x a1 (mod n1 ) x a (mod n ) 2 2 ... x am (mod nm ).


Allora

bc

soddisfa

b c 0 (mod n1 ) b c 0 (mod n ) 2 . . . b c 0 (mod nm )


cio

b c 0 (mod ni ) indice i b c multiplo


loro prodotto.

per ogni

i;

ci signica che

del massimo comune

N | (b c), divisore degli ni .

cio per ogni Poich gli

ni

sono a due a due coprimi, tale massimo comune divisore coincide proprio con il

Capitolo 1. Introduzione alla crittograa e preliminari


3. Tale dimostrazione l'inversa del punto 2.

Il Teorema cinese dei resti (3) fondamentale nel funzionamento dell'algoritmo del sistema RSA; esso permette infatti di eseguire calcoli modulari rispetto ad un certo numero intero

n e in particolare mostra come si possa calcolare x conoscendo x (mod p) e x (mod q ) (con p e q coprimi). La Formula di Garmer ([Sta07]) ci dice operativamente come calcolare x.

Proposizione

3 (Formula di Garmer)

Nelle ipotesi del teorema cinese dei resti, si ha

che la soluzione

al sistema (1.2) data da

x = (((a b)(q 1 (mod p))) (mod p)) q + b.

Dimostrazione.

Si verica inanzitutto che

0 x (n 1).

Naturalmente

x 0

t := (((a, b)(q
calcolato modulo

(mod p))) (mod p))

un termine compreso tra

p1

perch

p. Poich t (p 1), tq (p 1)q e x = tq + b (p 1)q + (q 1) = pq 1 = n 1 si ha 0 x (n 1). Ora controlliamo che il risultato sia eettivamente corretto. Sia x (mod p) = a e x (mod q ) = b; allora x (mod q ) = (((a, b)(q 1 (mod p))) (mod p)) q + b (mod q ) = (K q + b) (mod q ) per qualche K = b (mod q ) = b; x (mod p) = (((a, b)(q 1 (mod p))) (mod p)) q + b (mod p) = ((a b)q 1 q + b) (mod p) = ((a b)(q 1 q ) + b) (mod p) = ((a b) + b) (mod p) = a (mod p) = a.
(1.4) (1.3)

1.4. Fattorizzazione in numeri primi

Osservazione 2.

Dal teorema cinese dei resti sappiamo che la soluzione al sistema

(1.2) pu essere solo una, quindi la formula di Garmer risolve completamente il problema della risoluzione di tale sistema.

1.4

Fattorizzazione in numeri primi

La sicurezza dell'algoritmo RSA si basa sulla dicolt di fattorizzare numeri interi molto grandi.

Denizione 6.
partenza.

Per fattorizzazione si intende la scomposizione di un numero intero

in un insieme di divisori non banali che, moltiplicati fra loro, diano il numero di

Il teorema Fondamentale dell'Aritmetica assicura che la scomposizione in fattori primi unica, a meno di cambi d'ordine tra i fattori.

Teorema

4 (Teorema fondamentale dell'aritmetica)

Ogni numero intero

a > 1

un numero primo o si scrive in modo unico come

a =
i=1
dove

2 n 1 pi = p 1 p2 . . . pn

pi

sono numeri primi e

interi positivi. A meno che non si inverta l'ordine dei

fattori, tale scomposizione unica. Naturalmente, calcolare il prodotto di due o pi numeri interi primi

q,

anche

se molto grandi (composti di qualche centinaio di cifre) un'operazione pressoch elementare e qualasiasi calcolatore attuale in grado di farlo in tempo breve. Tuttavia, dato

n = p q,

dicile scomporlo nei suoi fattori elementari

q.

Nel corso della

storia sono stati ideati molti metodi per rendere la fattorizzazione un problema sempre pi veloce ed agevole; esso per rimane tuttora un problema complesso.

Algoritmo RSA, requisiti di sicurezza e principali attacchi


In questo capitolo si va ad analizzare nel dettaglio il sistema crittograco a chiave pubblica RSA. Viene inoltre descritto un esempio di rma autenticata e si elencano le principali norme di sicurezza da seguire per non esporre il sistema ai pericoli pi comuni. Inne, si presentano sinteticamente alcuni attacchi noti.

2.1

Algoritmo RSA

Nel 1978 Ronal Rivest, Adi Shamir e Leonard Adelman pubblicarono sulla rivista

Communication of ACM

([RSA78]) la descrizione del cifrario RSA (acronimo ottenu-

to dalle iniziali dei suoi inventori). Esso fu uno dei primi sistemi crittograci a chiave pubblica (si veda la Sezione 1.1) ed operava a blocchi interpretando ogni messaggio come un numero intero. Per alcuni anni RSA rimase soltanto una bella idea, ma

ben presto, per la sua semplicit e sicurezza, venne utilizzato (e lo anche oggi) in molti settori, specialmente per la protezione di comunicazioni su piattaforme digitali. L'algoritmo di codica e decodica sfruttato nel sistema RSA il seguente.

Alice, che vuole ricevere messaggi da Bob (o da qualsiasi utente), si costruisce anzitutto una chiave pubblica. Sceglie quindi due numeri primi dispari distinti molto grandi (per avere una certa sicurezza, circa 425 cifre binarie) e calcola

peq

devono avere circa 128 cifre, ovvero

n = p q;

per quanto visto nella Proposizione 1

(n) = (p 1) (q 1).
Sceglie poi un intero

tale che

Alice si quindi costruita la

(e, (n)) = 1. coppia (n, e), che

rappresenta la sua chiave pubblica (di

cifratura); ogni utente potr utilizzarla per inviare un messaggio ad Alice. Bob traduce il messaggio che vuole inviare ad Alice in una sequenza di numeri

xi

X = (x1 , x2 , . . .)
11

Capitolo 2. Algoritmo RSA, requisiti di sicurezza e principali attacchi


Si osservi che gli xi saranno quasi sicuramente primi con n, es(n) sendo che il rapporto tende a 1 per n opportunamente grande. Bob deve ora n con cifrare il messaggio in chiaro

xi < n i.

X = (x1 , x2 , . . .)

per ottenere il messaggio cifrato

Y = (y1 , y2 , . . .)

utilizzando la chiave pubblica

messa a disposizione da Alice e

lo fa nel modo seguente:

y i = xe i (mod n);
invia quindi

ad Alice.

Per decifrare il messaggio Alice deve utilizzare la funzione inversa, che solo lei pu calcolare perch l'unica a conoscere la fattorizzazione di

n.

Ricava quindi due numeri

tali che

de + (n)t = 1
e procede nel modo seguente, presumendo per semplicit che gli

xi

siano primi con

n:

xi = x1 i = xi
dato che Se

de + (n)t

= xde i xi

(n)t

d yi (mod n)

y i = xe i (mod n)

xi

(n)t

1 (mod n)

per il teorema di Eulero-Fermat (1).

xi

non fosse primo con

n,

Alice compirebbe la stessa operazione applicando prima

il teorema cinese dei resti (3) su

n = pq n.

e poi il teorema di Eulero-Fermat (1).

Per ottenere il messaggio in chiaro, ad Alice basta dunque calcolare la potenza esima di

d-

yi

e calcolarne il resto modulo

Riassumendo, i parametri utilizzati nell'algoritmo sono:

informazioni pubbliche informazioni private


n, e p, q , d

ALGORITMO
Esempio 1.
grandi Alice sceglie due primi e ne calcola il prodotto

ESEMPIO NUMERICO
p = 31, q = 41 = n = 1271

n=pq

Tabella 2.1: continua nella prossima pagina

12

2.1. Algoritmo RSA


Tabella 2.1: continua dalla pagina precedente

ALGORITMO
Alice calcola

ESEMPIO NUMERICO
(n) = 30 40 = 1200

(n),

cio trova il

numero degli interi minori di con esso

e primi

Alice sceglie un numero che

e < (n)

tale

e = 13

(e, (n)) = 1

la chiave pubblica

(n, e)

costruita

(1200, 13)

Bob traduce il suo messaggio in una sequenza di numeri

Supponiamo il messaggio sia CIFRARIO: gli

xi

minori di

xi

si otterranno ad

esempio dalla seguente relazione

xi = a + b 26,

dove ogni lettera

corrisponde a un numero compreso tra

0 e 25 cio CI = x1 = 2 + 8 26 = 210 F R = x2 = 5 + 17 26 = 447 AR = x3 = 0 + 17 26 = 442 IO = x4 = 8 + 14 26 = 372

Tabella 2.1: continua nella prossima pagina

13

Capitolo 2. Algoritmo RSA, requisiti di sicurezza e principali attacchi


Tabella 2.1: continua dalla pagina precedente

ALGORITMO
Bob cifra il messaggio calcolando

ESEMPIO NUMERICO
Il messaggio cifrato risulta quindi:

yi =

xe i

(mod n)

y1 y2 y3 y4

21013 (mod 1271) 44713 (mod 1271) 44213 (mod 1271) 37213 (mod 1271)

818 879 729 899

Alice calcola

con l'algoritmo di

si ha quindi

d = 277

t = 3

Euclide esteso in modo che

d e + (n) t = 1

Alice procede alla decodica del messaggio:

xi =

d yi

(mod n)

x1 x2 x3 x4

818277 (mod 1271) 879277 (mod 1271) 729277 (mod 1271) 899277 (mod 1271)

210 447 442 372

Alice applica la funzione inversa a quella che ha applicato Bob per cifrare e ottiene il messaggio in chiaro

210 = 2 + 8 26 = CI 447 = 5 + 17 26 = F R 442 = 0 + 17 26 = AR 372 = 8 + 14 26 = IO

Tabella 2.1: Esempio numerico algoritmo RSA

14

2.2. Firma autenticata nell'RSA


2.2 Firma autenticata nell'RSA

Come stato anticipato nella Sezione (1.1), la crittograa a chiave pubblica permette di rmare un messaggio; nel caso dell'algoritmo RSA, tale procedimento funziona nel modo seguente.

Sia

0 M < n

un messaggio che Alice vuole inviare a Bob

Si possono dare varie denizioni di rma associata a un messaggio; la seguente ne un semplice esempio.

Denizione
modulo

7 (Firma di un messaggio)

Sia

esponente privato del sistema RSA con

n;

allora deniamo rma di un messaggio

la seguente:

sig(n,d) (M ) = M d (mod n).


Una rma denita in questo modo ha le seguenti caratteristiche.

Per Alice facile calcolare la rma del messaggio fare un elevamento a potenza modulo

da inviare a Bob; basta

n.

La verica dell'autenticit della rma pu essere fatta da chiunque. La rma dicile da falsicare per Eva; infatti tale operazione equivale a rompere il crittosistema RSA.

Per vericare la rma si pu usare la seguente procedura:

ver(n,e) (M, F ) =
Sia denito un sistema RSA con questi parametri,

VERO, se

M = F e (mod n)

FALSO, altrimenti.

n = 47 71 = 3337, e = 79, d = 1019; con (n) = 46 70 = 3220 ed eettivamente e d 1 (mod (n)).

pu eventualmente scomporre il messaggio in due parti, associate a due numeri minori di n; questa condizione necessaria poich non vogliamo che due messaggi distinti siano accoppiati alla stessa rma.
15

1 Si

Capitolo 2. Algoritmo RSA, requisiti di sicurezza e principali attacchi

ALGORITMO
Esempio 2.
numero Alice vuole rmare un

ESEMPIO NUMERICO
M = 1570

messaggio; associa perci ad esso un

M,

che sceglier compreso tra

n,

utilizzando un certo algoritmo

Alice utilizza il proprio esponente privato

per calcolare la rma

sig(3337,1019) (1570) = 15701019 (mod 3337) = 668

M: F = sig(n,d) (M ) = M (mod n)
associata al messaggio

Bob riceve

(M, F ),

cio il messaggio

Bob riceve

(1570, 668)

con rma associata ad esso

Bob deve vericare se eettivamente la rma del messaggio

M calcolando ver(n,e) (M, F ), cio F e (mod n); se tale risultato pari a M la rma
garantita, altrimenti non lo

ver(3337,79) (1570, 668) = V ERO 79 perch 668 1570 (mod 3337)

Tabella 2.2: Firma RSA

16

2.3. Requisiti generali per la sicurezza


2.3 Requisiti generali per la sicurezza

Nonostante la sua ecienza, il sistema RSA ha un costo computazionale piuttosto elevato perch, per garantire la sua integrit, si devono scegliere parametri opportunamente grandi; ecco perch forte la tentazione di ridurre i tempi di codica/decodica, ad esempio abbassando alcuni parametri del sistema (come esponenti pubblici o privati).

I requisiti generali per la sicurezza di RSA sono dati dal NIST, che sta per

tional Institute of Standards and Technology.

Na-

Elenchiamo di seguito alcune tra le pi

importanti norme che tale ente invita a rispettare (si veda [BCRS09]). 1. Le chiavi devono essere generate usando un metodo appropriato. 2. La chiave privata e i fattori primi

peq

devono essere opportunamente protetti.

3. Ogni chiave pubblica e ogni utilizzo della chiave devono poter essere ricondotti a un utente identicato. 4. La chiave pubblica deve essere protetta da modiche non autorizzate; a tale riguardo, esiste un'

Autorit Certicativa

(CA), cio un ente abilitato a rila-

sciare un certicato digitale che segue standard internazionali e conforme alla normativa vigente in materia. 5. Il destinatario della chiave pubblica deve essere certo dell'integrit dei dati ricevuti e della corretta associazione tra chiave pubblica e possessore della coppia di chiavi. 6. Una coppia di chiavi non pu essere usata per diversi scopi crittograci (come rma digitale e processo di creazione di chiavi). 7. Il proprietario di una coppia di chiavi dev'essere sicuro che essa sia stata creata con metodo appropriato e sicuro.

8. Il destinatario di una chiave pubblica dev'essere certo dell'identit del proprietario della chiave e del fatto che esso eettivamente possieda tale chiave. Oltre a questi vincoli sulla generazione delle chiavi (che impediscono di risalire dalla chiave pubblica alla chiave privata), il NIST fornisce delle indicazioni per la sicurezza nella cifratura e decifratura dei messaggi, cio per fare in modo che sia impossibile risalire dal messaggio cifrato al messaggio in chiaro. Questo processo di

coppia di chiavi nel sistema RSA consiste in una chiave pubblica (n, e) e in una chiave privata (p, q, d), dove n = p q , e primo con (n) e d tale che e d + (n) d 1 (mod n).
17

2 Una

Capitolo 2. Algoritmo RSA, requisiti di sicurezza e principali attacchi


dicile realizzazione per gli ardui problemi della fattorizzazione del modulo calcolo delle radici modulo

e del

n.

Il NIST propone quindi il rispetto di alcune norme per evitare la rottura dell'algoritmo RSA, che sono le seguenti:

dev'essere prodotto di esattamente due primi distinti;

l'esponente pubblico nente privato

e dev'essere scelto prima di generare i primi p e q

e l'espo-

e deve essere un numero primo tale che

65.537 e 2256 ;
i primi

devono soddisfare le seguenti propriet:

1. devono essere generati indipendentemente e casualmente per diverse coppie di chiavi; 2.

(n),
esso;

dove

n = p q,

dev'essere maggiore di

e relativamente primo con

3.

devono essere scelti casualmente tra i primi che soddisfano

2(2(nbit/2)1 ) p, q (2nbit/2 1) n
(solitamente

dove

nbit

corrisponde alla lunghezza in bit di

1024

che

corrisponde a 4.

309

cifre decimali);

p q > 2(nbit/2)100 ; d, che dev'essere scelto dopo aver determinato e e dopo aver peq

l'esponente privato generato i primi

1. deve essere un intero positivo tale che

2nbit/2 < d (n);


2.

ed 1 (mod (n)),

quindi

d e1 (mod (n)).
tende a basare la sicurezza di RSA sulla dicolt della fattorizzazione di n, essendo una questione molto pi discussa rispetto a quella del calcolo delle radici modulo n.
18

3 Si

2.4. Attacchi elementari dovuti a errata scelta del modulo


Se

d 2nbit/2 ,

si devono rideterminare

p, q

ed

e (e

dev'essere scelto per

primo, prima di generare i nuovi

q ).

I principali attacchi ad RSA si basano sul mancato rispetto di almeno una di queste norme.

2.4

Attacchi elementari dovuti a errata scelta del modulo

RSA stato analizzato n dalla sua creazione per la sua vulnerabilit ad attacchi di vario tipo; nel corso delle ricerche si sono formulati degli algoritmi di rottura di RSA molto eleganti, ma nessuno di essi si rivelato realmente minatorio per la sicurezza del sistema. Questo perch il pericolo deriva da un uso errato dell'algoritmo, in particolare da scelte infelici di alcuni parametri. Un primo esempio di attacco al sistema RSA con chiave pubblica sfrutta la fattorizzazione di e

(n, e)

quello che

q,

quindi facile ricavare

n. Conoscere la fattorizzazione di n signica conoscere p (n), da cui si ottiene l'esponente privato di decifrazione

d
di

essendo

d e1 (mod n).

Il modo pi intuitivo per decifrare il messaggio consiste nel calcolare, per ogni valore

Zn ,

il valore crittato e ricercare quali parametri si trovano nel messaggio cifrato,

ottenendo cos il messaggio in chiaro. Tuttavia questo procedimento risulta troppo lungo, richiedendo un algoritmo di tempo esponenziale.

Un attacco interessante invece quello di Fermat, che consiste nella facile fattorizzazione di

se

(p q ) < n1/2

fattorizzabile individuando due

n 1 (mod 4). interi positivi x, y tali


e

Con queste premesse, che

sar

4n = x2 y 2 .
Fatto ci,

si ricaveranno ponendo

1 p = 2 (x + y )

saranno interi maggiori di

che moltiplicati tra

q = 1 (x y ); 2 loro danno n.

eettivamente

2.5

Attacchi con esponente pubblico piccolo

Per ridurre il tempo di cifratura o di verica della rma digitale, si pu essere tentati di utilizzare un esponente pubblico lo valore di

piccolo.

Si noti che il pi picco-

e possibile 3, ma in generale si raccomanda di assumere al minimo e = 2 + 1 = 65.537, per evitare di incorrere in alcuni tipi di attacco. Se si prende e = 216 + 1, servono 17 moltiplicazioni per vericare la rma digitale; se invece si usa un e casuale, comunque minore di (n), ne servono circa 1000. I valori di e vengono
16
19

Capitolo 2. Algoritmo RSA, requisiti di sicurezza e principali attacchi


solitamente scelti tra i primi di Fermat, cio primi del tipo rendono pi veloce l'elevamento a potenza modulo Quasi tutti gli attacchi che sfruttano il fatto che

22x + 1

per il fatto che

n e sono coprimi con p 1 e q 1. l'esponente pubblico e piccolo si

basano sul teorema di Coppersmith (vedi [Bon99]).

Teorema
grado s; possibile

n un intero e f Z[x] un polinomio monico di 1 si consideri ssato X = n s per qualche 0. Allora, dati (n, f ), trovare tutti gli interi x0 tali che
5 (di Coppersmith) Sia

|x0 | < X

f (x0 ) 0 (mod n). f

Il teorema fornisce a Eva un eciente algoritmo per ricavare tutte le radici di modulo

minori di un ssato

X = n

1 s.

Al diminuire di

X,

si abbassa il tempo di

implementazione dell'algoritmo.

Un altro teorema ([BDF98], pag. 4, teorema 2.1), sempre dovuto a Coppersmith, che generalizza il precedente e su cui si basano gli attacchi ad RSA con esponente pubblico

piccolo, il seguente .

f (x, y ) una funzione polinomiale, in due variabili sugli interi, di grado massimo rispetto ad ogni variabile e si assumano i coecienti di f relativamente primi fra loro. Siano X, Y limitazioni sulle soluzioni desiderate x0 , y0 ; deniamo (x, y ) := f (xX, yY ) e poniamo D come valore assoluto del massimo coeciente di f . Se XY < D 32 , allora si possono determinare in tempo polinomiale tutte le coppie f di interi (x0 , y0 ) con
Sia

Teorema 6.

f (x0 , y0 ) = 0, |x0 | < X

|y0 | < Y.

Il seguente corollario mostra come si pu applicare il teorema di Coppersmith per attaccare RSA.

Corollario 1.

Sia

n = pq

modulo di un sistema RSA a nbit e siano dati

p0 := p (mod r).

Allora possibile fattorizzare

in un tempo polinomiale

r 24, di n.

2.5.1 Attacco di Hstad sulla trasmissione


Alcuni attacchi che utilizzano il teorema di Coppersmith hanno lo scopo di recuperare il messaggio in chiaro conoscendo il messaggio cifrato e le relazioni tra i messaggi da cifrare (purch il messaggio sia cifrato utilizzando lo stesso esponente pubblico).

20

2.5. Attacchi con esponente pubblico piccolo


L'attacco di Hstad ad RSA ([Hs88]) rientra in questa categoria.

Si supponga che Bob voglia inviare un messaggio quali possiede una propria chiave pubblica cifra quindi il messaggio

a pi persone, ognuna delle

(ni , ei )

(sia

M < ni

per ogni

i).

Egli

usando ognuna delle chiavi pubbliche associate ai vari Eva intercetta tutti questi messaggi, che sa

destinatari e invia loro il messaggio. essere in qualche relazione tra loro. Assumiamo

ei = 3

per ogni i; allora si pu dimostrare che Eva potr conoscere

se

i destinatari sono 3 o pi di 3. Infatti, i messaggi da decifrare sono:

C1 M 3 (mod n1 ) C2 M 3 (mod n2 ) C3 M 3 (mod n3 ).


Sia inoltre fattorizzabili. Applicando il teorema cinese dei resti (3) a tale che

(ni , nj ) = 1

per ogni

i = j,

altrimenti gli

ni

sarebbero facilmente

C1 , C2 , C3 possiamo ottenere C Zn1 n2 n3

C M 3 (mod n1 n2 n3 ).
Si noti che, essendo pu ottenere

M < ni , M 3 < n1 n2 n3 , quindi C = M 3 M calcolando le radici cubiche reali di C . e,

sugli interi; Eva quindi

In generale, se tutti gli esponenti pubblici valgono

Eva pu ottenere il messag-

gio in chiaro se il numero di destinatari maggiore o uguale ad l'attacco di Hstad applicabile per valori di

e.

Naturalmente,

opportunamente piccoli.

Hstad descrive anche un attacco molto pi potente, basato sull'ipotesi che i messaggi siano legati tra loro da una relazione polinomiale (come ad esempio

Mi =

i2 + M ); in tal caso, Bob ottiene per ogni destinatario un polinomio pubblico sso fi ZNi . Il messaggio segreto sar quindi il cifrato dei vari fi (M ), quindi Eva intere cetta i Ci (fi (M )) i (mod ni ) per ogni i. Si dimostra che Eva potr ottenere M se
il numero di destinatari del messaggio almeno uguale al massimo prodotto dell'esponente pubblico per il grado della funzione che lega tra di loro i vari messaggi. In particolare, se Bob invia messaggi legati tra loro da una funzione lineare a

k destinatari, con esponenti pubblici uguali e, Eva pu risalire al messaggio segreto solo se k > e.
Si pu concludere quindi che per mantenere una certa sicurezza del sistema RSA

21

Capitolo 2. Algoritmo RSA, requisiti di sicurezza e principali attacchi


bisogna utilizzare esponenti di cifratura opportunamente elevati e continuamente diversi tra loro (cos come i moduli polinomiali non stabili.

ni )

oppure trasformare i messaggi tramite relazioni

2.5.2 Attacco di Franklin-Reiter sui messaggi correlati


Franklin e Reiter danno il nome ad un attacco che si basa sull'uso di uno stesso modulo, di un esponente pubblico piccolo e di una funzione polinomiale che lega tra loro i messaggi da inviare (si veda [CFPR96]). Con queste premesse possibile recuperare il messaggio originale da quelli cifrati conoscendo la relazione che li lega, purch siano creati usando la stessa chiave pubblica

(n, e)

(con e esponente pubbli-

co piccolo). Tale idea riassunta nel seguente lemma ([Bon99], pagina 209, Lemma 7).

Lemma 2.5.1. Sia e un esponente pubblico piccolo e (n, e) la chiave pubblica per RSA.
Siano M1 , M2 Zn , M1 = M2 messaggi da cifrare tali che M1 = f (M2 ) (mod n), con f Zn [x] funzione polinomiale lineare f = ax + b (b = 0) 4 ; siano C1 , C2 i messaggi M1 , M2 cifrati. Allora, dati (n, e, C1 , C2 , f ), Eva pu risalire al messaggio in chiaro.
L'attacco di Franklin-Reiter costituisce la base per una classe pi ampia di attacchi ad RSA, sempre nelle ipotesi di modulo costante e esponente pubblico piccolo. Per evitare questi tipi di attacchi, l'unica soluzione scegliere esponente pubblico abbastanza grande, modicare

ad ogni cifratura ed eventualmente utilizzare relazioni

polinomiali non costanti per i vari messaggi.

2.5.3 Attacco di Coppersmith


Coppersmith raorza l'attacco di Franklin-Reiter (si veda [CFPR96]), riettendo su come si possa facilmente camuare un messaggio. Un modo molto semplice per rendere un messaggio pi dicile da decifrare aggiungere in coda al messaggio originale alcuni bit casuali. Coppersmith ha vericato per che tale metodo pu portare a dei pericoli per la sicurezza del sistema; infatti, se per caso Bob invia ad Alice pi volte lo stesso messaggio (che viene intercettato da Eve), Eve ha a disposizione pi messaggi cifrati che corrispondono allo stesso messaggio originale e pu, pur non conoscendo i bit nali, leggere il messaggio in chiaro (si veda [Bon99]).

grado .

4 Questo

attacco si pu estendere anche al caso in cui f una funzione polinomiale di un certo

22

2.6. Attacchi all'esposizione parziale della chiave

Teorema 7.

(n, e) la chiave pubblica del sistema RSA, dove n lungo nbit; sia inoltre m = M Z n un messaggio lungo al massimo n m bit. Sia dato m m l'algoritmo di cifratura seguente: M1 = 2 M + r1 , M2 = 2 M + r2 , con r1 = r2 m e 0 r1 , r2 < 2 . Se Eva conosce la chiave pubblica (n, e) e la cifratura di M1 , M2 , cio C1 , C2 , pu ottenere facilmente il messaggio M pur non conoscendo r1 , r2 .
Sia

n . Sia e2

2.6

Attacchi all'esposizione parziale della chiave

Gli attacchi a esposizione parziale ([Bon99]) si basano sulla possibilit di risalire all'esponente di decifratura

conoscendone soltanto una parte.

Questo sistema

impiegato ad esempio negli attacchi di temporizzazione, che rompono sistemi RSA studiando il tempo di esecuzione delle operazioni crittograche.

Sia

n =pq

il modulo del sistema RSA, composto da nbit; sia soddisfatta inoltre la

seguente:

4 <

n < q < p < 2n; 2

siano

e, d

esponenti di cifratura/decifratura, composti di nbit e tali che

ed 1 (mod (n))
con

1 < e, d (n).

Siano inne

le cifre signicative dell'esponente privato

l'unico intero tale che

ed k(n) = ed k ((n p q ) + 1) = 1.
Scelto un qualsiasi esponente pubblico, conoscendo una parte di all'intero esponente privato.

si riesce a risalire

2.6.1 Esposizione parziale della chiave con esponenti piccoli


L'attacco con esposizione parziale della chiave con esponenti piccoli si basa sul teorema seguente ([BDF98]).

Teorema 8.

n = p q un modulo di nbit tale che n 3 (mod 4) 5 e siano n 1 < e, d (n) tali che ed 1 (mod (n)) ed e < 2 4 3 . Allora esiste un algoritmo che restituisce, in un tempo polinomiale, l'intera chiave privata d conoscendo (n, e) e
Sia

5 Si

noti che con questa condizione n non si pu scrivere come somma di due quadrati.
23

Capitolo 2. Algoritmo RSA, requisiti di sicurezza e principali attacchi


n bit delle cifre di 4
in un tempo

d; oppure, lineare e log2 e.

equivalentemente, esiste un algoritmo che fattorizza

2.6.2 Esposizione parziale della chiave con esponenti medi


Gli attacchi con esposizione parziale della chiave con esponenti medi (si veda [BDF98]), cio compresi tra

24

22,

sono validi se e solo se la parte nota dell'espo-

nente pubblico una frazione delle cifre signicative; anche in questo caso, il metodo per risolvere questi attacchi consiste nel trovare

che verichi

ed k(n) = ed k ((n p q ) + 1) = 1.
Il modo pi semplice per ricavare un tale

(2.1)

mostrato nel seguente teorema.

n = p q modulo del sistema RSA composto di nbit e siano p e q primi n < q < p < 2 n; siano inoltre e e d esponenti pubblico e distinti tali che 4 < 2 privato tali che ed 1 (mod (n)) con 1 < e, d (n) e t 0, . . . , n un intero 2 t t+1 positivo. Si supponga 2 <, e < 2 e siano note le t cifre pi signicative di d. Allora si pu calcolare k che soddisfa l'equazione (2.1). Inoltre, una volta noto k si pu ricostruire d e quindi fattorizzare n.
Sia

Teorema 9.

Osservazione 3.
n e = 24,

Da questo teorema segue che, se l'esponente pubblico

primo ed

n sono necessari solo i primi bit di d per calcolare l'intero 4 n invece sono necessari gli bit di d pi signicativi. 2

d;

negli altri casi

2.7

Attacchi con esponente privato piccolo

Per ridurre il tempo di decifrazione dei messaggi e di generazione della rma digitale, si pu essere tentati di abbassare considerevolmente l'esponente privato Nel 1989 Wiener mostr per che, preso

d.
,

sotto una certa soglia, cio

d < n

0,25

il crittosistema pu essere rotto (si veda [Wie06]). Egli utilizz un algoritmo basato sulla teoria delle frazioni continue che, in tempo polinomiale, permette di determinare numeratore e denominatore di una frazione quando nota una stima abbastanza buona di essa; relativamente al sistema RSA, vengono utilizzati l'esponente pubblico

e e il modulo n per l'approssimazione di una frazione contenente l'esponente privato d. L'algoritmo che serve poi a fattorizzare il modulo n funziona se e < n, il massimo comune divisore tra p 1 e q 1 piccolo e p e q hanno circa lo stesso numero di bit.
Ci occuperemo nel dettaglio di questo attacco nella Sezione 4.

24

Frazioni continue
Questo capitolo tratta la teoria delle frazioni continue, strumento matematico fondamentale per l'implementazione dell'attacco di Wiener.

Denizione
della forma

8 (Frazione continua)

Una frazione continua semplice un'espressione

x = a0 +
dove

1 a1 +
1 a2 + a
1 3 +...

a0

un intero e tutti gli

an ,

con

n = 1, 2, . . .,

sono numeri interi positivi.

Gli elementi continua.

a0 , a1 , . . . , an , . . .

sono detti termini o quozienti parziali della frazione

Le frazioni continue consentono di rappresentare numeri reali in forma frazionaria mediante approssimazioni successive. Il modo pi semplice per fare ci usare l'espansione decimale; tuttavia esso presenta alcuni problemi, come ad esempio il fatto che molti numeri semplici non hanno una rappresentazione nita con questo sistema.

Scriveremo le frazioni continue utilizzando la notazione seguente (utilizzata in [Wie06]):

a0 = a0 , a0 ; a1 = a0 +
e per induzione

1 1 , a0 ; a1 ; a2 = a0 + a1 a1 +

1 a2

a0 ; a1 ; . . . ; an1 ; an =

a0 ; a1 ; . . . ; an1 +

1 an

= a0 +

1 . a1 ; . . . ; an1 ; an

Denizione 9. Denizione
10

I numeri

a0 , a1 , a2 , . . . , an

vengono detti espansione in frazione con-

tinua di un numero reale.

Sia

un numero razionale e sia

a0 ; a1 ; . . . ; an1 ; an

una frazione

continua nita.

25

Capitolo 3. Frazioni continue


Se

= a0 +

1 a1 +
1 a2 +
a3 + 1 1 1 ... + a n

allora il numero razionale e si pone

si dice valore della frazione continua a0 ; a1 ; . . . ; an1 ; an = a0 ; a1 ; . . . ; an1 ; an 1 .

Teorema

un numero razionale non negativo e sia a0 = Int(), cio la parte intera di . Allora sono determinati univocamente n N e una sequenza ordinata di ai N, con i = 1, 2, . . . , n e an 2, tali che sia il valore della frazione continua di termini ai , i = 0, 1, 2, . . . , n, cio
10 Sia

= a0 ; a1 ; . . . ; an1 ; an .
Viceversa, ogni sequenza di

ai N ,

con

i = 1, 2, . . . , n

an 2,

associata ad uno

ed un solo numero razionale non intero

avente come parte intera un ssato a0 N.

La seguente ci mostra un modo compatto per esprimere una frazione continua (si veda [Old63]).

Proposizione

Una frazione continua pu essere scritta come quoziente di due

polinomi a coecienti interi

pn , qn ,

cio

a0 ; a1 ; . . . ; an1 ; an =
i polinomi

pn ; qn

pn , qn

soddisfano le ricorrenti relazioni

pn+1 = an+1 pn + pn1 , qn+1 = an+1 qn + qn1 .

Dimostrazione.

Per induzione sulla lunghezza della frazione continua abbiamo

a0 ; a1 ; . . . ; an ; an+1 = an + = an + =
1 Questa

a0 ; a1 ; . . . ; an + pn1 + pn2 qn1 + qn2 an+1 pn + pn1 . an+1 qn + qn1

1 an+1

1 an+1 1 an+1

pn + qn +

pn1 an+1 qn1 an+1

notazione non crea ambiguit: ogni frazione continua nita rappresenta un numero razionale, che appunto il suo valore.
26

Dunque, per le relazioni viste sopra, si ha la tesi cio

a0 ; a1 ; . . . ; an ; an+1 =

pn+1 . qn+1

L'algoritmo ricorrente che genera la frazione continua la seguente tabella.

pn si pu rappresentare con qn

a0 0 1 p0 1 0 q0

a1 p1 q1

... ... ...

aj 2 pj 2 q j 2

aj 1 pj 1 qj 1

aj pj qj

... ... ... aj


e delle due colonne

In ogni colonna la coppia

pj , q j

si ottiene in funzione di

precedenti (le prime due colonne vengono aggiunte per ottenere allo stesso modo anche

p0 , p1 , q0 , q1 ).
Siano

Proposizione 5.

pj , qj

due polinomi a coecienti interi che identicano generi-

camente una frazione continua; allora risulta

pj qj +1 pj +1 qj = (1)j +1 ; pj qj +2 pj +2 qj = (1)j +1 an+2 .

Dimostrazione.

Per le propriet dei determinanti:

pj pj +1 pj aj +1 pj + pj 1 pj pj 1 = = qj aj +1 qj + qj 1 qj qj 1 qj qj +1

pj pj +2 pj aj +2 pj +1 + pj pj pj +1 = = aj +2 . qj qj +2 qj aj +2 qj +1 + qj qj qj +1

Osservazione 4. Denizione

Osserviamo che in generale la frazione continua di un numero irra-

zionale ha lunghezza innita. 11 (Ridotta n-esima di una frazione continua) pn frazione continua di un numero irrazionale, che si scrive qn

n-esima della = a1 ; . . . ; an , si chiama


La ridotta

la convergente

n-esima

della frazione continua stessa.

27

Capitolo 3. Frazioni continue

Esempio 3.

Alcune convergenti della frazione

251 sono: 137

1 , 1, 1 , 1, 1, 4 , 1, 1, 4, 1 , 1, 1, 4, 1, 22 , . . . .

Teorema

11

Ogni numero reale non razionale

ammette un'unica rappresentazione

(o sviluppo) come frazione continua innita semplice in particolare, successione di razionale.

= a0 ; a1 ; . . . ; an1 ; an ; . . . ; per ogni scelta dell'intero a0 e degli interi positivi a1 , a2 , . . . , an , . . ., la pn converge e ha per limite un numero reale non numeri razionali qn

Lemma 3.0.1. Se 1 k < qn , allora


|qn1 pn1 | |k h|

per ogni h, dove pn1 , qn1 sono numeratore e denominatore della convergente n 1-esima nello sviluppo in frazione continua di .
Il seguente teorema ci dice che, in un certo senso, l'approssimazione con frazioni continue la migliore possibile per un numero reale (si veda [Dav94]).

Teorema
,
con

12

Le convergenti

pn di una frazione continua relative a un numero reale qn

n 1,

sono le migliori approssimazioni razionali possibili; cio, se vale la

disuguaglianza


per ogni numero razionale

pn h < k qn
allora

h con k

k > 0,
h k

k > qn .

Dimostrazione.

Per assurdo, sia

pn una frazione che verica qn


con

h pn < k qn k
e

h, k

coprimi e

tenendo conto

0 < k < qn . dell'ipotesi k < qn |k h| <

Allora, moltiplicando entrambi i membri per abbiamo

k |qn pn | < |qn pn | . qn

Ma questo in contraddizione con il lemma (3.0.1).

altri termini, la migliore approssimazione razionale di un numero razionale che ha la caratteristica di essere pi vicino a di qualsiasi altra approssimazione frazionaria con denominatore pi piccolo.
28

2 In

Attacco di Wiener a RSA


In questo capitolo si descrive nel dettaglio l'attacco di Wiener al sistema RSA. Dopo averne illustrato con un esempio numerico il funzionamento, si accenna brevemente a come sia possibile contrastare tale attacco e a come si sia recentemente sviluppata la ricerca in questo settore.

4.1

Attacco di Wiener

L'attacco di Wiener ([Wie06]) fa parte della categoria di attacchi ad RSA basati sulla scelta di un esponente privato piccolo; la tentazione ad abbassare gli esponenti forte perch in questo modo si accelerano i processi di cifratura e di decifratura. Tuttavia, ci sono alcuni pericoli che devono essere evitati.

Wiener mostr, gi nel 1990, che, scegliendo

d < n1/4

(uscendo cio dai limiti det-

tati dal NIST), l'algoritmo RSA pu essere rotto. Wiener diede inoltre delle soluzioni per evitare l'attacco da lui descritto; una di queste scegliere l'esponente pubblico sucientemente grande, in particolare

e > n

3/2

Come si visto nella Sezione 3, le frazioni continue possono essere usate per calcolare numeratore e denominatore di una frazione quando una buona stima di tale frazione nota. Sia

un numero razionale e

q0 , q1 , . . . , qm

la sua espansione in frazione continua.

Allora essa si ottiene sottraendo la parte intera di e sottraendo ancora la parte intera, nch il

f , invertendo ripetutamente il resto resto non 0; cio:

q0 = f , r0 = f q0 qi =
per

1 ri1

, ri =

1 ri1

qi

(4.1)

i = 1, 2, . . . , m.
29

Capitolo 4. Attacco di Wiener a RSA

Osservazione 5.

Per ogni

Per ogni

vale

qm 2;

infatti, se

qm = 1

allora

rm1 = 1,

fatto impossibile.

x > 0

si ha se se

q0 , q1 , . . . , qm < q0 , q1 , . . . , qm1 , qm + x q0 , q1 , . . . , qm > q0 , q1 , . . . , qm1 , qm + x


cio le approssimazioni razionali di un numero

m m

pari dispari

(4.2)

che provengono dall'algoritmo

delle frazioni continue sono alternativamente pi grandi di f e pi piccole di f . 1 (1)j Infatti, q0 , q1 , . . . , qm1 , qm = q0 + m j =0 dj dj +1 dove i di sono i denominatori n delle convergenti ai vari passi dell'algoritmo ( q0 , q1 , . . . , qi = i , con (ni , di ) = di

1).
Se

un numero reale e

nm la convergente dm

m-esima del suo sviluppo in frazione

continua, ricordiamo che valgono le seguenti relazioni (vedi Proposizione 5):

ni di1 ni1 di = (1)i


per Sia

i = 1, 2, . . . , m. ora f un'approssimazione

di

cio tale che

f = f (1 )
per qualche

0;

siano inoltre

qi , ri

qi , ri

i quozienti e i resti rispettivamente di

e di

Se

abbastanza piccolo, i numeratori e i denominatori di

possono essere ricavati

utilizzando il seguente algoritmo, da ripetersi nch non si ricava

f.

1. Si generano i quozienti

qi

dell'espansione di

2. Utilizzando la relazione sui numeratori e i denominatori delle convergenti, si costruisce la frazione

q0 , q1 , . . . , qi1 , qi + 1 q0 , q1 , . . . , qi1 , qi
se

se

pari

dispari.

3. Si controlla se la frazione costruita proprio

f.

Osservazione 6.

La ragione per cui si aggiunge

1,

se i quozienti sono in numero pari,

che la supposizione di

deve essere maggiore di

, poich

f f

; infatti, per la

30

4.1. Attacco di Wiener


(4.2), si ha

q0 , q1 , . . . , qi1 , qi < f = q0 , q1 , . . . , qi1 , qi + ri .


Si noti che deve esistere un test che verichi la correttezza della supposizione di

f.

L'algoritmo avr successo se

q0 , q1 , . . . qm1 , qm 1 < f < q0 , q1 , . . . , qm1 , qm q0 , q1 , . . . qm1 , qm + 1 < f < q0 , q1 , . . . , qm1 , qm


Usando queste relazioni, si pu trovare che

se se

m m

pari dispari.

(4.3)

deve soddisfare la seguente:

1
(si veda [Wie06]).

f f

Proposizione 6.
necessario che

Anch sia garantito il successo dell'algoritmo delle frazioni continue,

<
dove

1
3 n d 2 m m

nm

dm

sono numeratore e denominatore della convergente

m-esima

nello

sviluppo in frazione continua del numero

f.

Dimostrazione.

CASO 1: CASO 2: CASO 3: CASO 4:

Si possono eettuare analisi separate per i casi seguenti:

m = 0; m = 1; m m
pari e

m 2; m 3.

dispari e

CASO 1: m = 0
Usando (4.3), per sostituire

in

f si ha: f

< 1 q0 1 / q0 .
Ci signica che

<

1 , cio, siccome q0

n0 = q 0 1 n0 d0

d0 = 1,

<

la soglia che garantisce il successo dell'algoritmo delle frazioni continue.

CASO 2: m = 1

31

Capitolo 4. Attacco di Wiener a RSA


Usando (4.3), per sostituire

in

f si ha: f

< 1 q0 , q1 + 1 / q0 , q1 .
Ci signica che

<
Si visto che

1 . (q0 q1 + 1)(q1 + 1)
3 q 2 1

qm 2,

quindi in questo caso avremo che

q1 + 1 .

Combinando

questo risultato con quello precedente si ha che

<

1
3 nd 2 1 1

la soglia che garantisce il successo dell'algoritmo delle frazioni continue.

CASO 3: m pari e m 2
f

Usando (4.3), per sostituire

in

f si ha: f
(4.4)

< 1 q0 , q1 , . . . , qm1 , qm 1 / q0 , q1 , . . . , qm .
Per la proposizione (4) otteniamo le equazioni:

q0 , q1 , . . . , qm1 , qm 1 = q0 , q1 , . . . , qm =
che, sostituite in 4.4, danno

(qm 1)nm1 + nm2 (qm 1)dm1 + dm2 qm nm1 + nm2 qm dm1 + dm2

<

nm1 dm2 nm2 dm1 . (qm nm1 + nm2 )(qm dm1 + dm2 )

Usando la Proposizione 5 e la Proposizione 4 si ha

<
Quindi

nm (dm

1 . dm1 )

<

1 nm dm

la soglia che garantisce il successo dell'algoritmo delle frazioni continue.

CASO 4: m dispari e m 3

32

4.1. Attacco di Wiener


Ragionando analogamente al CASO 3:

<
Poich

nm (dm

1 . + dm1 )
3 dm + dm1 2 dm ;
quindi

dm = qm dm1 + dm2

qm 2, <

si ha che

. 3 n d 2 m m

Questa la soglia che mi garantisce il successo dell'algoritmo delle frazioni continue. Considerando complessivamente i quattro casi, la soglia che otteniamo per

<

. 3 n d m m 2

x = max(nm , dm ); si pu mostrare che il numero di quozienti dell'espansione in frazione continua di f O (log x) (vedi [HW79]). Supponendo che i test sulle supposizioni di f diano esiti positivi in tempo polinomiale su log x, l'esecuzione dell'algoritmo delle frazioni continue richiede un tempo polinomiale in log x.
Consideriamo il tempo di esecuzione dell'algoritmo. Sia

L'attacco di Wiener si basa sul seguente teorema ([Wie06]).

Teorema

n = p q modulo di un crittosistema RSA, dove p e q sono numeri primi tali che q < p < 2q . Siano 1 d, e < (n) tali che 1 1 ed 1 (mod (n)). Se d < 3 n 4 , allora possibile calcolarlo, cio possibile rompere
13 (Wiener) Siano il sistema RSA.

Dimostrazione.

Si ricordi che

Quindi, per ogni

(n) = (p q ) = (p) (q ) = (p 1)(q 1). d | (n), risulta ed 1 (mod d); in particolare, si ha ed 1 (mod lcm((p 1)(q 1))).
(4.5)

Esiste perci un intero

tale che

ed = K lcm((p 1)(q 1)) + 1.


33

(4.6)

Capitolo 4. Attacco di Wiener a RSA


Quindi, se

G = ((p 1)(q 1)) ed =

e si ricorda che

lcm((p 1)(q 1)) =

(p 1)(q 1) G

abbiamo che

K (p 1)(q 1) + 1. G
G k . Quindi, (K,G) g

(4.7)

Si deniscano ora la (4.7) si ha

k :=

K e (K,G)

g :=

K e G

(k, g ) = 1

e riscrivendo

ed =
Dividendo per

k (p 1)(q 1) + 1. g

(4.8)

dpq

si ottiene

p+q 1 e k = (1 ) dove = pq dg pq
Si noti che di

g k

(4.9)

e contiene esclusivamente informazioni pubbliche ed una buona stima pq

k . dg

Si osservi che mediante l'algoritmo delle frazioni continue otteniamo sempre frazioni ridotte ai minimi termini; dalla (4.6) abbiamo che

1.

Ricordando che

pu essere

(k, g ) = 1 per denizione, si applicato nch opportunamente piccolo.

(K, d) = 1 e, poich k | K , (k, d) = ottiene che (k, dg ) = 1; l'algoritmo

Usando l'equazione (4.9) e la limitazione per delta trovata alla Proposizione 6, si ottiene che

kdg <

3 (p 2

pq + q)

(4.10)

suciente per calcolare k e dg (nell'equazione (4.10) abbiamo usato il fatto che g (1 k ) un valore irrilevante confrontato con (p + q ); ci non compromette il nostro risultato, perch il valore di

viene semmai ridotto).

Serve ora un metodo che permetta di testare l'accuratezza della supposizione. Per semplicare i calcoli, si assuma

ed > pq ;

riscrivendo la (4.8) si ha

edg = k (p 1)(q 1) + g ;
quindi, si pu vedere che dividendo resto

(4.11)

edg

per

si ottiene quoziente

(p 1)(q 1)

g,

supponendo che

k > g.

(p 1)(q 1) e g . Se la supposizione di (p 1)(q 1) 0, si hanno valori sbagliati per k e dg ; questo caso va escluso. La supposizione di (p 1)(q 1) serve a trovare una supposizione per
Ragionando in questo modo, si giunge a una supposizione di

(p + q ) usando la seguente identit: 2

pq (p 1)(q 1) + 1 (p + q ) = . 2 2

(4.12)

34

4.2. Algoritmo dell'attacco di Wiener passo per passo


(p + q ) non un intero, la supposizione di k e dg non pu essere 2 (p + q ) usata; la supposizione di pu essere usata per ottenere una supposizione di 2 pq 2 ( 2 ) usando l'identit seguente:
Se la supposizione di

p+q 2
Se la supposizione di

pq =

pq 2

(4.13)

q 2 ) (p 2

un quadrato perfetto allora le supposizioni di

dg

sono corrette e in questo caso possibile ricavare era il resto della divisione di edg per p+q pq partendo dalla conoscenza di e . 2 2 che Se

k ).

Ora

d p

dividendo e

dg

per

(si ricordi

possono essere determinati

piccolo e

cifre no a

k < dg , circa 1/4 i bit

da (4.10) si vede che esponenti privati di

aventi numero di

si possono reperire in tempo polinomiale.

Osservazione 7.

Poich il numero di passi nello sviluppo in frazione continua di

e al pi una costante moltiplicata per log n, e poich l'algoritmo della frazione n e , il procedimento che Eva deve compiere continua si ferma quando si ottiene n
per fattorizzare

termina rapidamente!

Generalmente,

di 1024 bit; quindi, per evitare questo attacco,

dev'essere

almeno di 256 bit. delle smart card.

Sfortunatamente, 256 bit sono il limite operativo attuale

4.2

Algoritmo dell'attacco di Wiener passo per passo

Partendo dalle ipotesi iniziali del Teorema 13, cio

q < p < 2q

d <

1 1 n 4 , si 3

vuole scrivere cosa debba fare in pratica Eva per attaccare il sistema RSA utilizzando la teoria fornita da Wiener (si veda [Ren04]). In input si ha:

e, pq. In output si ha: d.

1. Sia

i = 0, 1, 2, . . . , m.

2. Si calcoli

e pq

se

i = 0
(4.14)

qi =

1 ri1

altrimenti.

35

Capitolo 4. Attacco di Wiener a RSA


3. Si calcoli

ri =

e pq q0 ,
1 ri1

se

i = 0
(4.15)

qi ,

altrimenti.

4. Si calcoli

ni di

= q0 , q1 , . . . , qi

q0 , se i = 0 ni = q0 q1 + 1, se i = 1 q n + n , altrimenti.
i i1 i 2

(4.16)

1, se i = 0 qi = q1 , se i = 1 q d i i1 + di2 ,
5. Si trova una supposizione di

(4.17)

altrimenti.

k : dg
se

q0 , q1 , . . . , qi + 1 , q ,q ,...,q , i 0 1
6. Si trova una supposizione di 7. Si trova una supposizione di 8. Se se

pari (4.18)

dispari.

edg = e dg . (p 1)(q 1) = i
edg . k

(p 1)(q 1) = 0,

si incrementa

e si riparte con l'algoritmo.

9. Si trova una supposizione di 10. Si trova una supposizione di 11. Se

g = edg (mod k ).
p+q 2

pq (p 1)(q 1) + 1 . 2

p+q 2

= 0,

si incrementa

e si riparte con l'algoritmo.

12. Si trova una supposizione di 13. Se

q 2 q 2 (p ) = (p+ ) pq . 2 2

q 2 ) non un quadrato perfetto, si incrementa i e si riparte con l'algoritmo. (p 2

14. Si calcola

d =

dg . g
36

4.3. Esempio numerico di attacco di Wiener


Si pu inoltre calcolare il valore di

sfruttando le seguenti relazioni:

p =

pq p+q + 2 2 p+q pq q = 2 2

(4.19)

4.3

Esempio numerico di attacco di Wiener

La seguente tabella illustra un esempio concreto di attacco di Wiener ad RSA. Siano:

n = p q = 8927 e e = 2621.
L'espansione in frazione continua sar eseguita su

e n

2621 . 8927

QUANTITA'

i=0

i=1

i=2

qi

ri

2621 8927

1064 2621

493 1064

ni di

= q0 , q1 , . . . , qi

0 1

1 3

2 7

supposizione per

k dG

1 1

1 3

3 10

Tabella 4.1: continua nella prossima pagina

37

Capitolo 4. Attacco di Wiener a RSA


Tabella 4.1: continua dalla pagina precedente

QUANTITA'

i=0

i=1

i=2

supposizione per

edG

2621

7863

26210

supposizione per

(n)

2621

7863

8736

supposizione per

supposizione per

p+q 2

3153.5

532.5

96

supposizione per

pq 2

289 = 172

d
Tabella 4.1: Esempio numerico di attacco di Wiener

38

4.4. Come contrastare l'attacco di Wiener


4.4 Come contrastare l'attacco di Wiener

Come si anticipato, Wiener stesso sugger due metodi per non incorrere nel suo attacco ([Wie06]).

4.4.1 Scelta di e grande


In questo primo caso, bisogna assicurarsi che

e > n3/2 ;

in tal caso, nella dimo-

strazione del Teorema di Wiener (13) non si pu pi essere sicuri che quindi non si riesce a concludere l'attacco. Si consideri l'equazione e si divida tutto per

k sia piccolo e ed = k(n) + 1

dn;

si ottiene

e k(n) + 1 k (n p q + 1 k k (p + q 1) 1 = = = 1 n dn dn d kn

<

k ; d

(4.20) pm e k pertanto, la convergente = d della frazione continua di n deve avere indice m qm e k dall'alto e ci vero solo per le convergenti con indice dispari). dispari ( approssima d n Si osserva pertanto che

e k < . n d Per ottenere e cos grande, si pu scegliere e < (n), come richiesto dall'algoritmo RSA, e porre come chiave pubblica e = e + t(n), con t scelto in modo tale che e > n3/2 . Si noti per che un valore cos alto di e fa crescere notevolmente il tempo n1/2 <
di cifratura.

4.4.2 Utilizzo del teorema cinese dei resti


Questo metodo consiste nell'utilizzare il Teorema cinese dei resti (3) per velocizzare la decifrazione senza scegliere

troppo piccolo.

Supponiamo di utilizzare

nell'algoritmo RSA un esponente privato

tale che

dp := d (mod (p 1)), dq := d (mod (q 1))


siano piccoli (si possono intendere ad esempio di 128 bit ciascuno). Allora si pu compiere una veloce decodica di un messaggio

calcolando dapprima

Mp C dp (mod p), Mq C dq (mod q )


39

Capitolo 4. Attacco di Wiener a RSA


e usando il teorema cinese dei resti per ottenere l'unico valore

C (mod n).
sono piccoli,

Il vantaggio

pu essere

M i questo metodo consiste nel fatto che, anche se dp e dq sucientemente grande (ad esempio dell'ordine di (n)). M
che verichi

L'utilizzo del Teorema cinese dei resti per la codica o la decodica richiede per che non ci siano errori di calcolo, altrimenti RSA diventa vulnerabile; inoltre, possono essere troppo piccoli, altrimenti sar possibile fattorizzare

dp

dq

non

n.

4.5

Miglioramenti dell'attacco di Wiener

Sono stati dati, da Boneh e Durfee nel 2000, dei miglioramenti al limite dettato per

d da Wiener; tali miglioramenti si basano sul teorema dovuto a Coppersmith su piccole


radici di polinomi a variabile unica. L'attacco di Boneh-Durfee consiste in un metodo euristico con polinomi a due variabili; per l'implementazione dell'attacco coinvolta la teoria sui reticoli, in particolare richiesto l'uso dell'algoritmo di riduzione delle basi dei reticoli. Sulla base di tali teorie matematiche, Boneh e Durfee dimostrarono che il sistema RSA insicuro per
1/2

d < n12

< n0,292

([BD06]).

Recentemente Hinek, Low e Teske hanno osservato che la dimostrazione di Boneh e Durfee non totalmente corretta (si veda [HLT03]); si suppone di poter ottenere

d < n1/2 , Dn
1/4

ma ad oggi questo un problema aperto. Al momento il miglior risultato

noto si deve a Verheul-van Tilborg e a Dujella ([Duj04]); il limite raggiunto , dove

d <

un opportuno parametro.

Quindi non viene migliorata la qualit

dell'esponente, ma

pu essere scelto maggiore rispetto al Teorema di Wiener (13).

40

Bibliograa
[BCRS09] E. Barker, L. Chen, A. Regenscheid, and M. Smid,

Special publication 800-56b: Recommendation for pair-wise key establishment schemes using integer factorization cryptography. Cryptanalysis of rsa with private key d less than
0.292

[BD06]

D. Boneh and G. Durfee,

n
[BDF98]

, IEEE Trans. Inf. Theor.

46 (2006), no. 4, 13391349.

D. Boneh, G. Durfee, and Y. Frankel,

fraction of the private key bits, Proceedings of the International Conference


Advances in Cryptology, ASIACRYPT '98, 1998, pp. 2534. [Bon99] D. Boneh,

An attack on rsa given a small

on the Theory and Applications of Cryptology and Information Security:

Twenty years of attacks on the rsa cryptosystem,

OF THE AMS

46 (1999), 203213.

NOTICES

[CFPR96] D. Coppersmith, M. Franklin, J. Patarin, and M. Reiter,

RSA with related messages,

Low-exponent

Proceedings of the 15th annual internatio-

nal conference on Theory and application of cryptographic techniques, EUROCRYPT'96, 1996, pp. 19. [Dav94] H. Davenport,

numeri, Zanichelli, 1994.


[Duj04] A. Dujella,

Aritmetica superiore: una introduzione alla teoria dei

Continued fractions and rsa with small secret exponent, arXiv Solving simultaneous modular equations of low degree, SIAM J. On some attacks on multi-prime

preprint cs/0402052 (2004). [Hs88] J. Hstad, Comput. [HLT03]

17 (1988), no. 2, 336341.

M. J. Hinek, M. K. Low, and E. Teske,

rsa, Selected areas in Cryptography, Springer, 2003, pp. 385404.


[HW79] G.G.H. Hardy and E.M. Wright,

An introduction to the theory of numbers,

Oxford science publications, Oxford at the Clarendon Press, 1979.

41

Bibliograa

[Jac89]

N. Jacobson, 1989.

Basic Algebra II,

W. H. Freeman and Company, New York,

[Old63]

C. D. Olds,

Continued fractions,

Mathematical Association of America

Random House, New York, 1963. [Ren04]

A survey of attacks on the rsa cryptosystem, with implementations in java.


E. L. Render,

[RSA78]

signatures and public-key cryptosystems, Communications of the ACM 21


(1978), no. 2, 120126. W. Stallings,

R. L Rivest, A. Shamir, and L. Adleman,

A method for obtaining digital

[Sta07]

Crittograa e sicurezza delle reti,

Collana di istruzione

scientica: Serie di telecomunicazioni, McGraw-Hill Companies, 2007. [Wie06] M. J. Wiener, Inf. Theor.

36 (2006), no. 3, 553558.

Cryptanalysis of short rsa secret exponents,

IEEE Trans.

42

Potrebbero piacerti anche