Click here to load reader

Metodi per la fattorizzazione di numeri interi - dsi.unive.it focardi/corso-security/progetti0809/slides-berga... · PDF fileNella teoria dei numeri, per fattorizzazione si intende

  • View
    215

  • Download
    1

Embed Size (px)

Text of Metodi per la fattorizzazione di numeri interi - dsi.unive.it...

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Metodi per la fattorizzazione di numeri interi

Filippo Bergamasco

Dipartimento di Informatica, Universita CaFoscari di Venezia

28 gennaio 2009

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

1 IntroduzioneProblema della fattorizzazioneClassificazioneComplessita degli algoritmi

2 Algoritmi deterministiciTrial-DivisionFermat factorization

3 Algoritmi probabilisticiPollard rhoPollard p-1Elliptic Curve Method

4 Bibliografia

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Problema della fattorizzazioneClassificazioneComplessita degli algoritmi

Fattorizzazione

Nella teoria dei numeri, per fattorizzazione si intende lascomposizione di un numero intero in un insieme divisori nonbanali che, moltiplicati fra loro, diano il numero di partenza.

In particolare scomporre un numero n N in fattori primisignifica trovare quellinsieme di numeri primi p1, p2, ...pk tali che

ki=1

pi = n

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Problema della fattorizzazioneClassificazioneComplessita degli algoritmi

Fattorizzazione

La scomposizione esiste sempre ed eunica (a meno di ri-ordinare ifattori).

Teorema fondamentale dellaritmetica

Ogni numero naturale diverso da 1 o e un numero primo o si puoesprimere come prodotto di numeri primi. Tale rappresentazione eunica se si prescinde dallordine in cui compaiono i fattori.

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Problema della fattorizzazioneClassificazioneComplessita degli algoritmi

Semplificazione

Nel nostro caso siamo interessati a trovare, dato n N, un suodivisore non banale (non necessariamente primo).

Problema

Dato n N trovare a N tale che:a | N1 < a < n

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Problema della fattorizzazioneClassificazioneComplessita degli algoritmi

Semplificazione

Con un semplice algoritmo ricorsivo e possibile, se necessario,procedere alla scomposizione completa in fattori primi del numeron.

Algorithm 1 primeFactorization(n)

if isprime(n) thenreturn n

elsea getFactor(n)b nareturn primeFactorization(a), primeFactorization(b)

end if

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Problema della fattorizzazioneClassificazioneComplessita degli algoritmi

Fattorizzare e un problema complesso

Trovare un divisore non banale di un numero naturale e unproblema per cui non econosciuto un algoritmo risolutivo concomplessita polinomiale.

Non e stato dimostrato che questo algoritmo esista.

Non e stato nemmeno dimostrato che non possa esistere!

E un problema ancora aperto della teoria dei numeri.

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Problema della fattorizzazioneClassificazioneComplessita degli algoritmi

Perche fattorizzare

Molte applicazioni moderne (specialmente quelle legate allacrittografia) si basano sul presupposto che non esista soluzionepolinomiale.

RSA e relative applicazioni:

SSLFirma digitaleetc.

Generatori di numeri pseudo-casuali

Blum Blum Shub

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Problema della fattorizzazioneClassificazioneComplessita degli algoritmi

Perche fattorizzare

Se lalgoritmo esistesse renderebbe possibile la risoluzione di altriproblemi considerati ora complessi

Calcolo rapido di funzioni moltiplicative

Compressione di un insieme di numeri primi

Es: Arecibo Message

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Problema della fattorizzazioneClassificazioneComplessita degli algoritmi

Perche fattorizzare

RSA factoring challenge

RSA-204825195908475657893494027183240048398571429282126204032027777137836043662020

70759555626401852588078440691829064124951508218929855914917618450280848912

00728449926873928072877767359714183472702618963750149718246911650776133798

59095700097330459748808428401797429100642458691817195118746121515172654632

28221686998754918242243363725908514186546204357679842338718477444792073993

42365848238242811981638150106748104516603773060562016196762561338441436038

33904414952634432190114657544454178424020924616515723350778707749817125772

46796292638635637328991215483143816789988504044536402352738195137863656439

1212010397122822120720357

Premio: 200000 USD

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Problema della fattorizzazioneClassificazioneComplessita degli algoritmi

Una possibile classificazione

Gli algoritmi esistenti possono essere divisi in due grandi categorie:

Deterministici Forniscono sempre una soluzione corretta. Es:

trial-divisionfermat

Probabilistici Piu veloci, ma non e garantito che producano unoutput in tempo finito. Es:

Pollard p-1Pollard rhoECM (puo anche esser reso deterministico)

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Problema della fattorizzazioneClassificazioneComplessita degli algoritmi

Unaltra possibile classificazione

Special-Purpose La velocita di fattorizzazione dipende dalleproprieta dei suoi fattori. Es:

trial-divisionPollard rhofermat...

General-Purpose La velocita dipende solo dal numero dafattorizzare. Es:

General Number Field SieveDixons algorithm...

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Problema della fattorizzazioneClassificazioneComplessita degli algoritmi

Upper-Bound

Fattorizzare non e poi cosi complesso:

Teorema 1

Sia n N. Siano s, t N divisori non banali di n tali che st = n es t. Allora s

n

In sostanza, provando per forza bruta tutti i possibili divisori di n,la complessita e nellordine di O(

n)

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Problema della fattorizzazioneClassificazioneComplessita degli algoritmi

Il piu veloce algoritmo di fattorizzazione conosciuto

Lalgoritmo piu veloce conosciuto ad oggi e chiamato GeneralNumber Field Sieve , con una complessita nellordine di:

O(e(649

b)13 (logb)

23 ) Dove b e la dimensione (in bit) del numero da

fattorizzare.

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Problema della fattorizzazioneClassificazioneComplessita degli algoritmi

Velocita degli algoritmi conosciuti

1 General Number Field Sieve

2 Quadratic Sieve

3 ECM

4 Pollard rho

5 Pollard p-1

6 ...

7 Fermat

8 Trial-Division

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Trial-DivisionFermat factorization

Algoritmo Trial-division

Lalgoritmo piu semplice per trovare un fattore non banale di n etestare la divisibilita fra n e ciascun numero compreso fra [2...

n]

Algorithm 2 trial-division(n)

for s 2to

n doif s | n then

return send if

end for

Complessita: O(

n)

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

OutlineIntroduzione

Algoritmi deterministiciAlgoritmi probabilistici

Bibliografia

Trial-DivisionFermat factorization

Algoritmo di fattorizzazione di Fermat

Lalgoritmo fu ideato dal matematico francese Pierre de Fermatnel 1600.E basato sul fatto che ciascun numero dispari non primo maggioredi 2 puo essere espresso come differenza di due quadrati:

Teorema

Sia n > 2 N un numero non primo dispari. Allora x , y N taliche n = x2 y2.

Dal teorema deriva immediatamente, trovando x , y unafattorizzazione di n:N = (x + y)(x y)

Filippo Bergamasco Metodi per la fattorizzazione di numeri interi

Outli

Search related