LTE‑EPS 보안 핵심: AES 기반 EEA2·EIA2 구현과 검증
초록
**
본 논문은 LTE‑EPS에서 사용되는 기밀성 알고리즘 EEA2와 무결성 알고리즘 EIA2를 상세히 분석하고, 3GPP 표준에 정의된 테스트셋을 이용해 C 언어로 구현·검증한 결과를 제시한다. AES‑CTR와 AES‑CMAC을 각각 적용한 두 알고리즘의 구조·키 관리·카운터 생성 방식을 설명하고, 구현 시 엔디언 문제와 메모리 정렬 이슈를 어떻게 해결했는지 기술한다.
**
상세 분석
**
논문은 먼저 LTE‑EPS 보안 체계 전체를 조망하고, PDCP 계층에서 수행되는 암호화·복호화와 무결성 보호 메커니즘을 구분한다. 기밀성 측면에서 EEA2는 128‑bit AES를 CTR 모드로 활용한다. 입력 파라미터인 COUNT, BEARER, DIRECTION, LENGTH, 그리고 128‑bit 키(K_UPenc, K_RRCenc, K_NASenc)를 기반으로 64‑bit 상위 영역에 COUNT‖BEARER‖DIRECTION‖0^26을 배치하고, 하위 64‑bit를 0으로 초기화한 첫 번째 카운터 블록 T1을 만든다. 이후 T1을 1씩 증가시켜 연속적인 카운터 블록 T_i를 생성하고, 각 블록을 AES‑Encrypt 함수에 입력해 128‑bit 키스트림을 만든다. 평문 블록과 키스트림을 XOR함으로써 암호문을 얻으며, 마지막 블록은 필요 길이만큼 트렁케이션한다. 이러한 구조는 암호화와 복호화가 동일한 연산 흐름을 가지므로 구현이 단순하고 고속 처리에 유리하다.
무결성 보호인 EIA2는 AES‑CMAC을 기반으로 한다. 입력 파라미터는 32‑bit COUNT, 5‑bit BEARER, 1‑bit DIRECTION, 메시지 본문(MESSAGE) 및 128‑bit 무결성 키(K_RRCint, K_NASint)이다. 먼저 128‑bit 블록을 구성하는데, 상위 64‑bit에 COUNT‖BEARER‖DIRECTION‖0^26을 배치하고, 하위 64‑bit는 0으로 채운다. 이 블록을 AES‑Encrypt하여 서브키를 생성하고, 메시지 전체를 128‑bit 블록 단위로 패딩한 뒤 CMAC 연산을 수행한다. 최종적으로 32‑bit MAC‑I가 생성되어 RRC·NAS 메시지에 부착된다.
구현 부분에서는 C 언어로 직접 AES‑CTR과 AES‑CMAC을 구현했으며, 엔디언 차이와 메모리 정렬 문제를 해결하기 위해 바이트 순서를 명시적으로 변환하고, 64‑bit 카운터 증가 연산을 uint64_t 타입으로 처리하였다. 3GPP TS 33.401에 정의된 12개의 테스트셋을 모두 실행해 기대값과 일치함을 확인했으며, 대표적인 테스트케이스(키, COUNT, BEARER, DIRECTION, 평문, 기대 암호문)를 논문에 표기하였다.
이러한 실험 결과는 표준 정의와 구현이 정확히 일치함을 증명하며, 특히 EEA2와 EIA2가 동일한 AES 핵심 엔진을 공유함에도 불구하고, 모드 전환(CTR ↔ CMAC)만으로 서로 다른 보안 목표를 달성한다는 점을 강조한다. 또한, 기존 UEA1·UIA1(SNOW 3G 기반) 대비 AES 기반 알고리즘이 라이선스·호환성 측면에서 유리하고, 고속 데이터 전송 환경에 적합함을 실증한다.
**
댓글 및 학술 토론
Loading comments...
의견 남기기