Modelling the Impact of Code Obfuscation on Energy Usage Athul Raj, Jithish J and Sriram Sankaran Amrita Center for Cybersecurity Systems and Networks Amrita School of Engineering, Amritapuri Amrita Vishwa Vidyapeetham Amrita University India srirams@am.amrita.edu ABSTRACT protecting their source code which runs on these devices. Advancements in computing and communication technolo- Code obfuscation has been shown to provide time-limited gies have given rise to low-cost embedded devices with ap- protection of source codes thus preventing intruders from plications in diverse domains such as Smarthome, indus- tampering or inference attacks. The primary role of a code trial automation, healthcare, transportation etc. These de- obfuscator is to apply a transformation to the original source vices are power-constrained which emphasizes the need for code thus resulting in obfuscated source code which in turn lightweight security solutions. Code obfuscation has been is stored in the embedded devices. This results in obstruct- demonstrated to provide time-limited protection of source ing the regular control flow and performing software manip- code from inference or tampering attacks. However, size ulations thus making it impossible to reverse engineer the of the obfuscated code increases with increase in code size source code. In addition, code obfuscation has a consider- which can have a negative impact on energy consumption. able impact on performance and energy consumption which In particular, different transformations of the source code re- varies for different kinds of applications. sult in varying amounts of energy consumption for embedded While code obfuscation has been demonstrated to provide devices. In this work, we model the impact of algorithms for time-limited protection for embedded devices, its impact on code obfuscation on energy usage for embedded devices and energy consumption needs to be analyzed. In particular, analyze the energy-security-performance trade-offs. The in- increase in size of the source code results in corresponding sights from our analysis can be used to develop techniques increase in size of the obfuscated code thus causing a nega- depending on the needs of the applications thus facilitating tive impact on power consumption. Further different trans- efficient energy usage. formations of the source code result in varying amounts of energy consumption for embedded devices. Thus a compre- hensive energy analysis of algorithms for code obfuscation 1. INTRODUCTION is necessary to analyze the energy-performance trade-offs. The proliferation of low-cost embedded devices with ad- In addition, estimating security is necessary to analyze the vancements in computing and communication capabilities effectiveness of the obfuscation techniques. However, esti- facilitates device-to-device communication with varying ca- mating security of obfuscated code is challenging due to the pabilities. Energy Management has become one of the fore- varying number of transformations applied to source codes most concerns in mobile devices. This is primarily due to the with increasing functionality. increasing functionality in applications which rapidly drains In this work, we model the impact of algorithms for code battery power in these devices. In addition, security con- obfuscation on energy usage in embedded devices. In partic- tributes towards energy drain due to the significant perfor- ular, we study different techniques for obfuscation such as mance overhead of mechanisms used to secure embedded Lexical, Data and Control obfuscation and analyze their im- devices. These emphasize the need for developing energy pact on energy usage. We describe the experiment set-up for aware security mechanisms for embedded devices. Further measuring energy and performance and present our analysis these mechanisms require measurement tools for estimating of energy-performance trade-offs. Our analysis conducted the energy consumed due to security for embedded devices. using Mibench benchmarks reveals that data and control Due to the increasing sensitivity of software applications flow obfuscation incur significant energy consumption com- stored on embedded devices, mechanisms are necessary for pared 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 energy- security-performance trade-offs. 2. RELATED WORK Numerous approaches have studied the problem of code obfuscation and analyzed their applicability in embedded Copyright c 2017 for the individual papers by the papers’ authors. Copying permitted devices. Collberg et. al [9] presented a taxonomy of differ- for private and academic purposes. This volume is published and copyrighted by its editors. ent kinds of obfuscation which describes transformations for securing diverse source codes. Further, there exists tools for 3. BACKGROUND code obfuscation at both the hardware and software levels. While some of the tools such as Tigress [8] and ProGuard 3.1 Lexical Obfuscation [18] are open-source, there exists numerous commercial tools Lexical obfuscation is one of the basic and simplest form such as Allatori [1], Dasho [2], Zelix [5]. of obfuscation used in software programs. It includes a wide There exists approaches for measuring the impact of ob- array of operations such as comment removal, identifier re- fuscated code on energy consumption. In particular Sahin et naming, structured construction removal, debugging info re- al. [21] profiled the energy consumption of different transfor- moval etc. Typically lexical obfuscation is used for identifier mations on the Android smartphone and statistically ana- renaming which may not have any impact on the security of lyzed the significance between normal and obfuscated code. the source code. Thus it becomes relatively easy for the at- However, they claimed that energy consumption between tacker to understand and reverse-engineer the source code. different methods of a particular kind of obfuscation is in- In addition, other techniques such as structured construc- significant. In addition, Dukovic et al. [11] profiled the tion removal, debugging info removal and comment removal energy consumption of normal and obfuscated code at an may reduce the size of the source code. While lexical obfus- instruction-level and analyzed the impact of different trans- cation lacks security, it has been either replaced or used in formations. conjunction with other techniques such as data and control In addition to profiling energy consumption, certain ap- obfuscation. proaches have analyzed the security of obfuscated code for diverse kinds of systems. Banescu et al. [6] measured the re- 3.2 Data Obfuscation silience of obfuscated code against reverse engineering using Data obfuscation provides stronger security than lexical tools such as tigress which contains numerous transforma- obfuscation by protecting data in the source code. In par- tions. Wu et al. [26] estimated the security of different ticular, data is protected in such a way such that it be- obfuscation based techniques using approximation. In par- comes hard to infer the functionality through code analysis. ticular, their approach involves modelling the relationship Data obfuscation includes a wide array of operations such between obfuscation parameters and the corresponding im- as string scrambling, array restructuring and merging, data pact on security using regression-based techniques. encoding and variable reordering. For instance, value of a While energy and security are critical, performance is equally variable can be changed to include numerous different vari- necessary so as to meet real-time constraints for embedded ables. Thus the value of the variable can be determined by applications. This can be achieved using hardware obfus- fusing the contents of the created variables. Similarly, arrays cation which is necessary to protect secret information in can be restructured by creating arbitrary number of new ar- circuit design. Kainth et al. [16] have developed a hardware- rays and merging them with existing ones. Techniques for assisted technique for code obfuscation for FPGA based mi- data obfuscation have been described in [10] and [20]. Thus croprocessors. Their approach involves modelling the trans- by combining different kinds of techniques for data obfus- formations on the FPGA so as to improve their performance cation, overall security can be enhanced. However, size of as well as enhance the security of the applications. Further, the obfuscated code may increase which causes a negative the reprogrammable nature of the FPGAs makes the overall impact on power and execution time. design of techniques adaptable. In addition, numerous works have modelled the energy 3.3 Control Obfuscation consumption of computing systems in general and embedded Control obfuscation obfuscates the control flow of the pro- devices. Economou et al. [12] and Isci et al. [15] modeled the gram thus providing stronger security than lexical and data energy consumption of embedded devices using performance obfuscation. This includes manipulating the flow of exe- counters. Khan et. al [17] and Sankaran et al. [23] modeled cution with irrelevant conditional statements which in turn the energy consumption of multi-core systems using a statis- results in restructuring of methods, loops and statements. tical learning approach. Wang et al. [25] developed SPAN, Typically, restructuring consists in inlining, outlining, inter- a software power monitoring tool which correlates program leaving and cloning of functions and elimination of library segments with power consumption. Fan et al. [13] analyzed calls [24] [7]. In addition, a single function is transformed the power consumption characteristics of data centers and through opaque predicates, insertion of dead code etc. How- studied the optimal provisioning of resources. Sangaiah et ever, as the control flow of the program is obfuscated, it al. [22] developed regression models to predict the perfor- becomes harder for the attacker to interrelate the various mance of Chip Multiprocessors. sections of the program. As a result, there is an increase In contrast to the existing approaches, we profile the en- in the size of the obfuscated code which negatively impacts ergy consumption and performance of algorithms for code power consumption and execution time. obfuscation in embedded devices. Although our work is closely related to [11] and [21], we manually obfuscate source 4. EXPERIMENT SET-UP code of benchmark applications which enables us to ex- In this section, we discuss the hardware and software used plore numerous transformations in contrast to the obfusca- for our experiments along with the description of our power tion tools used by [11] and [21]. While tools for obfuscation measurement set-up for energy analysis. We use the STM32- are available, they are often commerical and that we are F0DISCOVERY [19] development board from STMicroelec- limited by the transformations available in those tools. In tronics as the embedded platform for measuring the energy addition, our experiments are conducted using SourceMeter, impact of code obfuscation. The board operates at a DC a power measurement tool which provides accurate power power supply of 3V. The board consists of an ARM Cortex- estimates. M0 microcontroller with 64KB flash and 8KB RAM. In addi- tion, Keil MDK-ARM embedded software development envi- Table 1: Lexical, Data and Combined Obfuscation App %∆P %∆T %∆E %∆S Matrix LO:1.15 LO:0 LO:1.14 LO:0 DO:1.5 DO:1.5 DO:0 DO:4.51 CO:1.51 CO:8 CO:9.63 CO:21.47 Basicmath LO:0.698 LO:2.94 LO:3.66 LO:0 DO:2.29 DO:8.82 DO:11.32 DO:0.99 CO:4.13 CO:8.82 CO:13.32 CO:10.04 Bitcount LO:0.93 LO:0 LO:2.36 LO:0 DO:0.18 DO:2.81 DO:3.01 DO:0.51 CO:0.124 CO:14.1 CO:13.8 CO:16.4 Vernam LO:0 LO:0 LO:0 LO:0 Figure 1: Experiment Set-up DO:0.25 DO:4.16 DO:4.42 DO:2.51 CO:1.32 CO:12.6 CO:13.99 CO:18.1 LO:Lexical Obfuscation DO:Data Obfuscation ronment [3] is used to develop, compile and debug the soure CO:Combined Obfuscation code as well as flash the program on the development board for evaluating different obfuscation techniques. Power Measurement: Keithley’s Series 2400 Source Measure Unit (SMU) [4] is used for measuring the power consumption of the board. It we perform control flow flattening, dead code insertion, ex- integrates both source and measurement circuitry in a sin- tended loop condition and loop transformation. Further, we gle unit thus facilitating a fast and accurate measurement analyze a transformation which involves a combination of of power consumption. Figure 1 contains the pictorial rep- above obfuscation techniques termed as combined obfusca- resentation of the set-up used for our experiments. tion. The SMU is used as the DC power source for the set-up.It In our experiments, we manually obfuscated the source provides the required stable precision DC power supply of code of the applications using the above transformations. 3V for the embedded board. The obfuscated programs are While there exists open-source and commercial tools for code developed on the Keil MDK-ARM software suite running obfuscation, they are limited in terms of the number of avail- on Windows 10 platform and flashed to the board via USB able transformations. Thus, our goal is to explore numerous interface. The SMU logs the power consumed by the em- transformations and their possible combinations and not be bedded board at distinct time intervals. Further we perform restricted by the tools. comparative analysis of power traces using MATLAB. Our analysis reveals that different operations performed Benchmark Applications: by the Cortex M0 microcontroller have corresponding power We consider the following applications from the Mibench consumption profiles. Thus, our goal is to analyze the im- benchmark suite [14] for comparatively analyzing the im- pact of different obfuscation techniques on the energy and pact of code obfuscation on energy usage. Similarly other performance of embedded devices. Towards this goal, we applications can be profiled and its energy impact on code gather the power traces from the SMU for normal and ob- obfuscation analyzed. fuscated codes pertaining to different transformations. Fur- Basicmath: Mathematical calculations invoving cubic func- ther, execution time and energy consumption were estimated tion solving, square root evaluation, degrees to radian con- for each of the applications. In particular, we compute the version etc. on a fixed set of constants. percentage difference of parameters such as average power, Bitcount: Evaluating bit manipulation capabilities by com- execution time, energy consumption and storage between puting the total number of bits in a fixed input array of normal and obfuscated code. integers. Table 1 contains the power, execution time, energy and Matrix Multiplication: Computing the matrix multiplica- storage results for lexical, data and combined obfuscation tion which is of complexity O(n3 ). while table 2 displays those for each of the transformations Vernam Cipher : Symmetric stream cipher which utilizes in control flow obfuscation. From the table, %∆P, %∆T, Boolean XOR operation to generate the ciphertext. %∆E and %∆S denote the percentage difference of parame- ters such as power consumption, execution time, energy and storage respectively between normal and obfuscated code. 5. ENERGY ANALYSIS From the tables,it is evident that the change in energy In this section, we analyze the energy consumption of consumption ranges from 0% to 11.32% for different obfus- different code obfuscation techniques using the embedded cation techniques and that the maximum change is observed benchmarks. In particular, we consider obfuscation tech- in basicmath when data obfuscation is applied. In contrast, niques such as lexical, data and control flow transformations. minimum change is observed for matrix multiplication and Within the context of data obfuscation, we transform array Vernam cipher when data and lexical obfuscation are ap- data [20] for code obfuscation. In control flow obfuscation, plied respectively. In the following, we analyze the energy Table 2: Control Flow Obfuscation to control obfuscation. This can be attributed to the in- crease in the number of data manipulation operations com- pared to other benchmark applications. App %∆P %∆T %∆E %∆S Combined Obfuscation Matrix CF:1.27 CF:0 CF:1.27 CF:3.76 From the tables, it is evident that combined obfuscation DI:2.17 DI:4 DI:6.26 DI:8.85 incurs a maximum impact on energy consumption. In par- EL:2.35 EL:4 EL:6.45 EL:4.5 ticular we observe a maximum increase in energy consump- LT:1.87 LT:4 LT:5.95 LT:9.01 tion of 13.89% for Vernam cipher followed by basicmath and Basicmath CF:3.62 CF:5.88 CF:9.71 CF:5.57 bitcount benchmarks that are at 13.32% and 13.8% respec- DI:0.95 DI:5.88 DI:6.89 DI:1.18 tively. This is primarily due to the greater code size after EL:1.21 EL:5.88 EL:7.16 EL:1.58 combining the techniques of obfuscation which resulted in LT:0.38 LT:2.94 LT:3.33 LT:0.57 high energy consumption. Bitcount CF:1.18 CF:1.4 CF:2.6 CF:3.59 Similarly, combined obfuscation negatively impacts per- DI:1.8 DI:1.41 DI:3.24 DI:3.83 formance by increasing the execution time of obfuscated pro- EL:1.37 EL:1.41 EL:1.37 EL:4.43 grams due to combined obfuscation. LT:0.12 LT:1.41 LT:0.12 LT:1.02 Vernam CF:0.5 CF:8.33 CF:8.88 CF:3.13 5.1 Trace Analysis DI:0.82 DI:8.33 DI:9.22 DI:2.99 To analyze the long-term impact of code obfuscation, we EL:1.01 EL:8.33 EL:9.43 EL:3.74 gather power traces using SMU for different obfuscation LT:0.25 LT:8.33 LT:8.61 LT:2.51 techniques such as lexical, data and control flow transfor- CF:Control Flow Flattening DI:Deadcode Insertion mations. Figures 2, 3 and 4 pictorially represent the results EL:Extended Loop Condition LT:Loop Transformation for lexical, data and control flow transformations pertaining to each of the applications. From the figure, it is evident that for certain transformations such as lexical obfuscation, power traces are similar and variations are minimal. To ex- amine the degree of correlation between traces, we utilize a and performance impact pertaining to each of the obfusca- statistical measure called Pearson correlation coefficient. tion techniques. Lexical Obfuscation: The least values for change in energy consumption across all applications indicate that lexical obfuscation minimally impacts power consumption. This is due to the negligi- ble overhead involved in carrying out the operations such as changing variables, removing comments etc. Thus over- all structure of the actual code is maintained with minimal changes. Similarly, we observe that execution time between normal and obfuscated code remains similar for the four applica- tions. Thus lexical obfuscation incurs minimal impact on performance. Data Obfuscation: In the case of data obfuscation, we observe a noticeable increase in energy consumption. In particular, data obfusca- Figure 2: Lexical Obfuscation tion of basicmath consumes higher energy compared to other transformations. This is due to the data manipulation oper- ations such as cubic function solving, square root evaluation, Pearson correlation coefficient is a statistical measure used degree to radian conversion etc that are contained in data to estimate the degree of similarity between different kinds obfuscation which incurs significant amount of computation of data. A value of 1.00 implies perfect correlation, while resulting in high energy. 0 and -1 indicate no-correlation and negative correlation re- Similarly, we observe a maximum increase in execution spectively. We estimate the correlation coefficient between time of 8.82 % for basicmath program followed by Vernam obfuscated code and non-obfuscated code for the transfor- cipher of 4.16% and close to negligible for matrix multiplica- mations pertaining to each of the applications. Table 3 con- tion and bitcount benchmarks. Thus data obfuscation nega- tains the results for correlation. tively impacts performance of basicmath due to the compute From the table, we make the following inferences. Lexical intensive operations. obfuscation maintains the structure information of the ac- Control Flow Obfuscation: tual code without changing the original assembly code. This Among the four transformations for control flow obfusca- explains the similarity in cross correlation values for normal tion, we observe maximum energy consumption for extended and lexically obfuscated code. In the case of data obfusca- loop condition and loop transformations. This is primarily tion, it is evident from figure 3 that the power traces are due to the increase in number of loop operations which may not similar. This behavior is validated by the cross corre- be computationally intensive and that they consume more lation values computed for individual power traces. Simi- energy compred to other transformations. larly, transformations that involve loop operations such as Similarly, we observe a noticeable increase in execution extended loop and loop transformations exhibit wide vari- time for the basicmath and Vernam cipher benchmarks due ations in control flow obfuscation. However, we observed a Table 3: Pearson Correlation for Normal and Obfuscated Code App Lexical Data Control Combined Matrix 0.9977 0.9903 CF:0.9950 0.9925 DI:0.9946 EL:0.9934 LT:0.9956 BasicMath 0.9811 0.9528 CF:0.9005 0.8871 DI:0.9827 EL:0.9947 LT:0.9812 Figure 3: Data Obfuscation BitCount 0.9922 0.9445 CF:0.9874 0.9575 DI:0.9571 EL:0.9909 maximum variation in traces in the case of combined ob- LT:0.9914 fuscation. This is further validated by the relatively least correlation coefficient for these transformations. Vernam 0.9974 0.9866 CF:0.9955 0.9852 DI:0.9806 EL:0.9903 LT:0.9948 CF:Control Flow Flattening DI:Deadcode Insertion EL:Extended Loop Condition LT:Loop Transformation to embedded devices for energy profiling. Integrating en- ergy profiles into tigress would enable developers to develop lightweight transformations depending on the needs of the applications and the overall system-level power budget. Obfuscation vs Encryption: Figure 4: Combined Obfuscation While obfuscation provides time-limited protection for em- bedded devices, encryption enhances security through peri- odic renewal of keys combined with multiple cryptographic algorithms. There are trade-offs associated with obfusca- tion and encryption for embedded devices and both depend 6. ENERGY OPTIMIZATION on the size of the source code that needs to be obfuscated Our study shows that obfuscation contributes significantly or encrypted. Although encryption can be part of obfusca- towards the energy consumed by embedded devices and that tion, we have considered them to be separate in our analysis. the rate of energy consumed depends on the kind of obfus- Our goal is to assess the energy benefits of obfuscation and cation. Thus, optimizing the energy consumed due to ob- encryption and analyze their applicability in embedded ap- fuscation is necessary so that systems meet a given power plications considering their energy profile and the effectivess budget. As mobile applications are increasingly becoming of security. In addition, approaches for integrating obfus- critical and that the power consumed due to securing them cation and encryption in an energy efficient manner can be may proportionately increase, minimizing energy use is crit- explored. ical considering the long-term sustainability of embedded Energy-Performance-Security trade-offs: devices. While energy and performance of algorithms for code ob- We propose the following approaches for energy optimiza- fuscation can be estimated, estimating security is of increas- tion based on the insights obtained from the energy analysis. ing importance towards analyzing the energy-performance- The proposed approaches emphasize the need for lightweight security trade-offs for embedded applications. However, es- security and analysis of energy-performance-security trade- timating security is challenging due to the lack of avail- offs for embedded devices. able metrics. One of the approaches to estimate security is Application-aware Obfuscation: through approximation [26], where a regression-based model The primary purpose of energy analysis of different tech- is constructed based on different security parameters per- niques for code obfuscation is to develop an energy profile of taining to each of the obfuscation based techniques that different transformations depending on the embedded plat- are considered independent variables and the resulting se- form. Currently, open-source tools for code obfuscation such curity to be the dependent variable. While the approach as tigress [8] are not designed for embedded devices. Thus presented in [26] shows promise, security for different ob- one of the approaches is to port source code from tigress fuscation techniques need to be estimated and the resulting energy-performance-security trade-offs analyzed. suite. In Proceedings of the Workload Characterization, 2001. WWC-4. 2001 IEEE 7. CONCLUSION International Workshop, WWC ’01, pages 3–14, Washington, DC, USA, 2001. IEEE Computer Society. In this work, we analyze the impact of code obfuscation [15] C. Isci and M. Martonosi. Runtime power monitoring on energy usage for embedded devices. Particularly, we in high-end processors: Methodology and empirical model algorithms for code obfuscation such as Lexical, Data data. Technical report, Princeton University Electrical and Control obfuscation and measure the energy and perfor- Eng. Dept., September 2003. mance of normal and obfuscated code using a measurement tool. Our analysis on a set of benchmarks reveals that while [16] M. Kainth, L. Krishnan, C. Narayana, S. G. lexical obfuscation has a minimal impact on power consump- Virupaksha, and R. Tessier. Hardware-assisted code tion, data and control obfuscation was shown to have a sig- obfuscation for fpga soft microprocessors. In nificant impact in terms of performance and power consump- Proceedings of the 2015 Design, Automation & Test in tion. The insights obtained from our analysis can be used Europe Conference & Exhibition, DATE ’15, pages for application-aware obfuscation, assessing the energy ben- 127–132, San Jose, CA, USA, 2015. EDA Consortium. efits between obfuscation and encryption and analyzing the [17] S. Khan, P. Xekalakis, J. Cavazos, and M. Cintra. energy-performance-security trade-offs. Using predictive modeling for cross-program design space exploration in multicore systems. In Proceedings of the 16th International Conference on Parallel 8. REFERENCES Architecture and Compilation Techniques, PACT ’07, [1] Allatori java obfuscator. http://www.allatori.com/. pages 327–338, Washington, DC, USA, 2007. IEEE [2] Dasho - preemptive solutions. Computer Society. http://www.preemptive.com/products/dasho. [18] E. Lafortune et al. Proguard. [3] Keil mdk-arm. http://www2.keil.com/mdk5. http://proguard.sourceforge.net, 2004. [4] Keithley 2400 sourcemeter. [19] S. Microelectronics. Stm32f0discovery. STM32F0 http://www.tek.com/keithley-source-measure- highperformance discovery board, User manual, 2013. units/keithley-smu-2400-series-sourcemeter. [20] S. Praveen and P. S. Lal. Array data transformation [5] Zelix klassmaster. http://www.zelix.com/klassmaster/. for source code obfuscation. Performance [6] S. Banescu, M. Ochoa, and A. Pretschner. A Improvement, 658:6515, 2007. framework for measuring software obfuscation [21] C. Sahin, P. Tornquist, R. Mckenna, Z. Pearson, and resilience against automated attacks. In 2015 J. Clause. How does code obfuscation impact energy IEEE/ACM 1st International Workshop on Software usage? In Proceedings of the 2014 IEEE International Protection, pages 45–51, May 2015. Conference on Software Maintenance and Evolution, [7] S. Chow, Y. Gu, H. Johnson, and V. A. Zakharov. An ICSME ’14, pages 131–140, Washington, DC, USA, approach to the obfuscation of control-flow of 2014. IEEE Computer Society. sequential computer programs. In Proceedings of the [22] K. Sangaiah, M. Hempstead, and B. Taskin. Uncore 4th International Conference on Information Security, rpd: Rapid design space exploration of the uncore via ISC ’01, pages 144–155, London, UK, UK, 2001. regression modeling. In Proceedings of the IEEE/ACM Springer-Verlag. International Conference on Computer-Aided Design, [8] C. Collberg, S. Martin, J. Myers, and B. Zimmerman. ICCAD ’15, pages 365–372, Piscataway, NJ, USA, The tigress diversifying c virtualizer. 2015. IEEE Press. http://tigress.cs.arizona.edu. [23] S. Sankaran. Predictive modeling based power [9] C. Collberg, C. Thomborson, and D. Low. A estimation for embedded multicore systems. In taxonomy of obfuscating transformations. Technical Proceedings of the ACM International Conference on report, Department of Computer Science, The Computing Frontiers, CF ’16, pages 370–375, New University of Auckland, New Zealand, 1997. York, NY, USA, 2016. ACM. [10] S. Drape. Generalising the array split obfuscation. [24] T. Toyofuku, T. Tabata, and K. Sakurai. Program Information Sciences, 177(1):202–219, 2007. obfuscation scheme using random numbers to [11] M. Dukovic and E. Varga. Load profile-based complicate control flow. In International Conference efficiency metrics for code obfuscators. Acta on Embedded and Ubiquitous Computing, pages Polytechnica Hungarica, 12(5), 2015. 916–925. Springer, 2005. [12] D. Economou, S. Rivoire, and C. Kozyrakis. [25] S. Wang, H. Chen, and W. Shi. Span: A software Full-system power analysis and modeling for server power analyzer for multicore computer systems. environments. In In Workshop on Modeling Elsevier Sustainable Computing: Informatics and Benchmarking and Simulation (MOBS, 2006. Systems, page In press, 2011. [13] X. Fan, W.-D. Weber, and L. A. Barroso. Power [26] Y. Wu, H. Fang, S. Wang, and Z. Qi. A framework for provisioning for a warehouse-sized computer. In measuring the security of obfuscated software. In Proceedings of the 34th Annual International Proceedings of the 2010 International Conference on Symposium on Computer Architecture, ISCA ’07, Test and Measurement, ICTM ’10, 2010. pages 13–23, New York, NY, USA, 2007. ACM. [14] M. R. Guthaus, J. S. Ringenberg, D. Ernst, T. M. Austin, T. Mudge, and R. B. Brown. Mibench: A free, commercially representative embedded benchmark