KR20200118303A - 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법 - Google Patents

월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법 Download PDF

Info

Publication number
KR20200118303A
KR20200118303A KR1020190039801A KR20190039801A KR20200118303A KR 20200118303 A KR20200118303 A KR 20200118303A KR 1020190039801 A KR1020190039801 A KR 1020190039801A KR 20190039801 A KR20190039801 A KR 20190039801A KR 20200118303 A KR20200118303 A KR 20200118303A
Authority
KR
South Korea
Prior art keywords
key
encryption key
fragment
wallet app
encryption
Prior art date
Application number
KR1020190039801A
Other languages
English (en)
Other versions
KR102322118B1 (ko
Inventor
김민수
한경수
Original Assignee
(주)누리텔레콤
누리플렉스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)누리텔레콤, 누리플렉스 아이엔씨 filed Critical (주)누리텔레콤
Priority to KR1020190039801A priority Critical patent/KR102322118B1/ko
Priority to PCT/KR2020/004042 priority patent/WO2020204444A2/ko
Publication of KR20200118303A publication Critical patent/KR20200118303A/ko
Application granted granted Critical
Publication of KR102322118B1 publication Critical patent/KR102322118B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • G06Q20/3227Aspects of commerce using mobile devices [M-devices] using secure elements embedded in M-devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management

Abstract

월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법은, 소유 디바이스의 하드웨어적으로 생성된 디바이스 고유값 또는 상기 월렛 앱에서 소프트웨어적으로 생성된 값을 이용하여 암호화 키(wrap key)의 적어도 2개의 분리 조각과 암호 키(enc key)의 적어도 2개의 분리 조각으로 임의(random)의 비율로 분리함과 동시에 각각의 조각들을 임의의 조합으로 선후로 결합하여 사용자의 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 분산시켜 저장한다. 모바일 뱅킹 서비스, 간편 결제 서비스, 다양한 핀테크 서비스, 온라인 전자금융거래 등에서 사용자에 대한 인증 및 금융거래 행위, 결제 행위에 대한 전자적 인증과 전자결제 서명 등에서 보안성을 보다 강화시킬 수 있다.

Description

