System for Executing Encrypted Native Programs
Resh, A., Kiperberg, M., Leon, R., & Zaidenberg, N. (2017). System for Executing Encrypted Native Programs. International Journal of Digital Content Technology and its Applications, 11 (3), 56-71. Retrieved from http://www.globalcis.org/jdcta/ppl/JDCTA3803PPL.pdf
© the Authors & Convergence Information Society, 2017. This is an open access article published by Convergence Information Society.
An important aspect of protecting software from attack, theft of algorithms, or illegal software use, is eliminating the possibility of performing reverse engineering. One common method to deal with these issues is code obfuscation. However, in most case it was shown to be ineffective. Code encryption is a much more effective means of defying reverse engineering, but it requires managing a secret key available to none but the permissible users. The authors propose a new and innovative solution. Critical functions in protected software are encrypted using well-known encryption algorithms. Following verification by external attestation, a thin hypervisor is used as the basis of an eco-system that manages just-in-time decryption, inside the CPU, where decrypted instructions are then executed and finally discarded, while keeping the secret key and the decrypted instructions absolutely safe. The paper presents and compares two methodologies that perform just-in-time decryption: in-place and buffered execution. The former being safer, while the latter boasts better performance. ...
PublisherConvergence Information Society (GlobalCIS)