Download - RSA Monica Bianchini [email protected] Dipartimento di Ingegneria dellInformazione Università di Siena.

Transcript
Page 1: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

RSARSA

Monica BianchiniMonica Bianchini

[email protected]@ing.unisi.it

Dipartimento di Ingegneria Dipartimento di Ingegneria dell’Informazionedell’Informazione

Università di SienaUniversità di Siena

Page 2: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Introduzione Introduzione 1 1 • Nella crittografia classica, Alice e Bob scelgono Nella crittografia classica, Alice e Bob scelgono

segretamente una chiave k, che viene utilizzata segretamente una chiave k, che viene utilizzata per costruire una funzione di codifica eper costruire una funzione di codifica ekk ed una ed una funzione di decodifica dfunzione di decodifica dkk (uguale a e (uguale a ekk o o direttamente derivabile da essa): crittosistemi direttamente derivabile da essa): crittosistemi di questo tipo sono detti di questo tipo sono detti a chiave privataa chiave privata, dato , dato che la conoscenza di eche la conoscenza di ekk li rende vulnerabili li rende vulnerabili

• Lo svantaggio principale dei metodi a chiave Lo svantaggio principale dei metodi a chiave privata è che richiedono la comunicazione della privata è che richiedono la comunicazione della chiave fra Alice e Bob, su un canale sicuro, chiave fra Alice e Bob, su un canale sicuro, prima della trasmissione di qualsiasi messaggio prima della trasmissione di qualsiasi messaggio cifrato… potrebbe essere molto difficile da cifrato… potrebbe essere molto difficile da realizzare!realizzare!

• Per esempio, se Alice e Bob vivono lontani e Per esempio, se Alice e Bob vivono lontani e decidono di comunicare via e-mail, non avranno decidono di comunicare via e-mail, non avranno accesso a nessun canale ragionevolmente accesso a nessun canale ragionevolmente sicuro per lo scambio della chiavesicuro per lo scambio della chiave

Page 3: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Introduzione Introduzione 2 2

• I crittosistemi a I crittosistemi a chiave pubblicachiave pubblica rendono il rendono il calcolo di dcalcolo di dkk, a partire da e, a partire da ekk, , computazionalmente irrealizzabile computazionalmente irrealizzabile

eekk può essere resa pubblica può essere resa pubblica• Alice potrà inviare il messaggio cifrato a Bob Alice potrà inviare il messaggio cifrato a Bob

utilizzando eutilizzando ekk, ma solo Bob sarà in grado di , ma solo Bob sarà in grado di decifrarlo, poiché sarà l’unico a conoscere ddecifrarlo, poiché sarà l’unico a conoscere dkk

• L’idea dei crittosistemi a chiave pubblica è L’idea dei crittosistemi a chiave pubblica è dovuta a Diffie e Hellman (1976), mentre la dovuta a Diffie e Hellman (1976), mentre la prima realizzazione pratica si ha l’anno prima realizzazione pratica si ha l’anno successivo, ad opera di Rivest, Shamir e successivo, ad opera di Rivest, Shamir e Adleman, che formularono Adleman, che formularono RSARSA

• Da allora, sono stati formalizzati molti e diversi Da allora, sono stati formalizzati molti e diversi crittosistemi a chiave pubblica, la cui sicurezza crittosistemi a chiave pubblica, la cui sicurezza è affidata alla difficoltà di risoluzione di è affidata alla difficoltà di risoluzione di problemi matematici distintiproblemi matematici distinti

Page 4: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Introduzione Introduzione 3 3• RSARSA: la sicurezza è basata sulla difficoltà di : la sicurezza è basata sulla difficoltà di

fattorizzazione di interi “grandi”fattorizzazione di interi “grandi”• Merkle-Hellman KnapsackMerkle-Hellman Knapsack: la sicurezza del : la sicurezza del

sistema, e di altri correlati, è basata sulla NP-sistema, e di altri correlati, è basata sulla NP-completezza del problema della somma di completezza del problema della somma di sottoinsiemi; tutti i sistemi di questo tipo si sottoinsiemi; tutti i sistemi di questo tipo si sono, tuttavia, rivelati insicuri, tranne il sono, tuttavia, rivelati insicuri, tranne il crittosistema di Chor-Rivestcrittosistema di Chor-Rivest

• McElieceMcEliece: è basato sulla teoria algebrica dei : è basato sulla teoria algebrica dei codici, ed è a tutt’oggi ritenuto sicuro; la codici, ed è a tutt’oggi ritenuto sicuro; la sicurezza è basata sulla difficoltà del sicurezza è basata sulla difficoltà del problema di decodificare un codice lineare problema di decodificare un codice lineare (che è NP completo)(che è NP completo)

• ElGamalElGamal: la sicurezza è basata sulla difficoltà : la sicurezza è basata sulla difficoltà del calcolo del logaritmo discreto in campi del calcolo del logaritmo discreto in campi finitifiniti

• Curve ellitticheCurve ellittiche: sono crittosistemi che : sono crittosistemi che traggono origine da sistemi tipo ElGamal, ma traggono origine da sistemi tipo ElGamal, ma operano sulle curve ellittiche piuttosto che sui operano sulle curve ellittiche piuttosto che sui campi finiti. Sono i sistemi più sicuri, anche campi finiti. Sono i sistemi più sicuri, anche per chiavi piccoleper chiavi piccole

Page 5: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Una osservazione molto importante è che i Una osservazione molto importante è che i sistemi a chiave pubblica non possono sistemi a chiave pubblica non possono garantire la sicurezza incondizionata, poiché garantire la sicurezza incondizionata, poiché una spia, essendo venuta in possesso di un una spia, essendo venuta in possesso di un testo cifrato y, può codificare ogni possibile testo cifrato y, può codificare ogni possibile testo in chiaro x, utilizzando etesto in chiaro x, utilizzando ekk che è pubblica, che è pubblica, fino a trovare l’unico x tale che y=efino a trovare l’unico x tale che y=ekk(x)(x)

Per i sistemi a chiave pubblica, è sensato Per i sistemi a chiave pubblica, è sensato studiare la sicurezza computazionalestudiare la sicurezza computazionale

