비밀 나누기 (샤미르 비밀 분할)
조각은 서로 다른 사람·장소에 따로 보관하세요. 한곳에 모아 두면 나눈 의미가 없어요.
비밀을 여러 사람에게 나눠 맡기는 방법
중요한 비밀번호, 암호화폐 지갑 복구 문구, 금고 번호를 한 사람이나 한곳에만 두면 잃어버리거나 도난당할 위험이 있어요. 그렇다고 여러 사람에게 그대로 알려 주면 한 명만 실수해도 새어 나가요. 샤미르 비밀 분할은 1979년 암호학자 아디 샤미르가 발표한 방법으로, 비밀을 n개 조각으로 나눈 뒤 그중 정해 둔 k개만 모으면 원래 비밀이 나오고, k개보다 적으면 비밀에 대해 아무것도 알 수 없게 만들어요. 예를 들어 5조각 중 3조각으로 정하면 두 조각을 잃어버려도 복원할 수 있고, 두 사람이 몰래 짜도 비밀은 알 수 없어요.
원리
점 2개가 있으면 직선 하나가, 점 3개가 있으면 2차 곡선 하나가 정해지는 원리를 써요. 비밀 값을 곡선의 y절편(x = 0일 때 값)으로 두고 나머지 계수를 무작위로 정한 k−1차 다항식을 만든 뒤, x = 1, 2, …, n일 때의 값을 조각으로 나눠 줘요. k개 조각이 모이면 라그랑주 보간으로 곡선을 되살려 x = 0의 값을 구해요. 이 도구는 비밀의 각 바이트마다 이 계산을 하고, 컴퓨터에서 오차 없이 계산하려고 256개 원소의 유한체 GF(2⁸)(AES와 같은 다항식)를 써요. 무작위 계수는 브라우저의 안전한 난수 생성기로 만들어요.
조각 형식과 검사
조각은 HLS1-필요개수-번호-16진수 모양의 한 줄 글자예요. 복원에 필요한 개수와 조각 번호가 들어 있어서 순서 없이 붙여 넣어도 돼요. 나누기 전에 비밀의 SHA-256 값 앞 4바이트를 함께 넣어 두기 때문에, 복원할 때 잘못 옮겨 적었거나 다른 비밀의 조각이 섞이면 ‘검사값이 맞지 않아요’라고 알려 줘요. 조각의 길이는 비밀 길이 + 4바이트예요. 이 형식은 이 사이트 전용이라 다른 샤미르 도구(ssss, secrets.js 등)의 조각과는 서로 바꿔 쓸 수 없어요.
보관 요령
조각마다 TXT 파일로 저장하거나 인쇄해서 서로 다른 사람·장소(가족, 변호사, 은행 대여금고 등)에 맡기세요. 누가 어느 조각을 가졌는지, 몇 개가 필요한지는 따로 적어 두면 좋아요. 조각을 만든 화면과 원래 비밀은 다 쓴 뒤 지우고, 이 페이지는 비밀이나 조각을 저장하거나 서버로 보내지 않아요.
참고한 자료
자주 묻는 질문
조각 하나만 있으면 비밀의 일부라도 알 수 있나요?
아니요. 필요한 개수보다 적은 조각으로는 어떤 비밀이든 똑같이 가능해서 정보가 전혀 없어요. 다만 비밀의 길이(바이트 수)는 조각 길이로 알 수 있어요.
같은 비밀을 다시 나누면 조각이 달라져요.
매번 새 무작위 계수를 쓰기 때문이에요. 서로 다른 때에 만든 조각끼리는 섞어 쓸 수 없어요.
사진이나 파일도 나눌 수 있나요?
이 도구는 글자 비밀만 나눠요. 파일은 암호화한 뒤 그 비밀번호를 이 도구로 나누는 방법을 권해요.
함께 쓰면 좋은 도구
- 비밀번호 생성기 (안전한 랜덤 비밀번호)길이·영문 대소문자·숫자·특수문자를 골라 안전한 무작위 비밀번호, 헷갈리는 글자 빼기·강도 표시
- OTP 코드 생성기 (TOTP·HOTP, 2단계 인증 비밀 키·QR 만들기)2단계 인증 비밀 키(Base32)나 otpauth:// 주소로 6자리 OTP 코드를 기기 안에서 계산하고, 서비스 개발용 비밀 키·otpauth QR 코드 만들기. TOTP·HOTP, SHA-1·256·512
- 해시 계산·파일 체크섬 확인 (MD5·SHA-256·SHA-512·CRC32)글자나 파일의 MD5·SHA-1·SHA-256·SHA-512·SHA3·CRC32 값을 한 번에 계산하고, 받은 체크섬과 같은지 비교
- XOR 암호화·해독 (키 모를 때 키 추정)글자·16진수·Base64·파일을 XOR 키로 바꾸고, 키를 모르면 1바이트 키 256가지나 반복 키 길이를 추정해 원래 글을 찾기
- JSON 정리 (보기 좋게 들여쓰기·검증·압축)JSON을 보기 좋게 들여쓰기, 오류 위치 표시, 한 줄 압축, 키 정렬, 문자열 이스케이프
- 정규식 테스트 (정규표현식 매칭 확인)패턴과 플래그로 일치하는 부분을 강조 표시, 그룹 값 표, 바꾸기 미리보기, 자주 쓰는 패턴