Puncte:1

Acestea sunt ambele probabilitatea de coliziune în atacul de ziua de naștere?

drapel in
Tim

Despre atacul de ziua de nastere, carte Ingineria Criptografiei spune:

În general, dacă un element poate lua N valori diferite, atunci puteți așteptați-vă la prima coliziune după ce ați ales despre $\sqrt{N}$ Aleatoriu elemente. Lăsăm aici detaliile exacte, dar $\sqrt{N}$ este destul de aproape. Pentru paradoxul zilei de naștere, avem N = 365 și $\sqrt{N} \aproximativ 19$. Numărul de persoane necesar înainte de șansa de a ziua de naștere duplicat depășește 50% este de fapt 23, dar $\sqrt{N}$ este aproape suficient pentru scopurile noastre și este aproximarea pe care criptografii folosi deseori.

Un mod de a privi acest lucru este că dacă alegi $k$ elemente, atunci Sunt $k(k - 1)/2$ perechi de elemente, fiecare dintre ele având a 1 USD/N$ șansa de a fi o pereche de valori egale. Deci șansa de a găsi un ciocnirea este aproape de $k(k - 1)/2N$. Când $k = \sqrt{N}$, această șansă este aproape de 50 %.

și wikipedia spune:

Ca exemplu, luați în considerare scenariul în care un profesor cu o clasă de 30 de elevi (n = 30) cere ziua de naștere a tuturor (pentru simplitate, ignorați anii bisecți) pentru a determina dacă doi elevi au aceeași zi de naștere (corespunzător unei coliziuni hash). după cum este descris în continuare). Intuitiv, această șansă poate părea mică. În mod contra-intuitiv, probabilitatea ca cel puțin un elev să aibă aceeași zi de naștere ca orice alt student în orice zi este de aproximativ 70% (pentru n = 30), din formula ${\displaystyle 1-{\frac {365!}{(365-n)!\cdot 365^{n}}}}$.

care poate fi reformulată în termeni de limbaj în Ingineria Criptografiei:

$$1 - \frac{N!}{(N-k)! * N^k}$$

Se presupune că este egal cu următorul de la Ingineria Criptografiei:

$$ (k(k-1))/(2N) $$

De ce?

