Puncte:0

Care sunt cei mai rapizi algoritmi care eșantionează din distribuția uniformă?

drapel ru

O mulțime de algoritmi de criptare se bazează pe generatoare de numere pseudoaleatoare. Uneori, având în vedere un text simplu, trebuie să generați un număr pseudoaleator din acesta. Care sunt unii algoritmi rapizi care fac acest lucru?

Am văzut unul care folosește SHA256 și altul care folosește AES, dar nu am găsit nicio literatură despre ele sau vreo implementare pe care să o pot folosi. Ar trebui să fie rapid, deoarece procesoarele din zilele noastre au suport hardware pentru ele.

la pagina 8 a acestei lucrări: dl.acm.org/doi/10.1145/2808425.2808431 se spune

introduceți descrierea imaginii aici

drapel cn
Titlul și corpul întrebării nu par să se potrivească.
drapel ru
@Maeher nu sunt folosiți generatoare de numere pseudoaleatoare pentru eșantionarea din distribuția uniformă?
Paul Uszak avatar
drapel cn
Cred că va trebui să extindeți _„Uneori, având în vedere un text simplu, trebuie să generați un număr pseudoaleator din acesta.”_ Un text simplu este un mesaj necriptat cu conținut semantic. Pentru ce este numărul pseudoaleator?
drapel ru
@PaulUszak la pagina 8 a acestei lucrări: https://dl.acm.org/doi/10.1145/2808425.2808431 scrie https://imgur.com/a/NhDoBlu
kodlu avatar
drapel sa
vă rugăm să vă editați întrebarea pentru a fi clară și autonomă
drapel cn
PRF-urile nu sunt eșantionări aleatorii. Și distribuțiile pot fi uniforme peste ceva, de ex. un anumit număr de biți sau un câmp finit, nu există o „distribuție uniformă” generală.
drapel cn
Hmm, sunt 2 voturi apropiate, apoi a fost adăugată o recompensă (deci nimeni nu mai poate vota pentru a închide). Adăugarea unei recompense în loc să remediați problemele... acest lucru nu face pe nimeni să dorească să vă ajute.
Geoffroy Couteau avatar
drapel cn
Ar trebui să caut puțin pentru a găsi un indicator, dar din câte știu, cele mai rapide PRNG-uri de acolo se bazează pe permutarea AES cu un program cu cheie fixă. Un bun punct de plecare ar putea fi [acest lucrare](https://eprint.iacr.org/2019/074.pdf)
Puncte:1
drapel in

Convertirea unui mesaj arbitrar într-un număr pseudo-aleatoriu înseamnă, în esență, calcularea unui hash criptografic.

Deci, această întrebare pare să se întrebe care este cel mai rapid hash criptografic sigur?

Nu este clar care sunt cerințele de securitate pe care le aveți pentru acest hash, unii algoritmi sunt foarte simpli și nu sunt siguri din punct de vedere criptografic, dar oferă totuși un rezumat util atunci când nu există un adversar. de exemplu, CRC poate fi foarte rapid.

Alți algoritmi vor oferi rezistență pre-imagine și a doua pre-imagine, dar nu rezistență la coliziune, de exemplu MD5 sau SHA1

Unii algoritmi sunt considerați astăzi a fi în general siguri și oferă, de asemenea, rezistență la coliziune și sunt adesea modelați ca o funcție pseudo-aleatorie. De exemplu, SHA-3.

Iată câteva repere care compară primitivele criptografice https://www.cryptopp.com/benchmarks.html Și o comparație diferită (configurare diferită și metrică diferită): https://medium.com/logos-network/benchmarking-hash-and-signature-algorithms-6079735ce05

Acesta din urmă a ales blake2 ca cea mai rapidă funcție hash și este considerată sigură pentru orice scop care necesită o funcție hash securizată, chiar dacă nu este la fel de utilizată în familiile standardizate SHA2 sau SHA3. (Notă Blake2 are mai multe variante). introduceți descrierea imaginii aici

Prima legătură are MD5 destul de rapid la 6,8 cicluri CPU/octet, ceea ce este foarte foarte rapid. Și totuși sigur pentru multe scopuri, dar unele ar fi incomode folosind o funcție Hash „Broken”.

Pentru majoritatea scopurilor, nu aveți nevoie de cel mai rapid algoritm de hash, aveți nevoie de un hash suficient de rapid și o implementare bună a oricărui standard ar trebui să fie suficient de rapidă. Nimeni nu a fost concediat pentru că a ales SHA-3.

Puncte:0
drapel in

Atenție: sunt începător

TL;DR. Cel mai rapid algoritm de criptare a cheii pre-partajate, conţine cel mai rapid CSPRNG (se adaugă doar că XOR introduce împotriva lui). Poate doriți să modificați doar una astfel încât să ignore intrarea (de exemplu, nu face XOR față de intrare, deoarece nu dorim să criptăm).


Presupunând că întrebați despre PRNG-urile securizate criptografic:

  • Dacă doriți un ciclu practic nelimitat, alegeți cel mai rapid algoritm de criptare pre-partajat. Cred că este obiectivul lor fundamental de proiectare: găsiți cel mai rapid CSPRNG, apoi textul clar XOR împotriva lui. La urma urmei, secretul perfect vine atunci când textul clar este XOR împotriva unor date distribuite uniform (adică pad-ul unic). Algoritmul de criptare pre-partajat urmărește pur și simplu să genereze acest pad folosind o metodă seeded (seed fiind cheia, iar starea CSPRNG fiind nonce).

  • Dacă sunteți de acord cu un ciclu limitat, atunci trebuie să modificați cel mai rapid algoritm de criptare pre-partajat pentru a face mai puțin lucru (de exemplu, dimensiunea blocului mai mică).

  • Ignora funcții de hashing în acest scop, deoarece sunt concepute pentru a rezolva a mai mare problema: compresia, ceea ce le face mult mai lente.

    Comprimarea înseamnă că intrarea ar putea fi mult mai mare decât ieșirea, dar funcția de hashing ar trebui să se asigure că fiecare bit al intrării este reprezentat în fiecare bit al ieșirii. Acest lucru obligă funcția să lucreze mult mai mult pentru a asigura o astfel de dependență.

    Chiar cred că, dacă s-ar putea folosi în mod magic o funcție de hashing sigură, pentru a, cumva, să se întoarcă la intrarea ei, atunci un $n$ șir de biți din acel hash ar depăși cea mai bună compresie de date cu pierderi pentru un $n$ ieșire de biți.

    Pe de altă parte, un algoritm de criptare pre-partajat nu se confruntă cu această provocare mai grea, deoarece ieșirea este garantată a fi cel puțin la fel de mare ca intrarea.

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.