ARIA is an AES-like 128-bit involution substitution permutation network (ISPN) block cipher algorithm used by Korean government. AES, the most popular block cipher algorithm, has a lot of demands for acceleration. AES acceleration is supported by AES-NI, and at the same time it has long been researched to accelerate AES algorithm on GPU. However, it is impossible to accelerate ARIA with its own instruction support and there is no available GPU implementation of ARIA. In this work, we built an OpenCL ARIA encryption library for GPUs/APUs, explore optimization strategies and their impacts, and test encryption throughputs on various platforms. Our implementation reports 104.70 Gbps encryption throughput on GeForce GTX 1060 GPU.
2003년 국내에서 개발된 블록 암호 알고리즘인 ARIA는 ISPN 구조의 128 비트 블록 암호이며 AES 블록 암호 알고리즘과 구조가 유사하다. 가장 많이 쓰이는 블록 암호 알고리즘 중 하나인 AES는 암호화 가속에 대한 수요가 많기 때문에 AES-NI와 같이 인스트럭션 수준으로 가속화가 지원되기도 하였으며, GPU를 이용하여 AES 암호화를 가속하고자 하는 연구 또한 오랫동안 진행되었다. 하지만 비교적 수요가 적은 ARIA 알고리즘의 경우 인스트럭션 수준으로 가속을 지원받기도 어려우며, ARIA의 GPU 구현체 또한 찾기 힘들다. 본 연구에서는 OpenCL를 이용하여 GPU를 위한 ARIA 암호화 가속 라이브러리를 구현하였으며, 적용할 수 있는 최적화 기법과 그 영향을 분석하고, 다양한 플랫폼에서 시간당 암호화 처리량을 측정하였다. 본 연구에서 구현한 ARIA 라이브러리는 지포스 GTX 1060 GPU에서 104.7 Gbps의 성능을 보였다.