공간 효율적인 비밀 공유
초록
이 논문은 k개의 비밀을 하나의 다항식에 매핑한 뒤, n개의 공유( n ≥ k )를 생성함으로써 기존 비밀 공유 방식보다 저장 공간을 크게 절감하는 방법을 제안한다. 비밀 복구는 任意의 k개의 공유만으로 가능하며, k‑1개 이하의 공유만으로는 비밀을 추정할 확률이 소수(prime) 크기만큼 매우 낮다.
상세 분석
본 논문은 전통적인 Shamir 비밀 공유가 한 개의 비밀을 n개의 조각으로 나누어 저장량이 n배가 되는 비효율성을 지적하고, 이를 개선하기 위해 “k‑out‑of‑n” 형태의 다중 비밀 공유 방식을 제안한다. 핵심 아이디어는 k개의 서로 다른 비밀 s₀,…,s_{k‑1}을 좌표 (i, s_i) 로서 유한체 ℤ_p 위에 배치하고, 라그랑주 보간법을 이용해 차수가 k‑1인 다항식 f(x)를 구성하는 것이다. 이후 f(x)를 n개의 새로운 x값 (k, k+1, …, k+n‑1) 에서 평가하여 (x, f(x)) 형태의 공유 D₁,…,D_n을 만든다.
복구 과정은 任意의 k개의 공유를 선택해 해당 x값들로부터 다시 라그랑주 보간을 수행해 f(x)를 복원하고, x=0,…,k‑1 에서 값을 읽어 원래 비밀들을 얻는다. 여기서 중요한 점은 다항식의 계수 a₀,…,a_{k‑1} 자체가 비밀들의 조합이라는 점이다. 따라서 k개의 공유가 없으면 계수를 결정할 수 없으며, 이는 곧 비밀을 완전히 복원할 수 없음을 의미한다.
보안 분석에서는 k‑1개의 공유만으로는 마지막 공유값을 p가지 중 하나로 추정해야 하므로, 비밀을 맞출 확률은 1/p이다. 실제 구현에서는 2¹⁰²⁴ 정도의 큰 소수를 사용하므로, 공격자가 성공할 확률은 실질적으로 무시할 수준이다. 또한 k‑t개의 공유가 알려질 경우 성공 확률은 (1/p)^{k‑t} 로 급격히 감소한다.
공간 효율성 측면에서는 각 공유가 원래 비밀 하나당 (n/k)·b 비트( b는 비밀 길이)만 차지한다. n을 k와 동일하게 설정하면 공유당 크기가 비밀 하나와 동일해 저장 오버헤드가 거의 없으며, 기존 Shamir 방식이 n배의 저장을 요구하는 것과 대조된다.
알고리즘 구현은 전형적인 유한체 연산과 라그랑주 보간, 혹은 Vandermonde 행렬의 역행렬 계산에 의존한다. 논문은 Vandermonde 행렬을 이용한 선형 방정식 풀이 과정을 제시하고, 행렬이 가역적임을 보장하기 위해 서로 다른 x값을 선택한다는 점을 강조한다. 또한, 공유 좌표와 보간 좌표가 겹치지 않도록 하는 변형도 제시되어, 실제 시스템 설계 시 충돌을 방지할 수 있다.
제안된 방법은 센서 네트워크와 같이 일부 노드만이 일시적으로 탈취될 위험이 있는 환경에 적합하다. 비밀 자체를 여러 조각으로 나누어 전송하거나, 대용량 데이터를 여러 채널에 병렬로 분산 저장하는 용도로도 활용 가능하다. 기존의 Garay 등(1997) 방식보다 저장·전송 효율이 높으며, 계산 복잡도 역시 라그랑주 보간과 행렬 연산 수준에 머물러 실용적이다.
요약하면, 이 스킴은 (1) 다중 비밀을 하나의 다항식에 압축, (2) 공유당 크기를 비밀 하나와 동일하게 맞춤, (3) k‑1 이하의 공유만으로는 비밀을 추정할 확률이 소수 크기만큼 극히 낮음, (4) 구현이 비교적 간단하고 기존 비밀 공유와 동일한 “k‑out‑of‑n” 복구 보장을 제공한다는 장점을 가진다.
댓글 및 학술 토론
Loading comments...
의견 남기기