No presence of Jitter - Lab1_1B (SCA201)

In this lab using the EXTRA_OPTS=JITTER_2 flag when building the firmware for our target(XMEGA in my case I have the chipwhisperer lite 2-part) is supposed to disperse jitter throughout the AES operation, contrarily to the previous LAB(1_1A) which only creates jitter due to the device triggering.

However when a launch the CPA attack using the lascar (without doing any resynchronizing ) the attack is successful and fully recovers the key, however this is not supposed to happen as in the notebook it is explicitly stated that: (“Again, it probably won’t work, but let’s try our usual CPA attack. We’ll use LASCAR, a very fast side channel analysis library, to speed things up” and "Nothing! Again, nothing unexpected, but it shows that there’s enough jitter here to not just be averaged out…)

I 've searched the simpleserial-aes.c file and the JITTER_2 marco is undefined/missing, I 've also seached in the include libraries/header files but I could’t find any definition of JITTER_2.

I 've even tried the prerecorded traces(provided and loaded with the simulated notebook) before searching the firmware files/path to rule out any possibility that my device may operates falsely, but again the some error occurs and the key is fully recovered without doing anything.

I would be grateful if anyone can suggest a way to spread the jitter throughout the AES operations, since I am stuck and I 've tried anything I could think of may solve the problem described.

(p.s I am capturing 1000 traces of 5000 samples each - as I didn’t change anything in the corresponding HARDWARE notebook)

–UPDATE–: I was actually wrong the prerecorded traces provided work fine, and my setup(XMEGA target) started to spread the jitter when I used TINYAES128C library as the “CRYPTO_TARGET” instead of AVRCRYPTOLIB. So the library was the caveat, still I would like to learn more about the JITTER_2 macro, I couldn’t help searching to find where it is defined and what is actually doing(in the /victims/firmware path mentioned earlier), but I had no luck. So I am looking forward to hear your suggestions/answers on the latter.

Hi,

You can find the jitter code at https://github.com/newaetech/chipwhisperer/blob/develop/hardware/victims/firmware/crypto/tiny-AES128-C/aes.c#L229. I’ll get Lab 1_1B changed up so that it’s clear that it only works on TINYAES.

Alex

1 Like

I am really soothed, you saved me big time, thank you Alex, everything makes sense now! Extra kudos for replying really fast, keep up the good work!

1 Like