• A questo scopo, può essere concettualmente A questo scopo, può essere concettualmente utile pensare ad un sistema a chiave pubblica, utile pensare ad un sistema a chiave pubblica, in termini astratti, come ad una funzione in termini astratti, come ad una funzione unidirezionaleunidirezionale

• La funzione pubblica di codifica, eLa funzione pubblica di codifica, ekk, deve , deve essere semplice da calcolare, ma difficile da essere semplice da calcolare, ma difficile da invertire, per tutti tranne che per Bob: una invertire, per tutti tranne che per Bob: una funzione siffatta è una funzione funzione siffatta è una funzione one-wayone-way (unidirezionale)(unidirezionale)

eekk deve essere una funzione iniettiva one-way deve essere una funzione iniettiva one-way

Introduzione Introduzione 4 4

Page 6: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Introduzione Introduzione 5 5• Le funzioni unidirezionali giocano un ruolo Le funzioni unidirezionali giocano un ruolo

fondamentale nella crittografia, sia per la fondamentale nella crittografia, sia per la costruzione di crittosistemi a chiave pubblica, sia in costruzione di crittosistemi a chiave pubblica, sia in altri contestialtri contesti

• Sfortunatamente, anche se vi sono varie classi di Sfortunatamente, anche se vi sono varie classi di funzioni che sono ritenute unidirezionali, non esiste funzioni che sono ritenute unidirezionali, non esiste per nessuna di esse una prova certaper nessuna di esse una prova certa

• Sia Sia nn il prodotto di due numeri primi “grandi”, il prodotto di due numeri primi “grandi”, pp e e qq, e sia , e sia bb un intero positivo. un intero positivo. : Z: ZnnZZnn definita da definita da

(x) = x(x) = xbb (mod (mod nn) ) è ritenuta essere una funzione unidirezionale (e, di è ritenuta essere una funzione unidirezionale (e, di

fatto, è la funzione di codifica in RSA)fatto, è la funzione di codifica in RSA)• Tuttavia, l’essere Tuttavia, l’essere one-wayone-way non è una proprietà non è una proprietà

sufficiente per sufficiente per , poiché Bob deve essere in grado di , poiché Bob deve essere in grado di decifrare i messaggi in maniera efficientedecifrare i messaggi in maniera efficiente

• Bob deve possedere una Bob deve possedere una trapdoortrapdoor una sorta di una sorta di canale preferenziale canale preferenziale che gli permetta di accedere che gli permetta di accedere rapidamente all’informazione codificata, cioè Bob rapidamente all’informazione codificata, cioè Bob può decifrare facilmente il testo codificato perché può decifrare facilmente il testo codificato perché possiede informazione aggiuntiva su kpossiede informazione aggiuntiva su k

eekk deve essere iniettiva, trapdoor, one-way deve essere iniettiva, trapdoor, one-way

Page 7: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Ricordiamo che ZRicordiamo che Znn è un anello, per ogni intero è un anello, per ogni intero positivo positivo nn. Inoltre, ogni . Inoltre, ogni bb ZZn n tale che tale che MCD(MCD(bb,,nn)=1 ammette un inverso in Z)=1 ammette un inverso in Znn, con , con ((nn) ) numero degli interi positivi minori di numero degli interi positivi minori di nn e primi e primi con con nn

• Sia ZSia Znn** l’insieme dei residui modulo l’insieme dei residui modulo nn che sono che sono

primi con primi con nn. Z. Znn** è un gruppo abeliano rispetto è un gruppo abeliano rispetto

alla moltiplicazionealla moltiplicazione

• L’operazione di moltiplicazione modulo L’operazione di moltiplicazione modulo nn è è associativa e commutativa, e 1 è l’elemento associativa e commutativa, e 1 è l’elemento neutroneutro

• Ogni elemento in ZOgni elemento in Znn** ammette inverso ammette inverso

• ZZnn* * è chiuso rispetto all’operazione di è chiuso rispetto all’operazione di

moltiplicazione, poiché se x e y sono primi con moltiplicazione, poiché se x e y sono primi con nn, , tale è anche il loro prodotto xytale è anche il loro prodotto xy

Sappiamo che, Sappiamo che, bb ZZnn* * esiste esiste bb-1-1, ma non , ma non

conosciamo un algoritmo efficiente per conosciamo un algoritmo efficiente per calcolarlo: tale algoritmo è noto come calcolarlo: tale algoritmo è noto come algoritmo algoritmo di Euclide estesodi Euclide esteso

Ancora sulla Teoria dei Numeri Ancora sulla Teoria dei Numeri 1 1

Page 8: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

L’algoritmo di Euclide L’algoritmo di Euclide 1 1• Descriviamo l’algoritmo di Euclide, nella Descriviamo l’algoritmo di Euclide, nella

formulazione di base, utilizzata per calcolare il formulazione di base, utilizzata per calcolare il più grande divisore comune di due interi positivi, più grande divisore comune di due interi positivi, rr00 e r e r11, con r, con r00>> rr11

• L’algoritmo di Euclide consiste nell’esecuzione L’algoritmo di Euclide consiste nell’esecuzione delle seguenti divisionidelle seguenti divisioni

rr00=q=q11rr11++ rr22 0<r 0<r22<r<r11

rr11=q=q22rr22++ rr33 0<r 0<r33<r<r22

rrm-2m-2=q=qm-1m-1rrm-1m-1++ rrmm 0<r 0<rmm<r<rm-1m-1

rrm-1m-1=q=qmmrrmm

da cui si ricava facilmente cheda cui si ricava facilmente che

MCD(rMCD(r00,r,r11)=MCD(r)=MCD(r11,r,r22)=…=MCD(r)=…=MCD(rm-1m-1,r,rmm)=r)=rmm

Pertanto, MCD(rPertanto, MCD(r00,r,r11)=r)=rmm

