Skip to main content
replaced http://crypto.stackexchange.com/ with https://crypto.stackexchange.com/
Source Link

Are there universal, consensus definitions for the following terms?

  1. Cryptographically secure pseudo-random number generator ("CSPRNG")
  2. Deterministic random bit generator ("DRBG")
  3. Stream cipher

This is primarily a question about the terminology rather than the concepts (although I do not master the concepts by any means either). My confusion arises because:

  • I recall seeing some reference (that I can't find again now) which equated CSPRNGs and stream ciphers, due to the fact that expanding a finite key to a long, secure keystream is basically the same problem as generating a long cryptographically-secure pseudo-random sequence from a short seed. So correspondingly, stream ciphers are sometimes used as PRNGs, as in for example Rust's ChaChaRng.
  • The term "DRBG" appears to be mostly used by NIST in connection with their SP 800-90A algorithms, and which stresses safety against adversaries who can observe the state at one point in time. The key concepts here, as I understand them, are forward secrecy and periodic reseeding from external entropy sources.
  • The term "CSPRNG" apparently gets used in both senses (see for example the answers to this questionthe answers to this question).

Are there universal, consensus definitions for the following terms?

  1. Cryptographically secure pseudo-random number generator ("CSPRNG")
  2. Deterministic random bit generator ("DRBG")
  3. Stream cipher

This is primarily a question about the terminology rather than the concepts (although I do not master the concepts by any means either). My confusion arises because:

  • I recall seeing some reference (that I can't find again now) which equated CSPRNGs and stream ciphers, due to the fact that expanding a finite key to a long, secure keystream is basically the same problem as generating a long cryptographically-secure pseudo-random sequence from a short seed. So correspondingly, stream ciphers are sometimes used as PRNGs, as in for example Rust's ChaChaRng.
  • The term "DRBG" appears to be mostly used by NIST in connection with their SP 800-90A algorithms, and which stresses safety against adversaries who can observe the state at one point in time. The key concepts here, as I understand them, are forward secrecy and periodic reseeding from external entropy sources.
  • The term "CSPRNG" apparently gets used in both senses (see for example the answers to this question).

Are there universal, consensus definitions for the following terms?

  1. Cryptographically secure pseudo-random number generator ("CSPRNG")
  2. Deterministic random bit generator ("DRBG")
  3. Stream cipher

This is primarily a question about the terminology rather than the concepts (although I do not master the concepts by any means either). My confusion arises because:

  • I recall seeing some reference (that I can't find again now) which equated CSPRNGs and stream ciphers, due to the fact that expanding a finite key to a long, secure keystream is basically the same problem as generating a long cryptographically-secure pseudo-random sequence from a short seed. So correspondingly, stream ciphers are sometimes used as PRNGs, as in for example Rust's ChaChaRng.
  • The term "DRBG" appears to be mostly used by NIST in connection with their SP 800-90A algorithms, and which stresses safety against adversaries who can observe the state at one point in time. The key concepts here, as I understand them, are forward secrecy and periodic reseeding from external entropy sources.
  • The term "CSPRNG" apparently gets used in both senses (see for example the answers to this question).
Tweeted twitter.com/StackCrypto/status/726988961168691201
Source Link
Luis Casillas
  • 14.7k
  • 2
  • 32
  • 53

How distinct are the meanings of the terms "CSPRNG," "DRBG" and "stream cipher"?

Are there universal, consensus definitions for the following terms?

  1. Cryptographically secure pseudo-random number generator ("CSPRNG")
  2. Deterministic random bit generator ("DRBG")
  3. Stream cipher

This is primarily a question about the terminology rather than the concepts (although I do not master the concepts by any means either). My confusion arises because:

  • I recall seeing some reference (that I can't find again now) which equated CSPRNGs and stream ciphers, due to the fact that expanding a finite key to a long, secure keystream is basically the same problem as generating a long cryptographically-secure pseudo-random sequence from a short seed. So correspondingly, stream ciphers are sometimes used as PRNGs, as in for example Rust's ChaChaRng.
  • The term "DRBG" appears to be mostly used by NIST in connection with their SP 800-90A algorithms, and which stresses safety against adversaries who can observe the state at one point in time. The key concepts here, as I understand them, are forward secrecy and periodic reseeding from external entropy sources.
  • The term "CSPRNG" apparently gets used in both senses (see for example the answers to this question).