Question about TVLA for multiply operations

Hi, I am trying to test the feasibility of using shuffling against SCA. But for multiply operations not AES S-box lookup. I load the key and text the same and its still in a loop, but just the operation is a multiply instead of the lookup.

I modified the code in ‘simpleserial-base’ and the ‘CW-analyzer for CPA attacks’ notebook and I’m seeing promising results there. If I randomly shuffle the order of operations, CPA is unable to guess the key. That is, instead of always using plaintexts A,B,C,D in that order, I randomly shuffle this to be say D,B,C,A or B,A,D,C etc each time.

I saw the TVLA notebook and wanted to give that a try to see if I could ‘quantify’ my approach. But when I tried the same technique of shuffling, the traces still crosses 4.5. In fact, the plot for the original and shuffled approaches are nearly identical. Unfortunately, I’m very new to SCA and don’t know much about TVLA (apart from what I read online) so does this mean shuffling the order of operations doesn’t work? For TVLA, I only shuffled the ‘random’ plaintexts and kept the fixed plaintexts as they were.

Any help/clarification would be much appreciated! Thank you!

Hi Karthik,

TVLA works by identifying statistically significant differences between two groups of traces: one group where all inputs are kept constant for each trace, and another group where usually one of the inputs is varied while the others are kept constant.

It is therefore a mechanism to determine whether the operand which was chosen to vary contributes statistical differences to the power signature; differences which may be leveraged to mount a side-channel power attack.

If I understand your description of your multiplier, then I fully expect that the TVLA test would fail: changing the order of the operands does not untie the contribution of the value of an operand from the power consumption.

Also note that the fact that you did not break your multiplier with CPA does not mean that it cannot be broken… conversely, the fact that TVLA fails does not mean that a side channel attack will succeed. Although in this case, without having thought about it too much, I don’t think that changing the order of the operands is a very strong countermeasure.


Hi Jean-Pierre,

Thank you! I’ve been reading some papers and that seems to be the gist of it. TVLA won’t tell me that something like shuffling works or not.

I think in my case showing that the attack becomes much more difficult would be sufficient. So I would be shuffling between thousands of multiplications. So I’m hoping to show that this will require N! more traces and for N in the thousands that clearly becomes untenable. I agree that my proposed method will not be as effective as masking which totally hides the side channel.

Also I am proposing new hardware to do this shuffling efficiently because it seems shuffling in SW can be easily circumvented too.