Page 9: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Poiché l’algoritmo di Euclide calcola il più Poiché l’algoritmo di Euclide calcola il più grande divisore comune, può essere utilizzato grande divisore comune, può essere utilizzato per determinare se un intero positivo per determinare se un intero positivo bb <<nn ha ha un inverso modulo un inverso modulo n, n, partendo con rpartendo con r00==nn e r e r11==bb; ; tuttavia non serve a calcolare effettivamente tuttavia non serve a calcolare effettivamente l’inversol’inverso

• Teorema 1Teorema 1 Per 0Per 0jjm, rm, rjj ttjjrr11 (mod r (mod r00), dove q), dove qjj,r,rjj sono sono definiti dall’algoritmo di Euclide e tdefiniti dall’algoritmo di Euclide e tjj sono sono definiti dalla relazione di ricorrenza definiti dalla relazione di ricorrenza

tt00=0, t=0, t11=1, t=1, tjj=t=tj-2j-2-q-qj-1j-1ttj-1j-1 (mod r (mod r00) se j) se j22• Infatti…Infatti…

L’asserto è banalmente vero per j=0 e j=1. Per L’asserto è banalmente vero per j=0 e j=1. Per induzione, supponiamo che la relazione sia induzione, supponiamo che la relazione sia valida per j=i-1 e j=i-2, con ivalida per j=i-1 e j=i-2, con i2, allora2, allora

ri=rri=ri-2i-2-q-qi-1i-1rri-1 i-1 tti-2i-2rr11-q-qi-1 i-1 tti-1i-1rr1 1 (mod r(mod r00)) (t(ti-2i-2-q-qi-1 i-1 tti-1 i-1 )) rr1 1 (mod r(mod r00) ) t tiirr1 1 (mod r(mod r00))

• Corollario 1Corollario 1Sia MCD(rSia MCD(r00,r,r11)=1. Allora t)=1. Allora tmm=r=r-1-1 (mod r (mod r00))

L’algoritmo di Euclide L’algoritmo di Euclide 2 2

Page 10: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

L’algoritmo di Euclide L’algoritmo di Euclide 3 3• La sequenza di numeri tLa sequenza di numeri t00,t,t11,…,t,…,tmm viene viene

calcolata con l’algoritmo di Euclide, calcolata con l’algoritmo di Euclide, contemporaneamente a qcontemporaneamente a qjj,r,rjj1.1. nn00==nn

2.2. bb00==bb3.3. tt00=0=04.4. t=1t=15.5. q= q= nn00/b/b0 0 6.6. r=nr=n00-q-qbb00

7.7. whilewhile r>0 r>0 dodo8.8. temp=ttemp=t00-q-qtt9.9. ifif temp temp0 0 thenthen temp=temp (mod temp=temp (mod nn))10.10. ifif temp<0 temp<0 thenthen temp= temp=n –n – ((-temp) (mod ((-temp) (mod

nn))))11.11. tt00=t=t12.12. t=tempt=temp13.13. nn00=b=b00

14.14. bb00=r=r15.15. q= q= nn00/b/b0 0 16.16. r=nr=n00-q-qbb00

17.17. ifif b b001 1 then then bb non ammette inverso modulo non ammette inverso modulo nn elseelse bb-1-1=t (mod =t (mod nn))

Page 11: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• NoteNoteo Nell’algoritmo descritto, non viene Nell’algoritmo descritto, non viene

utilizzato nessun vettore per tenere traccia utilizzato nessun vettore per tenere traccia dei successivi qdei successivi qjj,r,rjj e t e tjj, dato che in tutti i , dato che in tutti i calcoli sono coinvolti soltanto gli ultimi due calcoli sono coinvolti soltanto gli ultimi due termini delle diverse successionitermini delle diverse successioni

o Nel passo 10., l’espressione per il calcolo di Nel passo 10., l’espressione per il calcolo di temptemp è stata scritta in modo tale che la è stata scritta in modo tale che la riduzione modulo riduzione modulo nn venga eseguita con venga eseguita con argomento positivo (e fornisca un risultato argomento positivo (e fornisca un risultato positivo)positivo)

• Esempio 1Esempio 1Si vuole calcolare 28Si vuole calcolare 28-1-1 (mod 75). L’algoritmo di (mod 75). L’algoritmo di Euclide esteso svolge i seguenti passiEuclide esteso svolge i seguenti passi

2828-1-1 (mod 75)=67 (mod 75)=67

L’algoritmo di Euclide L’algoritmo di Euclide 4 4

75=228+19 Passo 6. 7328 (mod 75)=19 Passo 12. 28=119+9 Passo 16. 328 (mod 75)=9 Passo 12. 19=29+1 Passo 16. 6728 (mod 75)=1 Passo 12. 9=91 Passo 16.

Page 12: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Il teorema Il teorema Cinese dei RestiCinese dei Resti è un metodo per è un metodo per risolvere certi sistemi di congruenze risolvere certi sistemi di congruenze

• Siano mSiano m11,…,m,…,mrr interi positivi primi fra loro ed interi positivi primi fra loro ed aa11,…,a,…,arr interi; si consideri il sistema di interi; si consideri il sistema di congruenze:congruenze:

xxaa11 (mod m (mod m11))xxaa22 (mod m (mod m22))

xxaarr (mod m (mod mrr))• Il teorema Cinese dei Resti asserisce che il Il teorema Cinese dei Resti asserisce che il

sistema ha un’unica soluzione modulo M= msistema ha un’unica soluzione modulo M= m11

mm22…… mmrr

• Si consideri la funzione Si consideri la funzione : Z: ZMM ZZmm Z Zmm …… Z Zmm

(x)=(x (mod m(x)=(x (mod m11),…,x (mod m),…,x (mod mrr)) )) • Esempio 2Esempio 2

Siano r=2, mSiano r=2, m11=5, m=5, m22=3 =3 M=15, e la funzione M=15, e la funzione assume i valori…assume i valori…

Il teorema Cinese dei Resti Il teorema Cinese dei Resti 1 1

11 22 rr

(0)=(0,0) (1)=(1,1) (2)=(2,2) (3)=(3,0) (4)=(4,1) (5)=(0,2) (6)=(1,0) (7)=(2,1) (8)=(3,2) (9)=(4,0) (10)=(0,1) (11)=(1,2) (12)=(2,0) (13)=(3,1) (14)=(4,2)

