Significato di: "'Se il factoring di interi di grandi dimensioni è difficile, quindi rompere RSA è difficile,' non è dimostrato”


30

Stavo leggendo CLRS e si dice:

Se il factoring di numeri interi di grandi dimensioni è facile, allora rompere il cryptosystem RSA è facile.

Il che ha senso per me perché con la conoscenza di e , è facile creare la chiave segreta che la conoscenza della chiave pubblica. Tuttavia, spiega l'affermazione opposta, che non capisco bene:qpq

L'affermazione opposta, che se il factoring di interi di grandi dimensioni è difficile, quindi rompere RSA è difficile, non è provata.

Cosa significa formalmente la dichiarazione sopra? Se assumiamo che il factoring sia difficile (in qualche modo formale), perché ciò non implica che rompere il sistema crittografico RSA sia difficile?

Ora considera che se assumessimo che il factoring fosse difficile ... e che avessimo scoperto che ciò significava che il sistema crittografico RSA è difficile da infrangere. Cosa significherebbe formalmente?


3
Si potrebbe implica che la rottura RSA è difficile, ma non è stato dimostrato .
Tom van der Zanden,

2
il discreto problema del logaritmo nel cuore della rottura di RSA mentre "molto simile" non ha dimostrato di essere equivalente al factoring, è una grande questione aperta del campo (sia crittografia che TCS)
vzn

1
Il secondo non dovrebbe usare un trattino anziché una virgola? Non viene utilizzato un trattino quando sono presenti virgole all'interno della clausola dipendente? The converse statement -- that if factoring large integers is hard, then breaking RSA is hard -- is unproven.
Czipperz,

@ruakh: Whoops, sì ... Mi sono anche assicurato di ricontrollarlo, ma ho ancora sbagliato. Continuo a dimenticare che dovresti ridurre a un problema che sai essere facile, non un problema che sai essere duro almeno quanto quello attuale. :-) Grazie per quello, l'ho rimosso.
Mehrdad,

Argomento matematico: "se , allora B " significa lo stesso di "se non B , quindi non A ". Non puoi dire nulla di "se non A , quindi non B ". ABBAAB
drzbir,

Risposte:


50

Il modo più semplice di pensarci è pensare al contrapositivo.

La dichiarazione:

se il factoring di numeri interi grandi è difficile, allora rompere RSA è difficile

è equivalente al seguente:

se infrangere RSA è facile, allora prendere in considerazione interi di grandi dimensioni è facile

Questa affermazione non è stata dimostrata.

Quello che stanno dicendo è, supponiamo che abbiamo un algoritmo che risolve il factoring in tempi polinomiali. Quindi possiamo usarlo per costruire un algoritmo che risolve RSA in tempo polinomiale.

Ma potrebbe esserci un altro modo per decifrare RSA che non implichi numeri interi di factoring. È possibile che scopriremo che possiamo rompere RSA in un modo che non ci consente di fattorizzare numeri interi nel tempo polinomiale.

In breve, sappiamo che RSA è almeno facile quanto il factoring. Esistono due possibili esiti: RSA e factoring hanno difficoltà equivalenti o RSA è un problema strettamente più semplice rispetto al factoring. Non sappiamo quale sia il caso.


10
"almeno altrettanto facile" - questo è un modo di interpretare le riduzioni che dovrebbero essere insegnate in modo più esplicito insieme al contrario.
G. Bach,

Puoi farlo in entrambi i modi, se X è almeno duro come Y, Y è almeno facile come X.
jmite

2
Questo è ciò che intendevo dire: quasi tutti hanno probabilmente sentito "X è difficile almeno quanto Y", ma "Y è almeno facile come X" è molto raramente spiegato, anche se è altrettanto utile.
G. Bach,

1
Mi sembra di ricordare vagamente che Donald Knuth menzionasse un algoritmo che forniva una macchina in grado di rompere magicamente messaggi crittografati RSA arbitrari sarebbe stato in grado di fattorizzare i prodotti di due numeri primi di grandi dimensioni. Potrei sbagliarmi :-(
gnasher729

31

L'esistenza di un modo difficile non implica che non esiste un modo semplice.

Potrebbero esserci diversi modi per interrompere RSA e dobbiamo solo trovarne uno.


Uno di questi modi è il factoring di un intero di grandi dimensioni, quindi se è facile possiamo farlo in questo modo e RSA è interrotto. Questo è anche l'unico modo che conosciamo ancora. Se è impraticabile per farlo, possiamo ancora trovare un altro, computazionalmente meno impegnativo modo di svolgere il nostro compito senza la necessità di calcolare in modo esplicito p e q dal n .


Per dimostrare che RSA è rotto, dobbiamo dimostrare che un modo per farlo è semplice.

Per dimostrare che RSA è sicuro, dobbiamo dimostrare che tutti i modi per farlo sono difficili.


Infine, la tua affermazione non è provata perché non è dimostrato che non esiste un altro metodo più semplice che estrae informazioni da un testo cifrato.


1
Potremmo dimostrare che RSA e factoring sono ugualmente difficili se potessimo produrre un algoritmo in grado di fattorizzare i prodotti di due numeri primi di grandi dimensioni generando alcuni messaggi crittografati RSA speciali, suddividendoli e quindi eseguendo altri calcoli. Ciò significherebbe che RSA non è più semplice del factoring. Ciò non significa che sia facile o difficile.
gnasher729,

@ gnasher729 Sarebbe sufficiente? Se l'algoritmo potrebbe fattorizzare i prodotti di due numeri primi di grandi dimensioni, ma non i prodotti che coinvolgono più di 2 numeri primi o i prodotti che coinvolgono piccoli numeri primi?
otakucode,

@Penso che RSA dipenda solo dai fattori coprimi. Quindi aggirare i prodotti di più fattori sarebbe semplice.
Taemyr,

10

Un altro modo per esaminarlo è che la rottura di RSA richiede solo un caso speciale di factoring, che può essere o meno facile indipendentemente dalla questione generale del factoring.

3


7

Significa che il problema RSA sembra (in questo momento) più specifico del factoring.

pqe,v,mvmemodpq

pq,pq

dmvd

m

Infatti nel 1998 Boneh e Venkatesan hanno pubblicato una prova che una certa classe di algoritmi semplici (più, tempi, esponenti, niente roba di tipo XOR / NAND) non possono essere usati per trasformare una soluzione del problema RSA in un algoritmo di factoring. L'argomento aveva una semplice ingegnosità: manipolando matematicamente quelle operazioni aritmetiche, possiamo scoprire che "l'algoritmo di riduzione" (per precisione: questo è l'algoritmo che utilizza un "oracolo" RSA per un semiprime per fatturare quel semiprime) essere un algoritmo di factoring a sé stante, in modo che possiamo modificarlo in una variante che non fa chiamate al suo oracolo. Quindi abbiamo una tricotomia: o (a) non esiste un tale algoritmo di riduzione, oppure (b) l'algoritmo di riduzione non ha una buona interpretazione aritmetica o (c) il factoring è un tempo polinomiale proprio come l'algoritmo di riduzione.



@Gilles in realtà penso che tu abbia ragione, quindi ho corretto la mia risposta di conseguenza.
CR Drost,

3

logeCZmemC

Questi due compiti matematici sono correlati, ma (se ricordo bene) si ritiene che una soluzione all'una non implicherebbe una soluzione all'altra. Non so se sono gli unici due modi per rompere matematicamente RSA.


mm
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.