60 likes | 243 Views
Filipe Rosado da-Fonseca frdafonseca @ mind-security.com Portugal. How to Securely Implement Cryptosystems Against Side-Channel Attacks on General Purpose Cryptographic Hardware. Common Implementation. The cryptosystem to implement is selected.
E N D
Filipe Rosado da-Fonseca frdafonseca@mind-security.com Portugal How to Securely Implement Cryptosystems Against Side-Channel Attacks on General Purpose Cryptographic Hardware
Common Implementation • The cryptosystem to implement is selected. • The cryptosystem is implemented by use of the functions made available by the cryptographic hardware's APIs.
Cryptographic Hardware's APIs • Non-cryptographic Functions (xor, and, or, not, ...): protected against simple side-channel attacks. • Cryptographic Primitives (RSA, AES, SHA-1, ...): protected against both simple and differential side-channel attacks.
Example: CBC-MAC TK(M) { if ((|M|=0) Ú ((|M| mod 128)≠0)) then return error; n_m:=|M|/128; for(j:=1; j≤n_m; j++) mj:=M[(j-1)*128...j*128-1]; y0:=<<0>>128; for(i:=1; i≤n_m; i++) { x1i:=xor(mi, yi-1); yi:=AESK(x1i); } tag:=yn_m; return tag; }
Secure Implementation • The cryptosystem to implement is selected. • The cryptosystem is tested for leakages. If leakages are found, then one goes back to step 1. Otherwise, one goes to step 3. • The cryptosystem is implemented by use of the functions made available by the cryptographic hardware's APIs.
Questions and Further Information Annotated Slides: http://mind-security.com/papers/1 SCA1 Model: http://mind-security.com/papers/3 Email: frdafonseca@mind-security.com