고정 가중치 부분합 문제를 위한 분할 알고리즘

고정 가중치 부분합 문제를 위한 분할 알고리즘

초록

고정 가중치 부분합 문제는 정해진 개수의 원소만을 사용해 목표값을 만드는 조합 탐색이다. 본 논문은 격자 기반 기법이 실패할 경우를 대비해, Stinson의 분할 시스템 개념을 일반화한 새로운 지수 시간 알고리즘을 제시한다. k‑set birthday 기법을 적용해 시간·공간 복합도 (T\cdot S^{\log k}=O!\left(\binom{n}{\ell}\right)) 를 달성하며, 높은 병렬성을 갖는다.

상세 분석

고정 가중치 부분합(Fixed‑Weight Subset Sum, FWSS) 문제는 입력으로 양의 정수 집합 ({a_1,\dots ,a_n}), 목표값 (t)와 선택해야 할 원소 개수 (\ell)가 주어질 때, 정확히 (\ell)개의 원소 합이 (t)가 되도록 하는 부분집합을 찾는 결정적·최적화 문제이다. 이 문제는 전통적인 난이도 기반 암호인 ‘knapsack cryptosystem’의 보안 근간을 이루며, 성공적인 해법은 직접적인 메시지 복호화 공격으로 이어진다. 기존 연구에서는 주로 격자 기반 기법, 특히 LLL·BKZ 같은 베이스 축소 알고리즘을 활용해 근사해를 구하거나, 특정 구조(예: 슈퍼인크리멘털)에서 정확해를 찾는 방법이 제안되었다. 그러나 격자 차원(=문제 크기)이 커질수록 축소 효율이 급격히 저하되고, 복잡도 상한이 실용적인 수준에 도달하지 못한다는 한계가 있다.

본 논문은 이러한 격자 의존성을 완전히 배제하고, 전통적인 ‘분할 시스템(splitting system)’ 개념을 확장한다. Stinson이 제시한 2‑분할 시스템은 원소들을 두 그룹으로 나누어 각각의 부분합을 미리 계산하고, 교차 검증을 통해 전체 합을 구성한다. 저자들은 이를 (k)개의 파티션으로 일반화하여, (k)가 2의 거듭 제곱이며 (k\ll n)인 경우에 적용한다. 핵심 아이디어는 ‘(k)-set birthday’ 알고리즘을 이용해 각 파티션에서 (\ell/k)개의 원소를 선택한 부분합 리스트를 생성하고, 이 리스트들을 다중 교차 매칭하여 목표합을 완성하는 것이다.

시간 복잡도는 각 파티션에서 (\binom{n/k}{\ell/k})개의 조합을 탐색하므로 전체 조합 수 (\binom{n}{\ell})에 비례한다. 공간 복잡도는 리스트 저장에 필요한 메모리 (S)와 연관되며, 저자는 (T\cdot S^{\log k}=O!\left(\binom{n}{\ell}\right)) 라는 관계를 증명한다. 여기서 상수는 (k)에만 의존하고, (k)가 고정이면 거의 최적에 가까운 트레이드오프를 제공한다. 특히 (k)를 크게 잡을수록 메모리 요구량이 급격히 감소하지만, 로그‑(k) 만큼의 추가 연산이 필요해 전체 실행 시간은 약간 늘어난다.

알고리즘은 본질적으로 ‘해시‑기반 매칭’과 ‘다중 리스트 병합’ 단계로 구성되며, 각 단계가 독립적인 작업으로 분리될 수 있다. 따라서 다중 코어·다중 노드 환경에서 거의 선형적인 스케일링이 가능하고, GPU와 같은 SIMD 아키텍처에도 적합하다. 무작위화는 리스트 생성 시 무작위 샘플링을 통해 이루어지며, 실패 확률은 (\exp(-\Omega(k))) 수준으로, 실용적인 파라미터 선택 시 무시할 수 있다.

이 접근법은 특히 격자 기반 공격이 비효율적인 ‘고밀도’ 혹은 ‘불균형 가중치’ 인스턴스에 강점을 보인다. 또한, 알고리즘이 정확해를 보장하므로 근사해가 아닌 완전한 복호화가 요구되는 상황에서도 적용 가능하다. 다만, 메모리 요구량이 여전히 (\Theta!\left(\binom{n/k}{\ell/k}\right)) 수준이므로, (\ell)이 (n)에 비해 절반에 가깝게 클 경우 실용적인 한계가 존재한다. 향후 연구에서는 메모리 효율을 더욱 개선하기 위한 압축 해시 구조나, 동적 파티션 선택 전략을 탐구할 여지가 있다.