Towards the Automatic Applications of Side Channel Countermeasures Francesco Regazzoni
Francesco Regazzoni 23 October 2015, Chia, Italy
- P. 1
Towards the Automatic Applications of Side Channel Countermeasures - - PowerPoint PPT Presentation
Towards the Automatic Applications of Side Channel Countermeasures Francesco Regazzoni Francesco Regazzoni 23 October 2015, Chia, Italy P. 1 Contents 1 Motivations 2 DPA Resistant Synthesis 3 DPA Resistant Place and Route 4 DPA
Francesco Regazzoni 23 October 2015, Chia, Italy
Motivations
DPA Resistant Synthesis
DPA Resistant Place and Route
DPA Resistant Instruction Set Extension
Quick Note on Software Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Motivations
DPA Resistant Synthesis
DPA Resistant Place and Route
DPA Resistant Instruction Set Extension
Quick Note on Software Francesco Regazzoni 23 October 2015, Chia, Italy
x y x XOR y
Francesco Regazzoni 23 October 2015, Chia, Italy
x y x XOR y
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Intermediate values of the cryptographic algorithm Intermediate values processed by the device Power consumption of the cryptographic device
Francesco Regazzoni 23 October 2015, Chia, Italy
Intermediate values of the cryptographic algorithm Intermediate values processed by the device Power consumption of the cryptographic device Masking Countermeasures
Francesco Regazzoni 23 October 2015, Chia, Italy
Intermediate values of the cryptographic algorithm Intermediate values processed by the device Power consumption of the cryptographic device Hiding Countermeasures Masking Countermeasures
Francesco Regazzoni 23 October 2015, Chia, Italy
Intermediate values of the cryptographic algorithm Intermediate values processed by the device Power consumption of the cryptographic device Hiding Countermeasures Masking Countermeasures
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Motivations
DPA Resistant Synthesis
DPA Resistant Place and Route
DPA Resistant Instruction Set Extension
Quick Note on Software Francesco Regazzoni 23 October 2015, Chia, Italy
x y x XOR y
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Motivations
DPA Resistant Synthesis
DPA Resistant Place and Route
DPA Resistant Instruction Set Extension
Quick Note on Software Francesco Regazzoni 23 October 2015, Chia, Italy
// Calculate S-box (plaintext XOR key) int PRESENT(int plaintext, int key) {
1 int result = 0; // initialize the result 2 plaintext = plaintext ^key; // perform the xor with the key 3 result = S[plaintext]; // perform the S-box 4 return result; }; // return the result
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
ALU ISE A B Memory Register File ISE ISE IMM.
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 23 October 2015, Chia, Italy
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 23 October 2015, Chia, Italy
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 23 October 2015, Chia, Italy
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 23 October 2015, Chia, Italy
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 23 October 2015, Chia, Italy
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 23 October 2015, Chia, Italy
processor HDL code ISE HDL code Protected Library crypto.c software CMOS Library
0101001. 1100001. 1100001. 0101001.
Security Evaluaton ISE Extractor Protected Synth and P&R CMOS Synth and P&R crypto_ISE.c SPICE level simulation Francesco Regazzoni 23 October 2015, Chia, Italy
processor HDL code ISE HDL code Protected Library crypto.c software CMOS Library
0101001. 1100001. 1100001. 0101001.
Security Evaluaton ISE Extractor Protected Synth and P&R CMOS Synth and P&R crypto_ISE.c SPICE level simulation Francesco Regazzoni 23 October 2015, Chia, Italy
processor HDL code ISE HDL code Protected Library crypto.c software CMOS Library
0101001. 1100001. 1100001. 0101001.
Security Evaluaton ISE Extractor Protected Synth and P&R CMOS Synth and P&R crypto_ISE.c SPICE level simulation Francesco Regazzoni 23 October 2015, Chia, Italy
processor HDL code ISE HDL code Protected Library crypto.c software CMOS Library
0101001. 1100001. 1100001. 0101001.
Security Evaluaton ISE Extractor Protected Synth and P&R CMOS Synth and P&R crypto_ISE.c SPICE level simulation Francesco Regazzoni 23 October 2015, Chia, Italy
processor HDL code ISE HDL code Protected Library crypto.c software CMOS Library
0101001. 1100001. 1100001. 0101001.
Security Evaluaton ISE Extractor Protected Synth and P&R CMOS Synth and P&R crypto_ISE.c SPICE level simulation Francesco Regazzoni 23 October 2015, Chia, Italy
processor HDL code ISE HDL code Protected Library crypto.c software CMOS Library
0101001. 1100001. 1100001. 0101001.
Security Evaluaton ISE Extractor Protected Synth and P&R CMOS Synth and P&R crypto_ISE.c SPICE level simulation Francesco Regazzoni 23 October 2015, Chia, Italy
sbox result
Plain Text key Plain Text key
sbox result
Plain Text key
sbox result
Plain Text key
sbox result
Plain Text key
sbox result
protected logic non protected logic Legend Francesco Regazzoni 23 October 2015, Chia, Italy
10
10
10
10
10
10
10 10
1
0.5 1 1.5 2 2.5 3 3.5 4
noise standard deviation mutual information [bit] full CMOS XOR ISE S-box ISE XOR + S-box ISE full ISE
Francesco Regazzoni 23 October 2015, Chia, Italy
Motivations
DPA Resistant Synthesis
DPA Resistant Place and Route
DPA Resistant Instruction Set Extension
Quick Note on Software Francesco Regazzoni 23 October 2015, Chia, Italy
Transformation Target Identification Code Transformation
sbci r21,0xfd ld r25,Y movw r18,r26 subi r18,0x4f
Input Software Implementation Sensitive Parts
sbci r21,0xfd lds r23,705 mov r25,r23 ld r25,Y lds r23,705 mov r18,r23 mov r19,r23 movw r18,r26 subi r18,0x4f Targets for Protection Example (A) Protected Implementation Example (A) Targets for Protection Example (B) Protected Implementation Example (B) sbci r21,0xfd ld r25,Y movw r18,r26 subi r18,0x4f sbci r21,0xfd ld r25,Y movw r18,r26 subi r18,0x4f
Information Leakage Analysis
Francesco Regazzoni 23 October 2015, Chia, Italy
846 847 848 849 850 851 852 853 854 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
sbci r21,0xfd ld r25,Y movw r18,r26 subi r18,0x4f sbci r19,0xfd movw r28,r18 ld r30,Y Sensitivity (Mutual information) Clock cycle
Instruction - time mapping of unprotected implementation
Francesco Regazzoni 23 October 2015, Chia, Italy
846 847 848 849 850 851 852 853 854 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
sbci r21,0xfd ld r25,Y movw r18,r26 subi r18,0x4f sbci r19,0xfd movw r28,r18 ld r30,Y Sensitivity (Mutual information) Clock cycle
Instruction - time mapping of unprotected implementation
1620 1622 1624 1626 1628 1630 1632 1634 1636 1638 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
sbci r21,0xfd lds r23,705 mov r25,r23 ld r25,Y lds r23,705 mov r18,r23 mov r19,r23 movw r18,r26 subi r18,0x4f sbci r19,0xfd movw r28,r18 lds r23,705 mov r30,r23 ld r30,Y Sensitivity (Mutual information) Clock cycle
Instruction - time mapping of protected implementation
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy
Francesco Regazzoni 23 October 2015, Chia, Italy