1- This is strange since scope.adc.trig_count returns an integer, not a float. Was the capture_trace() successful? What’s the actual value of scope.adc.trig_count?
2- I’m not familiar with that particular AES implementation. Follow what gets compiled when you run make. In our own AES implementation, you can find the trigger_high() calls in hardware/victims/firmware/simpleserial-aes/simpleserial-aes.c
Sorry about the float. I had initalized an np.array just to collect the trig counts in a loop for multiple traces, and didn’t define it as an int. It returns an int. However, scope.adc.trig_count returns 49450 regardless of whether I call it before or after the cw.capture_trace() function. The latter seems to work, I try with two different plaintexts and get the following:
which is what you’d expect (I used the plaintexts from ...\chipwhisperer\hardware\victims\firmware\crypto\tiny-AES128-C\aes.c for easy reference.
"To pull it in, go to hardware/victims/firmware/crypto/ and run: git submodule update --init secAES-ATmega8515/"
I ran the above work and used PLATFORM='CWLITEXMEGA ',CRYPTO_ TARGET=‘MASKEDAES’ was successfully compiled and run, but after I passed in the mask, the power consumption obtained indicates that the mask did not run inside the chip. What is the situation.
I used to run and collect power successfully, but now I haven’t made any changes, but the mask can’t run internally. These two pictures show the power consumption of AES-128MASK collected before and the power consumption of AES-128MASK now.
I hope I can get your help. This problem has bothered me for four days. I can guarantee that the mask array can be transferred to the microcontroller, but it is not useful in the encryption process after it is transferred. Plaintext and key can be transferred to the chip and successfully encrypted.