Entity: aes_prng_clearing
- File: aes_prng_clearing.sv
Diagram
Description
Copyright lowRISC contributors. Licensed under the Apache License, Version 2.0, see LICENSE for details. SPDX-License-Identifier: Apache-2.0
AES low-bandwidth pseudo-random number generator for register clearing
This module uses an LFSR connected to a PRINCE S-Box and PRESENT permutation to generate pseudo-random data for the AES module for clearing registers. The LFSR can be reseeded using an external interface.
Generics
Generic name | Type | Value | Description |
---|---|---|---|
Width | int unsigned | 64 | At the moment we just support a width of 64. |
EntropyWidth | int unsigned | edn_pkg::ENDPOINT_BUS_WIDTH | |
SecSkipPRNGReseeding | bit | 0 | The current SCA setup doesn't provide |
RndCnstLfsrSeed | clearing_lfsr_seed_t | RndCnstClearingLfsrSeedDefault | sufficient resources to implement the infrastructure required for PRNG reseeding. To enable SCA resistance evaluations, we need to skip reseeding requests. |
RndCnstLfsrPerm | clearing_lfsr_perm_t | RndCnstClearingLfsrPermDefault | |
RndCnstSharePerm | clearing_lfsr_perm_t | RndCnstClearingSharePermDefault |
Ports
Port name | Direction | Type | Description |
---|---|---|---|
clk_i | input | ||
rst_ni | input | ||
data_req_i | input | Connections to AES internals, PRNG consumers | |
data_ack_o | output | ||
data_o | output | [Width-1:0] | |
reseed_req_i | input | ||
reseed_ack_o | output | ||
entropy_req_o | output | Connections to outer world, LFSR re-seed | |
entropy_ack_i | input | ||
entropy_i | input | [EntropyWidth-1:0] |
Signals
Name | Type | Description |
---|---|---|
seed_valid | logic | |
seed_en | logic | |
seed | logic [Width-1:0] | |
lfsr_en | logic | |
lfsr_state | logic [Width-1:0] | |
lfsr_state_scrambled | logic [Width-1:0] | |
share_perm_test | logic [Width-1:0] | Check that the supplied permutation is valid. |
unused_share_perm_test | logic [Width-1:0] | Check that the supplied permutation is valid. |
Instantiations
- u_prim_packer_fifo: prim_packer_fifo
Description
Upsizing of entropy input to correct width for LFSR reseeding.
- u_lfsr: prim_lfsr
Description
LFSR instance