소세마눅 고속 소프트웨어 지향 스트림 암호

소세마눅 고속 소프트웨어 지향 스트림 암호
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

소세마눅은 SNOW 2.0의 LFSR 구조와 SERPENT 블록 암호의 변형을 결합한 동기식 스트림 암호이다. 128‑256 비트 가변 키와 128 비트 IV를 사용하며, 모든 키 길이에 대해 128 비트 보안 수준을 목표로 한다. LFSR 길이를 10 워드(320 비트)로 축소하고, FSM에 64 비트 상태를 추가해 효율성을 높였으며, IV 초기화에 경량화된 SERPENT‑24 라운드 변환을 적용한다.

상세 분석

소세마눅은 기존 스트림 암호인 SNOW 2.0의 설계 철학을 계승하면서, 보안성과 구현 효율성을 동시에 개선하려는 시도로 설계되었다. 핵심은 10개의 32‑비트 원소로 구성된 LFSR이며, 피드백 다항식 π(X)=αX¹⁰+α⁻¹X⁷+X+1을 사용해 최대 주기 2³²⁰‑1을 보장한다. LFSR 길이를 16 워드에서 10 워드로 축소함으로써 레지스터 매핑 비용을 크게 낮추었고, 이는 현대 x86‑64와 ARM 64 같은 64‑비트 아키텍처에서 높은 처리량을 가능하게 한다.

FSM은 두 개의 32‑비트 레지스터 R₁, R₂와 32‑비트 중간값 fₜ를 이용해 LFSR 출력과 결합한다. R₁은 이전 R₂와 LSB에 따라 선택적 MUX 연산을 수행하고, R₂는 고정 회전 상수 M=0x54655307을 이용한 선형 변환 Tᵣₐₙₛ를 적용한다. 최종 출력은 4라운드마다 수집된 fₜ 값에 SERPENT‑1 라운드(단일 S‑box S₂ 적용)와 LFSR 상태 sₜ를 XOR한 형태로 생성된다. 이 구조는 비선형성(Serpent‑1)과 선형 피드백(LFSR, FSM) 사이의 복합성을 제공해 차분 및 선형 공격에 대한 저항성을 높인다.

키 스케줄은 SERPENT‑24(24라운드) 변형을 그대로 사용한다. 128‑256 비트 키를 입력받아 25개의 128‑비트 서브키(총 100개의 32‑비트 워드)를 생성하고, IV는 동일한 SERPENT‑24 인스턴스에 입력되어 12·18·24번째 라운드 출력(Y₁₂, Y₁₈, Y₂₄)을 내부 상태와 레지스터에 매핑한다. 이 설계는 IV 설정을 블록 암호 수준의 복잡도로 유지하면서도, 전체 초기화 비용을 크게 감소시킨다.

보안 측면에서 저자들은 LFSR 길이를 256 비트 이상으로 유지해 시간‑메모리‑데이터 트레이드오프 공격을 방지하고, SERPENT‑24의 12라운드 차분·선형 바이어스(2⁻²⁸, 2⁻⁵⁸)를 고려해 24라운드 사용으로 충분한 마진을 확보했다고 주장한다. 또한 FSM과 SERPENT‑1 결합을 통해 비선형성의 확산을 강화해, 알려진 차분·선형 암호분석뿐 아니라 복합적인 연관성 공격에도 견디도록 설계되었다.

성능 평가에서는 x86‑64와 ARM v8 환경에서 4~5 사이클/바이트 수준의 처리량을 기록했으며, 이는 SNOW 2.0 대비 20‑30 % 향상된 수치이다. 정적 테이블을 최소화하고 비트‑슬라이스 연산을 활용함으로써 캐시 압력을 낮추고, 파이프라인 친화적인 구현이 가능해 다양한 소프트웨어 플랫폼에서 높은 효율을 달성한다.


댓글 및 학술 토론

Loading comments...

의견 남기기