Skip to content

Use AES-CTR DRBG as a Cryptographically Secure Pseudo-Random Number Generator (CSPRNG) #593

@sangho2

Description

@sangho2

As a CSPRNG, we should use AES-CTR DRBG (NIST SP 800-90A standard) which is approved by Microsoft.
Regarding entropy sources, we should access as many sources as possible like RDSEED (x86_64), TPM (GetRandom), and more.

Minimal feature set:

  • 256-bit AES
  • Entropy source (RDSEED)
  • Nonce (from TPM). For now, just have a memory buffer and interface to initialize it.
  • Derivation function
  • No personalization
  • Pass NIST test cases

There are drbg and aes_ctr_drbg crates, but we'd like to implement a simple one from scratch with the above features.

This CSPRNG replaces litebox_platform_lvbs/src/host/lvbs_impl.rs's litebox::platform::CrngProvider::fill_bytes_crng.

Metadata

Metadata

Labels

target-lvbsTargeting the LVBS system

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions