본 기술은 차량용 보안메시지 병렬처리를 위한 OpenCL/OpenMP 기반 ECC 암호 라이브러리 기술로서, 차량용 헤드유닛, OBU 및 노변 기지국(RSU) 등에서 V2X 메시지 보안을 위해 IEEE 1609.2에서 정의한 NIST P256 커브 기반의 ECDSA 서명 검증을 병렬처리하는 기능을 포함한다. 일반적으로 V2V/V2I 통신, 즉 차량간 혹은 차량-인프라간 통신 메시지에 대한 인증 기능을 수행할 수 있으며, 그 외에도 SSL 통신 인증, 클라우드/포그 컴퓨팅 환경에서 대용량의 서명 검증 등 응용 분야가 다양하다.
본 기술은 상기 암호(서명 검증) 기능을 제공할 수 있도록 라이브러리 형태로 구현하였으며, 이 라이브러리는 각각 GPGPU 상에서 동작하는 OpenCL기반 NIST P256 커브상의 ECDSA 서명 검증 라이브러리와 OpenMP기반 병렬처리 라이브러리로 구성된다. 기술의 상세한 구성에 대하여는 2장에서 보다 자세히 기술한다.
본 기술을 활용하면 자율주행차량의 헤드유닛/OBU 및 노변기지국(RSU)에서 이루어지는 차량간 혹은 차량과 인프라간 통신(V2X)에서 주고받는 IEEE 1609.2 메시지에 대한 전자 서명 검증 성능을 현재의 하드웨어 환경을 최대한 활용하여 끌어올릴 수 있는 장점이 있다. 즉, GPGPU와 멀티코어-CPU를 최대한 활용함으로써, 도심의 교차로 등 차량간 통신 메시지가 초당 1000건~수천건 이상 발생하는 사례와 같이 대량의 ECDSA 서명 검증을 수행하는 경우에 효율적으로 처리할 수 있는 기반 소스 코드를 제공하도록 구성하였다.
차량간(V2V) 혹은 차량과 인프라간(V2I) 통신 등에서는 통신 데이터의 신뢰성 판단 및 보장을 위한 보안 기술 개발이 필수적이다. 즉, 통신 대상 및 데이터의 신뢰성을 확보하기 위하여 차량용 인증서를 이용한 암호 기술이 필수적이며 이 중에서도 서명 검증이 핵심으로 IEEE 1609.2 표준에서는 NIST P256 커브상의 ECDSA 서명 및 검증 알고리즘의 사용이 필수적이다.
본 기술은 앞서 언급한 필요성을 기반으로 하는 보안 요구사항을 충족하기 위하여 개발되었다. 즉, 헤드유닛, 차량용 통신 보드, 노변 기지국 등에서 탑재되는 보드 상의 GPGPU와 멀티코어 CPU를 기반으로 ECDSA 서명 검증을 병렬 처리하기 위하여 다음 기능을 포함하고 있다.
1) GPGPU 기반 ECDSA 서명 검증 기능
- NIST P256 커브 구성 유한체 연산
- NIST P256 커브 상의 타원 곡선 연산 기능 (포인트 덧셈, 스칼라 곱 등)
- NIST P256 커브상의 ECDSA 서명 검증
- GPGPU 기반 병렬 처리 기능/성능 확인
2) 멀티코어 CPU 기반 ECDSA 서명 검증 기능
- 멀티코어 CPU 기반 연산을 위한 메모리 공유 및 함수 호출 기능
- 멀티코어 CPU 기반 병렬 처리 기능/성능 확인
본 기술에 해당하는 GPGPU와 멀티코어-CPU 기반 서명 검증 알고리즘을 동시에 동작시키는 스케줄러를 구현할 경우, GPGPU와 CPU에서 동시에 병렬처리를 하도록 함으로써 현재의 하드웨어 성능을 극대화할 수 있는 특장점을 지닌다. 또한, 본 기술에서 구현된 기술은 OpenCL 및 OpenMP 등 이기종의 플랫폼 환경에서도 사용가능한 오픈 소스 프레임워크를 활용함으로써, 이를 지원하는 GPGPU 및 CPU의 경우 원활하게 동작 가능하도록 설계/구현하였다.
따라서 이 방식은 현재의 자율주행용 테스트베드, 미래의 자율주행차량용 임베디드 환경 뿐만 아니라 대량의 ECDSA 서명 검증을 요구하는 고성능의 클라우드/포그 컴퓨팅 환경에서도 코드를 거의 바꾸지 않고 동작할 수 있는 장점을 지닌다.
- OpenCL 기반 GPU용 ECC 서명검증 병렬처리 라이브러리 SW
- OpenMP 기반 멀티코어-CPU용 ECC 서명검증 병렬처리 라이브러리 SW
□ OpenCL 기반 GPU용 ECC 서명검증 병렬처리 핵심 모듈
- NIST P256 커브 기반 ECDSA 검증 모듈 (OpenCL 코드)
. NIST P256 커브를 구성하는 유한체 연산 기능
. NIST P256 커브상의 ECC 연산 기능 (포인트 덧셈, 스칼라 곱 등)
. NIST P256 커브상의 ECDSA 서명검증 기능
- OpenCL 기반 ECDSA 병렬처리 기능 검증 모듈
. OpenCL 라이브러리/커널 적재 기능
. GPGPU 메모리 데이터 전달 기능
. OpenCL 병렬 처리 기능/성능 검증 기능
□ OpenMP 기반 멀티코어-CPU용 ECC 서명검증 병렬처리 핵심 모듈
- OpenMP 기반 ECDSA 병렬처리 기능 검증 모듈
. OpenMP 동작을 위한 메모리 공유 및 ECDSA 서명검증 함수 호출 기능
. OpenMP 병렬 처리 기능/성능 검증 기능
본 기술을 적용할 경우, 자율주행차량의 위치/속도 정보 및 주변 교통상황 정보 등 안전과 관련한 차량통신 데이터에 대한 신뢰성을 빠르게 검증할 수 있도록 함으로써, 보다 안전한 자율주행환경을 구성하는 차량간 통신 기기, 노변 기지국 등에 대한 제품화 및 서비스 확산이 가능할 것으로 기대된다.