Supponiamo di possedere una smart card e voglio fare un attacco di canale sul lato di potenza differenziale sul suo meccanismo di autenticazione reciproca.
Questo è il meccanismo di autenticazione reciproca utilizzato dalla mia carta (Supponiamo che la chiave di autenticazione sia AuthKey e sia già condivisa tra la carta e l'utente):
- L'utente invia un comando alla carta per richiedere un numero casuale + un numero casuale chiamato sfida 1
- La carta restituisce il suo numero casuale chiamato Sfida 2 +
Card_enc1 = encrypt(AuthKey , Challenge 1)
all'utente. - Utente riceve
Card_enc1
e lo confronta con l'output diUser_enc1 = encrypt(AuthKey , Challenge 1)
. Se erano uguali, restituisceUser_enc2 = encrypt (AuthKey, Challenge 2)
alla carta. - La scheda riceve
User_enc2
e la confronta conCard_enc2 = encrypt (AuthKey, Challenge 2)
. Se erano uguali, la carta e il lettore sono stati autenticati con successo.
Come vedi sopra, l'utente non ha inviato AutheKey
mentre nei documenti che ho letto sul canale laterale attacca l'attaccante deve impostare valori diversi per la chiave di crittografia e crittografare dati diversi con quella chiave.
Ora, la domanda è: come posso fare un attacco di canale laterale su questa procedura di autenticazione?
Una risposta passo passo è più utile.