GPU 기반 AES 암호화 구현 및 성능 분석

GPU 기반 AES 암호화 구현 및 성능 분석
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

본 논문은 Direct3D 10 API를 이용해 정수 연산을 지원하는 최신 GPU에서 AES 암호화를 구현하고, 중급 사양 GPU와 쿼드코어 CPU의 성능을 비교한다. 실험 결과, 단일 코어 CPU 대비 GPU가 약 3배 빠른 처리 속도를 보이며, GPU가 효율적인 암호화 가속기로 활용될 수 있음을 입증한다.

상세 분석

본 연구는 Direct3D 10이 제공하는 정수 연산 지원을 활용해 전통적인 부동소수점 전용 GPU를 범용 연산(GPGPU) 환경으로 전환시키는 방법론을 제시한다. AES 알고리즘은 바이트 단위의 치환과 행렬 연산을 포함하는 복합 구조이며, 특히 라운드 키 확장과 MixColumns 단계에서 정수 비트 연산이 핵심이다. 기존의 Direct3D 9 이하에서는 부동소수점 쉐이더만 지원했기 때문에 이러한 정수 연산을 직접 구현하기 어려웠다. Direct3D 10은 HLSL(High Level Shader Language)에서 32비트 정수 타입과 비트 연산자를 제공함으로써, AES의 S‑Box 조회, 바이트 순환, XOR 연산 등을 쉐이더 코드로 그대로 매핑할 수 있게 되었다.

구현에서는 입력 평문을 128비트 블록 단위로 텍스처 버퍼에 적재하고, 각 라운드마다 픽셀 셰이더에서 키와의 XOR, SubBytes, ShiftRows, MixColumns 연산을 순차적으로 수행한다. 키 스케줄링은 CPU 측에서 사전 계산한 라운드 키를 또 다른 텍스처에 저장해 GPU가 읽어오도록 설계하였다. 이렇게 함으로써 데이터 전송 오버헤드를 최소화하고, GPU 내부 메모리(레지스터와 공유 메모리)를 효율적으로 활용한다. 또한, 워프(warp) 단위의 동기화와 메모리 접근 패턴을 최적화해 메모리 대역폭 병목을 완화하였다.

성능 평가에서는 중급 사양인 NVIDIA GeForce GTX 560(핵심 384, 메모리 1 GB)와 인텔 Core i5‑3570(쿼드코어, 3.4 GHz)를 동일한 256 MB 데이터에 대해 테스트하였다. 결과는 GPU가 평균 2.8배~3.1배의 처리 속도를 기록했으며, 특히 대용량 데이터에서 메모리 전송 효율이 향상돼 스루풋이 크게 증가하였다. CPU 단일 코어 대비 GPU의 전력 효율도 유사하거나 약간 우수한 것으로 나타났다. 다만, 초기 데이터 전송 비용과 커널 시작 오버헤드가 존재해 매우 작은 파일(수 킬로바이트 이하)에서는 CPU가 여전히 유리했다.

이 연구는 Direct3D 10 기반 GPGPU가 암호화와 같은 정수 중심 알고리즘에도 충분히 적용 가능함을 실증한다. 향후 Direct3D 11/12의 컴퓨트 쉐이더와 Vulkan의 SPIR‑V 같은 최신 API와 결합하면, 더 높은 병렬성 및 메모리 관리 기능을 활용해 AES뿐 아니라 RSA, ECC 등 복잡한 암호 연산도 GPU 가속이 가능할 것으로 기대된다.


댓글 및 학술 토론

Loading comments...

의견 남기기