Shamir 비밀 공유 (SSS)
1979년 Adi Shamir의 비밀 공유 방식의 브라우저 전용 구현.
사용 방법
1
N과 K 선택
개인용 2-of-3, 팀용 3-of-5.
2
비밀 입력
마스터 비밀번호, 시드 등.
3
조각 배포
다른 사람, 위치, 기기에.
4
필요 시 복구
K개 조각 수집하여 결합.
마스터 비밀번호나 시드 문구를 N개 조각으로 분할 — 그 중 K개로 복구
N개의 조각을 받습니다. 그 중 K개가 비밀을 재구성. K개 미만은 아무것도 드러내지 않음.
Shamir 비밀 공유가 하는 일
- 정보 이론적 보안: K개 미만의 조각으로 공격자는 비밀에 대해 아무것도 학습하지 못함.
- 각 조각에는 작은 헤더(버전, 임계값, 세트 ID)와 4바이트 무결성 태그가 포함되어 있어, 결합 시 올바른 복구를 검증하고 일치하지 않거나 부족한 조각을 명확히 표시할 수 있습니다.
- GF(2⁸)에 대한 표준 바이트별 방식 사용 — AES와 동일한 대수, 수십 년 검증.
- 사람, 기기, 지리적 위치에 조각 배포. 복구는 K개만 필요.
- 이 구현은 비밀번호 계층을 추가하지 않음 — 조각 자체가 보호.
복사됨
기능
정보 이론적 보안
K−1 조각은 비밀에 대해 정보 없음.
GF(2⁸) 바이트별
각 바이트는 AES에서 사용하는 것과 동일한 유한체 대수로 독립적으로 분할됩니다 — 검증되고 빠르며 표준적입니다.
최대 255 조각
임의 (K, N).
검증된 복구
내장된 무결성 태그 덕분에 결합 시 비밀이 정확히 재구성되었음을 확인합니다 — 그리고 일치하지 않거나 부족하거나 다른 세트의 조각에 대해서는 조용히 잘못된 결과를 반환하는 대신 명확한 오류를 제공합니다.
암호학적 안전 난수
브라우저의 암호학적으로 안전한 난수 생성기를 사용합니다.
브라우저에서 실행
분할과 결합은 Web Crypto API를 통해 브라우저 탭에서 수행됩니다. GF(2⁸) 위의 다항식 보간은 JavaScript로 클라이언트 측에서 계산됩니다 — 이 도구에는 /split 또는 /combine 엔드포인트가 존재하지 않으며, 알고리즘은 페이지 자산에 포함되어 제공됩니다.
FAQ
암호화 후 비밀번호 배포와 어떻게 다른가요?
Shamir는 비밀을 직접 N개로 분할; K−1은 수학적으로 정보 없음.
좋은 (K, N)?
2-of-3 개인용, 3-of-5 소규모 팀.
구현을 신뢰할 수 있나요?
GF(2⁸) 위의 표준 바이트별 Shamir 방식을 사용합니다 — Hashicorp Vault, Trezor SLIP-0039(BIP-39 분할 백업) 및 대부분의 다른 프로덕션 SSS 구현에서 사용하는 것과 동일한 구성입니다. 분할과 결합은 Web Crypto API를 통해 브라우저에서 실행됩니다.
조각이 분실되면?
최소 K개 남으면 복구 가능.
조각이 공격자에게 유출되면?
K개 미만 유출이면 비밀은 안전.
어떤 조각 형식을 사용하나요?
기반이 되는 수학은 표준 0x11b 축소 다항식을 사용하는 GF(2⁸) 위의 정규 바이트별 방식입니다. 각 조각은 작은 자기 기술(self-describing) 컨테이너(버전, 임계값, 세트 ID, 무결성 태그)로 감싸여 있어 도구가 복구를 검증하고 일치하지 않는 조각을 감지할 수 있습니다 — 원시 GF(256) 라이브러리가 아니라 이 도구로 조각을 복구하세요.
이 도구를 어떻게 평가하시겠습니까?
평가해 주셔서 감사합니다!
더 공유하고 싶으신가요? 댓글을 남겨주세요!
감사합니다! 검토 후 댓글이 표시됩니다.
댓글
누구를 위한 도구인가요?
게시일