희소 다항식 곱셈의 비트 복잡도 연구

희소 다항식 곱셈의 비트 복잡도 연구

초록

본 논문은 다변수 희소 다항식의 곱셈을 위한 새로운 알고리즘을 제시하고, 정수·유리수·유한체 계수를 대상으로 비트 복잡도를 정밀히 분석한다. 크로네커 치환, 평가‑보간, 모듈러 변환 등을 조합한 기법으로 기존 방법보다 이론적·실험적 효율성을 동시에 확보한다. 구현은 Mathemagix에 포함되어 실제 성능이 이론과 일치함을 보인다.

상세 분석

논문은 먼저 희소 다항식의 표현 방식을 명확히 정의한다. 각 항은 변수 지수 벡터와 계수 쌍으로 저장되며, 전체 항의 수를 (N)이라 두면 입력 크기는 (O(N\log D)) (여기서 (D)는 최대 차수) 로 측정한다. 기존의 전통적 방법은 전체 차수 공간을 전부 탐색하는 전통적 곱셈(밀집 변환)이나, 차수 차원에 대한 FFT 기반 방법을 차용하지만, 희소성에 비례하지 않는 비용이 발생한다.

저자들은 이러한 비효율성을 극복하기 위해 세 가지 핵심 아이디어를 결합한다. 첫째, 크로네커 치환(Kronecker substitution) 을 이용해 다변수 다항식을 1차원 정수 다항식으로 압축한다. 이때 차수 상한을 충분히 크게 잡아 충돌을 방지하면서도, 압축 후의 차수는 원래 항 수와 최대 차수의 곱에 비례한다. 둘째, 평가‑보간(evaluation‑interpolation) 전략을 적용한다. 선택된 평가점 집합(보통 소수 혹은 원시 원소)에서 다항식을 평가하고, 점별 곱셈을 수행한 뒤 보간을 통해 결과를 복원한다. 이 과정에서 각 평가점마다 독립적인 정수 곱셈이 발생하므로, 고속 정수 곱셈 알고리즘(예: Fürer, Harvey‑van der Hoeven)과 결합하면 전체 비트 복잡도가 (\tilde{O}(N\log C)) (여기서 (C)는 계수 크기) 로 감소한다. 셋째, 모듈러 변환(modular reduction) 을 활용해 유리수·유한체 계수에 대한 연산을 정수 연산으로 환원한다. 유리수 계수는 공통 분모를 찾아 전체 식을 정수화하고, 유한체 계수는 적절한 소수 체를 선택해 CRT(중국 나머지 정리) 기반 재구성을 수행한다.

이 세 가지 기법을 조합한 알고리즘은 계수 종류에 따라 다음과 같은 복잡도 경계를 얻는다.

  • 정수 계수: 비트 복잡도 (\tilde{O}(N\log M)) (M은 최대 계수 절대값).
  • 유리수 계수: 분모와 분자를 각각 정수화한 뒤, (\tilde{O}(N(\log M + \log D))) 로 제한한다.
  • 유한체 계수: 체 크기 (p)에 대해 (\tilde{O}(N\log p)) 를 달성한다.

특히 다변수 멱급수(다변수 파워 시리즈) 곱셈에 대해서는 차수 제한을 동적으로 조정함으로써, 차수 증가에 따른 복잡도 폭발을 억제한다. 이때 사용되는 “다중 스케일 평가” 기법은 차수 벡터를 사전 정렬하고, 동일 차수 구간을 하나의 평가점 집합에 매핑함으로써 평가 횟수를 최소화한다.

실험 결과는 Mathemagix 구현을 통해 검증된다. 다양한 차원(25차원)과 항 수(10³10⁶)에 대해 기존의 밀집 FFT 기반 구현과 비교했을 때, 평균 3~10배의 속도 향상을 보이며, 메모리 사용량 역시 항 수에 선형적으로 증가하는 특성을 유지한다. 특히 계수가 큰 정수(수백 비트)인 경우, 고속 정수 곱셈 알고리즘과의 결합이 복잡도 이점을 크게 확대한다.

결론적으로, 논문은 희소 다항식 곱셈에 대한 이론적 비트 복잡도 한계를 새롭게 정의하고, 실제 구현을 통해 그 한계가 실현 가능함을 입증한다. 제시된 방법은 컴퓨터 대수 시스템, 암호학(다변수 다항식 기반 암호), 그리고 과학·공학 분야의 대규모 시뮬레이션 등에 광범위하게 적용될 수 있다.