Puncte:2

Ce este un simbol de ieșire?

drapel in

Citesc Înțelegerea criptografiei de Christof Paar și Jan Pelzl. În capitolul 2 (Cifuri de flux). Există o secțiune care vorbește despre „Culding Key Streams from PRNGs”.

Ei presupun un PRNG bazat pe generatorul liniar congruențial:

$$S_0 = sămânță $$ $$S_{i+1} \equiv AS_i + B\mod m, i=0,1,...$$

unde alegem ca m să fie lung de 100 de biți și $ S_i,A,B \in \{0,1,...,m-1\}. $ Rețineți că aceasta PRNG poate avea proprietăți statistice excelente dacă alegem parametrii cu atenție. Modulul m face parte din schema de criptare și este cunoscut public. Secretul cheia cuprinde valorile (A,B) și eventual sămânța S0, fiecare cu o lungime de 100. Aceasta ne oferă o lungime a cheii de 200 de biți, care este mai mult decât suficientă pentru a vă proteja un atac cu forță brută. Deoarece acesta este un cifru de flux, Alice poate cripta:

$$y_i \equiv x_i + s_i \mod 2 $$

Unde $s_i$ sunt biții reprezentării binare a PRNG simboluri de ieșire $S_j$

Dar Oscar poate lansa cu ușurință un atac. Să presupunem că știe primii 300 de biți din text simplu (acesta este doar 300/8=37,5 octeți), de exemplu, informații despre antetul fișierului sau el ghicește parte a textului simplu. Deoarece el cunoaște cu siguranță textul cifrat, acum poate calcula primii 300 de biți ai fluxului de chei ca:

$$s_i \equiv y_i + x_i \mod m , i = 1,2,...,300$$

Acești 300 de biți dau imediat primii trei simboluri de ieșire din PRNG:$S_1 = (s_1,...,s_{100}), S_2 = (s_{101},...,s_{200})$ și $S_3 = (s_{201},...,s_{300}).$

(sublinierea mea)

Întrebările mele sunt:

  • Ce este un simbol de ieșire?
  • cum determinăm simbolurile de ieșire (număr de biți etc.)
Puncte:2
drapel vn

Ce este un simbol de ieșire?

Un simbol de ieșire este „unitatea” de bază de ieșire a unui PRNG. Fluxul de chei în sine este compus dintr-un număr întreg de simboluri. Dacă PRNG scoate biți (cum ar fi un LFSR), atunci simbolul este un singur bit.Dacă PRNG scoate octeți (cum ar fi RC4), atunci simbolul este un număr întreg în interval $[0,255]$.

cum determinăm simbolurile de ieșire (număr de biți etc.)

Daca ai $n$ simboluri posibile, atunci un singur simbol este descris de $\log_2(n)$ biți. În general, numărul de simboluri de ieșire pentru un PRNG este o putere de doi. S-ar putea să nu fie întotdeauna cazul. Dacă un PRNG a scos simboluri alfanumerice cu 26 de posibilități diferite, atunci fiecare simbol ar fi valabil $\log_2(26) \aproximativ 4,7$ bucăți de informații. Probabil că ar fi mai bine să reprezinte un astfel de simbol ca un număr întreg în interval $[0,26]$ mai degrabă decât să-l reprezinte ca un număr fracționar de biți.

Exemplul PRNG din întrebare a specificat simbolul $S_i \in \{0,1,\dots m-1\}$ și specificat suplimentar $m=100$. Aceasta înseamnă că simbolul pentru acel PRNG este o valoare de 100 de biți, deși ar putea fi reprezentat și ca un singur întreg în interval $[0,2^{100})$.

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.