<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Modelling the Impact of Code Obfuscation on Energy Usage</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Athul Raj</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jithish J</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sriram Sankaran</string-name>
          <email>srirams@am.amrita.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Amrita Center for Cybersecurity Systems and Networks Amrita School of Engineering, Amritapuri Amrita Vishwa Vidyapeetham Amrita University</institution>
          <country country="IN">India</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Advancements in computing and communication technologies have given rise to low-cost embedded devices with applications in diverse domains such as Smarthome, industrial automation, healthcare, transportation etc. These devices are power-constrained which emphasizes the need for lightweight security solutions. Code obfuscation has been demonstrated to provide time-limited protection of source code from inference or tampering attacks. However, size of the obfuscated code increases with increase in code size which can have a negative impact on energy consumption. In particular, di erent transformations of the source code result in varying amounts of energy consumption for embedded devices. In this work, we model the impact of algorithms for code obfuscation on energy usage for embedded devices and analyze the energy-security-performance trade-o s. The insights from our analysis can be used to develop techniques depending on the needs of the applications thus facilitating e cient energy usage.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>The proliferation of low-cost embedded devices with
advancements in computing and communication capabilities
facilitates device-to-device communication with varying
capabilities. Energy Management has become one of the
foremost concerns in mobile devices. This is primarily due to the
increasing functionality in applications which rapidly drains
battery power in these devices. In addition, security
contributes towards energy drain due to the signi cant
performance overhead of mechanisms used to secure embedded
devices. These emphasize the need for developing energy
aware security mechanisms for embedded devices. Further
these mechanisms require measurement tools for estimating
the energy consumed due to security for embedded devices.</p>
      <p>Due to the increasing sensitivity of software applications
stored on embedded devices, mechanisms are necessary for
Copyright c 2017 for the individual papers by the papers’ authors. Copying permitted
for private and academic purposes. This volume is published and copyrighted by its
editors.
protecting their source code which runs on these devices.
Code obfuscation has been shown to provide time-limited
protection of source codes thus preventing intruders from
tampering or inference attacks. The primary role of a code
obfuscator is to apply a transformation to the original source
code thus resulting in obfuscated source code which in turn
is stored in the embedded devices. This results in
obstructing the regular control ow and performing software
manipulations thus making it impossible to reverse engineer the
source code. In addition, code obfuscation has a
considerable impact on performance and energy consumption which
varies for di erent kinds of applications.</p>
      <p>While code obfuscation has been demonstrated to provide
time-limited protection for embedded devices, its impact on
energy consumption needs to be analyzed. In particular,
increase in size of the source code results in corresponding
increase in size of the obfuscated code thus causing a
negative impact on power consumption. Further di erent
transformations of the source code result in varying amounts of
energy consumption for embedded devices. Thus a
comprehensive energy analysis of algorithms for code obfuscation
is necessary to analyze the energy-performance trade-o s.
In addition, estimating security is necessary to analyze the
e ectiveness of the obfuscation techniques. However,
estimating security of obfuscated code is challenging due to the
varying number of transformations applied to source codes
with increasing functionality.</p>
      <p>In this work, we model the impact of algorithms for code
obfuscation on energy usage in embedded devices. In
particular, we study di erent techniques for obfuscation such as
Lexical, Data and Control obfuscation and analyze their
impact on energy usage. We describe the experiment set-up for
measuring energy and performance and present our analysis
of energy-performance trade-o s. Our analysis conducted
using Mibench benchmarks reveals that data and control
ow obfuscation incur signi cant energy consumption
compared to lexical obfuscation. The results obtained from this
study can be used to tailor obfuscation to suit the needs
of resource-constrained devices and further analyze
energysecurity-performance trade-o s.
2.</p>
    </sec>
    <sec id="sec-2">
      <title>RELATED WORK</title>
      <p>
        Numerous approaches have studied the problem of code
