Entity: aes_prng_clearing

Diagram

int unsigned Width int unsigned EntropyWidth bit SecSkipPRNGReseeding clearing_lfsr_seed_t RndCnstLfsrSeed clearing_lfsr_perm_t RndCnstLfsrPerm clearing_lfsr_perm_t RndCnstSharePerm clk_i rst_ni data_req_i reseed_req_i entropy_ack_i [EntropyWidth-1:0] entropy_i data_ack_o [Width-1:0] data_o reseed_ack_o entropy_req_o

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

Description
Upsizing of entropy input to correct width for LFSR reseeding.

Description
LFSR instance