GPU를 이용한 Salsa20 스트림 암호의 병렬화
Parallel Processing of Salsa20 Stream Cipher Using GPU
0
조회
0
다운로드
9
인용
0
참고문헌
키워드
초록
GPU는 높은 연산 성능에 비해 그래픽 처리를 하지 않을 경우에는 유휴상태에 놓여있다. 최근 유휴상태인 GPU를 이용하여 그래프 문제, 대용량 탐색 및 정렬, 행렬 연산 등 다양한 문제들을 병렬처리 하는 GPGPU가 각광받고 있고 NVIDIA사의 CUDA플랫폼의 등장으로 이러한 흐름은 더욱 가속화 되고 있다. GPGPU의 발전에 맞추어 GPU상에서 몇몇의 암호 알고리즘들이 구현되었지만, 스트림 암호의 경우에는 최근에서야 ECRYPT에 의해 표준이 제정되었기 때문에 아직 연구 결과가 미비하다. 이에 본 논문에서는 ECRYPT의 소프트웨어 기반 암호인 Salsa20을 GPU상에서 구현하고 이를 최적화하였으며, 파이프라이닝 기법을 사용하여 성능을 극대화하였다. 본 논문의 실험 결과에 따르면 CUDA를 사용한 Salsa20은 6.2Gbps의 암호화 속도를 보여주어 138.7Mbps의 성능을 보인 CPU상에서의 구현에 비해 무려 45배 이상의 성능 향상을 보여주었다.
Abstract
Recent performance improvements in GPU enabled optimized parallel implementation of various algorithms including graph algorithms, searching and sorting of massive data, matrix operations, and so on. After the advent of CUDA platform of NVIDIA, more algorithms including several cryptographic algorithms are being implemented over GPUs. However, little work has been done on the parallel implementation of stream ciphers because it hasn't been long since the first standard for stream cipher were published by ECRYPT. In this paper, we provide a parallel implementation of Salsa20 stream cipher, one of the four software-based stream ciphers in the ECRYPT standard, over a GPU, and optimize its performance using a pipelining technique. According to our experimental results, the throughput of Salsa20 on the CUDA platform is up to 6.2Gbps, which is approximately 45 times faster than the implementation over a CPU with 138.7Mbps.
참고문헌 (25)
- "NVDIA CUDA Programming Guide"[URL]
- P. Harish, "Accelerating Large Graph Algorithms on the GPU Using CUDA", HiPC2007, LNCS, 통권 : 4873, pp.197~208 (2007)
- T. Okuyama, "A Task Parallel Algorithm for Computing the Costs of All-Pairs Shortest Paths on the CUDA-compatible GPU", ISPA2008, pp.284~291 (2008)
- N. K. Govindaraju, "Fast Computation of Database Operations using Graphics Processors", SIGMOD Conference 2004, pp.215~226 (2004)
- N. K. Govindaraju, "GPUTeraSort: High Performance Graphics Co-processor Sorting for Large Database Management", SIGMOD Conference 2006, pp.325~336 (2006)
- A. E. Zein, "Performance Evaluation of the NVIDIA GeForce 8800 GTX GPU for Machine Learning", ICCS 2008, Part I, LNCS, 통권 : 5101, pp.466~475 (2008)
- A. Nukada, "Bandwidth Intensive 3-D FFT kernel for GPUs using CUDA", SC2008 (2008)
- R. Rivest, "A method for obtaining digital signatures and public-key cryptosystems", Communications of the ACM, 통권 : 21, pp.120~126 (1978)
- N. Koblitz, "Elliptic curve cryptosystem", Mathematics of computation, 통권 : 48, pp.203~209 (1987)
- V. Miller, "Use of elliptic curves in cryptography", Advances in Cryptology - CRYPTO'85, LNCS, 통권 : 218, pp.417~426 (1986)
- J. Daemen, "AES Proposal : Rijndael" (1999), Original AES Submission to NIST
- National Institute of Standards and Technology (NIST), "FIPS 197:Advanced Encryption Standard(AES)", ~ (2001)
- "the ECRYPT Stream Cipher"[URL]
- "Grain - A Stream Cipher for Constrained Environments"[URL]
- "The stream cipher MICKEY 2.0"[URL]
- "Trivium Specifications"[URL]
- "Stream Cipher HC-128"[URL]
- "The Stream Cipher Rabbit"[URL]
- "Salsa20"[URL]
- "Sosemanuk, a fast software-oriented stream cipher"[URL]
- S. A. Manavski, "CUDA compatible GPU as an efficient hardware accelerator for AES cryptography", ICSPC2007, pp.24~27 (2007)
- R. Szerwinski, "Exploiting the Power of GPUs for Asymmetric Cryptography", CHES 2008, LNCS, 통권 : 5154, pp.79~99 (2008)
- D. L.Cook, "CryptoGraphics : Secret Key Cryptography Using Graphics Cards", CT-RSA 2005, LNCS, 통권 : 3376, pp.334~350 (2005)
- "NVIDIA CUDA"[URL]
- "AMD CTM"[URL]