obfuscation and analyzed their applicability in embedded
devices. Collberg et. al [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] presented a taxonomy of di
erent kinds of obfuscation which describes transformations for
securing diverse source codes. Further, there exists tools for
code obfuscation at both the hardware and software levels.
While some of the tools such as Tigress [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and ProGuard
[
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] are open-source, there exists numerous commercial tools
such as Allatori [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], Dasho [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], Zelix [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        There exists approaches for measuring the impact of
obfuscated code on energy consumption. In particular Sahin et
al. [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] pro led the energy consumption of di erent
transformations on the Android smartphone and statistically
analyzed the signi cance between normal and obfuscated code.
However, they claimed that energy consumption between
di erent methods of a particular kind of obfuscation is
insigni cant. In addition, Dukovic et al. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] pro led the
energy consumption of normal and obfuscated code at an
instruction-level and analyzed the impact of di erent
transformations.
      </p>
      <p>
        In addition to pro ling energy consumption, certain
approaches have analyzed the security of obfuscated code for
diverse kinds of systems. Banescu et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] measured the
resilience of obfuscated code against reverse engineering using
tools such as tigress which contains numerous
transformations. Wu et al. [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] estimated the security of di erent
obfuscation based techniques using approximation. In
particular, their approach involves modelling the relationship
between obfuscation parameters and the corresponding
impact on security using regression-based techniques.
      </p>
      <p>
        While energy and security are critical, performance is equally
necessary so as to meet real-time constraints for embedded
applications. This can be achieved using hardware
obfuscation which is necessary to protect secret information in
circuit design. Kainth et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] have developed a
hardwareassisted technique for code obfuscation for FPGA based
microprocessors. Their approach involves modelling the
transformations on the FPGA so as to improve their performance
as well as enhance the security of the applications. Further,
the reprogrammable nature of the FPGAs makes the overall
design of techniques adaptable.
      </p>
      <p>
        In addition, numerous works have modelled the energy
consumption of computing systems in general and embedded
devices. Economou et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and Isci et al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] modeled the
energy consumption of embedded devices using performance
counters. Khan et. al [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and Sankaran et al. [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] modeled
the energy consumption of multi-core systems using a
statistical learning approach. Wang et al. [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] developed SPAN,
a software power monitoring tool which correlates program
segments with power consumption. Fan et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] analyzed
the power consumption characteristics of data centers and
studied the optimal provisioning of resources. Sangaiah et
al. [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] developed regression models to predict the
performance of Chip Multiprocessors.
      </p>
      <p>
        In contrast to the existing approaches, we pro le the
