La mia domanda riguarda l'equivalenza della sicurezza di varie funzioni unidirezionali candidate che possono essere costruite sulla base della durezza del factoring.
Supponendo il problema di
FATTORE: [Dato per numeri primi casuali P , Q < 2 n , trova P , Q. ]
non può essere risolto in tempo polinomiale con probabilità non trascurabile, la funzione
PRIME-MULT: [Dato la stringa di bit come input, usa x come seme per generare due numeri primi casuali P e Q (dove le lunghezze di P , Q sono solo polinomialmente inferiori alla lunghezza di x ); quindi emettere P Q. ]
può essere mostrato come a senso unico.
Un'altra candidatura a senso unico è
INTEGER-MULT: [Dati interi casuali come input, output A B. ]
INTEGER-MULT ha il vantaggio di essere più facile da definire rispetto a PRIME-MULT. (Notare in particolare che in PRIME-MULT, c'è una possibilità (sebbene fortunatamente trascurabile) che il seme non riesca a generare P , Q che sono primi.
Almeno in due luoghi diversi (Arora-Barak, Computational Complexity, pagina 177, footnote 2) e ( Note di lezione di Vadhan's Introduzione alla crittografia ) si menziona che INTEGER-MULT è a senso unico assumendo una durezza media del factoring. Tuttavia, nessuno di questi due fornisce la ragione o un riferimento per questo fatto.
Quindi la domanda è:
Come possiamo ridurre il factoring nel tempo polinomiale di con probabilità non trascurabile per invertire INTEGER-MULT con probabilità non trascurabile?
Ecco un possibile approccio (che come vedremo NON funziona!): Dato , moltiplica N per un intero casuale A ( ' polinomiale) molto più lungo per ottenere A = N A ′ . L'idea è che un ' è così grande che ha un sacco di fattori primi di dimensioni pari a circa P , Q , in modo che P , Q non "spiccano" tra i fattori primi di A . Quindi A ha approssimativamente la distribuzione di un intero uniformemente casuale in un dato intervallo (diciamo [ 0 ). Quindi scegliere l'intero B in modo casuale dallo stesso intervallo [ 0 , 2 n - 1 ] .
Ora se un inverter per INTEGER-MULT può, dato , con una certa probabilità trovare A ′ , B ′ < 2 n tale che A ′ B ′ = A B , la speranza è che uno di A ′ o B ′ contenga P come un fattore e l'altra contiene Q . Se questo era il caso, possiamo trovare P o Q prendendo GCD di A ' con N = P Q .
Il problema è che l'inverter può scegliere di separare i fattori primi, ad esempio, mettendo i piccoli fattori di in A ′ e quelli grandi in B ′ , in modo che P e Q finiscano entrambi in A ′ o entrambi in B ′ .
C'è un altro approccio che funziona?