Indice
1 Physically Unclonable Functions: principi, design e
metriche di valutazione 7
1.1 Introduzione alle Physically Unclonable Functions . . . . . . . . . . . . . 7
1.1.1 Definizione generale di PUF . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.2 Ruolo delle PUF nella sicurezza hardware . . . . . . . . . . . . . . . . . . 7
1.2 Disordine fisico e unicità hardware . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1 Il concetto di physical disorder . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2 Disordine fisico nei chip in silicio . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Variazioni di processo nei circuiti integrati . . . . . . . . . . . . . . . . . . 8
1.3.1 Variazioni inter-die . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.2 Variazioni intra-die . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.3 Effetto dello scaling tecnologico . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Silicon-Based Physically Unclonable Functions . . . . . . . . . . . . . . . 10
1.4.1 Principio di funzionamento . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.2 Meccanismo challenge-response . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.3 Variazioni fisiche come sorgente della risposta . . . . . . . . . . . . . . . . 10
1.5 Classificazione delle PUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5.1 Weak PUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5.2 Strong PUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6 Progettazione generale di una PUF in silicio . . . . . . . . . . . . . . . . 13
1.6.1 Trasformazione della variazione fisica in grandezza misurabile . . . . . . . 13
1.6.2 Digitalizzazione della grandezza misurabile . . . . . . . . . . . . . . . . . 14
1.7 Delay-Based PUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7.1 Principio generale delle PUF basate su ritardo . . . . . . . . . . . . . . . 14
1.8 Arbiter PUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.8.1 Struttura generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.8.2 Ruolo della challenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.8.3 Funzionamento della gara temporale . . . . . . . . . . . . . . . . . . . . . 15
1.8.4 Perché la Arbiter PUF è una Strong PUF . . . . . . . . . . . . . . . . . . 16
1.9 Limitazioni della Arbiter PUF . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.9.1 Problemi di robustezza temporale . . . . . . . . . . . . . . . . . . . . . . 16
1.9.2 Problemi di simmetria del routing . . . . . . . . . . . . . . . . . . . . . . 16
1.9.3 Vulnerabilità agli attacchi di machine learning . . . . . . . . . . . . . . . 17
1.10 Secure Arbiter PUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.10.1 Motivazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.10.2 Struttura generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.10.3 Rete di output e combinazione delle risposte . . . . . . . . . . . . . . . . 18
1.10.4 Vantaggi e limiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.11 Ring Oscillator PUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1 2
1.11.1 Principio di funzionamento . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.11.2 Architettura della Ring Oscillator PUF . . . . . . . . . . . . . . . . . . . 19
1.11.3 Interpretazione fisica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.12 SRAM PUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.12.1 Struttura della cella SRAM . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.12.2 Power struggle all’accensione . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.12.3 Risposta generata da un blocco SRAM . . . . . . . . . . . . . . . . . . . . 20
1.13 Metriche di qualità delle PUF . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.13.1 Necessità delle metriche . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.14 Hamming Distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.14.1 Definizione intuitiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.14.2 Definizione più rigorosa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.15 Uniqueness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.15.1 Significato della uniqueness . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.15.2 Inter-chip Hamming Distance . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.16 Reliability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.16.1 Significato della reliability . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.16.2 Intra-chip Hamming Distance . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.16.3 Effetto di temperatura, tensione e aging . . . . . . . . . . . . . . . . . . . 24
1.17 Applicazioni delle PUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.17.1 Generazione e memorizzazione di chiavi crittografiche . . . . . . . . . . . 24
1.17.2 Autenticazione di entità . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.17.3 Anti-cloning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.17.4 Hardware root of trust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.17.5 Hardware metering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.17.6 Tamper resistant hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2 Applicazioni delle PUF nella sicurezza hardware ed
embedded 26
3 Generazione di chiavi crittografiche tramite PUF 26
3.1 Approccio tradizionale alla gestione delle chiavi . . . . . . . . . . . . . . 26
3.2 Rischi legati alla memorizzazione permanente delle chiavi . . . . . . . . 26
3.3 Soluzione basata su PUF: generazione della chiave on demand . . . . . 27
4 Il problema dell’instabilità delle risposte PUF 27
4.1 Perché una PUF non genera sempre la stessa risposta . . . . . . . . . . 27
4.2 Conseguenza sulle chiavi crittografiche . . . . . . . . . . . . . . . . . . . . 28
5 Codici di correzione d’errore 28
5.1 Ruolo degli Error Correction Codes . . . . . . . . . . . . . . . . . . . . . . 28
5.2 Concetto di canale binario simmetrico . . . . . . . . . . . . . . . . . . . . 29
3
6 Repetition codes 29
6.1 Principio di base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2 Esempio di codifica e rumore . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.3 Decodifica tramite regola di maggioranza . . . . . . . . . . . . . . . . . . 30
7 Numero di codeword e capacità informativa del codice 31
7.1 Codeword e bit informativi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.2 Ridondanza e costo del codice . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8 Distanza di Hamming e distanza minima 32
8.1 Distanza di Hamming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.2 Distanza minima di un codice . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.3 Interpretazione della distanza minima . . . . . . . . . . . . . . . . . . . . . 33
9 Rilevamento e correzione degli errori 33
9.1 Rilevamento degli errori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
9.2 Correzione degli errori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
9.3 Perché la correzione richiede maggiore distanza . . . . . . . . . . . . . . 34
10Check bits e overhead dei codici 34
10.1 Necessità dei bit di controllo . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
10.2 Relazione tra data bits, check bits e codeword length . . . . . . . . . . . 35
10.3 Overhead e complessità circuitale . . . . . . . . . . . . . . . . . . . . . . . . 35
11Codici per correzione di errori multipli 35
11.1 Necessità di codici più potenti . . . . . . . . . . . . . . . . . . . . . . . . . . 35
11.2 Golay codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
11.3 BCH e Reed-Solomon codes . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
12Uso degli ECC per generare risposte PUF affidabili 37
12.1 Problema da risolvere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
12.2 Code-offset construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
13Stage 1: Helper Data Generation 38
13.1 Generazione della risposta PUF . . . . . . . . . . . . . . . . . . . . . . . . . 38
13.2 Scelta di un codeword casuale . . . . . . . . . . . . . . . . . . . . . . . . . . 38
13.3 Generazione degli helper data . . . . . . . . . . . . . . . . . . . . . . . . . . 38
13.4 Perché gli helper data sono utili . . . . . . . . . . . . . . . . . . . . . . . . 39
14Stage 2: Response Reproduction 39
14.1 Generazione della risposta rumorosa . . . . . . . . . . . . . . . . . . . . . . 39
14.2 Uso degli helper data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
14.3 Correzione tramite ECC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
14.4 Condizione fondamentale per il successo . . . . . . . . . . . . . . . . . . . 41
4
15Interpretazione della code-offset construction 41
15.1 Perché non si memorizza direttamente la risposta PUF . . . . . . . . . 41
15.2 Ruolo del codeword casuale . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
15.3 Ruolo dell’ECC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
16Collegamento tra affidabilità della PUF e sicurezza
della chiave 42
16.1 Unicità e affidabilità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
16.2 Stabilizzazione della risposta . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
16.3 Sicurezza rispetto alla memorizzazione tradizionale . . . . . . . . . . . . 43
17Spiegazione delle notazioni principali 43
17.1 Challenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
17.2 Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
17.3 Errore additivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
17.4 Codeword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
17.5 Helper data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
17.6 Peso di Hamming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
18Autenticazione dei dispositivi tramite PUF 45
18.1 Significato di autenticazione di un’entità fisica . . . . . . . . . . . . . . . 45
18.2 Identity provisioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
18.2.1 Assegnazione dell’identità . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
18.2.2 Ruolo dell’identificativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
18.3 Embedding e characterization della PUF . . . . . . . . . . . . . . . . . . . 46
18.3.1 Inserimento della PUF nel dispositivo . . . . . . . . . . . . . . . . . . . . 46
18.3.2 Caratterizzazione iniziale . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
18.3.3 Database sicuro delle CRP . . . . . . . . . . . . . . . . . . . . . . . . . . 46
19Deployment sicuro e fase di autenticazione 47
19.1 Secure device deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
19.2 Procedura di autenticazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
19.2.1 Invio dell’identificativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
19.2.2 Scelta della challenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
19.2.3 Generazione della response . . . . . . . . . . . . . . . . . . . . . . . . . . 48
19.2.4 Confronto tra response registrata e response ricevuta . . . . . . . . . . . . 48
19.2.5 Eliminazione della CRP usata . . . . . . . . . . . . . . . . . . . . . . . . . 48
20Fuzzy identification e rumore nelle PUF 49
20.1 Problema della non perfetta riproducibilità . . . . . . . . . . . . . . . . . 49
20.2 Identificazione fuzzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
20.3 Compromesso tra affidabilità e sicurezza . . . . . . . . . . . . . . . . . . . 49
5
21False Acceptance Rate, False Rejection Rate ed Equal
Error Rate 50
21.1 False Acceptance Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
21.2 False Rejection Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
21.3 Equal Error Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
21.4 Distribuzioni intra-Hamming e inter-Hamming . . . . . . . . . . . . . . . 50
22Esempio numerico su una rete di quattro dispositivi 51
22.1 Descrizione dell’esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
22.2 Tabella delle risposte dei dispositivi . . . . . . . . . . . . . . . . . . . . . . 52
22.3 Caso con soglia t = 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
22.3.1 Significato della soglia nulla . . . . . . . . . . . . . . . . . . . . . . . . . . 52
22.3.2 Calcolo del FRR con t = 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
22.3.3 Calcolo del FAR con t = 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
22.3.4 Calcolo dell’EER con t = 0 . . . . . . . . . . . . . . . . . . . . . . . . . . 53
22.4 Caso con soglia t = 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
22.4.1 Significato della soglia pari a uno . . . . . . . . . . . . . . . . . . . . . . . 53
22.4.2 Calcolo del FRR con t = 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
22.4.3 Calcolo del FAR con t = 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
22.4.4 Calcolo dell’EER con t = 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 54
22.5 Interpretazione dell’esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
23PUF-Based Hardware Metering 55
23.1 Problema della sovrapproduzione hardware . . . . . . . . . . . . . . . . . 55
23.2 Obiettivo del hardware metering . . . . . . . . . . . . . . . . . . . . . . . . 55
23.3 Controllo del numero di chip attivati . . . . . . . . . . . . . . . . . . . . . 56
24Design-for-Anti-Counterfeit contro l’overproduction 56
24.1 Inserimento del lock nel progetto . . . . . . . . . . . . . . . . . . . . . . . . 56
24.2 Integrazione della PUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
24.3 Passaggio alle fasi di sintesi e layout . . . . . . . . . . . . . . . . . . . . . . 56
24.4 Fabbricazione e lettura della risposta PUF . . . . . . . . . . . . . . . . . 57
24.5 Invio della unlock key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
25Esempio sui circuiti sequenziali 57
25.1 Macchina a stati originale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
25.2 Aggiunta di stati non funzionali . . . . . . . . . . . . . . . . . . . . . . . . 58
25.3 Inserimento della PUF e del MUX . . . . . . . . . . . . . . . . . . . . . . . 58
25.4 Lettura della risposta PUF dopo la fabbricazione . . . . . . . . . . . . . 58
25.5 Inizializzazione nello stato generato dalla PUF . . . . . . . . . . . . . . . 59
25.6 Applicazione della chiave di sblocco . . . . . . . . . . . . . . . . . . . . . . 59
25.7 Transizione verso lo stato funzionale . . . . . . . . . . . . . . . . . . . . . . 59
6
26Uso delle PUF in prodotti reali 60
26.1 Applicazioni commerciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
26.2 Vantaggio rispetto alla memorizzazione tradizionale . . . . . . . . . . . 60
27Possibili attacchi alle Silicon PUFs 60
27.1 Panoramica degli attacchi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
28Attacco di duplicazione 61
28.1 Obiettivo dell’attacco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
28.2 Difficoltà pratica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
29Model building tramite misurazione diretta 61
29.1 Obiettivo dell’attacco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
29.2 Attacco invasivo e alterazione della PUF . . . . . . . . . . . . . . . . . . . 61
30Model building tramite challenge adattive 62
30.1 Concetto di challenge adattive . . . . . . . . . . . . . . . . . . . . . . . . . . 62
30.2 Difficoltà della modellazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
31Controlled PUF 62
31.1 Concetto generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
31.2 Hash prima della PUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
31.2.1 Pre-composizione con funzione hash . . . . . . . . . . . . . . . . . . . . . 63
31.2.2 Protezione contro chosen challenge attacks . . . . . . . . . . . . . . . . . 63
31.3 Personality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
31.3.1 Motivazione della personality . . . . . . . . . . . . . . . . . . . . . . . . . 64
31.3.2 PUF diverse in modo effettivo . . . . . . . . . . . . . . . . . . . . . . . . . 64
31.4 Error Correcting Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
31.4.1 Necessità della correzione degli errori . . . . . . . . . . . . . . . . . . . . . 64
31.4.2 Informazione di ridondanza . . . . . . . . . . . . . . . . . . . . . . . . . . 64
31.5 Hash dopo la PUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
31.5.1 Post-composizione con funzione hash . . . . . . . . . . . . . . . . . . . . . 65
31.5.2 Effetto avalanche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7
1 Physically Unclonable Functions: principi, design e
metriche di valutazione
1.1 Introduzione alle Physically Unclonable Functions
1.1.1 Definizione generale di PUF
Le Physically Unclonable Functions, abbreviate in PUFs, sono primitive hardware usate
nella hardware security per identificare, autenticare e proteggere dispositivi fisici. L’idea di
base è che ogni circuito integrato, anche se progettato con lo stesso layout e prodotto con lo stesso
processo tecnologico, presenta piccole differenze fisiche inevitabili dovute alla fabbricazione.
Una PUF sfrutta queste micro-variazioni per generare una risposta digitale caratteristica del
singolo dispositivo. Per questo può essere vista come una sorta di impronta digitale fisica del
chip: due chip nominalmen
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti hardware and embedded security (parte 3)
-
Hardware and embedded security - parte 4
-
Appunti di Hardware and embedded security - parte 1
-
Appunti Hardware and embedded security (parte 4)