본문으로 건너뛰기
피드

샤미르 비밀 공유, “둘이면 열리고 하나로는 절대 안 열리는” 복구 방식

security 약 5분
vote
0
댓글
북마크

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

  • 1

    샤미르 비밀 공유는 1979년 아디 샤미르가 제안한 임계값 기반 비밀 분할 방식이다.

  • 2

    2개 조각이면 직선, 3개 조각이면 포물선처럼 다항식 차수를 올려 필요한 조각 수를 조절한다.

  • 3

    실제 구현은 그래프 종이가 아니라 유한체 연산을 쓰며, 비밀은 다항식의 0 지점 값으로 숨긴다.

  • 4

    엔트는 이 방식을 레거시 키트 복구 흐름의 한 계층으로 사용하되, 카드 자체가 영구 복구 키가 되지 않게 설계했다.

  • 어떤 비밀은 한 사람에게 맡기기엔 너무 위험하고, 그렇다고 그 사람이 사라졌을 때 같이 날아가도 곤란함

    • 회사 마스터 키는 임원 3명이 모여야 열리게 하고 싶을 수 있음
    • 가족 계정 복구도 봉투 하나만 있으면 끝나는 구조보단, 여러 사람이 함께 확인해야 더 안전함
    • 팀 백업 키도 누군가 퇴사하거나 연락이 끊겨도 복구는 돼야 하지만, 한 명이 전체를 들고 있으면 그건 또 사고임
  • 아디 샤미르가 1979년에 낸 아이디어는 이 문제를 꽤 우아하게 푼다

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

중요

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

  • 2개 조각으로 복구하는 방식은 직선 하나로 이해하면 됨

    • 직선은 서로 다른 점 2개가 있으면 딱 하나로 결정됨
    • 점 1개만 있으면 그 점을 지나는 직선은 무한히 많고, 각 직선은 y축과 다른 위치에서 만남
    • 비밀을 y축과 만나는 값에 숨겨두면, 점 1개를 가진 사람은 어떤 비밀이 맞는지 전혀 좁힐 수 없음
  • 예를 들어 비밀이 숫자 7이면, y축의 7 지점을 지나는 랜덤한 직선을 하나 고름

    • 기울기는 비밀이 아니라 랜덤성 역할을 함
    • 각 사람에게는 이 직선 위의 점 하나만 나눠줌
    • 한 사람의 점 하나로는 수많은 직선이 가능하니, 비밀이 7인지 100인지 999인지 알 방법이 없음
    • 두 사람이 점을 합치면 직선이 확정되고, 그때 y축과 만나는 값을 읽어서 비밀을 복구함
  • 임계값을 더 올리고 싶으면 직선 대신 더 휘어진 곡선을 쓰면 됨

    • 2개 조각이 필요하면 직선
    • 3개 조각이 필요하면 포물선
    • 4개 조각이 필요하면 3차 곡선
    • 일반적으로 k개 조각이 필요하면 차수가 k - 1인 다항식을 사용함
  • 실제 구현은 그래프를 그리는 게 아니라 유한체 연산으로 처리함

    • 비밀은 다항식의 0 지점 값임
    • 랜덤 계수들이 비밀을 숨기는 역할을 함
    • 각 공유 조각은 다항식 위의 한 점임
    • 임계값보다 적은 조각으로는 가능한 비밀이 여전히 전부 가능하다는 게 보안의 핵심임
  • 엔트는 이 아이디어를 레거시 키트에 한 계층으로 넣었다고 설명함

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

기술 맥락

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

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

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

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

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

댓글

댓글

댓글을 불러오는 중...

security

한양대 에리카와 네이버클라우드, 클라우드·보안·AI 인재 키우는 산학협력 체결

한양대 에리카가 네이버클라우드와 첨단 분야 지역인재 양성과 글로벌 산학협력을 위한 업무협약을 맺었다. 협력 범위는 클라우드, 사이버보안, 블록체인, 개인정보보호, 인공지능(AI), 디지털 전환(DX) 교육·연구 기반 구축까지 포함된다.

security

악성 npm 패키지가 AI 개발도구의 지침 파일과 MCP까지 노리기 시작함

이스트시큐리티가 웹과 탈중앙화금융 개발자를 겨냥한 악성 npm 패키지 캠페인을 포착했어. 공격자는 유명 웹3 도구를 사칭하는 데서 그치지 않고, AI 에이전트가 읽는 프로젝트 지침 파일과 MCP 기반 외부 도구 호출까지 공격 경로로 삼으려 했어.

security

금융권, 앤트로픽 미토스가 찾은 오픈소스 취약점에 긴급 점검 들어감

앤트로픽의 AI 모델 클로드 미토스가 1000개 넘는 오픈소스에서 대량의 취약점 후보를 찾아냈고, 그중 일부가 실제 취약점으로 검증돼 공개됐어. 금융당국은 nginx, wolfSSL, FreeRDP, Ghost 같은 널리 쓰이는 구성요소를 중심으로 금융권에 긴급 자산 점검과 패치 적용을 권고했어.

security

애플이 양자 내성 암호화 검증 코드를 공개했다, 핵심은 수학적 증명

애플이 corecrypto 라이브러리의 포스트 양자 암호화 구현과 검증 코드를 GitHub에 공개했다. ML-KEM, ML-DSA 구현과 형식 검증 접근을 공개해 보안 연구자들이 직접 검토할 수 있게 했고, 이 기술은 25억 대 이상 활성 기기에서 쓰이는 암호화 기반과 연결된다.

security

라라벨 번역 패키지 태그가 통째로 바뀌었다, 개발자 비밀값 털리는 공급망 공격

전 세계 라라벨 개발자가 쓰는 Laravel-Lang 패키지가 공격을 받아 Git 태그가 악성 버전을 가리키도록 바뀌었다. 5월 22일 약 90분 동안 4개 저장소의 태그가 교체됐고, 감염된 패키지는 AWS 키, GitHub 토큰, Stripe 시크릿, 암호화폐 지갑 복구 구문, SSH 개인키 등을 노렸다.