Page 13: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Provare il teorema del Cinese dei Resti equivale Provare il teorema del Cinese dei Resti equivale a provare che la funzione a provare che la funzione è una bi-iezione (è il è una bi-iezione (è il caso dell’esempio precedente, in cui è facile caso dell’esempio precedente, in cui è facile calcolare calcolare -1-1))

• Per 1Per 1iir, si definisca Mr, si definisca Mii=M/m=M/mii MCD(M MCD(Mii,m,mii)=1, )=1, ii

• Per 1Per 1iir, si definisca yr, si definisca yii=M=Mi i (mod m(mod mii): l’inverso ): l’inverso esiste perché MCD(Mesiste perché MCD(Mii,m,mii)=1 e può essere )=1 e può essere calcolato con l’algoritmo di Euclidecalcolato con l’algoritmo di Euclide

• Si noti che MSi noti che Miiyyii1 (mod m1 (mod mii), per 1), per 1iirr

• Definiamo Definiamo : Z: Zmm Z Zmm …… Z Zmm Z ZM M comecome

(a(a11,…a,…arr)=)=aaiiMMiiyyi i (mod M)(mod M)

• Mostreremo che Mostreremo che ==-1-1, il che fornisce una , il che fornisce una formula esplicita per la risoluzione del sistema formula esplicita per la risoluzione del sistema di congruenze originaledi congruenze originale

Il teorema Cinese dei Resti Il teorema Cinese dei Resti 2 2

-1-1

2211 rr

i=1i=1

rr

Page 14: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Definiamo X=Definiamo X=(a(a11,…a,…arr) e sia 1) e sia 1jjr r

• Consideriamo il termine aConsideriamo il termine aiiMMiiyyii, ridotto modulo , ridotto modulo mmjj: se i=j, a: se i=j, aiiMMiiyyi i aai i (mod m(mod mjj); se i); se ij, invece, j, invece, aaiiMMiiyyi i 00 (mod m(mod mjj), poiché M), poiché Mii è divisibile per m è divisibile per mii. . Pertanto… Pertanto…

XX aaiiMMiiyyi i (mod m(mod mjj) ) aajj (mod m (mod mjj))

X è una soluzione del sistema di congruenzeX è una soluzione del sistema di congruenze

• Inoltre, la funzione Inoltre, la funzione mappa domini di ugual mappa domini di ugual cardinalità M e poiché si è appena dimostrato cardinalità M e poiché si è appena dimostrato che è suriettiva, deve essere anche iniettiva, che è suriettiva, deve essere anche iniettiva, cioè è una bi-iezione e cioè è una bi-iezione e -1-1==

-1 -1 è una funzione lineare degli argomenti aè una funzione lineare degli argomenti a11,…a,…arr

Il teorema Cinese dei Resti Il teorema Cinese dei Resti 3 3

i=1i=1

rr

Page 15: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Esempio 3Esempio 3

Siano r=3, mSiano r=3, m11=7, m=7, m22=11, m=11, m33=13 =13 M=1001. Di M=1001. Di conseguenza, Mconseguenza, M11=143, M=143, M22=91, M=91, M33=77 e y=77 e y11=5, =5, yy22=4, y=4, y33=12. Pertanto, =12. Pertanto, -1-1: Z: Z77 ZZ1111ZZ1313 Z Z10011001 è è definita dadefinita da

-1 -1 (a(a11,a,a22,a,a33)=715a)=715a11+364a+364a22+924a+924a33 (mod 1001) (mod 1001)

Se xSe x5 (mod 7), x5 (mod 7), x3 (mod 11), x3 (mod 11), x10 (mod 13),10 (mod 13),

x=715x=7155+3645+3643+9243+92410 (mod 1001)10 (mod 1001)

=13907 (mod 1001)=894 (mod 1001) =13907 (mod 1001)=894 (mod 1001)

che può essere provato riducendo 894 modulo che può essere provato riducendo 894 modulo 7,11,137,11,13

• Teorema 2 (Teorema 2 (Teorema Cinese dei RestiTeorema Cinese dei Resti ))

Siano mSiano m11,…,m,…,mrr interi positivi primi fra loro ed a interi positivi primi fra loro ed a11,,…,a…,arr interi. Il sistema delle r conguenze x interi. Il sistema delle r conguenze xaaii (mod m(mod mii), per 1), per 1iir,r, ammetteammette soluzione unica soluzione unica modulo M=mmodulo M=m11 mm22…… mmrr,,

XX aaiiMMiiyyi i (mod M)(mod M)

con Mcon Mii=M/m=M/mii, y, yii=M=Mi i (mod m(mod mii), per 1), per 1iir r

Il teorema Cinese dei Resti Il teorema Cinese dei Resti 4 4

-1-1i=1i=1

rr

Page 16: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Un altro risultato della Teoria dei Gruppi, noto Un altro risultato della Teoria dei Gruppi, noto come Teorema di Lagrange, è rilevante per la come Teorema di Lagrange, è rilevante per la descrizione delle proprietà del crittosistema descrizione delle proprietà del crittosistema RSARSA

• Per un gruppo moltiplicativo finito G, si Per un gruppo moltiplicativo finito G, si definisce definisce ordineordine di un elemento g di un elemento gG il più G il più piccolo intero positivo m, tale che gpiccolo intero positivo m, tale che gmm=1 =1

• Teorema 3 (Teorema 3 (Teorema di LagrangeTeorema di Lagrange ))Sia G un gruppo moltiplicativo di ordine Sia G un gruppo moltiplicativo di ordine nn e sia e sia ggG. Allora, l’ordine di g è un divisore di G. Allora, l’ordine di g è un divisore di nn

• Corollario 2 (Corollario 2 (Teorema di EuleroTeorema di Eulero ))Se bSe bZZnn

**, , allora ballora b((nn))1 (mod 1 (mod nn)) Infatti…Infatti… ZZnn

* * è un gruppoè un gruppo moltiplicativo di ordine moltiplicativo di ordine ((nn ) ) • Corollario 3 (Corollario 3 (Teorema di FermatTeorema di Fermat ))

