Domanda

Dì che ho due serie di valori $ a $ e $ B $ e per ogni set I Avere una funzione calcolabile da quella impostata su un terzo set $ c $ . Supponiamo che io voglio costruire una funzione da $ a $ a $ B $ , tale che se io Comporre quella funzione con la $ B $ a $ c $ funzione sopra menzionata, ottengo una funzione che produce il Stessi risultati della $ A $ a $ c $ funzione menzionata sopra.

Se conosco la complessità del tempo delle due funzioni che restituiscono elementi di $ c $ , che mi consente di dire qualcosa su una funzione da $ A $ a $ B $ con la proprietà specificata? Ad esempio, i limiti possono essere posizionati sulla complessità computazionale di tale funzione? Possiamo persino dire se tale funzione è calcolabile o no?

È stato utile?

Soluzione

Possiamo avere set $ A, B, c $ con mappe calcolabili lineari $ f: a \ to C $ e $ G: B \ a c $ tale che esiste una mappa $ h: a \ a B $ con $ f= g \ circler h $ , ma la necessaria complessità del tempo / laureation per $ h $ è alto come vuoi.

Prova: scegli una mappa $ H: \ Sigma ^ * \ to \ Sigma ^ * $ che è difficile in qualsiasi senso hai scelto. Ora let $ a= c=sigma ^ * $ e $ B={\ Langle w, h (w ) \ Rangle \ Mid W \ in \ Sigma ^ * \} $ . Let $ f=mathrm {id} $ e $ g=pi_1 $ , cioè la <="container math"> $ G (\ Langle w, u \ Rangle)= w $ . Ora $ A, B, C $ e $ f, G $ soddisfare i criteri del reclamo e L'unica mappa $ H $ che funziona è $ h (w)=langle w, h (w) \ Rangle $ , che è essenzialmente dura come $ h $ .

Altri suggerimenti

Stai facendo due domande, uno su Computability e uno sulla complessità computazionale.La regola abituale è quella di chiedere una domanda per posta.Risponderò alla seconda domanda.No, sotto congetture standard, la complessità computazionale potrebbe essere piuttosto cattiva.Supponiamo $ f: A \ a c $ è dato da $ f (x)=alfa ^ x \ bmod p $ e $ g: B \ a c $ è dato da $ g (x)=beta ^ x\ BMOD p $ , dove $ p $ è un numero primo grande.Quindi puoi calcolare $ f, G $ in tempo polinomiale;Ma trovando una mappa $ A \ a B $ è difficile come calcolo del registro discreto di $ \ beta $ Basare $ \ alfa $ , che è congetturata per essere difficile.

La crittografia della chiave pubblica è basata sull'idea che la complessità può essere resa molto alta.

Lascia che sia il set di tasti pubblici e B sia il set di tasti privati e c l'insieme dei risultati della crittografia di un testo normale fisso.Sia la chiave pubblica che privata consentono di calcolare il testo crittografato abbastanza facilmente.Ma stai chiedendo se è stata data una chiave pubblica, puoi calcolare una chiave privata dando lo stesso messaggio crittografato.Poiché il testo normale deve essere lo stesso per ottenere lo stesso messaggio crittografato, questo ti darà immediatamente la chiave privata a qualsiasi chiave pubblica.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top