kelalaka avatar
drapel in
Este vorba despre o aproximare pe care nu ați observat-o pe pagina Wikipedia. și posibilele înșelăciuni sunt [Care sunt șansele de coliziuni pentru o funcție hash cu ieșire de 256 de biți?](https://crypto.stackexchange.com/q/39641/18298) și [Probabilitatea de coliziune a atacului de naștere în Introducere în Modern Criptografie](https://crypto.stackexchange.com/a/72791/18298) și [Pe o limită inferioară pentru problema zilei de naștere](https://crypto.stackexchange.com/q/64584/18298) și [Ce este eroarea din această aproximare a probabilității de coliziune?](https://crypto.stackexchange.com/q/66328/18298) și altele nu sunt listate...
kelalaka avatar
drapel in
Pagina Wiki: [Problema de naștere - Aproximații](https://en.wikipedia.org/wiki/Birthday_problem#Approximations)
Tim avatar
drapel in
Tim
Mulțumiri. @kelalaka. Nu găsesc (k(kâ1))/(2N) în linkuri. Mi-e dor?
kelalaka avatar
drapel in
Vedeți `Acesta este bine pentru scăzut`` în primul răspuns 101 din link...
Tim avatar
drapel in
Tim
@kelalaka Mulțumesc. Cartea din postarea mea pare să explice (k(kâ1))/(2N) într-un mod diferit. Perechile au fiecare două evenimente de valori egale disjuncte?
kelalaka avatar
drapel in
Mai întâi selectează valori aleatoare uniforme $k$, apoi formează perechea în care fiecare are șansa de coliziune $1/N$...
fgrieu avatar
drapel ng
O derivație a aproximării este în [_Problema mea de naștere pentru hashing criptografic, 101_](https://crypto.stackexchange.com/a/39644/555). Atenție că folosește $(k,n)$ unde întrebarea prezentă folosește $(N,k)$.
Tim avatar
drapel in
Tim
@fgrieu Mulțumesc. Inca am aceeasi intrebare. Cartea din postarea mea pare să explice (k(kâ1))/(2N) într-un mod diferit de răspunsul dvs. Cum să înțeleg de la 1/N pentru fiecare pereche? Perechile au fiecare două evenimente disjunctive de valori egale? Care parte din derivarea sa este aproximarea?
Puncte:2
drapel ng

Întrebarea se întreabă de unde mergem $\displaystyle p=1 - \frac{N!}{(N-k)!\,N^k}$ pentru probabilitatea de coliziune a $k$ valori uniform aleatoare între $N$, la aproximare $\displaystyle p\aprox\frac{k(k-1)}{2N}$ (care presupune $k$ este mic în comparație cu $\sqrt N$ ).

Mai întâi ne întoarcem la $\displaystyle1-p=\prod_{j=0}^{k-1}{\left(1-\frac j N\right)}$, care este cum $p$ a fost determinată în primul rând. Apoi luăm logaritmul pe ambele părți și îl folosim $u>0,v>0\implies\ln(u\,v)=\ln(u)+\ln(v)$ a obține $$\displaystyle\ln(1-p)=\sum_{j=0}^{k-1}{\ln\left(1-\frac j N\right)}$$

Pentru mici $|x|$, ține $\ln(1+x)\aproximativ x$. Aplicând acest lucru la $x=p$ pe partea stângă și $\displaystyle x=\frac j N$ pe partea dreaptă, primim $\displaystyle p\aprox\sum_{j=0}^{k-1}\frac j N$. Rescriem asta ca $\displaystyle p\aprox\frac 1 N\sum_{j=0}^{k-1}j$.

Acum folosim că suma numerelor întregi nenegative mai mică decât $k$ este $\displaystyle\frac{k\,(k-1)}2$ și obțineți ceea ce doriți $\displaystyle p\aprox\frac{k(k-1)}{2N}$.

Fără dovadă: această aproximare a $p$ este întotdeauna prin exces. Se reduce cu mai puțin de $+28\%$ când $k\le\sqrt N$, mai puțin decât $+14\%$ când $k\le\sqrt{2N}$, mai puțin decât $+7\%$ când $k\le2\sqrt N$.


Cea mai mare parte a erorii provine din aproximare $\ln(1-p)\aprox-p$. O aproximare mult mai bună este: $$p\approx1-e^{-\frac{k(k-1)}{2N}}$$ care presupune doar $k\ll N$ Decat $k\ll\sqrt N$. Cu toate acestea, aveți grijă că această formulă alternativă este instabilă numeric pentru mici $p$.


În comentariu se cere suplimentar

Cum să înțeleg (această formulă) din 1 USD/N$ pentru fiecare pereche? Perechile au fiecare două evenimente disjunctive de valori egale? Care parte din derivarea sa este aproximarea?

O modalitate ușoară de a obține probabilitatea $p$ că există o coliziune între $k$ valori uniforme între $N$ (pentru $0\le k\le N$) este ca complement al probabilității să nu existe o coliziune.

Pentru un fix $N$, defini $q_k$ ca probabilitatea ca după aceea să nu existe o coliziune $k$ valorile. Evident $q_0=q_1=1$. Si pentru $k\ge2$, $q_k$ este probabilitatea ca între primii să nu fi fost nicio coliziune $k-1$ valori (adică $q_{k-1}$), cronologic probabilitatea ca nu există nicio coliziune între $k-1$ valorile anterioare și ultima desenată, care este $\displaystyle\frac{N-k}N$ (justificare acolo exact $N-k$ valori printre $N$ care nu se scurg până la coliziune pentru ultima valoare trasă).

Urmează $\displaystyle q_k=q_{k-1}\stanga(1-\frac k N\dreapta)$, prin urmare $\displaystyle q_k=\prod_{j=0}^{k-1}{\left(1-\frac j N\right)}$, prin urmare $$p=1-\prod_{j=0}^{k-1}{\left(1-\frac j N\right)}=1-\frac{N!}{(N-k)!\,N ^k}$$

Acesta este exact. Consultați primele două secțiuni ale acestui răspuns pentru derivarea aproximărilor.


O sursă a justificat aproximarea astfel:

Un mod de a privi acest lucru este că dacă alegi $k$ elemente, apoi există $k(kâ1)/2$ perechi de elemente, fiecare dintre ele având a 1 USD/N$ șansa de a fi o pereche de valori egale.

Acest argument cu mâna nu dă o derivație exactă din punct de vedere matematic a $\displaystyle p=\frac{k(k-1)}{2N}$, deoarece evenimentele nu sunt disjunctive. Atâta timp cât $p$ este mic, putem scăpa de asta, dar asta devine extrem de greșit când $k>\sqrt{2N}$.

Când $k = \sqrt{N}$, această șansă este aproape de 50%.

Este adevărat dacă 39,3% este aproape de 50%.

Tim avatar
drapel in
Tim
Mulțumiri. Comentariul meu de la https://crypto.stackexchange.com/questions/99160/are-these-both-the-probability-of-collision-in-birthday-attack/99176#comment214408_99160 a cerut diferite întrebări
Tim avatar
drapel in
Tim
Dacă aruncați o privire la primul citat din postarea mea, cartea nu deduce probabilitatea în care ați adăugat la răspunsul dvs.
Tim avatar
drapel in
Tim
„din moment ce evenimentele nu sunt independente”. Aditivitatea probabilităților mai multor evenimente depinde de faptul că evenimentele sunt disjunse și nu independente
kelalaka avatar
drapel in
Procentele au nevoie de link-uri...
fgrieu avatar
drapel ng
@kelalaka: dovezile mele pentru +28% sunt doar numerice (de unde _fără dovadă_): am trasat $\frac{\left(1-\frac{{k^2}!}{(k^2-k)!\ ,k^{2k}}\dreapta)\,2k^2}{k(k-1)}-1$; la fel pentru +14% +7%.
Tim avatar
drapel in
Tim
Mulțumiri. (1) „Mai întâi ne întoarcem la... obținem pâk(kâ1)/2N" justifică (k(kâ1))/(2N) ca o aproximare rezonabilă? (2) „Acest argument cu mâna nu dă o derivație exactă din punct de vedere matematic a p=k(kâ1)/2N, deoarece evenimentele nu sunt disjunctive. Atâta timp cât p este mic, putem scăpa de el. , dar acest lucru este foarte greșit când k>sqrt(2N). Când k=sqrt(N), această șansă este aproape de 50%. Acest lucru este adevărat dacă 39,3% este aproape de 50%" înseamnă că k(kâ1) /2N este o aproximare proastă? (3) dacă nu vrei să spui contradicție în (1) (2), ai putea explica, edita sau parafraza ceea ce vrei să spui de fapt?
fgrieu avatar
drapel ng
(1) Mai precis, implică $k(kâ1)/(2N)$ este o aproximare validă _pentru $k$ sau $p$ mai mică decât un anumit prag._ (2) Înseamnă că $k(kâ 1)/(2N)$ este slab justificat de argumentul dat, vine fără o declarație privind momentul în care se aplică și este o aproximare groaznică pentru $k$ peste un anumit prag. După cum sa explicat, este deja semnificativ dezactivat (cu +24%) atunci când este aplicat la $k=\sqrt N$ și $N$ de interes criptografic. (3) Nu există nicio contradicție.

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.