1. 서론
전 세계적으로 신재생 에너지의 사용이 증가하고 있으며, 기업들은 RE100 목표를 달성하기 위해 효율적인 에너지 관리와 최적화를 위해 다양한 기술을 도입하고 있다. 이러한 전략 중 하나는 효과적인 에너지 저장 시스템(ESS)과 전기차의 배터리 관리 시스템을 통해 에너지의 효율적인 활용을 극대화하는 것이다. 배터리 정보는 배터리의 상태, 충전 및 방전 이력, 온도 등 다양한 데이터를 포함하고 있다. 하지만 이러한 정보는 해킹이나 데이터 유출의 위험에 노출되어 있으며, 안전한 정보 전송을 위한 암호화가 필수적이다. 본 논문에서는 이러한 배터리 정보의 안전한 전송을 위한 암호화 알고리즘의 비교 분석을 하고자한다.
2. 관련연구
2.1 BLE(Bluetooth Low Energy)
BLE(Bluetooth Low Energy)는 기존 블루투스의 전력 소모 문제를 해결하여 저전력으로 장시간 동안 일정 거리내의 장치를 무선으로 연결할 수 있는 통신 기술이며, 산업·과학·의료(Industry·Science·Medical, ISM) 등에 쓰이는 주파수 대역인 2.4GHz 대역에서 동작한다. 2.4GHz 주파수 영역의 일부를 각 2MHz의 크기를 갖는 40개 구간으로 나누어 그중 3개의 채널을 통해 Advertising 하며, 나머지 37개의 채널은 두 기기의 Connection을 통해 데이터를 송수신하는 용도로 사용되며, 특정 디바이스를 지정하지 않고 전방위 송출하는 Advertise Mode와 연결을 통해 데이터를 양방향으로 주고 받는 Connection Mode 두 가지 Mode로 설정할 수 있다[1][2][3][4].
2.2 AES
AES는 2001년 NIST에 의해 제정된 표준 암호 알고리즘이다. Rijndael 암호에 기반하며, 미국 정부가 AES로 채택한 이후로 전 세계적으로 가장 널리 사용되는 블록암호이다. AES는 전체적으로 SPN 구조이고, 128비트, 192비트, 256비트 키를 지원하는 대칭키 암호화 알고리즘으로, 높은 보안성과 성능을 가지고 있으며, 데이터 전송 및 저장을 하기 위해 대표적으로 사용하는 알고리즘이다[5][6].
(그림 1)은 AES 블록암호화 알고리즘의 다이어그램이다. SubBytes(), ShftRow(), MixColumn(), AddRoundKey()의 함수로 구성되어있고, 암호화 키 비트열의 크기는 128, 192, 256이며, 반복되는 라운드 수는 각각 10, 12, 14 이다[7].

(그림 1) AES 알고리즘 구조[7]
2.3 RSA
RSA는 Ron Rivest, Adi Shamir, Leonard Adleman에 의해 개발된 공개키 암호 방식이며, 큰 소수(prime number)의 곱으로 이루어진 정수의 소인수 분해가 어렵다는 사실에 보안성의 기반을 가지고 있고, 1024-bit에서 AES의 80-bit에 해당되는 보안성을 제공한다. 또한 국제표준화기구(ISO)를 비롯하여 ITU, ANSI, IEEE 등 여러 국제기구에서 공개키 암호 표준으로 채택되고 있으며, 정보의 암호·복호화뿐만 아니라 전자서명이 가능한 공개키 암호방식이다[8][9][10].
2.4 Salsa20
Salsa20은 Daniel J. Bernstein이 개발한 512 비트 출력의 스트림 암호로 유럽에서 시작된 eSTREAM 프로젝트에서 주목받은 암호 알고리즘이다. eSTREAM에서 1906는 3차에 걸쳐 소프트웨어와 하드웨어 구현 부문으로 나누어 진행된 분석 및 평가의 결과로, HC-128, Rabbit, Salsa20, SOSEMANUK, Grain, MICKEY, Trivium 스트림 암호를 선택했다. 이 중 Salsa20은 128비트 및 256비트의 비밀 키를 지원하고 64비트 IV(Initial Vector)를 사용해 512비트 키 스트림을 생성한다. 키 생성을 위한 내부 상태공간은 32비트로 된 4x4 테이블로 총 64바이트이다. 내부 상태의 갱신은 XOR 연산, 산술 덧셈 연산, 순환 연산으로만 구성되어 있고 S박스를 사용하지 않지만 블록 암호와 유사한 라운드 진행 방식으로 20라운드를 수행하며 대부분의 CPU에서 AES보다 좋은 성능을 보인다[11][12].
(그림 3)은 Salsa20 알고리즘 구조이다. 64바이트의 입력과 출력을 갖는 해쉬 함수는 Salsa20의 핵심기술로 카운터 모드 역할을 수행하며, 4바이트의 워드 단위로 연산한다. 비밀 키, 고정값, 블록번호를 입력 받은 확장(expansion) 함수가 워드 단위(4바이트)의 4×4 행렬, 즉 전체 64바이트의 크기를 갖는 내부변수를 생성하고, 해쉬(hash) 함수가 Quarterround(), Rowround(), Columnround(), Doubleround() 함수를 실행하여 최종적으로 64 바이트(512 비트)의 키 수열 블록을 생성하게 된다. 생성된 키 수열 블록과 64바이트의 평문을 배타적 논리합(XOR) 연산하여 암호문을 생성한다[7].

