O funcție hash criptografică este o funcție care este rezistentă la preimagini, a doua preimagini și coliziuni. Din câte știu, nu s-a dovedit că aceste condiții sunt suficiente pentru a construi un stream cipher.
Ieșirea unei funcții hash criptografice, fiind rezistentă la coliziuni și pre-imagine, nu înseamnă neapărat că produc rezultate care nu se pot distinge de aleatoriu.Deoarece cu un atac de text simplu ales, fluxul generat poate fi extras cu ușurință. Dacă fluxul se distinge, atunci modelul perceptibil poate dezvălui informații despre textul simplu. Din câte știu eu (alții mă corectează dacă greșesc), nu a fost cunoscută o astfel de problemă cu niciuna dintre funcțiile hash utilizate în prezent. [Și, după cum au subliniat alții, se poate datora faptului că nicio astfel de analiză ciptografică a funcțiilor hash utilizate ca generator de flux nu a fost făcută cu suficientă rigoare, deoarece nu a fost niciodată intenționată să fie utilizată în acest fel]
Există câteva probleme legate de modul în care a fost prezentată întrebarea dvs. Există nonce, contor și cheie. Vorbești despre non-uri mai jos, dar fără contor și despre ecuația pe care ai citat-o $H(k\mathbin\|n)$ from answer are counter, dar nu nonce, așa că nu ați clarificat cum le folosiți.
Oricum, din câte știm noi, $H(k\mathbin\|n\mathbin\|\text{ctr})$ Unde $n$ și $\text{ctr}$ sunt, respectiv, nonce și counter ar putea fi un generator de flux bun pentru majoritatea funcțiilor hash, cred, atâta timp cât $k$, $n$ și $\text{ctr}$ toate au lungime fixă (nu trebuie să vă faceți griji cu privire la atacurile de tip extensie de lungime pentru intrarea cu lungime fixă). Dar, mai general, trebuie să utilizați funcții care sunt considerate a fi funcții pseudo-aleatoare (cum ar fi HMAC) pentru o garanție rezonabilă de securitate dacă doriți să utilizați fluxul bazat pe hash. Ca în $\operatorname{HMAC}_k(n\mathbin\|\text{ctr})$ . Și pentru că HMAC utilizează hashing dublu și cifrurile bloc precum AES au o optimizare ridicată, cred că nu oferă performanța pe care o oferă fluxurile de ultimă generație (chacha, AES-CTR/GCM), chiar dacă este suficient de sigur.