expected_output - ChairImpSec/PROLEAD GitHub Wiki
Type
String Array
Default
none - Can be specified if desired.
Description
Specifies the expected unshared output value(s) for a PROLEAD simulation. Specifically, the user can set an unshared output value corresponding to the shared signals defined in the output_shares
setting. If the simulation does not produce the expected output for a group, PROLEAD will raise an error.
Impact
This setting ensures that the simulation operates as intended by providing a mechanism to verify correct behavior. We recommend specifying expected_output
for every evaluation.
Examples
"simulation": {
"groups": [
/* First group corresponds to a random plaintext and key */
"256'h$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
/* Second group corresponds to a fixed plaintext and key */
"256'h328831E0435A3137F6309807A88DA2342B28AB097EAEF7CF15D2154F16A6883C",
],
"output_shares": [
/* We specify two 128 bit output shares */
"first_output_share[127:0]",
"second_output_share[127:0]"
],
"expected_output": [
/* We expect a random output for the first group */
"128'h$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",
/* We expect a fixed output for the second group */
"128'h3902DC1925DC116A8409850B1DFB9732"
]
}
In this example, we consider an AES implementation with two 128-bit output shares, first_output_share
and second_output_share
. We configure PROLEAD to evaluate a fixed-vs-random setting. Specifically, for the first group, both the plaintext and the key are set to random values, while for the second group, they are set to standard AES test vectors. For the unshared output, we assume that in the random group, the output is also random, meaning we cannot assign a specific output value. For the second group, the unshared input is fixed, and we can assume the fixed unshared output is simulated.