target’s behaviour will raise the level of security of a
component against physical attacks.
In the scope of the COGITO project, we plan to
implement code polymorphism in secure components
thanks to
deGoal
, a framework for runtime code gen-
eration that is applicable to embedded devices even
with limited memory and computing resources. We
have presented the various ways to leverage polymor-
phism, and illustrated them with a simple case. A
large body of the work planned in this project will also
consist in the analysis of the potential flaws that run-
time code generation could bring to secure devices.
ACKNOWLEDGEMENTS
This work was partially funded by the French Na-
tional Research Agency (ANR) as part of the program
Digital Engineering and Security (INS-2013), under
grant agreement ANR-13-INSE-0006-01.
REFERENCES
Agosta, G., Barenghi, A., and Pelosi, G. (2012). A code
morphing methodology to automate power analysis
countermeasures. In DAC, pages 77–82. ACM.
Amarilli, A., M¨uller, S., Naccache, D., Page, D., Rauzy,
P., and Tunstall, M. (2011). Can Code Polymorphism
Limit Information Leakage? In WISTP, LNCS 6633,
pages 1–21.
Aracil, C. and Courouss´e, D. (2013). Software acceler-
ation of floating-point multiplication using runtime
code generation. In ICEAC, pages 18–23.
Arora, D., Ravi, S., Raghunathan, A., and Jhaals,
N. K. (2005). Secure Embedded Processing through
Hardware-Assisted Run-Time Monitoring. In DATE,
pages 178–183.
Barak, B., Goldreich, O., Impagliazzo, R., Rudich, S., Sa-
hai, A., Vadhan, S., and Yang, K. (2001). On the
(im) possibility of obfuscating programs. In CRYPTO,
pages 1–18. Springer.
Barbu, G., Thiebeauld, H., and Guerin, V. (2010). Attacks
on Java Card 3.0 Combining Fault and Logical At-
tacks. In CARDIS, volume 6035 of LNCS, pages 148–
163. Springer.
Bayrak, A. G., Velickovic, N., Ienne, P., and Burleson,
W. (2012). An architecture-independent instruction
shuffler to protect against side-channel attacks. ACM
TACO, 8(4):20:1–20:19.
Chakraborty, R. and Bhunia, S. (2009). Harpoon: An
obfuscation-based soc design methodology for hard-
ware protection. TCAD, 28(10):1493–1502.
Charles, H.-P., Courouss´e, D., Lomller, V., Endo, F., and
Gauguey, R. (2014). deGoal a Tool to Embed Dy-
namic Code Generators into Applications. In Com-
piler Construction, volume 8409 of LNCS, pages 107–
112. Springer.
Collberg, C., Thomborson, C., and Low, D. (1997). A tax-
onomy of obfuscating transformations. Technical Re-
port 148, Department of Computer Science, Univer-
sity of Auckland.
Courouss´e, D., Lom¨uller, V., and Charles, H.-P. (2013).
Introduction to Dynamic Code Generation – an Ex-
periment with Matrix Multiplication for the STHORM
Platform, chapter 6, pages 103–124. Springer.
Dutertre, J.-M., Possamai Bastos, R., Potin, O., Flottes, M.-
L., Rouzeyre, B., and Di Natale, G. (2013). Sensitiv-
ity tuning of a bulk built-in current sensor for optimal
transient-fault detection. Microelectronics Reliability,
53(9):1320–1324.
Genkin, D., Shamir, A., and Tromer, E. (2013). RSA Key
Extraction via Low-Bandwidth Acoustic Cryptanaly-
sis. Cryptology ePrint Archive, Report 2013/857.
Guilley, S., Sauvage, L., Flament, F., Vong, V.-N.,
Hoogvorst, P., and Pacalet, R. (2010). Evaluation
of power constant dual-rail logics countermeasures
against DPA with design time security metrics. IEEE
Trans. Computers, 59(9):1250–1263.
Kotzmann, T., Wimmer, C., M¨ossenb¨ock, H., Rodriguez,
T., Russell, K., and Cox, D. (2008). Design of the
java hotspot client compiler for java 6. ACM TACO,
5(1):7:1–7:32.
Madou, M., Anckaert, B., Moseley, P., Debray, S., Sut-
ter, B., and Bosschere, K. (2006). Software protec-
tion through dynamic code mutation. volume 3786 of
LNCS, pages 194–206. Springer.
Mangard, S., Oswald, E., and Popp, T. (2007). Power anal-
ysis attacks: Revealing the secrets of smart cards.
Springer.
May, D., Muller, H., and Smart, N. (2001a). Random
Register Renaming to Foil DPA. In CHES, volume
LNCS 2162, pages 28–38. Springer.
May, D., Muller, H. L., and Smart, N. P. (2001b). Non-
deterministic processors. In ACISP’01, pages 115–
129. Springer.
Moro, N., Heydemann, K., Encrenaz, E., and Robisson, B.
(2014). Formal verification of a software countermea-
sure against instruction skip attacks. Journal of Cryp-
tographic Engineering, pages 1–12.
Novak, R. (2003). Side-channel attack on substitution
blocks. volume 2846 of LNCS, pages 307–318.
Springer.
Petroni, Jr., N. L. and Hicks, M. (2007). Automated detec-
tion of persistent kernel control-flow attacks. In CCS,
pages 103–115. ACM.
Sander, T. and Tschudin, C. (1998). On software protection
via function hiding. In Information Hiding, volume
1525 of LNCS, pages 111–123. Springer.
Shamir, A. (2000). Protecting smart cards from passive
power analysis with detached power supplies. In
CHES, LNCS, pages 71–77. Springer.
Zussa, L., Dehbaoui, A., Tobich, K., Dutertre, J.-M., Mau-
rine, P., Guillaume-Sage, L., Clediere, J., and Tria, A.
(2014). Efficiency of a glitch detector against electro-
magnetic fault injection. In DATE, pages 1–6.
SECRYPT2014-InternationalConferenceonSecurityandCryptography
456