Sharmir Secret Sharing 는 비밀 데이타를 분할 공유 하기 위한 알고리즘 이다.
즉 비밀값을 분할에서 비밀 값을 배포하기 위한 비밀 공유 알고리즘이다.
비밀값은 충분한 수의 결합된 경우에만 값을 얻을 수 있게 된다.
공격자가 일부 를 공유된 값을 훔치더라도 필요한 값만큼 얻지 못하면 비밀값을 재구성 하지 못한다.
이 정보는 아래 사이트에서 내용을 참고 하였다.
참고로 SSS는 수학적 이론을 바탕으로 만들었다.
사실 개인적으로 수학적 지식이 부족해서 아래 참고 소스를 이용해 BerEditor 에 SSS 기능을 구현 하였다.
기술 정보 위키피디아
참고 소스를 구한 곳 http://point-at-infinity.org/ssss/index.html
Sharmir's Secret Sharing Scheme는 Sharmir's Threshold Scheme 라고도 함
기본 개념
- 비밀 정보 S를 N개의 조각으로 나누어서 K개 조각으로 S를 복원 하기 ( K 는 N보다 같거나 작음 )
- S를 복원 하기 위해 K (Threshold) 개의 공유 키가 필요한 기술이다.
사용 방법
- 개인키의 안전한 분할 저장 ( 일부 분실 해도 복구 가능함 )
- 몇명이상의 동의를 통한 키 값 얻기 위한 기능( 다중 사용자의 동의 인증 )
SSS 키 분할 하기
BerEditor 에서 암호->SSS 메뉴 N을 5이구 K를 3인 값 만들기
입력 S 값은 8바이트 이상이어야 한다.
소스데이타 : 비밀 값인 S 값
공유(N) : 전체 분할 개수
분계점(K) : 복구 시 필요한 분할 된 키 개수
여기서는 소스 데이타를 공유 5 그리고 분계점 3으로 설정 하였다.
즉 5개의 값으로 분할 하고 3개의 값으로 원래의 키 값을 복원 하는 예제이다.
SSS 키 복원 하기
이번에는 분할 된 키 값을 3개를 넣어서 비밀 값 S를 구해 보자
3개의 예제 값
7241489DBB89B5F614AF38681BD23011F9
C49127D0802B606A16973493D9AC956319
D4437CE1C8428BC8AC1D9AE29623C573B2
앞의 예제에서 결과 값 중에 3개의 값을 공유 데이타로 추가 하였구
합치기 버튼을 눌렀을 때 결합 데이타로 소스데이타를 복원한 결과를 볼 수 있다.
마무리
BerEditor 에서 사용한 SSS 기능은 http://point-at-infinity.org/ssss/index.html
에서 소스를 이용해서 만들었다.
해당 사이트에서 예제 값의 첫번째 값은 순서 인덱스를 사용하였는데 BerEditor 에서 첫바이트는 랜덤 값 처리를 하였다.
BerEditorV121 에서는 분할 시 아주 가끔 같은 값이 중복 되는 버그가 있어요 ㅜ.ㅜ
버전을 업그레이드 하거나 다시 실행해서 중복 없는 값을 사용하면 됩니다.
'Manual > BerEditor' 카테고리의 다른 글
[BerEditor] OTP ( One Time Password ) 기능에 관해 (0) | 2023.05.31 |
---|---|
[BerEditor] DH (Diffie-Hellman ) Key Agreement 기능 (1) | 2023.05.30 |
[BerEditor] KeyWrap 기능 사용법 (0) | 2023.05.22 |
[BerEditor] PBKDF (Password-Based Key Derivation Function) 사용법 (0) | 2023.05.08 |
[BerEditor] 객체 식별자 OID (Object Identifier) 검색 (0) | 2023.04.18 |