초록
난독처리(obfuscation)는 프로그램의 의미를 그대로 유지하면서, 프로그램 코드를 이해/분석하기 어렵게 만드는 기술로, 악의적인 역공학(reverse engineering) 공격으로부터 소프트웨어를 방어하는 가장 효과적인 기술 중의 하나이다. 하지만, 난독처리로 인해 원본 프로그램에 비해 난독처리된 프로그램의 코드 크기 및 실행 시간이 증가될 수 있다. 모바일 기기에서 코드크기 및 수행시간 증가는 전력소모 증가 등 자원낭비로 이어진다. 본 논문에서는 ARM 프로세서가 장착된 임베디드 보드 상에서 몇 가지 고급수준 난독처리 알고리즘을 구현하고, 각 난독처리 알고리즘의 유효성 및 전력 소모량을 분석하여, 프로그램의 특성에 따라 실행시간이나 전력소모 면에서 효율적인 난독처리 기법이 있음을 보였다.
Obfuscation is known as one of the most effective methods to protect software against malicious reverse engineering transforming the software into more complicated one with still preserving the original semantic. However, obfuscating a program can increase both code size of the program and execution time compared to the original program. In mobile devices, the increases of code size and execution time incur the waste of resources including the increase of power consumption. This paper has analyzed the effectiveness of some high-level obfuscation algorithms as well as their power consumption with implementing them under an embedded board equipped with ARM processor. The analysis results show that there is (are) an efficient obfuscation method(s) in terms of execution time or power consumption according to characteristics of a given program.