Puncte:2

Este o mapare a unui șir de k biți la un alt șir de k biți care conține 1 o funcție unidirecțională?

drapel mx

Sunt nou în criptoanaliza și am văzut într-un alt răspuns la a întrebare acea $f: \lbrace0, 1\rbrace^{\kappa}\la \lbrace0, 1\rbrace^{\kappa}, f(x) = 1^{\kappa} $ este o funcție unidirecțională. De ce este acesta cazul? Orice ajutor ar fi apreciat

drapel et
Ieșirea este întotdeauna aceeași pentru o anumită valoare a lui k - deci cum ați da seama de la ce intrare provine. Deci este ireversibil. Deci este o funcție unidirecțională
fgrieu avatar
drapel ng
@user93353: pe de altă parte, având în vedere $y$ astfel încât $\există x_0$ cu $y=f(x_0)$, este trivial să afișezi un $x_1$ cu $y=f(x_1)$. Deci nu este rezistent la coliziune.Deci... Ar putea fi faptul că simpla afirmare a [definiției unui OWF](https://en.wikipedia.org/wiki/One-way_function#Theoretical_definition) ar permite soluționarea întrebării?
drapel et
@fgrieu - îndeplinește definiția „O funcție f : {0,1}* â {0,1}* este unidirecțională dacă f poate fi calculată printr-un algoritm de timp polinomial, dar orice algoritm randomizat de timp polinomial F care încercările de a calcula un pseudo-invers pentru f reușesc cu o probabilitate neglijabilă.” Definiția nu include rezistența la coliziune. Mai jos, ei definesc „O funcție hash fără coliziuni f este o funcție unidirecțională care este **de asemenea** rezistentă la coliziuni”
drapel cn
@user93353 înțelegeți greșit definiția unui OWF. Pentru a fi un OWF, este necesar ca găsirea *orice* preimagine este dificilă. Acesta nu este cazul aici. Ieșirea literalmente *orice* $\kappa$ șir de biți este suficientă pentru a întrerupe caracterul unic al unei funcții constante. Acest lucru nu este surprinzător, având în vedere că nici măcar nu știm dacă există funcții unidirecționale și existența lor ar implica descoperiri majore în teoria complexității.
drapel cn
A fost șters răspunsul la care se referă această întrebare? Afirmația (incorectă) că o funcție constantă este unidirecțională nu apare în niciunul dintre răspunsurile pe care le pot vedea.
drapel et
@Maeher a înțeles acum. Toate intrările sunt preimagini ale ieșirii constante
fgrieu avatar
drapel ng
@Maeher: răspunsul șters la [întrebarea legată](https://crypto.stackexchange.com/q/24348/555) nu conține nimic asemănător cu afirmația incorectă din prezenta întrebare.
Puncte:6
drapel cn

Afirmația (pe care nu o găsesc nicăieri în răspunsurile la întrebarea legată) este incorectă. O funcție constantă nu poate fi unidirecțională. Pentru a vedea de ce, să ne amintim definiția unei funcții unidirecționale.

O functie $f : \{0,1\}^* \la \{0,1\}^*$ este unidirecțională, dacă

  1. Există un algoritm de timp polinomial $M_f$ astfel încât $M_f(x) = f(x)$ pentru toți $x\în\{0,1\}^*$.
  2. Pentru fiecare algoritm PPT $\mathcal{A}$ există o funcție neglijabilă $\mathsf{negl}$ astfel încât pentru toți $\kappa\in\mathbb{N}$ tine asta $$\Pr[x\gets\{0,1\}^\kappa, y:=f(x)\;:\;f(\mathcal{A}(1^\kappa,y))=y ] \leq \mathsf{negl}(\kappa)$$

Cu toate acestea, pentru orice funcție constantă este ușor să specificați un algoritm PPT $\mathcal{A}$ pentru care $$\Pr_{x\gets\{0,1\}^\kappa}\bigl[f\bigl(\mathcal{A}(1^\kappa,f(x))\bigr)=f(x) \bigr] = 1$$ pentru toți $\kappa\in\mathbb{N}$. De exemplu, putem defini $\mathcal{A}$ ca algoritm care iese întotdeauna $1^\kappa$. Adică pentru toți $x\în\{0,1\}^\kappa$ avem $f\bigl(\mathcal{A}(1^\kappa,f(x))\bigr) = f(1^\kappa)$ iar din moment ce funcţia $f$ este constantă, este valabilă pentru toți $x\în\{0,1\}^\kappa$ acea $f(1^\kappa) = f(x)$. Prin urmare $\mathcal{A}$ rupe sensul unic al $f$ cu probabilitate $1$ și $f$ nu este unidirecțională.

kelalaka avatar
drapel in
Există un motiv explicit pentru a nu spune $f$ este timpul polinomial?
drapel cn
$f$ nu este un algoritm, deci nu are un timp de rulare bine definit care ar putea fi polinom.
amlearn369 avatar
drapel mx
Mulțumesc. Asta am crezut eu. În întrebarea legată, a existat un comentariu la răspunsul corect care spunea asta „Dacă într-adevăr trebuie să aveți două funcții unidirecționale distincte, puteți întotdeauna, să zicem, să folosiți $1^{/2}$ în loc de $0^{/2}$ pentru una dintre ele.
drapel cn
Ceea ce sugera acel comentariu este utilizarea celor două funcții $f_1(x_1\Vert x_2) = 0^{n/2}\Vert h(x_1)$ și $f_2(x_1\Vert x_2) = 1^{n/2} \Vert h(x_1)$, doar pentru a obține două funcții *diferite*, dacă ar fi cumva necesar. (Există soluții mai simple în acest caz.)

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.