Ho letto in diversi articoli che l'esistenza di funzioni a senso unico è ampiamente ritenuta. Qualcuno può fare luce sul perché questo è il caso? Quali argomenti abbiamo per sostenere l'esistenza di funzioni a senso unico?
Ho letto in diversi articoli che l'esistenza di funzioni a senso unico è ampiamente ritenuta. Qualcuno può fare luce sul perché questo è il caso? Quali argomenti abbiamo per sostenere l'esistenza di funzioni a senso unico?
Risposte:
Ecco un argomento secondo cui le funzioni a senso unico dovrebbero essere difficili da invertire. Supponiamo che ci sia una classe di problemi 3-SAT con soluzioni piantate che sono difficili da risolvere. Considera la seguente mappa:
dove è una qualsiasi stringa di bit, r è una stringa di bit (è possibile utilizzarli per eseguire il seeding di un generatore di numeri casuali oppure è possibile richiedere tutti i bit casuali necessari) e s è un problema k -SAT con x as una soluzione piantata, in cui il generatore di numeri casuali determina esattamente quale problema k -SAT si sceglie. Per invertire questa funzione a senso unico, è necessario risolvere un problema k -SAT con una soluzione con impianto.
Questo argomento mostra che invertendo una funzione unidirezionale è duro come risolvere problemi -SAT con soluzioni piantati. E poiché k -SAT è un problema NP completo, se riesci a capire come costruire istanze difficili con soluzioni piantate per qualsiasi problema NP, puoi piantare soluzioni nelle formule k -SAT.
Non è stato dimostrato che è possibile trovare una classe di problemi NP completi con soluzioni piantate che sono tanto difficili quanto arbitrari problemi NP completi (e anche se questo è vero, sarà incredibilmente difficile da dimostrare) , ma la gente sicuramente sa come piantare soluzioni nei problemi -SAT in modi che nessuno attualmente sa come risolvere.
AGGIUNTO: ora mi rendo conto che questa connessione era già stata fornita (in modo più dettagliato) in Abadi, Allender, Broder, Feigenbaum ed Hemachandra ; sottolineano che le funzioni unidirezionali possono fornire istanze difficili risolte di SAT e viceversa.
Mettendolo in un linguaggio più informale, la non esistenza di funzioni a senso unico mostra che non possono esistere veri e propri enigmi difficili. Se esiste un tipo di enigma in cui qualcuno può inventare sia un enigma che la sua soluzione in modo algoritmico, allora esiste anche un algoritmo a tempo polinomiale per trovare una soluzione all'enigma. Questo mi sembra molto intuitivo. Naturalmente, potrebbe esistere un divario polinomiale; potrebbe accadere che se la creazione del puzzle richiede passaggi, la risoluzione potrebbe richiedere O ( n 3 ) passaggi. Tuttavia, la mia intuizione dice che dovrebbe esserci un divario superpolinomiale.
Darò una breve risposta: l'esistenza di problemi apparentemente difficili, come FACTORING o DISCRETE LOG, ha fatto credere ai teorici che OWF esistesse. In particolare, hanno cercato per decenni (dagli anni '70) di trovare algoritmi efficienti (tempo polinomiale probabilistico) per tali problemi, ma nessun tentativo è riuscito. Questo ragionamento è molto simile al motivo per cui la maggior parte dei ricercatori ritiene che P ≠ NP.
L'argomento di Sasho si basa sull'eterno problema P = NP per il quale attualmente non esiste consenso.
Tuttavia, se seguiamo la crittoanalisi di C. Shannon del one-time pad, declassificata nel 1947, vale a dire: non esiste un algoritmo di crittografia matematicamente sicuro diverso dall'unico time pad. Il suo argomento si basa sull'idea che, se abbiamo una sequenza veramente casuale di numeri e per qualche sequenza da crittografare, s 1 , s 2 , s 3 , ... , s n , crittografiamo come segue:
Potremmo imitare il risultato di Shannon per le funzioni a senso unico.
Il problema è che non sappiamo se esistono numeri veramente casuali in quanto la domanda è equivalente al commento di Einstein su "Dio non gioca a dadi".
Tuttavia, a tutti gli effetti, un generatore di numeri casuali basato su un processo fisico è considerato abbastanza casuale dagli esperti.
Sarebbe facile come suggerire ad esempio la funzione Sine?
Perché per un dato input e output l'input può essere aumentato o diminuito di 360 gradi (o 2 pi se sei in radianti) è molti-a-uno, quindi non puoi mai essere sicuro di quale input hai avuto?
Dimmi se ho frainteso la domanda però.