새로운 동기식 스트림 암호 DICING 소개
초록
본 논문은 LFSR의 선형성을 곱셈 연산으로 대체한 ‘프로젝터’ 구조와 두 개의 ‘다이스’ 카운터를 이용한 시계 제어 방식을 결합한 동기식 스트림 암호 DICING을 제안한다. 128‑bit 및 256‑bit 키를 지원하며, 구현 속도는 AES보다 약 2배 빠른 것으로 주장한다.
상세 분석
DICING은 기존 LFSR 기반 스트림 암호가 갖는 선형 관계를 회피하기 위해, GF(2^m) 상에서 상태를 곱셈(k·x)으로 업데이트하는 ‘프로젝터(Projector)’를 도입한다. 여기서 m은 126, 127, 128 등으로 선택되며, 각각의 프로젝터는 원시 다항식에 의해 정의된 유한체에서 동작한다. 두 개의 프로젝터(Γ₁, Γ₂)와 두 개의 8비트 카운터(D′, D″)를 ‘다이스’라 부르며, 이 카운터는 각각 Γ₁, Γ₂의 최하위 8비트를 기록한다. 다이스 값은 이후 3·Γ와 4·Γ의 업데이트 스텝을 제어하는데, 즉 t_ω와 t_τ의 곱셈 계수를 동적으로 결정한다. 이러한 설계는 전통적인 시계 제어 방식(예: Shrinking Generator, Stop‑and‑Go Generator)과는 달리, 스텝 크기가 고정되지 않고 현재 상태에 따라 변하는 ‘가변 스텝’ 메커니즘을 제공한다는 점에서 새롭다.
키와 IV 초기화 과정은 복잡한 비선형 변환을 포함한다. 먼저 비밀키 K를 8바이트 블록으로 나누어 두 개의 선형 변환 A, B와 XOR 연산을 통해 키‑정의 S‑box Sₓ를 생성한다. 이후 ‘L’ 변환을 적용해 4개의 32‑비트 워드에 비선형 매핑을 수행한다. IV는 32바이트 길이로 제공되며, 일정한 상수 c와 자연 로그 기반의 연산을 통해 네 개의 초기 상태(α, β, ω, τ)와 두 개의 메모리 버퍼(u, v)를 설정한다. 초기화 단계에서 다이스 값이 0이 되면 ω, τ를 다시 초기화하는 특수 규칙이 존재한다.
키스트림 생성은 ‘업데이트 단계’와 ‘조합 단계’로 나뉜다. 업데이트 단계에서는 (2.2)~(2.4)식에 따라 네 개의 프로젝터 상태와 두 개의 다이스를 동시에 갱신한다. 조합 단계에서는 u와 v 버퍼를 각각 16바이트씩 XOR하고, 이를 다이스 값과 결합해 최종 출력 zₜ를 만든다. 출력은 128비트 블록 단위로 제공되며, 매 사이클마다 1바이트당 10 사이클(또는 160 사이클/블록)의 처리 속도를 주장한다.
보안 분석에서는 주기 길이와 기존 공격에 대한 저항성을 논한다. 프로젝터의 원시 다항식으로부터 얻어지는 순환 길이는 각각 2¹²⁶−1, 2¹²⁷−1, 2¹²⁸−1이며, 이를 조합해 전체 키스트림 주기는 약 2³⁸⁰ 정도가 된다고 주장한다(식 3.1~3.6). 또한, 다이스가 제어하는 비선형 업데이트와 키‑정의 S‑box 때문에 상관 공격, 대수 공격, 구별 공격 등에 필요한 상관식이 알려지지 않았다고 설명한다. 메모리·시간 트레이드오프 공격, 선택 IV 공격, 충돌·역전 공격 등에 대해서도 ‘보호된다’는 결론을 내린다. 그러나 이러한 주장들은 실증적 증명이나 복잡도 분석이 부족하며, 특히 대수적 복잡도(예: Gröbner basis 기반 공격)와 차분 공격에 대한 정량적 평가가 결여돼 있다.
구현 측면에서는 32‑bit Windows 환경, AMD Athlon 64×2 3600+ CPU, Borland C++ 5.0을 사용해 키 설정 5200 사이클, IV 설정 2280 사이클, 키스트림 생성 10 사이클/바이트를 기록했다. 그러나 실험 환경이 구식이며, 현대 CPU(예: ARM, AVX‑512 지원 x86)에서의 성능은 제시되지 않았다. 또한, 사이드채널(시간, 전력) 저항성에 대한 구체적인 설계가 없으며, 코드 수준에서의 상수 시간 구현 여부도 확인되지 않는다.
종합적으로 DICING은 ‘프로젝터’와 ‘다이스’라는 새로운 메커니즘을 도입했지만, 설계가 복잡하고 수학적 근거가 불충분하다. 특히, 키와 IV 초기화 과정에서 다수의 비선형 연산과 상수 매핑이 포함되어 있어 구현 오류가 발생하기 쉬우며, 보안 증명도 형식화된 모델(예: PRF, IND‑CPA)에서 검증되지 않았다. 따라서 실제 표준 채택이나 상용 적용을 위해서는 보다 엄밀한 암호학적 분석과 현대적인 구현 최적화가 필요하다.
댓글 및 학술 토론
Loading comments...
의견 남기기