시메크32/64 사이드채널 큐브 공격 보안 분석
초록
본 논문은 IoT 환경에 적합한 경량 블록 암호 시메크32/64에 대해 Hamming weight 누설 모델을 이용한 사이드채널 큐브 공격을 제안한다. 내부 상태의 4라운드 후 Hamming weight의 LSB 두 번째 비트를 관찰함으로써 32개의 독립적인 키 비트 방정식을 도출하고, 데이터 복잡도 2^11.29·트레이스와 시간 복잡도 2^35·연산으로 키 전체를 복구한다. 기존 공격 대비 효율이 크게 향상된 결과를 보여준다.
상세 분석
시메크(Simeck) 암호는 라이트웨이트 환경, 특히 사물인터넷(IoT) 디바이스에 최적화된 Feistel‑형 구조를 갖는다. 시메크32/64는 32비트 블록과 64비트 키를 사용하며 32라운드의 라운드 함수를 통해 암호화가 진행된다. 라운드 함수는 회전 연산과 AND, XOR 연산의 조합으로 구성되어 있어 구현이 간단하지만, 알제브라적 구조가 비교적 단순해 사이드채널 공격에 취약할 가능성이 있다.
큐브 공격은 고차 미분을 이용해 암호의 비선형 연산을 선형화하고, 선택된 변수들의 조합(큐브)으로부터 비밀키에 대한 선형 방정식을 추출한다. 전통적인 큐브 공격은 순수히 암호 텍스트만을 이용하지만, 사이드채널 정보를 결합하면 훨씬 적은 트레이스로 방정식을 얻을 수 있다. 본 연구에서는 전력 소비가 내부 상태 비트들의 1의 개수, 즉 Hamming weight와 선형적으로 관계한다는 Hamming weight 누설 가정을 채택하였다.
핵심 아이디어는 4라운드 후 내부 상태의 Hamming weight를 측정하고, 그 값의 LSB 두 번째 비트(즉, 2^1 자리)를 추출하는 것이다. 이 비트는 Hamming weight의 전체 값에 비해 노이즈에 덜 민감하면서도 충분히 정보를 담고 있다. 연구진은 2^11.29개의 전력 트레이스를 수집하고, 각 트레이스에 대해 해당 비트를 추출한 뒤, 미리 정의한 변수 집합(큐브) 위에서 XOR 합을 수행하였다. 이 과정에서 32개의 서로 독립적인 선형 방정식이 생성되었으며, 이는 32비트 키 전체를 유일하게 결정한다.
복구 과정은 크게 두 단계로 나뉜다. 첫 번째는 데이터 복잡도 단계로, 충분한 트레이스를 확보해 각 큐브에 대한 출력 비트를 안정적으로 추정한다. 두 번째는 시간 복잡도 단계로, 추정된 비트를 이용해 선형 방정식 시스템을 가우스 소거법 등으로 풀어 키 비트를 복원한다. 실험 결과, 전체 공격에 필요한 연산량은 약 2^35이며, 이는 기존 연구에서 보고된 2^38 이상의 시간 복잡도와 비교해 현저히 낮다. 또한, 데이터 복잡도 역시 2^12 수준에서 2^15 수준으로 보고된 기존 방법보다 약 3배 가량 감소하였다.
보안적 시사점으로는, 시메크32/64가 설계 단계에서 사이드채널 방어 메커니즘을 충분히 고려하지 않았음을 보여준다. 특히, 라운드 수가 적고 라운드 함수가 단순한 구조이기 때문에, 초기 라운드에서의 내부 상태가 비교적 예측 가능하고, Hamming weight 누설을 통해 쉽게 추출될 수 있다. 따라서 마스킹, 랜덤화, 전력 균등화와 같은 하드웨어 수준의 방어 기법을 적용하거나, 라운드 함수에 비선형성을 추가하는 설계 변경이 필요하다.
본 논문은 사이드채널 큐브 공격이라는 비교적 새로운 접근법을 경량 암호에 적용함으로써, 기존의 순수 암호학적 분석과 물리적 누설 분석 사이의 경계를 허물었다. 이는 향후 IoT 디바이스에 적용되는 경량 암호들의 보안 평가에 중요한 기준이 될 수 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기