---
title: "샤미르 비밀 공유, “둘이면 열리고 하나로는 절대 안 열리는” 복구 방식"
published: 2026-05-25T22:37:24.000Z
canonical: https://jeff.news/article/3271
---
# 샤미르 비밀 공유, “둘이면 열리고 하나로는 절대 안 열리는” 복구 방식

샤미르 비밀 공유는 중요한 비밀을 여러 조각으로 나누되, 정해진 개수 이상이 모여야만 원래 값을 복구할 수 있게 만드는 암호학 기법이다. 핵심은 ‘풀기 어렵다’가 아니라, 임계값보다 적은 조각으로는 비밀에 대한 정보가 아예 없다는 점이다.

- 어떤 비밀은 한 사람에게 맡기기엔 너무 위험하고, 그렇다고 그 사람이 사라졌을 때 같이 날아가도 곤란함
  - 회사 마스터 키는 임원 3명이 모여야 열리게 하고 싶을 수 있음
  - 가족 계정 복구도 봉투 하나만 있으면 끝나는 구조보단, 여러 사람이 함께 확인해야 더 안전함
  - 팀 백업 키도 누군가 퇴사하거나 연락이 끊겨도 복구는 돼야 하지만, 한 명이 전체를 들고 있으면 그건 또 사고임

- 아디 샤미르가 1979년에 낸 아이디어는 이 문제를 꽤 우아하게 푼다
  - 샤미르는 RSA의 S에 해당하는 그 사람임
  - 비밀을 여러 조각으로 나누고, 그중 정해진 개수 이상이 모이면 복구 가능하게 만듦
  - 중요한 건 “뚫기 어렵다”가 아니라 “정해진 개수보다 적으면 아무 정보도 안 나온다”는 점임

> [!IMPORTANT]
> 샤미르 비밀 공유의 핵심은 난이도가 아니라 정보량임. 조각이 부족하면 가능한 비밀 후보가 전부 열려 있어서, 원래 비밀에 대해 얻는 정보가 0에 가깝다.

- 2개 조각으로 복구하는 방식은 직선 하나로 이해하면 됨
  - 직선은 서로 다른 점 2개가 있으면 딱 하나로 결정됨
  - 점 1개만 있으면 그 점을 지나는 직선은 무한히 많고, 각 직선은 y축과 다른 위치에서 만남
  - 비밀을 y축과 만나는 값에 숨겨두면, 점 1개를 가진 사람은 어떤 비밀이 맞는지 전혀 좁힐 수 없음

- 예를 들어 비밀이 숫자 7이면, y축의 7 지점을 지나는 랜덤한 직선을 하나 고름
  - 기울기는 비밀이 아니라 랜덤성 역할을 함
  - 각 사람에게는 이 직선 위의 점 하나만 나눠줌
  - 한 사람의 점 하나로는 수많은 직선이 가능하니, 비밀이 7인지 100인지 999인지 알 방법이 없음
  - 두 사람이 점을 합치면 직선이 확정되고, 그때 y축과 만나는 값을 읽어서 비밀을 복구함

- 임계값을 더 올리고 싶으면 직선 대신 더 휘어진 곡선을 쓰면 됨
  - 2개 조각이 필요하면 직선
  - 3개 조각이 필요하면 포물선
  - 4개 조각이 필요하면 3차 곡선
  - 일반적으로 k개 조각이 필요하면 차수가 k - 1인 다항식을 사용함

- 실제 구현은 그래프를 그리는 게 아니라 유한체 연산으로 처리함
  - 비밀은 다항식의 0 지점 값임
  - 랜덤 계수들이 비밀을 숨기는 역할을 함
  - 각 공유 조각은 다항식 위의 한 점임
  - 임계값보다 적은 조각으로는 가능한 비밀이 여전히 전부 가능하다는 게 보안의 핵심임

- 엔트는 이 아이디어를 레거시 키트에 한 계층으로 넣었다고 설명함
  - 문제는 단순히 “비밀을 어떻게 나누나”가 아니었음
  - 복구가 가능해야 하지만, 나눠준 조각이 영구 복구 키처럼 남아 있으면 위험함
  - 그래서 카드가 복구 키 자체를 들고 있는 구조가 아니라, 로컬에서 별도 비밀을 재구성하고 서버가 개입하는 복구 흐름에 참여하는 방식임
  - 덕분에 발급된 카드를 폐기할 수 있고, 잃어버린 카드 하나가 영구적인 사고 지점이 되지 않음

---

## 기술 맥락

- 샤미르 비밀 공유가 흥미로운 이유는 백업을 “복사”하지 않고 “조건부 복구”로 바꿔주기 때문이에요. 보통 복구 키를 여러 곳에 복사하면 보관 지점이 늘어날수록 공격 표면도 같이 커지거든요.

- 여기서는 비밀을 다항식의 0 지점 값으로 두고, 나머지 계수는 랜덤하게 채워요. 각 사용자에게는 다항식 위의 점 하나만 주기 때문에, 필요한 점 개수에 못 미치면 원래 비밀을 좁힐 단서가 생기지 않아요.

- 엔트가 신경 쓴 부분은 “조각을 모으면 복구된다”에서 끝나지 않아요. 카드 자체가 영구 복구 키가 되면 분실이나 회수 불능이 바로 리스크가 되니까, 로컬 재구성과 서버 중재를 섞어서 폐기 가능한 복구 흐름을 만든 거예요.

- 개발자 입장에선 이 패턴이 계정 복구, 조직 키 관리, 상속형 접근 권한 설계에 꽤 직접적으로 연결돼요. 단순히 키를 안전한 곳에 두는 문제가 아니라, 누가 몇 명 모였을 때 어떤 권한이 열릴지 정책으로 설계하는 문제에 가깝거든요.

## 핵심 포인트

- 샤미르 비밀 공유는 1979년 아디 샤미르가 제안한 임계값 기반 비밀 분할 방식이다.
- 2개 조각이면 직선, 3개 조각이면 포물선처럼 다항식 차수를 올려 필요한 조각 수를 조절한다.
- 실제 구현은 그래프 종이가 아니라 유한체 연산을 쓰며, 비밀은 다항식의 0 지점 값으로 숨긴다.
- 엔트는 이 방식을 레거시 키트 복구 흐름의 한 계층으로 사용하되, 카드 자체가 영구 복구 키가 되지 않게 설계했다.

## 인사이트

이 글의 포인트는 ‘백업 키를 쪼갠다’가 아니라, 적은 조각으로는 정보가 0이라는 보안 성질에 있음. 계정 복구, 조직 키 관리, 상속형 복구 UX를 설계할 때 꽤 현실적인 힌트를 준다.