월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법{PRIVATE KEY SECURING METHODS OF DECENTRALIZEDLY STORYING KEYS IN OWNER'S DEVICE AND/OR BLOCKCHAIN NODES}
본 발명은 보안에 대한 것으로, 좀 더 구체적으로는 비밀 키 보안 기술에 관한 것이다.
암호 화폐 지갑 또는 월렛(wallet)은 암호 화폐 자산을 보관하기 위하여 개인 키와 공개 키를 저장하는 것 외의 새로운 계정 생성, 서명 생성, 트랜잭션 생성 및/또는 추가 적인 보안 설정 (패턴, 지문, 안면 인식 등 생체 인증)과 같은 기능을 제공할 수 있다.
기존의 암호화폐 월렛의 보안 메카니즘으로는 플랫폼마다 비밀번호를 다르게 설정하거나 또는 2단계 인증 (Two-Factor Authentication, 2FA)을 사용하는 방법등이 있으나, 모바일 뱅킹 서비스, 간편 결제 서비스, 다양한 핀테크 서비스, 온라인 전자금융거래 등에서 사용자에 대한 인증 및 금융거래 행위, 결제 행위에 대한 전자적 인증과 전자결제 서명 등에 적용할 경우 해킹에 취약해 보안성에 문제가 있다.
한국공개번호 2016-0139885(출원인 한국정보인증주식회사, “생체 정보 인식과 키 분할 방식을 이용한 공인인증 시스템 및 그 방법, 그 방법을 수행하는 프로그램이 기록된 기록매체”)
상기와 같은 문제점을 해결하기 위해 본 발명의 목적은 보안성을 더욱 강화하기 위하여 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법과 이를 수행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 것이다.
본 발명의 일실시예에 따르면, 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법은, 상기 월렛 앱에서 개인 키와 공개 키의 키 페어를 생성하는 단계와, 상기 월렛 앱에서 상기 개인 키를 암호화하기 위해 암호 키(enc key)를 생성하는 단계와, 상기 월렛 앱에서 상기 개인 키를 상기 암호 키(enc key)로 암호화하여 암호화 키(wrap key)를 생성하는 단계와, 상기 월렛 앱에서 상기 암호화 키(wrap key)를 임의의 제1 키 분리 비율로 제1 암호화 키 조각 및 제2 암호화 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하고, 상기 암호 키(enc key)를 임의의 제2 키 분리 비율로 제1 암호 키 조각 및 제2 암호 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하는 단계와, 상기 월렛 앱에서 상기 분리된 제1 암호화 키 조각 및 제2 암호화 키 조각과 상기 분리된 제1 암호 키 조각 및 제2 암호 키 조각을 선후로 결합하는 단계와, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-의 저장 요청을 상기 소유 디바이스로 전송하는 단계와, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 저장 요청을 IPFS(Inter Planetary File System) 프로토콜을 이용하여 상기 블록체인 노드로 전송하는 단계를 포함한다.
상기 월렛 앱에서 상기 암호화 키(wrap key) 및 상기 암호 키(enc key)키를 상기 소유 디바이스의 디바이스 식별자(ID)를 이용하여 키 분리 맵을 통하여 적어도 2개의 조각으로 키 분리 비율을 랜덤하게 조정하면서 분리할 수 있다. 상기 디바이스 식별자(ID)는 안드로이드 플랫폼을 사용하는 디바이스의 경우 IMEI(International Mobile Equipment Identity) 및 안드로이드 디바이스 시리얼 넘버(serial number) 중 하나를 포함할 수 있다. 상기 디바이스 식별자(ID)는 iOS 플랫폼을 사용하는 디바이스의 경우 UUID(Universally Unique Identifiers) 및 UDID(Unique Device Identifier) 중 하나를 포함할 수 있다. 상기 암호화 키(wrap key)의 상기 제1 키 분리 비율은, 상기 디바이스 식별자(ID) 값의 n번째 자리수-여기서 n은 자연수임-를 기준으로 8로 MOD 연산을 수행하여 1:9, 2:8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2 및 9:1의 9가지 경우의 수로 키 분리 비율을 결정할 수 있다. 상기 암호화 키(wrap key)를 상기 제1 키 분리 비율로 암호화 키(wrap key) 앞부분 pre-wrapkey(W1)과 암호화 키(wrap key) 뒷부분 post-wrapkey(W2)의 2개의 암호화 키(wrap key) 조각으로 분리할 수 있다. 상기 암호 키(enc key)의 상기 제2 키 분리 비율은, 상기 디바이스 식별자(ID) 값의 m번째 자리수-여기서 m은 자연수임-를 기준으로 8로 MOD 연산을 수행하여 1:9, 2:8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2 및 9:1의 9가지 경우의 수로 키 분리 비율을 결정할 수 있다. 상기 암호 키(enc key)를 상기 제2 키 분리 비율로 암호 키(enc key) 앞부분 pre-enckey(E1)과 암호 키(enc key) 뒷 부분 post-enckey(E2)의 2개의 암호 키(enc key) 조각으로 분리할 수 있다. 상기 분리된 키 조각의 선후 결합은 상기 디바이스 식별자(ID) 값의 k번째 자리수-여기서 k는 자연수임-를 기준으로 7로 MOD 연산을 수행하여 8가지 경우의 수로 결정할 수 있다. 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-와 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 상기 소유 디바이스 및 상기 블록체인 노드에서의 저장 위치를 결정하는 단계를 더 포함할 수 있다. 상기 블록체인 노드는 상기 제2 선후 결합 키를 상기 블록 체인 노드에 분산 저장하는 단계를 더 포함할 수 있다. 상기 월렛 앱에서 생체 인증 장치를 통해 생체 인증을 수행하는 단계를 더 포함할 수 있다. 상기 월렛 앱에서 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청을 상기 소유 디바이스로 전송하고, 상기 소유 디바이스로부터 상기 소유 디바이스 저장 결합 키 응답을 수신하는 단계를 더 포함하되, 상기 소유 디바이스 저장 결합 키 응답은 상기 요청된 소유 디바이스에 저장된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부를 포함할 수 있다. 상기 월렛 앱에서 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청을 상기 IPFS 프로토콜을 이용하여 상기 블록체인 노드로 전송하고, 상기 블록체인 노드로부터 상기 블록 체인 노드에 분산 저장된 암호화 키(wrap key) 일부와 암호 키(enc key) 일부 응답을 수신하는 단계를 더 포함하되, 상기 암호화 키(wrap key) 일부와 암호 키(enc key) 일부 응답은 상기 요청된 블록 체인 노드에 분산 저장된 암호화 키(wrap key) 일부와 암호 키(enc key) 일부를 포함할 수 있다. 상기 월렛 앱에서 상기 소유 디바이스에 저장된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부, 그리고 상기 블록 체인 노드를 통해 조회된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부를 조합하여 상기 암호화 키(wrap key)와 상기 암호 키(enc key)를 복구하는 단계와, 상기 월렛 앱에서 상기 복구된 암호 키(enc key)를 이용하여 상기 복구된 암호화 키(wrap key)를 복호화하여 개인 키를 획득하는 단계와, 상기 월렛 앱에서 상기 획득된 개인 키를 이용하여 트랜잭션에 전자 서명을 하고 상기 전자 서명 또는 전자 서명된 값을 서비스 블록 체인으로 전송하는 단계를 더 포함할 수 있다.
본 발명의 다른 실시예에 따르면, 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체는 상기 월렛 앱에서 개인 키와 공개 키의 키 페어를 생성하는 단계와, 상기 월렛 앱에서 상기 개인 키를 암호화하기 위해 암호 키(enc key)를 생성하는 단계와, 상기 월렛 앱에서 상기 개인 키를 상기 암호 키(enc key)로 암호화하여 암호화 키(wrap key)를 생성하는 단계와, 상기 월렛 앱에서 상기 암호화 키(wrap key)를 임의의 제1 키 분리 비율로 제1 암호화 키 조각 및 제2 암호화 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하고, 상기 암호 키(enc key)를 임의의 제2 키 분리 비율로 제1 암호 키 조각 및 제2 암호 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하는 단계와, 상기 월렛 앱에서 상기 분리된 제1 암호화 키 조각 및 제2 암호화 키 조각과 상기 분리된 제1 암호 키 조각 및 제2 암호 키 조각을 선후로 결합하는 단계와, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-의 저장 요청을 상기 소유 디바이스로 전송하는 단계와, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 저장 요청을 IPFS(Inter Planetary File System) 프로토콜을 이용하여 상기 블록체인 노드로 전송하는 단계를 포함한다.
본 발명의 또 다른 실시예에 따르면, 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드 중 적어도 하나에 키를 분산 저장하는 비밀 키 보안 방법은, 상기 월렛 앱에서 개인 키와 공개 키의 키 페어를 생성하는 단계와, 상기 월렛 앱에서 상기 개인 키를 암호화하기 위해 암호 키(enc key)를 생성하는 단계와, 상기 월렛 앱에서 상기 개인 키를 상기 암호 키(enc key)로 암호화하여 암호화 키(wrap key)를 생성하는 단계와, 상기 월렛 앱에서 상기 암호화 키(wrap key)를 임의의 제1 키 분리 비율로 제1 암호화 키 조각 및 제2 암호화 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하고, 상기 암호 키(enc key)를 임의의 제2 키 분리 비율로 제1 암호 키 조각 및 제2 암호 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하는 단계와, 상기 월렛 앱에서 상기 분리된 제1 암호화 키 조각 및 제2 암호화 키 조각과 상기 분리된 제1 암호 키 조각 및 제2 암호 키 조각을 선후로 결합하는 단계와, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-의 저장 요청을 상기 소유 디바이스로 전송하거나, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 저장 요청을 IPFS(Inter Planetary File System) 프로토콜을 이용하여 상기 블록체인 노드로 전송하는 단계를 포함한다.
본 발명의 실시 예들에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법과 이를 수행하는 장치에 따르면, 상기 소유 디바이스의 디바이스 식별자(ID) 또는 공개키의 특정 자릿수의 값(10 진수)을 포함하는 월렛 상수를 이용하여 암호화 키(wrap key)의 적어도 2개의 분리 조각과 암호 키(enc key)의 적어도 2개의 분리 조각으로 임의(random)의 비율로 분리함과 동시에 각각의 조각들을 임의의 조합으로 선후로 결합하여 사용자의 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 분산시켜 저장함으로써, 모바일 뱅킹 서비스, 간편 결제 서비스, 다양한 핀테크 서비스, 온라인 전자금융거래 등에서 사용자에 대한 인증 및 금융거래 행위, 결제 행위에 대한 전자적 인증과 전자결제 서명 등에서 보안성을 보다 강화시킬 수 있다.
본 발명의 실시 예들에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법과 이를 수행하는 장치에 따르면, 키 해킹을 위해서는 월렛 앱이 설치된 소유 디바이스내 암호화 키(wrap key)의 일부 및 암호 키(enc key)의 일부와, 이와 페어(pair)를 이루는 블록 체인 노드에 분산 저장된 암호화 키(wrap key)의 일부 및 암호 키(enc key)의 일부를 모두 취득해야만 해킹이 가능하므로 현실적으로 해킹이 불가능하므로 보안성을 보다 강화시킬 수 있다. 여기서, 블록 체인 노드에 분산 저장된 암호화 키(wrap key)의 일부 및 암호 키(enc key)의 일부는 월렛 앱이 설치된 소유 디바이스내 암호화 키(wrap key)의 일부 및 암호 키(enc key)의 일부와의 연관 관계가 외부에서는 확인이 곤란하므로 매칭 키 서치가 불가능하다. 또한, 더불어 소유디바이스가 제공하는 하드웨어 보안 모듈(Hardware Security Module; HSM)에 준하는 보안 영역(Secure zone)에 키 일부가 저장되기에 해당 키 획득도 불가능하다.
도 1은 본 발명의 일 실시예에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법을 수행하는 시스템 구성도이다.
도 2는 본 발명의 일실시예에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 일 실시예에 따른 키 분리 비율 맵(map)을 나타낸 테이블이다.
도 4는 암호화 키(wrap key)를 6:4의 분리 비율로 암호화 키(wrap key) 앞부분 pre-wrapkey(W1)과 암호화 키(wrap key) 뒷 부분 post-wrapkey(W2)의 2개의 암호화 키(wrap key) 조각으로 분리한 경우를 예시적으로 나타낸다.
도 5는 암호 키(enc key)를 3:7의 분리 비율로 암호 키(enc key) 앞부분 pre-enckey(E1)과 암호 키(enc key) 뒷 부분 post-enckey(E2)의 2개의 암호 키(enc key) 조각으로 분리한 경우를 예시적으로 나타낸다.
도 6은 본 발명의 일실시예에 따른 분리된 키의 임의 결합을 통해 소유 디바이스에 저장 및/또는 블록 체인 노드에 저장하기 위한 분리된 키의 선후 결합 맵을 나타낸 테이블이다.
도 7a 내지 도 7h은 본 발명의 일실시예에 따른 분리된 키의 임의 결합을 통해 소유 디바이스에 저장하는 예를 나타낸다.
도 8은 본 발명의 일실시예에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장된 비밀 키를 이용하는 방법을 설명하기 위한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등을 포함하는 용어가 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재 항목들의 조합 또는 복수의 관련된 기재 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여 본 발명에 바람직한 실시 예를 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어 도면 부호에 상관없이 동일하거나 대응하는 구성요소는 동일한 참조번호를 부여하고 이에 대해 중복되는 설명은 생략하기로 한다.
공개 키(public key)는 암호화(Encryption)를 위해 사용하며 예를 들어, 월렛 주소(wallet address)가 될 수 있다. 공개 키는, 암호 화폐와 같은 자산(asset)을 거래(transaction)하는 경우를 예로 들면, 암호 화폐를 입금 받을 때 또는 암호 화폐의 입출금 내역을 조회할 때에 사용될 수 있으며, 공개 키만 가지고는 암호 화폐의 출금을 할 수 없다.
개인키(private key)는 복호화(Decryption)를 할 때 사용하며, 암호 화폐와 같은 자산(asset)을 거래(transaction)하는 경우를 예로 들면 다른 월렛(wallet)으로 암호 화폐를 송금할 때, 온라인/오프라인 매장에서 결제할 때, 환전소(Exchange) 등에서 화폐를 거래할 때, 화폐의 입출금 내역을 조회할 때에 사용될 수 있다.
비밀 키는 개인 키(private key)와 동일한 의미로 사용한다.
암호 키(enc key)는 개인 키(private key)를 암호화하기 위한 키이다.
암호화 키(wrap key)는 개인 키(private key)를 암호 키(enc key)로 암호화한 키 또는 암호화한 값이다.
이하, 본 발명의 실시예들에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법에 대해 설명한다.
도 1은 본 발명의 일 실시예에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법을 수행하는 시스템 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법을 수행하는 시스템은 월렛(100), 월렛(100)이 설치된 소유 디바이스(미도시), 블록체인 노드(200)로 구성된다.
월렛 앱(100)은 상기 소유 디바이스의 디바이스 식별자(ID), 공개키의 특정 자릿수의 값(10 진수)을 포함하는 월렛 상수를 이용하여 암호화 키(wrap key)의 적어도 2개의 분리 조각과 암호 키(enc key)의 적어도 2개의 분리 조각으로 임의(random)의 비율로 분리함과 동시에 각각의 조각들을 임의의 조합으로 선후로 결합하여 사용자의 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 분산시켜 저장시킨다.
도 2는 본 발명의 일실시예에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법을 설명하기 위한 순서도이다.
도 2를 참조하면, 먼저 월렛 앱(100)에서는 생체 인증 장치(120)에 생체 인증을 요청(단계 210)하고, 생체 인증 장치(120)로부터 생체 인증 결과 응답(212)을 수신한다. 상기 생체 인증은 지문과 같은 생체 신호 또는 생체 정보를 이용하여 수행될 수 있다. 상기 생체 신호는 지문 외에도 얼굴 특징, 음성, 홍채, 망막, 손 기하학, 서명 역학, 키입력 역학, 입술 움직임, 열 얼굴 이미지, 열 손 이미지, 걸음걸이, 체취 등을 포함할 수 있다.
상기 생체 인증이 성공한 경우, 월렛 앱(100)에서는 개인키(private key)와 공개 키(public key)의 키 페어(pair)를 생성(단계 214)한다. 상기 개인 키는 상기 생체 신호 또는 상기 생체 정보를 이용하여 생성될 수 있다. 상기 개인키는 무작위로 생성될 수도 있다. 상기 개인 키는 예를 들어 일반 난수 생성기로 무작위로 생성하거나, 엔트로피(무작위성)가 높은 함수를 이용하여 생성될 수 있다. 개인키는 예를 들어 랜덤한 128, 192, 또는 256 비트(bit)로 이루어진 값이 될 수 있다. 개인 키를 생성했으면 공개 키는 소정의 연산 처리를 통해서 계산할 수 있다.
월렛 앱(100)에서는 개인 키를 암호화하기 위해 암호 키(enc key)를 생성한다(단계 216).
월렛 앱(100)에서는 개인 키를 암호 키(enc key)로 암호화하여 암호화 키(wrap key)를 생성한다(단계 216).
월렛 앱(100)에서는 암호화 키(wrap key)와 암호 키(enc key) 각각을 랜덤한 키 분리 비율로 적어도 2개의 조각(fragment)으로 분리한다(단계 220). 월렛 앱(100)에서는 상기 암호화 키(wrap key)를 임의의 제1 키 분리 비율로 제1 암호화 키 조각 및 제2 암호화 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하고, 암호 키(enc key)를 임의의 제2 키 분리 비율로 제1 암호 키 조각 및 제2 암호 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리할 수 있다. 자세한 설명은 도 3 내지 도 5를 참조하여 후술한다.
월렛 앱(100)에서는 상기 분리된 암호화 키(wrap key)의 조각과 분리된 암호 키(enc key) 조각을 선후로 결합한다(단계 222). 자세한 설명은 도 6 내지 도 7h를 참조하여 후술한다.
월렛 앱(100)에서는 상기 분리되어 선후로 결합된 암호화 키(wrap key)의 일부와 암호 키(enc key)의 일부의 소유 디바이스(150) 및/또는 블록체인 노드(200)에서의 저장 위치를 결정한다(단계 224). 여기서 소유 디바이스는 월렛 앱(100)이 설치된 디바이스이다.
월렛 앱(100)에서는 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 저장 요청(226)을 소유 디바이스(150)으로 전송하고, 소유 디바이스(150)으로부터 디바이스 키 저장 결과 응답(228)을 수신한다. 월렛 앱(100)에서는 소유 디바이스(150)에서의 키 저장 위치 정보를 예를 들어 안드로이드 키스토어(Android KeyStore) 액세스 키(access key)에 포함시켜 소유 디바이스(150)로 전송할 수 있다. 액세스 키(access key)는 안드로이드 키스토어(Android KeyStore)에 저장된 키의 접근을 위한 별칭(alias) 또는 주소(address)이다.
상기 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 저장 요청(226)은 상기 분리되어 선후로 결합된 제1 선후 결합 키의 저장 요청에 해당된다. 상기 제1 선후 결합 키는 상기 암호화 키(wrap key)의 제1 암호화 키 조각 및 제2 암호화 키 조각 중 하나와 상기 암호 키(enc key)의 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것이다. 자세한 설명은 도 3 내지 도 7h를 참조하여 후술한다.
디바이스 키 저장 결과 응답(228)은 예를 들어 참(true) 또는 거짓(false)와 같은 값을 리턴할 수 있다.
소유 디바이스(150)에서는 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부를 소유 디바이스(150)에 저장할 수 있다. 예를 들어, 소유 디바이스(150)가 안드로이드 운영체제를 사용하는 디바이스인 경우, 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부를 안드로이드 키스토어(Android KeyStore)인 하드웨어 기반으로 안드로이드 디바이스의 보안 하드웨어 - 예를 들어 TEE(Trusted Execution Environment) 또는 SE(Secure Element)-를 활용하여 안드로이드 디바이스에 저장할 수 있다.
안드로이드 키스토어 시스템은 승인되지 않은 접근(unauthorized use)에 대해 중요한 키 머티리얼(key material) (예를들어, 초기화 벡터(initialization vector, IV) 값)들을 보호한다. 초기화 벡터(initialization vector, IV)는 첫 블록을 암호화할 때 사용되는 값을 의미한다. 암호 운용 방식마다 초기화 벡터를 사용하는 방법이 다르며 암호키값을 추출하더라도 초기화 벡터(initialization vector) iv값등의 추출이 불가하여 해킹이 불가하다고 볼 수 있다.
첫째, 안드로이드 키스토어는 안드로이드 디바이스 밖에서의 승인되지 않은 키 머티리얼(key material) 사용에 대해 키 머티리얼(key material) 추출을 보호함으로써 승인되지 않은 접근에 대한 위협을 줄여준다.
둘째, 안드로이드 키스토어는 안드로이드 디바이스에서의 승인되지 않은 접근에 대해 키를 구체화(specify)하고 앱 프로세스 바깥에서의 이들 제한을 강제함으로써 승인되지 않은 접근에 대한 위협을 줄여준다.
안드로이드 키스토어 키들의 키 머티리얼(key material)들은 두가지 보안 수단에 의해 보호된다.
1) 키 머티리얼(key material)은 애플리케이션 프로세스에서 절대로 접근할 수 없다. 애플리케이션이 안드로이드 키스토어를 사용해 암호 관련 동작(operation)을 수행할 때, 뒷단에서 시스템 프로세스를 통해 서명/확인등에 필요한 평문(plaintext)/암호문(cipher)/메시지(message)등이 공급된다. 앱 프로세스가 위협에 노출된다면, 공격자가 앱의 키를 사용할 수 있을진 모르나 키 머티리얼(key material)까지 탈취하지는 못한다.
- 키 머티리얼(key material)은 보안 하드웨어(secure hardware)(예를들어, TEE(Trusted Execution Environment), SE(Secure Element))에 바인딩 돼 있을 수도 있다. 상기 기능이 키에 대해 인에이블(enable) 되어 있다면 해당 키에 대한 키 머티리얼(key material)은 절대로 보안 하드웨어(secure hardware) 바깥으로 노출될 수 없다. 안드로이드 OS가 위협에 노출되거나 공격자가 시스템의 내부 저장소를 읽을 수 있게 될지라도, 안드로이드 키스토어의 키를 추출할 수는 없다.
월렛 앱(100)에서는 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 저장 요청(230)을 IPFS(Inter Planetary File System) 프로토콜을 활용하여 블록체인 노드(200)로 전송한다. 블록체인 노드(200)는 암호화 키(wrap key) 일부와 암호 키(enc key) 일부를 IPFS 프로토콜을 활용하여 블록 체인 네트워크의 각 노드에 분산시켜 저장한다(단계 232). 예를 들어, IPFS 프로토콜을 활용하여 암호화 키(wrap key) 일부와 암호 키(enc key) 일부를 256 kb로 저장하거나 256 kb보다 큰 경우에는 256 kb로 잘게 쪼개어 저장할 수 있다. 또는 암호화 키(wrap key) 일부와 암호 키(enc key) 일부를 256kb 이상으로 사이즈를 조정할 수도 있다.
블록 체인 네트워크의 각노드에 동일한 복사(COPY)본이 아닌, 조각 모음이 저장될 수 있다. 구체적으로, 블록체인에 저장되는 키를 하나의 완전체(WRAPKEY+ENCKEY)로 볼 때, 그 자체도 조각으로 블록체인 노드에 분산 저장될 수 있다. 예를 들어, 가령 노드1에는 완전체의 30%만 저장하고, 노드 2에는 완전체의 70%, 노드3에는 완전체의 100%가 저장될 수 있다.
또는 블록 체인 네트워크의 각 노드에 동일한 복사(COPY)본이 저장될 수도 있다. 이 경우 블록체인 노드들 중 일부가 브레이크 다운(Break-Down) 되는 경우 인증이 되지 않는 것을 방지할 수 있다.
상기 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 저장 요청(230)은 상기 분리되어 선후로 결합된 제2 선후 결합 키의 저장 요청에 해당된다. 상기 제2 선후 결합 키는 상기 암호화 키(wrap key)의 제1 암호화 키 조각 및 제2 암호화 키 조각 중 다른 하나와 상기 암호 키(enc key)의 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것이다. 자세한 설명은 도 3 내지 도 7h를 참조하여 후술한다.
전술한 도 2의 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법은 예를 들어 모바일 뱅킹 서비스에서 뱅킹 서비스 가입시 키를 소유자 디바이스 및/또는 블록 체인 노드에 분산 저장하는데 적용할 수 있다.
도 3은 본 발명의 일 실시예에 따른 키 분리 비율 맵(map)을 나타낸 테이블이다.
도 3을 참조하면, 월렛 앱(100)에서는 암호화 키(wrap key) 및 암호 키(enc key)키를 디바이스 식별자(ID)를 이용하여 키 분리 맵을 통하여 2개의 조각으로 분리 비율을 랜덤하게 조정하면서 분리할 수 있다. 또는, 월렛 앱(100)에서는 암호화 키(wrap key) 및 암호 키(enc key)키를 디바이스 식별자(ID)가 아닌 공개키의 특정 자릿수의 값(10 진수)을 포함하는 월렛 상수를 이용하여 조각으로 분리할 수도 있으며, 반드시 이에 한정되는 것은 아니며 디바이스의 다른 고유 값 또는 월렛의 다른 특정 값을 이용하여 조각으로 분리할 수 있다.
디바이스 식별자(ID)는 예를 들어, 안드로이드 플랫폼을 사용하는 디바이스의 경우 IMEI(International Mobile Equipment Identity)와 같은 단말기 고유 일련 번호 또는 안드로이드 디바이스 시리얼 넘버(serial number)등이 될 수 있다.
또는 디바이스 식별자(ID)는 iOS 플랫폼을 사용하는 디바이스의 경우 UUID(Universally Unique Identifiers)와 같은 고유 사용자 식별자, UDID(Unique Device Identifier)와 같은 디바이스 고유 식별자 또는 iOS 디바이스의 시리얼 넘버(serial number)등이 될 수 있다.
UUID는 디바이스의 고유 값이 아닌 어플리케이션(또는 앱)에서 생성한 유일한 값으로 생성할 때마다 변경되는 랜덤 값이다. UDID는 디바이스 식별 값으로 디바이스의 고유 값이며, 디바이스를 식별하기 위해 고유하게 할당된 40개의 숫자와 문자열이 될 수 있다.
암호화 키(wrap key) 분리 비율은, 도 3에 도시된 바와 같이, 소유자 디바이스(150)의 플랫폼(예를 들어 안드로이이드 또는 iOS) 별로 고유의 디바이스 식별자(ID) 값의 n번째 자리수-여기서 n은 자연수임-를 기준으로 8로 MOD 연산을 수행하여 1:9, 2:8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2, 9:1의 9가지 경우의 수로 키 분리 비율을 결정할 수 있다.
도 4는 암호화 키(wrap key)를 6:4의 분리 비율로 암호화 키(wrap key) 앞부분 pre-wrapkey(W1)과 암호화 키(wrap key) 뒷 부분 post-wrapkey(W2)의 2개의 암호화 키(wrap key) 조각으로 분리한 경우를 예시적으로 나타낸다.
암호 키(enc key) 분리 비율은, 도 3에 도시된 바와 같이, 소유자 디바이스의 플랫폼(안드로이이드 또는 iOS) 별 고유의 디바이스 식별자(ID) 값의 m번째 자리수-여기서 m은 자연수임-를 기준으로 8로 MOD 연산을 수행하여 1:9, 2:8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2, 9:1의 9가지 경우의 수로 키 분리 비율을 결정할 수 있다.
도 5는 암호 키(enc key)를 3:7의 분리 비율로 암호 키(enc key) 앞부분 pre-enckey(E1)과 암호 키(enc key) 뒷 부분 post-enckey(E2)의 2개의 암호 키(enc key) 조각으로 분리한 경우를 예시적으로 나타낸다.
도 6은 본 발명의 일실시예에 따른 분리된 키의 임의 결합을 통해 소유 디바이스에 저장 및/또는 블록 체인 노드에 저장하기 위한 분리된 키의 선후 결합 맵을 나타낸 테이블이다. 도 7a 내지 도 7h은 본 발명의 일실시예에 따른 분리된 키의 임의 결합을 통해 소유 디바이스에 저장하는 예를 나타낸다.
이하, 도 6 및 도 7a 내지 도 7h을 참조하여 소유 디바이스에 암호화 키(wrap key)의 일부와 암호 키(enc key)의 일부를 앞뒤로 조합(또는 선후 결합)하여 저장하는 경우를 설명한다. 이하에서는 암호화 키(wrap key)와 암호 키(enc key)를 2개의 조각으로 분리하는 경우를 예로 들어 설명하지만, 2개의 조각으로 분리되는 경우로 한정되지 아니하며 2개 이상의 조각으로 분리되는 경우도 포함될 수 있다.
분리된 키의 선후 결합은, 도 6에 도시된 바와 같이, 소유자 디바이스(150)의 플랫폼(예를 들어 안드로이이드 또는 iOS) 별로 고유의 디바이스 식별자(ID) 값의 k번째 자리수-여기서 k는 자연수임-를 기준으로 7로 MOD 연산을 수행하여 8가지 경우의 수로 결정할 수 있다.
예로 들면, 도 6의 기준 항목의 값이 5인 경우 암호화 키(wrap key)는 6:4의 분리 비율로 2개의 조각으로 분리되고, 도 6의 기준 항목의 값이 2인 경우 암호키(enc key)는 3:7의 분리 비율로 2개의 조각으로 분리되며, 도 7a에 도시된 바와 같이 암호화 키(wrap key) 분리 조각 중 앞부분 pre-wrapkey(W1)이 앞쪽에, 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)이 뒤쪽에 선후 결합되어 소유 디바이스에 저장될 수 있으며, 이 경우, 블록 체인 노드에는, 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)과 암호 키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)이 4:7의 비율로 선후 결합되어 저장될 수 있다.
도 7a에 도시된 바와 같이, 도 4의 암호화 키(wrap key) 분리 조각 중 앞 부분의 pre-wrapkey(W1)와 도 5의 암호 키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)를 6:3의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)과 도 5의 암호 키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)을 4:7의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
도 7b에 도시된 바와 같이, 도 4의 암호화 키(wrap key) 분리 조각 중 앞 부분의 pre-wrapkey(W1)와 도 5의 암호키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)를 6:7의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)과 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)을 4:3의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
도 7c에 도시된 바와 같이, 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)와 도 4의 암호화 키(wrap key) 분리 조각 중 앞부분 pre-wrapkey(W1)를 3:6의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 5의 암호키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)과 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)을 7:4의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
도 7d에 도시된 바와 같이, 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)와 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)를 3:4의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)과 도 4의 암호화 키(wrap key) 분리 조각 중 앞부분 pre-wrapkey(W1)을 7:6의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
도 7e에 도시된 바와 같이, 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)와 도 5의 암호키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)를 4:7의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 4의 암호화 키(wrap key) 분리 조각 중 앞부분 pre-wrapkey(W1)과 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)을 6:3의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
도 7f에 도시된 바와 같이, 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)와 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)를 4:3의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 4의 암호화 키(wrap key) 분리 조각 중 앞부분 pre-wrapkey(W1)과 도 5의 암호키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)을 6:7의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
도 7g에 도시된 바와 같이, 도 5의 암호키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)와 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)를 7:4의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)과 도 4의 암호화 키(wrap key) 분리 조각 중 앞부분 pre-wrapkey(W1)을 3:6의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
도 7h에 도시된 바와 같이, 도 5의 암호키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)와 도 4의 암호화 키(wrap key) 분리 조각 중 앞부분 pre-wrapkey(W1)를 7:6의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)과 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)을 3:4의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
즉, 암호화 키(wrap key) 2개의 분리 조각(앞부분(pre) 조각, 뒷부분(post) 조각)과 암호 키(enc key)의 2개의 분리 조각(앞부분(pre) 조각, 뒷부분(post) 조각)을 도 3의 키 분리 비율과 같이 임의(random) 비율로 분리함과 동시에 각각의 조각들을 랜덤 조합으로 선후로 결합하여 사용자의 월렛 앱(100)이 설치된 소유 디바이스(150)와 블록체인 노드(200)에 분산 시켜 저장함으로써 보안성을 더욱 강화시킬 수 있다.
도 8은 본 발명의 일실시예에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장된 비밀 키를 이용하는 방법을 설명하기 위한 순서도이다.
도 8을 참조하면, 먼저 월렛 앱(100)에서는 생체 인증 장치(120)에 생체 인증을 요청(단계 810)하고, 생체 인증 장치(120)로부터 생체 인증 결과 응답(812)을 수신한다.
생체 인증이 성공한 경우, 월렛 앱(100)에서는 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청(814)을 소유 디바이스(150)으로 전송하고, 소유 디바이스(150)으로부터 소요 디바이스 저장 결합 키 응답(816)을 수신한다.
상기 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청(814)은 분리되어 선후로 결합된 제1 선후 결합 키의 요청에 해당된다. 상기 제1 선후 결합 키는 상기 암호화 키(wrap key)의 제1 암호화 키 조각 및 제2 암호화 키 조각 중 하나와 상기 암호 키(enc key)의 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것이다.
디바이스 저장 결합 키 응답(816)은 상기 요청된 소유 디바이스(150)에 저장된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부가 포함된다.
월렛 앱(100)에서는 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청(818)을 IPFS 프로토콜을 이용하여 블록체인 노드(200)로 전송한다(단계 818). 블록체인 노드(200)는 블록 체인 각 노드에 분산 저장된 암호화 키(wrap key) 일부와 암호 키(enc key) 일부 응답을 월렛 앱(100)으로 전송한다(단계 820). 암호화 키(wrap key) 일부와 암호 키(enc key) 일부 응답은 상기 요청된 블록 체인 각 노드에 분산 저장된 암호화 키(wrap key) 일부와 암호 키(enc key) 일부를 포함한다.
상기 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청(818)은 상기 분리되어 선후로 결합된 제2 선후 결합 키의 요청에 해당된다. 상기 제2 선후 결합 키는 상기 암호화 키(wrap key)의 제1 암호화 키 조각 및 제2 암호화 키 조각 중 다른 하나와 상기 암호 키(enc key)의 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것이다.
월렛 앱(100)에서는 소유 디바이스(150)에 저장된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부, 그리고 블록 체인 노드(200)를 통해 조회된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부를 전술한 키 분리 비율 맵과 선후 결합 맵을 이용하여 조합하여 암호화 키(wrap key)와 암호 키(enc key)를 복구하여 암호화 키(wrap key)와 암호 키(enc key)를 생성한다(단계 822).
월렛 앱(100)에서는 상기 복구된 암호 키(enc key)를 이용하여 암호화 키(wrap key)를 복호화하여 개인 키를 획득한다(단계 824).
월렛 앱(100)에서는 상기 개인 키를 이용하여 트랜잭션에 전자 서명을 하고(단계 826), 전자 서명 또는 전자 서명된 값을 서비스 블록 체인(300)으로 전송한다(단계 828). 상기 트랜잭션은 거래 원문을 포함할 수 있다. 상기 거래 원문은 예를 들어 은행간 송금시 사용되는 송신처, 송금 금액, 수신처를 포함하는 원문이다. 또한, 상기 트랜잭션은 암호화폐 자산, 콘텐츠 또는 데이터등을 포함할 수도 있다.
월렛 앱(100)에서는 상기 획득된 개인 키를 사용 후 메모리에서 즉시 삭제할 수 있다(단계 830). 여기서, 단계 830은 필수적인 단계는 아니며 선택적으로 동작할 수도 있다.
전술한 도 8의 방법은 모바일 뱅킹 서비스, 간편 결제 서비스, 다양한 핀테크 서비스, 온라인 전자금융거래 등에서 사용자에 대한 인증 및 금융거래 행위, 결제 행위에 대한 전자적 인증과 전자결제 서명 등에 적용 가능하다. 예를 들어, 이체, 송금등과 같은 트랜잭션시 사용자의 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 각각 분산 저장된 키가 지문등의 생체인증방식의 접근제어를 통하여 사용자에 대한 인증 및 금융거래 행위, 결제 행위에 대한 전자적 인증과 전자결제 서명에 사용될 수 있다.
본 발명의 다른 실시예에서는, 암호화 키(wrap key)의 분리 조각과 암호 키(enc key) 분리 조각을 임의의 비율로 분리함과 동시에 각각의 조각들을 임의의 조합으로 선후로 결합하여 블록체인 노드에만 분산 저장하는 형태로 구현도 가능하다.
블록 체인 네트워크의 각노드에 동일한 복사(COPY)본이 아닌, 조각 모음이 저장될 수 있다. 구체적으로, 블록체인에 저장되는 키를 하나의 완전체(WRAPKEY+ENCKEY)로 볼 때, 그 자체도 조각으로 블록체인 노드에 분산 저장될 수 있다. 예를 들어, 가령 노드1에는 완전체의 30%만 저장하고, 노드 2에는 완전체의 70%, 노드3에는 완전체의 100%가 저장될 수 있다.
또는 블록 체인 네트워크의 각 노드에 동일한 복사(COPY)본이 저장될 수도 있다. 이 경우 블록체인 노드들 중 일부가 브레이크 다운(Break-Down) 되는 경우 인증이 되지 않는 것을 방지할 수 있다.
본 발명의 또 다른 실시예에서는, 암호화 키(wrap key)의 분리 조각들은 사용자의 월렛 앱이 설치된 소유 디바이스에 저장하고, 암호 키(enc key) 분리 조각들은 블록체인 노드에 분산 저장하도록 구현하거나, 또는, 그 반대 형태로도 구현할 수 있다.
이상, 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
구체적으로, 설명된 특징들은 디지털 전자 회로, 또는 컴퓨터 하드웨어, 펌웨어, 또는 그들의 조합들 내에서 실행될 수 있다. 특징들은 예컨대, 프로그래밍 가능한 프로세서에 의한 실행을 위해, 기계 판독 가능한 저장 디바이스 내의 저장장치 내에서 구현되는 컴퓨터 프로그램 제품에서 실행될 수 있다. 그리고 특징들은 입력 데이터 상에서 동작하고 출력을 생성함으로써 설명된 실시예들의 함수들을 수행하기 위한 지시어들의 프로그램을 실행하는 프로그래밍 가능한 프로세서에 의해 수행될 수 있다. 설명된 특징들은, 데이터 저장 시스템으로부터 데이터 및 지시어들을 수신하기 위해, 및 데이터 저장 시스템으로 데이터 및 지시어들을 전송하기 위해, 결합된 적어도 하나의 프로그래밍 가능한 프로세서, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스를 포함하는 프로그래밍 가능한 시스템 상에서 실행될 수 있는 하나 이상의 컴퓨터 프로그램들 내에서 실행될 수 있다. 컴퓨터 프로그램은 소정 결과에 대해 특정 동작을 수행하기 위해 컴퓨터 내에서 직접 또는 간접적으로 사용될 수 있는 지시어들의 집합을 포함한다. 컴퓨터 프로그램은 컴파일된 또는 해석된 언어들을 포함하는 프로그래밍 언어 중 어느 형태로 쓰여지고, 모듈, 소자, 서브루틴(subroutine), 또는 다른 컴퓨터 환경에서 사용을 위해 적합한 다른 유닛으로서, 또는 독립 조작 가능한 프로그램으로서 포함하는 어느 형태로도 사용될 수 있다.
지시어들의 프로그램의 실행을 위한 적합한 프로세서들은, 예를 들어, 범용 및 특수 용도 마이크로프로세서들 둘 모두, 및 단독 프로세서 또는 다른 종류의 컴퓨터의 다중 프로세서들 중 하나를 포함한다. 또한 설명된 특징들을 구현하는 컴퓨터 프로그램 지시어들 및 데이터를 구현하기 적합한 저장 디바이스들은 예컨대, EPROM, EEPROM, 및 플래쉬 메모리 디바이스들과 같은 반도체 메모리 디바이스들, 내부 하드 디스크들 및 제거 가능한 디스크들과 같은 자기 디바이스들, 광자기 디스크들 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 비휘발성 메모리의 모든 형태들을 포함한다. 프로세서 및 메모리는 ASIC들(application-specific integrated circuits) 내에서 통합되거나 또는 ASIC들에 의해 추가될 수 있다.
이상에서 설명한 본 발명은 일련의 기능 블록들을 기초로 설명되고 있지만, 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
전술한 실시 예들의 조합은 전술한 실시 예에 한정되는 것이 아니며, 구현 및/또는 필요에 따라 전술한 실시예들 뿐 아니라 다양한 형태의 조합이 제공될 수 있다.
전술한 실시 예들에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
전술한 실시 예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
이상 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (17)

  1. 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법은,
    상기 월렛 앱에서 개인 키와 공개 키의 키 페어를 생성하는 단계;
    상기 월렛 앱에서 상기 개인 키를 암호화하기 위해 암호 키(enc key)를 생성하는 단계;
    상기 월렛 앱에서 상기 개인 키를 상기 암호 키(enc key)로 암호화하여 암호화 키(wrap key)를 생성하는 단계;
    상기 월렛 앱에서 상기 암호화 키(wrap key)를 상기 소유 디바이스의 하드웨어적으로 생성된 디바이스 고유값 또는 상기 월렛 앱에서 소프트웨어적으로 생성된 값을 이용하여 임의의 제1 키 분리 비율로 제1 암호화 키 조각 및 제2 암호화 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하고, 상기 암호 키(enc key)를 임의의 제2 키 분리 비율로 제1 암호 키 조각 및 제2 암호 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하는 단계;
    상기 월렛 앱에서 상기 분리된 제1 암호화 키 조각 및 제2 암호화 키 조각과 상기 분리된 제1 암호 키 조각 및 제2 암호 키 조각을 선후로 결합하는 단계;
    상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-의 저장 요청을 상기 소유 디바이스로 전송하는 단계; 및
    상기 월렛 앱에서 상기 분리되어 선후로 결합된 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 저장 요청을 IPFS(Inter Planetary File System) 프로토콜을 이용하여 상기 블록체인 노드로 전송하는 단계
    를 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  2. 제1항에 있어서, 상기 소유 디바이스의 하드웨어적으로 생성된 디바이스 고유값은 상기 소유 디바이스의 디바이스 식별자(ID)이며, 상기 월렛 앱에서 상기 암호화 키(wrap key) 및 상기 암호 키(enc key)키를 상기 소유 디바이스의 디바이스 식별자(ID)를 이용하여 키 분리 맵을 통하여 적어도 2개의 조각으로 키 분리 비율을 랜덤하게 조정하면서 분리하는 것을 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  3. 제2항에 있어서, 상기 디바이스 식별자(ID)는 안드로이드 플랫폼을 사용하는 디바이스의 경우 IMEI(International Mobile Equipment Identity) 및 안드로이드 디바이스 시리얼 넘버(serial number) 중 하나를 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  4. 제2항에 있어서, 상기 디바이스 식별자(ID)는 iOS 플랫폼을 사용하는 디바이스의 경우 UUID(Universally Unique Identifiers) 및 UDID(Unique Device Identifier) 중 하나를 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  5. 제1항에 있어서, 상기 암호화 키(wrap key)의 상기 제1 키 분리 비율은, 상기 디바이스 식별자(ID) 값의 n번째 자리수-여기서 n은 자연수임-를 기준으로 8로 MOD 연산을 수행하여 1:9, 2:8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2 및 9:1의 9가지 경우의 수로 키 분리 비율을 결정하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  6. 제5항에 있어서, 상기 암호화 키(wrap key)를 상기 제1 키 분리 비율로 암호화 키(wrap key) 앞부분 pre-wrapkey(W1)과 암호화 키(wrap key) 뒷부분 post-wrapkey(W2)의 2개의 암호화 키(wrap key) 조각으로 분리하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  7. 제1항에 있어서, 상기 암호 키(enc key)의 상기 제2 키 분리 비율은, 상기 디바이스 식별자(ID) 값의 m번째 자리수-여기서 m은 자연수임-를 기준으로 8로 MOD 연산을 수행하여 1:9, 2:8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2 및 9:1의 9가지 경우의 수로 키 분리 비율을 결정하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  8. 제7항에 있어서, 상기 암호 키(enc key)를 상기 제2 키 분리 비율로 암호 키(enc key) 앞부분 pre-enckey(E1)과 암호 키(enc key) 뒷 부분 post-enckey(E2)의 2개의 암호 키(enc key) 조각으로 분리하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  9. 제1항에 있어서, 상기 분리된 키 조각의 선후 결합은 상기 디바이스 식별자(ID) 값의 k번째 자리수-여기서 k는 자연수임-를 기준으로 7로 MOD 연산을 수행하여 8가지 경우의 수로 결정하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  10. 제1항에 있어서, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-와 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 상기 소유 디바이스 및 상기 블록체인 노드에서의 저장 위치를 결정하는 단계를 더 포함하는 것을 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  11. 제10항에 있어서, 상기 블록체인 노드는 상기 제2 선후 결합 키를 상기 블록 체인 노드에 분산 저장하는 단계를 더 포함하는 것을 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  12. 제1항에 있어서, 상기 월렛 앱에서 생체 인증 장치를 통해 생체 인증을 수행하는 단계를 더 포함하는 것을 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  13. 제1항에 있어서, 상기 월렛 앱에서 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청을 상기 소유 디바이스로 전송하고, 상기 소유 디바이스로부터 상기 소유 디바이스 저장 결합 키 응답을 수신하는 단계를 더 포함하되,
    상기 소유 디바이스 저장 결합 키 응답은 상기 요청된 소유 디바이스에 저장된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부를 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  14. 제1항에 있어서,
    상기 월렛 앱에서 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청을 상기 IPFS 프로토콜을 이용하여 상기 블록체인 노드로 전송하고, 상기 블록체인 노드로부터 상기 블록 체인 노드에 분산 저장된 암호화 키(wrap key) 일부와 암호 키(enc key) 일부 응답을 수신하는 단계를 더 포함하되,
    상기 암호화 키(wrap key) 일부와 암호 키(enc key) 일부 응답은 상기 요청된 블록 체인 노드에 분산 저장된 암호화 키(wrap key) 일부와 암호 키(enc key) 일부를 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  15. 제1항에 있어서,
    상기 월렛 앱에서 상기 소유 디바이스에 저장된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부, 그리고 상기 블록 체인 노드를 통해 조회된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부를 조합하여 상기 암호화 키(wrap key)와 상기 암호 키(enc key)를 복구하는 단계;
    상기 월렛 앱에서 상기 복구된 암호 키(enc key)를 이용하여 상기 복구된 암호화 키(wrap key)를 복호화하여 개인 키를 획득하는 단계; 및
    상기 월렛 앱에서 상기 획득된 개인 키를 이용하여 트랜잭션에 전자 서명을 하고 상기 전자 서명 또는 전자 서명된 값을 서비스 블록 체인으로 전송하는 단계를 더 포함하는 것을 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  16. 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 있어서,
    상기 월렛 앱에서 개인 키와 공개 키의 키 페어를 생성하는 단계;
    상기 월렛 앱에서 상기 개인 키를 암호화하기 위해 암호 키(enc key)를 생성하는 단계;
    상기 월렛 앱에서 상기 개인 키를 상기 암호 키(enc key)로 암호화하여 암호화 키(wrap key)를 생성하는 단계;
    상기 월렛 앱에서 상기 암호화 키(wrap key)를 상기 소유 디바이스의 하드웨어적으로 생성된 디바이스 고유값 또는 상기 월렛 앱에서 소프트웨어적으로 생성된 값을 이용하여 임의의 제1 키 분리 비율로 제1 암호화 키 조각 및 제2 암호화 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하고, 상기 암호 키(enc key)를 임의의 제2 키 분리 비율로 제1 암호 키 조각 및 제2 암호 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하는 단계;
    상기 월렛 앱에서 상기 분리된 제1 암호화 키 조각 및 제2 암호화 키 조각과 상기 분리된 제1 암호 키 조각 및 제2 암호 키 조각을 선후로 결합하는 단계;
    상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-의 저장 요청을 상기 소유 디바이스로 전송하는 단계; 및
    상기 월렛 앱에서 상기 분리되어 선후로 결합된 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 저장 요청을 IPFS(Inter Planetary File System) 프로토콜을 이용하여 상기 블록체인 노드로 전송하는 단계
    를 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  17. 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드 중 적어도 하나에 키를 분산 저장하는 비밀 키 보안 방법은,
    상기 월렛 앱에서 개인 키와 공개 키의 키 페어를 생성하는 단계;
    상기 월렛 앱에서 상기 개인 키를 암호화하기 위해 암호 키(enc key)를 생성하는 단계;
    상기 월렛 앱에서 상기 개인 키를 상기 암호 키(enc key)로 암호화하여 암호화 키(wrap key)를 생성하는 단계;
    상기 월렛 앱에서 상기 암호화 키(wrap key)를 상기 소유 디바이스의 하드웨어적으로 생성된 디바이스 고유값 또는 상기 월렛 앱에서 소프트웨어적으로 생성된 값을 이용하여 임의의 제1 키 분리 비율로 제1 암호화 키 조각 및 제2 암호화 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하고, 상기 암호 키(enc key)를 임의의 제2 키 분리 비율로 제1 암호 키 조각 및 제2 암호 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하는 단계;
    상기 월렛 앱에서 상기 분리된 제1 암호화 키 조각 및 제2 암호화 키 조각과 상기 분리된 제1 암호 키 조각 및 제2 암호 키 조각을 선후로 결합하는 단계;
    상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-의 저장 요청을 상기 소유 디바이스로 전송하거나, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 저장 요청을 IPFS(Inter Planetary File System) 프로토콜을 이용하여 상기 블록체인 노드로 전송하는 단계
    를 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드 중 적어도 하나에 키를 분산 저장하는 비밀 키 보안 방법.