Sia p un numero primo e bSia p un numero primo e bZZpp. Allora,. Allora, bbppb b (mod p)(mod p)Infatti…Infatti…Se p è primo, Se p è primo, (p)=p-1. Pertanto, per b(p)=p-1. Pertanto, per b0 0 (mod p), il risultato segue dal Corollario 2. Se (mod p), il risultato segue dal Corollario 2. Se bb0 (mod p), il risultato è ancora vero perché 0 (mod p), il risultato è ancora vero perché 00pp 0 (mod p) 0 (mod p)

Altri risultati Altri risultati 1 1

//

Page 17: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Pertanto, se p è primo, Pertanto, se p è primo, ZZpp** è un gruppo di ordine p- è un gruppo di ordine p-

1, ed ogni elemento in Z1, ed ogni elemento in Zpp* * ha ordine che divide p-1. ha ordine che divide p-1.

Comunque, se p è primo, il gruppoComunque, se p è primo, il gruppo ZZpp* * è è ciclicociclico: :

esiste un elemento esiste un elemento ZZpp** che ha ordine uguale a p-1 che ha ordine uguale a p-1

• TeoremaTeorema 44

Se p è primo, Se p è primo, ZZpp* * è un gruppo ciclicoè un gruppo ciclico

• Un elemento Un elemento di ordine p-1 è un elemento di ordine p-1 è un elemento primitivoprimitivo modulo pmodulo p

• Un elemento Un elemento è primitivo se e solo se { è primitivo se e solo se {ii: 0: 0iip-p-2}=Z2}=Zpp

* *

• Supponiamo che p sia primo ed Supponiamo che p sia primo ed sia un elemento sia un elemento primitivo modulo p. Ogni elemento primitivo modulo p. Ogni elemento ZZpp

** può essere può essere riscritto come riscritto come ==ii, con 0, con 0iip-2, in maniera p-2, in maniera univoca; l’ordine di univoca; l’ordine di ==i i è p-1/MCD(p-1,i) è p-1/MCD(p-1,i) è esso è esso stesso un elemento primitivo se e solo se MCD(p-stesso un elemento primitivo se e solo se MCD(p-1,i)=1 1,i)=1 il numero degli elementi primitivi modulo p il numero degli elementi primitivi modulo p è è (p-1)(p-1)

Altri risultati Altri risultati 2 2

Page 18: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Esempio 4Esempio 4Sia p=13. Calcolando le successive potenze del Sia p=13. Calcolando le successive potenze del 2, si può verificare che 2 è un elemento 2, si può verificare che 2 è un elemento primitivo modulo 13:primitivo modulo 13:

2200 mod 13=1 mod 13=12211 mod 13=2 mod 13=22222 mod 13=4 mod 13=42233 mod 13=8 mod 13=82244 mod 13=3 mod 13=32255 mod 13=6 mod 13=6

2266 mod 13=12 mod 13=122277 mod 13=11 mod 13=112288 mod 13=9 mod 13=92299 mod 13=5 mod 13=5

221010 mod 13=10 mod 13=10221111 mod 13=7 mod 13=7

L’elemento 2L’elemento 2ii è primitivo se e solo se è primitivo se e solo se MCD(i,12)=1, cioè sse i=1,5,7,11 MCD(i,12)=1, cioè sse i=1,5,7,11 gli elementi gli elementi primitivi modulo 13 sono 2,6,7,11primitivi modulo 13 sono 2,6,7,11

Altri risultati Altri risultati 3 3

Page 19: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• RSA è realizzato in ZRSA è realizzato in Znn, dove , dove nn è il prodotto di due è il prodotto di due numeri primi distinti numeri primi distinti pp e e qq ((n n )=()=(pp-1)(-1)(qq-1) -1)

• Le operazioni di codifica e decodifica sono Le operazioni di codifica e decodifica sono inverse. Infatti, poiché inverse. Infatti, poiché abab1 (mod 1 (mod ((nn)), )), abab=t=t((nn))+1, per qualche intero t+1, per qualche intero t1. Sia x1. Sia xZZnn

**, allora…, allora… (x(xbb))a a x xtt((nn)+1)+1 (mod (mod nn) ) (x(x((nn))))t t x (mod x (mod nn))

11t t x (mod x (mod nn) ) x (mod x (mod nn))

Il crittosistema RSA Il crittosistema RSA 1 1

Sia Sia nn ==pqpq, con , con pp e e qq numeri primi. Siano numeri primi. Siano P P = = C C = Z= Znn

Sia Sia KK ={(={(nn,,p,qp,q,,aa,,bb): ): nn ==pq, p,qpq, p,q primi, primi, abab1 1 (mod (mod ((nn ))}))}

Per k=Per k=((nn,,p,qp,q,,aa,,bb): ):

eekk(x) = x(x) = xbb (mod (mod nn))

ddkk(y) = y(y) = yaa (mod (mod nn))

x,y x,y Z Znn

I valori di I valori di nn e e bb sono pubblici, sono pubblici, p,qp,q ed ed aa segreti segreti

Page 20: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Esempio 5: Un piccolo crittosistema RSA insicuroEsempio 5: Un piccolo crittosistema RSA insicuroSupponiamo che Bob abbia scelto Supponiamo che Bob abbia scelto pp=101 e =101 e qq=113 =113 nn=11413 e =11413 e ((nn)=100)=100112=11200. Poiché 112=11200. Poiché 11200=211200=26655227, un intero 7, un intero bb può essere utilizzato quale può essere utilizzato quale esponente di codifica se e solo se esponente di codifica se e solo se bb non è divisibile non è divisibile per 2, 5 o 7 per 2, 5 o 7

• In pratica, Bob non fattorizzerà In pratica, Bob non fattorizzerà ((nn), verificherà solo ), verificherà solo che MCD(che MCD(((nn),),bb)=1 utilizzando l’algoritmo di Euclide)=1 utilizzando l’algoritmo di Euclide