(그림 3) Salsa20 알고리즘 구조[7]
2.5 ChaCha20
ChaCha20은 Salsa20 스트림 암호의 파생 버전 중 하나로, RC4의 보안 결함 발견 이후 RC4의 스트림 암호화 영역을 빠르게 대체하고 있다. ChaCha20은 256 bits의 키에 상수(Constant) 128 bits와 블록 카운터(Block counter) 및 넌스(Nonce) 128 bits를 추가하여 512 bits의 ChaCha 블록을 구성한다. 이 블록은 20라운드의 연산을 거쳐 512 bits의 키스트림을 생성하고 XOR 연산을 통해 평문/암호문을 순차적으로 암호화/복호화 한다. 상수는 고정된 bits들로 256 bits의 키를 연장시키기 위해 사용되며, 넌스는 동일 키 사용 시 매 암호화/복호화마다 다르게 설정함으로써 안전성을 보장한다. 블록 카운터는 ChaCha 블록에서 키스트림을 생성 할때마다 1씩 증가시킨다. ChaCha20의 블록 카운터와 넌스의 길이의 합은 128 bits로 고정되어 있지만 구현에 따라 블록 카운터와 넌스의 bits 비를 32:96 또는 64:64으로 설정할 수 있다[12].
(그림 4)는 ChaCha20 Quarter Round 구조이며 Quarter Round 연산은 입력한 4개의 32-bit단위 데이터를 입력하여 연산하고 순차적으로 Addition, Xor, Rotate Shift 연산을 수행한다[14].

(그림 4) ChaCha20 Quarter Round 구조[14]
3. 암호 알고리즘 분석 환경
3.1 분석환경
배터리 정보 전송을 위해 적합한 암호화 기술을 분석하기 위해 AES, RSA, Salsa20, ChaCha20의 암호화 성능을 비교 분석한다. 분석을 위한 환경은 <표 1>과 같다.
<표 1> 분석환경

RSA 암호화는 비대칭 암호화 방식으로, RSA의 키 길이에 따라 암호화할 수 있는 데이터의 최대길이가 제한되어 직접 큰 데이터를 암호화할 수 없기 때문에, AES로 데이터를 암호화하고 RSA로 AES의 키를 암호화 하였다.
성능 비교 분석을 위해 사용된 데이터는 1,024, 2,048, 3,072, 4,096, 5,120, 6,144, 7,168, 8,192, 9,216, 10,240byte까지 데이터를 증가시키면서 성능을 측정하였다. 성능 측정의 경우 암호화 및 복호화 함수에서 소요 시간을 기반으로 KBytes/s를 계산하였다.
4. 암호 알고리즘 비교 분석
<표 2>는 암호화 기술들에 대해 기밀성, 경량화, 배터리 자원 영향, 보안성을 비교 분석한 것으로 기밀성은 AES, Salsa20 그리고 ChaCha20은 고 강도의 암호화 알고리즘으로 기밀성이 높으며, RSA는 주로 키 교환에 사용되기 때문에 직접적인 데이터 암호화에는 비효율적이다.
<표 2> BLE 데이터 전송 암호화 기술 비교 분석

경량화 및 배터리 자원 영향에서는 리소스가 제한된 환경에서 구현이 가능한 Salsa20과 ChaCha20이 배터리 자원을 적게 소모하기 때문에 경량화 환경에 적합하고, AES는 하드웨어 가속을 통해 성능을 높일 수 있는 특징이 있지만 그 만큼 배터리 소모량이 다소 높아 상대적으로 무거운 편이다.
보안성에서는 AES는 128비트 이상의 키를 사용하는 것이 권장되며, 매우 높은 보안성을 제공하며,. Salsa20과 ChaCha20 알고리즘도 높다. RSA는 키 길이에 따라 보안성이 달라지며, 일반적으로 큰 키를 사용할수록 보안성이 높아진다.
<표 3>은 암호화 알고리즘들의 암호화/복호화 처리 속도를 나타낸 것이다.
<표 3> 암호화 알고리즘 암호화/복호화 속도 단위 : Kbytes/s