KR1020190039801A 2019-04-04 2019-04-04 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법 KR102322118B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190039801A KR102322118B1 (ko) 2019-04-04 2019-04-04 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법
PCT/KR2020/004042 WO2020204444A2 (ko) 2019-04-04 2020-03-25 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190039801A KR102322118B1 (ko) 2019-04-04 2019-04-04 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법

Publications (2)

Publication Number Publication Date
KR20200118303A true KR20200118303A (ko) 2020-10-15
KR102322118B1 KR102322118B1 (ko) 2021-11-05

Family

ID=72666815

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190039801A KR102322118B1 (ko) 2019-04-04 2019-04-04 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법

Country Status (2)

Country Link
KR (1) KR102322118B1 (ko)
WO (1) WO2020204444A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102539937B1 (ko) * 2022-01-24 2023-06-05 함문성 디지털 작품 복제방지 및 진위판정 시스템
KR20240019899A (ko) 2022-08-05 2024-02-14 (주)소셜인프라테크 디지털 자산과 물리적 자산의 이중적 보호를 위한 프라이빗 자산 시스템
KR20240019900A (ko) 2022-08-05 2024-02-14 (주)소셜인프라테크 현물 자산과 콜드 월렛의 선택적 물리 결합성을 통한 콜드 월렛 활성화 시스템
KR20240019898A (ko) 2022-08-05 2024-02-14 (주)소셜인프라테크 선택적 물리 결합성과 디지털 코드의 연결성에 기초한 콜드 월렛 시스템

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11424920B2 (en) 2019-08-19 2022-08-23 Red Hat, Inc. Proof-of-work key wrapping for cryptographically controlling data access
US11411938B2 (en) 2019-08-19 2022-08-09 Red Hat, Inc. Proof-of-work key wrapping with integrated key fragments
US11411728B2 (en) 2019-08-19 2022-08-09 Red Hat, Inc. Proof-of-work key wrapping with individual key fragments
US11436352B2 (en) 2019-08-19 2022-09-06 Red Hat, Inc. Proof-of-work key wrapping for restricting data execution based on device capabilities
US11271734B2 (en) 2019-08-19 2022-03-08 Red Hat, Inc. Proof-of-work key wrapping for verifying device capabilities
US11316839B2 (en) * 2019-08-19 2022-04-26 Red Hat, Inc. Proof-of-work key wrapping for temporally restricting data access
CN113205333B (zh) * 2021-05-06 2022-09-13 杭州复杂美科技有限公司 钱包加密存储方法、签名方法、计算机设备和存储介质
CN113793141A (zh) * 2021-09-01 2021-12-14 深圳市互联在线云计算股份有限公司 基于硬件钱包的交易方法、装置、设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160139885A (ko) 2015-05-29 2016-12-07 한국정보인증주식회사 생체 정보 인식과 키 분할 방식을 이용한 공인인증 시스템 및 그 방법, 그 방법을 수행하는 프로그램이 기록된 기록매체
KR20170087663A (ko) * 2016-01-21 2017-07-31 주식회사 한컴시큐어 클라이언트 단말을 위한 전자서명 대행 수행 장치 및 그 동작 방법
KR101792220B1 (ko) * 2016-08-19 2017-11-02 라온시큐어(주) 생체 인증 결합 사용자 간편 인증 방법, 이를 위한 인증 어플리케이션이 탑재된 사용자 모바일 단말기, 인증 서비스 장치 및 컴퓨터 프로그램
KR101867326B1 (ko) * 2017-09-04 2018-06-14 주식회사 와임 분할 기능을 이용한 소셜 미디어 제공 방법 및 시스템
KR20180104586A (ko) * 2018-07-03 2018-09-21 네이버 주식회사 블록체인 기반의 개인 데이터 처리 방법 및 시스템

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101438104B1 (ko) * 2013-01-28 2014-09-24 이니텍(주) 인증서를 클라우드 저장소 서버가 관리하는 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160139885A (ko) 2015-05-29 2016-12-07 한국정보인증주식회사 생체 정보 인식과 키 분할 방식을 이용한 공인인증 시스템 및 그 방법, 그 방법을 수행하는 프로그램이 기록된 기록매체
KR20170087663A (ko) * 2016-01-21 2017-07-31 주식회사 한컴시큐어 클라이언트 단말을 위한 전자서명 대행 수행 장치 및 그 동작 방법
KR101792220B1 (ko) * 2016-08-19 2017-11-02 라온시큐어(주) 생체 인증 결합 사용자 간편 인증 방법, 이를 위한 인증 어플리케이션이 탑재된 사용자 모바일 단말기, 인증 서비스 장치 및 컴퓨터 프로그램
KR101867326B1 (ko) * 2017-09-04 2018-06-14 주식회사 와임 분할 기능을 이용한 소셜 미디어 제공 방법 및 시스템
KR20180104586A (ko) * 2018-07-03 2018-09-21 네이버 주식회사 블록체인 기반의 개인 데이터 처리 방법 및 시스템

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102539937B1 (ko) * 2022-01-24 2023-06-05 함문성 디지털 작품 복제방지 및 진위판정 시스템
KR20240019899A (ko) 2022-08-05 2024-02-14 (주)소셜인프라테크 디지털 자산과 물리적 자산의 이중적 보호를 위한 프라이빗 자산 시스템
KR20240019900A (ko) 2022-08-05 2024-02-14 (주)소셜인프라테크 현물 자산과 콜드 월렛의 선택적 물리 결합성을 통한 콜드 월렛 활성화 시스템
KR20240019898A (ko) 2022-08-05 2024-02-14 (주)소셜인프라테크 선택적 물리 결합성과 디지털 코드의 연결성에 기초한 콜드 월렛 시스템