• Supponiamo che Bob scelga Supponiamo che Bob scelga bb=3533; allora =3533; allora l’algoritmo di Euclide calcola l’algoritmo di Euclide calcola bb-1-1=6597 (mod 11200) =6597 (mod 11200) l’esponente di codifica è l’esponente di codifica è aa=6597=6597

• Bob pubblica Bob pubblica nn=11413 e =11413 e bb=3533. Supponiamo che =3533. Supponiamo che Alice voglia inviare il testo in chiaro 9726, Alice Alice voglia inviare il testo in chiaro 9726, Alice calcoleràcalcolerà

9726972635333533 (mod 11413)=5761 (mod 11413)=5761 ed invierà il testo cifrato 5761 sul canaleed invierà il testo cifrato 5761 sul canale

• Quando Bob riceve y=5761, utilizza l’esponente di Quando Bob riceve y=5761, utilizza l’esponente di decifratura segreto decifratura segreto aa per calcolare per calcolare

576157616597 6597 (mod 11413)=9726(mod 11413)=9726

Il crittosistema RSA Il crittosistema RSA 2 2

Page 21: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• La sicurezza del crittosistema RSA è La sicurezza del crittosistema RSA è basata sulla “speranza” che ebasata sulla “speranza” che ekk(x)=x(x)=xbb (mod (mod nn) sia one-way, così da rendere ) sia one-way, così da rendere computazionalmente impossibile, per computazionalmente impossibile, per una spia, decrittare il testo cifratouna spia, decrittare il testo cifrato

• La scappatoia (trapdoor) che permette a La scappatoia (trapdoor) che permette a Bob di decifrare il codice cifrato è Bob di decifrare il codice cifrato è costituita dalla conoscenza della costituita dalla conoscenza della fattorizzazione di fattorizzazione di nn==pqpq

• Dato che Bob conosce Dato che Bob conosce pp e e qq, può , può calcolare calcolare ((nn)=()=(pp-1)(-1)(qq-1) e quindi -1) e quindi l’esponente di decifratura l’esponente di decifratura aa, utilizzando , utilizzando l’algoritmo di Euclide estesol’algoritmo di Euclide esteso

Sicurezza di RSA Sicurezza di RSA

Page 22: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Ci sono diversi aspetti del crittosistema RSA che Ci sono diversi aspetti del crittosistema RSA che devono essere approfonditi, quali i dettagli devono essere approfonditi, quali i dettagli implementativi, l’efficienza delle operazioni di implementativi, l’efficienza delle operazioni di codifica/decodifica, la sicurezzacodifica/decodifica, la sicurezza

• Per realizzare il crittosistema, Bob…Per realizzare il crittosistema, Bob…1.1. Genera due numeri primi grandi, Genera due numeri primi grandi, pp e e qq

2.2. Calcola Calcola nn ==pqpq e e ((nn)=()=(pp-1)(-1)(qq-1)-1)

3.3. Sceglie in maniera casuale un intero positivo 0Sceglie in maniera casuale un intero positivo 0bb((nn) ) tale che MCD(tale che MCD(bb,,((nn))=1))=1

4.4. Calcola Calcola aa==bb-1-1 (mod (mod (n)) utilizzando l’algoritmo di (n)) utilizzando l’algoritmo di EuclideEuclide

5.5. Rende nota la chiave pubblica kRende nota la chiave pubblica kpp=(=(n,bn,b) )

• L’attacco più ovvio che può essere sferrato a RSA L’attacco più ovvio che può essere sferrato a RSA consiste quindi nel tentativo di fattorizzare consiste quindi nel tentativo di fattorizzare nn. Se la . Se la fattorizzazione di fattorizzazione di nn può essere calcolata facilmente, può essere calcolata facilmente, allora altrettanto facilmente si può calcolare allora altrettanto facilmente si può calcolare ((nn) e ) e quindi l’esponente quindi l’esponente aa di decifratura (così come fa di decifratura (così come fa Bob)Bob)

Implementazione di RSA Implementazione di RSA 1 1

Page 23: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Si congettura che il problema di violare RSA sia Si congettura che il problema di violare RSA sia polinomialmente equivalente al problema di polinomialmente equivalente al problema di fattorizzare fattorizzare nn, ma non esiste a tutt’oggi una prova , ma non esiste a tutt’oggi una prova certacerta

• Comunque… affinché RSA sia sicuro occorre Comunque… affinché RSA sia sicuro occorre certamente che certamente che nn==pqpq sia sufficientemente grande da sia sufficientemente grande da rendere la fattorizzazione computazionalmente rendere la fattorizzazione computazionalmente irrealizzabileirrealizzabile

• Gli algoritmi di fattorizzazione sono in continua Gli algoritmi di fattorizzazione sono in continua evoluzione (parallelamente all’evoluzione evoluzione (parallelamente all’evoluzione dell’hardware):dell’hardware):

o Supponiamo che un algoritmo di fattorizzazione sia in Supponiamo che un algoritmo di fattorizzazione sia in grado di fattorizzare numeri aventi fino a 130 cifre grado di fattorizzare numeri aventi fino a 130 cifre decimali decimali per garantire la sicurezza, occorre scegliere per garantire la sicurezza, occorre scegliere pp e e q q a 100 cifre così che a 100 cifre così che nn abbia almeno 200 cifre abbia almeno 200 cifre

o Si osservi inoltre che, un eventuale implementazione Si osservi inoltre che, un eventuale implementazione hardware di RSA a 512 bit, sarebbe in grado di realizzare hardware di RSA a 512 bit, sarebbe in grado di realizzare interi con 154 cifre decimali (poiché il numero di bit nella interi con 154 cifre decimali (poiché il numero di bit nella rappresentazione binaria è circa lograppresentazione binaria è circa log2210 volte il numero 10 volte il numero delle cifre decimali)delle cifre decimali)

Implementazione di RSA Implementazione di RSA 2 2

Page 24: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Per quanto riguarda le operazioni di Per quanto riguarda le operazioni di codifica/decodifica, entrambe presuppongono un codifica/decodifica, entrambe presuppongono un elevamento a potenza modulo elevamento a potenza modulo nn

