Abstract Loop structures in software code may reveal essential information about implemented algorithms and their parameters, even if the observer has no knowledge about which instructions are executed. Regular patterns can for instance be observed in power consumption, instruction fetches in external memory, or radiated EM energy. This paper addresses the use of dummy operations to obscure the details of the algorithm executed by the processor. We show that for a particular class of dummy insertion strategies, a Viterbi decoder can fairly reliably distinguish dummy fetches from real instruction fetches. In the second part of this paper, we study strategies to choose dummy fetches from a more general model. For certain situations, the optimum protection strategy appears to be deterministic (as opposed to random). Moreover, we show that in such a case, it is fundamentally not possible to enhance the security of the implementation by keeping the strategy for generating dummy fetches secret to the attacker.
[1]
Yinyi Lin,et al.
Modulation codes
,
1997
.
[2]
Adi Shamir,et al.
A method for obtaining digital signatures and public-key cryptosystems
,
1978,
CACM.
[3]
Jr. G. Forney,et al.
The viterbi algorithm
,
1973
.
[4]
Jean-Paul M. G. Linnartz,et al.
Narrowband land-mobile radio networks
,
1993
.
[5]
Paul C. Kocher.
Cryptanalysis of Di e-Hellman, RSA, DSS, and Other Systems Using Timing Attacks
,
1999
.