Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[csrng/doc] Clarify description section of README.md #26005

Merged
merged 1 commit into from
Jan 24, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 9 additions & 11 deletions hw/ip/csrng/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,17 +60,15 @@ The CSRNG IP consists of four main components:
2. The CTR_DRBG state-machine (`ctr_drbg_fsm`) which drives the AES primitive, performing the various encryption sequences prescribed for approved DRBGs in SP 800-90A.
These include:

1. **The Derivation Function:**
Part of the instantiation and reseed routines, this routine assembles the previous seed material (on reseed only), application inputs, and entropy.
2. **The Instantiation Routine:**
Combines application inputs, external entropy and nonce (more entropy) via the derivation function.
3. **The Reseed Routine:**
Combines the previous seed material with external entropy to generate a new seed.
4. **The Generate Routine:**
Generates up to CSRNG_MAX_GENERATE random bits.
If called with prediction_resistance_flag, forces a reseed.
5. **The Update Routine:**
Updates the internal state of the DRNG instance after each generate call.
1. **The Instantiation Routine:**
Takes external entropy and/or additional data (personalization string) to instantiate the DRNG instance.
1. **The Reseed Routine:**
Combines the previous seed material with external entropy and/or additional data (personalization string) to generate a new seed.
1. **The Generate Routine:**
Generates up to 4095 * 128 random bits, which is less than the maximum 2<sup>19</sup> bits allowed by NIST (referenced to as <tt>max_number_of_bits_per_request</tt>).
1. **The Update Routine:**
Updates the internal state of the DRNG instance.
It is automatically executed during instantiate, reseed and generate calls, but can also be explicitly called to combine additional data with the internal state of the DRNG instance.
3. State vectors for each DRNG instance.
4. Interface logic and access control for each instance.

Expand Down
Loading