Assume that I have a smart card and I want to do a differential power side channel attack on its mutual authentication mechanism.
This is the mutual authentication mechanism that my card using(Let assume that the authentication key is AuthKey and it is shared between the card and the user already):
- User send a command to the card to request for a random number + a random number named challenge 1
- Card return its random number named Challenge 2 +
Card_enc1 = encrypt(AuthKey , Challenge 1)to user.
- User receive
Card_enc1and compare it with output of
User_enc1 = encrypt(AuthKey , Challenge 1). If they was equal, it returns
User_enc2 = encrypt (AuthKey, Challenge 2)to the card.
- Card receive
User_enc2and compare it with
Card_enc2 = encrypt (AuthKey, Challenge 2). If they was equal then the card and reader are successfully authenticated.
As you see above, the user didn't send the
AutheKey while in the documents that I read on side channel attacks the attacker must set different values for encryption key and encrypt different data with that key.
Now, the question is, how can I do side channel attack on this authentication procedure?
A step by step answer is more useful.