DOI QR코드

DOI QR Code

Implementation and Analysis of Multi-precision Multiplication for Public Key Cryptography Based on NDK

NDK 기반 공개키 암호를 위한 곱셈기 구현 및 분석

  • Received : 2012.06.07
  • Accepted : 2012.08.07
  • Published : 2012.11.30

Abstract

On Android environment, program development is conducted with JAVA SDK. However, using JAVA, it is operated over virtual machine which shows lower performance in terms of speed than traditional C language programming. The method writes program in C language, which conducts operation efficiently. In the paper, we implement multiplication using NDK and SDK to analyze the public key cryptography over Android environment. In case of SDK, we used BigInteger package and in case of NDK, we used Comb method. Moreover, execution time of arithmetic, branch and call operations over Android environment is compared to understand performance enhancement using NDK package.

안드로이드 상에서의 프로그램 개발은 JAVA SDK를 통해 이루어진다. 하지만 JAVA의 사용은 virtual machine 상에서의 동작으로 인해 기존의 C언어에 비해 성능이 떨어지는 단점을 가진다. 최근에는 이러한 문제점을 해결하기 위해 NDK를 이용한 최적화 프로그램 개발이 사용되고 있다. 해당 기법은 안드로이드 프로그램을 C언어로 작성하여 연산을 효율적으로 수행한다. 본 논문에서는 안드로이드 상에서의 공개키 기반 암호화를 비교 분석하기 위해 NDK와 SDK를 사용하여 곱셈을 구현한다. SDK의 구현에는 BigInteger 패키지를 사용하였으며 NDK의 구현에는 Comb method를 사용하였다. 또한 안드로이드 상에서의 사칙연산, 조건문 그리고 호출문의 연산 수행 결과를 비교하여 NDK를 통한 성능향상에 대해 알아본다.

Keywords

References

  1. http://developer.android.com/index.html, 안드로이드 개발관련 사이트
  2. http://developer.android.com/reference/java/math/Big Integer.html.
  3. Comba, P.: Exponentiation cryptosystems on the IBM PC. In: IBM Systems Journal 29(4), pp. 526-538. (1990) https://doi.org/10.1147/sj.294.0526
  4. "Android.com," Available: http://www.android.com
  5. "Android SDK I Android Developers," Available: http://developer.android.com/sdk/index.html
  6. DalvikVM.com, "Dalvik Virtual Machine insights," Available: http://www.dalvikvm.com/
  7. "Android NDK I Android Developers," Available: http://developer.android.com/sdk/ndk/index.html
  8. "Java Native Interface - Wikipedia," Available: http://en.wikipedia.org/wiki/Java_Native_Interface
  9. Rob Gordon, "Essential JNI: Java Native Interface," ISBN 978-0136798958, 1998.
  10. Mark Allen Weiss, "C++ for Java Programmers," ISBN 978-0139194245, October 2003.
  11. Leonid Batyuk, Aubrey-Derrick Schmidt, Hans- Gunther Schmidt, Ahmet Camtepe and Sahin Albayrak, "Developing and Benchmarking Native Linux Applications on Android,"Proceedings of the 2nd International Conference on Mobile Wireless Middleware, Operating Systems, and Applications (Mobilware 2009), pp. 381-390, Beriln, Germany, April 28-29, 2009.
  12. Sangchul Lee and Jae Wook Jeon, "Evaluating Performance of Android Platform Using Native C for Embedded Systems," International Conference on Control, Automation and Systems, Gyeonggi-do, Korea, Oct. 27-30, 2010.
  13. Jung Ha Paik, Seog Chung SEO, Yungyu Kim, HwanJin Lee, HyunChul Jung, DongHoon Lee, "An Efficient Implementation of Block Cipher in Android Platform," 2011 Fifth FTRA International Conference on Multimedia and Ubiquitous Engineering. 2011.
  14. "What is android." [Online]. Available: http://developer.android.com/guide/basics/what-is-android.html
  15. "What is ndk." [Online]. Available: http://developer.android. com/sdk/ndk/overview.html