• Dato che Dato che nn è molto grande, occorre utilizzare è molto grande, occorre utilizzare un’aritmetica di alta precisione per effettuare i un’aritmetica di alta precisione per effettuare i calcoli in Zcalcoli in Znn, ed il tempo impiegato per i calcoli , ed il tempo impiegato per i calcoli dipenderà dal numero di bit della rappresentazione dipenderà dal numero di bit della rappresentazione binaria di binaria di nn

• Supponiamo che Supponiamo che nn sia rappresentabile con k bit, sia rappresentabile con k bit, cioè k=cioè k=loglog22nn+1+1; si può dimostrare che ; si può dimostrare che un’addizione ed una moltiplicazione sono un’addizione ed una moltiplicazione sono eseguibili in tempo proporzionale, rispettivamente, eseguibili in tempo proporzionale, rispettivamente, a k e ka k e k22. Inoltre, una riduzione modulo . Inoltre, una riduzione modulo nn di un di un intero rappresentato con al più 2k bit può essere intero rappresentato con al più 2k bit può essere realizzata in realizzata in OO (k(k22))

• Siano x,ySiano x,yZZnn; xy (mod ; xy (mod nn) può essere calcolato ) può essere calcolato effettuando prima il prodotto xy (che ha 2k cifre) e effettuando prima il prodotto xy (che ha 2k cifre) e quindi la riduzione modulo quindi la riduzione modulo nn La La moltiplicazione moltiplicazione modularemodulare costa complessivamente, in tempo, costa complessivamente, in tempo, OO (k(k22))

Implementazione di RSA Implementazione di RSA 3 3

Page 25: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Implementazione di RSA Implementazione di RSA 4 4 • Consideriamo ora l’operazione di Consideriamo ora l’operazione di

esponenziazione modulareesponenziazione modulare, , cioè il calcolo di xcioè il calcolo di xcc (mod (mod nn ): in RSA sia la funzione di codifica che ): in RSA sia la funzione di codifica che quella di decodifica sono esponenziazioni quella di decodifica sono esponenziazioni modularimodulari

• L’elevamento a potenza in modulo può essere L’elevamento a potenza in modulo può essere realizzato effettuando c-1 moltiplicazioni realizzato effettuando c-1 moltiplicazioni modulari; tuttavia, questa tecnica è molto modulari; tuttavia, questa tecnica è molto inefficiente per c grande e, normalmente, c può inefficiente per c grande e, normalmente, c può essere dell’ordine di grandezza di essere dell’ordine di grandezza di ((nn)-1, che è )-1, che è esponenziale in kesponenziale in k

• La tecnica “elevamento al quadrato-La tecnica “elevamento al quadrato-moltiplicazione” riduce il numero di moltiplicazione” riduce il numero di moltiplicazioni modulari necessarie al calcolo di moltiplicazioni modulari necessarie al calcolo di xxcc (mod (mod nn ) ad al più 2l, dove l è il numero di bit ) ad al più 2l, dove l è il numero di bit della rappresentazione binaria di c della rappresentazione binaria di c poiché l poiché lk, k, il tempo richiesto per il calcolo è il tempo richiesto per il calcolo è OO (k(k33))

• Pertanto le fasi di codifica/decodifica in RSA Pertanto le fasi di codifica/decodifica in RSA vengono eseguite in tempo polinomiale in k vengono eseguite in tempo polinomiale in k (numero dei bit per rappresentare il plaintext)(numero dei bit per rappresentare il plaintext)

Page 26: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• La tecnica “elevamento al quadrato-La tecnica “elevamento al quadrato-moltiplicazione” presuppone che l’esponente moltiplicazione” presuppone che l’esponente bb sia rappresentato, in notazione binaria, comesia rappresentato, in notazione binaria, come

bb==bb ii22ii

con con bb ii uguale a 0 o 1, 0 uguale a 0 o 1, 0iil-1l-1

• Il numero di operazioni eseguite dall’algoritmo Il numero di operazioni eseguite dall’algoritmo comprende l elevamenti a potenza (passo 3.). comprende l elevamenti a potenza (passo 3.). Inoltre il numero di moltiplicazioni modulari Inoltre il numero di moltiplicazioni modulari (passo 4.) è uguale al numero di bit ad 1 nella (passo 4.) è uguale al numero di bit ad 1 nella rappresentazione binaria di rappresentazione binaria di bb, che è un intero , che è un intero compreso fra 0 e l compreso fra 0 e l Il numero totale di operazioni Il numero totale di operazioni è 2lè 2l

Implementazione di RSA Implementazione di RSA 5 5

l-1l-1

i=0i=0

1.1. z=1z=12.2. forfor i=l-1 i=l-1 downtodownto 0 0 dodo3.3. z=zz=z22 (mod (mod nn))4.4. ifif bbii=1 =1 then then z=zz=zx (mod x (mod

nn) )

Page 27: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Esempio 6Esempio 6

Sia Sia nn=11413 e =11413 e bb=3533, come nell’Esempio 5. =3533, come nell’Esempio 5. Alice codifica il plaintext 9726 utilizzando Alice codifica il plaintext 9726 utilizzando l’algoritmo di “elevamento al quadrato-l’algoritmo di “elevamento al quadrato-moltiplicazione” per valutare 9726moltiplicazione” per valutare 972635333533 (mod (mod 11413), come segue…11413), come segue…

Il testo cifrato è 5761Il testo cifrato è 5761

Implementazione di RSA Implementazione di RSA 6 6

i bi z 11 1 129726=9726 10 1 972629726=2659 9 0 26592=5634 8 1 563429726=9167 7 1 916729726=4958 6 1 495829726=7783 5 0 77832=6298 4 0 62982=4629 3 1 462929726=10185 2 1 1018529726=105 1 0 1052=11025 0 1 1102529726=5761

Page 28: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Il secondo passo dell’algoritmo realizzato da Bob, Il secondo passo dell’algoritmo realizzato da Bob, per implementare il crittosistema RSA, è diretto e per implementare il crittosistema RSA, è diretto e viene eseguito in un tempo dell’ordine viene eseguito in un tempo dell’ordine O O ((log((lognn))22))

