The tt_um_roy1707018 module integrates two essential components:
Ring Oscillator-Based Buffer System which essentially a True Random Number Generator or TRNG (ro_buffer_counter) S-Box Cryptographic Component (ascon_sbox) Ring Oscillator-Based Buffer System (ro_buffer_counter) This module contains a buffer driven by two control signals: ro_activate_1: Controls the first set of ring oscillators (bit 0 of ui_in). ro_activate_2: Controls the second set of ring oscillators (bit 1 of ui_in). It also includes a 3-bit signal (bits 2 to 4 of ui_in) that selects a specific output from the buffer. The module comprises a total of 16 ring oscillators, split into two sets of 8. A 64-bit shift register within the submodule stores the last 64 bits of these oscillators' outputs. The selection bits determine which specific set of 8 values from the shift register is presented as the 8-bit output, which is then processed and connected to uo_out.
S-Box Cryptographic Component (ascon_sbox) The second submodule implements an S-Box, a crucial non-linear substitution step used in cryptographic algorithms like ASCON. This S-Box is activated by bit 7 of ui_in and receives bits 2 to 6 of ui_in as input, producing a 5-bit output.
Final Output The final output, uo_out, is the result of a bitwise XOR operation between TRNG and the S-Box. This combination effectively merges the functionalities of both components into a single output signal.
In the simulation level, from the testbench we sent different values to the input to see if the ring oscillators or SBOX are working correctly or not.
No external hardware is needed for this design.
# | Input | Output | Bidirectional |
---|---|---|---|
0 | ui_in[0] | uo_out[0] | |
1 | ui_in[1] | uo_out[1] | |
2 | ui_in[2] | uo_out[2] | |
3 | ui_in[3] | uo_out[3] | |
4 | ui_in[4] | uo_out[4] | |
5 | ui_in[5] | uo_out[5] | |
6 | ui_in[6] | uo_out[6] | |
7 | ui_in[7] | uo_out[7] |