CSPRNGs
A cryptographically secure pseudorandom number generator (CSPRNG) is a pseudorandom number generator designed to withstand cryptographic analysis and attack. Its outputs should be indistinguishable from true randomness and unpredictable to any efficient adversary, even if parts of the internal state are known. CSPRNGs are used to generate keys, nonces, initialization vectors, and other values whose predictability could compromise security. They differ from ordinary PRNGs in that their security relies on cryptographic hardness rather than statistical properties alone.
CSPRNGs typically combine a cryptographic primitive with an entropy source. They require fresh entropy input through
Security properties of CSPRNGs include unpredictability and forward secrecy, meaning past outputs remain secure or unrecoverable
Examples and standards: widely used systems include DRBGs in OpenSSL, Windows CNG/CAPI RNG, and Linux kernel