• I passi 3. e 4. presuppongono l’uso dell’algoritmo I passi 3. e 4. presuppongono l’uso dell’algoritmo di Euclide. Siano rdi Euclide. Siano r00 ed r ed r11 gli interi di cui si vuol gli interi di cui si vuol calcolare il massimo divisore comune e sia rcalcolare il massimo divisore comune e sia r00>r>r11

o In ciascuna iterazione dell’algoritmo vengono In ciascuna iterazione dell’algoritmo vengono calcolati un quoziente ed un resto, in tempo calcolati un quoziente ed un resto, in tempo O O ((log ((log rr00))22))

o Se è possibile ottenere un limite superiore al numero Se è possibile ottenere un limite superiore al numero

di iterazioni, si otterrà, in conseguenza, un limite di iterazioni, si otterrà, in conseguenza, un limite

sulla complessità dell’algoritmo sulla complessità dell’algoritmo Il Teorema di Lamé Il Teorema di Lamé

asserisce che se s è il numero di iterazioni, allora asserisce che se s è il numero di iterazioni, allora

ffs+2s+2rr00, con f, con fii i-esimo numero di Fibonacci. Dato che f i-esimo numero di Fibonacci. Dato che fii

((1+((1+5)/2)5)/2)ii, s è , s è OO(log r(log r00) )

Il tempo totale è Il tempo totale è OO((log ((log n n ))33) (in realtà, un esame ) (in realtà, un esame

più accurato, conduce a più accurato, conduce a OO((log ((log n n ))22) )) )

Implementazione di RSA Implementazione di RSA 7 7

Page 29: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Resta ancora aperto il problema di come Bob Resta ancora aperto il problema di come Bob realizzi il primo passo del suo algoritmo di realizzi il primo passo del suo algoritmo di implementazione di RSAimplementazione di RSA

• Nella pratica, per generare numeri primi grandi la Nella pratica, per generare numeri primi grandi la tecnica comunemente usata è quella di generare tecnica comunemente usata è quella di generare numeri casuali grandi e quindi effettuare un test di numeri casuali grandi e quindi effettuare un test di primalità con un algoritmo probabilistico di tipo primalità con un algoritmo probabilistico di tipo Monte CarloMonte Carlo

• Tali algoritmi sono veloci: il test su un numero Tali algoritmi sono veloci: il test su un numero intero intero nn ha durata polinomiale in log ha durata polinomiale in log22nn, il numero di , il numero di bit della rappresentazione binaria di bit della rappresentazione binaria di n n (in (in particolare, particolare, OO((log((log22nn))22));)); tuttavia è possibile che tuttavia è possibile che l’algoritmo sbagli, dichiarando primo un numero l’algoritmo sbagli, dichiarando primo un numero che non lo è effettivamenteche non lo è effettivamente

• Eseguendo l’algoritmo più volte, la prpbabilità di Eseguendo l’algoritmo più volte, la prpbabilità di errore può comunque essere ridotta al di sotto di errore può comunque essere ridotta al di sotto di una soglia prestabilitauna soglia prestabilita

Implementazione di RSA Implementazione di RSA 8 8

Page 30: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Altra questione fondamentale è quella di stabilire Altra questione fondamentale è quella di stabilire quanti interi casuali (di lunghezza prefissata) quanti interi casuali (di lunghezza prefissata) occorre testare, prima di rilevare un numero occorre testare, prima di rilevare un numero primoprimo

• Un famoso risultato della Teoria dei Numeri Un famoso risultato della Teoria dei Numeri stabilisce che il numero di interi primi minori di N stabilisce che il numero di interi primi minori di N è approssimativamente N/ln(N)è approssimativamente N/ln(N)

• Pertanto se p è un numeo casuale, la probabilità Pertanto se p è un numeo casuale, la probabilità che sia primo è 1/ln(p)che sia primo è 1/ln(p)

• Per fare una stima, con interi rappresentati con Per fare una stima, con interi rappresentati con 512 bit, 1/ln(p)512 bit, 1/ln(p) 1/177, cioè, in media, su 177 1/177, cioè, in media, su 177 interi casuali ve ne sarà uno primo o, escludendo interi casuali ve ne sarà uno primo o, escludendo i numeri pari, al più duei numeri pari, al più due

Implementazione di RSA Implementazione di RSA 9 9

Page 31: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• È possibile attaccare RSA in maniera diversa È possibile attaccare RSA in maniera diversa dal riuscire a calcolare una fattorizzazione per dal riuscire a calcolare una fattorizzazione per nn ??

• Se Oscar viene a conoscenza del valore di Se Oscar viene a conoscenza del valore di ((nn ), ), i due numeri primi i due numeri primi pp e e qq possono essere possono essere calcolati quali soluzioni del sistemacalcolati quali soluzioni del sistema

nn==pqpq

((nn )=()=(pp-1)(-1)(qq-1)-1)

Infatti, sostituendo Infatti, sostituendo qq==n/pn/p nella seconda nella seconda equazione, si ottiene l’equazione di secondo equazione, si ottiene l’equazione di secondo grado in grado in pp

pp 22-(-(nn--((nn )+1))+1)pp++nn=0=0

le cui soluzioni sono esattamente le cui soluzioni sono esattamente pp e e qq, i , i fattori di fattori di nn

Rilevare Rilevare ((nn ) è difficile quanto fattorizzare ) è difficile quanto fattorizzare nn

Un esempio di attacco a RSA Un esempio di attacco a RSA 1 1

Page 32: RSA Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Esempio 7Esempio 7

Supponiamo che Oscar abbia appreso che Supponiamo che Oscar abbia appreso che n=84773093 e n=84773093 e ((nn )=84754668. L’informazione )=84754668. L’informazione può essere utilizzata per scrivere la seguente può essere utilizzata per scrivere la seguente equazione di secondo gradoequazione di secondo grado

pp 22 – 18426 – 18426pp +84773093=0 +84773093=0

che, risolta, fornisce i due fattori di che, risolta, fornisce i due fattori di n,n, pp=9539 e =9539 e qq=8887=8887

Un esempio di attacco a RSA Un esempio di attacco a RSA 2 2