ibex
ibex copied to clipboard
[rtl] Dummy instruction enhancements
- Wider control of insertion frequency, all the way down every other instruction
- Add dummy instructions when IF stage stalls to hide I$ timing side-channel
- Add some scrambling to LFSR output
- Replace NOPs with dummy instructions (idea from CG since algorithm writers sometimes add NOPs for obfuscation, but their power signature can be a bit obvious)
- More software control over the types of instructions inserted and their weighting and/or
- Bias instruction type towards recently executed actual instructions
Just adding a quick comment to this, PR2572 on opentitan (I think) got folded into this area and we opted for the "intermediate-level" fix for the update of the LSFR/PRNG for the dummy op stream.
At some point if we evaluate the efficacy/utility of these dummy op streams, this comment is just to remind me/us that we did that and that in theory a req/ack interface to a CSRNG would be possible (though probably overkill).