Conceptual

Side-Channel-Resistant Fisher-Yates Shuffle for Protecting Embedded Neural Network Weights

Shuffling a neural network layer's multiplications with the Fisher-Yates algorithm is meant to hide weights from power side-channel attacks, but its modular reduction j = r mod (i+1) uses a division whose power trace leaks j, letting an attacker undo the shuffle and recover the weights. This work makes the shuffle side-channel-resistant by computing the index without any division: the modulus is applied through multiplicative masking (a secret integer coprime to i+1 paired with its precomputed modular inverse) and Blakely's division-free modular multiplication. On an ARM Cortex-M4 the protected shuffle defeats a correlation-power-analysis weight-recovery attack at a time overhead of only 4% down to 0.49% for larger layers.