Also Published As

Publication number Publication date
WO2020204444A2 (ko) 2020-10-08
WO2020204444A3 (ko) 2020-12-17
KR102322118B1 (ko) 2021-11-05

Similar Documents

Publication Publication Date Title
KR102322118B1 (ko) 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법
US11877213B2 (en) Methods and systems for asset obfuscation
US11818269B2 (en) Computer-implemented system and method providing a decentralised protocol for the recovery of cryptographic assets
US20170352031A1 (en) Systems and methods for providing a personal distributed ledger
US8850218B2 (en) OTP generation using a camouflaged key
KR100768754B1 (ko) 휴대용 전자식 청구 및 인증 장치와 이를 위한 방법
US20160260091A1 (en) Universal wallet for digital currency
US11258591B2 (en) Cryptographic key management based on identity information
RU2560810C2 (ru) Способ и система защиты информации от несанкционированного использования (ее варианты)
US20050044377A1 (en) Method of authenticating user access to network stations
CN111476573B (zh) 一种账户数据处理方法、装置、设备及存储介质
KR101923943B1 (ko) 보안이 강화된 암호화폐 송금 시스템 및 방법
KR20180003113A (ko) 서버, 디바이스 및 이에 의한 사용자 인증 방법
KR102234825B1 (ko) 암호 동작들의 안전한 수행
KR20090017099A (ko) 일회용 패스워드 생성기능을 가진 스마트카드 및 이를이용한 전자금융거래시스템
CN111242611A (zh) 一种用于恢复数字钱包密钥的方法及系统
TWI476629B (zh) Data security and security systems and methods
CN114270386A (zh) 用于同意架构的认证器应用
JPH11316543A (ja) カ―ドデ―タ認証システム
KR20200001178A (ko) 암호화폐지갑의 연상기호 코드 적용 방법
US20170330177A1 (en) Payment terminal authentication
KR102289478B1 (ko) 보안키 관리 방법 및 보안키 관리 서버
WO2020076234A1 (en) Apparatus and method for controlling data access
KR20200057985A (ko) 하이브리드 블록체인과 기업형 하드웨어 키보관 시스템을 결합한 솔루션
Sun A survey of payment token vulnerabilities towards stronger security with fingerprint based encryption on Samsung Pay

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right