energy consumption and performance of algorithms for code
obfuscation in embedded devices. Although our work is
closely related to [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], we manually obfuscate source
code of benchmark applications which enables us to
explore numerous transformations in contrast to the
obfuscation tools used by [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. While tools for obfuscation
are available, they are often commerical and that we are
limited by the transformations available in those tools. In
addition, our experiments are conducted using SourceMeter,
a power measurement tool which provides accurate power
estimates.
3.
3.1
      </p>
    </sec>
    <sec id="sec-3">
      <title>Lexical Obfuscation</title>
      <p>Lexical obfuscation is one of the basic and simplest form
of obfuscation used in software programs. It includes a wide
array of operations such as comment removal, identi er
renaming, structured construction removal, debugging info
removal etc. Typically lexical obfuscation is used for identi er
renaming which may not have any impact on the security of
the source code. Thus it becomes relatively easy for the
attacker to understand and reverse-engineer the source code.
In addition, other techniques such as structured
construction removal, debugging info removal and comment removal
may reduce the size of the source code. While lexical
obfuscation lacks security, it has been either replaced or used in
conjunction with other techniques such as data and control
obfuscation.
3.2</p>
    </sec>
    <sec id="sec-4">
      <title>Data Obfuscation</title>
      <p>
        Data obfuscation provides stronger security than lexical
obfuscation by protecting data in the source code. In
particular, data is protected in such a way such that it
becomes hard to infer the functionality through code analysis.
Data obfuscation includes a wide array of operations such
as string scrambling, array restructuring and merging, data
encoding and variable reordering. For instance, value of a
variable can be changed to include numerous di erent
variables. Thus the value of the variable can be determined by
fusing the contents of the created variables. Similarly, arrays
can be restructured by creating arbitrary number of new
arrays and merging them with existing ones. Techniques for
data obfuscation have been described in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Thus
by combining di erent kinds of techniques for data
obfuscation, overall security can be enhanced. However, size of
the obfuscated code may increase which causes a negative
impact on power and execution time.
3.3
      </p>
    </sec>
    <sec id="sec-5">
      <title>Control Obfuscation</title>
      <p>
        Control obfuscation obfuscates the control ow of the
program thus providing stronger security than lexical and data
obfuscation. This includes manipulating the ow of
execution with irrelevant conditional statements which in turn
results in restructuring of methods, loops and statements.
Typically, restructuring consists in inlining, outlining,
interleaving and cloning of functions and elimination of library
calls [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. In addition, a single function is transformed
through opaque predicates, insertion of dead code etc.
However, as the control ow of the program is obfuscated, it
becomes harder for the attacker to interrelate the various
sections of the program. As a result, there is an increase
in the size of the obfuscated code which negatively impacts
power consumption and execution time.
4.
      </p>
    </sec>
    <sec id="sec-6">
      <title>EXPERIMENT SET-UP</title>
      <p>
        In this section, we discuss the hardware and software used
for our experiments along with the description of our power
measurement set-up for energy analysis. We use the
STM32F0DISCOVERY [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] development board from
STMicroelectronics as the embedded platform for measuring the energy
impact of code obfuscation. The board operates at a DC
power supply of 3V. The board consists of an ARM
CortexM0 microcontroller with 64KB ash and 8KB RAM. In
addition, Keil MDK-ARM embedded software development
environment [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is used to develop, compile and debug the soure
code as well as ash the program on the development board
for evaluating di erent obfuscation techniques.
      </p>
      <p>Power Measurement :</p>
      <p>
        Keithley's Series 2400 Source Measure Unit (SMU) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is
used for measuring the power consumption of the board. It
integrates both source and measurement circuitry in a
single unit thus facilitating a fast and accurate measurement
of power consumption. Figure 1 contains the pictorial
representation of the set-up used for our experiments.
      </p>
      <p>The SMU is used as the DC power source for the set-up.It
provides the required stable precision DC power supply of
3V for the embedded board. The obfuscated programs are
developed on the Keil MDK-ARM software suite running
on Windows 10 platform and ashed to the board via USB
interface. The SMU logs the power consumed by the
embedded board at distinct time intervals. Further we perform
comparative analysis of power traces using MATLAB.</p>
      <p>Benchmark Applications:</p>
      <p>
        We consider the following applications from the Mibench
benchmark suite [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] for comparatively analyzing the
impact of code obfuscation on energy usage. Similarly other
applications can be pro led and its energy impact on code
obfuscation analyzed.
      </p>
      <p>Basicmath: Mathematical calculations invoving cubic
function solving, square root evaluation, degrees to radian
conversion etc. on a xed set of constants.</p>
      <p>Bitcount : Evaluating bit manipulation capabilities by
computing the total number of bits in a xed input array of
integers.</p>
      <p>Matrix Multiplication: Computing the matrix
multiplication which is of complexity O(n3).</p>
      <p>Vernam Cipher : Symmetric stream cipher which utilizes
Boolean XOR operation to generate the ciphertext.</p>
    </sec>
    <sec id="sec-7">
      <title>ENERGY ANALYSIS</title>
      <p>
        In this section, we analyze the energy consumption of
di erent code obfuscation techniques using the embedded
benchmarks. In particular, we consider obfuscation
techniques such as lexical, data and control ow transformations.
Within the context of data obfuscation, we transform array
data [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] for code obfuscation. In control ow obfuscation,
we perform control ow attening, dead code insertion,
extended loop condition and loop transformation. Further, we
analyze a transformation which involves a combination of
above obfuscation techniques termed as combined
obfuscation.
      </p>
      <p>In our experiments, we manually obfuscated the source
code of the applications using the above transformations.
While there exists open-source and commercial tools for code
obfuscation, they are limited in terms of the number of
available transformations. Thus, our goal is to explore numerous
transformations and their possible combinations and not be
restricted by the tools.</p>
      <p>Our analysis reveals that di erent operations performed
by the Cortex M0 microcontroller have corresponding power
consumption pro les. Thus, our goal is to analyze the
impact of di erent obfuscation techniques on the energy and
performance of embedded devices. Towards this goal, we
gather the power traces from the SMU for normal and
obfuscated codes pertaining to di erent transformations.
Further, execution time and energy consumption were estimated
for each of the applications. In particular, we compute the
percentage di erence of parameters such as average power,
execution time, energy consumption and storage between
normal and obfuscated code.</p>
      <p>Table 1 contains the power, execution time, energy and
storage results for lexical, data and combined obfuscation
while table 2 displays those for each of the transformations
in control ow obfuscation. From the table, % P, % T,
% E and % S denote the percentage di erence of
parameters such as power consumption, execution time, energy and
storage respectively between normal and obfuscated code.</p>
      <p>From the tables,it is evident that the change in energy
consumption ranges from 0% to 11.32% for di erent
obfuscation techniques and that the maximum change is observed
in basicmath when data obfuscation is applied. In contrast,
minimum change is observed for matrix multiplication and
Vernam cipher when data and lexical obfuscation are
applied respectively. In the following, we analyze the energy
and performance impact pertaining to each of the
obfuscation techniques.</p>
      <p>Lexical Obfuscation:</p>
      <p>The least values for change in energy consumption across
all applications indicate that lexical obfuscation minimally
impacts power consumption. This is due to the
negligible overhead involved in carrying out the operations such
as changing variables, removing comments etc. Thus
overall structure of the actual code is maintained with minimal
changes.</p>
      <p>Similarly, we observe that execution time between normal
and obfuscated code remains similar for the four
applications. Thus lexical obfuscation incurs minimal impact on
performance.</p>
      <p>Data Obfuscation:</p>
      <p>In the case of data obfuscation, we observe a noticeable
increase in energy consumption. In particular, data
obfuscation of basicmath consumes higher energy compared to other
transformations. This is due to the data manipulation
operations such as cubic function solving, square root evaluation,
degree to radian conversion etc that are contained in data
obfuscation which incurs signi cant amount of computation
resulting in high energy.</p>
      <p>Similarly, we observe a maximum increase in execution
time of 8.82 % for basicmath program followed by Vernam
cipher of 4.16% and close to negligible for matrix
multiplication and bitcount benchmarks. Thus data obfuscation
negatively impacts performance of basicmath due to the compute
intensive operations.</p>
      <p>Control Flow Obfuscation:</p>
      <p>Among the four transformations for control ow
obfuscation, we observe maximum energy consumption for extended
loop condition and loop transformations. This is primarily
due to the increase in number of loop operations which may
be computationally intensive and that they consume more
energy compred to other transformations.</p>
      <p>Similarly, we observe a noticeable increase in execution
time for the basicmath and Vernam cipher benchmarks due
to control obfuscation. This can be attributed to the
increase in the number of data manipulation operations
compared to other benchmark applications.</p>
      <p>Combined Obfuscation</p>
      <p>From the tables, it is evident that combined obfuscation
incurs a maximum impact on energy consumption. In
particular we observe a maximum increase in energy
consumption of 13.89% for Vernam cipher followed by basicmath and
bitcount benchmarks that are at 13.32% and 13.8%
respectively. This is primarily due to the greater code size after
combining the techniques of obfuscation which resulted in
high energy consumption.</p>
      <p>Similarly, combined obfuscation negatively impacts
performance by increasing the execution time of obfuscated
programs due to combined obfuscation.
5.1</p>
    </sec>
    <sec id="sec-8">
      <title>Trace Analysis</title>
      <p>To analyze the long-term impact of code obfuscation, we
gather power traces using SMU for di erent obfuscation
techniques such as lexical, data and control ow
transformations. Figures 2, 3 and 4 pictorially represent the results
for lexical, data and control ow transformations pertaining
to each of the applications. From the gure, it is evident
that for certain transformations such as lexical obfuscation,
power traces are similar and variations are minimal. To
examine the degree of correlation between traces, we utilize a
statistical measure called Pearson correlation coe cient.</p>
      <p>Pearson correlation coe cient is a statistical measure used
to estimate the degree of similarity between di erent kinds
of data. A value of 1.00 implies perfect correlation, while
0 and -1 indicate no-correlation and negative correlation
respectively. We estimate the correlation coe cient between
obfuscated code and non-obfuscated code for the
transformations pertaining to each of the applications. Table 3
contains the results for correlation.</p>
      <p>From the table, we make the following inferences. Lexical
obfuscation maintains the structure information of the
actual code without changing the original assembly code. This
explains the similarity in cross correlation values for normal
and lexically obfuscated code. In the case of data
obfuscation, it is evident from gure 3 that the power traces are
not similar. This behavior is validated by the cross
correlation values computed for individual power traces.
Similarly, transformations that involve loop operations such as
extended loop and loop transformations exhibit wide
variations in control ow obfuscation. However, we observed a
maximum variation in traces in the case of combined
obfuscation. This is further validated by the relatively least
correlation coe cient for these transformations.</p>
    </sec>
    <sec id="sec-9">
      <title>ENERGY OPTIMIZATION</title>
      <p>Our study shows that obfuscation contributes signi cantly
towards the energy consumed by embedded devices and that
the rate of energy consumed depends on the kind of
obfuscation. Thus, optimizing the energy consumed due to
obfuscation is necessary so that systems meet a given power
budget. As mobile applications are increasingly becoming
critical and that the power consumed due to securing them
may proportionately increase, minimizing energy use is
critical considering the long-term sustainability of embedded
devices.</p>
      <p>We propose the following approaches for energy
optimization based on the insights obtained from the energy analysis.
The proposed approaches emphasize the need for lightweight
security and analysis of energy-performance-security
tradeo s for embedded devices.</p>
      <p>Application-aware Obfuscation:</p>
      <p>
        The primary purpose of energy analysis of di erent
techniques for code obfuscation is to develop an energy pro le of
di erent transformations depending on the embedded
platform. Currently, open-source tools for code obfuscation such
as tigress [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] are not designed for embedded devices. Thus
one of the approaches is to port source code from tigress
to embedded devices for energy pro ling. Integrating
energy pro les into tigress would enable developers to develop
lightweight transformations depending on the needs of the
applications and the overall system-level power budget.
      </p>
      <p>Obfuscation vs Encryption:</p>
      <p>While obfuscation provides time-limited protection for
embedded devices, encryption enhances security through
periodic renewal of keys combined with multiple cryptographic
algorithms. There are trade-o s associated with
obfuscation and encryption for embedded devices and both depend
on the size of the source code that needs to be obfuscated
or encrypted. Although encryption can be part of
obfuscation, we have considered them to be separate in our analysis.
Our goal is to assess the energy bene ts of obfuscation and
encryption and analyze their applicability in embedded
applications considering their energy pro le and the e ectivess
of security. In addition, approaches for integrating
obfuscation and encryption in an energy e cient manner can be
explored.</p>
      <p>Energy-Performance-Security trade-o s:</p>
      <p>
        While energy and performance of algorithms for code
obfuscation can be estimated, estimating security is of
increasing importance towards analyzing the
energy-performancesecurity trade-o s for embedded applications. However,
estimating security is challenging due to the lack of
available metrics. One of the approaches to estimate security is
through approximation [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], where a regression-based model
is constructed based on di erent security parameters
pertaining to each of the obfuscation based techniques that
are considered independent variables and the resulting
security to be the dependent variable. While the approach
presented in [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] shows promise, security for di erent
obfuscation techniques need to be estimated and the resulting
energy-performance-security trade-o s analyzed.
      </p>
    </sec>
    <sec id="sec-10">
      <title>CONCLUSION</title>
      <p>In this work, we analyze the impact of code obfuscation
on energy usage for embedded devices. Particularly, we
model algorithms for code obfuscation such as Lexical, Data
and Control obfuscation and measure the energy and
performance of normal and obfuscated code using a measurement
tool. Our analysis on a set of benchmarks reveals that while
lexical obfuscation has a minimal impact on power
consumption, data and control obfuscation was shown to have a
signi cant impact in terms of performance and power
consumption. The insights obtained from our analysis can be used
for application-aware obfuscation, assessing the energy
bene ts between obfuscation and encryption and analyzing the
energy-performance-security trade-o s.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>[1] Allatori java obfuscator</article-title>
          . http://www.allatori.com/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>[2] Dasho - preemptive solutions</article-title>
          . http://www.preemptive.com/products/dasho.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Keil</surname>
          </string-name>
          mdk-arm. http://www2.keil.com/mdk5.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <article-title>[4] Keithley 2400 sourcemeter</article-title>
          . http://www.tek.com/keithley-source-measureunits/keithley-smu-2400
          <string-name>
            <surname>-</surname>
          </string-name>
          series-sourcemeter.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <article-title>[5] Zelix klassmaster</article-title>
          . http://www.zelix.com/klassmaster/.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Banescu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ochoa</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Pretschner</surname>
          </string-name>
          .
          <article-title>A framework for measuring software obfuscation resilience against automated attacks</article-title>
          .
          <source>In 2015 IEEE/ACM 1st International Workshop on Software Protection</source>
          , pages
          <volume>45</volume>
          {
          <fpage>51</fpage>
          , May
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S.</given-names>
            <surname>Chow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Gu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Johnson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V. A.</given-names>
            <surname>Zakharov</surname>
          </string-name>
          .
          <article-title>An approach to the obfuscation of control- ow of sequential computer programs</article-title>
          .
          <source>In Proceedings of the 4th International Conference on Information Security, ISC '01</source>
          , pages
          <fpage>144</fpage>
          {
          <fpage>155</fpage>
          , London, UK, UK,
          <year>2001</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C.</given-names>
            <surname>Collberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Martin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Myers</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Zimmerman</surname>
          </string-name>
          .
          <article-title>The tigress diversifying c virtualizer</article-title>
          . http://tigress.cs.arizona.edu.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>C.</given-names>
            <surname>Collberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Thomborson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Low</surname>
          </string-name>
          .
          <article-title>A taxonomy of obfuscating transformations</article-title>
          .
          <source>Technical report</source>
          , Department of Computer Science, The University of Auckland, New Zealand,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>S.</given-names>
            <surname>Drape</surname>
          </string-name>
          .
          <article-title>Generalising the array split obfuscation</article-title>
          .
          <source>Information Sciences</source>
          ,
          <volume>177</volume>
          (
          <issue>1</issue>
          ):
          <volume>202</volume>
          {
          <fpage>219</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Dukovic</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Varga</surname>
          </string-name>
          .
          <article-title>Load pro le-based e ciency metrics for code obfuscators</article-title>
          .
          <source>Acta Polytechnica Hungarica</source>
          ,
          <volume>12</volume>
          (
          <issue>5</issue>
          ),
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>D.</given-names>
            <surname>Economou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rivoire</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Kozyrakis</surname>
          </string-name>
          .
          <article-title>Full-system power analysis and modeling for server environments</article-title>
          .
          <source>In In Workshop on Modeling Benchmarking and Simulation (MOBS</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>X.</given-names>
            <surname>Fan</surname>
          </string-name>
          , W.-D. Weber, and
          <string-name>
            <given-names>L. A.</given-names>
            <surname>Barroso</surname>
          </string-name>
          .
          <article-title>Power provisioning for a warehouse-sized computer</article-title>
          .
          <source>In Proceedings of the 34th Annual International Symposium on Computer Architecture</source>
          ,
          <source>ISCA '07</source>
          , pages
          <fpage>13</fpage>
          {
          <fpage>23</fpage>
          , New York, NY, USA,
          <year>2007</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Guthaus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. S.</given-names>
            <surname>Ringenberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Ernst</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. M.</given-names>
            <surname>Austin</surname>
          </string-name>
          , T. Mudge, and
          <string-name>
            <given-names>R. B.</given-names>
            <surname>Brown</surname>
          </string-name>
          . Mibench:
          <article-title>A free, commercially representative embedded benchmark suite</article-title>
          .
          <source>In Proceedings of the Workload Characterization</source>
          ,
          <year>2001</year>
          . WWC-4. 2001 IEEE International Workshop, WWC '
          <volume>01</volume>
          , pages
          <fpage>3</fpage>
          <lpage>{</lpage>
          14, Washington, DC, USA,
          <year>2001</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>C.</given-names>
            <surname>Isci</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Martonosi</surname>
          </string-name>
          .
          <article-title>Runtime power monitoring in high-end processors: Methodology and empirical data</article-title>
          .
          <source>Technical report</source>
          , Princeton University Electrical Eng. Dept.,
          <year>September 2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kainth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Krishnan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Narayana</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. G.</given-names>
            <surname>Virupaksha</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Tessier</surname>
          </string-name>
          .
          <article-title>Hardware-assisted code obfuscation for fpga soft microprocessors</article-title>
          .
          <source>In Proceedings of the 2015 Design, Automation &amp; Test in Europe Conference &amp; Exhibition, DATE '15</source>
          , pages
          <fpage>127</fpage>
          {
          <fpage>132</fpage>
          , San Jose, CA, USA,
          <year>2015</year>
          . EDA Consortium.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>S.</given-names>
            <surname>Khan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Xekalakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cavazos</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Cintra</surname>
          </string-name>
          .
          <article-title>Using predictive modeling for cross-program design space exploration in multicore systems</article-title>
          .
          <source>In Proceedings of the 16th International Conference on Parallel Architecture and Compilation Techniques, PACT '07</source>
          , pages
          <fpage>327</fpage>
          {
          <fpage>338</fpage>
          , Washington, DC, USA,
          <year>2007</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>E.</given-names>
            <surname>Lafortune</surname>
          </string-name>
          et al. Proguard. http://proguard.sourceforge.net,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>S.</given-names>
            <surname>Microelectronics</surname>
          </string-name>
          . Stm32f0discovery.
          <article-title>STM32F0 highperformance discovery board, User manual</article-title>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>S.</given-names>
            <surname>Praveen</surname>
          </string-name>
          and
          <string-name>
            <given-names>P. S.</given-names>
            <surname>Lal</surname>
          </string-name>
          .
          <article-title>Array data transformation for source code obfuscation</article-title>
          .
          <source>Performance Improvement</source>
          ,
          <volume>658</volume>
          :
          <fpage>6515</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>C.</given-names>
            <surname>Sahin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Tornquist</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Mckenna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Pearson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Clause</surname>
          </string-name>
          .
          <article-title>How does code obfuscation impact energy usage</article-title>
          ?
          <source>In Proceedings of the 2014 IEEE International Conference on Software Maintenance and Evolution</source>
          , ICSME '
          <volume>14</volume>
          , pages
          <fpage>131</fpage>
          {
          <fpage>140</fpage>
          , Washington, DC, USA,
          <year>2014</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>K.</given-names>
            <surname>Sangaiah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hempstead</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Taskin</surname>
          </string-name>
          .
          <article-title>Uncore rpd: Rapid design space exploration of the uncore via regression modeling</article-title>
          .
          <source>In Proceedings of the IEEE/ACM International Conference on Computer-Aided Design, ICCAD '15</source>
          , pages
          <fpage>365</fpage>
          {
          <fpage>372</fpage>
          ,
          <string-name>
            <surname>Piscataway</surname>
          </string-name>
          , NJ, USA,
          <year>2015</year>
          . IEEE Press.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>S.</given-names>
            <surname>Sankaran</surname>
          </string-name>
          .
          <article-title>Predictive modeling based power estimation for embedded multicore systems</article-title>
          .
          <source>In Proceedings of the ACM International Conference on Computing Frontiers, CF '16</source>
          , pages
          <fpage>370</fpage>
          {
          <fpage>375</fpage>
          , New York, NY, USA,
          <year>2016</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>T.</given-names>
            <surname>Toyofuku</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Tabata</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Sakurai</surname>
          </string-name>
          .
          <article-title>Program obfuscation scheme using random numbers to complicate control ow</article-title>
          .
          <source>In International Conference on Embedded and Ubiquitous Computing</source>
          , pages
          <volume>916</volume>
          {
          <fpage>925</fpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>S.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Chen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Shi</surname>
          </string-name>
          .
          <article-title>Span: A software power analyzer for multicore computer systems</article-title>
          .
          <source>Elsevier Sustainable Computing: Informatics and Systems</source>
          , page In press,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Fang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Z.</given-names>
            <surname>Qi</surname>
          </string-name>
          .
          <article-title>A framework for measuring the security of obfuscated software</article-title>
          .
          <source>In Proceedings of the 2010 International Conference on Test and Measurement</source>
          ,
          <source>ICTM '10</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>