A Compiler-Based Approach to Data Security

  • F. Li
  • G. Chen
  • M. Kandemir
  • R. Brooks
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3443)


With the proliferation of personal electronic devices and embedded systems, personal and financial data is more easily accessible. As a consequence, we also observe a proliferation of techniques that attempt to illegally access sensitive data without proper authorization. Due to the severe financial and social ramifications of such data leakage, the need for secure memory has become critical. However, working with secure memories can have performance, power, and code size overheads since accessing a secure memory involves additional overheads for encryption/decryption and/or password checks. In addition, an application code may need to be restructured to work under such a memory system. In this paper, we propose a compiler-directed strategy to generate code for a secure memory based embedded architecture. The idea is to let the programmer mark certain data elements, called the seed elements, as secure (i.e., need to be stored in secure memory), and let the compiler determine the remaining secure elements automatically. We also address the problem of code size increase due to our strategy. The experimental results obtained through simulations clearly show that the proposed approach is effective in reducing the total secure memory size. The results also indicate that it is possible to reduce the resulting code size increase by clustering accesses to secure memory.


Array Element Loop Nest Loop Iteration Load Pattern Iteration Group 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Abadi, M., Feigenbaum, J.: Secure circuit evaluation. Journal of Cryptology 2(1), 112 (1990)CrossRefMathSciNetGoogle Scholar
  2. 2.
    Amarasinghe, S.P., Anderson, J.M., Wilson, C.S., Liao, S.-W., Murphy, B.R., French, R.S., Lam, M.S., Hall, M.W.: Multiprocessors from a Software Perspective. IEEE Micro (June 1996)Google Scholar
  3. 3.
    Ancourt, C., Irigoin, F.: Scanning polyhedra with DO loops. In: Proceedings of the 3rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 39–50 (1991)Google Scholar
  4. 4.
    Anderson, R.J., Kuhn, M.G.: Low Cost Attacks on Tamper Resistant Devices. In: Christianson, B., Lomas, M. (eds.) Security Protocols 1997. LNCS, vol. 1361, pp. 125–136. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  5. 5.
  6. 6.
    Collberg, C., Thomborson, C., Low, D.: A Taxonomy of obfuscating transformations. Technical Report #148, Department of Computer Science, University of Auckland (July 1997)Google Scholar
  7. 7.
    Collberg, C., Thomborson, C., Low, D.: Manufacturing cheap, resilient, and stealthy opaque constructs. In: Proceedings of the 25th ACM Symposium on Principles of Pro-gramming Languages, January 1998, pp. 184–196 (1998)Google Scholar
  8. 8.
    Dhem, J.-F., Faber, E.: Built-in hardware security: smart cards and crypto-processors. Embedded tutorial. In: Proceedings of International Conference on Computer Design (2001)Google Scholar
  9. 9.
    Goldreich, O., Micali, S., Wigderson, A.: How to play any mental game or a complete-ness theorem for protocols with honest majority. In: Proceedings of the 19th Annual ACM Symposium on Theory of Computing, New York City, May 1987, pp. 218–229 (1987)Google Scholar
  10. 10.
    Hohl, F.: An approach to solve the problem of malicious hosts. Universitaet Stuttgart Fa-kultaet Informatik, Bericht Nr. 1997/03 (1997)Google Scholar
  11. 11.
    Infineon Technologies. Security Chips and ICs.
  12. 12.
    Jansen, W., Karygiannis, T.: Mobile agent security. NIST Special Publication 800-19 (August 1999)
  13. 13.
    Kelly, W., Pugh, W.: A Framework for Unifying Reordering Transformations. Techni-cal Report, University of Maryland Institute for Advanced Computer Studies. Dept. of Computer Science, Univ. of Maryland (April 1993)Google Scholar
  14. 14.
    Kilpatrick, P., Crookes, D., Owens, M.: Program slicing: A computer aided program-ming technique. In: Proceedings of the Second IEEE / BCS Conference on Software En-gineering, pp. 602–604 (1988)Google Scholar
  15. 15.
    Linn, C., Debray, S.: Obfuscation of wxecutable code to improve resistance to static disassembly. In: Proceedings of the 10th ACM Conference on Computer and Communication Security (October 2003)Google Scholar
  16. 16.
    Loureiro, S.: Mobile Code Protection, Ph. D.Dissertation, Institut Eurecom (2001)Google Scholar
  17. 17.
    Loureiro, S., Bussard, L., Roudier, Y.: Extending tamper-proof hardware security to untrusted execution environments. In: Proceedings of CARDIS (2002)Google Scholar
  18. 18.
    Loureiro, S., Molva, R.: Function hiding based on error correcting codes. In: Proceedings of the International Workshop on Cryptographic Techniques and Electronic Commerce, City University of Hong-Kong, July 1999, pp. 92–98 (1999)Google Scholar
  19. 19.
    Pugh, W., Rosser, E.: Iteration space slicing and its application to communication op-timization. In: Proceedings of the International Conference on Supercomputing (1997)Google Scholar
  20. 20.
    Pugh, W., Rosser, E.: Iteration space slicing for locality. In: Proceedings of Languages and Compilers for Parallel Computing (1999)Google Scholar
  21. 21.
    Rankl, W., Effing, W.: Smart Card Handbook, vol. 421, p. 71. John Wiley and Sons, Chichester (1997)Google Scholar
  22. 22.
    Quisquater, J.-J., Samyde, D.: ElectroMagnetic analysis (EMA): Measures and counter-measures for smart cards. In: Attali, S., Jensen, T. (eds.) E-smart 2001. LNCS, vol. 2140, pp. 200–210. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  23. 23.
    Sander, T., Tschudin, C.F.: Towards mobile cryptography. In: Proceedings of the 1998 IEEE Symposium on Security and Privacy, Oakland, California, May 1998, pp. 215–224 (1998)Google Scholar
  24. 24.
    Sander, T., Tschudin, C.: On software protection via function hiding. In: Proceedings of the Second Workshop on Information Hiding, Portland, Oregon, USA (April 1998)Google Scholar
  25. 25.
    Weiser, M.: Program slicing. IEEE Transactions on Software Engineering, 352–357 (July 1984)Google Scholar
  26. 26.
    Wolfe, M.: High Performance Compilers for Parallel Computing. Addison-Wesley Pub-lishing Company, Reading (1996)zbMATHGoogle Scholar
  27. 27.
    Yao, A.C.: Protocols for secure computations. In: Proceedings of the IEEE Symposium on Foundations of Computer Science, Chicago, pp. 160–164 (1982)Google Scholar
  28. 28.
    Yao, A.C.: How to generate and exchange secrets. In: Proceedings of the IEEE Sympo-sium on Foundations of Computer Science, Toronto, pp. 162–167 (1986)Google Scholar
  29. 29.
    Yee, B.: A sanctuary for mobile agents. Technical Report CS97-537, Department of Computer Science and Engineering, UCSD (April 1997)Google Scholar
  30. 30.
    Zhang, X., Gupta, R.: Hiding Program Slices for Software Security. In: First Annual IEEE/ACM Symposium on Code Generation and Optimization, San Francisco, CA, March 2003, pp. 325–336 (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • F. Li
    • 1
  • G. Chen
    • 1
  • M. Kandemir
    • 1
  • R. Brooks
    • 2
  1. 1.Computer Science and Engineering DepartmentThe Pennsylvania State UniversityUniversity Park
  2. 2.Electrical and Computer Engineering DepartmentClemson UniversityClemson

Personalised recommendations