1 |
1
사용자 단말에 탑재된 사용자 프로그램에 의해 수행되는 공개 검증 가능한 블록체인 지갑 키 보관 방법으로서,사용자 프로그램에 탑재된 키 분산/복원 실행부에 의해 사용자 암호키를 분할하여 확정 값과 함께 부분 키를 생성하는 단계;상기 부분 키를 상기 확정 값과 함께 분산 키 보관 서버의 공개키로 암호화하는 단계; 및상기 공개키로 암호화된 부분 키를 상기 분산 키 보관 서버로 전달하는 단계;를 포함하는 블록체인 지갑 키 보관 방법
|
2 |
2
청구항 1에 있어서,상기 생성하는 단계는 상기 부분 키의 생성 시 복원 임계값을 t로 하고, 암호키를 K로 대입하여 t-1차 다항식을 구성하고, 상기 t-1차 다항식에 기반하여 추후 검증을 위한 확정 값을 생성하는, 블록체인 지갑 키 보관 방법
|
3 |
3
청구항 2에 있어서,상기 확정 값(C)은 아래의 [수학식 2]로 표현되고,[수학식 2]상기 [수학식 2]에서 상기 P(i)는 t-1차 다항식을, 상기 K는 암호키를, 상기 H는 타원곡선 암호화에서 H를 기준점으로 사용하는 큰 소수(prime number) 또는 타원 곡선(elliptic curve)의 한 점을, HK는 K를 타원곡선 상에서 H 값을 기준으로 곱 연산한 것을 각각 나타내는, 블록체인 지갑 키 보관 방법
|
4 |
4
청구항 2에 있어서,상기 생성하는 단계는, 상기 확정 값을 생성한 후 상기 t-1차 다항식 상에서의 한 점 (i, P(i))으로 i번째 부분 키를 생성하는, 블록체인 지갑 키 보관 방법
|
5 |
5
청구항 1에 있어서,상기 전달하는 단계 후에,상기 분산 키 보관 서버가 유효한 부분 키를 소유하고 있는지 감시하거나 검증하는 단계를 더 포함하는, 블록체인 지갑 키 보관 방법
|
6 |
6
청구항 5에 있어서,상기 검증하는 단계는,상기 분산 키 보관 서버의 보관 서비스 프로그램으로 검증 요청을 전송하는 단계;상기 분산 키 보관 서버로부터 무작위로 생성한 제1 상수 값을 받는 단계;상기 부분 키의 검증 확인 요청값으로 무작위로 생성한 제2 상수 값을 상기 보관 서비스 프로그램에 전달하는 단계;상기 분산 키 보관 서버로부터 상기 제1 상수 값, 상기 제2 상수 값 및 기저장된 부분 키 값을 이용하여 생성한 증명 값을 받는 단계; 및상기 제1 상수 값, 상기 제2 상수 값 및 상기 증명 값을 이용하여 상기 분산 키 보관 서버가 유효한 부분 키를 저장하고 있는지 여부를 검증하는 단계;를 포함하는 블록체인 지갑 키 보관 방법
|
7 |
7
청구항 6에 있어서,상기 증명 값은 아래의 [수학식 4]로부터 도출되고,[수학식 3]상기 [수학식 3]에서 r는 증명 값을, w는 제1 상수 값을, c는 제2 상수 값을, P(i)는 t-1차 다항식을 각각 나타내는, 블록체인 지갑 키 보관 방법
|
8 |
8
청구항 6에 있어서,상기 여부를 검증하는 단계는, 동형이산로그(discrete logarithm equality) 수학식인 하기의 [수학식 4]로부터 도출되는 값을 검증 과정에서 확정 값과 함께 이용하며,[수학식 4]상기 [수학식 4]에서 는 에서 부분 키 P(i)를 공개키로 곱한 것을 의미하고, 는 타원 곡선 위의 한 점(H)로 곱한 값인, 블록체인 지갑 키 보관 방법
|
9 |
9
청구항 8에 있어서,상기 여부를 검증하는 단계는, 상기 수학식 5를 만족하는 경우, 상기 분산 키 보관 서버로부터 부분 키를 받지 않고 상기 분산 키 분산 서버에 유효한 부분 키가 저장되어 있음을 수학적으로 검증하는 단계를 포함하는, 블록체인 지갑 키 보관 방법
|
10 |
10
청구항 9에 있어서,상기 수학적으로 검증하는 단계는 하기의 [수학식 5] 및 [수학식 6]를 이용하여 검증하며,[수학식 5][수학식 6]상기 [수학식 5] 및 [수학식 6]에서 Xi는 공개된 값인 분산 키 보관 서버의 공개키를, c는 확정 값을, w는 제1 상수 값을, c는 제2 상수 값을, r은 증명 값을 각각 나타내는, 블록체인 지갑 키 보관 방법
|
11 |
11
사용자 프로그램을 포함하는 공개 검증 가능한 블록체인 지갑 키 보관 장치로서,사용자 프로그램에 탑재되는 키 분산/복원 실행부와 감시/검증 실행부를 포함하고,상기 감시/검증 실행부는 사용자 암호키를 분할하여 확정 값과 함께 부분 키를 생성하고, 상기 부분 키를 상기 확정 값과 함께 분산 키 보관 서버의 공개키로 암호화하고, 상기 공개키로 암호화된 부분 키를 상기 분산 키 보관 서버로 전달하는, 블록체인 지갑 키 보관 장치
|
12 |
12
청구항 11에 있어서,상기 감시/검증 실행부는 상기 확정 값을 생성한 후 t-1차 다항식 상에서의 한 점 (i, P(i))으로 i번째 부분 키를 생성하며, 여기서 t는 다항식의 최고차항을 결정하는 장치 설정값인, 블록체인 지갑 키 보관 장치
|
13 |
13
청구항 11에 있어서,상기 감시/검증 실행부는 상기 부분 키를 받아 저장하는 분산 키 보관 서버가 유효한 부분 키를 소유하고 있는지를 감지하거나 검증하는, 블록체인 지갑 키 보관 장치
|
14 |
14
청구항 13에 있어서,상기 감시/검증 실행부는 상기 유효한 부분 키의 검증을 위해 상기 분산 키 보관 서버의 보관 서비스 프로그램으로 검증 요청을 전송하고, 상기 분산 키 보관 서버로부터 무작위로 생성한 제1 상수 값을 받고, 상기 부분 키의 검증 확인 요청값으로 무작위로 생성한 제2 상수 값을 상기 보관 서비스 프로그램에 전달하고, 상기 분산 키 보관 서버로부터 상기 제1 상수 값, 상기 제2 상수 값 및 기저장된 부분 키 값을 이용하여 생성한 증명 값을 받고, 상기 제1 상수 값, 상기 제2 상수 값 및 상기 증명 값을 이용하여 상기 분산 키 보관 서버가 유효한 부분 키를 저장하고 있는지를 검증하는, 블록체인 지갑 키 보관 장치
|
15 |
15
청구항 14에 있어서,상기 감시/검증 실행부는 상기 유효한 부분 키의 검증 과정에서 상기 유효한 부분 키의 검증 과정에서 동형이산로그(discrete logarithm equality) 수학식으로부터 도출되는 값을 상기 확정 값과 함께 이용하는, 블록체인 지갑 키 보관 장치
|
16 |
16
청구항 15에 있어서,상기 감시/검증 실행부는 상기 검증 과정에서 상기 동형이산로그 수학식을 만족하는 경우, 상기 분산 키 보관 서버로부터 부분 키를 받지 않고 상기 분산 키 분산 서버에 유효한 부분 키가 저장되어 있음을 수학적으로 검증하는, 블록체인 지갑 키 보관 장치
|
17 |
17
청구항 16에 있어서,상기 수학적으로 검증하는 것은 하기의 [수학식 5] 및 [수학식 6]를 이용하여 검증하며,[수학식 5][수학식 6]상기 [수학식 5] 및 [수학식 6]에서 Xi는 공개된 값인 분산 키 보관 서버의 공개키를, c는 확정 값을, w는 제1 상수 값을, c는 제2 상수 값을, r은 증명 값을 각각 나타내는, 블록체인 지갑 키 보관 장치
|
18 |
18
청구항 15에 있어서,상기 감시/검증 실행부는 상기 검증 과정을 통해 유효한 부분 키를 저장하고 있지 않은 재분배 대상 서버의 정보를 저장하는, 블록체인 지갑 키 보관 장치
|
19 |
19
청구항 18에 있어서,상기 감시/검증 실행부는 상기 복원 임계값 이하의 서버 개수에 대하여 유효한 부분 키의 저장 여부에 대한 검증이 각각 완료되면, 유효한 부분 키를 저장하고 있지 않은 분산 키 보관 서버의 정보에 기초하여 분산 키를 재분배하는, 블록체인 지갑 키 보관 장치
|