분석 결과 ChaCha20 암호화 알고리즘이 가장 높은 성능을 보이는 것으로 확인되었다. 처리 속도 중 가장 빠른 암호화 처리 속도는 9,216byte일 때, 가장 빠른 85211.59 KBytes/s로 측정되었고, 복호화 처리속도도 마찬가지로 9,216byte 일 때, 처리속도가 빨랐으며 65084.03 KBytes/s로 측정되었다.
5. 결론
본 논문에서는 BLE 기반의 안전한 데이터 전송을 위해 AES, ChaCha20, RSA, Salsa20의 암호화 기술에 대한 분석과 각각의 암호화/복호화 처리 속도를 측정하여 비교 분석하였다.
암호화 기술의 정성적인 분석 결과는 RSA는 계산이 복잡하고 계산이 복잡하게됨으로써, 배터리의 사용량도 높아 경량화 환경에서는 적절하지 않았다. AES의 경우에는 고성능을 요구하는 용도로 하드웨어 가속을 통한 성능 극대화를 위한 환경에서 적합하였고, 전력 대비 높은 성능을 내기 위한 경량화 환경에서는 ChaCha20, Salsa20 암호화 알고리즘이 적합하였다.
이 분석을 뒷받침하기 위해 1,024, 2,048, 3,072, 4,096, 5,120, 6,144, 7,168, 8,192, 9,216, 10,240byte까지 데이터를 증가시키면서 각 암호화 알고리즘의 암호화, 복호화에 처리속도를 측정하였으며, 정성적인 결과와 마찬가지로 RSA, AES, Salsa20, ChaCha20 순으로 ChaCha20 알고리즘이 가장 처리 속도가 빠른 것을 알 수 있다. ChaCha20 알고리즘에서 가장 빠른 암·복호화 속도는 모두 9,216byte일 때, 각각 85211.59 KBytes/s, 65084.03 KBytes/s 속도로 측정되었다.
종합적인 분석결과 높은 보안성을 제공하고 Poly1305 MAC과 함께 사용할 경우 기밀성과 무결성을 동시에 보장할 수 있으며, 적은 리소스를 상요해 실시간 데이터를 전송함으로써, BLE 기반에서 배터리 소모를 최소화하여 사용 가능성이 가장 적합한 알고리즘인 것을 알 수 있었다.
References
- 서승환, 'Bluetooth Low Energy 기반 결제 서비스에서Relay Attack과 대응 방안에 대한 고찰', 인하대학교 석사학위논문, 2017.
- K. R. Tiwari, I. Singhal and A. Mittal, 'Smart Social Distancing Solution Using Bluetooth® Low Energy', 2020 5th International Conference on Computing, Communication and Security (ICCCS), pp. 1-5, 2020.
- J. S. Yoon, D. H. Kim, H. S. Gang and J. Y. Pyun, 'Indoor Positioning System with Grouping Strategy of BLE Advertising Packets', 2021 International Conference on Information and Communication Technology Convergence (ICTC), pp. 1501-1503, 2021.
- 김진호, '인공지능을 활용한 Bluetooth 기반 실내 측위 정확도 향상 연구', 경남대학교 석사학위논문, 2022.
- NIST, "Announcing the ADVANCED ENCRYPTION STANDARD(AES)," FIPS PUBS 197, Nov. 2001.
- Dowon Kim, Jongsung Kim, 'Analysis of the Efficiency for Some Selected Double-Block Length Hash Functions Based on AES/LEA', Journal of The Korea Institute of Information Security & Cryptology, Vol. 26, No.6, pp. 1353-1360, 2016. https://doi.org/10.13089/JKIISC.2016.26.6.1353
- 박영구, '시간적 정렬 방법을 이용한 보안 단말기의 전력분석 공격', 경북대학교 박사학위논문, 2012.
- 성병윤, 이상현, 신경욱, 'P-224 ECC와 2048-비트 RSA를 지원하는 공개키 암호 프로세서', 전기전자학회논문지, 제22권, 제3호, pp. 522-531, 2018. https://doi.org/10.7471/IKEEE.2018.22.3.522
- 조욱래, 신경욱, 'CIOS 몽고메리 모듈러 곱셈 알고리즘 기반 Scalable RSA 공개키 암호 프로세서', 한국정보통신학회논문지 제22권, 제1호, pp. 100-108, 2018. https://doi.org/10.6109/JKIICE.2018.22.1.100
- 김종민, 추현욱, 이동휘, {영상보안시스템에서 의 데이터 보호를 위한 ECC(Elliptic Curve Cryptography) 연산알고리즘 비교분석', 융합보안논문지, vol. 19, no. 5, pp. 35-45, 2019.
- 김길호, 김성기, 조경연, '스트림 암호 Salsa20/8의 재설계', 한국정보통신학회논문지, 제 18권, 제8호, pp. 1904-1913, 2014. https://doi.org/10.6109/JKIICE.2014.18.8.1904
- P. Souradyuti and B. Preneel, "Analysis of Non-fortuitous RC4 key stream generator," Progress in Crytology- INDOCRYPT, pp. 52-67, 2003.
- 전형석, 이성기, 'IoT 헬스케어 기기의 원격업데이트 보안을 위한 암호화 알고리즘 분석과 구현', 한국정보기술학회논문지, Vol. 9, No. 7, pp. 91-99, 2021. https://doi.org/10.14801/jkiit.2021.19.7.91
- 김민재, '부채널 공격에 안전한 ChaCha20, LEA 연산을 위한 32-bit RISC-V 프로세서 구조', 부산대학교 석사학위논문, 2022.