Bricks and Tools for Secure Hardware Implementations Francesco Regazzoni
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
- P. 1
Bricks and Tools for Secure Hardware Implementations Francesco - - PowerPoint PPT Presentation
Bricks and Tools for Secure Hardware Implementations Francesco Regazzoni Francesco Regazzoni 06 June 2014, ibenik, Croatia P. 1 Why Electronic Design Automation? Surely the purpose of science is to ease human hardship Galileo,
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
x y x XOR y
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
x y x XOR y
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
// 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 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
ALU ISE A B Memory Register File ISE ISE IMM.
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
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 06 June 2014, Šibenik, Croatia
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 06 June 2014, Šibenik, Croatia
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 06 June 2014, Šibenik, Croatia
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 06 June 2014, Šibenik, Croatia
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 06 June 2014, Šibenik, Croatia
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 06 June 2014, Šibenik, Croatia
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 06 June 2014, Šibenik, Croatia
// 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 SBOX (std-cell)
MCML-CMOS converter key-reg CMOS -MCML converter 4 4 4 4
XOR+S-box ISE
// Calculate S-box (plaintext XOR key) int PRESENT_XOR+S-box-ISE(int plaintex) {
1 int result = 0; // initialize the result
// instantiate the new instruction s-box(pt ^key)
2 Instr_1(plaintex, result); 3 return result; }; // return the result
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
// 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
4 4 4 4
// Calculate S-box (plaintext XOR key) int PRESENT_XOR+S-box-ISE(int plaintex) {
1 int result = 0; // initialize the result
// instantiate the new instruction s-box(pt ^key)
2 Instr_1(plaintex, result); 3 return result; }; // return the result
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
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 06 June 2014, Šibenik, Croatia
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 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
identify sensitive parts Partition Sensitive / Non Sensitive Protect Sensitive Security Evaluation
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
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 06 June 2014, Šibenik, Croatia
100 200 300 400 500 600 700 800 900 1000 1100 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Sensitivity (Mutual information) Clock cycle ARK SB SR MC
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
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 06 June 2014, Šibenik, Croatia
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 06 June 2014, Šibenik, Croatia
500 1000 1500 2000 2500 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Sensitivity (Mutual information) Clock cycle ARK SB SR MC
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia
Francesco Regazzoni 06 June 2014, Šibenik, Croatia