In this work we explore the use of polymorphic code as a way of resisting side channel attacks. We present experimental results with procedural and functional languages. In each case we rewrite the protected code code $F_i$ before its execution. The outcome is a genealogy of programs $F_0,F_1,\ldots$ such that for all inputs $x$ and for all indexes $i \neq j \Rightarrow F_i(x)=F_j(x)\mbox{~and~}F_i\neq F_j$. This is shown to increase resistance to side channel attacks.\smallskip
Category / Keywords: cryptographic protocols / side channels, polymorphism Date: received 28 Feb 2011, last revised 2 Mar 2011 Contact author: david naccache at ens fr Available format(s): PDF | BibTeX Citation Version: 20110302:094920 (All versions of this report) Short URL: ia.cr/2011/099 Discussion forum: Show discussion | Start new discussion